xref: /openbmc/bmcweb/features/redfish/schema/dmtf/json-schema/StorageControllerMetrics.v1_1_0.json (revision 5ecf7b4e1bb6988dd3403fa80b723afbe2be30ae)
1*5ecf7b4eSGunnar Mills{
2*5ecf7b4eSGunnar Mills    "$id": "http://redfish.dmtf.org/schemas/v1/StorageControllerMetrics.v1_1_0.json",
3*5ecf7b4eSGunnar Mills    "$ref": "#/definitions/StorageControllerMetrics",
4*5ecf7b4eSGunnar Mills    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json",
5*5ecf7b4eSGunnar Mills    "copyright": "Copyright 2014-2025 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
6*5ecf7b4eSGunnar Mills    "definitions": {
7*5ecf7b4eSGunnar Mills        "Actions": {
8*5ecf7b4eSGunnar Mills            "additionalProperties": false,
9*5ecf7b4eSGunnar Mills            "description": "The available actions for this resource.",
10*5ecf7b4eSGunnar Mills            "longDescription": "This type shall contain the available actions for this resource.",
11*5ecf7b4eSGunnar Mills            "patternProperties": {
12*5ecf7b4eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
13*5ecf7b4eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
14*5ecf7b4eSGunnar Mills                    "type": [
15*5ecf7b4eSGunnar Mills                        "array",
16*5ecf7b4eSGunnar Mills                        "boolean",
17*5ecf7b4eSGunnar Mills                        "integer",
18*5ecf7b4eSGunnar Mills                        "number",
19*5ecf7b4eSGunnar Mills                        "null",
20*5ecf7b4eSGunnar Mills                        "object",
21*5ecf7b4eSGunnar Mills                        "string"
22*5ecf7b4eSGunnar Mills                    ]
23*5ecf7b4eSGunnar Mills                }
24*5ecf7b4eSGunnar Mills            },
25*5ecf7b4eSGunnar Mills            "properties": {
26*5ecf7b4eSGunnar Mills                "Oem": {
27*5ecf7b4eSGunnar Mills                    "$ref": "#/definitions/OemActions",
28*5ecf7b4eSGunnar Mills                    "description": "The available OEM-specific actions for this resource.",
29*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the available OEM-specific actions for this resource."
30*5ecf7b4eSGunnar Mills                }
31*5ecf7b4eSGunnar Mills            },
32*5ecf7b4eSGunnar Mills            "type": "object"
33*5ecf7b4eSGunnar Mills        },
34*5ecf7b4eSGunnar Mills        "EGCriticalWarningSummary": {
35*5ecf7b4eSGunnar Mills            "additionalProperties": false,
36*5ecf7b4eSGunnar Mills            "description": "The Endurance Group critical warnings summary.",
37*5ecf7b4eSGunnar Mills            "longDescription": "The object shall contain the NVMe-defined 'Endurance Group Critical Warning Summary'.",
38*5ecf7b4eSGunnar Mills            "patternProperties": {
39*5ecf7b4eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
40*5ecf7b4eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
41*5ecf7b4eSGunnar Mills                    "type": [
42*5ecf7b4eSGunnar Mills                        "array",
43*5ecf7b4eSGunnar Mills                        "boolean",
44*5ecf7b4eSGunnar Mills                        "integer",
45*5ecf7b4eSGunnar Mills                        "number",
46*5ecf7b4eSGunnar Mills                        "null",
47*5ecf7b4eSGunnar Mills                        "object",
48*5ecf7b4eSGunnar Mills                        "string"
49*5ecf7b4eSGunnar Mills                    ]
50*5ecf7b4eSGunnar Mills                }
51*5ecf7b4eSGunnar Mills            },
52*5ecf7b4eSGunnar Mills            "properties": {
53*5ecf7b4eSGunnar Mills                "NamespacesInReadOnlyMode": {
54*5ecf7b4eSGunnar Mills                    "description": "An indication of whether namespaces in one or more Endurance Groups are in read-only mode not as a result of a change in the write protection state of a namespace.",
55*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall indicate whether namespaces in one or more Endurance Groups are in read-only mode not as a result of a change in the write protection state of a namespace.",
56*5ecf7b4eSGunnar Mills                    "readonly": true,
57*5ecf7b4eSGunnar Mills                    "type": [
58*5ecf7b4eSGunnar Mills                        "boolean",
59*5ecf7b4eSGunnar Mills                        "null"
60*5ecf7b4eSGunnar Mills                    ]
61*5ecf7b4eSGunnar Mills                },
62*5ecf7b4eSGunnar Mills                "ReliabilityDegraded": {
63*5ecf7b4eSGunnar Mills                    "description": "An indication of whether the reliability of one or more Endurance Groups is degraded due to significant media-related errors or any internal error that degrades the NVM subsystem reliability.",
64*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall indicate whether the reliability of one or more Endurance Groups is degraded due to significant media-related errors or any internal error that degrades the NVM subsystem reliability.",
65*5ecf7b4eSGunnar Mills                    "readonly": true,
66*5ecf7b4eSGunnar Mills                    "type": [
67*5ecf7b4eSGunnar Mills                        "boolean",
68*5ecf7b4eSGunnar Mills                        "null"
69*5ecf7b4eSGunnar Mills                    ]
70*5ecf7b4eSGunnar Mills                },
71*5ecf7b4eSGunnar Mills                "SpareCapacityUnderThreshold": {
72*5ecf7b4eSGunnar Mills                    "description": "An indication of whether the available spare capacity of one or more Endurance Groups is below the threshold.",
73*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall indicate whether the available spare capacity of one or more Endurance Groups is below the threshold.",
74*5ecf7b4eSGunnar Mills                    "readonly": true,
75*5ecf7b4eSGunnar Mills                    "type": [
76*5ecf7b4eSGunnar Mills                        "boolean",
77*5ecf7b4eSGunnar Mills                        "null"
78*5ecf7b4eSGunnar Mills                    ]
79*5ecf7b4eSGunnar Mills                }
80*5ecf7b4eSGunnar Mills            },
81*5ecf7b4eSGunnar Mills            "type": "object"
82*5ecf7b4eSGunnar Mills        },
83*5ecf7b4eSGunnar Mills        "NVMeSMARTMetrics": {
84*5ecf7b4eSGunnar Mills            "additionalProperties": false,
85*5ecf7b4eSGunnar Mills            "description": "The NVMe SMART metrics.",
86*5ecf7b4eSGunnar Mills            "longDescription": "This object shall contain the NVMe SMART metrics as defined by the NVMe SMART/Health Information log page.",
87*5ecf7b4eSGunnar Mills            "patternProperties": {
88*5ecf7b4eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
89*5ecf7b4eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
90*5ecf7b4eSGunnar Mills                    "type": [
91*5ecf7b4eSGunnar Mills                        "array",
92*5ecf7b4eSGunnar Mills                        "boolean",
93*5ecf7b4eSGunnar Mills                        "integer",
94*5ecf7b4eSGunnar Mills                        "number",
95*5ecf7b4eSGunnar Mills                        "null",
96*5ecf7b4eSGunnar Mills                        "object",
97*5ecf7b4eSGunnar Mills                        "string"
98*5ecf7b4eSGunnar Mills                    ]
99*5ecf7b4eSGunnar Mills                }
100*5ecf7b4eSGunnar Mills            },
101*5ecf7b4eSGunnar Mills            "properties": {
102*5ecf7b4eSGunnar Mills                "AvailableSparePercent": {
103*5ecf7b4eSGunnar Mills                    "description": "The normalized percentage of the remaining spare capacity available.",
104*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the NVMe-defined 'Available Spare', which represents the normalized percentage, `0` to `100`, of the remaining spare capacity available.",
105*5ecf7b4eSGunnar Mills                    "maximum": 100,
106*5ecf7b4eSGunnar Mills                    "minimum": 0,
107*5ecf7b4eSGunnar Mills                    "readonly": true,
108*5ecf7b4eSGunnar Mills                    "type": [
109*5ecf7b4eSGunnar Mills                        "number",
110*5ecf7b4eSGunnar Mills                        "null"
111*5ecf7b4eSGunnar Mills                    ],
112*5ecf7b4eSGunnar Mills                    "units": "%"
113*5ecf7b4eSGunnar Mills                },
114*5ecf7b4eSGunnar Mills                "AvailableSpareThresholdPercent": {
115*5ecf7b4eSGunnar Mills                    "description": "The available spare threshold as a normalized percentage.",
116*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the NVMe-defined 'Available Spare Threshold' as a percentage, `0` to `100`.  When the available spare falls below this value, an asynchronous event completion may occur.",
117*5ecf7b4eSGunnar Mills                    "maximum": 100,
118*5ecf7b4eSGunnar Mills                    "minimum": 0,
119*5ecf7b4eSGunnar Mills                    "readonly": true,
120*5ecf7b4eSGunnar Mills                    "type": [
121*5ecf7b4eSGunnar Mills                        "number",
122*5ecf7b4eSGunnar Mills                        "null"
123*5ecf7b4eSGunnar Mills                    ],
124*5ecf7b4eSGunnar Mills                    "units": "%"
125*5ecf7b4eSGunnar Mills                },
126*5ecf7b4eSGunnar Mills                "CompositeTemperatureCelsius": {
127*5ecf7b4eSGunnar Mills                    "description": "The composite temperature (C).",
128*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the composite temperature in degree Celsius units for this storage controller.  Services shall derive this value from the NVMe-defined 'Composite Temperature', which represents a composite temperature in kelvin units of the controller and namespaces associated with that controller.",
129*5ecf7b4eSGunnar Mills                    "readonly": true,
130*5ecf7b4eSGunnar Mills                    "type": [
131*5ecf7b4eSGunnar Mills                        "number",
132*5ecf7b4eSGunnar Mills                        "null"
133*5ecf7b4eSGunnar Mills                    ],
134*5ecf7b4eSGunnar Mills                    "units": "Cel"
135*5ecf7b4eSGunnar Mills                },
136*5ecf7b4eSGunnar Mills                "ControllerBusyTimeMinutes": {
137*5ecf7b4eSGunnar Mills                    "description": "The total time the controller is busy with I/O commands in minutes.",
138*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the NVMe-defined 'Controller Busy Time', which represents the total time the controller is busy with I/O commands in minutes.",
139*5ecf7b4eSGunnar Mills                    "readonly": true,
140*5ecf7b4eSGunnar Mills                    "type": [
141*5ecf7b4eSGunnar Mills                        "integer",
142*5ecf7b4eSGunnar Mills                        "null"
143*5ecf7b4eSGunnar Mills                    ]
144*5ecf7b4eSGunnar Mills                },
145*5ecf7b4eSGunnar Mills                "CriticalCompositeTempTimeMinutes": {
146*5ecf7b4eSGunnar Mills                    "description": "The amount of time in minutes that the controller has been operational and that the composite temperature has been greater than or equal to the critical composite temperature threshold.",
147*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the NVMe-defined 'Critical Composite Temperature Time', which represents the amount of time in minutes that the controller has been operational and that the composite temperature has been greater than or equal to the critical composite temperature threshold.",
148*5ecf7b4eSGunnar Mills                    "readonly": true,
149*5ecf7b4eSGunnar Mills                    "type": [
150*5ecf7b4eSGunnar Mills                        "integer",
151*5ecf7b4eSGunnar Mills                        "null"
152*5ecf7b4eSGunnar Mills                    ]
153*5ecf7b4eSGunnar Mills                },
154*5ecf7b4eSGunnar Mills                "CriticalWarnings": {
155*5ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/StorageController.json#/definitions/NVMeSMARTCriticalWarnings",
156*5ecf7b4eSGunnar Mills                    "description": "The NVMe SMART critical warnings.",
157*5ecf7b4eSGunnar Mills                    "longDescription": "The property shall contain the NVMe-defined 'Critical Warning'."
158*5ecf7b4eSGunnar Mills                },
159*5ecf7b4eSGunnar Mills                "DataUnitsRead": {
160*5ecf7b4eSGunnar Mills                    "description": "The number of 512 byte data units the host has read from the controller as part of processing a SMART Data Units Read Command in units of one thousand.",
161*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the NVMe-defined 'Data Units Read', which represents the number of 512 byte data units the host has read from the controller as part of processing a SMART Data Units Read Command in units of one thousand.",
162*5ecf7b4eSGunnar Mills                    "readonly": true,
163*5ecf7b4eSGunnar Mills                    "type": [
164*5ecf7b4eSGunnar Mills                        "integer",
165*5ecf7b4eSGunnar Mills                        "null"
166*5ecf7b4eSGunnar Mills                    ]
167*5ecf7b4eSGunnar Mills                },
168*5ecf7b4eSGunnar Mills                "DataUnitsWritten": {
169*5ecf7b4eSGunnar Mills                    "description": "The number of 512 byte data units the host has written to the controller as part of processing a User Data Out Command in units of one thousand.",
170*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the NVMe-defined 'Data Units Written', which represents the number of 512 byte data units the host has written to the controller as part of processing a User Data Out Command in units of one thousand.",
171*5ecf7b4eSGunnar Mills                    "readonly": true,
172*5ecf7b4eSGunnar Mills                    "type": [
173*5ecf7b4eSGunnar Mills                        "integer",
174*5ecf7b4eSGunnar Mills                        "null"
175*5ecf7b4eSGunnar Mills                    ]
176*5ecf7b4eSGunnar Mills                },
177*5ecf7b4eSGunnar Mills                "EGCriticalWarningSummary": {
178*5ecf7b4eSGunnar Mills                    "$ref": "#/definitions/EGCriticalWarningSummary",
179*5ecf7b4eSGunnar Mills                    "description": "The Endurance Group critical warnings summary.",
180*5ecf7b4eSGunnar Mills                    "longDescription": "The property shall contain the NVMe-defined 'Endurance Group Critical Warning Summary'."
181*5ecf7b4eSGunnar Mills                },
182*5ecf7b4eSGunnar Mills                "HostReadCommands": {
183*5ecf7b4eSGunnar Mills                    "description": "The number of SMART Host Read Commands completed by the controller.",
184*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the NVMe-defined 'Host Read Commands', which represents the number of SMART Host Read Commands completed by the controller.",
185*5ecf7b4eSGunnar Mills                    "readonly": true,
186*5ecf7b4eSGunnar Mills                    "type": [
187*5ecf7b4eSGunnar Mills                        "integer",
188*5ecf7b4eSGunnar Mills                        "null"
189*5ecf7b4eSGunnar Mills                    ]
190*5ecf7b4eSGunnar Mills                },
191*5ecf7b4eSGunnar Mills                "HostWriteCommands": {
192*5ecf7b4eSGunnar Mills                    "description": "The number of User Data Out Commands completed by the controller.",
193*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the NVMe-defined 'Host Write Commands', which represents the number of User Data Out Commands completed by the controller.",
194*5ecf7b4eSGunnar Mills                    "readonly": true,
195*5ecf7b4eSGunnar Mills                    "type": [
196*5ecf7b4eSGunnar Mills                        "integer",
197*5ecf7b4eSGunnar Mills                        "null"
198*5ecf7b4eSGunnar Mills                    ]
199*5ecf7b4eSGunnar Mills                },
200*5ecf7b4eSGunnar Mills                "MediaAndDataIntegrityErrors": {
201*5ecf7b4eSGunnar Mills                    "description": "The number of occurrences where the controller detected an unrecovered data integrity error.",
202*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the NVMe-defined 'Media and Data Integrity Errors', which represents the number of occurrences where the controller detected an unrecovered data integrity error.",
203*5ecf7b4eSGunnar Mills                    "readonly": true,
204*5ecf7b4eSGunnar Mills                    "type": [
205*5ecf7b4eSGunnar Mills                        "integer",
206*5ecf7b4eSGunnar Mills                        "null"
207*5ecf7b4eSGunnar Mills                    ]
208*5ecf7b4eSGunnar Mills                },
209*5ecf7b4eSGunnar Mills                "NumberOfErrorInformationLogEntries": {
210*5ecf7b4eSGunnar Mills                    "description": "The number of error information log entries over the life of the controller.",
211*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the NVMe-defined 'Number of Error Information Log Entries', which represents the number of error information log entries over the life of the controller.",
212*5ecf7b4eSGunnar Mills                    "readonly": true,
213*5ecf7b4eSGunnar Mills                    "type": [
214*5ecf7b4eSGunnar Mills                        "integer",
215*5ecf7b4eSGunnar Mills                        "null"
216*5ecf7b4eSGunnar Mills                    ]
217*5ecf7b4eSGunnar Mills                },
218*5ecf7b4eSGunnar Mills                "PercentageUsed": {
219*5ecf7b4eSGunnar Mills                    "description": "The percentage of the NVM subsystem life used.",
220*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the NVMe-defined 'Percentage Used', which represents a vendor-specific estimate of the percentage of the NVM subsystem life used based on the actual usage and the manufacturer's prediction of NVM life.  A value of `100` indicates that the estimated endurance of the NVM in the NVM subsystem has been consumed, but this may not indicate an NVM subsystem failure.  The value is allowed to exceed `100`.  Percentages greater than `254` shall be represented as `255`.",
221*5ecf7b4eSGunnar Mills                    "maximum": 255,
222*5ecf7b4eSGunnar Mills                    "minimum": 0,
223*5ecf7b4eSGunnar Mills                    "readonly": true,
224*5ecf7b4eSGunnar Mills                    "type": [
225*5ecf7b4eSGunnar Mills                        "number",
226*5ecf7b4eSGunnar Mills                        "null"
227*5ecf7b4eSGunnar Mills                    ],
228*5ecf7b4eSGunnar Mills                    "units": "%"
229*5ecf7b4eSGunnar Mills                },
230*5ecf7b4eSGunnar Mills                "PowerCycles": {
231*5ecf7b4eSGunnar Mills                    "description": "The number of power cycles.",
232*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the NVMe-defined 'Power Cycles', which represents the number of power cycles.",
233*5ecf7b4eSGunnar Mills                    "readonly": true,
234*5ecf7b4eSGunnar Mills                    "type": [
235*5ecf7b4eSGunnar Mills                        "integer",
236*5ecf7b4eSGunnar Mills                        "null"
237*5ecf7b4eSGunnar Mills                    ]
238*5ecf7b4eSGunnar Mills                },
239*5ecf7b4eSGunnar Mills                "PowerOnHours": {
240*5ecf7b4eSGunnar Mills                    "description": "The number of power-on hours.",
241*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the NVMe-defined 'Power On Hours', which represents the number of power-on hours.",
242*5ecf7b4eSGunnar Mills                    "readonly": true,
243*5ecf7b4eSGunnar Mills                    "type": [
244*5ecf7b4eSGunnar Mills                        "number",
245*5ecf7b4eSGunnar Mills                        "null"
246*5ecf7b4eSGunnar Mills                    ]
247*5ecf7b4eSGunnar Mills                },
248*5ecf7b4eSGunnar Mills                "TemperatureSensorsCelsius": {
249*5ecf7b4eSGunnar Mills                    "description": "The temperature sensor readings in degree Celsius units for this storage controller.",
250*5ecf7b4eSGunnar Mills                    "items": {
251*5ecf7b4eSGunnar Mills                        "type": [
252*5ecf7b4eSGunnar Mills                            "number",
253*5ecf7b4eSGunnar Mills                            "null"
254*5ecf7b4eSGunnar Mills                        ]
255*5ecf7b4eSGunnar Mills                    },
256*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain an array of temperature sensor readings in degree Celsius units for this storage controller.  Services shall derive each array member from the NVMe-defined 'Temperature Sensor' values, which represent a temperature sensor reading in kelvin units.",
257*5ecf7b4eSGunnar Mills                    "readonly": true,
258*5ecf7b4eSGunnar Mills                    "type": "array",
259*5ecf7b4eSGunnar Mills                    "units": "Cel"
260*5ecf7b4eSGunnar Mills                },
261*5ecf7b4eSGunnar Mills                "ThermalMgmtTemp1TotalTimeSeconds": {
262*5ecf7b4eSGunnar Mills                    "description": "The number of seconds the controller transitioned to lower power states or performed vendor-specific thermal-management actions while minimizing the impact on performance in order to attempt to reduce the composite temperature.",
263*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the NVMe-defined 'Total Time For Thermal Management Temperature 1', which represents the number of seconds the controller transitioned to lower power states or performed vendor-specific thermal-management actions while minimizing the impact on performance in order to attempt to reduce the composite temperature.",
264*5ecf7b4eSGunnar Mills                    "readonly": true,
265*5ecf7b4eSGunnar Mills                    "type": [
266*5ecf7b4eSGunnar Mills                        "integer",
267*5ecf7b4eSGunnar Mills                        "null"
268*5ecf7b4eSGunnar Mills                    ]
269*5ecf7b4eSGunnar Mills                },
270*5ecf7b4eSGunnar Mills                "ThermalMgmtTemp1TransitionCount": {
271*5ecf7b4eSGunnar Mills                    "description": "The number of times the controller transitioned to lower power states or performed vendor-specific thermal-management actions while minimizing the impact on performance in order to attempt to reduce the composite temperature.",
272*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the NVMe-defined 'Thermal Management Temperature 1 Transition Count', which represents the number of times the controller transitioned to lower power states or performed vendor-specific thermal-management actions while minimizing the impact on performance in order to attempt to reduce the composite temperature.",
273*5ecf7b4eSGunnar Mills                    "readonly": true,
274*5ecf7b4eSGunnar Mills                    "type": [
275*5ecf7b4eSGunnar Mills                        "integer",
276*5ecf7b4eSGunnar Mills                        "null"
277*5ecf7b4eSGunnar Mills                    ]
278*5ecf7b4eSGunnar Mills                },
279*5ecf7b4eSGunnar Mills                "ThermalMgmtTemp2TotalTimeSeconds": {
280*5ecf7b4eSGunnar Mills                    "description": "The number of seconds the controller transitioned to lower power states or performed vendor-specific thermal-management actions regardless of the impact on performance in order to attempt to reduce the composite temperature.",
281*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the NVMe-defined 'Total Time For Thermal Management Temperature 2', which represents the number of seconds the controller transitioned to lower power states or performed vendor-specific thermal-management actions regardless of the impact on performance in order to attempt to reduce the composite temperature.",
282*5ecf7b4eSGunnar Mills                    "readonly": true,
283*5ecf7b4eSGunnar Mills                    "type": [
284*5ecf7b4eSGunnar Mills                        "integer",
285*5ecf7b4eSGunnar Mills                        "null"
286*5ecf7b4eSGunnar Mills                    ]
287*5ecf7b4eSGunnar Mills                },
288*5ecf7b4eSGunnar Mills                "ThermalMgmtTemp2TransitionCount": {
289*5ecf7b4eSGunnar Mills                    "description": "The number of times the controller transitioned to lower power states or performed vendor-specific thermal-management actions regardless of the impact on performance in order to attempt to reduce the composite temperature.",
290*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the NVMe-defined 'Thermal Management Temperature 2 Transition Count', which represents the number of times the controller transitioned to lower power states or performed vendor-specific thermal-management actions regardless of the impact on performance in order to attempt to reduce the composite temperature.",
291*5ecf7b4eSGunnar Mills                    "readonly": true,
292*5ecf7b4eSGunnar Mills                    "type": [
293*5ecf7b4eSGunnar Mills                        "integer",
294*5ecf7b4eSGunnar Mills                        "null"
295*5ecf7b4eSGunnar Mills                    ]
296*5ecf7b4eSGunnar Mills                },
297*5ecf7b4eSGunnar Mills                "UnsafeShutdowns": {
298*5ecf7b4eSGunnar Mills                    "description": "The number of unsafe shutdowns.",
299*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the NVMe-defined 'Unsafe Shutdowns', which represents the number of times when the controller does not report it is safe to power down prior to loss of main power.",
300*5ecf7b4eSGunnar Mills                    "readonly": true,
301*5ecf7b4eSGunnar Mills                    "type": [
302*5ecf7b4eSGunnar Mills                        "integer",
303*5ecf7b4eSGunnar Mills                        "null"
304*5ecf7b4eSGunnar Mills                    ]
305*5ecf7b4eSGunnar Mills                },
306*5ecf7b4eSGunnar Mills                "WarningCompositeTempTimeMinutes": {
307*5ecf7b4eSGunnar Mills                    "description": "The amount of time in minutes that the controller has been operational and that the composite temperature has been greater than or equal to the warning composite temperature threshold.",
308*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the NVMe-defined 'Warning Composite Temperature Time', which represents the amount of time in minutes that the controller has been operational and that the composite temperature has been greater than or equal to the warning composite temperature threshold.",
309*5ecf7b4eSGunnar Mills                    "readonly": true,
310*5ecf7b4eSGunnar Mills                    "type": [
311*5ecf7b4eSGunnar Mills                        "integer",
312*5ecf7b4eSGunnar Mills                        "null"
313*5ecf7b4eSGunnar Mills                    ]
314*5ecf7b4eSGunnar Mills                }
315*5ecf7b4eSGunnar Mills            },
316*5ecf7b4eSGunnar Mills            "type": "object"
317*5ecf7b4eSGunnar Mills        },
318*5ecf7b4eSGunnar Mills        "OemActions": {
319*5ecf7b4eSGunnar Mills            "additionalProperties": true,
320*5ecf7b4eSGunnar Mills            "description": "The available OEM-specific actions for this resource.",
321*5ecf7b4eSGunnar Mills            "longDescription": "This type shall contain the available OEM-specific actions for this resource.",
322*5ecf7b4eSGunnar Mills            "patternProperties": {
323*5ecf7b4eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
324*5ecf7b4eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
325*5ecf7b4eSGunnar Mills                    "type": [
326*5ecf7b4eSGunnar Mills                        "array",
327*5ecf7b4eSGunnar Mills                        "boolean",
328*5ecf7b4eSGunnar Mills                        "integer",
329*5ecf7b4eSGunnar Mills                        "number",
330*5ecf7b4eSGunnar Mills                        "null",
331*5ecf7b4eSGunnar Mills                        "object",
332*5ecf7b4eSGunnar Mills                        "string"
333*5ecf7b4eSGunnar Mills                    ]
334*5ecf7b4eSGunnar Mills                }
335*5ecf7b4eSGunnar Mills            },
336*5ecf7b4eSGunnar Mills            "properties": {},
337*5ecf7b4eSGunnar Mills            "type": "object"
338*5ecf7b4eSGunnar Mills        },
339*5ecf7b4eSGunnar Mills        "StorageControllerMetrics": {
340*5ecf7b4eSGunnar Mills            "additionalProperties": false,
341*5ecf7b4eSGunnar Mills            "description": "The usage and health statistics for a storage controller.",
342*5ecf7b4eSGunnar Mills            "longDescription": "The `StorageControllerMetrics` schema shall contain the usage and health statistics for a storage controller in a Redfish implementation.",
343*5ecf7b4eSGunnar Mills            "patternProperties": {
344*5ecf7b4eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
345*5ecf7b4eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
346*5ecf7b4eSGunnar Mills                    "type": [
347*5ecf7b4eSGunnar Mills                        "array",
348*5ecf7b4eSGunnar Mills                        "boolean",
349*5ecf7b4eSGunnar Mills                        "integer",
350*5ecf7b4eSGunnar Mills                        "number",
351*5ecf7b4eSGunnar Mills                        "null",
352*5ecf7b4eSGunnar Mills                        "object",
353*5ecf7b4eSGunnar Mills                        "string"
354*5ecf7b4eSGunnar Mills                    ]
355*5ecf7b4eSGunnar Mills                }
356*5ecf7b4eSGunnar Mills            },
357*5ecf7b4eSGunnar Mills            "properties": {
358*5ecf7b4eSGunnar Mills                "@odata.context": {
359*5ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context"
360*5ecf7b4eSGunnar Mills                },
361*5ecf7b4eSGunnar Mills                "@odata.etag": {
362*5ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag"
363*5ecf7b4eSGunnar Mills                },
364*5ecf7b4eSGunnar Mills                "@odata.id": {
365*5ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id"
366*5ecf7b4eSGunnar Mills                },
367*5ecf7b4eSGunnar Mills                "@odata.type": {
368*5ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type"
369*5ecf7b4eSGunnar Mills                },
370*5ecf7b4eSGunnar Mills                "Actions": {
371*5ecf7b4eSGunnar Mills                    "$ref": "#/definitions/Actions",
372*5ecf7b4eSGunnar Mills                    "description": "The available actions for this resource.",
373*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the available actions for this resource."
374*5ecf7b4eSGunnar Mills                },
375*5ecf7b4eSGunnar Mills                "CorrectableECCErrorCount": {
376*5ecf7b4eSGunnar Mills                    "description": "The number of correctable errors for the lifetime of the memory of the storage controller.",
377*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the number of correctable errors for the lifetime of memory of the storage controller.",
378*5ecf7b4eSGunnar Mills                    "readonly": true,
379*5ecf7b4eSGunnar Mills                    "type": [
380*5ecf7b4eSGunnar Mills                        "integer",
381*5ecf7b4eSGunnar Mills                        "null"
382*5ecf7b4eSGunnar Mills                    ]
383*5ecf7b4eSGunnar Mills                },
384*5ecf7b4eSGunnar Mills                "CorrectableParityErrorCount": {
385*5ecf7b4eSGunnar Mills                    "description": "The number of correctable parity errors for the lifetime of the memory of the storage controller.",
386*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the number of correctable errors for the lifetime of memory of the storage controller.",
387*5ecf7b4eSGunnar Mills                    "readonly": true,
388*5ecf7b4eSGunnar Mills                    "type": [
389*5ecf7b4eSGunnar Mills                        "integer",
390*5ecf7b4eSGunnar Mills                        "null"
391*5ecf7b4eSGunnar Mills                    ]
392*5ecf7b4eSGunnar Mills                },
393*5ecf7b4eSGunnar Mills                "Description": {
394*5ecf7b4eSGunnar Mills                    "anyOf": [
395*5ecf7b4eSGunnar Mills                        {
396*5ecf7b4eSGunnar Mills                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
397*5ecf7b4eSGunnar Mills                        },
398*5ecf7b4eSGunnar Mills                        {
399*5ecf7b4eSGunnar Mills                            "type": "null"
400*5ecf7b4eSGunnar Mills                        }
401*5ecf7b4eSGunnar Mills                    ],
402*5ecf7b4eSGunnar Mills                    "readonly": true
403*5ecf7b4eSGunnar Mills                },
404*5ecf7b4eSGunnar Mills                "Id": {
405*5ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
406*5ecf7b4eSGunnar Mills                    "readonly": true
407*5ecf7b4eSGunnar Mills                },
408*5ecf7b4eSGunnar Mills                "LifetimeStartDateTime": {
409*5ecf7b4eSGunnar Mills                    "description": "The date and time when the storage controller started accumulating data for properties that contain lifetime data, such as `UncorrectableECCErrorCount`.",
410*5ecf7b4eSGunnar Mills                    "format": "date-time",
411*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the date and time when the storage controller started accumulating data for properties that contain lifetime data, such as `UncorrectableECCErrorCount`.  For physical controllers, this might contain the same value as the production date of the storage controller.  For logical controllers, this might contain the creation date of the storage controller.",
412*5ecf7b4eSGunnar Mills                    "readonly": true,
413*5ecf7b4eSGunnar Mills                    "type": [
414*5ecf7b4eSGunnar Mills                        "string",
415*5ecf7b4eSGunnar Mills                        "null"
416*5ecf7b4eSGunnar Mills                    ],
417*5ecf7b4eSGunnar Mills                    "versionAdded": "v1_1_0"
418*5ecf7b4eSGunnar Mills                },
419*5ecf7b4eSGunnar Mills                "NVMeSMART": {
420*5ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/StorageControllerMetrics.json#/definitions/NVMeSMARTMetrics",
421*5ecf7b4eSGunnar Mills                    "description": "The NVMe SMART metrics for this storage controller.",
422*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the NVMe SMART metrics for this storage controller as defined by the NVMe SMART/Health Information log page.  This property shall only be present for NVMe storage controllers."
423*5ecf7b4eSGunnar Mills                },
424*5ecf7b4eSGunnar Mills                "Name": {
425*5ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
426*5ecf7b4eSGunnar Mills                    "readonly": true
427*5ecf7b4eSGunnar Mills                },
428*5ecf7b4eSGunnar Mills                "Oem": {
429*5ecf7b4eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
430*5ecf7b4eSGunnar Mills                    "description": "The OEM extension property.",
431*5ecf7b4eSGunnar 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."
432*5ecf7b4eSGunnar Mills                },
433*5ecf7b4eSGunnar Mills                "StateChangeCount": {
434*5ecf7b4eSGunnar Mills                    "description": "The number of state changes for this storage controller.",
435*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the number of times the `State` property within the `Status` property of the parent `StorageController` resource changed.",
436*5ecf7b4eSGunnar Mills                    "readonly": true,
437*5ecf7b4eSGunnar Mills                    "type": [
438*5ecf7b4eSGunnar Mills                        "integer",
439*5ecf7b4eSGunnar Mills                        "null"
440*5ecf7b4eSGunnar Mills                    ]
441*5ecf7b4eSGunnar Mills                },
442*5ecf7b4eSGunnar Mills                "UncorrectableECCErrorCount": {
443*5ecf7b4eSGunnar Mills                    "description": "The number of uncorrectable errors for the lifetime of the memory of the storage controller.",
444*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the number of uncorrectable errors for the lifetime of memory of the storage controller.",
445*5ecf7b4eSGunnar Mills                    "readonly": true,
446*5ecf7b4eSGunnar Mills                    "type": [
447*5ecf7b4eSGunnar Mills                        "integer",
448*5ecf7b4eSGunnar Mills                        "null"
449*5ecf7b4eSGunnar Mills                    ]
450*5ecf7b4eSGunnar Mills                },
451*5ecf7b4eSGunnar Mills                "UncorrectableParityErrorCount": {
452*5ecf7b4eSGunnar Mills                    "description": "The number of uncorrectable parity errors for the lifetime of the memory of the storage controller.",
453*5ecf7b4eSGunnar Mills                    "longDescription": "This property shall contain the number of uncorrectable errors for the lifetime of memory of the storage controller.",
454*5ecf7b4eSGunnar Mills                    "readonly": true,
455*5ecf7b4eSGunnar Mills                    "type": [
456*5ecf7b4eSGunnar Mills                        "integer",
457*5ecf7b4eSGunnar Mills                        "null"
458*5ecf7b4eSGunnar Mills                    ]
459*5ecf7b4eSGunnar Mills                }
460*5ecf7b4eSGunnar Mills            },
461*5ecf7b4eSGunnar Mills            "required": [
462*5ecf7b4eSGunnar Mills                "@odata.id",
463*5ecf7b4eSGunnar Mills                "@odata.type",
464*5ecf7b4eSGunnar Mills                "Id",
465*5ecf7b4eSGunnar Mills                "Name"
466*5ecf7b4eSGunnar Mills            ],
467*5ecf7b4eSGunnar Mills            "type": "object"
468*5ecf7b4eSGunnar Mills        }
469*5ecf7b4eSGunnar Mills    },
470*5ecf7b4eSGunnar Mills    "language": "en",
471*5ecf7b4eSGunnar Mills    "owningEntity": "DMTF",
472*5ecf7b4eSGunnar Mills    "release": "2025.3",
473*5ecf7b4eSGunnar Mills    "title": "#StorageControllerMetrics.v1_1_0.StorageControllerMetrics"
474*5ecf7b4eSGunnar Mills}