DPS topology

Schema Definition

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "title": "DPS topology",
    "type": "object",
    "$id": "dcpower_0.1",
    "$ref": "#/definitions/Main",
    "definitions": {
        "Main": {
            "type": "object",
            "properties": {
                "Entities": {
                    "$ref": "#/definitions/Entities"
                },
                "Topology": {
                    "$ref": "#/definitions/Topology"
                },
                "Policies": {
                    "$ref": "#/definitions/Policies"
                }
            }
        },
        "Entities": {
            "description": "List of data center entities",
            "type": "array",
            "items": {
                "$ref": "#/definitions/Entity"
            },
            "uniqueItems": true
        },
        "Topology": {
            "description": "Root topology container",
            "type": "object",
            "properties": {
                "Name": {
                    "description": "Name of the topology being defined in this file",
                    "type": "string",
                    "minLength": 1
                },
                "Entities": {
                    "description": "List of data center relations (entities connectivity)",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/TopologyEntity"
                    },
                    "uniqueItems": true
                }
            },
            "required": [
                "Name"
            ]
        },
        "TopologyEntity": {
            "description": "A reference to an entity, optional properties of the entity within the topology, and the connected entities",
            "oneOf": [
                {
                    "type": "object",
                    "properties": {
                        "Name": {
                            "type": "string",
                            "description": "Reference to an already defined entity"
                        },
                        "FeedTag": {
                            "type": "string",
                            "description": "Identifier for the power feed supplying this entity"
                        },
                        "Children": {
                            "$ref": "#/definitions/TopologyLinks"
                        }
                    },
                    "required": ["Name"]
                },
                {
                    "allOf": [
                        {
                            "$ref": "#/definitions/Entity"
                        },
                        {
                            "type": "object",
                            "properties": {
                                "FeedTag": {
                                    "type": "string",
                                    "description": "Identifier for the power feed supplying this entity"
                                },
                                "Children": {
                                    "$ref": "#/definitions/TopologyLinks"
                                }
                            }
                        }
                    ]
                }
            ]
        },
        "TopologyLinks": {
            "description": "List of child entity names for a given parent",
            "type": "array",
            "items": {
                "description": "Child entity name",
                "type": "string",
                "minLength": 1
            },
            "minItems": 1
        },
        "Entity": {
            "description": "A datacenter entity",
            "oneOf": [
                {
                    "$ref": "#/definitions/PowerDomain"
                },
                {
                    "$ref": "#/definitions/PowerDistribution"
                },
                {
                    "$ref": "#/definitions/PowerSupply"
                },
                {
                    "$ref": "#/definitions/ComputerSystem"
                }
            ]
        },
        "PowerValue": {
            "type": "object",
            "description": "Represents a specific non-negative power value",
            "properties": {
                "Value": {
                    "description": "Numerical power value",
                    "type": "number",
                    "exclusiveMinimum": 0
                },
                "Type": {
                    "description": "Power value unit type",
                    "type": "string",
                    "enum": [
                        "W",
                        "kW"
                    ]
                }
            },
            "required": [
                "Value",
                "Type"
            ],
            "additionalProperties": false
        },
        "Policies": {
            "description": "List of power policies that can be applied to entities",
            "type": "array",
            "items": {
                "$ref": "#/definitions/Policy"
            },
            "uniqueItems": true
        },
        "Policy": {
            "description": "Power policy definition",
            "type": "object",
            "required": [ "Name", "Limits" ],
            "properties": {
                "Name": {
                    "description": "Name of the power policy",
                    "type": "string"
                },
                "Limits": {
                    "description": "List of power limits that can be applied to entities",
                    "type": "array",
                    "items": {
                        "type": "object",
                        "required": [ "ElementType", "PowerLimit" ],
                        "properties": {
                            "ElementType": {
                                "type": "string",
                                "enum": [ "Node", "GPU", "CPU", "Memory" ],
                                "description": "Type of entity to which the power limit applies"
                            },
                            "PowerLimit": {
                                "description": "Power limit value",
                                "$ref": "#/definitions/PowerLimit"
                            }
                        }
                    },
                    "uniqueItems": true,
                    "minItems": 1
                },
                "additionalProperties": false
            }
        },
        "PowerLimit": {
            "type": "object",
            "description": "Represents a specific non-negative power limit value",
            "properties": {
                "Watts": {
                    "type": "number",
                    "description": "Power limit in watts",
                    "exclusiveMinimum": 0
                },
                "Percentage": {
                    "type": "number",
                    "description": "Power limit as a percentage of the total power capacity",
                    "exclusiveMinimum": 0,
                    "maximum": 100
                }
            },
            "oneOf": [
                {
                    "required": [ "Watts" ]
                },
                {
                    "required": [ "Percentage" ]
                }
            ],
            "additionalProperties": false
        },
        "PowerDomain": {
            "description": "DPS power domain definition",
            "type": "object",
            "properties": {
                "Type": {
                    "description": "DPS type disambiguator",
                    "type": "string",
                    "enum": [
                        "PowerDomain"
                    ]
                },
                "Name": {
                    "description": "Unique name of the entity",
                    "type": "string"
                },
                "Constraints": {
                    "description": "Power domain constraints definition",
                    "type": "object",
                    "properties": {
                        "PowerValue": {
                            "description": "Maximum power domain limit",
                            "$ref": "#/definitions/PowerValue"
                        },
                        "PowerFactor": {
                            "description": "Power modifier to express loss during transition through this component",
                            "type": "number"
                        }
                    },
                    "required": [
                        "PowerValue"
                    ]
                },
                "Redfish": {
                    "description": "Reference to underlying Redfish definition",
                    "$ref": "#/definitions/RedfishPowerDomain"
                }
            },
            "required": [
                "Type",
                "Name"
            ]
        },
        "PowerDistribution": {
            "description": "DPS power distribution definition",
            "type": "object",
            "properties": {
                "Type": {
                    "description": "DPS type disambiguator",
                    "type": "string",
                    "enum": [
                        "PowerDistribution"
                    ]
                },
                "Name": {
                    "description": "Unique name of the entity",
                    "type": "string"
                },
                "Model": {
                    "description": "Code model name that represents this entity",
                    "type": "string",
                    "minLength": 1
                },
                "Redfish": {
                    "description": "Reference to underlying Redfish definition",
                    "$ref": "#/definitions/RedfishPowerDistribution"
                }
            },
            "required": [
                "Type",
                "Name"
            ]
        },
        "PowerSupply": {
            "description": "DPS power supply definition",
            "type": "object",
            "properties": {
                "Type": {
                    "description": "DPS type disambiguator",
                    "type": "string",
                    "enum": [
                        "PowerSupply"
                    ]
                },
                "Name": {
                    "description": "Unique name of the entity",
                    "type": "string"
                },
                "Model": {
                    "description": "Code model name that represents this entity",
                    "type": "string",
                    "minLength": 1
                },
                "Redfish": {
                    "description": "Reference to underlying Redfish definition",
                    "$ref": "#/definitions/RedfishPowerSupply"
                }
            },
            "required": [
                "Type",
                "Name"
            ]
        },
        "ComputerSystem": {
            "description": "DPS computer system definition",
            "type": "object",
            "properties": {
                "Type": {
                    "description": "DPS type disambiguator",
                    "type": "string",
                    "enum": [
                        "ComputerSystem"
                    ]
                },
                "Name": {
                    "description": "Unique name of the entity",
                    "type": "string"
                },
                "Model": {
                    "description": "Code model name that represents this entity",
                    "type": "string",
                    "minLength": 1
                },
                "Policy": {
                    "description": "Default policy applied to this entity",
                    "type": "string"
                },
                "Redfish": {
                    "description": "Reference to underlying Redfish definition",
                    "$ref": "#/definitions/RedfishComputerSystem"
                }
            },
            "required": [
                "Type",
                "Name"
            ]
        },
        "RedfishPowerDomain": {
            "$ref": "file://redfish-schema-pack-v1.schema.json#/definitions/PowerDomain"
        },
        "RedfishPowerDistribution": {
            "$ref": "file://redfish-schema-pack-v1.schema.json#/definitions/PowerDistribution"
        },
        "RedfishPowerSupply": {
            "$ref": "file://redfish-schema-pack-v1.schema.json#/definitions/PowerSupply"
        },
        "RedfishComputerSystem": {
            "$ref": "file://redfish-schema-pack-v1.schema.json#/definitions/ComputerSystem"
        }
    }
}

Download

Download DPS topology