1d125652eSGunnar Mills{
2d125652eSGunnar Mills    "$id": "http://redfish.dmtf.org/schemas/v1/StorageController.v1_9_1.json",
3d125652eSGunnar Mills    "$ref": "#/definitions/StorageController",
4d125652eSGunnar Mills    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json",
5d125652eSGunnar Mills    "copyright": "Copyright 2014-2025 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
6d125652eSGunnar Mills    "definitions": {
7d125652eSGunnar Mills        "ANAAccessState": {
8d125652eSGunnar Mills            "enum": [
9d125652eSGunnar Mills                "Optimized",
10d125652eSGunnar Mills                "NonOptimized",
11d125652eSGunnar Mills                "Inaccessible",
12d125652eSGunnar Mills                "PersistentLoss"
13d125652eSGunnar Mills            ],
14d125652eSGunnar Mills            "enumDescriptions": {
15d125652eSGunnar Mills                "Inaccessible": "Namespaces in this group are inaccessible.  Commands are not able to access user data of namespaces in the ANA group.",
16d125652eSGunnar Mills                "NonOptimized": "Commands processed by a controller that reports this state for an ANA group provide non-optimized access characteristics, such as lower performance or non-optimal use of subsystem resources, to any namespace in the ANA group.",
17d125652eSGunnar Mills                "Optimized": "Commands processed by a controller provide optimized access to any namespace in the ANA group.",
18d125652eSGunnar Mills                "PersistentLoss": "The group is persistently inaccessible.  Commands are persistently not able to access user data of namespaces in the ANA group."
19d125652eSGunnar Mills            },
20d125652eSGunnar Mills            "type": "string"
21d125652eSGunnar Mills        },
22d125652eSGunnar Mills        "ANACharacteristics": {
23d125652eSGunnar Mills            "additionalProperties": false,
24d125652eSGunnar Mills            "description": "The ANA characteristics and volume information for a storage controller.",
25d125652eSGunnar Mills            "longDescription": "This type shall contain the ANA characteristics and volume information for a storage controller.",
26d125652eSGunnar Mills            "patternProperties": {
27d125652eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
28d125652eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
29d125652eSGunnar Mills                    "type": [
30d125652eSGunnar Mills                        "array",
31d125652eSGunnar Mills                        "boolean",
32d125652eSGunnar Mills                        "integer",
33d125652eSGunnar Mills                        "number",
34d125652eSGunnar Mills                        "null",
35d125652eSGunnar Mills                        "object",
36d125652eSGunnar Mills                        "string"
37d125652eSGunnar Mills                    ]
38d125652eSGunnar Mills                }
39d125652eSGunnar Mills            },
40d125652eSGunnar Mills            "properties": {
41d125652eSGunnar Mills                "AccessState": {
42d125652eSGunnar Mills                    "anyOf": [
43d125652eSGunnar Mills                        {
44d125652eSGunnar Mills                            "$ref": "#/definitions/ANAAccessState"
45d125652eSGunnar Mills                        },
46d125652eSGunnar Mills                        {
47d125652eSGunnar Mills                            "type": "null"
48d125652eSGunnar Mills                        }
49d125652eSGunnar Mills                    ],
50d125652eSGunnar Mills                    "description": "Reported ANA access state.",
51d125652eSGunnar Mills                    "longDescription": "This property shall contain the reported ANA access state.",
52d125652eSGunnar Mills                    "readonly": true
53d125652eSGunnar Mills                },
54d125652eSGunnar Mills                "Volume": {
55d125652eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/Volume.json#/definitions/Volume",
56d125652eSGunnar Mills                    "description": "The specified volume.",
57d125652eSGunnar Mills                    "longDescription": "This property shall contain a link to a resource of type `Volume`.",
58d125652eSGunnar Mills                    "readonly": true
59d125652eSGunnar Mills                }
60d125652eSGunnar Mills            },
61d125652eSGunnar Mills            "type": "object"
62d125652eSGunnar Mills        },
63d125652eSGunnar Mills        "Actions": {
64d125652eSGunnar Mills            "additionalProperties": false,
65d125652eSGunnar Mills            "description": "The available actions for this resource.",
66d125652eSGunnar Mills            "longDescription": "This type shall contain the available actions for this resource.",
67d125652eSGunnar Mills            "patternProperties": {
68d125652eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
69d125652eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
70d125652eSGunnar Mills                    "type": [
71d125652eSGunnar Mills                        "array",
72d125652eSGunnar Mills                        "boolean",
73d125652eSGunnar Mills                        "integer",
74d125652eSGunnar Mills                        "number",
75d125652eSGunnar Mills                        "null",
76d125652eSGunnar Mills                        "object",
77d125652eSGunnar Mills                        "string"
78d125652eSGunnar Mills                    ]
79d125652eSGunnar Mills                }
80d125652eSGunnar Mills            },
81d125652eSGunnar Mills            "properties": {
82d125652eSGunnar Mills                "#StorageController.AttachNamespaces": {
83d125652eSGunnar Mills                    "$ref": "#/definitions/AttachNamespaces"
84d125652eSGunnar Mills                },
85d125652eSGunnar Mills                "#StorageController.DetachNamespaces": {
86d125652eSGunnar Mills                    "$ref": "#/definitions/DetachNamespaces"
87d125652eSGunnar Mills                },
88d125652eSGunnar Mills                "#StorageController.SecurityReceive": {
89d125652eSGunnar Mills                    "$ref": "#/definitions/SecurityReceive"
90d125652eSGunnar Mills                },
91d125652eSGunnar Mills                "#StorageController.SecuritySend": {
92d125652eSGunnar Mills                    "$ref": "#/definitions/SecuritySend"
93d125652eSGunnar Mills                },
94d125652eSGunnar Mills                "Oem": {
95d125652eSGunnar Mills                    "$ref": "#/definitions/OemActions",
96d125652eSGunnar Mills                    "description": "The available OEM-specific actions for this resource.",
97d125652eSGunnar Mills                    "longDescription": "This property shall contain the available OEM-specific actions for this resource."
98d125652eSGunnar Mills                }
99d125652eSGunnar Mills            },
100d125652eSGunnar Mills            "type": "object"
101d125652eSGunnar Mills        },
102d125652eSGunnar Mills        "AttachDetachNamespacesResponse": {
103d125652eSGunnar Mills            "additionalProperties": false,
104d125652eSGunnar Mills            "description": "The response body for the `AttachNamespaces` and `DetachNamespaces` actions.",
105d125652eSGunnar Mills            "longDescription": "This type shall contain the properties found in the response body for the `AttachNamespaces` and `DetachNamespaces` actions.",
106d125652eSGunnar Mills            "patternProperties": {
107d125652eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
108d125652eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
109d125652eSGunnar Mills                    "type": [
110d125652eSGunnar Mills                        "array",
111d125652eSGunnar Mills                        "boolean",
112d125652eSGunnar Mills                        "integer",
113d125652eSGunnar Mills                        "number",
114d125652eSGunnar Mills                        "null",
115d125652eSGunnar Mills                        "object",
116d125652eSGunnar Mills                        "string"
117d125652eSGunnar Mills                    ]
118d125652eSGunnar Mills                }
119d125652eSGunnar Mills            },
120d125652eSGunnar Mills            "properties": {
121d125652eSGunnar Mills                "AttachedVolumes": {
122d125652eSGunnar Mills                    "description": "An array of links to volumes that are attached to this controller instance.",
123d125652eSGunnar Mills                    "items": {
124d125652eSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/Volume.json#/definitions/Volume"
125d125652eSGunnar Mills                    },
126d125652eSGunnar Mills                    "longDescription": "This property shall contain an array of links to resources of type `Volume` that are attached to this instance of storage controller.",
127d125652eSGunnar Mills                    "readonly": true,
128d125652eSGunnar Mills                    "type": "array",
129d125652eSGunnar Mills                    "versionAdded": "v1_7_0"
130d125652eSGunnar Mills                },
131d125652eSGunnar Mills                "AttachedVolumes@odata.count": {
132d125652eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
133d125652eSGunnar Mills                }
134d125652eSGunnar Mills            },
135d125652eSGunnar Mills            "required": [
136d125652eSGunnar Mills                "AttachedVolumes"
137d125652eSGunnar Mills            ],
138d125652eSGunnar Mills            "type": "object"
139d125652eSGunnar Mills        },
140d125652eSGunnar Mills        "AttachNamespaces": {
141d125652eSGunnar Mills            "actionResponse": {
142d125652eSGunnar Mills                "$ref": "#/definitions/AttachDetachNamespacesResponse"
143d125652eSGunnar Mills            },
144d125652eSGunnar Mills            "additionalProperties": false,
145d125652eSGunnar Mills            "description": "This action attaches referenced namespaces to the storage controller.  Attached namespaces are added to the `AttachedVolumes` property in `Links`.",
146d125652eSGunnar Mills            "longDescription": "This action shall attach referenced namespaces to the storage controller.  Services shall add the attached namespaces to the `AttachedVolumes` property in `Links`.",
147d125652eSGunnar Mills            "parameters": {
148d125652eSGunnar Mills                "Namespaces": {
149d125652eSGunnar Mills                    "description": "The namespaces to attach to the storage controller.",
150d125652eSGunnar Mills                    "items": {
151d125652eSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/Volume.json#/definitions/Volume"
152d125652eSGunnar Mills                    },
153d125652eSGunnar Mills                    "longDescription": "This parameter shall contain an array of links to resources of type `Volume` that represent the namespaces to attach to the storage controller.",
154d125652eSGunnar Mills                    "requiredParameter": true,
155d125652eSGunnar Mills                    "type": "array"
156d125652eSGunnar Mills                }
157d125652eSGunnar Mills            },
158d125652eSGunnar Mills            "patternProperties": {
159d125652eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
160d125652eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
161d125652eSGunnar Mills                    "type": [
162d125652eSGunnar Mills                        "array",
163d125652eSGunnar Mills                        "boolean",
164d125652eSGunnar Mills                        "integer",
165d125652eSGunnar Mills                        "number",
166d125652eSGunnar Mills                        "null",
167d125652eSGunnar Mills                        "object",
168d125652eSGunnar Mills                        "string"
169d125652eSGunnar Mills                    ]
170d125652eSGunnar Mills                }
171d125652eSGunnar Mills            },
172d125652eSGunnar Mills            "properties": {
173d125652eSGunnar Mills                "target": {
174d125652eSGunnar Mills                    "description": "Link to invoke action",
175d125652eSGunnar Mills                    "format": "uri-reference",
176d125652eSGunnar Mills                    "type": "string"
177d125652eSGunnar Mills                },
178d125652eSGunnar Mills                "title": {
179d125652eSGunnar Mills                    "description": "Friendly action name",
180d125652eSGunnar Mills                    "type": "string"
181d125652eSGunnar Mills                }
182d125652eSGunnar Mills            },
183d125652eSGunnar Mills            "type": "object",
184d125652eSGunnar Mills            "versionAdded": "v1_7_0"
185d125652eSGunnar Mills        },
186d125652eSGunnar Mills        "CacheSummary": {
187d125652eSGunnar Mills            "additionalProperties": false,
188d125652eSGunnar Mills            "description": "This type describes the cache memory of the storage controller in general detail.",
189d125652eSGunnar Mills            "longDescription": "This type shall contain properties that describe the cache memory for a storage controller.",
190d125652eSGunnar Mills            "patternProperties": {
191d125652eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
192d125652eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
193d125652eSGunnar Mills                    "type": [
194d125652eSGunnar Mills                        "array",
195d125652eSGunnar Mills                        "boolean",
196d125652eSGunnar Mills                        "integer",
197d125652eSGunnar Mills                        "number",
198d125652eSGunnar Mills                        "null",
199d125652eSGunnar Mills                        "object",
200d125652eSGunnar Mills                        "string"
201d125652eSGunnar Mills                    ]
202d125652eSGunnar Mills                }
203d125652eSGunnar Mills            },
204d125652eSGunnar Mills            "properties": {
205d125652eSGunnar Mills                "PersistentCacheSizeMiB": {
206d125652eSGunnar Mills                    "description": "The portion of the cache memory that is persistent, measured in MiB.",
207d125652eSGunnar Mills                    "longDescription": "This property shall contain the amount of cache memory that is persistent as measured in mebibytes.  This size shall be less than or equal to the `TotalCacheSizeMiB`.",
208d125652eSGunnar Mills                    "minimum": 0,
209d125652eSGunnar Mills                    "readonly": true,
210d125652eSGunnar Mills                    "type": [
211d125652eSGunnar Mills                        "integer",
212d125652eSGunnar Mills                        "null"
213d125652eSGunnar Mills                    ],
214d125652eSGunnar Mills                    "units": "MiBy"
215d125652eSGunnar Mills                },
216d125652eSGunnar Mills                "Status": {
217d125652eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status",
218d125652eSGunnar Mills                    "description": "The status and health of the resource and its subordinate or dependent resources.",
219d125652eSGunnar Mills                    "longDescription": "This property shall contain any status or health properties of the resource."
220d125652eSGunnar Mills                },
221d125652eSGunnar Mills                "TotalCacheSizeMiB": {
222d125652eSGunnar Mills                    "description": "The total configured cache memory, measured in MiB.",
223d125652eSGunnar Mills                    "longDescription": "This property shall contain the amount of configured cache memory as measured in mebibytes.",
224d125652eSGunnar Mills                    "minimum": 0,
225d125652eSGunnar Mills                    "readonly": true,
226d125652eSGunnar Mills                    "type": [
227d125652eSGunnar Mills                        "integer",
228d125652eSGunnar Mills                        "null"
229d125652eSGunnar Mills                    ],
230d125652eSGunnar Mills                    "units": "MiBy"
231d125652eSGunnar Mills                }
232d125652eSGunnar Mills            },
233d125652eSGunnar Mills            "required": [
234d125652eSGunnar Mills                "TotalCacheSizeMiB"
235d125652eSGunnar Mills            ],
236d125652eSGunnar Mills            "type": "object"
237d125652eSGunnar Mills        },
238d125652eSGunnar Mills        "DetachNamespaces": {
239d125652eSGunnar Mills            "actionResponse": {
240d125652eSGunnar Mills                "$ref": "#/definitions/AttachDetachNamespacesResponse"
241d125652eSGunnar Mills            },
242d125652eSGunnar Mills            "additionalProperties": false,
243d125652eSGunnar Mills            "description": "This action detaches referenced namespaces from the storage controller.  Detached namespaces are removed from the `AttachedVolumes` property in `Links`.",
244d125652eSGunnar Mills            "longDescription": "This action shall detach referenced namespaces from the storage controller.  Services shall remove the detached namespaces from the `AttachedVolumes` property in `Links`.",
245d125652eSGunnar Mills            "parameters": {
246d125652eSGunnar Mills                "Namespaces": {
247d125652eSGunnar Mills                    "description": "The namespaces to detach from the storage controller.",
248d125652eSGunnar Mills                    "items": {
249d125652eSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/Volume.json#/definitions/Volume"
250d125652eSGunnar Mills                    },
251d125652eSGunnar Mills                    "longDescription": "This parameter shall contain an array of links to resources of type `Volume` that represent the namespaces to detach from the storage controller.",
252d125652eSGunnar Mills                    "requiredParameter": true,
253d125652eSGunnar Mills                    "type": "array"
254d125652eSGunnar Mills                }
255d125652eSGunnar Mills            },
256d125652eSGunnar Mills            "patternProperties": {
257d125652eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
258d125652eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
259d125652eSGunnar Mills                    "type": [
260d125652eSGunnar Mills                        "array",
261d125652eSGunnar Mills                        "boolean",
262d125652eSGunnar Mills                        "integer",
263d125652eSGunnar Mills                        "number",
264d125652eSGunnar Mills                        "null",
265d125652eSGunnar Mills                        "object",
266d125652eSGunnar Mills                        "string"
267d125652eSGunnar Mills                    ]
268d125652eSGunnar Mills                }
269d125652eSGunnar Mills            },
270d125652eSGunnar Mills            "properties": {
271d125652eSGunnar Mills                "target": {
272d125652eSGunnar Mills                    "description": "Link to invoke action",
273d125652eSGunnar Mills                    "format": "uri-reference",
274d125652eSGunnar Mills                    "type": "string"
275d125652eSGunnar Mills                },
276d125652eSGunnar Mills                "title": {
277d125652eSGunnar Mills                    "description": "Friendly action name",
278d125652eSGunnar Mills                    "type": "string"
279d125652eSGunnar Mills                }
280d125652eSGunnar Mills            },
281d125652eSGunnar Mills            "type": "object",
282d125652eSGunnar Mills            "versionAdded": "v1_7_0"
283d125652eSGunnar Mills        },
284d125652eSGunnar Mills        "Links": {
285d125652eSGunnar Mills            "additionalProperties": false,
286d125652eSGunnar Mills            "description": "The links to other resources that are related to this resource.",
287d125652eSGunnar 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.",
288d125652eSGunnar Mills            "patternProperties": {
289d125652eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
290d125652eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
291d125652eSGunnar Mills                    "type": [
292d125652eSGunnar Mills                        "array",
293d125652eSGunnar Mills                        "boolean",
294d125652eSGunnar Mills                        "integer",
295d125652eSGunnar Mills                        "number",
296d125652eSGunnar Mills                        "null",
297d125652eSGunnar Mills                        "object",
298d125652eSGunnar Mills                        "string"
299d125652eSGunnar Mills                    ]
300d125652eSGunnar Mills                }
301d125652eSGunnar Mills            },
302d125652eSGunnar Mills            "properties": {
303d125652eSGunnar Mills                "AttachedVolumes": {
304d125652eSGunnar Mills                    "description": "An array of links to volumes that are attached to this controller instance.",
305d125652eSGunnar Mills                    "items": {
306d125652eSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/Volume.json#/definitions/Volume"
307d125652eSGunnar Mills                    },
308d125652eSGunnar Mills                    "longDescription": "This property shall contain an array of links to resources of type `Volume` that are attached to this instance of storage controller.",
309d125652eSGunnar Mills                    "readonly": true,
310d125652eSGunnar Mills                    "type": "array"
311d125652eSGunnar Mills                },
312d125652eSGunnar Mills                "AttachedVolumes@odata.count": {
313d125652eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
314d125652eSGunnar Mills                },
315d125652eSGunnar Mills                "Batteries": {
316d125652eSGunnar Mills                    "description": "The batteries that provide power to this storage controller during a power-loss event.",
317d125652eSGunnar Mills                    "items": {
318d125652eSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/v1/Battery.json#/definitions/Battery"
319d125652eSGunnar Mills                    },
320d125652eSGunnar Mills                    "longDescription": "This property shall contain an array of links to resources of type `Battery` that represent the batteries that provide power to this storage controller during a power-loss event, such as with battery-backed RAID controllers.  This property shall not be present if the batteries power the containing chassis as a whole rather than the individual storage controller.",
321d125652eSGunnar Mills                    "readonly": true,
322d125652eSGunnar Mills                    "type": "array",
323d125652eSGunnar Mills                    "versionAdded": "v1_6_0"
324d125652eSGunnar Mills                },
325d125652eSGunnar Mills                "Batteries@odata.count": {
326d125652eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
327d125652eSGunnar Mills                },
328d125652eSGunnar Mills                "Endpoints": {
329d125652eSGunnar Mills                    "description": "An array of links to the endpoints that connect to this controller.",
330d125652eSGunnar Mills                    "items": {
331d125652eSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/v1/Endpoint.json#/definitions/Endpoint"
332d125652eSGunnar Mills                    },
333d125652eSGunnar Mills                    "longDescription": "This property shall contain an array of links to resources of type `Endpoint` with which this controller is associated.",
334d125652eSGunnar Mills                    "readonly": true,
335d125652eSGunnar Mills                    "type": "array"
336d125652eSGunnar Mills                },
337d125652eSGunnar Mills                "Endpoints@odata.count": {
338d125652eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
339d125652eSGunnar Mills                },
340d125652eSGunnar Mills                "NVMeDiscoveredSubsystems": {
341d125652eSGunnar Mills                    "description": "The NVMe subsystems discovered by this discovery controller.",
342d125652eSGunnar Mills                    "items": {
343d125652eSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/v1/Storage.json#/definitions/Storage"
344d125652eSGunnar Mills                    },
345d125652eSGunnar Mills                    "longDescription": "This property shall contain an array of links to resources of type `Storage` that represent the NVMe subsystems discovered by this discovery controller.  This property shall only be present if `ControllerType` in `NVMeControllerProperties` contains `Discovery`.",
346d125652eSGunnar Mills                    "readonly": true,
347d125652eSGunnar Mills                    "type": "array",
348d125652eSGunnar Mills                    "versionAdded": "v1_7_0"
349d125652eSGunnar Mills                },
350d125652eSGunnar Mills                "NVMeDiscoveredSubsystems@odata.count": {
351d125652eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
352d125652eSGunnar Mills                },
353d125652eSGunnar Mills                "NetworkDeviceFunctions": {
354d125652eSGunnar Mills                    "description": "The network device functions that provide connectivity to this controller.",
355d125652eSGunnar Mills                    "items": {
356d125652eSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkDeviceFunction.json#/definitions/NetworkDeviceFunction"
357d125652eSGunnar Mills                    },
358d125652eSGunnar Mills                    "longDescription": "This property shall contain an array of links to resources of type `NetworkDeviceFunction` that represent the devices that provide connectivity to this controller.",
359d125652eSGunnar Mills                    "readonly": true,
360d125652eSGunnar Mills                    "type": "array",
361d125652eSGunnar Mills                    "versionAdded": "v1_3_0"
362d125652eSGunnar Mills                },
363d125652eSGunnar Mills                "NetworkDeviceFunctions@odata.count": {
364d125652eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
365d125652eSGunnar Mills                },
366d125652eSGunnar Mills                "Oem": {
367d125652eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
368d125652eSGunnar Mills                    "description": "The OEM extension property.",
369d125652eSGunnar 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."
370d125652eSGunnar Mills                },
371d125652eSGunnar Mills                "PCIeFunctions": {
372d125652eSGunnar Mills                    "description": "An array of links to the PCIe functions that the storage controller produces.",
373d125652eSGunnar Mills                    "items": {
374d125652eSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeFunction.json#/definitions/PCIeFunction"
375d125652eSGunnar Mills                    },
376d125652eSGunnar Mills                    "longDescription": "This property shall contain an array of links to resources of type `PCIeFunction` that represent the PCIe functions associated with this resource.",
377d125652eSGunnar Mills                    "readonly": true,
378d125652eSGunnar Mills                    "type": "array"
379d125652eSGunnar Mills                },
380d125652eSGunnar Mills                "PCIeFunctions@odata.count": {
381d125652eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
382d125652eSGunnar Mills                }
383d125652eSGunnar Mills            },
384d125652eSGunnar Mills            "type": "object"
385d125652eSGunnar Mills        },
386d125652eSGunnar Mills        "NVMeControllerAttributes": {
387d125652eSGunnar Mills            "additionalProperties": false,
388d125652eSGunnar Mills            "description": "The NVMe controller attributes for a storage controller.",
389d125652eSGunnar Mills            "longDescription": "This type shall contain NVMe controller attributes for a storage controller.",
390d125652eSGunnar Mills            "patternProperties": {
391d125652eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
392d125652eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
393d125652eSGunnar Mills                    "type": [
394d125652eSGunnar Mills                        "array",
395d125652eSGunnar Mills                        "boolean",
396d125652eSGunnar Mills                        "integer",
397d125652eSGunnar Mills                        "number",
398d125652eSGunnar Mills                        "null",
399d125652eSGunnar Mills                        "object",
400d125652eSGunnar Mills                        "string"
401d125652eSGunnar Mills                    ]
402d125652eSGunnar Mills                }
403d125652eSGunnar Mills            },
404d125652eSGunnar Mills            "properties": {
405d125652eSGunnar Mills                "ReportsNamespaceGranularity": {
406d125652eSGunnar Mills                    "description": "Indicates whether or not the controller supports reporting of Namespace Granularity.",
407d125652eSGunnar Mills                    "longDescription": "This property shall indicate whether or not the controller supports reporting of Namespace Granularity.",
408d125652eSGunnar Mills                    "readonly": true,
409d125652eSGunnar Mills                    "type": [
410d125652eSGunnar Mills                        "boolean",
411d125652eSGunnar Mills                        "null"
412d125652eSGunnar Mills                    ]
413d125652eSGunnar Mills                },
414d125652eSGunnar Mills                "ReportsUUIDList": {
415d125652eSGunnar Mills                    "description": "Indicates whether or not the controller supports reporting of a UUID list.",
416d125652eSGunnar Mills                    "longDescription": "This property shall indicate whether or not the controller supports reporting of a UUID list.",
417d125652eSGunnar Mills                    "readonly": true,
418d125652eSGunnar Mills                    "type": [
419d125652eSGunnar Mills                        "boolean",
420d125652eSGunnar Mills                        "null"
421d125652eSGunnar Mills                    ]
422d125652eSGunnar Mills                },
423d125652eSGunnar Mills                "Supports128BitHostId": {
424d125652eSGunnar Mills                    "description": "Indicates whether or not the controller supports a 128-bit Host Identifier.",
425d125652eSGunnar Mills                    "longDescription": "This property shall indicate whether or not the controller supports a 128-bit Host Identifier.",
426d125652eSGunnar Mills                    "readonly": true,
427d125652eSGunnar Mills                    "type": [
428d125652eSGunnar Mills                        "boolean",
429d125652eSGunnar Mills                        "null"
430d125652eSGunnar Mills                    ]
431d125652eSGunnar Mills                },
432d125652eSGunnar Mills                "SupportsEnduranceGroups": {
433d125652eSGunnar Mills                    "description": "Indicates whether or not the controller supports Endurance Groups.",
434d125652eSGunnar Mills                    "longDescription": "This property shall indicate whether or not the controller supports Endurance Groups.",
435d125652eSGunnar Mills                    "readonly": true,
436d125652eSGunnar Mills                    "type": [
437d125652eSGunnar Mills                        "boolean",
438d125652eSGunnar Mills                        "null"
439d125652eSGunnar Mills                    ]
440d125652eSGunnar Mills                },
441d125652eSGunnar Mills                "SupportsExceedingPowerOfNonOperationalState": {
442d125652eSGunnar Mills                    "description": "Indicates whether or not the controller supports exceeding Power of Non-Operational State in order to execute controller-initiated background operations in a non-operational power state.",
443d125652eSGunnar Mills                    "longDescription": "This property shall indicate whether or not the controller supports exceeding Power of Non-Operational State in order to execute controller-initiated background operations in a non-operational power state.",
444d125652eSGunnar Mills                    "readonly": true,
445d125652eSGunnar Mills                    "type": [
446d125652eSGunnar Mills                        "boolean",
447d125652eSGunnar Mills                        "null"
448d125652eSGunnar Mills                    ]
449d125652eSGunnar Mills                },
450d125652eSGunnar Mills                "SupportsNVMSets": {
451d125652eSGunnar Mills                    "description": "Indicates whether or not the controller supports NVM Sets.",
452d125652eSGunnar Mills                    "longDescription": "This property shall indicate whether or not the controller supports NVM Sets.",
453d125652eSGunnar Mills                    "readonly": true,
454d125652eSGunnar Mills                    "type": [
455d125652eSGunnar Mills                        "boolean",
456d125652eSGunnar Mills                        "null"
457d125652eSGunnar Mills                    ]
458d125652eSGunnar Mills                },
459d125652eSGunnar Mills                "SupportsPredictableLatencyMode": {
460d125652eSGunnar Mills                    "description": "Indicates whether or not the controller supports Predictable Latency Mode.",
461d125652eSGunnar Mills                    "longDescription": "This property shall indicate whether or not the controller supports Predictable Latency Mode.",
462d125652eSGunnar Mills                    "readonly": true,
463d125652eSGunnar Mills                    "type": [
464d125652eSGunnar Mills                        "boolean",
465d125652eSGunnar Mills                        "null"
466d125652eSGunnar Mills                    ]
467d125652eSGunnar Mills                },
468d125652eSGunnar Mills                "SupportsReadRecoveryLevels": {
469d125652eSGunnar Mills                    "description": "Indicates whether or not the controller supports Read Recovery Levels.",
470d125652eSGunnar Mills                    "longDescription": "This property shall indicate whether or not the controller supports Read Recovery Levels.",
471d125652eSGunnar Mills                    "readonly": true,
472d125652eSGunnar Mills                    "type": [
473d125652eSGunnar Mills                        "boolean",
474d125652eSGunnar Mills                        "null"
475d125652eSGunnar Mills                    ]
476d125652eSGunnar Mills                },
477d125652eSGunnar Mills                "SupportsReservations": {
478d125652eSGunnar Mills                    "description": "Indicates if the controller supports reservations.",
479d125652eSGunnar Mills                    "longDescription": "This property shall indicate if the controller supports reservations.",
480d125652eSGunnar Mills                    "readonly": true,
481d125652eSGunnar Mills                    "type": [
482d125652eSGunnar Mills                        "boolean",
483d125652eSGunnar Mills                        "null"
484d125652eSGunnar Mills                    ],
485d125652eSGunnar Mills                    "versionAdded": "v1_2_0"
486d125652eSGunnar Mills                },
487d125652eSGunnar Mills                "SupportsSQAssociations": {
488d125652eSGunnar Mills                    "description": "Indicates whether or not the controller supports SQ Associations.",
489d125652eSGunnar Mills                    "longDescription": "This property shall indicate whether or not the controller supports SQ Associations.",
490d125652eSGunnar Mills                    "readonly": true,
491d125652eSGunnar Mills                    "type": [
492d125652eSGunnar Mills                        "boolean",
493d125652eSGunnar Mills                        "null"
494d125652eSGunnar Mills                    ]
495d125652eSGunnar Mills                },
496d125652eSGunnar Mills                "SupportsTrafficBasedKeepAlive": {
497d125652eSGunnar Mills                    "description": "Indicates whether or not the controller supports restarting the Keep Alive Timer if traffic is processed from an admin command or I/O during a Keep Alive Timeout interval.",
498d125652eSGunnar Mills                    "longDescription": "This property shall indicate whether or not the controller supports restarting the Keep Alive Timer if traffic is processed from an admin command or I/O during a Keep Alive Timeout interval.",
499d125652eSGunnar Mills                    "readonly": true,
500d125652eSGunnar Mills                    "type": [
501d125652eSGunnar Mills                        "boolean",
502d125652eSGunnar Mills                        "null"
503d125652eSGunnar Mills                    ]
504d125652eSGunnar Mills                }
505d125652eSGunnar Mills            },
506d125652eSGunnar Mills            "type": "object"
507d125652eSGunnar Mills        },
508d125652eSGunnar Mills        "NVMeControllerProperties": {
509d125652eSGunnar Mills            "additionalProperties": false,
510d125652eSGunnar Mills            "description": "NVMe-related properties for a storage controller.",
511d125652eSGunnar Mills            "longDescription": "This type shall contain NVMe-related properties for a storage controller.",
512d125652eSGunnar Mills            "patternProperties": {
513d125652eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
514d125652eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
515d125652eSGunnar Mills                    "type": [
516d125652eSGunnar Mills                        "array",
517d125652eSGunnar Mills                        "boolean",
518d125652eSGunnar Mills                        "integer",
519d125652eSGunnar Mills                        "number",
520d125652eSGunnar Mills                        "null",
521d125652eSGunnar Mills                        "object",
522d125652eSGunnar Mills                        "string"
523d125652eSGunnar Mills                    ]
524d125652eSGunnar Mills                }
525d125652eSGunnar Mills            },
526d125652eSGunnar Mills            "properties": {
527d125652eSGunnar Mills                "ANACharacteristics": {
528d125652eSGunnar Mills                    "description": "The ANA characteristics and volume information.",
529d125652eSGunnar Mills                    "items": {
530d125652eSGunnar Mills                        "anyOf": [
531d125652eSGunnar Mills                            {
532d125652eSGunnar Mills                                "$ref": "#/definitions/ANACharacteristics"
533d125652eSGunnar Mills                            },
534d125652eSGunnar Mills                            {
535d125652eSGunnar Mills                                "type": "null"
536d125652eSGunnar Mills                            }
537d125652eSGunnar Mills                        ]
538d125652eSGunnar Mills                    },
539d125652eSGunnar Mills                    "longDescription": "This property shall contain the ANA characteristics and volume information.",
540d125652eSGunnar Mills                    "type": "array"
541d125652eSGunnar Mills                },
542d125652eSGunnar Mills                "AllocatedCompletionQueues": {
543d125652eSGunnar Mills                    "description": "The number of I/O completion queues allocated to this NVMe I/O controller.",
544d125652eSGunnar Mills                    "longDescription": "This property shall contain the number of I/O completion queues allocated to this NVMe I/O controller.",
545d125652eSGunnar Mills                    "readonly": true,
546d125652eSGunnar Mills                    "type": [
547d125652eSGunnar Mills                        "integer",
548d125652eSGunnar Mills                        "null"
549d125652eSGunnar Mills                    ],
550d125652eSGunnar Mills                    "versionAdded": "v1_4_0"
551d125652eSGunnar Mills                },
552d125652eSGunnar Mills                "AllocatedSubmissionQueues": {
553d125652eSGunnar Mills                    "description": "The number of I/O submission queues allocated to this NVMe I/O controller.",
554d125652eSGunnar Mills                    "longDescription": "This property shall contain the number of I/O submission queues allocated to this NVMe I/O controller.",
555d125652eSGunnar Mills                    "readonly": true,
556d125652eSGunnar Mills                    "type": [
557d125652eSGunnar Mills                        "integer",
558d125652eSGunnar Mills                        "null"
559d125652eSGunnar Mills                    ],
560d125652eSGunnar Mills                    "versionAdded": "v1_4_0"
561d125652eSGunnar Mills                },
562d125652eSGunnar Mills                "ControllerType": {
563d125652eSGunnar Mills                    "anyOf": [
564d125652eSGunnar Mills                        {
565d125652eSGunnar Mills                            "$ref": "#/definitions/NVMeControllerType"
566d125652eSGunnar Mills                        },
567d125652eSGunnar Mills                        {
568d125652eSGunnar Mills                            "type": "null"
569d125652eSGunnar Mills                        }
570d125652eSGunnar Mills                    ],
571d125652eSGunnar Mills                    "description": "The type of NVMe controller.",
572d125652eSGunnar Mills                    "longDescription": "This property shall contain the type of NVMe controller.",
573d125652eSGunnar Mills                    "readonly": true
574d125652eSGunnar Mills                },
575d125652eSGunnar Mills                "DiscoveryTransportServiceId": {
576d125652eSGunnar Mills                    "description": "The NVMe discovery transport service identifier for the discovery controller.",
577d125652eSGunnar Mills                    "longDescription": "This property shall contain the NVMe discovery transport service identifier for the discovery controller.  This property shall only be present if `ControllerType` contains `Discovery`.  For NVMe/TCP, the default value should be `8009`.",
578d125652eSGunnar Mills                    "readonly": true,
579d125652eSGunnar Mills                    "type": [
580d125652eSGunnar Mills                        "integer",
581d125652eSGunnar Mills                        "null"
582d125652eSGunnar Mills                    ],
583d125652eSGunnar Mills                    "versionAdded": "v1_9_0"
584d125652eSGunnar Mills                },
585d125652eSGunnar Mills                "MaxAttachedNamespaces": {
586d125652eSGunnar Mills                    "description": "The maximum number of attached namespaces allowed by this NVMe I/O controller.",
587d125652eSGunnar Mills                    "longDescription": "This property shall contain the maximum number of attached namespaces allowed by this NVMe I/O controller.",
588d125652eSGunnar Mills                    "minimum": 0,
589d125652eSGunnar Mills                    "readonly": true,
590d125652eSGunnar Mills                    "type": [
591d125652eSGunnar Mills                        "integer",
592d125652eSGunnar Mills                        "null"
593d125652eSGunnar Mills                    ],
594d125652eSGunnar Mills                    "versionAdded": "v1_8_0"
595d125652eSGunnar Mills                },
596d125652eSGunnar Mills                "MaxQueueSize": {
597d125652eSGunnar Mills                    "description": "The maximum individual queue size that an NVMe I/O controller supports.",
598d125652eSGunnar Mills                    "longDescription": "This property shall contain the maximum individual queue entry size supported per queue.  This is a zero-based value, where the minimum value is one, indicating two entries.  For PCIe, this applies to both submission and completion queues.  For NVMe-oF, this applies only to submission queues.",
599d125652eSGunnar Mills                    "readonly": true,
600d125652eSGunnar Mills                    "type": [
601d125652eSGunnar Mills                        "integer",
602d125652eSGunnar Mills                        "null"
603d125652eSGunnar Mills                    ]
604d125652eSGunnar Mills                },
605d125652eSGunnar Mills                "NVMeControllerAttributes": {
606d125652eSGunnar Mills                    "anyOf": [
607d125652eSGunnar Mills                        {
608d125652eSGunnar Mills                            "$ref": "#/definitions/NVMeControllerAttributes"
609d125652eSGunnar Mills                        },
610d125652eSGunnar Mills                        {
611d125652eSGunnar Mills                            "type": "null"
612d125652eSGunnar Mills                        }
613d125652eSGunnar Mills                    ],
614d125652eSGunnar Mills                    "description": "The NVMe controller attributes.",
615d125652eSGunnar Mills                    "longDescription": "This property shall contain NVMe controller attributes."
616d125652eSGunnar Mills                },
617d125652eSGunnar Mills                "NVMeSMARTCriticalWarnings": {
618d125652eSGunnar Mills                    "anyOf": [
619d125652eSGunnar Mills                        {
620d125652eSGunnar Mills                            "$ref": "#/definitions/NVMeSMARTCriticalWarnings"
621d125652eSGunnar Mills                        },
622d125652eSGunnar Mills                        {
623d125652eSGunnar Mills                            "type": "null"
624d125652eSGunnar Mills                        }
625d125652eSGunnar Mills                    ],
626d125652eSGunnar Mills                    "description": "The NVMe SMART Critical Warnings for this storage controller.  This property contains possible triggers for the predictive drive failure warning for the corresponding drive.",
627d125652eSGunnar Mills                    "longDescription": "This property shall contain the NVMe SMART Critical Warnings for this storage controller.  This property can contain possible triggers for the predictive drive failure warning for the corresponding drive."
628d125652eSGunnar Mills                },
629d125652eSGunnar Mills                "NVMeVersion": {
630d125652eSGunnar Mills                    "description": "The version of the NVMe Base Specification supported.",
631d125652eSGunnar Mills                    "longDescription": "This property shall contain the version of the NVMe Base Specification supported.",
632d125652eSGunnar Mills                    "readonly": true,
633d125652eSGunnar Mills                    "type": [
634d125652eSGunnar Mills                        "string",
635d125652eSGunnar Mills                        "null"
636d125652eSGunnar Mills                    ]
637d125652eSGunnar Mills                }
638d125652eSGunnar Mills            },
639d125652eSGunnar Mills            "type": "object"
640d125652eSGunnar Mills        },
641d125652eSGunnar Mills        "NVMeControllerType": {
642d125652eSGunnar Mills            "enum": [
643d125652eSGunnar Mills                "Admin",
644d125652eSGunnar Mills                "Discovery",
645d125652eSGunnar Mills                "IO"
646d125652eSGunnar Mills            ],
647d125652eSGunnar Mills            "enumDescriptions": {
648d125652eSGunnar Mills                "Admin": "The NVMe controller is an admin controller.",
649d125652eSGunnar Mills                "Discovery": "The NVMe controller is a discovery controller.",
650d125652eSGunnar Mills                "IO": "The NVMe controller is an I/O controller."
651d125652eSGunnar Mills            },
652d125652eSGunnar Mills            "type": "string"
653d125652eSGunnar Mills        },
654d125652eSGunnar Mills        "NVMeSMARTCriticalWarnings": {
655d125652eSGunnar Mills            "additionalProperties": false,
656d125652eSGunnar Mills            "description": "The NVMe SMART Critical Warnings for a storage controller.",
657d125652eSGunnar Mills            "longDescription": "This type shall contain the NVMe SMART Critical Warnings for a storage controller.",
658d125652eSGunnar Mills            "patternProperties": {
659d125652eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
660d125652eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
661d125652eSGunnar Mills                    "type": [
662d125652eSGunnar Mills                        "array",
663d125652eSGunnar Mills                        "boolean",
664d125652eSGunnar Mills                        "integer",
665d125652eSGunnar Mills                        "number",
666d125652eSGunnar Mills                        "null",
667d125652eSGunnar Mills                        "object",
668d125652eSGunnar Mills                        "string"
669d125652eSGunnar Mills                    ]
670d125652eSGunnar Mills                }
671d125652eSGunnar Mills            },
672d125652eSGunnar Mills            "properties": {
673d125652eSGunnar Mills                "MediaInReadOnly": {
674d125652eSGunnar Mills                    "description": "Indicates the media has been placed in read-only mode.",
675d125652eSGunnar Mills                    "longDescription": "This property shall indicate the media has been placed in read-only mode.  This is not set when the read-only condition of the media is a result of a change in the write protection state of a namespace.",
676d125652eSGunnar Mills                    "readonly": true,
677d125652eSGunnar Mills                    "type": [
678d125652eSGunnar Mills                        "boolean",
679d125652eSGunnar Mills                        "null"
680d125652eSGunnar Mills                    ]
681d125652eSGunnar Mills                },
682d125652eSGunnar Mills                "OverallSubsystemDegraded": {
683d125652eSGunnar Mills                    "description": "Indicates that the NVM subsystem reliability has been compromised.",
684d125652eSGunnar Mills                    "longDescription": "This property shall indicate that the NVM subsystem reliability has been compromised.",
685d125652eSGunnar Mills                    "readonly": true,
686d125652eSGunnar Mills                    "type": [
687d125652eSGunnar Mills                        "boolean",
688d125652eSGunnar Mills                        "null"
689d125652eSGunnar Mills                    ]
690d125652eSGunnar Mills                },
691d125652eSGunnar Mills                "PMRUnreliable": {
692d125652eSGunnar Mills                    "description": "The Persistent Memory Region has become unreliable.",
693d125652eSGunnar Mills                    "longDescription": "This property shall indicate that the Persistent Memory Region has become unreliable.  PCIe memory reads can return invalid data or generate poisoned PCIe TLP(s).  Persistent Memory Region memory writes might not update memory or might update memory with undefined data.  The Persistent Memory Region might also have become non-persistent.",
694d125652eSGunnar Mills                    "readonly": true,
695d125652eSGunnar Mills                    "type": [
696d125652eSGunnar Mills                        "boolean",
697d125652eSGunnar Mills                        "null"
698d125652eSGunnar Mills                    ]
699d125652eSGunnar Mills                },
700d125652eSGunnar Mills                "PowerBackupFailed": {
701d125652eSGunnar Mills                    "description": "Indicates that the volatile memory backup device has failed.",
702d125652eSGunnar Mills                    "longDescription": "This property shall indicate that the volatile memory backup device has failed.",
703d125652eSGunnar Mills                    "readonly": true,
704d125652eSGunnar Mills                    "type": [
705d125652eSGunnar Mills                        "boolean",
706d125652eSGunnar Mills                        "null"
707d125652eSGunnar Mills                    ]
708d125652eSGunnar Mills                },
709d125652eSGunnar Mills                "SpareCapacityWornOut": {
710d125652eSGunnar Mills                    "description": "Indicates that the available spare capacity has fallen below the threshold.",
711d125652eSGunnar Mills                    "longDescription": "This property shall indicate that the available spare capacity has fallen below the threshold.",
712d125652eSGunnar Mills                    "readonly": true,
713d125652eSGunnar Mills                    "type": [
714d125652eSGunnar Mills                        "boolean",
715d125652eSGunnar Mills                        "null"
716d125652eSGunnar Mills                    ]
717d125652eSGunnar Mills                }
718d125652eSGunnar Mills            },
719d125652eSGunnar Mills            "type": "object"
720d125652eSGunnar Mills        },
721d125652eSGunnar Mills        "OemActions": {
722d125652eSGunnar Mills            "additionalProperties": true,
723d125652eSGunnar Mills            "description": "The available OEM-specific actions for this resource.",
724d125652eSGunnar Mills            "longDescription": "This type shall contain the available OEM-specific actions for this resource.",
725d125652eSGunnar Mills            "patternProperties": {
726d125652eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
727d125652eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
728d125652eSGunnar Mills                    "type": [
729d125652eSGunnar Mills                        "array",
730d125652eSGunnar Mills                        "boolean",
731d125652eSGunnar Mills                        "integer",
732d125652eSGunnar Mills                        "number",
733d125652eSGunnar Mills                        "null",
734d125652eSGunnar Mills                        "object",
735d125652eSGunnar Mills                        "string"
736d125652eSGunnar Mills                    ]
737d125652eSGunnar Mills                }
738d125652eSGunnar Mills            },
739d125652eSGunnar Mills            "properties": {},
740d125652eSGunnar Mills            "type": "object"
741d125652eSGunnar Mills        },
742d125652eSGunnar Mills        "Rates": {
743d125652eSGunnar Mills            "additionalProperties": false,
744d125652eSGunnar Mills            "description": "This type describes the various controller rates used for processes such as volume rebuild or consistency checks.",
745d125652eSGunnar Mills            "longDescription": "This type shall contain all the rate settings available on the controller.",
746d125652eSGunnar Mills            "patternProperties": {
747d125652eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
748d125652eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
749d125652eSGunnar Mills                    "type": [
750d125652eSGunnar Mills                        "array",
751d125652eSGunnar Mills                        "boolean",
752d125652eSGunnar Mills                        "integer",
753d125652eSGunnar Mills                        "number",
754d125652eSGunnar Mills                        "null",
755d125652eSGunnar Mills                        "object",
756d125652eSGunnar Mills                        "string"
757d125652eSGunnar Mills                    ]
758d125652eSGunnar Mills                }
759d125652eSGunnar Mills            },
760d125652eSGunnar Mills            "properties": {
761d125652eSGunnar Mills                "ConsistencyCheckRatePercent": {
762d125652eSGunnar Mills                    "description": "The percentage of controller resources used for performing a data consistency check on volumes.",
763d125652eSGunnar Mills                    "longDescription": "This property shall contain the percentage, `0` to `100`, of controller resources used for checking data consistency on volumes.",
764d125652eSGunnar Mills                    "maximum": 100,
765d125652eSGunnar Mills                    "minimum": 0,
766d125652eSGunnar Mills                    "readonly": false,
767d125652eSGunnar Mills                    "type": [
768d125652eSGunnar Mills                        "integer",
769d125652eSGunnar Mills                        "null"
770d125652eSGunnar Mills                    ],
771d125652eSGunnar Mills                    "units": "%"
772d125652eSGunnar Mills                },
773d125652eSGunnar Mills                "RebuildRatePercent": {
774d125652eSGunnar Mills                    "description": "The percentage of controller resources used for rebuilding/repairing volumes.",
775d125652eSGunnar Mills                    "longDescription": "This property shall contain the percentage, `0` to `100`, of controller resources used for rebuilding volumes.",
776d125652eSGunnar Mills                    "maximum": 100,
777d125652eSGunnar Mills                    "minimum": 0,
778d125652eSGunnar Mills                    "readonly": false,
779d125652eSGunnar Mills                    "type": [
780d125652eSGunnar Mills                        "integer",
781d125652eSGunnar Mills                        "null"
782d125652eSGunnar Mills                    ],
783d125652eSGunnar Mills                    "units": "%"
784d125652eSGunnar Mills                },
785d125652eSGunnar Mills                "TransformationRatePercent": {
786d125652eSGunnar Mills                    "description": "The percentage of controller resources used for transforming volumes from one configuration to another.",
787d125652eSGunnar Mills                    "longDescription": "This property shall contain the percentage, `0` to `100`, of controller resources used for transforming volumes.",
788d125652eSGunnar Mills                    "maximum": 100,
789d125652eSGunnar Mills                    "minimum": 0,
790d125652eSGunnar Mills                    "readonly": false,
791d125652eSGunnar Mills                    "type": [
792d125652eSGunnar Mills                        "integer",
793d125652eSGunnar Mills                        "null"
794d125652eSGunnar Mills                    ],
795d125652eSGunnar Mills                    "units": "%"
796d125652eSGunnar Mills                }
797d125652eSGunnar Mills            },
798d125652eSGunnar Mills            "type": "object"
799d125652eSGunnar Mills        },
800d125652eSGunnar Mills        "SecurityReceive": {
801d125652eSGunnar Mills            "actionResponse": {
802d125652eSGunnar Mills                "$ref": "#/definitions/SecurityReceiveResponse"
803d125652eSGunnar Mills            },
804d125652eSGunnar Mills            "additionalProperties": false,
805d125652eSGunnar Mills            "description": "This action transfers security protocol data from the controller.  The data transferred from the controller contains the status and data result of one or more `SecuritySend` action requests that were previously submitted to the controller.",
806d125652eSGunnar Mills            "longDescription": "This action shall transfer security protocol data from the controller.  The contents of the request are specified by the 'SECURITY PROTOCOL IN command' section of the SPC-5 Specification.",
807d125652eSGunnar Mills            "parameters": {
808d125652eSGunnar Mills                "AllocationLength": {
809d125652eSGunnar Mills                    "description": "Allocated size for received data.",
810d125652eSGunnar Mills                    "longDescription": "This parameter shall contain the allocated size of the received data, which imposes a maximum length of the data.  The response may contain padding to meet this length.",
811d125652eSGunnar Mills                    "requiredParameter": true,
812d125652eSGunnar Mills                    "type": "integer"
813d125652eSGunnar Mills                },
814d125652eSGunnar Mills                "SecurityProtocol": {
815d125652eSGunnar Mills                    "description": "The security protocol number.",
816d125652eSGunnar Mills                    "longDescription": "This parameter shall contain the numeric identifier of the security protocol, as defined by the 'SECURITY PROTOCOL field in SECURITY PROTOCOL IN command' table of the SPC-5 Specification, and possibly extended by transport-specific standards.  Services shall only accept the values `0`, `1`, or `2`.",
817d125652eSGunnar Mills                    "requiredParameter": true,
818d125652eSGunnar Mills                    "type": "integer"
819d125652eSGunnar Mills                },
820d125652eSGunnar Mills                "SecurityProtocolSpecific": {
821d125652eSGunnar Mills                    "description": "The security protocol-specific parameter.",
822d125652eSGunnar Mills                    "longDescription": "This parameter shall contain the security protocol-specific data for the transfer operation.  The value is defined by the protocol specified by the SecurityProtocolSpecific parameter.",
823d125652eSGunnar Mills                    "requiredParameter": true,
824d125652eSGunnar Mills                    "type": "integer"
825d125652eSGunnar Mills                }
826d125652eSGunnar Mills            },
827d125652eSGunnar Mills            "patternProperties": {
828d125652eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
829d125652eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
830d125652eSGunnar Mills                    "type": [
831d125652eSGunnar Mills                        "array",
832d125652eSGunnar Mills                        "boolean",
833d125652eSGunnar Mills                        "integer",
834d125652eSGunnar Mills                        "number",
835d125652eSGunnar Mills                        "null",
836d125652eSGunnar Mills                        "object",
837d125652eSGunnar Mills                        "string"
838d125652eSGunnar Mills                    ]
839d125652eSGunnar Mills                }
840d125652eSGunnar Mills            },
841d125652eSGunnar Mills            "properties": {
842d125652eSGunnar Mills                "target": {
843d125652eSGunnar Mills                    "description": "Link to invoke action",
844d125652eSGunnar Mills                    "format": "uri-reference",
845d125652eSGunnar Mills                    "type": "string"
846d125652eSGunnar Mills                },
847d125652eSGunnar Mills                "title": {
848d125652eSGunnar Mills                    "description": "Friendly action name",
849d125652eSGunnar Mills                    "type": "string"
850d125652eSGunnar Mills                }
851d125652eSGunnar Mills            },
852d125652eSGunnar Mills            "type": "object",
853d125652eSGunnar Mills            "versionAdded": "v1_7_0"
854d125652eSGunnar Mills        },
855d125652eSGunnar Mills        "SecurityReceiveResponse": {
856d125652eSGunnar Mills            "additionalProperties": false,
857d125652eSGunnar Mills            "description": "The security data transferred from a controller.",
858d125652eSGunnar Mills            "longDescription": "This object shall contain the security data transferred from a controller.",
859d125652eSGunnar Mills            "patternProperties": {
860d125652eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
861d125652eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
862d125652eSGunnar Mills                    "type": [
863d125652eSGunnar Mills                        "array",
864d125652eSGunnar Mills                        "boolean",
865d125652eSGunnar Mills                        "integer",
866d125652eSGunnar Mills                        "number",
867d125652eSGunnar Mills                        "null",
868d125652eSGunnar Mills                        "object",
869d125652eSGunnar Mills                        "string"
870d125652eSGunnar Mills                    ]
871d125652eSGunnar Mills                }
872d125652eSGunnar Mills            },
873d125652eSGunnar Mills            "properties": {
874d125652eSGunnar Mills                "Data": {
875d125652eSGunnar Mills                    "description": "The Base64-encoded security protocol data.",
876d125652eSGunnar Mills                    "longDescription": "This property shall contain a Base64-encoded string, with padding characters, of the security protocol data transferred from a controller.",
877d125652eSGunnar Mills                    "readonly": true,
878d125652eSGunnar Mills                    "type": "string",
879d125652eSGunnar Mills                    "versionAdded": "v1_7_0"
880d125652eSGunnar Mills                }
881d125652eSGunnar Mills            },
882d125652eSGunnar Mills            "type": "object"
883d125652eSGunnar Mills        },
884d125652eSGunnar Mills        "SecuritySend": {
885d125652eSGunnar Mills            "additionalProperties": false,
886d125652eSGunnar Mills            "description": "This action transfers security protocol data to the controller.  The data transferred to the controller contains security protocol-specific commands to be performed by the controller.",
887d125652eSGunnar Mills            "longDescription": "This action shall transfer security protocol data to the controller.  The contents of the request are specified by the 'SECURITY PROTOCOL OUT command' section of the SPC-5 Specification.",
888d125652eSGunnar Mills            "parameters": {
889d125652eSGunnar Mills                "Data": {
890d125652eSGunnar Mills                    "description": "The data to transfer.",
891d125652eSGunnar Mills                    "longDescription": "This parameter shall contain a Base64-encoded string, with padding characters, of the security protocol data to transfer.",
892d125652eSGunnar Mills                    "requiredParameter": true,
893d125652eSGunnar Mills                    "type": "string"
894d125652eSGunnar Mills                },
895d125652eSGunnar Mills                "SecurityProtocol": {
896d125652eSGunnar Mills                    "description": "The security protocol number.",
897d125652eSGunnar Mills                    "longDescription": "This parameter shall contain the numeric identifier of the security protocol, as defined by the 'SECURITY PROTOCOL field in SECURITY PROTOCOL OUT command' table of the SPC-5 Specification, and possibly extended by transport-specific standards.  Services shall only accept the values `1` or `2`.",
898d125652eSGunnar Mills                    "requiredParameter": true,
899d125652eSGunnar Mills                    "type": "integer"
900d125652eSGunnar Mills                },
901d125652eSGunnar Mills                "SecurityProtocolSpecific": {
902d125652eSGunnar Mills                    "description": "The security protocol-specific parameter.",
903d125652eSGunnar Mills                    "longDescription": "This parameter shall contain the security protocol-specific data for the transfer operation.  The value is defined by the protocol specified by the SecurityProtocolSpecific parameter.",
904d125652eSGunnar Mills                    "requiredParameter": true,
905d125652eSGunnar Mills                    "type": "integer"
906d125652eSGunnar Mills                }
907d125652eSGunnar Mills            },
908d125652eSGunnar Mills            "patternProperties": {
909d125652eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
910d125652eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
911d125652eSGunnar Mills                    "type": [
912d125652eSGunnar Mills                        "array",
913d125652eSGunnar Mills                        "boolean",
914d125652eSGunnar Mills                        "integer",
915d125652eSGunnar Mills                        "number",
916d125652eSGunnar Mills                        "null",
917d125652eSGunnar Mills                        "object",
918d125652eSGunnar Mills                        "string"
919d125652eSGunnar Mills                    ]
920d125652eSGunnar Mills                }
921d125652eSGunnar Mills            },
922d125652eSGunnar Mills            "properties": {
923d125652eSGunnar Mills                "target": {
924d125652eSGunnar Mills                    "description": "Link to invoke action",
925d125652eSGunnar Mills                    "format": "uri-reference",
926d125652eSGunnar Mills                    "type": "string"
927d125652eSGunnar Mills                },
928d125652eSGunnar Mills                "title": {
929d125652eSGunnar Mills                    "description": "Friendly action name",
930d125652eSGunnar Mills                    "type": "string"
931d125652eSGunnar Mills                }
932d125652eSGunnar Mills            },
933d125652eSGunnar Mills            "type": "object",
934d125652eSGunnar Mills            "versionAdded": "v1_7_0"
935d125652eSGunnar Mills        },
936d125652eSGunnar Mills        "StorageController": {
937d125652eSGunnar Mills            "additionalProperties": false,
938d125652eSGunnar Mills            "description": "The `StorageController` schema describes a storage controller and its properties.  A storage controller represents a physical or virtual storage device that produces volumes.",
939d125652eSGunnar Mills            "longDescription": "This resource shall represent a storage controller in the Redfish Specification.",
940d125652eSGunnar Mills            "patternProperties": {
941d125652eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
942d125652eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
943d125652eSGunnar Mills                    "type": [
944d125652eSGunnar Mills                        "array",
945d125652eSGunnar Mills                        "boolean",
946d125652eSGunnar Mills                        "integer",
947d125652eSGunnar Mills                        "number",
948d125652eSGunnar Mills                        "null",
949d125652eSGunnar Mills                        "object",
950d125652eSGunnar Mills                        "string"
951d125652eSGunnar Mills                    ]
952d125652eSGunnar Mills                }
953d125652eSGunnar Mills            },
954d125652eSGunnar Mills            "properties": {
955d125652eSGunnar Mills                "@odata.context": {
956d125652eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context"
957d125652eSGunnar Mills                },
958d125652eSGunnar Mills                "@odata.etag": {
959d125652eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag"
960d125652eSGunnar Mills                },
961d125652eSGunnar Mills                "@odata.id": {
962d125652eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id"
963d125652eSGunnar Mills                },
964d125652eSGunnar Mills                "@odata.type": {
965d125652eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type"
966d125652eSGunnar Mills                },
967d125652eSGunnar Mills                "Actions": {
968d125652eSGunnar Mills                    "$ref": "#/definitions/Actions",
969d125652eSGunnar Mills                    "description": "The available actions for this resource.",
970d125652eSGunnar Mills                    "longDescription": "This property shall contain the available actions for this resource."
971d125652eSGunnar Mills                },
972d125652eSGunnar Mills                "Assembly": {
973d125652eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Assembly.json#/definitions/Assembly",
974d125652eSGunnar Mills                    "description": "The link to the assembly associated with this storage controller.",
975d125652eSGunnar Mills                    "longDescription": "This property shall contain a link to a resource of type `Assembly`.",
976d125652eSGunnar Mills                    "readonly": true
977d125652eSGunnar Mills                },
978d125652eSGunnar Mills                "AssetTag": {
979d125652eSGunnar Mills                    "description": "The user-assigned asset tag for this storage controller.",
980d125652eSGunnar Mills                    "longDescription": "This property shall track the storage controller for inventory purposes.",
981d125652eSGunnar Mills                    "readonly": false,
982d125652eSGunnar Mills                    "type": [
983d125652eSGunnar Mills                        "string",
984d125652eSGunnar Mills                        "null"
985d125652eSGunnar Mills                    ]
986d125652eSGunnar Mills                },
987d125652eSGunnar Mills                "CacheSummary": {
988d125652eSGunnar Mills                    "$ref": "#/definitions/CacheSummary",
989d125652eSGunnar Mills                    "description": "The cache memory of the storage controller in general detail.",
990d125652eSGunnar Mills                    "longDescription": "This property shall contain properties that describe the cache memory for this resource."
991d125652eSGunnar Mills                },
992d125652eSGunnar Mills                "Certificates": {
993d125652eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/CertificateCollection.json#/definitions/CertificateCollection",
994d125652eSGunnar Mills                    "description": "The link to a collection of certificates for device identity and attestation.",
995d125652eSGunnar Mills                    "longDescription": "This property shall contain a link to a resource collection of type `CertificateCollection` that contains certificates for device identity and attestation.",
996d125652eSGunnar Mills                    "readonly": true,
997d125652eSGunnar Mills                    "versionAdded": "v1_1_0"
998d125652eSGunnar Mills                },
999d125652eSGunnar Mills                "ControllerRates": {
1000d125652eSGunnar Mills                    "$ref": "#/definitions/Rates",
1001d125652eSGunnar Mills                    "description": "This property describes the various controller rates used for processes such as volume rebuild or consistency checks.",
1002d125652eSGunnar Mills                    "longDescription": "This object shall contain all the rate settings available on the controller."
1003d125652eSGunnar Mills                },
1004d125652eSGunnar Mills                "Description": {
1005d125652eSGunnar Mills                    "anyOf": [
1006d125652eSGunnar Mills                        {
1007d125652eSGunnar Mills                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
1008d125652eSGunnar Mills                        },
1009d125652eSGunnar Mills                        {
1010d125652eSGunnar Mills                            "type": "null"
1011d125652eSGunnar Mills                        }
1012d125652eSGunnar Mills                    ],
1013d125652eSGunnar Mills                    "readonly": true
1014d125652eSGunnar Mills                },
1015d125652eSGunnar Mills                "EnvironmentMetrics": {
1016d125652eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/EnvironmentMetrics.json#/definitions/EnvironmentMetrics",
1017d125652eSGunnar Mills                    "description": "The link to the environment metrics for this storage controller.",
1018d125652eSGunnar Mills                    "longDescription": "This property shall contain a link to a resource of type `EnvironmentMetrics` that represents the environment metrics for this storage controller.",
1019d125652eSGunnar Mills                    "readonly": true,
1020d125652eSGunnar Mills                    "versionAdded": "v1_2_0"
1021d125652eSGunnar Mills                },
1022d125652eSGunnar Mills                "FirmwareVersion": {
1023d125652eSGunnar Mills                    "description": "The firmware version of this storage controller.",
1024d125652eSGunnar Mills                    "longDescription": "This property shall contain the firmware version as defined by the manufacturer for the associated storage controller.",
1025d125652eSGunnar Mills                    "readonly": true,
1026d125652eSGunnar Mills                    "type": [
1027d125652eSGunnar Mills                        "string",
1028d125652eSGunnar Mills                        "null"
1029d125652eSGunnar Mills                    ]
1030d125652eSGunnar Mills                },
1031d125652eSGunnar Mills                "Id": {
1032d125652eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
1033d125652eSGunnar Mills                    "readonly": true
1034d125652eSGunnar Mills                },
1035d125652eSGunnar Mills                "Identifiers": {
1036d125652eSGunnar Mills                    "description": "The durable names for the storage controller.",
1037d125652eSGunnar Mills                    "items": {
1038d125652eSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Identifier"
1039d125652eSGunnar Mills                    },
1040d125652eSGunnar Mills                    "longDescription": "This property shall contain a list of all known durable names for the associated storage controller.",
1041d125652eSGunnar Mills                    "type": "array"
1042d125652eSGunnar Mills                },
1043d125652eSGunnar Mills                "Links": {
1044d125652eSGunnar Mills                    "$ref": "#/definitions/Links",
1045d125652eSGunnar Mills                    "description": "The links to other resources that are related to this resource.",
1046d125652eSGunnar Mills                    "longDescription": "This property shall contain links to resources that are related to but are not contained by, or subordinate to, this resource."
1047d125652eSGunnar Mills                },
1048d125652eSGunnar Mills                "Location": {
1049d125652eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location",
1050d125652eSGunnar Mills                    "description": "The location of the storage controller.",
1051d125652eSGunnar Mills                    "longDescription": "This property shall contain the location information of the associated storage controller."
1052d125652eSGunnar Mills                },
1053d125652eSGunnar Mills                "Manufacturer": {
1054d125652eSGunnar Mills                    "description": "The manufacturer of this storage controller.",
1055d125652eSGunnar Mills                    "longDescription": "This property shall contain the name of the organization responsible for producing the storage controller.  This organization may be the entity from which the storage controller is purchased, but this is not necessarily true.",
1056d125652eSGunnar Mills                    "readonly": true,
1057d125652eSGunnar Mills                    "type": [
1058d125652eSGunnar Mills                        "string",
1059d125652eSGunnar Mills                        "null"
1060d125652eSGunnar Mills                    ]
1061d125652eSGunnar Mills                },
1062d125652eSGunnar Mills                "Measurements": {
1063d125652eSGunnar Mills                    "deprecated": "This property has been deprecated in favor of the `ComponentIntegrity` resource.",
1064d125652eSGunnar Mills                    "description": "An array of DSP0274-defined measurement blocks.",
1065d125652eSGunnar Mills                    "items": {
1066d125652eSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/v1/SoftwareInventory.json#/definitions/MeasurementBlock"
1067d125652eSGunnar Mills                    },
1068d125652eSGunnar Mills                    "longDescription": "This property shall contain an array of DSP0274-defined measurement blocks.",
1069d125652eSGunnar Mills                    "type": "array",
1070d125652eSGunnar Mills                    "versionAdded": "v1_1_0",
1071d125652eSGunnar Mills                    "versionDeprecated": "v1_5_0"
1072d125652eSGunnar Mills                },
1073d125652eSGunnar Mills                "Metrics": {
1074d125652eSGunnar Mills                    "anyOf": [
1075d125652eSGunnar Mills                        {
1076d125652eSGunnar Mills                            "$ref": "http://redfish.dmtf.org/schemas/v1/StorageControllerMetrics.json#/definitions/StorageControllerMetrics"
1077d125652eSGunnar Mills                        },
1078d125652eSGunnar Mills                        {
1079d125652eSGunnar Mills                            "type": "null"
1080d125652eSGunnar Mills                        }
1081d125652eSGunnar Mills                    ],
1082d125652eSGunnar Mills                    "description": "The link to the metrics associated with this storage controller.",
1083d125652eSGunnar Mills                    "longDescription": "This property shall contain a link to the metrics associated with this storage controller.",
1084d125652eSGunnar Mills                    "readonly": true,
1085d125652eSGunnar Mills                    "versionAdded": "v1_7_0"
1086d125652eSGunnar Mills                },
1087d125652eSGunnar Mills                "Model": {
1088d125652eSGunnar Mills                    "description": "The model number for the storage controller.",
1089d125652eSGunnar Mills                    "longDescription": "This property shall contain the name by which the manufacturer generally refers to the storage controller.",
1090d125652eSGunnar Mills                    "readonly": true,
1091d125652eSGunnar Mills                    "type": [
1092d125652eSGunnar Mills                        "string",
1093d125652eSGunnar Mills                        "null"
1094d125652eSGunnar Mills                    ]
1095d125652eSGunnar Mills                },
1096d125652eSGunnar Mills                "NVMeControllerProperties": {
1097d125652eSGunnar Mills                    "$ref": "#/definitions/NVMeControllerProperties",
1098d125652eSGunnar Mills                    "description": "The NVMe-related properties for this storage controller.",
1099d125652eSGunnar Mills                    "longDescription": "This property shall contain NVMe-related properties for this storage controller."
1100d125652eSGunnar Mills                },
1101d125652eSGunnar Mills                "Name": {
1102d125652eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
1103d125652eSGunnar Mills                    "readonly": true
1104d125652eSGunnar Mills                },
1105d125652eSGunnar Mills                "Oem": {
1106d125652eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
1107d125652eSGunnar Mills                    "description": "The OEM extension property.",
1108d125652eSGunnar 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."
1109d125652eSGunnar Mills                },
1110d125652eSGunnar Mills                "PCIeInterface": {
1111d125652eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeDevice.json#/definitions/PCIeInterface",
1112d125652eSGunnar Mills                    "description": "The PCIe interface details for this controller.",
1113d125652eSGunnar Mills                    "longDescription": "This property shall contain details on the PCIe interface that connects this PCIe-based controller to its host."
1114d125652eSGunnar Mills                },
1115d125652eSGunnar Mills                "PartNumber": {
1116d125652eSGunnar Mills                    "description": "The part number for this storage controller.",
1117d125652eSGunnar Mills                    "longDescription": "This property shall contain a part number assigned by the organization that is responsible for producing or manufacturing the storage controller.",
1118d125652eSGunnar Mills                    "readonly": true,
1119d125652eSGunnar Mills                    "type": [
1120d125652eSGunnar Mills                        "string",
1121d125652eSGunnar Mills                        "null"
1122d125652eSGunnar Mills                    ]
1123d125652eSGunnar Mills                },
1124d125652eSGunnar Mills                "Ports": {
1125d125652eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/PortCollection.json#/definitions/PortCollection",
1126d125652eSGunnar Mills                    "description": "The link to the collection of ports that exist on the storage controller.",
1127d125652eSGunnar Mills                    "longDescription": "This property shall contain a link to a resource collection of type `PortCollection`.",
1128d125652eSGunnar Mills                    "readonly": true
1129d125652eSGunnar Mills                },
1130d125652eSGunnar Mills                "SKU": {
1131d125652eSGunnar Mills                    "description": "The SKU for this storage controller.",
1132d125652eSGunnar Mills                    "longDescription": "This property shall contain the stock-keeping unit number for this storage controller.",
1133d125652eSGunnar Mills                    "readonly": true,
1134d125652eSGunnar Mills                    "type": [
1135d125652eSGunnar Mills                        "string",
1136d125652eSGunnar Mills                        "null"
1137d125652eSGunnar Mills                    ]
1138d125652eSGunnar Mills                },
1139d125652eSGunnar Mills                "SerialNumber": {
1140d125652eSGunnar Mills                    "description": "The serial number for this storage controller.",
1141d125652eSGunnar Mills                    "longDescription": "This property shall contain a manufacturer-allocated number that identifies the storage controller.",
1142d125652eSGunnar Mills                    "readonly": true,
1143d125652eSGunnar Mills                    "type": [
1144d125652eSGunnar Mills                        "string",
1145d125652eSGunnar Mills                        "null"
1146d125652eSGunnar Mills                    ]
1147d125652eSGunnar Mills                },
1148d125652eSGunnar Mills                "SpeedGbps": {
1149d125652eSGunnar Mills                    "description": "The maximum speed of the storage controller's device interface.",
1150d125652eSGunnar Mills                    "longDescription": "This property shall represent the maximum supported speed of the storage bus interface, in Gbit/s.  The specified interface connects the controller to the storage devices, not the controller to a host.  For example, SAS bus not PCIe host bus.",
1151d125652eSGunnar Mills                    "minimum": 0,
1152d125652eSGunnar Mills                    "readonly": true,
1153d125652eSGunnar Mills                    "type": [
1154d125652eSGunnar Mills                        "number",
1155d125652eSGunnar Mills                        "null"
1156d125652eSGunnar Mills                    ],
1157d125652eSGunnar Mills                    "units": "Gbit/s"
1158d125652eSGunnar Mills                },
1159d125652eSGunnar Mills                "Status": {
1160d125652eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status",
1161d125652eSGunnar Mills                    "description": "The status and health of the resource and its subordinate or dependent resources.",
1162d125652eSGunnar Mills                    "longDescription": "This property shall contain any status or health properties of the resource."
1163d125652eSGunnar Mills                },
1164d125652eSGunnar Mills                "SupportedControllerProtocols": {
1165d125652eSGunnar Mills                    "description": "The supported set of protocols for communicating with this storage controller.",
1166d125652eSGunnar Mills                    "items": {
1167d125652eSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/v1/Protocol.json#/definitions/Protocol"
1168d125652eSGunnar Mills                    },
1169d125652eSGunnar Mills                    "longDescription": "This property shall contain the supported set of protocols for communicating with this storage controller.",
1170d125652eSGunnar Mills                    "readonly": true,
1171d125652eSGunnar Mills                    "type": "array"
1172d125652eSGunnar Mills                },
1173d125652eSGunnar Mills                "SupportedDeviceProtocols": {
1174d125652eSGunnar Mills                    "description": "The protocols that the storage controller can use to communicate with attached devices.",
1175d125652eSGunnar Mills                    "items": {
1176d125652eSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/v1/Protocol.json#/definitions/Protocol"
1177d125652eSGunnar Mills                    },
1178d125652eSGunnar Mills                    "longDescription": "This property shall contain the set of protocols this storage controller can use to communicate with attached devices.",
1179d125652eSGunnar Mills                    "readonly": true,
1180d125652eSGunnar Mills                    "type": "array"
1181d125652eSGunnar Mills                },
1182d125652eSGunnar Mills                "SupportedRAIDTypes": {
1183d125652eSGunnar Mills                    "description": "The set of RAID types supported by the storage controller.",
1184d125652eSGunnar Mills                    "items": {
1185d125652eSGunnar Mills                        "anyOf": [
1186d125652eSGunnar Mills                            {
1187d125652eSGunnar Mills                                "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/Volume.json#/definitions/RAIDType"
1188d125652eSGunnar Mills                            },
1189d125652eSGunnar Mills                            {
1190d125652eSGunnar Mills                                "type": "null"
1191d125652eSGunnar Mills                            }
1192d125652eSGunnar Mills                        ]
1193d125652eSGunnar Mills                    },
1194d125652eSGunnar Mills                    "longDescription": "This property shall contain an array of all the RAID types supported by this controller.",
1195d125652eSGunnar Mills                    "readonly": true,
1196d125652eSGunnar Mills                    "type": "array"
1197d125652eSGunnar Mills                }
1198d125652eSGunnar Mills            },
1199d125652eSGunnar Mills            "required": [
1200d125652eSGunnar Mills                "@odata.id",
1201d125652eSGunnar Mills                "@odata.type",
1202d125652eSGunnar Mills                "Id",
1203d125652eSGunnar Mills                "Name"
1204d125652eSGunnar Mills            ],
1205d125652eSGunnar Mills            "type": "object"
1206d125652eSGunnar Mills        }
1207d125652eSGunnar Mills    },
1208d125652eSGunnar Mills    "language": "en",
1209d125652eSGunnar Mills    "owningEntity": "DMTF",
1210d125652eSGunnar Mills    "release": "2024.4",
1211d125652eSGunnar Mills    "title": "#StorageController.v1_9_1.StorageController"
1212d125652eSGunnar Mills}