{
    "$id": "http://redfish.dmtf.org/schemas/v1/Port.v1_2_5.json",
    "$ref": "#/definitions/Port",
    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json",
    "copyright": "Copyright 2014-2021 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": {
                "#Port.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"
        },
        "GenZ": {
            "additionalProperties": false,
            "description": "This type defines Gen-Z specific port properties.",
            "longDescription": "This type shall contain Gen-Z specific port properties.",
            "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": {
                "LPRT": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/RouteEntryCollection.json#/definitions/RouteEntryCollection",
                    "description": "The Linear Packet Relay Table for the port.",
                    "longDescription": "This property shall contain a link to a resource collection of type RouteEntryCollection, and shall represent the Gen-Z Core Specification-defined Linear Packet Relay Table for this port.",
                    "readonly": true,
                    "versionAdded": "v1_2_0"
                },
                "MPRT": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/RouteEntryCollection.json#/definitions/RouteEntryCollection",
                    "description": "the Multi-subnet Packet Relay Table for the port.",
                    "longDescription": "This property shall contain a link to a resource collection of type RouteEntryCollection, and shall represent the Gen-Z Core Specification-defined Multi-subnet Packet Relay Table for this port.",
                    "readonly": true,
                    "versionAdded": "v1_2_0"
                },
                "VCAT": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/VCATEntryCollection.json#/definitions/VCATEntryCollection",
                    "description": "the Virtual Channel Action Table for the port.",
                    "longDescription": "This property shall contain a link to a resource collection of type VCATEntryCollection.",
                    "readonly": true,
                    "versionAdded": "v1_2_0"
                }
            },
            "type": "object"
        },
        "LinkNetworkTechnology": {
            "enum": [
                "Ethernet",
                "InfiniBand",
                "FibreChannel",
                "GenZ"
            ],
            "enumDescriptions": {
                "Ethernet": "The port is capable of connecting to an Ethernet network.",
                "FibreChannel": "The port is capable of connecting to a Fibre Channel network.",
                "GenZ": "The port is capable of connecting to a Gen-Z fabric.",
                "InfiniBand": "The port is capable of connecting to an InfiniBand network."
            },
            "type": "string"
        },
        "LinkState": {
            "enum": [
                "Enabled",
                "Disabled"
            ],
            "enumDescriptions": {
                "Disabled": "This link is disabled.",
                "Enabled": "This link is enabled."
            },
            "type": "string"
        },
        "LinkStatus": {
            "enum": [
                "LinkUp",
                "Starting",
                "Training",
                "LinkDown",
                "NoLink"
            ],
            "enumDescriptions": {
                "LinkDown": "The link on this interface is down.",
                "LinkUp": "This link on this interface is up.",
                "NoLink": "No physical link detected on this interface.",
                "Starting": "This link on this interface is starting.  A physical link has been established, but the port is not able to transfer data.",
                "Training": "This physical link on this interface is training."
            },
            "type": "string"
        },
        "Links": {
            "additionalProperties": false,
            "description": "The links to other resources that are related to this resource.",
            "longDescription": "This Redfish Specification-described type shall contain links to resources that are related to but are not contained by, or 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": {
                "AssociatedEndpoints": {
                    "description": "An array of links to the endpoints that connect through this port.",
                    "items": {
                        "$ref": "http://redfish.dmtf.org/schemas/v1/Endpoint.json#/definitions/Endpoint"
                    },
                    "longDescription": "This property shall contain an array of links to resources of type Endpoint with which this port is associated.",
                    "readonly": true,
                    "type": "array"
                },
                "AssociatedEndpoints@odata.count": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
                },
                "ConnectedPorts": {
                    "description": "An array of links to the remote ports connected to this port.",
                    "items": {
                        "$ref": "http://redfish.dmtf.org/schemas/v1/Port.json#/definitions/Port"
                    },
                    "longDescription": "This property shall contain an array of links to resources of type Port that represent the physical connections associated with this port.",
                    "readonly": true,
                    "type": "array",
                    "versionAdded": "v1_2_0"
                },
                "ConnectedPorts@odata.count": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
                },
                "ConnectedSwitchPorts": {
                    "description": "An array of links to the ports that connect to the switch through this port.",
                    "items": {
                        "$ref": "http://redfish.dmtf.org/schemas/v1/Port.json#/definitions/Port"
                    },
                    "longDescription": "This property shall contain an array of links to resources of type Port with which this port is associated.",
                    "readonly": true,
                    "type": "array"
                },
                "ConnectedSwitchPorts@odata.count": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
                },
                "ConnectedSwitches": {
                    "description": "An array of links to the switches that connect to the device through this port.",
                    "items": {
                        "$ref": "http://redfish.dmtf.org/schemas/v1/Switch.json#/definitions/Switch"
                    },
                    "longDescription": "This property shall contain an array of links to resources of type Switch with which this port is associated.",
                    "readonly": true,
                    "type": "array"
                },
                "ConnectedSwitches@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"
        },
        "Port": {
            "additionalProperties": false,
            "description": "The Port schema contains properties that describe a port of a switch, controller, chassis, or any other device that could be connected to another entity.",
            "longDescription": "This resource contains a simple port 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."
                },
                "ActiveWidth": {
                    "description": "The number of active lanes for this interface.",
                    "longDescription": "This property shall contain the number of active lanes for this interface.",
                    "readonly": true,
                    "type": "integer",
                    "versionAdded": "v1_2_0"
                },
                "CurrentSpeedGbps": {
                    "description": "The current speed of this port.",
                    "longDescription": "This property shall contain the speed of this port currently negotiated and running.  This value includes overhead associated with the protocol.",
                    "readonly": true,
                    "type": [
                        "number",
                        "null"
                    ],
                    "units": "Gbit/s"
                },
                "Description": {
                    "anyOf": [
                        {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "readonly": true
                },
                "GenZ": {
                    "$ref": "#/definitions/GenZ",
                    "description": "Gen-Z specific properties.",
                    "longDescription": "This property shall contain Gen-Z specific properties for this interface.",
                    "versionAdded": "v1_2_0"
                },
                "Id": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
                    "readonly": true
                },
                "InterfaceEnabled": {
                    "description": "An indication of whether the interface is enabled.",
                    "longDescription": "This property shall indicate whether the interface is enabled.",
                    "readonly": false,
                    "type": [
                        "boolean",
                        "null"
                    ],
                    "versionAdded": "v1_2_0"
                },
                "LinkNetworkTechnology": {
                    "anyOf": [
                        {
                            "$ref": "#/definitions/LinkNetworkTechnology"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The link network technology capabilities of this port.",
                    "longDescription": "This property shall contain a network technology capability of this port.",
                    "readonly": true,
                    "versionAdded": "v1_2_0"
                },
                "LinkState": {
                    "$ref": "#/definitions/LinkState",
                    "description": "The desired link state for this interface.",
                    "longDescription": "This property shall contain the desired link state for this interface.",
                    "readonly": false,
                    "versionAdded": "v1_2_0"
                },
                "LinkStatus": {
                    "$ref": "#/definitions/LinkStatus",
                    "description": "The link status for this interface.",
                    "longDescription": "This property shall contain the link status for this interface.",
                    "readonly": true,
                    "versionAdded": "v1_2_0"
                },
                "LinkTransitionIndicator": {
                    "description": "The number of link state transitions for this interface.",
                    "longDescription": "This property shall contain the number of link state transitions for this interface.",
                    "readonly": false,
                    "type": "integer",
                    "versionAdded": "v1_2_0"
                },
                "Links": {
                    "$ref": "#/definitions/Links",
                    "description": "The links to other resources that are related to this resource.",
                    "longDescription": "This property shall contain links to resources that are related to but are not contained by, or subordinate to, this resource."
                },
                "Location": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location",
                    "description": "The location of the port.",
                    "longDescription": "This property shall contain location information of the associated port.",
                    "versionAdded": "v1_1_0"
                },
                "MaxSpeedGbps": {
                    "description": "The maximum speed of this port as currently configured.",
                    "longDescription": "This property shall contain the maximum speed of which this port is capable of being configured.  If capable of autonegotiation, the system shall attempt to negotiate at the maximum speed set.  This value includes overhead associated with the protocol.",
                    "readonly": true,
                    "type": [
                        "number",
                        "null"
                    ],
                    "units": "Gbit/s"
                },
                "Metrics": {
                    "anyOf": [
                        {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/PortMetrics.json#/definitions/PortMetrics"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The link to the metrics associated with this port.",
                    "longDescription": "This property shall contain a link to the metrics associated with this port.",
                    "readonly": true,
                    "versionAdded": "v1_2_0"
                },
                "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."
                },
                "PortId": {
                    "description": "The label of this port on the physical package for this port.",
                    "longDescription": "This property shall contain the name of the port as indicated on the device containing the port.",
                    "readonly": true,
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "PortMedium": {
                    "anyOf": [
                        {
                            "$ref": "#/definitions/PortMedium"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The physical connection medium for this port.",
                    "longDescription": "This property shall contain the physical connection medium for this port.",
                    "readonly": true,
                    "versionAdded": "v1_2_0"
                },
                "PortProtocol": {
                    "anyOf": [
                        {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/Protocol.json#/definitions/Protocol"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The protocol being sent over this port.",
                    "longDescription": "This property shall contain the protocol being sent over this port.",
                    "readonly": true
                },
                "PortType": {
                    "anyOf": [
                        {
                            "$ref": "#/definitions/PortType"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The type of this port.",
                    "longDescription": "This property shall contain the port type for this port.",
                    "readonly": true
                },
                "SignalDetected": {
                    "description": "An indication of whether a signal is detected on this interface.",
                    "longDescription": "This property shall indicate whether a signal that is appropriate for this link technology is detected for this port.",
                    "readonly": true,
                    "type": [
                        "boolean",
                        "null"
                    ],
                    "versionAdded": "v1_2_0"
                },
                "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."
                },
                "Width": {
                    "description": "The number of lanes, phys, or other physical transport links that this port contains.",
                    "longDescription": "This property shall contain the number of physical transport links that this port contains.",
                    "readonly": true,
                    "type": [
                        "integer",
                        "null"
                    ]
                }
            },
            "required": [
                "@odata.id",
                "@odata.type",
                "Id",
                "Name"
            ],
            "type": "object"
        },
        "PortMedium": {
            "enum": [
                "Electrical",
                "Optical"
            ],
            "enumDescriptions": {
                "Electrical": "This port has an electrical cable connection.",
                "Optical": "This port has an optical cable connection."
            },
            "type": "string"
        },
        "PortType": {
            "enum": [
                "UpstreamPort",
                "DownstreamPort",
                "InterswitchPort",
                "ManagementPort",
                "BidirectionalPort",
                "UnconfiguredPort"
            ],
            "enumDescriptions": {
                "BidirectionalPort": "This port connects to any type of device.",
                "DownstreamPort": "This port connects to a target device.",
                "InterswitchPort": "This port connects to another switch.",
                "ManagementPort": "This port connects to a switch manager.",
                "UnconfiguredPort": "This port has not yet been configured.",
                "UpstreamPort": "This port connects to a host device."
            },
            "type": "string"
        },
        "Reset": {
            "additionalProperties": false,
            "description": "This action resets this port.",
            "longDescription": "This action shall reset this port.",
            "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 can accept a request without the parameter and perform 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"
        }
    },
    "owningEntity": "DMTF",
    "release": "2019.4",
    "title": "#Port.v1_2_5.Port"
}