{
    "$id": "http://redfish.dmtf.org/schemas/v1/Switch.v1_3_0.json",
    "$ref": "#/definitions/Switch",
    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json",
    "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
    "definitions": {
        "Actions": {
            "additionalProperties": false,
            "description": "The available actions for this Resource.",
            "longDescription": "This type shall contain the available actions for this Resource.",
            "patternProperties": {
                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
                    "description": "This property shall specify a valid odata or Redfish property.",
                    "type": [
                        "array",
                        "boolean",
                        "integer",
                        "number",
                        "null",
                        "object",
                        "string"
                    ]
                }
            },
            "properties": {
                "#Switch.Reset": {
                    "$ref": "#/definitions/Reset"
                },
                "Oem": {
                    "$ref": "#/definitions/OemActions",
                    "description": "The available OEM-specific actions for this Resource.",
                    "longDescription": "This property shall contain the available OEM-specific actions for this Resource."
                }
            },
            "type": "object"
        },
        "Links": {
            "additionalProperties": false,
            "description": "The links to other Resources that are related to this Resource.",
            "longDescription": "The Redfish Specification-described type shall contain links to Resources related to but not subordinate to this Resource.",
            "patternProperties": {
                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
                    "description": "This property shall specify a valid odata or Redfish property.",
                    "type": [
                        "array",
                        "boolean",
                        "integer",
                        "number",
                        "null",
                        "object",
                        "string"
                    ]
                }
            },
            "properties": {
                "Chassis": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis",
                    "description": "The link to the chassis that contains this switch.",
                    "longDescription": "This property shall contain a link to the Resource of type Chassis with which this switch is associated.",
                    "readonly": true
                },
                "Endpoints": {
                    "description": "An array of links to the endpoints that connect to this switch.",
                    "items": {
                        "$ref": "http://redfish.dmtf.org/schemas/v1/Endpoint.json#/definitions/Endpoint"
                    },
                    "longDescription": "This property shall contain a link to the Resources of type Endpoint with which this switch is associated.",
                    "readonly": true,
                    "type": "array",
                    "versionAdded": "v1_3_0"
                },
                "Endpoints@odata.count": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
                },
                "ManagedBy": {
                    "description": "An array of links to the managers that manage this switch.",
                    "items": {
                        "$ref": "http://redfish.dmtf.org/schemas/v1/Manager.json#/definitions/Manager"
                    },
                    "longDescription": "This property shall contain a link to the Resource of type Manager with which this switch is associated.",
                    "readonly": true,
                    "type": "array"
                },
                "ManagedBy@odata.count": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
                },
                "Oem": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
                    "description": "The OEM extension property.",
                    "longDescription": "This property shall contain the OEM extensions.  All values for properties contained in this object shall conform to the Redfish Specification-described requirements."
                }
            },
            "type": "object"
        },
        "OemActions": {
            "additionalProperties": true,
            "description": "The available OEM-specific actions for this Resource.",
            "longDescription": "This type shall contain the available OEM-specific actions for this Resource.",
            "patternProperties": {
                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
                    "description": "This property shall specify a valid odata or Redfish property.",
                    "type": [
                        "array",
                        "boolean",
                        "integer",
                        "number",
                        "null",
                        "object",
                        "string"
                    ]
                }
            },
            "properties": {},
            "type": "object"
        },
        "Reset": {
            "additionalProperties": false,
            "description": "This action resets this switch.",
            "longDescription": "This action shall reset this switch.",
            "parameters": {
                "ResetType": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/ResetType",
                    "description": "The type of reset.",
                    "longDescription": "This parameter shall contain the type of reset.  The Service may accept a request without this parameter and can complete an implementation-specific default reset."
                }
            },
            "patternProperties": {
                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
                    "description": "This property shall specify a valid odata or Redfish property.",
                    "type": [
                        "array",
                        "boolean",
                        "integer",
                        "number",
                        "null",
                        "object",
                        "string"
                    ]
                }
            },
            "properties": {
                "target": {
                    "description": "Link to invoke action",
                    "format": "uri-reference",
                    "type": "string"
                },
                "title": {
                    "description": "Friendly action name",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "Switch": {
            "additionalProperties": false,
            "description": "The Switch schema contains properties that describe a fabric switch.",
            "longDescription": "This Resource contains a switch for a Redfish implementation.",
            "patternProperties": {
                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
                    "description": "This property shall specify a valid odata or Redfish property.",
                    "type": [
                        "array",
                        "boolean",
                        "integer",
                        "number",
                        "null",
                        "object",
                        "string"
                    ]
                }
            },
            "properties": {
                "@odata.context": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context"
                },
                "@odata.etag": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag"
                },
                "@odata.id": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id"
                },
                "@odata.type": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type"
                },
                "Actions": {
                    "$ref": "#/definitions/Actions",
                    "description": "The available actions for this Resource.",
                    "longDescription": "This property shall contain the available actions for this Resource."
                },
                "AssetTag": {
                    "description": "The user-assigned asset tag for this switch.",
                    "longDescription": "This property shall contain the user-assigned asset tag, which is an identifying string that tracks the drive for inventory purposes.",
                    "readonly": false,
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "Description": {
                    "anyOf": [
                        {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "readonly": true
                },
                "DomainID": {
                    "description": "The domain ID for this switch.",
                    "longDescription": "This property shall contain The domain ID for this switch.  This property has a scope of uniqueness within the fabric of which the switch is a member.",
                    "readonly": true,
                    "type": [
                        "integer",
                        "null"
                    ]
                },
                "FirmwareVersion": {
                    "description": "The firmware version of this switch.",
                    "longDescription": "This property shall contain the firwmare version as defined by the manufacturer for the associated switch.",
                    "readonly": true,
                    "type": [
                        "string",
                        "null"
                    ],
                    "versionAdded": "v1_2_0"
                },
                "Id": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
                    "readonly": true
                },
                "IndicatorLED": {
                    "anyOf": [
                        {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/IndicatorLED"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The state of the indicator LED, which identifies the switch.",
                    "longDescription": "This property shall contain the state of the indicator light associated with this switch.",
                    "readonly": false
                },
                "IsManaged": {
                    "description": "An indication of whether the switch is in a managed or unmanaged state.",
                    "longDescription": "This property shall indicate whether this switch is in a managed or unmanaged state.",
                    "readonly": false,
                    "type": [
                        "boolean",
                        "null"
                    ]
                },
                "Links": {
                    "$ref": "#/definitions/Links",
                    "description": "The links to other Resources that are related to this Resource.",
                    "longDescription": "The Redfish Specification-described Links Property shall contain links to Resources related to but not subordinate to this Resource."
                },
                "Location": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location",
                    "description": "The location of the switch.",
                    "longDescription": "This property shall contain location information of the associated switch.",
                    "versionAdded": "v1_1_0"
                },
                "LogServices": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/LogServiceCollection.json#/definitions/LogServiceCollection",
                    "description": "The link to the collection of Log Services associated with this switch.",
                    "longDescription": "This property shall contain a link to a Resource Collection of type LogServiceCollection.",
                    "readonly": true
                },
                "Manufacturer": {
                    "description": "The manufacturer of this switch.",
                    "longDescription": "This property shall contain the name of the organization responsible for producing the switch.  This organization might be the entity from which the switch is purchased, but this is not necessarily true.",
                    "readonly": true,
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "Model": {
                    "description": "The product model number of this switch.",
                    "longDescription": "This property shall contain the manufacturer-provided model information of this switch.",
                    "readonly": true,
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "Name": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
                    "readonly": true
                },
                "Oem": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
                    "description": "The OEM extension property.",
                    "longDescription": "This property shall contain the OEM extensions.  All values for properties that this object contains shall conform to the Redfish Specification-described requirements."
                },
                "PartNumber": {
                    "description": "The part number for this switch.",
                    "longDescription": "This property shall contain the manufacturer-provided part number for the switch.",
                    "readonly": true,
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "Ports": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/PortCollection.json#/definitions/PortCollection",
                    "description": "The link to the collection ports for this switch.",
                    "longDescription": "This property shall contain a link to a Resource Collection of type PortCollection.",
                    "readonly": true
                },
                "PowerState": {
                    "anyOf": [
                        {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/PowerState"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The current power state of the switch.",
                    "longDescription": "This property shall contain the power state of the switch.",
                    "readonly": true
                },
                "Redundancy": {
                    "autoExpand": true,
                    "description": "Redundancy information for the switches.",
                    "items": {
                        "$ref": "http://redfish.dmtf.org/schemas/v1/Redundancy.json#/definitions/Redundancy"
                    },
                    "longDescription": "This property shall contain an array that shows how this switch is grouped with other switches for form redundancy sets.",
                    "type": "array"
                },
                "Redundancy@odata.count": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
                },
                "SKU": {
                    "description": "The SKU for this switch.",
                    "longDescription": "This property shall contain the SKU number for this switch.",
                    "readonly": true,
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "SerialNumber": {
                    "description": "The serial number for this switch.",
                    "longDescription": "This property shall contain a manufacturer-allocated number that identifies the switch.",
                    "readonly": true,
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "Status": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status",
                    "description": "The status and health of the Resource and its subordinate or dependent Resources.",
                    "longDescription": "This property shall contain any status or health properties of the Resource."
                },
                "SupportedProtocols": {
                    "description": "The protocols this switch supports.",
                    "items": {
                        "$ref": "http://redfish.dmtf.org/schemas/v1/Protocol.json#/definitions/Protocol"
                    },
                    "longDescription": "The property shall contain an array of protocols this switch supports.  If the value of SwitchType is `MultiProtocol`, this property shall be required.",
                    "readonly": true,
                    "type": "array",
                    "versionAdded": "v1_3_0"
                },
                "SwitchType": {
                    "anyOf": [
                        {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/Protocol.json#/definitions/Protocol"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The protocol being sent over this switch.",
                    "longDescription": "This property shall contain the protocol being sent over this switch.  For a switch that supports multiple protocols, the value should be `MultiProtocol` and the SupportedProtocols property should be used to describe the supported protocols.",
                    "readonly": true
                },
                "TotalSwitchWidth": {
                    "description": "The total number of lanes, phys, or other physical transport links that this switch contains.",
                    "longDescription": "This property shall contain the number of physical transport lanes, phys, or other physical transport links that this switch contains.  For PCIe, this value shall be the lane count.",
                    "readonly": true,
                    "type": [
                        "integer",
                        "null"
                    ]
                },
                "UUID": {
                    "anyOf": [
                        {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/UUID"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The UUID for this switch.",
                    "longDescription": "This property shall contain a universal unique identifier number for the switch.",
                    "readonly": true,
                    "versionAdded": "v1_3_0"
                }
            },
            "required": [
                "@odata.id",
                "@odata.type",
                "Id",
                "Name"
            ],
            "type": "object"
        }
    },
    "owningEntity": "DMTF",
    "release": "2019.4",
    "title": "#Switch.v1_3_0.Switch"
}