summaryrefslogtreecommitdiff
path: root/static
diff options
context:
space:
mode:
authorShantappa Teekappanavar <sbteeks@yahoo.com>2021-12-17 04:02:52 +0300
committerEd Tanous <ed@tanous.net>2022-01-26 21:27:54 +0300
commit9c929bea78857633f2b71b356abf4aa4b1ac56d2 (patch)
tree33c1dc9af157337eebf9589900a3406d777d4c55 /static
parent71b861b64bde714410c4fe94f1628a70cb6b17aa (diff)
downloadbmcweb-9c929bea78857633f2b71b356abf4aa4b1ac56d2.tar.xz
Implement Cable schema
This commit implements Cable and Cable collection schema on bmcweb. Testing: Validator: @odata.id /redfish/v1/Cables odata Exists PASS @odata.type #CableCollection.CableCollection odata Exists PASS Members@odata.count 2 odata Exists PASS Members Array (size: 2) links: Cable Yes ... Members[0] Link: /redfish/v1/Cables/dp0_cable0 link: Cable Yes PASS Members[1] Link: /redfish/v1/Cables/dp0_cable1 link: Cable Yes PASS Description Collection of Cable Entries none Yes PASS Name Cable Collection none Yes PASS Oem - Resource.Oem No Optional Property Name Value Type Exists Result @odata.id /redfish/v1/Cables/dp0_cable0 odata Exists PASS @odata.type #Cable.v1_0_0.Cable odata Exists PASS CableType string Yes PASS LengthMeters - number No Optional Id dp0_cable0 none Yes PASS Name Cable none Yes PASS Property Name Value Type Exists Result @odata.id /redfish/v1/Cables/dp0_cable1 odata Exists PASS @odata.type #Cable.v1_0_0.Cable odata Exists PASS CableType string Yes PASS LengthMeters - number No Optional Id dp0_cable1 none Yes PASS Name Cable none Yes PASS Note: Removed some of the fields that are optional to reduce commit msg Tesing with Curl commands: $ curl -k -X GET https://{$bmc}/redfish/v1/Cables { "@odata.id": "/redfish/v1/Cables", "@odata.type": "#CableCollection.CableCollection", "Description": "Collection of Cable Entries", "Members": [ { "@odata.id": "/redfish/v1/Cables/dp0_cable0" }, { "@odata.id": "/redfish/v1/Cables/dp0_cable1" } ], "Members@odata.count": 2, "Name": "Cable Collection" } $ curl -k -X GET https://{$bmc}/redfish/v1/Cables/dp0_cable0 { "@odata.id": "/redfish/v1/Cables/dp0_cable0", "@odata.type": "#Cable.v1_0_0.Cable", "CableType": "", "Id": "dp0_cable0", "Name": "Cable" } $ curl -k -X GET https://{$bmc}/redfish/v1/Cables/dp0_cable1 { "@odata.id": "/redfish/v1/Cables/dp0_cable1", "@odata.type": "#Cable.v1_0_0.Cable", "CableType": "", "Id": "dp0_cable1", "Name": "Cable" } Set Length property to 1.5 meters using busctl, and check the properties busctl set-property xyz.openbmc_project.Inventory.Manager \ /xyz/openbmc_project/inventory/cables/dp0_cable0 \ xyz.openbmc_project.Inventory.Item.Cable Length d 1.5 $ curl -k -X GET https://{$bmc}/redfish/v1/Cables/dp0_cable0 { "@odata.id": "/redfish/v1/Cables/dp0_cable0", "@odata.type": "#Cable.v1_0_0.Cable", "CableType": "", "Id": "dp0_cable0", "LengthMeters": 1.5, "Name": "Cable" } Signed-off-by: Shantappa Teekappanavar <sbteeks@yahoo.com> Change-Id: I832ff1c1053f4d8100d04a42cc8046a61e8c1613
Diffstat (limited to 'static')
-rw-r--r--static/redfish/v1/$metadata/index.xml8
-rw-r--r--static/redfish/v1/JsonSchemas/Cable/Cable.json497
-rw-r--r--static/redfish/v1/JsonSchemas/Cable/index.json21
-rw-r--r--static/redfish/v1/JsonSchemas/index.json5
-rw-r--r--static/redfish/v1/schema/CableCollection_v1.xml70
-rw-r--r--static/redfish/v1/schema/Cable_v1.xml367
6 files changed, 967 insertions, 1 deletions
diff --git a/static/redfish/v1/$metadata/index.xml b/static/redfish/v1/$metadata/index.xml
index 60e3ede532..f2d30ca645 100644
--- a/static/redfish/v1/$metadata/index.xml
+++ b/static/redfish/v1/$metadata/index.xml
@@ -174,6 +174,14 @@
<edmx:Include Namespace="Bios.v1_1_2"/>
<edmx:Include Namespace="Bios.v1_2_0"/>
</edmx:Reference>
+ <edmx:Reference Uri="/redfish/v1/schema/Cable_v1.xml">
+ <edmx:Include Namespace="Cable"/>
+ <edmx:Include Namespace="Cable.v1_0_0"/>
+ <edmx:Include Namespace="Cable.v1_1_0"/>
+ </edmx:Reference>
+ <edmx:Reference Uri="/redfish/v1/schema/CableCollection_v1.xml">
+ <edmx:Include Namespace="CableCollection"/>
+ </edmx:Reference>
<edmx:Reference Uri="/redfish/v1/schema/Certificate_v1.xml">
<edmx:Include Namespace="Certificate"/>
<edmx:Include Namespace="Certificate.v1_0_0"/>
diff --git a/static/redfish/v1/JsonSchemas/Cable/Cable.json b/static/redfish/v1/JsonSchemas/Cable/Cable.json
new file mode 100644
index 0000000000..00840091b9
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/Cable/Cable.json
@@ -0,0 +1,497 @@
+{
+ "$id": "http://redfish.dmtf.org/schemas/v1/Cable.v1_1_0.json",
+ "$ref": "#/definitions/Cable",
+ "$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": {
+ "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"
+ },
+ "Cable": {
+ "additionalProperties": true,
+ "description": "The Cable schema contains properties that describe a cable connecting endpoints of a chassis, port, or any other cable-compatible endpoint.",
+ "longDescription": "This resource contains a simple cable 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."
+ },
+ "Assembly": {
+ "$ref": "http://redfish.dmtf.org/schemas/v1/Assembly.json#/definitions/Assembly",
+ "description": "The link to the assembly associated with this cable.",
+ "longDescription": "This property shall contain a link to a resource of type Assembly.",
+ "readonly": true
+ },
+ "AssetTag": {
+ "description": "The user-assigned asset tag for this cable.",
+ "longDescription": "This property shall track the cable for inventory purposes.",
+ "readonly": false,
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "CableClass": {
+ "anyOf": [
+ {
+ "$ref": "#/definitions/CableClass"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "The identifier for the downstream resource.",
+ "longDescription": "The property shall contain the cable class for this cable.",
+ "readonly": false
+ },
+ "CableStatus": {
+ "$ref": "#/definitions/CableStatus",
+ "description": "The user-reported status of this resource.",
+ "longDescription": "This property shall contain the user-reported status of this resource.",
+ "readonly": false
+ },
+ "CableType": {
+ "description": "The type of this cable.",
+ "longDescription": "This property shall contain a user-defined type for this cable.",
+ "readonly": false,
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "Description": {
+ "anyOf": [
+ {
+ "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "readonly": true
+ },
+ "DownstreamConnectorTypes": {
+ "description": "The connector types this cable supports.",
+ "items": {
+ "$ref": "#/definitions/ConnectorType"
+ },
+ "longDescription": "The property shall contain an array of connector types this cable supports.",
+ "readonly": false,
+ "type": "array"
+ },
+ "DownstreamName": {
+ "description": "The identifier for the downstream resource.",
+ "longDescription": "This property shall contain any identifier for a downstream resource.",
+ "readonly": false,
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "Id": {
+ "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+ "readonly": true
+ },
+ "LengthMeters": {
+ "description": "The length of the cable in meters.",
+ "longDescription": "This property shall contain the length of the cable in meters.",
+ "readonly": false,
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "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 assembly.",
+ "longDescription": "This property shall contain location information of the associated assembly."
+ },
+ "Manufacturer": {
+ "description": "The manufacturer of this cable.",
+ "longDescription": "This property shall contain the name of the organization responsible for producing the cable. This organization might be the entity from whom the cable is purchased, but this is not necessarily true.",
+ "readonly": false,
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "Model": {
+ "description": "The model number of the cable.",
+ "longDescription": "This property shall contain the name by which the manufacturer generally refers to the cable.",
+ "readonly": false,
+ "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 cable.",
+ "longDescription": "This property shall contain the part number assigned by the organization that is responsible for producing or manufacturing the cable.",
+ "readonly": false,
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "SKU": {
+ "description": "The SKU for this cable.",
+ "longDescription": "This property shall contain the stock-keeping unit (SKU) number for this cable.",
+ "readonly": false,
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "SerialNumber": {
+ "description": "The serial number for this cable.",
+ "longDescription": "This property shall contain the manufacturer-allocated number that identifies the cable.",
+ "readonly": false,
+ "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."
+ },
+ "UpstreamConnectorTypes": {
+ "description": "The connector types this cable supports.",
+ "items": {
+ "$ref": "#/definitions/ConnectorType"
+ },
+ "longDescription": "The property shall contain an array of connector types this cable supports.",
+ "readonly": false,
+ "type": "array"
+ },
+ "UpstreamName": {
+ "description": "The identifier for the downstream resource.",
+ "longDescription": "This property shall contain any identifier for an upstream resource.",
+ "readonly": false,
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "UserDescription": {
+ "description": "The description of this cable.",
+ "longDescription": "This property shall contain a user-defined description for this cable.",
+ "readonly": false,
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "UserLabel": {
+ "description": "A user-assigned label.",
+ "longDescription": "This property shall contain a user-assigned label used to identify this resource. If a value has not been assigned by a user, the value of this property shall be an empty string.",
+ "readonly": false,
+ "type": "string",
+ "versionAdded": "v1_1_0"
+ },
+ "Vendor": {
+ "description": "The manufacturer of this cable.",
+ "longDescription": "This property shall contain the name of the company that provides the final product that includes this cable.",
+ "readonly": false,
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "@odata.id",
+ "@odata.type",
+ "Id",
+ "Name"
+ ],
+ "type": "object"
+ },
+ "CableClass": {
+ "enum": [
+ "Power",
+ "Network",
+ "Storage",
+ "Fan",
+ "PCIe",
+ "USB",
+ "Video",
+ "Fabric",
+ "Serial",
+ "General"
+ ],
+ "enumDescriptions": {
+ "Fabric": "This cable is used for connecting to a fabric.",
+ "Fan": "This cable is used for connecting to a fan system.",
+ "General": "This cable is used for providing general connectivity.",
+ "Network": "This cable is used for connecting to a networking system.",
+ "PCIe": "This cable is used for connecting to a PCIe endpoint.",
+ "Power": "This cable is used for connecting to a power system.",
+ "Serial": "This cable is used for connecting to a serial endpoint.",
+ "Storage": "This cable is used for connecting to a storage system.",
+ "USB": "This cable is used for connecting to a USB endpoint.",
+ "Video": "This cable is used for connecting to a video system."
+ },
+ "type": "string"
+ },
+ "CableStatus": {
+ "enum": [
+ "Normal",
+ "Degraded",
+ "Failed",
+ "Testing",
+ "Disabled",
+ "SetByService"
+ ],
+ "enumDescriptions": {
+ "Degraded": "The cable is degraded.",
+ "Disabled": "The cable is disabled.",
+ "Failed": "The cable has failed.",
+ "Normal": "The cable is operating normally.",
+ "SetByService": "The cable status is set by the service.",
+ "Testing": "The cable is under test."
+ },
+ "enumLongDescriptions": {
+ "Degraded": "This value shall indicate the cable is degraded. The State property in Status shall contain the value `Enabled` and The Health property in Status shall contain the value `Warning`.",
+ "Disabled": "This value shall indicate the cable is disabled. The State property in Status shall contain the value `Disabled`.",
+ "Failed": "This value shall indicate the cable has failed. The State property in Status shall contain the value `Enabled` and The Health property in Status shall contain the value `Critical`.",
+ "Normal": "This value shall indicate the cable is operating normally. The State property in Status shall contain the value `Enabled` and The Health property in Status shall contain the value `OK`.",
+ "SetByService": "This value shall indicate the status for the cable is not defined by the user. If implemented, the service shall determine the value of the State and Health properties in Status.",
+ "Testing": "This value shall indicate the cable is under test. The State property in Status shall contain the value `InTest`."
+ },
+ "type": "string"
+ },
+ "ConnectorType": {
+ "enum": [
+ "ACPower",
+ "DB9",
+ "DCPower",
+ "DisplayPort",
+ "HDMI",
+ "ICI",
+ "IPASS",
+ "PCIe",
+ "Proprietary",
+ "RJ45",
+ "SATA",
+ "SCSI",
+ "SlimSAS",
+ "SFP",
+ "SFPPlus",
+ "USBA",
+ "USBC",
+ "QSFP"
+ ],
+ "enumDescriptions": {
+ "ACPower": "This cable connects to a AC power connector.",
+ "DB9": "This cable connects to a DB9 connector.",
+ "DCPower": "This cable connects to a DC power connector.",
+ "DisplayPort": "This cable connects to a DisplayPort power connector.",
+ "HDMI": "This cable connects to an HDMI connector.",
+ "ICI": "This cable connects to an ICI connector.",
+ "IPASS": "This cable connects to an IPASS connector.",
+ "PCIe": "This cable connects to a PCIe connector.",
+ "Proprietary": "This cable connects to a proprietary connector.",
+ "QSFP": "This cable connects to a QSFP connector.",
+ "RJ45": "This cable connects to an RJ45 connector.",
+ "SATA": "This cable connects to a SATA connector.",
+ "SCSI": "This cable connects to a SCSI connector.",
+ "SFP": "This cable connects to a SFP connector.",
+ "SFPPlus": "This cable connects to a SFPPlus connector.",
+ "SlimSAS": "This cable connects to a SlimSAS connector.",
+ "USBA": "This cable connects to a USB-A connector.",
+ "USBC": "This cable connects to a USB-C connector."
+ },
+ "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": {
+ "DownstreamChassis": {
+ "description": "An array of links to the downstream chassis connected to this cable.",
+ "items": {
+ "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis"
+ },
+ "longDescription": "This property shall contain an array of links to resources of type Chassis that represent the physical downstream containers connected to this cable.",
+ "readonly": false,
+ "type": "array"
+ },
+ "DownstreamChassis@odata.count": {
+ "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
+ },
+ "DownstreamPorts": {
+ "description": "An array of links to the downstream ports connected to this cable.",
+ "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 downstream connections connected to this cable.",
+ "readonly": false,
+ "type": "array"
+ },
+ "DownstreamPorts@odata.count": {
+ "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
+ },
+ "DownstreamResources": {
+ "description": "An array of links to the downstream resources connected to this cable.",
+ "items": {
+ "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Resource"
+ },
+ "longDescription": "This property shall contain an array of links to resources that represent the physical downstream connections connected to this cable. Even if the resource is already referenced in another property within Links, such as DownstreamPorts or DownstreamChassis, it shall also be referenced in this property.",
+ "readonly": false,
+ "type": "array"
+ },
+ "DownstreamResources@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."
+ },
+ "UpstreamChassis": {
+ "description": "An array of links to the upstream chassis connected to this cable.",
+ "items": {
+ "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis"
+ },
+ "longDescription": "This property shall contain an array of links to resources of type Chassis that represent the physical upstream containers connected to this cable.",
+ "readonly": false,
+ "type": "array"
+ },
+ "UpstreamChassis@odata.count": {
+ "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
+ },
+ "UpstreamPorts": {
+ "description": "An array of links to the upstream ports connected to this cable.",
+ "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 upstream connections connected to this cable.",
+ "readonly": false,
+ "type": "array"
+ },
+ "UpstreamPorts@odata.count": {
+ "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
+ },
+ "UpstreamResources": {
+ "description": "An array of links to the upstream resources connected to this cable.",
+ "items": {
+ "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Resource"
+ },
+ "longDescription": "This property shall contain an array of links to resources that represent the physical upstream connections connected to this cable. Even if the resource is already referenced in another property within Links, such as UpstreamPorts or UpstreamChassis, it shall also be referenced in this property.",
+ "readonly": false,
+ "type": "array"
+ },
+ "UpstreamResources@odata.count": {
+ "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
+ }
+ },
+ "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"
+ }
+ },
+ "owningEntity": "DMTF",
+ "release": "2021.3",
+ "title": "#Cable.v1_1_0.Cable"
+} \ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Cable/index.json b/static/redfish/v1/JsonSchemas/Cable/index.json
new file mode 100644
index 0000000000..8198846952
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/Cable/index.json
@@ -0,0 +1,21 @@
+{
+ "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+ "@odata.id": "/redfish/v1/JsonSchemas/Cable",
+ "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+ "Name": "Cable Schema File",
+ "Schema": "#Cable.Cable",
+ "Description": "Cable Schema File Location",
+ "Id": "Cable",
+ "Languages": [
+ "en"
+ ],
+ "Languages@odata.count": 1,
+ "Location": [
+ {
+ "Language": "en",
+ "PublicationUri": "http://redfish.dmtf.org/schemas/v1/Cable.json",
+ "Uri": "/redfish/v1/JsonSchemas/Cable/Cable.json"
+ }
+ ],
+ "Location@odata.count": 1
+} \ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/index.json b/static/redfish/v1/JsonSchemas/index.json
index 8811f26ea6..1a5e6c7117 100644
--- a/static/redfish/v1/JsonSchemas/index.json
+++ b/static/redfish/v1/JsonSchemas/index.json
@@ -4,7 +4,7 @@
"@odata.type": "#JsonSchemaFileCollection.JsonSchemaFileCollection",
"Name": "JsonSchemaFile Collection",
"Description": "Collection of JsonSchemaFiles",
- "Members@odata.count": 58,
+ "Members@odata.count": 59,
"Members": [
{
"@odata.id": "/redfish/v1/JsonSchemas/AccountService"
@@ -22,6 +22,9 @@
"@odata.id": "/redfish/v1/JsonSchemas/Bios"
},
{
+ "@odata.id": "/redfish/v1/JsonSchemas/Cable"
+ },
+ {
"@odata.id": "/redfish/v1/JsonSchemas/Certificate"
},
{
diff --git a/static/redfish/v1/schema/CableCollection_v1.xml b/static/redfish/v1/schema/CableCollection_v1.xml
new file mode 100644
index 0000000000..10bad5356a
--- /dev/null
+++ b/static/redfish/v1/schema/CableCollection_v1.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!---->
+<!--################################################################################ -->
+<!--# Redfish Schema: CableCollection -->
+<!--# -->
+<!--# For a detailed change log, see the README file contained in the DSP8010 bundle, -->
+<!--# available at http://www.dmtf.org/standards/redfish -->
+<!--# Copyright 2014-2021 DMTF. -->
+<!--# For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright -->
+<!--################################################################################ -->
+<!---->
+<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
+
+ <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Core.V1.xml">
+ <edmx:Include Namespace="Org.OData.Core.V1" Alias="OData"/>
+ </edmx:Reference>
+ <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Capabilities.V1.xml">
+ <edmx:Include Namespace="Org.OData.Capabilities.V1" Alias="Capabilities"/>
+ </edmx:Reference>
+ <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Resource_v1.xml">
+ <edmx:Include Namespace="Resource.v1_0_0"/>
+ </edmx:Reference>
+ <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/RedfishExtensions_v1.xml">
+ <edmx:Include Namespace="RedfishExtensions.v1_0_0" Alias="Redfish"/>
+ </edmx:Reference>
+ <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Cable_v1.xml">
+ <edmx:Include Namespace="Cable"/>
+ </edmx:Reference>
+
+ <edmx:DataServices>
+
+ <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="CableCollection">
+ <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+
+ <EntityType Name="CableCollection" BaseType="Resource.v1_0_0.ResourceCollection">
+ <Annotation Term="OData.Description" String="The collection of Cable resource instances."/>
+ <Annotation Term="OData.LongDescription" String="This resource shall represent a resource collection of Cable instances for a Redfish implementation."/>
+ <Annotation Term="Capabilities.InsertRestrictions">
+ <Record>
+ <PropertyValue Property="Insertable" Bool="true"/>
+ <Annotation Term="OData.Description" String="Cables can be added through a POST to the cable collection."/>
+ </Record>
+ </Annotation>
+ <Annotation Term="Capabilities.UpdateRestrictions">
+ <Record>
+ <PropertyValue Property="Updatable" Bool="false"/>
+ </Record>
+ </Annotation>
+ <Annotation Term="Capabilities.DeleteRestrictions">
+ <Record>
+ <PropertyValue Property="Deletable" Bool="false"/>
+ </Record>
+ </Annotation>
+ <Annotation Term="Redfish.Uris">
+ <Collection>
+ <String>/redfish/v1/Cables</String>
+ </Collection>
+ </Annotation>
+ <NavigationProperty Name="Members" Type="Collection(Cable.Cable)">
+ <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
+ <Annotation Term="OData.Description" String="The members of this collection."/>
+ <Annotation Term="OData.LongDescription" String="This property shall contain an array of links to the members of this collection."/>
+ <Annotation Term="OData.AutoExpandReferences"/>
+ <Annotation Term="Redfish.Required"/>
+ </NavigationProperty>
+ </EntityType>
+ </Schema>
+
+ </edmx:DataServices>
+</edmx:Edmx>
diff --git a/static/redfish/v1/schema/Cable_v1.xml b/static/redfish/v1/schema/Cable_v1.xml
new file mode 100644
index 0000000000..feadc62a90
--- /dev/null
+++ b/static/redfish/v1/schema/Cable_v1.xml
@@ -0,0 +1,367 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!---->
+<!--################################################################################ -->
+<!--# Redfish Schema: Cable v1.1.0 -->
+<!--# -->
+<!--# For a detailed change log, see the README file contained in the DSP8010 bundle, -->
+<!--# available at http://www.dmtf.org/standards/redfish -->
+<!--# Copyright 2014-2021 DMTF. -->
+<!--# For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright -->
+<!--################################################################################ -->
+<!---->
+<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
+
+ <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Core.V1.xml">
+ <edmx:Include Namespace="Org.OData.Core.V1" Alias="OData"/>
+ </edmx:Reference>
+ <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Capabilities.V1.xml">
+ <edmx:Include Namespace="Org.OData.Capabilities.V1" Alias="Capabilities"/>
+ </edmx:Reference>
+ <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/RedfishExtensions_v1.xml">
+ <edmx:Include Namespace="RedfishExtensions.v1_0_0" Alias="Redfish"/>
+ </edmx:Reference>
+ <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Resource_v1.xml">
+ <edmx:Include Namespace="Resource"/>
+ <edmx:Include Namespace="Resource.v1_0_0"/>
+ </edmx:Reference>
+ <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Chassis_v1.xml">
+ <edmx:Include Namespace="Chassis"/>
+ </edmx:Reference>
+ <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Port_v1.xml">
+ <edmx:Include Namespace="Port"/>
+ </edmx:Reference>
+ <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Assembly_v1.xml">
+ <edmx:Include Namespace="Assembly"/>
+ </edmx:Reference>
+
+ <edmx:DataServices>
+
+ <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Cable">
+ <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+
+ <EntityType Name="Cable" BaseType="Resource.v1_0_0.Resource" Abstract="true">
+ <Annotation Term="OData.AdditionalProperties" Bool="true"/>
+ <Annotation Term="OData.Description" String="The Cable schema contains properties that describe a cable connecting endpoints of a chassis, port, or any other cable-compatible endpoint."/>
+ <Annotation Term="OData.LongDescription" String="This resource contains a simple cable for a Redfish implementation."/>
+ <Annotation Term="Capabilities.InsertRestrictions">
+ <Record>
+ <PropertyValue Property="Insertable" Bool="false"/>
+ </Record>
+ </Annotation>
+ <Annotation Term="Capabilities.UpdateRestrictions">
+ <Record>
+ <PropertyValue Property="Updatable" Bool="true"/>
+ </Record>
+ </Annotation>
+ <Annotation Term="Capabilities.DeleteRestrictions">
+ <Record>
+ <PropertyValue Property="Deletable" Bool="true"/>
+ </Record>
+ </Annotation>
+ <Annotation Term="Redfish.Uris">
+ <Collection>
+ <String>/redfish/v1/Cables/{CableId}</String>
+ </Collection>
+ </Annotation>
+ </EntityType>
+ </Schema>
+
+ <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Cable.v1_0_0">
+ <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+ <Annotation Term="Redfish.Release" String="2021.2"/>
+
+ <EntityType Name="Cable" BaseType="Cable.Cable">
+ <Property Name="UserDescription" Type="Edm.String">
+ <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
+ <Annotation Term="OData.Description" String="The description of this cable."/>
+ <Annotation Term="OData.LongDescription" String="This property shall contain a user-defined description for this cable."/>
+ </Property>
+ <Property Name="CableType" Type="Edm.String">
+ <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
+ <Annotation Term="OData.Description" String="The type of this cable."/>
+ <Annotation Term="OData.LongDescription" String="This property shall contain a user-defined type for this cable."/>
+ </Property>
+ <Property Name="LengthMeters" Type="Edm.Decimal">
+ <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
+ <Annotation Term="OData.Description" String="The length of the cable in meters."/>
+ <Annotation Term="OData.LongDescription" String="This property shall contain the length of the cable in meters."/>
+ </Property>
+ <Property Name="DownstreamName" Type="Edm.String">
+ <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
+ <Annotation Term="OData.Description" String="The identifier for the downstream resource."/>
+ <Annotation Term="OData.LongDescription" String="This property shall contain any identifier for a downstream resource."/>
+ </Property>
+ <Property Name="UpstreamName" Type="Edm.String">
+ <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
+ <Annotation Term="OData.Description" String="The identifier for the downstream resource."/>
+ <Annotation Term="OData.LongDescription" String="This property shall contain any identifier for an upstream resource."/>
+ </Property>
+ <Property Name="Actions" Type="Cable.v1_0_0.Actions" Nullable="false">
+ <Annotation Term="OData.Description" String="The available actions for this resource."/>
+ <Annotation Term="OData.LongDescription" String="This property shall contain the available actions for this resource."/>
+ </Property>
+ <Property Name="Model" Type="Edm.String">
+ <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
+ <Annotation Term="OData.Description" String="The model number of the cable."/>
+ <Annotation Term="OData.LongDescription" String="This property shall contain the name by which the manufacturer generally refers to the cable."/>
+ </Property>
+ <Property Name="Manufacturer" Type="Edm.String">
+ <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
+ <Annotation Term="OData.Description" String="The manufacturer of this cable."/>
+ <Annotation Term="OData.LongDescription" String="This property shall contain the name of the organization responsible for producing the cable. This organization might be the entity from whom the cable is purchased, but this is not necessarily true."/>
+ </Property>
+ <Property Name="Vendor" Type="Edm.String">
+ <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
+ <Annotation Term="OData.Description" String="The manufacturer of this cable."/>
+ <Annotation Term="OData.LongDescription" String="This property shall contain the name of the company that provides the final product that includes this cable."/>
+ </Property>
+ <Property Name="SKU" Type="Edm.String">
+ <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
+ <Annotation Term="OData.Description" String="The SKU for this cable."/>
+ <Annotation Term="OData.LongDescription" String="This property shall contain the stock-keeping unit (SKU) number for this cable."/>
+ </Property>
+ <Property Name="SerialNumber" Type="Edm.String">
+ <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
+ <Annotation Term="OData.Description" String="The serial number for this cable."/>
+ <Annotation Term="OData.LongDescription" String="This property shall contain the manufacturer-allocated number that identifies the cable."/>
+ </Property>
+ <Property Name="PartNumber" Type="Edm.String">
+ <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
+ <Annotation Term="OData.Description" String="The part number for this cable."/>
+ <Annotation Term="OData.LongDescription" String="This property shall contain the part number assigned by the organization that is responsible for producing or manufacturing the cable."/>
+ </Property>
+ <Property Name="AssetTag" Type="Edm.String">
+ <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
+ <Annotation Term="OData.Description" String="The user-assigned asset tag for this cable."/>
+ <Annotation Term="OData.LongDescription" String="This property shall track the cable for inventory purposes."/>
+ </Property>
+ <Property Name="CableClass" Type="Cable.v1_0_0.CableClass">
+ <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
+ <Annotation Term="OData.Description" String="The identifier for the downstream resource."/>
+ <Annotation Term="OData.LongDescription" String="The property shall contain the cable class for this cable."/>
+ </Property>
+ <Property Name="DownstreamConnectorTypes" Type="Collection(Cable.v1_0_0.ConnectorType)" Nullable="false">
+ <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
+ <Annotation Term="OData.Description" String="The connector types this cable supports."/>
+ <Annotation Term="OData.LongDescription" String="The property shall contain an array of connector types this cable supports."/>
+ </Property>
+ <Property Name="UpstreamConnectorTypes" Type="Collection(Cable.v1_0_0.ConnectorType)" Nullable="false">
+ <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
+ <Annotation Term="OData.Description" String="The connector types this cable supports."/>
+ <Annotation Term="OData.LongDescription" String="The property shall contain an array of connector types this cable supports."/>
+ </Property>
+ <Property Name="Links" Type="Cable.v1_0_0.Links" Nullable="false">
+ <Annotation Term="OData.Description" String="The links to other resources that are related to this resource."/>
+ <Annotation Term="OData.LongDescription" String="This property shall contain links to resources that are related to but are not contained by, or subordinate to, this resource."/>
+ </Property>
+ <Property Name="CableStatus" Type="Cable.v1_0_0.CableStatus" Nullable="false">
+ <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
+ <Annotation Term="OData.Description" String="The user-reported status of this resource."/>
+ <Annotation Term="OData.LongDescription" String="This property shall contain the user-reported status of this resource."/>
+ </Property>
+ <Property Name="Status" Type="Resource.Status" Nullable="false">
+ <Annotation Term="OData.Description" String="The status and health of the resource and its subordinate or dependent resources."/>
+ <Annotation Term="OData.LongDescription" String="This property shall contain any status or health properties of the resource."/>
+ </Property>
+ <Property Name="Location" Type="Resource.Location" Nullable="false">
+ <Annotation Term="OData.Description" String="The location of the assembly."/>
+ <Annotation Term="OData.LongDescription" String="This property shall contain location information of the associated assembly."/>
+ </Property>
+ <NavigationProperty Name="Assembly" Type="Assembly.Assembly" ContainsTarget="true" Nullable="false">
+ <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
+ <Annotation Term="OData.Description" String="The link to the assembly associated with this cable."/>
+ <Annotation Term="OData.LongDescription" String="This property shall contain a link to a resource of type Assembly."/>
+ <Annotation Term="OData.AutoExpandReferences"/>
+ </NavigationProperty>
+ </EntityType>
+
+ <EnumType Name="CableClass">
+ <Member Name="Power">
+ <Annotation Term="OData.Description" String="This cable is used for connecting to a power system."/>
+ </Member>
+ <Member Name="Network">
+ <Annotation Term="OData.Description" String="This cable is used for connecting to a networking system."/>
+ </Member>
+ <Member Name="Storage">
+ <Annotation Term="OData.Description" String="This cable is used for connecting to a storage system."/>
+ </Member>
+ <Member Name="Fan">
+ <Annotation Term="OData.Description" String="This cable is used for connecting to a fan system."/>
+ </Member>
+ <Member Name="PCIe">
+ <Annotation Term="OData.Description" String="This cable is used for connecting to a PCIe endpoint."/>
+ </Member>
+ <Member Name="USB">
+ <Annotation Term="OData.Description" String="This cable is used for connecting to a USB endpoint."/>
+ </Member>
+ <Member Name="Video">
+ <Annotation Term="OData.Description" String="This cable is used for connecting to a video system."/>
+ </Member>
+ <Member Name="Fabric">
+ <Annotation Term="OData.Description" String="This cable is used for connecting to a fabric."/>
+ </Member>
+ <Member Name="Serial">
+ <Annotation Term="OData.Description" String="This cable is used for connecting to a serial endpoint."/>
+ </Member>
+ <Member Name="General">
+ <Annotation Term="OData.Description" String="This cable is used for providing general connectivity."/>
+ </Member>
+ </EnumType>
+
+ <EnumType Name="ConnectorType">
+ <Member Name="ACPower">
+ <Annotation Term="OData.Description" String="This cable connects to a AC power connector."/>
+ </Member>
+ <Member Name="DB9">
+ <Annotation Term="OData.Description" String="This cable connects to a DB9 connector."/>
+ </Member>
+ <Member Name="DCPower">
+ <Annotation Term="OData.Description" String="This cable connects to a DC power connector."/>
+ </Member>
+ <Member Name="DisplayPort">
+ <Annotation Term="OData.Description" String="This cable connects to a DisplayPort power connector."/>
+ </Member>
+ <Member Name="HDMI">
+ <Annotation Term="OData.Description" String="This cable connects to an HDMI connector."/>
+ </Member>
+ <Member Name="ICI">
+ <Annotation Term="OData.Description" String="This cable connects to an ICI connector."/>
+ </Member>
+ <Member Name="IPASS">
+ <Annotation Term="OData.Description" String="This cable connects to an IPASS connector."/>
+ </Member>
+ <Member Name="PCIe">
+ <Annotation Term="OData.Description" String="This cable connects to a PCIe connector."/>
+ </Member>
+ <Member Name="Proprietary">
+ <Annotation Term="OData.Description" String="This cable connects to a proprietary connector."/>
+ </Member>
+ <Member Name="RJ45">
+ <Annotation Term="OData.Description" String="This cable connects to an RJ45 connector."/>
+ </Member>
+ <Member Name="SATA">
+ <Annotation Term="OData.Description" String="This cable connects to a SATA connector."/>
+ </Member>
+ <Member Name="SCSI">
+ <Annotation Term="OData.Description" String="This cable connects to a SCSI connector."/>
+ </Member>
+ <Member Name="SlimSAS">
+ <Annotation Term="OData.Description" String="This cable connects to a SlimSAS connector."/>
+ </Member>
+ <Member Name="SFP">
+ <Annotation Term="OData.Description" String="This cable connects to a SFP connector."/>
+ </Member>
+ <Member Name="SFPPlus">
+ <Annotation Term="OData.Description" String="This cable connects to a SFPPlus connector."/>
+ </Member>
+ <Member Name="USBA">
+ <Annotation Term="OData.Description" String="This cable connects to a USB-A connector."/>
+ </Member>
+ <Member Name="USBC">
+ <Annotation Term="OData.Description" String="This cable connects to a USB-C connector."/>
+ </Member>
+ <Member Name="QSFP">
+ <Annotation Term="OData.Description" String="This cable connects to a QSFP connector."/>
+ </Member>
+ </EnumType>
+
+ <EnumType Name="CableStatus">
+ <Member Name="Normal">
+ <Annotation Term="OData.Description" String="The cable is operating normally."/>
+ <Annotation Term="OData.LongDescription" String="This value shall indicate the cable is operating normally. The State property in Status shall contain the value `Enabled` and The Health property in Status shall contain the value `OK`."/>
+ </Member>
+ <Member Name="Degraded">
+ <Annotation Term="OData.Description" String="The cable is degraded."/>
+ <Annotation Term="OData.LongDescription" String="This value shall indicate the cable is degraded. The State property in Status shall contain the value `Enabled` and The Health property in Status shall contain the value `Warning`."/>
+ </Member>
+ <Member Name="Failed">
+ <Annotation Term="OData.Description" String="The cable has failed."/>
+ <Annotation Term="OData.LongDescription" String="This value shall indicate the cable has failed. The State property in Status shall contain the value `Enabled` and The Health property in Status shall contain the value `Critical`."/>
+ </Member>
+ <Member Name="Testing">
+ <Annotation Term="OData.Description" String="The cable is under test."/>
+ <Annotation Term="OData.LongDescription" String="This value shall indicate the cable is under test. The State property in Status shall contain the value `InTest`."/>
+ </Member>
+ <Member Name="Disabled">
+ <Annotation Term="OData.Description" String="The cable is disabled."/>
+ <Annotation Term="OData.LongDescription" String="This value shall indicate the cable is disabled. The State property in Status shall contain the value `Disabled`."/>
+ </Member>
+ <Member Name="SetByService">
+ <Annotation Term="OData.Description" String="The cable status is set by the service."/>
+ <Annotation Term="OData.LongDescription" String="This value shall indicate the status for the cable is not defined by the user. If implemented, the service shall determine the value of the State and Health properties in Status."/>
+ </Member>
+ </EnumType>
+
+ <ComplexType Name="Actions">
+ <Annotation Term="OData.AdditionalProperties" Bool="false"/>
+ <Annotation Term="OData.Description" String="The available actions for this resource."/>
+ <Annotation Term="OData.LongDescription" String="This type shall contain the available actions for this resource."/>
+ <Property Name="Oem" Type="Cable.v1_0_0.OemActions" Nullable="false">
+ <Annotation Term="OData.Description" String="The available OEM-specific actions for this resource."/>
+ <Annotation Term="OData.LongDescription" String="This property shall contain the available OEM-specific actions for this resource."/>
+ </Property>
+ </ComplexType>
+
+ <ComplexType Name="OemActions">
+ <Annotation Term="OData.AdditionalProperties" Bool="true"/>
+ <Annotation Term="OData.Description" String="The available OEM-specific actions for this resource."/>
+ <Annotation Term="OData.LongDescription" String="This type shall contain the available OEM-specific actions for this resource."/>
+ </ComplexType>
+
+ <ComplexType Name="Links" BaseType="Resource.Links">
+ <Annotation Term="OData.Description" String="The links to other resources that are related to this resource."/>
+ <Annotation Term="OData.LongDescription" String="This Redfish Specification-described type shall contain links to resources that are related to but are not contained by, or subordinate to, this resource."/>
+ <NavigationProperty Name="DownstreamChassis" Type="Collection(Chassis.Chassis)">
+ <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
+ <Annotation Term="OData.Description" String="An array of links to the downstream chassis connected to this cable."/>
+ <Annotation Term="OData.LongDescription" String="This property shall contain an array of links to resources of type Chassis that represent the physical downstream containers connected to this cable."/>
+ <Annotation Term="OData.AutoExpandReferences"/>
+ </NavigationProperty>
+ <NavigationProperty Name="UpstreamChassis" Type="Collection(Chassis.Chassis)">
+ <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
+ <Annotation Term="OData.Description" String="An array of links to the upstream chassis connected to this cable."/>
+ <Annotation Term="OData.LongDescription" String="This property shall contain an array of links to resources of type Chassis that represent the physical upstream containers connected to this cable."/>
+ <Annotation Term="OData.AutoExpandReferences"/>
+ </NavigationProperty>
+ <NavigationProperty Name="DownstreamPorts" Type="Collection(Port.Port)">
+ <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
+ <Annotation Term="OData.Description" String="An array of links to the downstream ports connected to this cable."/>
+ <Annotation Term="OData.LongDescription" String="This property shall contain an array of links to resources of type Port that represent the physical downstream connections connected to this cable."/>
+ <Annotation Term="OData.AutoExpandReferences"/>
+ </NavigationProperty>
+ <NavigationProperty Name="UpstreamPorts" Type="Collection(Port.Port)">
+ <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
+ <Annotation Term="OData.Description" String="An array of links to the upstream ports connected to this cable."/>
+ <Annotation Term="OData.LongDescription" String="This property shall contain an array of links to resources of type Port that represent the physical upstream connections connected to this cable."/>
+ <Annotation Term="OData.AutoExpandReferences"/>
+ </NavigationProperty>
+ <NavigationProperty Name="DownstreamResources" Type="Collection(Resource.Resource)">
+ <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
+ <Annotation Term="OData.Description" String="An array of links to the downstream resources connected to this cable."/>
+ <Annotation Term="OData.LongDescription" String="This property shall contain an array of links to resources that represent the physical downstream connections connected to this cable. Even if the resource is already referenced in another property within Links, such as DownstreamPorts or DownstreamChassis, it shall also be referenced in this property."/>
+ <Annotation Term="OData.AutoExpandReferences"/>
+ </NavigationProperty>
+ <NavigationProperty Name="UpstreamResources" Type="Collection(Resource.Resource)">
+ <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
+ <Annotation Term="OData.Description" String="An array of links to the upstream resources connected to this cable."/>
+ <Annotation Term="OData.LongDescription" String="This property shall contain an array of links to resources that represent the physical upstream connections connected to this cable. Even if the resource is already referenced in another property within Links, such as UpstreamPorts or UpstreamChassis, it shall also be referenced in this property."/>
+ <Annotation Term="OData.AutoExpandReferences"/>
+ </NavigationProperty>
+ </ComplexType>
+ </Schema>
+
+ <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Cable.v1_1_0">
+ <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+ <Annotation Term="Redfish.Release" String="2021.3"/>
+
+ <EntityType Name="Cable" BaseType="Cable.v1_0_0.Cable">
+ <Property Name="UserLabel" Type="Edm.String" Nullable="false">
+ <Annotation Term="OData.Permissions" EnumMember="OData.Permission/ReadWrite"/>
+ <Annotation Term="OData.Description" String="A user-assigned label."/>
+ <Annotation Term="OData.LongDescription" String="This property shall contain a user-assigned label used to identify this resource. If a value has not been assigned by a user, the value of this property shall be an empty string."/>
+ </Property>
+ </EntityType>
+ </Schema>
+
+ </edmx:DataServices>
+</edmx:Edmx>