{
    "type": "object",
    "properties": {
        "manufacturer": {
            "type": "string"
        },
        "model": {
            "type": "string"
        },
        "slug": {
            "type": "string",
            "pattern": "^[-a-zA-Z0-9_]+$"
        },
        "part_number": {
            "type": "string"
        },
        "u_height": {
            "type": "number",
            "minimum": 0,
            "multipleOf": 0.5
        },
        "is_full_depth": {
            "type": "boolean"
        },
        "airflow": {
            "type": "string",
            "enum": [
                "front-to-rear",
                "rear-to-front",
                "left-to-right",
                "right-to-left",
                "side-to-rear",
                "passive"
            ]
        },
        "subdevice_role": {
            "type": "string",
            "enum": [
                "parent",
                "child"
            ]
        },
        "console-ports": {
            "type": "array",
            "items": {
                "$ref": "components.json#/definitions/console-port"
            }
        },
        "console-server-ports": {
            "type": "array",
            "items": {
                "$ref": "components.json#/definitions/console-server-port"
            }
        },
        "power-ports": {
            "type": "array",
            "items": {
                "$ref": "components.json#/definitions/power-port"
            }
        },
        "power-outlets": {
            "type": "array",
            "items": {
                "$ref": "components.json#/definitions/power-outlet"
            }
        },
        "interfaces": {
            "type": "array",
            "items": {
                "$ref": "components.json#/definitions/interface"
            }
        },
        "front-ports": {
            "type": "array",
            "items": {
                "$ref": "components.json#/definitions/front-port"
            }
        },
        "rear-ports": {
            "type": "array",
            "items": {
                "$ref": "components.json#/definitions/rear-port"
            }
        },
        "module-bays": {
            "type": "array",
            "items": {
                "$ref": "components.json#/definitions/module-bay"
            }
        },
        "device-bays": {
            "type": "array",
            "items": {
                "$ref": "components.json#/definitions/device-bay"
            }
        },
        "inventory-items": {
            "type": "array",
            "items": {
                "$ref": "components.json#/definitions/inventory-item"
            }
        },
        "comments": {
            "type": "string"
        }
    },
    "required": ["manufacturer", "model", "slug"],
    "additionalProperties": false
}
