xref: /openbmc/bmcweb/features/redfish/schema/dmtf/json-schema/Switch.v1_10_0.json (revision c6d7a45d427f9a6d9e761afcf305761dca60d7cf)
1*c6d7a45dSGunnar Mills{
2*c6d7a45dSGunnar Mills    "$id": "http://redfish.dmtf.org/schemas/v1/Switch.v1_10_0.json",
3*c6d7a45dSGunnar Mills    "$ref": "#/definitions/Switch",
4*c6d7a45dSGunnar Mills    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json",
5*c6d7a45dSGunnar Mills    "copyright": "Copyright 2014-2025 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
6*c6d7a45dSGunnar Mills    "definitions": {
7*c6d7a45dSGunnar Mills        "Actions": {
8*c6d7a45dSGunnar Mills            "additionalProperties": false,
9*c6d7a45dSGunnar Mills            "description": "The available actions for this resource.",
10*c6d7a45dSGunnar Mills            "longDescription": "This type shall contain the available actions for this resource.",
11*c6d7a45dSGunnar Mills            "patternProperties": {
12*c6d7a45dSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
13*c6d7a45dSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
14*c6d7a45dSGunnar Mills                    "type": [
15*c6d7a45dSGunnar Mills                        "array",
16*c6d7a45dSGunnar Mills                        "boolean",
17*c6d7a45dSGunnar Mills                        "integer",
18*c6d7a45dSGunnar Mills                        "number",
19*c6d7a45dSGunnar Mills                        "null",
20*c6d7a45dSGunnar Mills                        "object",
21*c6d7a45dSGunnar Mills                        "string"
22*c6d7a45dSGunnar Mills                    ]
23*c6d7a45dSGunnar Mills                }
24*c6d7a45dSGunnar Mills            },
25*c6d7a45dSGunnar Mills            "properties": {
26*c6d7a45dSGunnar Mills                "#Switch.Reset": {
27*c6d7a45dSGunnar Mills                    "$ref": "#/definitions/Reset"
28*c6d7a45dSGunnar Mills                },
29*c6d7a45dSGunnar Mills                "Oem": {
30*c6d7a45dSGunnar Mills                    "$ref": "#/definitions/OemActions",
31*c6d7a45dSGunnar Mills                    "description": "The available OEM-specific actions for this resource.",
32*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the available OEM-specific actions for this resource."
33*c6d7a45dSGunnar Mills                }
34*c6d7a45dSGunnar Mills            },
35*c6d7a45dSGunnar Mills            "type": "object"
36*c6d7a45dSGunnar Mills        },
37*c6d7a45dSGunnar Mills        "CXL": {
38*c6d7a45dSGunnar Mills            "additionalProperties": false,
39*c6d7a45dSGunnar Mills            "description": "CXL properties for a switch.",
40*c6d7a45dSGunnar Mills            "longDescription": "This type shall contain CXL-specific properties for a switch.",
41*c6d7a45dSGunnar Mills            "patternProperties": {
42*c6d7a45dSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
43*c6d7a45dSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
44*c6d7a45dSGunnar Mills                    "type": [
45*c6d7a45dSGunnar Mills                        "array",
46*c6d7a45dSGunnar Mills                        "boolean",
47*c6d7a45dSGunnar Mills                        "integer",
48*c6d7a45dSGunnar Mills                        "number",
49*c6d7a45dSGunnar Mills                        "null",
50*c6d7a45dSGunnar Mills                        "object",
51*c6d7a45dSGunnar Mills                        "string"
52*c6d7a45dSGunnar Mills                    ]
53*c6d7a45dSGunnar Mills                }
54*c6d7a45dSGunnar Mills            },
55*c6d7a45dSGunnar Mills            "properties": {
56*c6d7a45dSGunnar Mills                "MaxVCSsSupported": {
57*c6d7a45dSGunnar Mills                    "description": "The maximum number of Virtual CXL Switches (VCSs) supported in this switch.",
58*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the maximum number of Virtual CXL Switches (VCSs) supported in this switch.",
59*c6d7a45dSGunnar Mills                    "readonly": true,
60*c6d7a45dSGunnar Mills                    "type": "integer",
61*c6d7a45dSGunnar Mills                    "versionAdded": "v1_9_0"
62*c6d7a45dSGunnar Mills                },
63*c6d7a45dSGunnar Mills                "NumberOfBoundvPPBs": {
64*c6d7a45dSGunnar Mills                    "description": "The total number of vPPBs (Virtual PCI-to-PCI Bridges) that are currently bound on this switch.",
65*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the total number of vPPBs (Virtual PCI-to-PCI Bridges) that are currently bound on this switch.",
66*c6d7a45dSGunnar Mills                    "readonly": true,
67*c6d7a45dSGunnar Mills                    "type": "integer",
68*c6d7a45dSGunnar Mills                    "versionAdded": "v1_10_0"
69*c6d7a45dSGunnar Mills                },
70*c6d7a45dSGunnar Mills                "PBRCapable": {
71*c6d7a45dSGunnar Mills                    "description": "An indication of whether the switch is capable of performing port-based routing.",
72*c6d7a45dSGunnar Mills                    "longDescription": "This property shall indicate whether the switch is capable of performing port-based routing.",
73*c6d7a45dSGunnar Mills                    "readonly": true,
74*c6d7a45dSGunnar Mills                    "type": "boolean",
75*c6d7a45dSGunnar Mills                    "versionAdded": "v1_10_0"
76*c6d7a45dSGunnar Mills                },
77*c6d7a45dSGunnar Mills                "TotalHDMDecoders": {
78*c6d7a45dSGunnar Mills                    "description": "The total number of HDM (Host Device Memory) decoders available per upstream port.",
79*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the total number of HDM (Host Device Memory) decoders available per upstream port.",
80*c6d7a45dSGunnar Mills                    "readonly": true,
81*c6d7a45dSGunnar Mills                    "type": "integer",
82*c6d7a45dSGunnar Mills                    "versionAdded": "v1_10_0"
83*c6d7a45dSGunnar Mills                },
84*c6d7a45dSGunnar Mills                "TotalNumbervPPBs": {
85*c6d7a45dSGunnar Mills                    "description": "The total number of virtual PCI-to-PCI bridges (vPPBs) supported in this switch.",
86*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the total number of virtual PCI-to-PCI bridges (vPPBs) supported in this switch.",
87*c6d7a45dSGunnar Mills                    "readonly": true,
88*c6d7a45dSGunnar Mills                    "type": "integer",
89*c6d7a45dSGunnar Mills                    "versionAdded": "v1_9_0"
90*c6d7a45dSGunnar Mills                },
91*c6d7a45dSGunnar Mills                "VCS": {
92*c6d7a45dSGunnar Mills                    "$ref": "#/definitions/VCSSwitch",
93*c6d7a45dSGunnar Mills                    "deprecated": "This property has been deprecated in favor of `VirtualCXLSwitches` in `CXL`.",
94*c6d7a45dSGunnar Mills                    "description": "Virtual CXL Switch (VCS) properties for this switch.",
95*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain Virtual CXL Switch (VCS) properties for this switch.",
96*c6d7a45dSGunnar Mills                    "versionAdded": "v1_9_0",
97*c6d7a45dSGunnar Mills                    "versionDeprecated": "v1_9_0"
98*c6d7a45dSGunnar Mills                },
99*c6d7a45dSGunnar Mills                "VirtualCXLSwitches": {
100*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/VirtualCXLSwitchCollection.json#/definitions/VirtualCXLSwitchCollection",
101*c6d7a45dSGunnar Mills                    "description": "The link to the collection of Virtual CXL Switches (VCS) for this CXL switch.",
102*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain a link to a resource collection of type `VirtualCXLSwitchCollection`.",
103*c6d7a45dSGunnar Mills                    "readonly": true,
104*c6d7a45dSGunnar Mills                    "versionAdded": "v1_10_0"
105*c6d7a45dSGunnar Mills                }
106*c6d7a45dSGunnar Mills            },
107*c6d7a45dSGunnar Mills            "type": "object"
108*c6d7a45dSGunnar Mills        },
109*c6d7a45dSGunnar Mills        "Links": {
110*c6d7a45dSGunnar Mills            "additionalProperties": false,
111*c6d7a45dSGunnar Mills            "description": "The links to other resources that are related to this resource.",
112*c6d7a45dSGunnar Mills            "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.",
113*c6d7a45dSGunnar Mills            "patternProperties": {
114*c6d7a45dSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
115*c6d7a45dSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
116*c6d7a45dSGunnar Mills                    "type": [
117*c6d7a45dSGunnar Mills                        "array",
118*c6d7a45dSGunnar Mills                        "boolean",
119*c6d7a45dSGunnar Mills                        "integer",
120*c6d7a45dSGunnar Mills                        "number",
121*c6d7a45dSGunnar Mills                        "null",
122*c6d7a45dSGunnar Mills                        "object",
123*c6d7a45dSGunnar Mills                        "string"
124*c6d7a45dSGunnar Mills                    ]
125*c6d7a45dSGunnar Mills                }
126*c6d7a45dSGunnar Mills            },
127*c6d7a45dSGunnar Mills            "properties": {
128*c6d7a45dSGunnar Mills                "Chassis": {
129*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Chassis.json#/definitions/Chassis",
130*c6d7a45dSGunnar Mills                    "description": "The link to the chassis that contains this switch.",
131*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain a link to a resource of type `Chassis` with which this switch is associated.",
132*c6d7a45dSGunnar Mills                    "readonly": true
133*c6d7a45dSGunnar Mills                },
134*c6d7a45dSGunnar Mills                "Endpoints": {
135*c6d7a45dSGunnar Mills                    "description": "An array of links to the endpoints that connect to this switch.",
136*c6d7a45dSGunnar Mills                    "items": {
137*c6d7a45dSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/v1/Endpoint.json#/definitions/Endpoint"
138*c6d7a45dSGunnar Mills                    },
139*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain an array of links to resources of type `Endpoint` with which this switch is associated.",
140*c6d7a45dSGunnar Mills                    "readonly": true,
141*c6d7a45dSGunnar Mills                    "type": "array",
142*c6d7a45dSGunnar Mills                    "versionAdded": "v1_3_0"
143*c6d7a45dSGunnar Mills                },
144*c6d7a45dSGunnar Mills                "Endpoints@odata.count": {
145*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
146*c6d7a45dSGunnar Mills                },
147*c6d7a45dSGunnar Mills                "ManagedBy": {
148*c6d7a45dSGunnar Mills                    "description": "An array of links to the managers that manage this switch.",
149*c6d7a45dSGunnar Mills                    "items": {
150*c6d7a45dSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/v1/Manager.json#/definitions/Manager"
151*c6d7a45dSGunnar Mills                    },
152*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain an array of links to resources of type `Manager` with which this switch is associated.",
153*c6d7a45dSGunnar Mills                    "readonly": true,
154*c6d7a45dSGunnar Mills                    "type": "array"
155*c6d7a45dSGunnar Mills                },
156*c6d7a45dSGunnar Mills                "ManagedBy@odata.count": {
157*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
158*c6d7a45dSGunnar Mills                },
159*c6d7a45dSGunnar Mills                "Oem": {
160*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
161*c6d7a45dSGunnar Mills                    "description": "The OEM extension property.",
162*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the OEM extensions.  All values for properties contained in this object shall conform to the Redfish Specification-described requirements."
163*c6d7a45dSGunnar Mills                },
164*c6d7a45dSGunnar Mills                "PCIeDevice": {
165*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeDevice.json#/definitions/PCIeDevice",
166*c6d7a45dSGunnar Mills                    "description": "The link to the PCIe device providing this switch.",
167*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain a link to a resource of type `PCIeDevice` that represents the PCIe device providing this switch.",
168*c6d7a45dSGunnar Mills                    "readonly": true,
169*c6d7a45dSGunnar Mills                    "versionAdded": "v1_4_0"
170*c6d7a45dSGunnar Mills                }
171*c6d7a45dSGunnar Mills            },
172*c6d7a45dSGunnar Mills            "type": "object"
173*c6d7a45dSGunnar Mills        },
174*c6d7a45dSGunnar Mills        "OemActions": {
175*c6d7a45dSGunnar Mills            "additionalProperties": true,
176*c6d7a45dSGunnar Mills            "description": "The available OEM-specific actions for this resource.",
177*c6d7a45dSGunnar Mills            "longDescription": "This type shall contain the available OEM-specific actions for this resource.",
178*c6d7a45dSGunnar Mills            "patternProperties": {
179*c6d7a45dSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
180*c6d7a45dSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
181*c6d7a45dSGunnar Mills                    "type": [
182*c6d7a45dSGunnar Mills                        "array",
183*c6d7a45dSGunnar Mills                        "boolean",
184*c6d7a45dSGunnar Mills                        "integer",
185*c6d7a45dSGunnar Mills                        "number",
186*c6d7a45dSGunnar Mills                        "null",
187*c6d7a45dSGunnar Mills                        "object",
188*c6d7a45dSGunnar Mills                        "string"
189*c6d7a45dSGunnar Mills                    ]
190*c6d7a45dSGunnar Mills                }
191*c6d7a45dSGunnar Mills            },
192*c6d7a45dSGunnar Mills            "properties": {},
193*c6d7a45dSGunnar Mills            "type": "object"
194*c6d7a45dSGunnar Mills        },
195*c6d7a45dSGunnar Mills        "Reset": {
196*c6d7a45dSGunnar Mills            "additionalProperties": false,
197*c6d7a45dSGunnar Mills            "description": "This action resets this switch.",
198*c6d7a45dSGunnar Mills            "longDescription": "This action shall reset this switch.",
199*c6d7a45dSGunnar Mills            "parameters": {
200*c6d7a45dSGunnar Mills                "ResetType": {
201*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/ResetType",
202*c6d7a45dSGunnar Mills                    "description": "The type of reset.",
203*c6d7a45dSGunnar Mills                    "longDescription": "This parameter shall contain the type of reset.  The service can accept a request without this parameter and can complete an implementation-specific default reset."
204*c6d7a45dSGunnar Mills                }
205*c6d7a45dSGunnar Mills            },
206*c6d7a45dSGunnar Mills            "patternProperties": {
207*c6d7a45dSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
208*c6d7a45dSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
209*c6d7a45dSGunnar Mills                    "type": [
210*c6d7a45dSGunnar Mills                        "array",
211*c6d7a45dSGunnar Mills                        "boolean",
212*c6d7a45dSGunnar Mills                        "integer",
213*c6d7a45dSGunnar Mills                        "number",
214*c6d7a45dSGunnar Mills                        "null",
215*c6d7a45dSGunnar Mills                        "object",
216*c6d7a45dSGunnar Mills                        "string"
217*c6d7a45dSGunnar Mills                    ]
218*c6d7a45dSGunnar Mills                }
219*c6d7a45dSGunnar Mills            },
220*c6d7a45dSGunnar Mills            "properties": {
221*c6d7a45dSGunnar Mills                "target": {
222*c6d7a45dSGunnar Mills                    "description": "Link to invoke action",
223*c6d7a45dSGunnar Mills                    "format": "uri-reference",
224*c6d7a45dSGunnar Mills                    "type": "string"
225*c6d7a45dSGunnar Mills                },
226*c6d7a45dSGunnar Mills                "title": {
227*c6d7a45dSGunnar Mills                    "description": "Friendly action name",
228*c6d7a45dSGunnar Mills                    "type": "string"
229*c6d7a45dSGunnar Mills                }
230*c6d7a45dSGunnar Mills            },
231*c6d7a45dSGunnar Mills            "type": "object"
232*c6d7a45dSGunnar Mills        },
233*c6d7a45dSGunnar Mills        "Switch": {
234*c6d7a45dSGunnar Mills            "additionalProperties": false,
235*c6d7a45dSGunnar Mills            "description": "The `Switch` schema contains properties that describe a fabric switch.",
236*c6d7a45dSGunnar Mills            "longDescription": "This resource contains a switch for a Redfish implementation.",
237*c6d7a45dSGunnar Mills            "patternProperties": {
238*c6d7a45dSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
239*c6d7a45dSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
240*c6d7a45dSGunnar Mills                    "type": [
241*c6d7a45dSGunnar Mills                        "array",
242*c6d7a45dSGunnar Mills                        "boolean",
243*c6d7a45dSGunnar Mills                        "integer",
244*c6d7a45dSGunnar Mills                        "number",
245*c6d7a45dSGunnar Mills                        "null",
246*c6d7a45dSGunnar Mills                        "object",
247*c6d7a45dSGunnar Mills                        "string"
248*c6d7a45dSGunnar Mills                    ]
249*c6d7a45dSGunnar Mills                }
250*c6d7a45dSGunnar Mills            },
251*c6d7a45dSGunnar Mills            "properties": {
252*c6d7a45dSGunnar Mills                "@odata.context": {
253*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context"
254*c6d7a45dSGunnar Mills                },
255*c6d7a45dSGunnar Mills                "@odata.etag": {
256*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag"
257*c6d7a45dSGunnar Mills                },
258*c6d7a45dSGunnar Mills                "@odata.id": {
259*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id"
260*c6d7a45dSGunnar Mills                },
261*c6d7a45dSGunnar Mills                "@odata.type": {
262*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type"
263*c6d7a45dSGunnar Mills                },
264*c6d7a45dSGunnar Mills                "Actions": {
265*c6d7a45dSGunnar Mills                    "$ref": "#/definitions/Actions",
266*c6d7a45dSGunnar Mills                    "description": "The available actions for this resource.",
267*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the available actions for this resource."
268*c6d7a45dSGunnar Mills                },
269*c6d7a45dSGunnar Mills                "AssetTag": {
270*c6d7a45dSGunnar Mills                    "description": "The user-assigned asset tag for this switch.",
271*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the user-assigned asset tag, which is an identifying string that tracks the drive for inventory purposes.",
272*c6d7a45dSGunnar Mills                    "readonly": false,
273*c6d7a45dSGunnar Mills                    "type": [
274*c6d7a45dSGunnar Mills                        "string",
275*c6d7a45dSGunnar Mills                        "null"
276*c6d7a45dSGunnar Mills                    ]
277*c6d7a45dSGunnar Mills                },
278*c6d7a45dSGunnar Mills                "CXL": {
279*c6d7a45dSGunnar Mills                    "$ref": "#/definitions/CXL",
280*c6d7a45dSGunnar Mills                    "description": "CXL properties for this switch.",
281*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain CXL-specific properties for this switch.",
282*c6d7a45dSGunnar Mills                    "versionAdded": "v1_9_0"
283*c6d7a45dSGunnar Mills                },
284*c6d7a45dSGunnar Mills                "Certificates": {
285*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/CertificateCollection.json#/definitions/CertificateCollection",
286*c6d7a45dSGunnar Mills                    "description": "The link to a collection of certificates for device identity and attestation.",
287*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain a link to a resource collection of type `CertificateCollection` that contains certificates for device identity and attestation.",
288*c6d7a45dSGunnar Mills                    "readonly": true,
289*c6d7a45dSGunnar Mills                    "versionAdded": "v1_5_0"
290*c6d7a45dSGunnar Mills                },
291*c6d7a45dSGunnar Mills                "CurrentBandwidthGbps": {
292*c6d7a45dSGunnar Mills                    "description": "The current internal bandwidth of this switch.",
293*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the internal unidirectional bandwidth of this switch currently negotiated and running.",
294*c6d7a45dSGunnar Mills                    "readonly": true,
295*c6d7a45dSGunnar Mills                    "type": [
296*c6d7a45dSGunnar Mills                        "number",
297*c6d7a45dSGunnar Mills                        "null"
298*c6d7a45dSGunnar Mills                    ],
299*c6d7a45dSGunnar Mills                    "units": "Gbit/s",
300*c6d7a45dSGunnar Mills                    "versionAdded": "v1_4_0"
301*c6d7a45dSGunnar Mills                },
302*c6d7a45dSGunnar Mills                "Description": {
303*c6d7a45dSGunnar Mills                    "anyOf": [
304*c6d7a45dSGunnar Mills                        {
305*c6d7a45dSGunnar Mills                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
306*c6d7a45dSGunnar Mills                        },
307*c6d7a45dSGunnar Mills                        {
308*c6d7a45dSGunnar Mills                            "type": "null"
309*c6d7a45dSGunnar Mills                        }
310*c6d7a45dSGunnar Mills                    ],
311*c6d7a45dSGunnar Mills                    "readonly": true
312*c6d7a45dSGunnar Mills                },
313*c6d7a45dSGunnar Mills                "DomainID": {
314*c6d7a45dSGunnar Mills                    "description": "The domain ID for this switch.",
315*c6d7a45dSGunnar Mills                    "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.",
316*c6d7a45dSGunnar Mills                    "readonly": true,
317*c6d7a45dSGunnar Mills                    "type": [
318*c6d7a45dSGunnar Mills                        "integer",
319*c6d7a45dSGunnar Mills                        "null"
320*c6d7a45dSGunnar Mills                    ]
321*c6d7a45dSGunnar Mills                },
322*c6d7a45dSGunnar Mills                "Enabled": {
323*c6d7a45dSGunnar Mills                    "description": "An indication of whether this switch is enabled.",
324*c6d7a45dSGunnar Mills                    "longDescription": "The value of this property shall indicate if this switch is enabled.",
325*c6d7a45dSGunnar Mills                    "readonly": false,
326*c6d7a45dSGunnar Mills                    "type": "boolean",
327*c6d7a45dSGunnar Mills                    "versionAdded": "v1_6_0"
328*c6d7a45dSGunnar Mills                },
329*c6d7a45dSGunnar Mills                "EnvironmentMetrics": {
330*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/EnvironmentMetrics.json#/definitions/EnvironmentMetrics",
331*c6d7a45dSGunnar Mills                    "description": "The link to the environment metrics for this switch.",
332*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain a link to a resource of type `EnvironmentMetrics` that specifies the environment metrics for this switch.",
333*c6d7a45dSGunnar Mills                    "readonly": true,
334*c6d7a45dSGunnar Mills                    "versionAdded": "v1_6_0"
335*c6d7a45dSGunnar Mills                },
336*c6d7a45dSGunnar Mills                "FirmwareVersion": {
337*c6d7a45dSGunnar Mills                    "description": "The firmware version of this switch.",
338*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the firmware version as defined by the manufacturer for the associated switch.",
339*c6d7a45dSGunnar Mills                    "readonly": true,
340*c6d7a45dSGunnar Mills                    "type": [
341*c6d7a45dSGunnar Mills                        "string",
342*c6d7a45dSGunnar Mills                        "null"
343*c6d7a45dSGunnar Mills                    ],
344*c6d7a45dSGunnar Mills                    "versionAdded": "v1_2_0"
345*c6d7a45dSGunnar Mills                },
346*c6d7a45dSGunnar Mills                "Id": {
347*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
348*c6d7a45dSGunnar Mills                    "readonly": true
349*c6d7a45dSGunnar Mills                },
350*c6d7a45dSGunnar Mills                "IndicatorLED": {
351*c6d7a45dSGunnar Mills                    "anyOf": [
352*c6d7a45dSGunnar Mills                        {
353*c6d7a45dSGunnar Mills                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/IndicatorLED"
354*c6d7a45dSGunnar Mills                        },
355*c6d7a45dSGunnar Mills                        {
356*c6d7a45dSGunnar Mills                            "type": "null"
357*c6d7a45dSGunnar Mills                        }
358*c6d7a45dSGunnar Mills                    ],
359*c6d7a45dSGunnar Mills                    "deprecated": "This property has been deprecated in favor of the `LocationIndicatorActive` property.",
360*c6d7a45dSGunnar Mills                    "description": "The state of the indicator LED, which identifies the switch.",
361*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the state of the indicator light associated with this switch.",
362*c6d7a45dSGunnar Mills                    "readonly": false,
363*c6d7a45dSGunnar Mills                    "versionDeprecated": "v1_4_0"
364*c6d7a45dSGunnar Mills                },
365*c6d7a45dSGunnar Mills                "IsManaged": {
366*c6d7a45dSGunnar Mills                    "description": "An indication of whether the switch is in a managed or unmanaged state.",
367*c6d7a45dSGunnar Mills                    "longDescription": "This property shall indicate whether this switch is in a managed or unmanaged state.",
368*c6d7a45dSGunnar Mills                    "readonly": false,
369*c6d7a45dSGunnar Mills                    "type": [
370*c6d7a45dSGunnar Mills                        "boolean",
371*c6d7a45dSGunnar Mills                        "null"
372*c6d7a45dSGunnar Mills                    ]
373*c6d7a45dSGunnar Mills                },
374*c6d7a45dSGunnar Mills                "Links": {
375*c6d7a45dSGunnar Mills                    "$ref": "#/definitions/Links",
376*c6d7a45dSGunnar Mills                    "description": "The links to other resources that are related to this resource.",
377*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain links to resources that are related to but are not contained by, or subordinate to, this resource."
378*c6d7a45dSGunnar Mills                },
379*c6d7a45dSGunnar Mills                "Location": {
380*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location",
381*c6d7a45dSGunnar Mills                    "description": "The location of the switch.",
382*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the location information of the associated switch.",
383*c6d7a45dSGunnar Mills                    "versionAdded": "v1_1_0"
384*c6d7a45dSGunnar Mills                },
385*c6d7a45dSGunnar Mills                "LocationIndicatorActive": {
386*c6d7a45dSGunnar Mills                    "description": "An indicator allowing an operator to physically locate this resource.",
387*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the state of the indicator used to physically identify or locate this resource.  A write to this property shall update the value of `IndicatorLED` in this resource, if supported, to reflect the implementation of the locating function.",
388*c6d7a45dSGunnar Mills                    "readonly": false,
389*c6d7a45dSGunnar Mills                    "type": [
390*c6d7a45dSGunnar Mills                        "boolean",
391*c6d7a45dSGunnar Mills                        "null"
392*c6d7a45dSGunnar Mills                    ],
393*c6d7a45dSGunnar Mills                    "versionAdded": "v1_4_0"
394*c6d7a45dSGunnar Mills                },
395*c6d7a45dSGunnar Mills                "LogServices": {
396*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/LogServiceCollection.json#/definitions/LogServiceCollection",
397*c6d7a45dSGunnar Mills                    "description": "The link to the collection of log services associated with this switch.",
398*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain a link to a resource collection of type `LogServiceCollection`.",
399*c6d7a45dSGunnar Mills                    "readonly": true
400*c6d7a45dSGunnar Mills                },
401*c6d7a45dSGunnar Mills                "Manufacturer": {
402*c6d7a45dSGunnar Mills                    "description": "The manufacturer of this switch.",
403*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the name of the organization responsible for producing the switch.  This organization may be the entity from which the switch is purchased, but this is not necessarily true.",
404*c6d7a45dSGunnar Mills                    "readonly": true,
405*c6d7a45dSGunnar Mills                    "type": [
406*c6d7a45dSGunnar Mills                        "string",
407*c6d7a45dSGunnar Mills                        "null"
408*c6d7a45dSGunnar Mills                    ]
409*c6d7a45dSGunnar Mills                },
410*c6d7a45dSGunnar Mills                "MaxBandwidthGbps": {
411*c6d7a45dSGunnar Mills                    "description": "The maximum internal bandwidth of this switch as currently configured.",
412*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the maximum internal unidirectional bandwidth this switch is capable of being configured.  If capable of autonegotiation, the switch shall attempt to negotiate to the specified maximum bandwidth.",
413*c6d7a45dSGunnar Mills                    "readonly": true,
414*c6d7a45dSGunnar Mills                    "type": [
415*c6d7a45dSGunnar Mills                        "number",
416*c6d7a45dSGunnar Mills                        "null"
417*c6d7a45dSGunnar Mills                    ],
418*c6d7a45dSGunnar Mills                    "units": "Gbit/s",
419*c6d7a45dSGunnar Mills                    "versionAdded": "v1_4_0"
420*c6d7a45dSGunnar Mills                },
421*c6d7a45dSGunnar Mills                "Measurements": {
422*c6d7a45dSGunnar Mills                    "deprecated": "This property has been deprecated in favor of the `ComponentIntegrity` resource.",
423*c6d7a45dSGunnar Mills                    "description": "An array of DSP0274-defined measurement blocks.",
424*c6d7a45dSGunnar Mills                    "items": {
425*c6d7a45dSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/v1/SoftwareInventory.json#/definitions/MeasurementBlock"
426*c6d7a45dSGunnar Mills                    },
427*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain an array of DSP0274-defined measurement blocks.",
428*c6d7a45dSGunnar Mills                    "type": "array",
429*c6d7a45dSGunnar Mills                    "versionAdded": "v1_5_0",
430*c6d7a45dSGunnar Mills                    "versionDeprecated": "v1_8_0"
431*c6d7a45dSGunnar Mills                },
432*c6d7a45dSGunnar Mills                "Metrics": {
433*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/SwitchMetrics.json#/definitions/SwitchMetrics",
434*c6d7a45dSGunnar Mills                    "description": "The link to the metrics associated with this switch.",
435*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain a link to the metrics associated with this switch.",
436*c6d7a45dSGunnar Mills                    "readonly": true,
437*c6d7a45dSGunnar Mills                    "uriSegment": "SwitchMetrics",
438*c6d7a45dSGunnar Mills                    "versionAdded": "v1_7_0"
439*c6d7a45dSGunnar Mills                },
440*c6d7a45dSGunnar Mills                "Model": {
441*c6d7a45dSGunnar Mills                    "description": "The product model number of this switch.",
442*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the manufacturer-provided model information of this switch.",
443*c6d7a45dSGunnar Mills                    "readonly": true,
444*c6d7a45dSGunnar Mills                    "type": [
445*c6d7a45dSGunnar Mills                        "string",
446*c6d7a45dSGunnar Mills                        "null"
447*c6d7a45dSGunnar Mills                    ]
448*c6d7a45dSGunnar Mills                },
449*c6d7a45dSGunnar Mills                "Name": {
450*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
451*c6d7a45dSGunnar Mills                    "readonly": true
452*c6d7a45dSGunnar Mills                },
453*c6d7a45dSGunnar Mills                "Oem": {
454*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
455*c6d7a45dSGunnar Mills                    "description": "The OEM extension property.",
456*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the OEM extensions.  All values for properties that this object contains shall conform to the Redfish Specification-described requirements."
457*c6d7a45dSGunnar Mills                },
458*c6d7a45dSGunnar Mills                "PartNumber": {
459*c6d7a45dSGunnar Mills                    "description": "The part number for this switch.",
460*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the manufacturer-provided part number for the switch.",
461*c6d7a45dSGunnar Mills                    "readonly": true,
462*c6d7a45dSGunnar Mills                    "type": [
463*c6d7a45dSGunnar Mills                        "string",
464*c6d7a45dSGunnar Mills                        "null"
465*c6d7a45dSGunnar Mills                    ]
466*c6d7a45dSGunnar Mills                },
467*c6d7a45dSGunnar Mills                "Ports": {
468*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/PortCollection.json#/definitions/PortCollection",
469*c6d7a45dSGunnar Mills                    "description": "The link to the collection ports for this switch.",
470*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain a link to a resource collection of type `PortCollection`.",
471*c6d7a45dSGunnar Mills                    "readonly": true
472*c6d7a45dSGunnar Mills                },
473*c6d7a45dSGunnar Mills                "PowerState": {
474*c6d7a45dSGunnar Mills                    "anyOf": [
475*c6d7a45dSGunnar Mills                        {
476*c6d7a45dSGunnar Mills                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/PowerState"
477*c6d7a45dSGunnar Mills                        },
478*c6d7a45dSGunnar Mills                        {
479*c6d7a45dSGunnar Mills                            "type": "null"
480*c6d7a45dSGunnar Mills                        }
481*c6d7a45dSGunnar Mills                    ],
482*c6d7a45dSGunnar Mills                    "description": "The current power state of the switch.",
483*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the power state of the switch.",
484*c6d7a45dSGunnar Mills                    "readonly": true
485*c6d7a45dSGunnar Mills                },
486*c6d7a45dSGunnar Mills                "Redundancy": {
487*c6d7a45dSGunnar Mills                    "autoExpand": true,
488*c6d7a45dSGunnar Mills                    "description": "Redundancy information for the switches.",
489*c6d7a45dSGunnar Mills                    "items": {
490*c6d7a45dSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/v1/Redundancy.json#/definitions/Redundancy"
491*c6d7a45dSGunnar Mills                    },
492*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain an array that shows how this switch is grouped with other switches for form redundancy sets.",
493*c6d7a45dSGunnar Mills                    "type": "array"
494*c6d7a45dSGunnar Mills                },
495*c6d7a45dSGunnar Mills                "Redundancy@odata.count": {
496*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
497*c6d7a45dSGunnar Mills                },
498*c6d7a45dSGunnar Mills                "SKU": {
499*c6d7a45dSGunnar Mills                    "description": "The SKU for this switch.",
500*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the SKU number for this switch.",
501*c6d7a45dSGunnar Mills                    "readonly": true,
502*c6d7a45dSGunnar Mills                    "type": [
503*c6d7a45dSGunnar Mills                        "string",
504*c6d7a45dSGunnar Mills                        "null"
505*c6d7a45dSGunnar Mills                    ]
506*c6d7a45dSGunnar Mills                },
507*c6d7a45dSGunnar Mills                "SerialNumber": {
508*c6d7a45dSGunnar Mills                    "description": "The serial number for this switch.",
509*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain a manufacturer-allocated number that identifies the switch.",
510*c6d7a45dSGunnar Mills                    "readonly": true,
511*c6d7a45dSGunnar Mills                    "type": [
512*c6d7a45dSGunnar Mills                        "string",
513*c6d7a45dSGunnar Mills                        "null"
514*c6d7a45dSGunnar Mills                    ]
515*c6d7a45dSGunnar Mills                },
516*c6d7a45dSGunnar Mills                "Status": {
517*c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status",
518*c6d7a45dSGunnar Mills                    "description": "The status and health of the resource and its subordinate or dependent resources.",
519*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain any status or health properties of the resource."
520*c6d7a45dSGunnar Mills                },
521*c6d7a45dSGunnar Mills                "SupportedProtocols": {
522*c6d7a45dSGunnar Mills                    "description": "The protocols this switch supports.",
523*c6d7a45dSGunnar Mills                    "items": {
524*c6d7a45dSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/v1/Protocol.json#/definitions/Protocol"
525*c6d7a45dSGunnar Mills                    },
526*c6d7a45dSGunnar Mills                    "longDescription": "The property shall contain an array of protocols this switch supports.  If the value of `SwitchType` is `MultiProtocol`, this property shall be required.",
527*c6d7a45dSGunnar Mills                    "readonly": true,
528*c6d7a45dSGunnar Mills                    "type": "array",
529*c6d7a45dSGunnar Mills                    "versionAdded": "v1_3_0"
530*c6d7a45dSGunnar Mills                },
531*c6d7a45dSGunnar Mills                "SwitchType": {
532*c6d7a45dSGunnar Mills                    "anyOf": [
533*c6d7a45dSGunnar Mills                        {
534*c6d7a45dSGunnar Mills                            "$ref": "http://redfish.dmtf.org/schemas/v1/Protocol.json#/definitions/Protocol"
535*c6d7a45dSGunnar Mills                        },
536*c6d7a45dSGunnar Mills                        {
537*c6d7a45dSGunnar Mills                            "type": "null"
538*c6d7a45dSGunnar Mills                        }
539*c6d7a45dSGunnar Mills                    ],
540*c6d7a45dSGunnar Mills                    "description": "The protocol being sent over this switch.",
541*c6d7a45dSGunnar Mills                    "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.",
542*c6d7a45dSGunnar Mills                    "readonly": true
543*c6d7a45dSGunnar Mills                },
544*c6d7a45dSGunnar Mills                "TotalSwitchWidth": {
545*c6d7a45dSGunnar Mills                    "description": "The total number of lanes, phys, or other physical transport links that this switch contains.",
546*c6d7a45dSGunnar Mills                    "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.",
547*c6d7a45dSGunnar Mills                    "readonly": true,
548*c6d7a45dSGunnar Mills                    "type": [
549*c6d7a45dSGunnar Mills                        "integer",
550*c6d7a45dSGunnar Mills                        "null"
551*c6d7a45dSGunnar Mills                    ]
552*c6d7a45dSGunnar Mills                },
553*c6d7a45dSGunnar Mills                "UUID": {
554*c6d7a45dSGunnar Mills                    "anyOf": [
555*c6d7a45dSGunnar Mills                        {
556*c6d7a45dSGunnar Mills                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/UUID"
557*c6d7a45dSGunnar Mills                        },
558*c6d7a45dSGunnar Mills                        {
559*c6d7a45dSGunnar Mills                            "type": "null"
560*c6d7a45dSGunnar Mills                        }
561*c6d7a45dSGunnar Mills                    ],
562*c6d7a45dSGunnar Mills                    "description": "The UUID for this switch.",
563*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain a universally unique identifier number for the switch.",
564*c6d7a45dSGunnar Mills                    "readonly": true,
565*c6d7a45dSGunnar Mills                    "versionAdded": "v1_3_0"
566*c6d7a45dSGunnar Mills                }
567*c6d7a45dSGunnar Mills            },
568*c6d7a45dSGunnar Mills            "required": [
569*c6d7a45dSGunnar Mills                "@odata.id",
570*c6d7a45dSGunnar Mills                "@odata.type",
571*c6d7a45dSGunnar Mills                "Id",
572*c6d7a45dSGunnar Mills                "Name"
573*c6d7a45dSGunnar Mills            ],
574*c6d7a45dSGunnar Mills            "type": "object"
575*c6d7a45dSGunnar Mills        },
576*c6d7a45dSGunnar Mills        "VCSSwitch": {
577*c6d7a45dSGunnar Mills            "additionalProperties": false,
578*c6d7a45dSGunnar Mills            "description": "Virtual CXL Switch (VCS) properties for a switch.",
579*c6d7a45dSGunnar Mills            "longDescription": "This type shall contain Virtual CXL Switch (VCS) properties for a switch.",
580*c6d7a45dSGunnar Mills            "patternProperties": {
581*c6d7a45dSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
582*c6d7a45dSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
583*c6d7a45dSGunnar Mills                    "type": [
584*c6d7a45dSGunnar Mills                        "array",
585*c6d7a45dSGunnar Mills                        "boolean",
586*c6d7a45dSGunnar Mills                        "integer",
587*c6d7a45dSGunnar Mills                        "number",
588*c6d7a45dSGunnar Mills                        "null",
589*c6d7a45dSGunnar Mills                        "object",
590*c6d7a45dSGunnar Mills                        "string"
591*c6d7a45dSGunnar Mills                    ]
592*c6d7a45dSGunnar Mills                }
593*c6d7a45dSGunnar Mills            },
594*c6d7a45dSGunnar Mills            "properties": {
595*c6d7a45dSGunnar Mills                "HDMDecoders": {
596*c6d7a45dSGunnar Mills                    "description": "The number of Host Device Memory (HDM) Decoders supported by this switch.",
597*c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the number of Host Device Memory (HDM) Decoders supported by this switch.",
598*c6d7a45dSGunnar Mills                    "readonly": true,
599*c6d7a45dSGunnar Mills                    "type": "integer",
600*c6d7a45dSGunnar Mills                    "versionAdded": "v1_9_0"
601*c6d7a45dSGunnar Mills                }
602*c6d7a45dSGunnar Mills            },
603*c6d7a45dSGunnar Mills            "type": "object"
604*c6d7a45dSGunnar Mills        }
605*c6d7a45dSGunnar Mills    },
606*c6d7a45dSGunnar Mills    "language": "en",
607*c6d7a45dSGunnar Mills    "owningEntity": "DMTF",
608*c6d7a45dSGunnar Mills    "release": "2025.2",
609*c6d7a45dSGunnar Mills    "title": "#Switch.v1_10_0.Switch"
610*c6d7a45dSGunnar Mills}