15ecf7b4eSGunnar Mills{
25ecf7b4eSGunnar Mills    "$id": "http://redfish.dmtf.org/schemas/v1/StorageController.v1_10_0.json",
35ecf7b4eSGunnar Mills    "$ref": "#/definitions/StorageController",
45ecf7b4eSGunnar Mills    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json",
55ecf7b4eSGunnar Mills    "copyright": "Copyright 2014-2025 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
65ecf7b4eSGunnar Mills    "definitions": {
75ecf7b4eSGunnar Mills        "ANAAccessState": {
85ecf7b4eSGunnar Mills            "enum": [
95ecf7b4eSGunnar Mills                "Optimized",
105ecf7b4eSGunnar Mills                "NonOptimized",
115ecf7b4eSGunnar Mills                "Inaccessible",
125ecf7b4eSGunnar Mills                "PersistentLoss"
135ecf7b4eSGunnar Mills            ],
145ecf7b4eSGunnar Mills            "enumDescriptions": {
155ecf7b4eSGunnar Mills                "Inaccessible": "Namespaces in this group are inaccessible.  Commands are not able to access user data of namespaces in the ANA group.",
165ecf7b4eSGunnar 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.",
175ecf7b4eSGunnar Mills                "Optimized": "Commands processed by a controller provide optimized access to any namespace in the ANA group.",
185ecf7b4eSGunnar Mills                "PersistentLoss": "The group is persistently inaccessible.  Commands are persistently not able to access user data of namespaces in the ANA group."
195ecf7b4eSGunnar Mills            },
205ecf7b4eSGunnar Mills            "type": "string"
215ecf7b4eSGunnar Mills        },
225ecf7b4eSGunnar Mills        "ANACharacteristics": {
235ecf7b4eSGunnar Mills            "additionalProperties": false,
245ecf7b4eSGunnar Mills            "description": "The ANA characteristics and volume information for a storage controller.",
255ecf7b4eSGunnar Mills            "longDescription": "This type shall contain the ANA characteristics and volume information for a storage controller.",
265ecf7b4eSGunnar Mills            "patternProperties": {
275ecf7b4eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
285ecf7b4eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
295ecf7b4eSGunnar Mills                    "type": [
305ecf7b4eSGunnar Mills                        "array",
315ecf7b4eSGunnar Mills                        "boolean",
325ecf7b4eSGunnar Mills                        "integer",
335ecf7b4eSGunnar Mills                        "number",
345ecf7b4eSGunnar Mills                        "null",
355ecf7b4eSGunnar Mills                        "object",
365ecf7b4eSGunnar Mills                        "string"
375ecf7b4eSGunnar Mills                    ]
385ecf7b4eSGunnar Mills                }
395ecf7b4eSGunnar Mills            },
405ecf7b4eSGunnar Mills            "properties": {
415ecf7b4eSGunnar Mills                "AccessState": {
425ecf7b4eSGunnar Mills                    "anyOf": [
435ecf7b4eSGunnar Mills                        {
445ecf7b4eSGunnar Mills                            "$ref": "#/definitions/ANAAccessState"
455ecf7b4eSGunnar Mills                        },
465ecf7b4eSGunnar Mills                        {
475ecf7b4eSGunnar Mills                            "type": "null"
485ecf7b4eSGunnar Mills                        }
495ecf7b4eSGunnar Mills                    ],
505ecf7b4eSGunnar Mills                    "description": "Reported ANA access state.",
515ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the reported ANA access state.",
525ecf7b4eSGunnar Mills                    "readonly": true
535ecf7b4eSGunnar Mills                },
545ecf7b4eSGunnar Mills                "Volume": {
555ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/Volume.json#/definitions/Volume",
565ecf7b4eSGunnar Mills                    "description": "The specified volume.",
575ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain a link to a resource of type `Volume`.",
585ecf7b4eSGunnar Mills                    "readonly": true
595ecf7b4eSGunnar Mills                }
605ecf7b4eSGunnar Mills            },
615ecf7b4eSGunnar Mills            "type": "object"
625ecf7b4eSGunnar Mills        },
635ecf7b4eSGunnar Mills        "Actions": {
645ecf7b4eSGunnar Mills            "additionalProperties": false,
655ecf7b4eSGunnar Mills            "description": "The available actions for this resource.",
665ecf7b4eSGunnar Mills            "longDescription": "This type shall contain the available actions for this resource.",
675ecf7b4eSGunnar Mills            "patternProperties": {
685ecf7b4eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
695ecf7b4eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
705ecf7b4eSGunnar Mills                    "type": [
715ecf7b4eSGunnar Mills                        "array",
725ecf7b4eSGunnar Mills                        "boolean",
735ecf7b4eSGunnar Mills                        "integer",
745ecf7b4eSGunnar Mills                        "number",
755ecf7b4eSGunnar Mills                        "null",
765ecf7b4eSGunnar Mills                        "object",
775ecf7b4eSGunnar Mills                        "string"
785ecf7b4eSGunnar Mills                    ]
795ecf7b4eSGunnar Mills                }
805ecf7b4eSGunnar Mills            },
815ecf7b4eSGunnar Mills            "properties": {
825ecf7b4eSGunnar Mills                "#StorageController.AttachNamespaces": {
835ecf7b4eSGunnar Mills                    "$ref": "#/definitions/AttachNamespaces"
845ecf7b4eSGunnar Mills                },
855ecf7b4eSGunnar Mills                "#StorageController.DetachNamespaces": {
865ecf7b4eSGunnar Mills                    "$ref": "#/definitions/DetachNamespaces"
875ecf7b4eSGunnar Mills                },
885ecf7b4eSGunnar Mills                "#StorageController.SecurityReceive": {
895ecf7b4eSGunnar Mills                    "$ref": "#/definitions/SecurityReceive"
905ecf7b4eSGunnar Mills                },
915ecf7b4eSGunnar Mills                "#StorageController.SecuritySend": {
925ecf7b4eSGunnar Mills                    "$ref": "#/definitions/SecuritySend"
935ecf7b4eSGunnar Mills                },
945ecf7b4eSGunnar Mills                "Oem": {
955ecf7b4eSGunnar Mills                    "$ref": "#/definitions/OemActions",
965ecf7b4eSGunnar Mills                    "description": "The available OEM-specific actions for this resource.",
975ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the available OEM-specific actions for this resource."
985ecf7b4eSGunnar Mills                }
995ecf7b4eSGunnar Mills            },
1005ecf7b4eSGunnar Mills            "type": "object"
1015ecf7b4eSGunnar Mills        },
1025ecf7b4eSGunnar Mills        "AttachDetachNamespacesResponse": {
1035ecf7b4eSGunnar Mills            "additionalProperties": false,
1045ecf7b4eSGunnar Mills            "description": "The response body for the `AttachNamespaces` and `DetachNamespaces` actions.",
1055ecf7b4eSGunnar Mills            "longDescription": "This type shall contain the properties found in the response body for the `AttachNamespaces` and `DetachNamespaces` actions.",
1065ecf7b4eSGunnar Mills            "patternProperties": {
1075ecf7b4eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
1085ecf7b4eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
1095ecf7b4eSGunnar Mills                    "type": [
1105ecf7b4eSGunnar Mills                        "array",
1115ecf7b4eSGunnar Mills                        "boolean",
1125ecf7b4eSGunnar Mills                        "integer",
1135ecf7b4eSGunnar Mills                        "number",
1145ecf7b4eSGunnar Mills                        "null",
1155ecf7b4eSGunnar Mills                        "object",
1165ecf7b4eSGunnar Mills                        "string"
1175ecf7b4eSGunnar Mills                    ]
1185ecf7b4eSGunnar Mills                }
1195ecf7b4eSGunnar Mills            },
1205ecf7b4eSGunnar Mills            "properties": {
1215ecf7b4eSGunnar Mills                "AttachedVolumes": {
1225ecf7b4eSGunnar Mills                    "description": "An array of links to volumes that are attached to this controller instance.",
1235ecf7b4eSGunnar Mills                    "items": {
1245ecf7b4eSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/Volume.json#/definitions/Volume"
1255ecf7b4eSGunnar Mills                    },
1265ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain an array of links to resources of type `Volume` that are attached to this instance of storage controller.",
1275ecf7b4eSGunnar Mills                    "readonly": true,
1285ecf7b4eSGunnar Mills                    "type": "array",
1295ecf7b4eSGunnar Mills                    "versionAdded": "v1_7_0"
1305ecf7b4eSGunnar Mills                },
1315ecf7b4eSGunnar Mills                "AttachedVolumes@odata.count": {
1325ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
1335ecf7b4eSGunnar Mills                }
1345ecf7b4eSGunnar Mills            },
1355ecf7b4eSGunnar Mills            "required": [
1365ecf7b4eSGunnar Mills                "AttachedVolumes"
1375ecf7b4eSGunnar Mills            ],
1385ecf7b4eSGunnar Mills            "type": "object"
1395ecf7b4eSGunnar Mills        },
1405ecf7b4eSGunnar Mills        "AttachNamespaces": {
1415ecf7b4eSGunnar Mills            "actionResponse": {
1425ecf7b4eSGunnar Mills                "$ref": "#/definitions/AttachDetachNamespacesResponse"
1435ecf7b4eSGunnar Mills            },
1445ecf7b4eSGunnar Mills            "additionalProperties": false,
1455ecf7b4eSGunnar Mills            "description": "This action attaches referenced namespaces or volumes to the storage controller.  Attached namespaces and volumes are added to the `AttachedVolumes` property in `Links`.  For NVMe, namespaces are modeled as `Volume` resources.",
1465ecf7b4eSGunnar Mills            "longDescription": "This action shall attach referenced namespaces or volumes to the storage controller.  For NVMe, namespaces are modeled as `Volume` resources.  Services shall add the attached namespaces and volumes to the `AttachedVolumes` property in `Links`.",
1475ecf7b4eSGunnar Mills            "parameters": {
1485ecf7b4eSGunnar Mills                "Namespaces": {
1495ecf7b4eSGunnar Mills                    "description": "The namespaces or volumes to attach to the storage controller.",
1505ecf7b4eSGunnar Mills                    "items": {
1515ecf7b4eSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/Volume.json#/definitions/Volume"
1525ecf7b4eSGunnar Mills                    },
1535ecf7b4eSGunnar Mills                    "longDescription": "This parameter shall contain an array of links to resources of type `Volume` that represent the namespaces or volumes to attach to the storage controller.",
1545ecf7b4eSGunnar Mills                    "requiredParameter": true,
1555ecf7b4eSGunnar Mills                    "type": "array"
1565ecf7b4eSGunnar Mills                }
1575ecf7b4eSGunnar Mills            },
1585ecf7b4eSGunnar Mills            "patternProperties": {
1595ecf7b4eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
1605ecf7b4eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
1615ecf7b4eSGunnar Mills                    "type": [
1625ecf7b4eSGunnar Mills                        "array",
1635ecf7b4eSGunnar Mills                        "boolean",
1645ecf7b4eSGunnar Mills                        "integer",
1655ecf7b4eSGunnar Mills                        "number",
1665ecf7b4eSGunnar Mills                        "null",
1675ecf7b4eSGunnar Mills                        "object",
1685ecf7b4eSGunnar Mills                        "string"
1695ecf7b4eSGunnar Mills                    ]
1705ecf7b4eSGunnar Mills                }
1715ecf7b4eSGunnar Mills            },
1725ecf7b4eSGunnar Mills            "properties": {
1735ecf7b4eSGunnar Mills                "target": {
1745ecf7b4eSGunnar Mills                    "description": "Link to invoke action",
1755ecf7b4eSGunnar Mills                    "format": "uri-reference",
1765ecf7b4eSGunnar Mills                    "type": "string"
1775ecf7b4eSGunnar Mills                },
1785ecf7b4eSGunnar Mills                "title": {
1795ecf7b4eSGunnar Mills                    "description": "Friendly action name",
1805ecf7b4eSGunnar Mills                    "type": "string"
1815ecf7b4eSGunnar Mills                }
1825ecf7b4eSGunnar Mills            },
1835ecf7b4eSGunnar Mills            "type": "object",
1845ecf7b4eSGunnar Mills            "versionAdded": "v1_7_0"
1855ecf7b4eSGunnar Mills        },
1865ecf7b4eSGunnar Mills        "CacheSummary": {
1875ecf7b4eSGunnar Mills            "additionalProperties": false,
1885ecf7b4eSGunnar Mills            "description": "This type describes the cache memory of the storage controller in general detail.",
1895ecf7b4eSGunnar Mills            "longDescription": "This type shall contain properties that describe the cache memory for a storage controller.",
1905ecf7b4eSGunnar Mills            "patternProperties": {
1915ecf7b4eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
1925ecf7b4eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
1935ecf7b4eSGunnar Mills                    "type": [
1945ecf7b4eSGunnar Mills                        "array",
1955ecf7b4eSGunnar Mills                        "boolean",
1965ecf7b4eSGunnar Mills                        "integer",
1975ecf7b4eSGunnar Mills                        "number",
1985ecf7b4eSGunnar Mills                        "null",
1995ecf7b4eSGunnar Mills                        "object",
2005ecf7b4eSGunnar Mills                        "string"
2015ecf7b4eSGunnar Mills                    ]
2025ecf7b4eSGunnar Mills                }
2035ecf7b4eSGunnar Mills            },
2045ecf7b4eSGunnar Mills            "properties": {
2055ecf7b4eSGunnar Mills                "PersistentCacheSizeMiB": {
2065ecf7b4eSGunnar Mills                    "description": "The portion of the cache memory that is persistent, measured in MiB.",
2075ecf7b4eSGunnar 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`.",
2085ecf7b4eSGunnar Mills                    "minimum": 0,
2095ecf7b4eSGunnar Mills                    "readonly": true,
2105ecf7b4eSGunnar Mills                    "type": [
2115ecf7b4eSGunnar Mills                        "integer",
2125ecf7b4eSGunnar Mills                        "null"
2135ecf7b4eSGunnar Mills                    ],
2145ecf7b4eSGunnar Mills                    "units": "MiBy"
2155ecf7b4eSGunnar Mills                },
2165ecf7b4eSGunnar Mills                "Status": {
2175ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status",
2185ecf7b4eSGunnar Mills                    "description": "The status and health of the resource and its subordinate or dependent resources.",
2195ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain any status or health properties of the resource."
2205ecf7b4eSGunnar Mills                },
2215ecf7b4eSGunnar Mills                "TotalCacheSizeMiB": {
2225ecf7b4eSGunnar Mills                    "description": "The total configured cache memory, measured in MiB.",
2235ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the amount of configured cache memory as measured in mebibytes.",
2245ecf7b4eSGunnar Mills                    "minimum": 0,
2255ecf7b4eSGunnar Mills                    "readonly": true,
2265ecf7b4eSGunnar Mills                    "type": [
2275ecf7b4eSGunnar Mills                        "integer",
2285ecf7b4eSGunnar Mills                        "null"
2295ecf7b4eSGunnar Mills                    ],
2305ecf7b4eSGunnar Mills                    "units": "MiBy"
2315ecf7b4eSGunnar Mills                }
2325ecf7b4eSGunnar Mills            },
2335ecf7b4eSGunnar Mills            "required": [
2345ecf7b4eSGunnar Mills                "TotalCacheSizeMiB"
2355ecf7b4eSGunnar Mills            ],
2365ecf7b4eSGunnar Mills            "type": "object"
2375ecf7b4eSGunnar Mills        },
2385ecf7b4eSGunnar Mills        "DetachNamespaces": {
2395ecf7b4eSGunnar Mills            "actionResponse": {
2405ecf7b4eSGunnar Mills                "$ref": "#/definitions/AttachDetachNamespacesResponse"
2415ecf7b4eSGunnar Mills            },
2425ecf7b4eSGunnar Mills            "additionalProperties": false,
2435ecf7b4eSGunnar Mills            "description": "This action detaches referenced namespaces or volumes from the storage controller.  Detached namespaces and volumes are removed from the `AttachedVolumes` property in `Links`.  For NVMe, namespaces are modeled as `Volume` resources.",
2445ecf7b4eSGunnar Mills            "longDescription": "This action shall detach referenced namespaces or volumes from the storage controller.  Services shall remove the detached namespaces and volumes from the `AttachedVolumes` property in `Links`.  For NVMe, namespaces are modeled as `Volume` resources.",
2455ecf7b4eSGunnar Mills            "parameters": {
2465ecf7b4eSGunnar Mills                "Namespaces": {
2475ecf7b4eSGunnar Mills                    "description": "The namespaces or volumes to detach from the storage controller.",
2485ecf7b4eSGunnar Mills                    "items": {
2495ecf7b4eSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/Volume.json#/definitions/Volume"
2505ecf7b4eSGunnar Mills                    },
2515ecf7b4eSGunnar Mills                    "longDescription": "This parameter shall contain an array of links to resources of type `Volume` that represent the namespaces or volumes to detach from the storage controller.",
2525ecf7b4eSGunnar Mills                    "requiredParameter": true,
2535ecf7b4eSGunnar Mills                    "type": "array"
2545ecf7b4eSGunnar Mills                }
2555ecf7b4eSGunnar Mills            },
2565ecf7b4eSGunnar Mills            "patternProperties": {
2575ecf7b4eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
2585ecf7b4eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
2595ecf7b4eSGunnar Mills                    "type": [
2605ecf7b4eSGunnar Mills                        "array",
2615ecf7b4eSGunnar Mills                        "boolean",
2625ecf7b4eSGunnar Mills                        "integer",
2635ecf7b4eSGunnar Mills                        "number",
2645ecf7b4eSGunnar Mills                        "null",
2655ecf7b4eSGunnar Mills                        "object",
2665ecf7b4eSGunnar Mills                        "string"
2675ecf7b4eSGunnar Mills                    ]
2685ecf7b4eSGunnar Mills                }
2695ecf7b4eSGunnar Mills            },
2705ecf7b4eSGunnar Mills            "properties": {
2715ecf7b4eSGunnar Mills                "target": {
2725ecf7b4eSGunnar Mills                    "description": "Link to invoke action",
2735ecf7b4eSGunnar Mills                    "format": "uri-reference",
2745ecf7b4eSGunnar Mills                    "type": "string"
2755ecf7b4eSGunnar Mills                },
2765ecf7b4eSGunnar Mills                "title": {
2775ecf7b4eSGunnar Mills                    "description": "Friendly action name",
2785ecf7b4eSGunnar Mills                    "type": "string"
2795ecf7b4eSGunnar Mills                }
2805ecf7b4eSGunnar Mills            },
2815ecf7b4eSGunnar Mills            "type": "object",
2825ecf7b4eSGunnar Mills            "versionAdded": "v1_7_0"
2835ecf7b4eSGunnar Mills        },
2845ecf7b4eSGunnar Mills        "Links": {
2855ecf7b4eSGunnar Mills            "additionalProperties": false,
2865ecf7b4eSGunnar Mills            "description": "The links to other resources that are related to this resource.",
2875ecf7b4eSGunnar 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.",
2885ecf7b4eSGunnar Mills            "patternProperties": {
2895ecf7b4eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
2905ecf7b4eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
2915ecf7b4eSGunnar Mills                    "type": [
2925ecf7b4eSGunnar Mills                        "array",
2935ecf7b4eSGunnar Mills                        "boolean",
2945ecf7b4eSGunnar Mills                        "integer",
2955ecf7b4eSGunnar Mills                        "number",
2965ecf7b4eSGunnar Mills                        "null",
2975ecf7b4eSGunnar Mills                        "object",
2985ecf7b4eSGunnar Mills                        "string"
2995ecf7b4eSGunnar Mills                    ]
3005ecf7b4eSGunnar Mills                }
3015ecf7b4eSGunnar Mills            },
3025ecf7b4eSGunnar Mills            "properties": {
3035ecf7b4eSGunnar Mills                "AttachedVolumes": {
3045ecf7b4eSGunnar Mills                    "description": "An array of links to volumes that are attached to this controller instance.",
3055ecf7b4eSGunnar Mills                    "items": {
3065ecf7b4eSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/Volume.json#/definitions/Volume"
3075ecf7b4eSGunnar Mills                    },
3085ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain an array of links to resources of type `Volume` that are attached to this instance of storage controller.",
3095ecf7b4eSGunnar Mills                    "readonly": true,
3105ecf7b4eSGunnar Mills                    "type": "array"
3115ecf7b4eSGunnar Mills                },
3125ecf7b4eSGunnar Mills                "AttachedVolumes@odata.count": {
3135ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
3145ecf7b4eSGunnar Mills                },
3155ecf7b4eSGunnar Mills                "Batteries": {
3165ecf7b4eSGunnar Mills                    "description": "The batteries that provide power to this storage controller during a power-loss event.",
3175ecf7b4eSGunnar Mills                    "items": {
3185ecf7b4eSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/v1/Battery.json#/definitions/Battery"
3195ecf7b4eSGunnar Mills                    },
3205ecf7b4eSGunnar 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.",
3215ecf7b4eSGunnar Mills                    "readonly": true,
3225ecf7b4eSGunnar Mills                    "type": "array",
3235ecf7b4eSGunnar Mills                    "versionAdded": "v1_6_0"
3245ecf7b4eSGunnar Mills                },
3255ecf7b4eSGunnar Mills                "Batteries@odata.count": {
3265ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
3275ecf7b4eSGunnar Mills                },
3285ecf7b4eSGunnar Mills                "Endpoints": {
3295ecf7b4eSGunnar Mills                    "description": "An array of links to the endpoints that connect to this controller.",
3305ecf7b4eSGunnar Mills                    "items": {
3315ecf7b4eSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/v1/Endpoint.json#/definitions/Endpoint"
3325ecf7b4eSGunnar Mills                    },
3335ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain an array of links to resources of type `Endpoint` with which this controller is associated.",
3345ecf7b4eSGunnar Mills                    "readonly": true,
3355ecf7b4eSGunnar Mills                    "type": "array"
3365ecf7b4eSGunnar Mills                },
3375ecf7b4eSGunnar Mills                "Endpoints@odata.count": {
3385ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
3395ecf7b4eSGunnar Mills                },
3405ecf7b4eSGunnar Mills                "NVMeDiscoveredSubsystems": {
3415ecf7b4eSGunnar Mills                    "description": "The NVMe subsystems discovered by this discovery controller.",
3425ecf7b4eSGunnar Mills                    "items": {
3435ecf7b4eSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/v1/Storage.json#/definitions/Storage"
3445ecf7b4eSGunnar Mills                    },
3455ecf7b4eSGunnar 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`.",
3465ecf7b4eSGunnar Mills                    "readonly": true,
3475ecf7b4eSGunnar Mills                    "type": "array",
3485ecf7b4eSGunnar Mills                    "versionAdded": "v1_7_0"
3495ecf7b4eSGunnar Mills                },
3505ecf7b4eSGunnar Mills                "NVMeDiscoveredSubsystems@odata.count": {
3515ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
3525ecf7b4eSGunnar Mills                },
3535ecf7b4eSGunnar Mills                "NetworkDeviceFunctions": {
3545ecf7b4eSGunnar Mills                    "description": "The network device functions that provide connectivity to this controller.",
3555ecf7b4eSGunnar Mills                    "items": {
3565ecf7b4eSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkDeviceFunction.json#/definitions/NetworkDeviceFunction"
3575ecf7b4eSGunnar Mills                    },
3585ecf7b4eSGunnar 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.",
3595ecf7b4eSGunnar Mills                    "readonly": true,
3605ecf7b4eSGunnar Mills                    "type": "array",
3615ecf7b4eSGunnar Mills                    "versionAdded": "v1_3_0"
3625ecf7b4eSGunnar Mills                },
3635ecf7b4eSGunnar Mills                "NetworkDeviceFunctions@odata.count": {
3645ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
3655ecf7b4eSGunnar Mills                },
3665ecf7b4eSGunnar Mills                "Oem": {
3675ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
3685ecf7b4eSGunnar Mills                    "description": "The OEM extension property.",
3695ecf7b4eSGunnar 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."
3705ecf7b4eSGunnar Mills                },
3715ecf7b4eSGunnar Mills                "PCIeFunctions": {
3725ecf7b4eSGunnar Mills                    "description": "An array of links to the PCIe functions that the storage controller produces.",
3735ecf7b4eSGunnar Mills                    "items": {
3745ecf7b4eSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeFunction.json#/definitions/PCIeFunction"
3755ecf7b4eSGunnar Mills                    },
3765ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain an array of links to resources of type `PCIeFunction` that represent the PCIe functions associated with this resource.",
3775ecf7b4eSGunnar Mills                    "readonly": true,
3785ecf7b4eSGunnar Mills                    "type": "array"
3795ecf7b4eSGunnar Mills                },
3805ecf7b4eSGunnar Mills                "PCIeFunctions@odata.count": {
3815ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
3825ecf7b4eSGunnar Mills                }
3835ecf7b4eSGunnar Mills            },
3845ecf7b4eSGunnar Mills            "type": "object"
3855ecf7b4eSGunnar Mills        },
3865ecf7b4eSGunnar Mills        "MPFProperties": {
3875ecf7b4eSGunnar Mills            "additionalProperties": false,
3885ecf7b4eSGunnar Mills            "description": "The physical function-related properties for a storage controller within a multiple physical function storage controller.",
3895ecf7b4eSGunnar Mills            "longDescription": "This type shall contain the physical function-related properties for a storage controller within a multiple physical function storage controller.",
3905ecf7b4eSGunnar Mills            "patternProperties": {
3915ecf7b4eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
3925ecf7b4eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
3935ecf7b4eSGunnar Mills                    "type": [
3945ecf7b4eSGunnar Mills                        "array",
3955ecf7b4eSGunnar Mills                        "boolean",
3965ecf7b4eSGunnar Mills                        "integer",
3975ecf7b4eSGunnar Mills                        "number",
3985ecf7b4eSGunnar Mills                        "null",
3995ecf7b4eSGunnar Mills                        "object",
4005ecf7b4eSGunnar Mills                        "string"
4015ecf7b4eSGunnar Mills                    ]
4025ecf7b4eSGunnar Mills                }
4035ecf7b4eSGunnar Mills            },
4045ecf7b4eSGunnar Mills            "properties": {
4055ecf7b4eSGunnar Mills                "IsSupervisor": {
4065ecf7b4eSGunnar Mills                    "description": "Indicates whether this physical function is the supervisor.",
4075ecf7b4eSGunnar Mills                    "longDescription": "This property shall indicate whether this physical function is the supervisor.",
4085ecf7b4eSGunnar Mills                    "readonly": true,
4095ecf7b4eSGunnar Mills                    "type": [
4105ecf7b4eSGunnar Mills                        "boolean",
4115ecf7b4eSGunnar Mills                        "null"
4125ecf7b4eSGunnar Mills                    ],
4135ecf7b4eSGunnar Mills                    "versionAdded": "v1_10_0"
4145ecf7b4eSGunnar Mills                }
4155ecf7b4eSGunnar Mills            },
4165ecf7b4eSGunnar Mills            "type": "object"
4175ecf7b4eSGunnar Mills        },
4185ecf7b4eSGunnar Mills        "NVMeControllerAttributes": {
4195ecf7b4eSGunnar Mills            "additionalProperties": false,
4205ecf7b4eSGunnar Mills            "description": "The NVMe controller attributes for a storage controller.",
4215ecf7b4eSGunnar Mills            "longDescription": "This type shall contain NVMe controller attributes for a storage controller.",
4225ecf7b4eSGunnar Mills            "patternProperties": {
4235ecf7b4eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
4245ecf7b4eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
4255ecf7b4eSGunnar Mills                    "type": [
4265ecf7b4eSGunnar Mills                        "array",
4275ecf7b4eSGunnar Mills                        "boolean",
4285ecf7b4eSGunnar Mills                        "integer",
4295ecf7b4eSGunnar Mills                        "number",
4305ecf7b4eSGunnar Mills                        "null",
4315ecf7b4eSGunnar Mills                        "object",
4325ecf7b4eSGunnar Mills                        "string"
4335ecf7b4eSGunnar Mills                    ]
4345ecf7b4eSGunnar Mills                }
4355ecf7b4eSGunnar Mills            },
4365ecf7b4eSGunnar Mills            "properties": {
4375ecf7b4eSGunnar Mills                "ReportsNamespaceGranularity": {
4385ecf7b4eSGunnar Mills                    "description": "Indicates whether or not the controller supports reporting of Namespace Granularity.",
4395ecf7b4eSGunnar Mills                    "longDescription": "This property shall indicate whether or not the controller supports reporting of Namespace Granularity.",
4405ecf7b4eSGunnar Mills                    "readonly": true,
4415ecf7b4eSGunnar Mills                    "type": [
4425ecf7b4eSGunnar Mills                        "boolean",
4435ecf7b4eSGunnar Mills                        "null"
4445ecf7b4eSGunnar Mills                    ]
4455ecf7b4eSGunnar Mills                },
4465ecf7b4eSGunnar Mills                "ReportsUUIDList": {
4475ecf7b4eSGunnar Mills                    "description": "Indicates whether or not the controller supports reporting of a UUID list.",
4485ecf7b4eSGunnar Mills                    "longDescription": "This property shall indicate whether or not the controller supports reporting of a UUID list.",
4495ecf7b4eSGunnar Mills                    "readonly": true,
4505ecf7b4eSGunnar Mills                    "type": [
4515ecf7b4eSGunnar Mills                        "boolean",
4525ecf7b4eSGunnar Mills                        "null"
4535ecf7b4eSGunnar Mills                    ]
4545ecf7b4eSGunnar Mills                },
4555ecf7b4eSGunnar Mills                "Supports128BitHostId": {
4565ecf7b4eSGunnar Mills                    "description": "Indicates whether or not the controller supports a 128-bit Host Identifier.",
4575ecf7b4eSGunnar Mills                    "longDescription": "This property shall indicate whether or not the controller supports a 128-bit Host Identifier.",
4585ecf7b4eSGunnar Mills                    "readonly": true,
4595ecf7b4eSGunnar Mills                    "type": [
4605ecf7b4eSGunnar Mills                        "boolean",
4615ecf7b4eSGunnar Mills                        "null"
4625ecf7b4eSGunnar Mills                    ]
4635ecf7b4eSGunnar Mills                },
4645ecf7b4eSGunnar Mills                "SupportsEnduranceGroups": {
4655ecf7b4eSGunnar Mills                    "description": "Indicates whether or not the controller supports Endurance Groups.",
4665ecf7b4eSGunnar Mills                    "longDescription": "This property shall indicate whether or not the controller supports Endurance Groups.",
4675ecf7b4eSGunnar Mills                    "readonly": true,
4685ecf7b4eSGunnar Mills                    "type": [
4695ecf7b4eSGunnar Mills                        "boolean",
4705ecf7b4eSGunnar Mills                        "null"
4715ecf7b4eSGunnar Mills                    ]
4725ecf7b4eSGunnar Mills                },
4735ecf7b4eSGunnar Mills                "SupportsExceedingPowerOfNonOperationalState": {
4745ecf7b4eSGunnar 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.",
4755ecf7b4eSGunnar 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.",
4765ecf7b4eSGunnar Mills                    "readonly": true,
4775ecf7b4eSGunnar Mills                    "type": [
4785ecf7b4eSGunnar Mills                        "boolean",
4795ecf7b4eSGunnar Mills                        "null"
4805ecf7b4eSGunnar Mills                    ]
4815ecf7b4eSGunnar Mills                },
4825ecf7b4eSGunnar Mills                "SupportsNVMSets": {
4835ecf7b4eSGunnar Mills                    "description": "Indicates whether or not the controller supports NVM Sets.",
4845ecf7b4eSGunnar Mills                    "longDescription": "This property shall indicate whether or not the controller supports NVM Sets.",
4855ecf7b4eSGunnar Mills                    "readonly": true,
4865ecf7b4eSGunnar Mills                    "type": [
4875ecf7b4eSGunnar Mills                        "boolean",
4885ecf7b4eSGunnar Mills                        "null"
4895ecf7b4eSGunnar Mills                    ]
4905ecf7b4eSGunnar Mills                },
4915ecf7b4eSGunnar Mills                "SupportsPredictableLatencyMode": {
4925ecf7b4eSGunnar Mills                    "description": "Indicates whether or not the controller supports Predictable Latency Mode.",
4935ecf7b4eSGunnar Mills                    "longDescription": "This property shall indicate whether or not the controller supports Predictable Latency Mode.",
4945ecf7b4eSGunnar Mills                    "readonly": true,
4955ecf7b4eSGunnar Mills                    "type": [
4965ecf7b4eSGunnar Mills                        "boolean",
4975ecf7b4eSGunnar Mills                        "null"
4985ecf7b4eSGunnar Mills                    ]
4995ecf7b4eSGunnar Mills                },
5005ecf7b4eSGunnar Mills                "SupportsReadRecoveryLevels": {
5015ecf7b4eSGunnar Mills                    "description": "Indicates whether or not the controller supports Read Recovery Levels.",
5025ecf7b4eSGunnar Mills                    "longDescription": "This property shall indicate whether or not the controller supports Read Recovery Levels.",
5035ecf7b4eSGunnar Mills                    "readonly": true,
5045ecf7b4eSGunnar Mills                    "type": [
5055ecf7b4eSGunnar Mills                        "boolean",
5065ecf7b4eSGunnar Mills                        "null"
5075ecf7b4eSGunnar Mills                    ]
5085ecf7b4eSGunnar Mills                },
5095ecf7b4eSGunnar Mills                "SupportsReservations": {
5105ecf7b4eSGunnar Mills                    "description": "Indicates if the controller supports reservations.",
5115ecf7b4eSGunnar Mills                    "longDescription": "This property shall indicate if the controller supports reservations.",
5125ecf7b4eSGunnar Mills                    "readonly": true,
5135ecf7b4eSGunnar Mills                    "type": [
5145ecf7b4eSGunnar Mills                        "boolean",
5155ecf7b4eSGunnar Mills                        "null"
5165ecf7b4eSGunnar Mills                    ],
5175ecf7b4eSGunnar Mills                    "versionAdded": "v1_2_0"
5185ecf7b4eSGunnar Mills                },
5195ecf7b4eSGunnar Mills                "SupportsSQAssociations": {
5205ecf7b4eSGunnar Mills                    "description": "Indicates whether or not the controller supports SQ Associations.",
5215ecf7b4eSGunnar Mills                    "longDescription": "This property shall indicate whether or not the controller supports SQ Associations.",
5225ecf7b4eSGunnar Mills                    "readonly": true,
5235ecf7b4eSGunnar Mills                    "type": [
5245ecf7b4eSGunnar Mills                        "boolean",
5255ecf7b4eSGunnar Mills                        "null"
5265ecf7b4eSGunnar Mills                    ]
5275ecf7b4eSGunnar Mills                },
5285ecf7b4eSGunnar Mills                "SupportsTrafficBasedKeepAlive": {
5295ecf7b4eSGunnar 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.",
5305ecf7b4eSGunnar 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.",
5315ecf7b4eSGunnar Mills                    "readonly": true,
5325ecf7b4eSGunnar Mills                    "type": [
5335ecf7b4eSGunnar Mills                        "boolean",
5345ecf7b4eSGunnar Mills                        "null"
5355ecf7b4eSGunnar Mills                    ]
5365ecf7b4eSGunnar Mills                }
5375ecf7b4eSGunnar Mills            },
5385ecf7b4eSGunnar Mills            "type": "object"
5395ecf7b4eSGunnar Mills        },
5405ecf7b4eSGunnar Mills        "NVMeControllerProperties": {
5415ecf7b4eSGunnar Mills            "additionalProperties": false,
5425ecf7b4eSGunnar Mills            "description": "NVMe-related properties for a storage controller.",
5435ecf7b4eSGunnar Mills            "longDescription": "This type shall contain NVMe-related properties for a storage controller.",
5445ecf7b4eSGunnar Mills            "patternProperties": {
5455ecf7b4eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
5465ecf7b4eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
5475ecf7b4eSGunnar Mills                    "type": [
5485ecf7b4eSGunnar Mills                        "array",
5495ecf7b4eSGunnar Mills                        "boolean",
5505ecf7b4eSGunnar Mills                        "integer",
5515ecf7b4eSGunnar Mills                        "number",
5525ecf7b4eSGunnar Mills                        "null",
5535ecf7b4eSGunnar Mills                        "object",
5545ecf7b4eSGunnar Mills                        "string"
5555ecf7b4eSGunnar Mills                    ]
5565ecf7b4eSGunnar Mills                }
5575ecf7b4eSGunnar Mills            },
5585ecf7b4eSGunnar Mills            "properties": {
5595ecf7b4eSGunnar Mills                "ANACharacteristics": {
5605ecf7b4eSGunnar Mills                    "description": "The ANA characteristics and volume information.",
5615ecf7b4eSGunnar Mills                    "items": {
5625ecf7b4eSGunnar Mills                        "anyOf": [
5635ecf7b4eSGunnar Mills                            {
5645ecf7b4eSGunnar Mills                                "$ref": "#/definitions/ANACharacteristics"
5655ecf7b4eSGunnar Mills                            },
5665ecf7b4eSGunnar Mills                            {
5675ecf7b4eSGunnar Mills                                "type": "null"
5685ecf7b4eSGunnar Mills                            }
5695ecf7b4eSGunnar Mills                        ]
5705ecf7b4eSGunnar Mills                    },
5715ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the ANA characteristics and volume information.",
5725ecf7b4eSGunnar Mills                    "type": "array"
5735ecf7b4eSGunnar Mills                },
5745ecf7b4eSGunnar Mills                "AllocatedCompletionQueues": {
5755ecf7b4eSGunnar Mills                    "description": "The number of I/O completion queues allocated to this NVMe I/O controller.",
5765ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the number of I/O completion queues allocated to this NVMe I/O controller.",
5775ecf7b4eSGunnar Mills                    "readonly": true,
5785ecf7b4eSGunnar Mills                    "type": [
5795ecf7b4eSGunnar Mills                        "integer",
5805ecf7b4eSGunnar Mills                        "null"
5815ecf7b4eSGunnar Mills                    ],
5825ecf7b4eSGunnar Mills                    "versionAdded": "v1_4_0"
5835ecf7b4eSGunnar Mills                },
5845ecf7b4eSGunnar Mills                "AllocatedSubmissionQueues": {
5855ecf7b4eSGunnar Mills                    "description": "The number of I/O submission queues allocated to this NVMe I/O controller.",
5865ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the number of I/O submission queues allocated to this NVMe I/O controller.",
5875ecf7b4eSGunnar Mills                    "readonly": true,
5885ecf7b4eSGunnar Mills                    "type": [
5895ecf7b4eSGunnar Mills                        "integer",
5905ecf7b4eSGunnar Mills                        "null"
5915ecf7b4eSGunnar Mills                    ],
5925ecf7b4eSGunnar Mills                    "versionAdded": "v1_4_0"
5935ecf7b4eSGunnar Mills                },
5945ecf7b4eSGunnar Mills                "ControllerType": {
5955ecf7b4eSGunnar Mills                    "anyOf": [
5965ecf7b4eSGunnar Mills                        {
5975ecf7b4eSGunnar Mills                            "$ref": "#/definitions/NVMeControllerType"
5985ecf7b4eSGunnar Mills                        },
5995ecf7b4eSGunnar Mills                        {
6005ecf7b4eSGunnar Mills                            "type": "null"
6015ecf7b4eSGunnar Mills                        }
6025ecf7b4eSGunnar Mills                    ],
6035ecf7b4eSGunnar Mills                    "description": "The type of NVMe controller.",
6045ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the type of NVMe controller.",
6055ecf7b4eSGunnar Mills                    "readonly": true
6065ecf7b4eSGunnar Mills                },
6075ecf7b4eSGunnar Mills                "DiscoveryTransportServiceId": {
6085ecf7b4eSGunnar Mills                    "description": "The NVMe discovery transport service identifier for the discovery controller.",
6095ecf7b4eSGunnar 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`.",
6105ecf7b4eSGunnar Mills                    "readonly": true,
6115ecf7b4eSGunnar Mills                    "type": [
6125ecf7b4eSGunnar Mills                        "integer",
6135ecf7b4eSGunnar Mills                        "null"
6145ecf7b4eSGunnar Mills                    ],
6155ecf7b4eSGunnar Mills                    "versionAdded": "v1_9_0"
6165ecf7b4eSGunnar Mills                },
6175ecf7b4eSGunnar Mills                "MaxAttachedNamespaces": {
6185ecf7b4eSGunnar Mills                    "description": "The maximum number of attached namespaces allowed by this NVMe I/O controller.",
6195ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the maximum number of attached namespaces allowed by this NVMe I/O controller.",
6205ecf7b4eSGunnar Mills                    "minimum": 0,
6215ecf7b4eSGunnar Mills                    "readonly": true,
6225ecf7b4eSGunnar Mills                    "type": [
6235ecf7b4eSGunnar Mills                        "integer",
6245ecf7b4eSGunnar Mills                        "null"
6255ecf7b4eSGunnar Mills                    ],
6265ecf7b4eSGunnar Mills                    "versionAdded": "v1_8_0"
6275ecf7b4eSGunnar Mills                },
6285ecf7b4eSGunnar Mills                "MaxQueueSize": {
6295ecf7b4eSGunnar Mills                    "description": "The maximum individual queue size that an NVMe I/O controller supports.",
6305ecf7b4eSGunnar 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.",
6315ecf7b4eSGunnar Mills                    "readonly": true,
6325ecf7b4eSGunnar Mills                    "type": [
6335ecf7b4eSGunnar Mills                        "integer",
6345ecf7b4eSGunnar Mills                        "null"
6355ecf7b4eSGunnar Mills                    ]
6365ecf7b4eSGunnar Mills                },
6375ecf7b4eSGunnar Mills                "NVMeControllerAttributes": {
6385ecf7b4eSGunnar Mills                    "anyOf": [
6395ecf7b4eSGunnar Mills                        {
6405ecf7b4eSGunnar Mills                            "$ref": "#/definitions/NVMeControllerAttributes"
6415ecf7b4eSGunnar Mills                        },
6425ecf7b4eSGunnar Mills                        {
6435ecf7b4eSGunnar Mills                            "type": "null"
6445ecf7b4eSGunnar Mills                        }
6455ecf7b4eSGunnar Mills                    ],
6465ecf7b4eSGunnar Mills                    "description": "The NVMe controller attributes.",
6475ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain NVMe controller attributes."
6485ecf7b4eSGunnar Mills                },
6495ecf7b4eSGunnar Mills                "NVMeSMARTCriticalWarnings": {
6505ecf7b4eSGunnar Mills                    "anyOf": [
6515ecf7b4eSGunnar Mills                        {
6525ecf7b4eSGunnar Mills                            "$ref": "#/definitions/NVMeSMARTCriticalWarnings"
6535ecf7b4eSGunnar Mills                        },
6545ecf7b4eSGunnar Mills                        {
6555ecf7b4eSGunnar Mills                            "type": "null"
6565ecf7b4eSGunnar Mills                        }
6575ecf7b4eSGunnar Mills                    ],
6585ecf7b4eSGunnar 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.",
6595ecf7b4eSGunnar 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."
6605ecf7b4eSGunnar Mills                },
6615ecf7b4eSGunnar Mills                "NVMeVersion": {
6625ecf7b4eSGunnar Mills                    "description": "The version of the NVMe Base Specification supported.",
6635ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the version of the NVMe Base Specification supported.",
6645ecf7b4eSGunnar Mills                    "readonly": true,
6655ecf7b4eSGunnar Mills                    "type": [
6665ecf7b4eSGunnar Mills                        "string",
6675ecf7b4eSGunnar Mills                        "null"
6685ecf7b4eSGunnar Mills                    ]
6695ecf7b4eSGunnar Mills                }
6705ecf7b4eSGunnar Mills            },
6715ecf7b4eSGunnar Mills            "type": "object"
6725ecf7b4eSGunnar Mills        },
6735ecf7b4eSGunnar Mills        "NVMeControllerType": {
6745ecf7b4eSGunnar Mills            "enum": [
6755ecf7b4eSGunnar Mills                "Admin",
6765ecf7b4eSGunnar Mills                "Discovery",
6775ecf7b4eSGunnar Mills                "IO"
6785ecf7b4eSGunnar Mills            ],
6795ecf7b4eSGunnar Mills            "enumDescriptions": {
6805ecf7b4eSGunnar Mills                "Admin": "The NVMe controller is an admin controller.",
6815ecf7b4eSGunnar Mills                "Discovery": "The NVMe controller is a discovery controller.",
6825ecf7b4eSGunnar Mills                "IO": "The NVMe controller is an I/O controller."
6835ecf7b4eSGunnar Mills            },
6845ecf7b4eSGunnar Mills            "type": "string"
6855ecf7b4eSGunnar Mills        },
6865ecf7b4eSGunnar Mills        "NVMeSMARTCriticalWarnings": {
6875ecf7b4eSGunnar Mills            "additionalProperties": false,
6885ecf7b4eSGunnar Mills            "description": "The NVMe SMART Critical Warnings for a storage controller.",
6895ecf7b4eSGunnar Mills            "longDescription": "This type shall contain the NVMe SMART Critical Warnings for a storage controller.",
6905ecf7b4eSGunnar Mills            "patternProperties": {
6915ecf7b4eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
6925ecf7b4eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
6935ecf7b4eSGunnar Mills                    "type": [
6945ecf7b4eSGunnar Mills                        "array",
6955ecf7b4eSGunnar Mills                        "boolean",
6965ecf7b4eSGunnar Mills                        "integer",
6975ecf7b4eSGunnar Mills                        "number",
6985ecf7b4eSGunnar Mills                        "null",
6995ecf7b4eSGunnar Mills                        "object",
7005ecf7b4eSGunnar Mills                        "string"
7015ecf7b4eSGunnar Mills                    ]
7025ecf7b4eSGunnar Mills                }
7035ecf7b4eSGunnar Mills            },
7045ecf7b4eSGunnar Mills            "properties": {
7055ecf7b4eSGunnar Mills                "MediaInReadOnly": {
7065ecf7b4eSGunnar Mills                    "description": "Indicates the media has been placed in read-only mode.",
7075ecf7b4eSGunnar 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.",
7085ecf7b4eSGunnar Mills                    "readonly": true,
7095ecf7b4eSGunnar Mills                    "type": [
7105ecf7b4eSGunnar Mills                        "boolean",
7115ecf7b4eSGunnar Mills                        "null"
7125ecf7b4eSGunnar Mills                    ]
7135ecf7b4eSGunnar Mills                },
7145ecf7b4eSGunnar Mills                "OverallSubsystemDegraded": {
7155ecf7b4eSGunnar Mills                    "description": "Indicates that the NVM subsystem reliability has been compromised.",
7165ecf7b4eSGunnar Mills                    "longDescription": "This property shall indicate that the NVM subsystem reliability has been compromised.",
7175ecf7b4eSGunnar Mills                    "readonly": true,
7185ecf7b4eSGunnar Mills                    "type": [
7195ecf7b4eSGunnar Mills                        "boolean",
7205ecf7b4eSGunnar Mills                        "null"
7215ecf7b4eSGunnar Mills                    ]
7225ecf7b4eSGunnar Mills                },
7235ecf7b4eSGunnar Mills                "PMRUnreliable": {
7245ecf7b4eSGunnar Mills                    "description": "The Persistent Memory Region has become unreliable.",
7255ecf7b4eSGunnar 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.",
7265ecf7b4eSGunnar Mills                    "readonly": true,
7275ecf7b4eSGunnar Mills                    "type": [
7285ecf7b4eSGunnar Mills                        "boolean",
7295ecf7b4eSGunnar Mills                        "null"
7305ecf7b4eSGunnar Mills                    ]
7315ecf7b4eSGunnar Mills                },
7325ecf7b4eSGunnar Mills                "PowerBackupFailed": {
7335ecf7b4eSGunnar Mills                    "description": "Indicates that the volatile memory backup device has failed.",
7345ecf7b4eSGunnar Mills                    "longDescription": "This property shall indicate that the volatile memory backup device has failed.",
7355ecf7b4eSGunnar Mills                    "readonly": true,
7365ecf7b4eSGunnar Mills                    "type": [
7375ecf7b4eSGunnar Mills                        "boolean",
7385ecf7b4eSGunnar Mills                        "null"
7395ecf7b4eSGunnar Mills                    ]
7405ecf7b4eSGunnar Mills                },
7415ecf7b4eSGunnar Mills                "SpareCapacityWornOut": {
7425ecf7b4eSGunnar Mills                    "description": "Indicates that the available spare capacity has fallen below the threshold.",
7435ecf7b4eSGunnar Mills                    "longDescription": "This property shall indicate that the available spare capacity has fallen below the threshold.",
7445ecf7b4eSGunnar Mills                    "readonly": true,
7455ecf7b4eSGunnar Mills                    "type": [
7465ecf7b4eSGunnar Mills                        "boolean",
7475ecf7b4eSGunnar Mills                        "null"
7485ecf7b4eSGunnar Mills                    ]
7495ecf7b4eSGunnar Mills                }
7505ecf7b4eSGunnar Mills            },
7515ecf7b4eSGunnar Mills            "type": "object"
7525ecf7b4eSGunnar Mills        },
7535ecf7b4eSGunnar Mills        "OemActions": {
7545ecf7b4eSGunnar Mills            "additionalProperties": true,
7555ecf7b4eSGunnar Mills            "description": "The available OEM-specific actions for this resource.",
7565ecf7b4eSGunnar Mills            "longDescription": "This type shall contain the available OEM-specific actions for this resource.",
7575ecf7b4eSGunnar Mills            "patternProperties": {
7585ecf7b4eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
7595ecf7b4eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
7605ecf7b4eSGunnar Mills                    "type": [
7615ecf7b4eSGunnar Mills                        "array",
7625ecf7b4eSGunnar Mills                        "boolean",
7635ecf7b4eSGunnar Mills                        "integer",
7645ecf7b4eSGunnar Mills                        "number",
7655ecf7b4eSGunnar Mills                        "null",
7665ecf7b4eSGunnar Mills                        "object",
7675ecf7b4eSGunnar Mills                        "string"
7685ecf7b4eSGunnar Mills                    ]
7695ecf7b4eSGunnar Mills                }
7705ecf7b4eSGunnar Mills            },
7715ecf7b4eSGunnar Mills            "properties": {},
7725ecf7b4eSGunnar Mills            "type": "object"
7735ecf7b4eSGunnar Mills        },
7745ecf7b4eSGunnar Mills        "Rates": {
7755ecf7b4eSGunnar Mills            "additionalProperties": false,
7765ecf7b4eSGunnar Mills            "description": "This type describes the various controller rates used for processes such as volume rebuild or consistency checks.",
7775ecf7b4eSGunnar Mills            "longDescription": "This type shall contain all the rate settings available on the controller.",
7785ecf7b4eSGunnar Mills            "patternProperties": {
7795ecf7b4eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
7805ecf7b4eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
7815ecf7b4eSGunnar Mills                    "type": [
7825ecf7b4eSGunnar Mills                        "array",
7835ecf7b4eSGunnar Mills                        "boolean",
7845ecf7b4eSGunnar Mills                        "integer",
7855ecf7b4eSGunnar Mills                        "number",
7865ecf7b4eSGunnar Mills                        "null",
7875ecf7b4eSGunnar Mills                        "object",
7885ecf7b4eSGunnar Mills                        "string"
7895ecf7b4eSGunnar Mills                    ]
7905ecf7b4eSGunnar Mills                }
7915ecf7b4eSGunnar Mills            },
7925ecf7b4eSGunnar Mills            "properties": {
7935ecf7b4eSGunnar Mills                "ConsistencyCheckRatePercent": {
7945ecf7b4eSGunnar Mills                    "description": "The percentage of controller resources used for performing a data consistency check on volumes.",
7955ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the percentage, `0` to `100`, of controller resources used for checking data consistency on volumes.",
7965ecf7b4eSGunnar Mills                    "maximum": 100,
7975ecf7b4eSGunnar Mills                    "minimum": 0,
7985ecf7b4eSGunnar Mills                    "readonly": false,
7995ecf7b4eSGunnar Mills                    "type": [
8005ecf7b4eSGunnar Mills                        "integer",
8015ecf7b4eSGunnar Mills                        "null"
8025ecf7b4eSGunnar Mills                    ],
8035ecf7b4eSGunnar Mills                    "units": "%"
8045ecf7b4eSGunnar Mills                },
8055ecf7b4eSGunnar Mills                "RebuildRatePercent": {
8065ecf7b4eSGunnar Mills                    "description": "The percentage of controller resources used for rebuilding/repairing volumes.",
8075ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the percentage, `0` to `100`, of controller resources used for rebuilding volumes.",
8085ecf7b4eSGunnar Mills                    "maximum": 100,
8095ecf7b4eSGunnar Mills                    "minimum": 0,
8105ecf7b4eSGunnar Mills                    "readonly": false,
8115ecf7b4eSGunnar Mills                    "type": [
8125ecf7b4eSGunnar Mills                        "integer",
8135ecf7b4eSGunnar Mills                        "null"
8145ecf7b4eSGunnar Mills                    ],
8155ecf7b4eSGunnar Mills                    "units": "%"
8165ecf7b4eSGunnar Mills                },
8175ecf7b4eSGunnar Mills                "TransformationRatePercent": {
8185ecf7b4eSGunnar Mills                    "description": "The percentage of controller resources used for transforming volumes from one configuration to another.",
8195ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the percentage, `0` to `100`, of controller resources used for transforming volumes.",
8205ecf7b4eSGunnar Mills                    "maximum": 100,
8215ecf7b4eSGunnar Mills                    "minimum": 0,
8225ecf7b4eSGunnar Mills                    "readonly": false,
8235ecf7b4eSGunnar Mills                    "type": [
8245ecf7b4eSGunnar Mills                        "integer",
8255ecf7b4eSGunnar Mills                        "null"
8265ecf7b4eSGunnar Mills                    ],
8275ecf7b4eSGunnar Mills                    "units": "%"
8285ecf7b4eSGunnar Mills                }
8295ecf7b4eSGunnar Mills            },
8305ecf7b4eSGunnar Mills            "type": "object"
8315ecf7b4eSGunnar Mills        },
8325ecf7b4eSGunnar Mills        "SecurityReceive": {
8335ecf7b4eSGunnar Mills            "actionResponse": {
8345ecf7b4eSGunnar Mills                "$ref": "#/definitions/SecurityReceiveResponse"
8355ecf7b4eSGunnar Mills            },
8365ecf7b4eSGunnar Mills            "additionalProperties": false,
8375ecf7b4eSGunnar 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.",
8385ecf7b4eSGunnar 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.",
8395ecf7b4eSGunnar Mills            "parameters": {
8405ecf7b4eSGunnar Mills                "AllocationLength": {
8415ecf7b4eSGunnar Mills                    "description": "Allocated size for received data.",
8425ecf7b4eSGunnar 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.",
8435ecf7b4eSGunnar Mills                    "requiredParameter": true,
8445ecf7b4eSGunnar Mills                    "type": "integer"
8455ecf7b4eSGunnar Mills                },
8465ecf7b4eSGunnar Mills                "SecurityProtocol": {
8475ecf7b4eSGunnar Mills                    "description": "The security protocol number.",
8485ecf7b4eSGunnar 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`.",
8495ecf7b4eSGunnar Mills                    "requiredParameter": true,
8505ecf7b4eSGunnar Mills                    "type": "integer"
8515ecf7b4eSGunnar Mills                },
8525ecf7b4eSGunnar Mills                "SecurityProtocolSpecific": {
8535ecf7b4eSGunnar Mills                    "description": "The security protocol-specific parameter.",
8545ecf7b4eSGunnar 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.",
8555ecf7b4eSGunnar Mills                    "requiredParameter": true,
8565ecf7b4eSGunnar Mills                    "type": "integer"
8575ecf7b4eSGunnar Mills                }
8585ecf7b4eSGunnar Mills            },
8595ecf7b4eSGunnar Mills            "patternProperties": {
8605ecf7b4eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
8615ecf7b4eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
8625ecf7b4eSGunnar Mills                    "type": [
8635ecf7b4eSGunnar Mills                        "array",
8645ecf7b4eSGunnar Mills                        "boolean",
8655ecf7b4eSGunnar Mills                        "integer",
8665ecf7b4eSGunnar Mills                        "number",
8675ecf7b4eSGunnar Mills                        "null",
8685ecf7b4eSGunnar Mills                        "object",
8695ecf7b4eSGunnar Mills                        "string"
8705ecf7b4eSGunnar Mills                    ]
8715ecf7b4eSGunnar Mills                }
8725ecf7b4eSGunnar Mills            },
8735ecf7b4eSGunnar Mills            "properties": {
8745ecf7b4eSGunnar Mills                "target": {
8755ecf7b4eSGunnar Mills                    "description": "Link to invoke action",
8765ecf7b4eSGunnar Mills                    "format": "uri-reference",
8775ecf7b4eSGunnar Mills                    "type": "string"
8785ecf7b4eSGunnar Mills                },
8795ecf7b4eSGunnar Mills                "title": {
8805ecf7b4eSGunnar Mills                    "description": "Friendly action name",
8815ecf7b4eSGunnar Mills                    "type": "string"
8825ecf7b4eSGunnar Mills                }
8835ecf7b4eSGunnar Mills            },
8845ecf7b4eSGunnar Mills            "type": "object",
8855ecf7b4eSGunnar Mills            "versionAdded": "v1_7_0"
8865ecf7b4eSGunnar Mills        },
8875ecf7b4eSGunnar Mills        "SecurityReceiveResponse": {
8885ecf7b4eSGunnar Mills            "additionalProperties": false,
8895ecf7b4eSGunnar Mills            "description": "The security data transferred from a controller.",
8905ecf7b4eSGunnar Mills            "longDescription": "This object shall contain the security data transferred from a controller.",
8915ecf7b4eSGunnar Mills            "patternProperties": {
8925ecf7b4eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
8935ecf7b4eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
8945ecf7b4eSGunnar Mills                    "type": [
8955ecf7b4eSGunnar Mills                        "array",
8965ecf7b4eSGunnar Mills                        "boolean",
8975ecf7b4eSGunnar Mills                        "integer",
8985ecf7b4eSGunnar Mills                        "number",
8995ecf7b4eSGunnar Mills                        "null",
9005ecf7b4eSGunnar Mills                        "object",
9015ecf7b4eSGunnar Mills                        "string"
9025ecf7b4eSGunnar Mills                    ]
9035ecf7b4eSGunnar Mills                }
9045ecf7b4eSGunnar Mills            },
9055ecf7b4eSGunnar Mills            "properties": {
9065ecf7b4eSGunnar Mills                "Data": {
9075ecf7b4eSGunnar Mills                    "description": "The Base64-encoded security protocol data.",
9085ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain a Base64-encoded string, with padding characters, of the security protocol data transferred from a controller.",
9095ecf7b4eSGunnar Mills                    "readonly": true,
9105ecf7b4eSGunnar Mills                    "type": "string",
9115ecf7b4eSGunnar Mills                    "versionAdded": "v1_7_0"
9125ecf7b4eSGunnar Mills                }
9135ecf7b4eSGunnar Mills            },
9145ecf7b4eSGunnar Mills            "type": "object"
9155ecf7b4eSGunnar Mills        },
9165ecf7b4eSGunnar Mills        "SecuritySend": {
9175ecf7b4eSGunnar Mills            "additionalProperties": false,
9185ecf7b4eSGunnar 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.",
9195ecf7b4eSGunnar 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.",
9205ecf7b4eSGunnar Mills            "parameters": {
9215ecf7b4eSGunnar Mills                "Data": {
9225ecf7b4eSGunnar Mills                    "description": "The data to transfer.",
9235ecf7b4eSGunnar Mills                    "longDescription": "This parameter shall contain a Base64-encoded string, with padding characters, of the security protocol data to transfer.",
9245ecf7b4eSGunnar Mills                    "requiredParameter": true,
9255ecf7b4eSGunnar Mills                    "type": "string"
9265ecf7b4eSGunnar Mills                },
9275ecf7b4eSGunnar Mills                "SecurityProtocol": {
9285ecf7b4eSGunnar Mills                    "description": "The security protocol number.",
9295ecf7b4eSGunnar 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`.",
9305ecf7b4eSGunnar Mills                    "requiredParameter": true,
9315ecf7b4eSGunnar Mills                    "type": "integer"
9325ecf7b4eSGunnar Mills                },
9335ecf7b4eSGunnar Mills                "SecurityProtocolSpecific": {
9345ecf7b4eSGunnar Mills                    "description": "The security protocol-specific parameter.",
9355ecf7b4eSGunnar 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.",
9365ecf7b4eSGunnar Mills                    "requiredParameter": true,
9375ecf7b4eSGunnar Mills                    "type": "integer"
9385ecf7b4eSGunnar Mills                }
9395ecf7b4eSGunnar Mills            },
9405ecf7b4eSGunnar Mills            "patternProperties": {
9415ecf7b4eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
9425ecf7b4eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
9435ecf7b4eSGunnar Mills                    "type": [
9445ecf7b4eSGunnar Mills                        "array",
9455ecf7b4eSGunnar Mills                        "boolean",
9465ecf7b4eSGunnar Mills                        "integer",
9475ecf7b4eSGunnar Mills                        "number",
9485ecf7b4eSGunnar Mills                        "null",
9495ecf7b4eSGunnar Mills                        "object",
9505ecf7b4eSGunnar Mills                        "string"
9515ecf7b4eSGunnar Mills                    ]
9525ecf7b4eSGunnar Mills                }
9535ecf7b4eSGunnar Mills            },
9545ecf7b4eSGunnar Mills            "properties": {
9555ecf7b4eSGunnar Mills                "target": {
9565ecf7b4eSGunnar Mills                    "description": "Link to invoke action",
9575ecf7b4eSGunnar Mills                    "format": "uri-reference",
9585ecf7b4eSGunnar Mills                    "type": "string"
9595ecf7b4eSGunnar Mills                },
9605ecf7b4eSGunnar Mills                "title": {
9615ecf7b4eSGunnar Mills                    "description": "Friendly action name",
9625ecf7b4eSGunnar Mills                    "type": "string"
9635ecf7b4eSGunnar Mills                }
9645ecf7b4eSGunnar Mills            },
9655ecf7b4eSGunnar Mills            "type": "object",
9665ecf7b4eSGunnar Mills            "versionAdded": "v1_7_0"
9675ecf7b4eSGunnar Mills        },
9685ecf7b4eSGunnar Mills        "StorageController": {
9695ecf7b4eSGunnar Mills            "additionalProperties": false,
9705ecf7b4eSGunnar 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.",
9715ecf7b4eSGunnar Mills            "longDescription": "This resource shall represent a storage controller in the Redfish Specification.",
9725ecf7b4eSGunnar Mills            "patternProperties": {
9735ecf7b4eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
9745ecf7b4eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
9755ecf7b4eSGunnar Mills                    "type": [
9765ecf7b4eSGunnar Mills                        "array",
9775ecf7b4eSGunnar Mills                        "boolean",
9785ecf7b4eSGunnar Mills                        "integer",
9795ecf7b4eSGunnar Mills                        "number",
9805ecf7b4eSGunnar Mills                        "null",
9815ecf7b4eSGunnar Mills                        "object",
9825ecf7b4eSGunnar Mills                        "string"
9835ecf7b4eSGunnar Mills                    ]
9845ecf7b4eSGunnar Mills                }
9855ecf7b4eSGunnar Mills            },
9865ecf7b4eSGunnar Mills            "properties": {
9875ecf7b4eSGunnar Mills                "@odata.context": {
9885ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context"
9895ecf7b4eSGunnar Mills                },
9905ecf7b4eSGunnar Mills                "@odata.etag": {
9915ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag"
9925ecf7b4eSGunnar Mills                },
9935ecf7b4eSGunnar Mills                "@odata.id": {
9945ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id"
9955ecf7b4eSGunnar Mills                },
9965ecf7b4eSGunnar Mills                "@odata.type": {
9975ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type"
9985ecf7b4eSGunnar Mills                },
9995ecf7b4eSGunnar Mills                "Actions": {
10005ecf7b4eSGunnar Mills                    "$ref": "#/definitions/Actions",
10015ecf7b4eSGunnar Mills                    "description": "The available actions for this resource.",
10025ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the available actions for this resource."
10035ecf7b4eSGunnar Mills                },
10045ecf7b4eSGunnar Mills                "Assembly": {
10055ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Assembly.json#/definitions/Assembly",
10065ecf7b4eSGunnar Mills                    "description": "The link to the assembly associated with this storage controller.",
10075ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain a link to a resource of type `Assembly`.",
10085ecf7b4eSGunnar Mills                    "readonly": true
10095ecf7b4eSGunnar Mills                },
10105ecf7b4eSGunnar Mills                "AssetTag": {
10115ecf7b4eSGunnar Mills                    "description": "The user-assigned asset tag for this storage controller.",
10125ecf7b4eSGunnar Mills                    "longDescription": "This property shall track the storage controller for inventory purposes.",
10135ecf7b4eSGunnar Mills                    "readonly": false,
10145ecf7b4eSGunnar Mills                    "type": [
10155ecf7b4eSGunnar Mills                        "string",
10165ecf7b4eSGunnar Mills                        "null"
10175ecf7b4eSGunnar Mills                    ]
10185ecf7b4eSGunnar Mills                },
10195ecf7b4eSGunnar Mills                "CacheSummary": {
10205ecf7b4eSGunnar Mills                    "$ref": "#/definitions/CacheSummary",
10215ecf7b4eSGunnar Mills                    "description": "The cache memory of the storage controller in general detail.",
10225ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain properties that describe the cache memory for this resource."
10235ecf7b4eSGunnar Mills                },
10245ecf7b4eSGunnar Mills                "Certificates": {
10255ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/CertificateCollection.json#/definitions/CertificateCollection",
10265ecf7b4eSGunnar Mills                    "description": "The link to a collection of certificates for device identity and attestation.",
10275ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain a link to a resource collection of type `CertificateCollection` that contains certificates for device identity and attestation.",
10285ecf7b4eSGunnar Mills                    "readonly": true,
10295ecf7b4eSGunnar Mills                    "versionAdded": "v1_1_0"
10305ecf7b4eSGunnar Mills                },
10315ecf7b4eSGunnar Mills                "ControllerRates": {
10325ecf7b4eSGunnar Mills                    "$ref": "#/definitions/Rates",
10335ecf7b4eSGunnar Mills                    "description": "This property describes the various controller rates used for processes such as volume rebuild or consistency checks.",
10345ecf7b4eSGunnar Mills                    "longDescription": "This object shall contain all the rate settings available on the controller."
10355ecf7b4eSGunnar Mills                },
10365ecf7b4eSGunnar Mills                "Description": {
10375ecf7b4eSGunnar Mills                    "anyOf": [
10385ecf7b4eSGunnar Mills                        {
10395ecf7b4eSGunnar Mills                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
10405ecf7b4eSGunnar Mills                        },
10415ecf7b4eSGunnar Mills                        {
10425ecf7b4eSGunnar Mills                            "type": "null"
10435ecf7b4eSGunnar Mills                        }
10445ecf7b4eSGunnar Mills                    ],
10455ecf7b4eSGunnar Mills                    "readonly": true
10465ecf7b4eSGunnar Mills                },
10475ecf7b4eSGunnar Mills                "EnvironmentMetrics": {
10485ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/EnvironmentMetrics.json#/definitions/EnvironmentMetrics",
10495ecf7b4eSGunnar Mills                    "description": "The link to the environment metrics for this storage controller.",
10505ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain a link to a resource of type `EnvironmentMetrics` that represents the environment metrics for this storage controller.",
10515ecf7b4eSGunnar Mills                    "readonly": true,
10525ecf7b4eSGunnar Mills                    "versionAdded": "v1_2_0"
10535ecf7b4eSGunnar Mills                },
10545ecf7b4eSGunnar Mills                "FirmwareVersion": {
10555ecf7b4eSGunnar Mills                    "description": "The firmware version of this storage controller.",
10565ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the firmware version as defined by the manufacturer for the associated storage controller.",
10575ecf7b4eSGunnar Mills                    "readonly": true,
10585ecf7b4eSGunnar Mills                    "type": [
10595ecf7b4eSGunnar Mills                        "string",
10605ecf7b4eSGunnar Mills                        "null"
10615ecf7b4eSGunnar Mills                    ]
10625ecf7b4eSGunnar Mills                },
10635ecf7b4eSGunnar Mills                "Id": {
10645ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
10655ecf7b4eSGunnar Mills                    "readonly": true
10665ecf7b4eSGunnar Mills                },
10675ecf7b4eSGunnar Mills                "Identifiers": {
10685ecf7b4eSGunnar Mills                    "description": "The durable names for the storage controller.",
10695ecf7b4eSGunnar Mills                    "items": {
10705ecf7b4eSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Identifier"
10715ecf7b4eSGunnar Mills                    },
10725ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain a list of all known durable names for the associated storage controller.",
10735ecf7b4eSGunnar Mills                    "type": "array"
10745ecf7b4eSGunnar Mills                },
10755ecf7b4eSGunnar Mills                "IsLogical": {
10765ecf7b4eSGunnar Mills                    "description": "Indicates whether this is a logical storage controller.",
10775ecf7b4eSGunnar Mills                    "longDescription": "This property shall indicate whether this is a logical storage controller.",
10785ecf7b4eSGunnar Mills                    "readonly": true,
10795ecf7b4eSGunnar Mills                    "type": [
10805ecf7b4eSGunnar Mills                        "boolean",
10815ecf7b4eSGunnar Mills                        "null"
10825ecf7b4eSGunnar Mills                    ],
10835ecf7b4eSGunnar Mills                    "versionAdded": "v1_10_0"
10845ecf7b4eSGunnar Mills                },
10855ecf7b4eSGunnar Mills                "Links": {
10865ecf7b4eSGunnar Mills                    "$ref": "#/definitions/Links",
10875ecf7b4eSGunnar Mills                    "description": "The links to other resources that are related to this resource.",
10885ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain links to resources that are related to but are not contained by, or subordinate to, this resource."
10895ecf7b4eSGunnar Mills                },
10905ecf7b4eSGunnar Mills                "Location": {
10915ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Location",
10925ecf7b4eSGunnar Mills                    "description": "The location of the storage controller.",
10935ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the location information of the associated storage controller."
10945ecf7b4eSGunnar Mills                },
10955ecf7b4eSGunnar Mills                "MPFProperties": {
10965ecf7b4eSGunnar Mills                    "anyOf": [
10975ecf7b4eSGunnar Mills                        {
10985ecf7b4eSGunnar Mills                            "$ref": "#/definitions/MPFProperties"
10995ecf7b4eSGunnar Mills                        },
11005ecf7b4eSGunnar Mills                        {
11015ecf7b4eSGunnar Mills                            "type": "null"
11025ecf7b4eSGunnar Mills                        }
11035ecf7b4eSGunnar Mills                    ],
11045ecf7b4eSGunnar Mills                    "description": "The physical function-related properties for this storage controller within a multiple physical function storage controller.",
11055ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the physical function-related properties for this storage controller within a multiple physical function storage controller.  This property should only be present if `IsLogical` contains `true`.",
11065ecf7b4eSGunnar Mills                    "versionAdded": "v1_10_0"
11075ecf7b4eSGunnar Mills                },
11085ecf7b4eSGunnar Mills                "Manufacturer": {
11095ecf7b4eSGunnar Mills                    "description": "The manufacturer of this storage controller.",
11105ecf7b4eSGunnar 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.",
11115ecf7b4eSGunnar Mills                    "readonly": true,
11125ecf7b4eSGunnar Mills                    "type": [
11135ecf7b4eSGunnar Mills                        "string",
11145ecf7b4eSGunnar Mills                        "null"
11155ecf7b4eSGunnar Mills                    ]
11165ecf7b4eSGunnar Mills                },
11175ecf7b4eSGunnar Mills                "Measurements": {
11185ecf7b4eSGunnar Mills                    "deprecated": "This property has been deprecated in favor of the `ComponentIntegrity` resource.",
11195ecf7b4eSGunnar Mills                    "description": "An array of DSP0274-defined measurement blocks.",
11205ecf7b4eSGunnar Mills                    "items": {
11215ecf7b4eSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/v1/SoftwareInventory.json#/definitions/MeasurementBlock"
11225ecf7b4eSGunnar Mills                    },
11235ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain an array of DSP0274-defined measurement blocks.",
11245ecf7b4eSGunnar Mills                    "type": "array",
11255ecf7b4eSGunnar Mills                    "versionAdded": "v1_1_0",
11265ecf7b4eSGunnar Mills                    "versionDeprecated": "v1_5_0"
11275ecf7b4eSGunnar Mills                },
11285ecf7b4eSGunnar Mills                "Metrics": {
11295ecf7b4eSGunnar Mills                    "anyOf": [
11305ecf7b4eSGunnar Mills                        {
11315ecf7b4eSGunnar Mills                            "$ref": "http://redfish.dmtf.org/schemas/v1/StorageControllerMetrics.json#/definitions/StorageControllerMetrics"
11325ecf7b4eSGunnar Mills                        },
11335ecf7b4eSGunnar Mills                        {
11345ecf7b4eSGunnar Mills                            "type": "null"
11355ecf7b4eSGunnar Mills                        }
11365ecf7b4eSGunnar Mills                    ],
11375ecf7b4eSGunnar Mills                    "description": "The link to the metrics associated with this storage controller.",
11385ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain a link to the metrics associated with this storage controller.",
11395ecf7b4eSGunnar Mills                    "readonly": true,
11405ecf7b4eSGunnar Mills                    "versionAdded": "v1_7_0"
11415ecf7b4eSGunnar Mills                },
11425ecf7b4eSGunnar Mills                "Model": {
11435ecf7b4eSGunnar Mills                    "description": "The model number for the storage controller.",
11445ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the name by which the manufacturer generally refers to the storage controller.",
11455ecf7b4eSGunnar Mills                    "readonly": true,
11465ecf7b4eSGunnar Mills                    "type": [
11475ecf7b4eSGunnar Mills                        "string",
11485ecf7b4eSGunnar Mills                        "null"
11495ecf7b4eSGunnar Mills                    ]
11505ecf7b4eSGunnar Mills                },
11515ecf7b4eSGunnar Mills                "NVMeControllerProperties": {
11525ecf7b4eSGunnar Mills                    "$ref": "#/definitions/NVMeControllerProperties",
11535ecf7b4eSGunnar Mills                    "description": "The NVMe-related properties for this storage controller.",
11545ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain NVMe-related properties for this storage controller."
11555ecf7b4eSGunnar Mills                },
11565ecf7b4eSGunnar Mills                "Name": {
11575ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
11585ecf7b4eSGunnar Mills                    "readonly": true
11595ecf7b4eSGunnar Mills                },
11605ecf7b4eSGunnar Mills                "Oem": {
11615ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
11625ecf7b4eSGunnar Mills                    "description": "The OEM extension property.",
11635ecf7b4eSGunnar 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."
11645ecf7b4eSGunnar Mills                },
11655ecf7b4eSGunnar Mills                "PCIeInterface": {
11665ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeDevice.json#/definitions/PCIeInterface",
11675ecf7b4eSGunnar Mills                    "description": "The PCIe interface details for this controller.",
11685ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain details on the PCIe interface that connects this PCIe-based controller to its host."
11695ecf7b4eSGunnar Mills                },
11705ecf7b4eSGunnar Mills                "PartNumber": {
11715ecf7b4eSGunnar Mills                    "description": "The part number for this storage controller.",
11725ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain a part number assigned by the organization that is responsible for producing or manufacturing the storage controller.",
11735ecf7b4eSGunnar Mills                    "readonly": true,
11745ecf7b4eSGunnar Mills                    "type": [
11755ecf7b4eSGunnar Mills                        "string",
11765ecf7b4eSGunnar Mills                        "null"
11775ecf7b4eSGunnar Mills                    ]
11785ecf7b4eSGunnar Mills                },
11795ecf7b4eSGunnar Mills                "Ports": {
11805ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/PortCollection.json#/definitions/PortCollection",
11815ecf7b4eSGunnar Mills                    "description": "The link to the collection of ports that exist on the storage controller.",
11825ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain a link to a resource collection of type `PortCollection`.",
11835ecf7b4eSGunnar Mills                    "readonly": true
11845ecf7b4eSGunnar Mills                },
11855ecf7b4eSGunnar Mills                "SKU": {
11865ecf7b4eSGunnar Mills                    "description": "The SKU for this storage controller.",
11875ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the stock-keeping unit number for this storage controller.",
11885ecf7b4eSGunnar Mills                    "readonly": true,
11895ecf7b4eSGunnar Mills                    "type": [
11905ecf7b4eSGunnar Mills                        "string",
11915ecf7b4eSGunnar Mills                        "null"
11925ecf7b4eSGunnar Mills                    ]
11935ecf7b4eSGunnar Mills                },
11945ecf7b4eSGunnar Mills                "SerialNumber": {
11955ecf7b4eSGunnar Mills                    "description": "The serial number for this storage controller.",
11965ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain a manufacturer-allocated number that identifies the storage controller.",
11975ecf7b4eSGunnar Mills                    "readonly": true,
11985ecf7b4eSGunnar Mills                    "type": [
11995ecf7b4eSGunnar Mills                        "string",
12005ecf7b4eSGunnar Mills                        "null"
12015ecf7b4eSGunnar Mills                    ]
12025ecf7b4eSGunnar Mills                },
12035ecf7b4eSGunnar Mills                "SpeedGbps": {
12045ecf7b4eSGunnar Mills                    "description": "The maximum speed of the storage controller's device interface.",
12055ecf7b4eSGunnar 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.",
12065ecf7b4eSGunnar Mills                    "minimum": 0,
12075ecf7b4eSGunnar Mills                    "readonly": true,
12085ecf7b4eSGunnar Mills                    "type": [
12095ecf7b4eSGunnar Mills                        "number",
12105ecf7b4eSGunnar Mills                        "null"
12115ecf7b4eSGunnar Mills                    ],
12125ecf7b4eSGunnar Mills                    "units": "Gbit/s"
12135ecf7b4eSGunnar Mills                },
12145ecf7b4eSGunnar Mills                "Status": {
12155ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status",
12165ecf7b4eSGunnar Mills                    "description": "The status and health of the resource and its subordinate or dependent resources.",
12175ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain any status or health properties of the resource."
12185ecf7b4eSGunnar Mills                },
12195ecf7b4eSGunnar Mills                "SupportedControllerProtocols": {
12205ecf7b4eSGunnar Mills                    "description": "The supported set of protocols for communicating with this storage controller.",
12215ecf7b4eSGunnar Mills                    "items": {
12225ecf7b4eSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/v1/Protocol.json#/definitions/Protocol"
12235ecf7b4eSGunnar Mills                    },
12245ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the supported set of protocols for communicating with this storage controller.",
12255ecf7b4eSGunnar Mills                    "readonly": true,
12265ecf7b4eSGunnar Mills                    "type": "array"
12275ecf7b4eSGunnar Mills                },
12285ecf7b4eSGunnar Mills                "SupportedDeviceProtocols": {
12295ecf7b4eSGunnar Mills                    "description": "The protocols that the storage controller can use to communicate with attached devices.",
12305ecf7b4eSGunnar Mills                    "items": {
12315ecf7b4eSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/v1/Protocol.json#/definitions/Protocol"
12325ecf7b4eSGunnar Mills                    },
12335ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the set of protocols this storage controller can use to communicate with attached devices.",
12345ecf7b4eSGunnar Mills                    "readonly": true,
12355ecf7b4eSGunnar Mills                    "type": "array"
12365ecf7b4eSGunnar Mills                },
12375ecf7b4eSGunnar Mills                "SupportedRAIDTypes": {
12385ecf7b4eSGunnar Mills                    "description": "The set of RAID types supported by the storage controller.",
12395ecf7b4eSGunnar Mills                    "items": {
12405ecf7b4eSGunnar Mills                        "anyOf": [
12415ecf7b4eSGunnar Mills                            {
12425ecf7b4eSGunnar Mills                                "$ref": "http://redfish.dmtf.org/schemas/swordfish/v1/Volume.json#/definitions/RAIDType"
12435ecf7b4eSGunnar Mills                            },
12445ecf7b4eSGunnar Mills                            {
12455ecf7b4eSGunnar Mills                                "type": "null"
12465ecf7b4eSGunnar Mills                            }
12475ecf7b4eSGunnar Mills                        ]
12485ecf7b4eSGunnar Mills                    },
12495ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain an array of all the RAID types supported by this controller.",
12505ecf7b4eSGunnar Mills                    "readonly": true,
12515ecf7b4eSGunnar Mills                    "type": "array"
12525ecf7b4eSGunnar Mills                }
12535ecf7b4eSGunnar Mills            },
12545ecf7b4eSGunnar Mills            "required": [
12555ecf7b4eSGunnar Mills                "@odata.id",
12565ecf7b4eSGunnar Mills                "@odata.type",
12575ecf7b4eSGunnar Mills                "Id",
12585ecf7b4eSGunnar Mills                "Name"
12595ecf7b4eSGunnar Mills            ],
12605ecf7b4eSGunnar Mills            "type": "object"
12615ecf7b4eSGunnar Mills        }
12625ecf7b4eSGunnar Mills    },
12635ecf7b4eSGunnar Mills    "language": "en",
12645ecf7b4eSGunnar Mills    "owningEntity": "DMTF",
12655ecf7b4eSGunnar Mills    "release": "2025.3",
12665ecf7b4eSGunnar Mills    "title": "#StorageController.v1_10_0.StorageController"
12675ecf7b4eSGunnar Mills}