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