1c6d7a45dSGunnar Mills{
2c6d7a45dSGunnar Mills    "$id": "http://redfish.dmtf.org/schemas/v1/MetricDefinition.v1_3_5.json",
3c6d7a45dSGunnar Mills    "$ref": "#/definitions/MetricDefinition",
4c6d7a45dSGunnar Mills    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json",
5c6d7a45dSGunnar Mills    "copyright": "Copyright 2014-2025 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
6c6d7a45dSGunnar Mills    "definitions": {
7c6d7a45dSGunnar Mills        "Actions": {
8c6d7a45dSGunnar Mills            "additionalProperties": false,
9c6d7a45dSGunnar Mills            "description": "The available actions for this resource.",
10c6d7a45dSGunnar Mills            "longDescription": "This type shall contain the available actions for this resource.",
11c6d7a45dSGunnar Mills            "patternProperties": {
12c6d7a45dSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
13c6d7a45dSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
14c6d7a45dSGunnar Mills                    "type": [
15c6d7a45dSGunnar Mills                        "array",
16c6d7a45dSGunnar Mills                        "boolean",
17c6d7a45dSGunnar Mills                        "integer",
18c6d7a45dSGunnar Mills                        "number",
19c6d7a45dSGunnar Mills                        "null",
20c6d7a45dSGunnar Mills                        "object",
21c6d7a45dSGunnar Mills                        "string"
22c6d7a45dSGunnar Mills                    ]
23c6d7a45dSGunnar Mills                }
24c6d7a45dSGunnar Mills            },
25c6d7a45dSGunnar Mills            "properties": {
26c6d7a45dSGunnar Mills                "Oem": {
27c6d7a45dSGunnar Mills                    "$ref": "#/definitions/OemActions",
28c6d7a45dSGunnar Mills                    "description": "The available OEM-specific actions for this resource.",
29c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the available OEM-specific actions for this resource."
30c6d7a45dSGunnar Mills                }
31c6d7a45dSGunnar Mills            },
32c6d7a45dSGunnar Mills            "type": "object"
33c6d7a45dSGunnar Mills        },
34c6d7a45dSGunnar Mills        "Calculable": {
35c6d7a45dSGunnar Mills            "description": "The types of calculations that can be applied to the metric reading.  Provides information to the client on the suitability of calculation using the metric reading.",
36c6d7a45dSGunnar Mills            "enum": [
37c6d7a45dSGunnar Mills                "NonCalculatable",
38c6d7a45dSGunnar Mills                "Summable",
39c6d7a45dSGunnar Mills                "NonSummable"
40c6d7a45dSGunnar Mills            ],
41c6d7a45dSGunnar Mills            "enumDescriptions": {
42c6d7a45dSGunnar Mills                "NonCalculatable": "No calculations should be performed on the metric reading.",
43c6d7a45dSGunnar Mills                "NonSummable": "The sum of the metric reading across multiple instances is not meaningful.",
44c6d7a45dSGunnar Mills                "Summable": "The sum of the metric reading across multiple instances is meaningful."
45c6d7a45dSGunnar Mills            },
46c6d7a45dSGunnar Mills            "longDescription": "The type shall describe the types of calculations that can be applied to the metric reading.",
47c6d7a45dSGunnar Mills            "type": "string"
48c6d7a45dSGunnar Mills        },
49c6d7a45dSGunnar Mills        "CalculationAlgorithmEnum": {
50c6d7a45dSGunnar Mills            "enum": [
51c6d7a45dSGunnar Mills                "Average",
52c6d7a45dSGunnar Mills                "Maximum",
53c6d7a45dSGunnar Mills                "Minimum",
54c6d7a45dSGunnar Mills                "OEM"
55c6d7a45dSGunnar Mills            ],
56c6d7a45dSGunnar Mills            "enumDescriptions": {
57c6d7a45dSGunnar Mills                "Average": "The metric is calculated as the average metric reading over a sliding time interval.",
58c6d7a45dSGunnar Mills                "Maximum": "The metric is calculated as the maximum metric reading over during a time interval.",
59c6d7a45dSGunnar Mills                "Minimum": "The metric is calculated as the minimum metric reading over a sliding time interval.",
60c6d7a45dSGunnar Mills                "OEM": "The metric is calculated as specified by an OEM."
61c6d7a45dSGunnar Mills            },
62c6d7a45dSGunnar Mills            "enumLongDescriptions": {
63c6d7a45dSGunnar Mills                "Average": "The metric shall be calculated as the average metric reading over a sliding time interval.  The time interval shall contain the `CalculationTimeInterval` property value.",
64c6d7a45dSGunnar Mills                "Maximum": "The metric shall be calculated as the maximum metric reading over a sliding time interval.  The time interval shall contain the `CalculationTimeInterval` property value.",
65c6d7a45dSGunnar Mills                "Minimum": "The metric shall be calculated as the minimum metric reading over a sliding time interval.  The time interval shall contain the `CalculationTimeInterval` property value.",
66c6d7a45dSGunnar Mills                "OEM": "The metric shall be calculated as specified by an OEM.  The `OEMCalculationAlgorithm` property shall contain the specific OEM calculation algorithm."
67c6d7a45dSGunnar Mills            },
68c6d7a45dSGunnar Mills            "enumVersionAdded": {
69c6d7a45dSGunnar Mills                "OEM": "v1_1_0"
70c6d7a45dSGunnar Mills            },
71c6d7a45dSGunnar Mills            "type": "string"
72c6d7a45dSGunnar Mills        },
73c6d7a45dSGunnar Mills        "CalculationParamsType": {
74c6d7a45dSGunnar Mills            "additionalProperties": false,
75c6d7a45dSGunnar Mills            "description": "The parameters for a metric calculation.",
76c6d7a45dSGunnar Mills            "longDescription": "This type shall contain the parameters for a metric calculation.",
77c6d7a45dSGunnar Mills            "patternProperties": {
78c6d7a45dSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
79c6d7a45dSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
80c6d7a45dSGunnar Mills                    "type": [
81c6d7a45dSGunnar Mills                        "array",
82c6d7a45dSGunnar Mills                        "boolean",
83c6d7a45dSGunnar Mills                        "integer",
84c6d7a45dSGunnar Mills                        "number",
85c6d7a45dSGunnar Mills                        "null",
86c6d7a45dSGunnar Mills                        "object",
87c6d7a45dSGunnar Mills                        "string"
88c6d7a45dSGunnar Mills                    ]
89c6d7a45dSGunnar Mills                }
90c6d7a45dSGunnar Mills            },
91c6d7a45dSGunnar Mills            "properties": {
92c6d7a45dSGunnar Mills                "ResultMetric": {
93c6d7a45dSGunnar Mills                    "description": "The URI with wildcards and property identifiers of the metric property that stores the result of the calculation.  If the URI has wildcards, the wildcards are substituted as specified in the `Wildcards` property.",
94c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain a URI with wildcards and property identifiers of the metric property that stores the result of the calculation.  A set of curly braces shall delimit each wildcard in the URI.  The corresponding entry in the `Wildcard` property shall replace each wildcard.  After each wildcard is replaced, it shall identify a resource property to which the metric definition applies.  The property identifiers portion of the URI shall follow RFC6901-defined JSON pointer notation rules.",
95c6d7a45dSGunnar Mills                    "readonly": true,
96c6d7a45dSGunnar Mills                    "type": [
97c6d7a45dSGunnar Mills                        "string",
98c6d7a45dSGunnar Mills                        "null"
99c6d7a45dSGunnar Mills                    ]
100c6d7a45dSGunnar Mills                },
101c6d7a45dSGunnar Mills                "SourceMetric": {
102c6d7a45dSGunnar Mills                    "description": "The URI with wildcards and property identifiers of the metric property used as the input into the calculation.  If the URI has wildcards, the wildcards are substituted as specified in the `Wildcards` property.",
103c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain a URI with wildcards and property identifiers of the metric property used as the input into the calculation.  A set of curly braces shall delimit each wildcard in the URI.  The corresponding entry in the `Wildcard` property shall replace each wildcard.  After each wildcard is replaced, it shall identify a resource property to which the metric definition applies.  The property identifiers portion of the URI shall follow RFC6901-defined JSON pointer notation rules.",
104c6d7a45dSGunnar Mills                    "readonly": true,
105c6d7a45dSGunnar Mills                    "type": [
106c6d7a45dSGunnar Mills                        "string",
107c6d7a45dSGunnar Mills                        "null"
108c6d7a45dSGunnar Mills                    ]
109c6d7a45dSGunnar Mills                }
110c6d7a45dSGunnar Mills            },
111c6d7a45dSGunnar Mills            "type": "object"
112c6d7a45dSGunnar Mills        },
113c6d7a45dSGunnar Mills        "ImplementationType": {
114c6d7a45dSGunnar Mills            "enum": [
115c6d7a45dSGunnar Mills                "PhysicalSensor",
116c6d7a45dSGunnar Mills                "Calculated",
117c6d7a45dSGunnar Mills                "Synthesized",
118c6d7a45dSGunnar Mills                "DigitalMeter"
119c6d7a45dSGunnar Mills            ],
120c6d7a45dSGunnar Mills            "enumDescriptions": {
121c6d7a45dSGunnar Mills                "Calculated": "The metric is implemented by applying a calculation on another metric property.  The calculation is specified in the `CalculationAlgorithm` property.",
122c6d7a45dSGunnar Mills                "DigitalMeter": "The metric is implemented as digital meter.",
123c6d7a45dSGunnar Mills                "PhysicalSensor": "The metric is implemented as a physical sensor.",
124c6d7a45dSGunnar Mills                "Synthesized": "The metric is implemented by applying a calculation on one or more metric properties.  The calculation is not provided."
125c6d7a45dSGunnar Mills            },
126c6d7a45dSGunnar Mills            "type": "string"
127c6d7a45dSGunnar Mills        },
128c6d7a45dSGunnar Mills        "MetricDataType": {
129c6d7a45dSGunnar Mills            "description": "The data type of the related metric values.  Provides information to the client on the nature of the metric reading.",
130c6d7a45dSGunnar Mills            "enum": [
131c6d7a45dSGunnar Mills                "Boolean",
132c6d7a45dSGunnar Mills                "DateTime",
133c6d7a45dSGunnar Mills                "Decimal",
134c6d7a45dSGunnar Mills                "Integer",
135c6d7a45dSGunnar Mills                "String",
136c6d7a45dSGunnar Mills                "Enumeration"
137c6d7a45dSGunnar Mills            ],
138c6d7a45dSGunnar Mills            "enumDescriptions": {
139c6d7a45dSGunnar Mills                "Boolean": "The JSON boolean definition.",
140c6d7a45dSGunnar Mills                "DateTime": "The JSON string definition with the date-time format.",
141c6d7a45dSGunnar Mills                "Decimal": "The JSON decimal definition.",
142c6d7a45dSGunnar Mills                "Enumeration": "The JSON string definition with a set of defined enumerations.",
143c6d7a45dSGunnar Mills                "Integer": "The JSON integer definition.",
144c6d7a45dSGunnar Mills                "String": "The JSON string definition."
145c6d7a45dSGunnar Mills            },
146c6d7a45dSGunnar Mills            "longDescription": "This type shall describe the data type of the related metric values as defined by JSON data types.",
147c6d7a45dSGunnar Mills            "type": "string"
148c6d7a45dSGunnar Mills        },
149c6d7a45dSGunnar Mills        "MetricDefinition": {
150c6d7a45dSGunnar Mills            "additionalProperties": false,
151c6d7a45dSGunnar Mills            "description": "The `MetricDefinition` schema describes the metadata information for a metric.",
152c6d7a45dSGunnar Mills            "longDescription": "This resource shall contain the metadata information for a metric in a Redfish implementation.",
153c6d7a45dSGunnar Mills            "patternProperties": {
154c6d7a45dSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
155c6d7a45dSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
156c6d7a45dSGunnar Mills                    "type": [
157c6d7a45dSGunnar Mills                        "array",
158c6d7a45dSGunnar Mills                        "boolean",
159c6d7a45dSGunnar Mills                        "integer",
160c6d7a45dSGunnar Mills                        "number",
161c6d7a45dSGunnar Mills                        "null",
162c6d7a45dSGunnar Mills                        "object",
163c6d7a45dSGunnar Mills                        "string"
164c6d7a45dSGunnar Mills                    ]
165c6d7a45dSGunnar Mills                }
166c6d7a45dSGunnar Mills            },
167c6d7a45dSGunnar Mills            "properties": {
168c6d7a45dSGunnar Mills                "@odata.context": {
169c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context"
170c6d7a45dSGunnar Mills                },
171c6d7a45dSGunnar Mills                "@odata.etag": {
172c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag"
173c6d7a45dSGunnar Mills                },
174c6d7a45dSGunnar Mills                "@odata.id": {
175c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id"
176c6d7a45dSGunnar Mills                },
177c6d7a45dSGunnar Mills                "@odata.type": {
178c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type"
179c6d7a45dSGunnar Mills                },
180c6d7a45dSGunnar Mills                "Accuracy": {
181c6d7a45dSGunnar Mills                    "description": "The estimated percent error of measured versus actual values.",
182c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the percent error +/- of the measured versus actual values.  The property is not meaningful when the `MetricType` property is `Discrete`.",
183c6d7a45dSGunnar Mills                    "readonly": true,
184c6d7a45dSGunnar Mills                    "type": [
185c6d7a45dSGunnar Mills                        "number",
186c6d7a45dSGunnar Mills                        "null"
187c6d7a45dSGunnar Mills                    ]
188c6d7a45dSGunnar Mills                },
189c6d7a45dSGunnar Mills                "Actions": {
190c6d7a45dSGunnar Mills                    "$ref": "#/definitions/Actions",
191c6d7a45dSGunnar Mills                    "description": "The available actions for this resource.",
192c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the available actions for this resource."
193c6d7a45dSGunnar Mills                },
194c6d7a45dSGunnar Mills                "Calculable": {
195c6d7a45dSGunnar Mills                    "anyOf": [
196c6d7a45dSGunnar Mills                        {
197c6d7a45dSGunnar Mills                            "$ref": "#/definitions/Calculable"
198c6d7a45dSGunnar Mills                        },
199c6d7a45dSGunnar Mills                        {
200c6d7a45dSGunnar Mills                            "type": "null"
201c6d7a45dSGunnar Mills                        }
202c6d7a45dSGunnar Mills                    ],
203c6d7a45dSGunnar Mills                    "description": "An indication of whether the metric can be used in a calculation.",
204c6d7a45dSGunnar Mills                    "longDescription": "This property shall specify whether the metric can be used in a calculation.",
205c6d7a45dSGunnar Mills                    "readonly": false
206c6d7a45dSGunnar Mills                },
207c6d7a45dSGunnar Mills                "CalculationAlgorithm": {
208c6d7a45dSGunnar Mills                    "anyOf": [
209c6d7a45dSGunnar Mills                        {
210c6d7a45dSGunnar Mills                            "$ref": "#/definitions/CalculationAlgorithmEnum"
211c6d7a45dSGunnar Mills                        },
212c6d7a45dSGunnar Mills                        {
213c6d7a45dSGunnar Mills                            "type": "null"
214c6d7a45dSGunnar Mills                        }
215c6d7a45dSGunnar Mills                    ],
216c6d7a45dSGunnar Mills                    "description": "The calculation that is performed on a source metric to obtain the metric being defined.",
217c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the calculation performed to obtain the metric.",
218c6d7a45dSGunnar Mills                    "readonly": true
219c6d7a45dSGunnar Mills                },
220c6d7a45dSGunnar Mills                "CalculationParameters": {
221c6d7a45dSGunnar Mills                    "description": "The metric properties that are part of a calculation that this metric definition defines.",
222c6d7a45dSGunnar Mills                    "items": {
223c6d7a45dSGunnar Mills                        "anyOf": [
224c6d7a45dSGunnar Mills                            {
225c6d7a45dSGunnar Mills                                "$ref": "#/definitions/CalculationParamsType"
226c6d7a45dSGunnar Mills                            },
227c6d7a45dSGunnar Mills                            {
228c6d7a45dSGunnar Mills                                "type": "null"
229c6d7a45dSGunnar Mills                            }
230c6d7a45dSGunnar Mills                        ]
231c6d7a45dSGunnar Mills                    },
232c6d7a45dSGunnar Mills                    "longDescription": "This property shall list the metric properties that are part of a calculation that this metric definition defines.  This property should be present if `ImplementationType` contains `Synthesized` or `Calculated`.",
233c6d7a45dSGunnar Mills                    "type": "array"
234c6d7a45dSGunnar Mills                },
235c6d7a45dSGunnar Mills                "CalculationTimeInterval": {
236c6d7a45dSGunnar Mills                    "description": "The time interval over which the metric calculation is performed.",
237c6d7a45dSGunnar Mills                    "longDescription": "This property shall specify the time interval over the metric calculation is performed.",
238c6d7a45dSGunnar Mills                    "pattern": "^P(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+(.\\d+)?S)?)?$",
239c6d7a45dSGunnar Mills                    "readonly": false,
240c6d7a45dSGunnar Mills                    "type": [
241c6d7a45dSGunnar Mills                        "string",
242c6d7a45dSGunnar Mills                        "null"
243c6d7a45dSGunnar Mills                    ]
244c6d7a45dSGunnar Mills                },
245c6d7a45dSGunnar Mills                "Calibration": {
246c6d7a45dSGunnar Mills                    "description": "The calibration offset added to the metric reading.",
247c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the calibration offset added to the metric reading.  The value shall have the units specified in the `Units` property.  The property is not meaningful when the `MetricType` property is `Discrete`.",
248c6d7a45dSGunnar Mills                    "readonly": true,
249c6d7a45dSGunnar Mills                    "type": [
250c6d7a45dSGunnar Mills                        "number",
251c6d7a45dSGunnar Mills                        "null"
252c6d7a45dSGunnar Mills                    ]
253c6d7a45dSGunnar Mills                },
254c6d7a45dSGunnar Mills                "Description": {
255c6d7a45dSGunnar Mills                    "anyOf": [
256c6d7a45dSGunnar Mills                        {
257c6d7a45dSGunnar Mills                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
258c6d7a45dSGunnar Mills                        },
259c6d7a45dSGunnar Mills                        {
260c6d7a45dSGunnar Mills                            "type": "null"
261c6d7a45dSGunnar Mills                        }
262c6d7a45dSGunnar Mills                    ],
263c6d7a45dSGunnar Mills                    "readonly": true
264c6d7a45dSGunnar Mills                },
265c6d7a45dSGunnar Mills                "DiscreteValues": {
266c6d7a45dSGunnar Mills                    "description": "This array property specifies possible values of a discrete metric.",
267c6d7a45dSGunnar Mills                    "items": {
268c6d7a45dSGunnar Mills                        "type": [
269c6d7a45dSGunnar Mills                            "string",
270c6d7a45dSGunnar Mills                            "null"
271c6d7a45dSGunnar Mills                        ]
272c6d7a45dSGunnar Mills                    },
273c6d7a45dSGunnar Mills                    "longDescription": "The values of the property shall specify the possible values of the discrete metric.  This property shall have values when the `MetricType` property is `Discrete`.",
274c6d7a45dSGunnar Mills                    "readonly": false,
275c6d7a45dSGunnar Mills                    "type": "array"
276c6d7a45dSGunnar Mills                },
277c6d7a45dSGunnar Mills                "Id": {
278c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
279c6d7a45dSGunnar Mills                    "readonly": true
280c6d7a45dSGunnar Mills                },
281c6d7a45dSGunnar Mills                "Implementation": {
282c6d7a45dSGunnar Mills                    "anyOf": [
283c6d7a45dSGunnar Mills                        {
284c6d7a45dSGunnar Mills                            "$ref": "#/definitions/ImplementationType"
285c6d7a45dSGunnar Mills                        },
286c6d7a45dSGunnar Mills                        {
287c6d7a45dSGunnar Mills                            "type": "null"
288c6d7a45dSGunnar Mills                        }
289c6d7a45dSGunnar Mills                    ],
290c6d7a45dSGunnar Mills                    "description": "The implementation of the metric.",
291c6d7a45dSGunnar Mills                    "longDescription": "This property shall specify the implementation of the metric.",
292c6d7a45dSGunnar Mills                    "readonly": true
293c6d7a45dSGunnar Mills                },
294c6d7a45dSGunnar Mills                "IsLinear": {
295c6d7a45dSGunnar Mills                    "description": "An indication of whether the metric values are linear versus non-linear.",
296c6d7a45dSGunnar Mills                    "longDescription": "This property shall indicate whether the metric values are linear versus non-linear.  Linear metrics can use a greater than relation to compared them.  An example of linear metrics include performance metrics.  Examples of non-linear metrics include error codes.",
297c6d7a45dSGunnar Mills                    "readonly": false,
298c6d7a45dSGunnar Mills                    "type": [
299c6d7a45dSGunnar Mills                        "boolean",
300c6d7a45dSGunnar Mills                        "null"
301c6d7a45dSGunnar Mills                    ]
302c6d7a45dSGunnar Mills                },
303c6d7a45dSGunnar Mills                "LogicalContexts": {
304c6d7a45dSGunnar Mills                    "description": "The logical contexts related to the metric.",
305c6d7a45dSGunnar Mills                    "items": {
306c6d7a45dSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/v1/PhysicalContext.json#/definitions/LogicalContext"
307c6d7a45dSGunnar Mills                    },
308c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the logical contexts related to the metric.  This property should be present when the `PhysicalContext` property does not provide complete information and additional context information is needed.  For example, if the metric refers to capacity or performance.",
309c6d7a45dSGunnar Mills                    "readonly": true,
310c6d7a45dSGunnar Mills                    "type": "array",
311c6d7a45dSGunnar Mills                    "versionAdded": "v1_3_0"
312c6d7a45dSGunnar Mills                },
313c6d7a45dSGunnar Mills                "MaxReadingRange": {
314c6d7a45dSGunnar Mills                    "description": "Maximum value for metric reading.",
315c6d7a45dSGunnar Mills                    "longDescription": "The value shall indicate the highest possible value for a related MetricValue.  The value shall have the units specified in the property Units.  The property is not meaningful when the `MetricType` property is `Discrete`.",
316c6d7a45dSGunnar Mills                    "readonly": true,
317c6d7a45dSGunnar Mills                    "type": [
318c6d7a45dSGunnar Mills                        "number",
319c6d7a45dSGunnar Mills                        "null"
320c6d7a45dSGunnar Mills                    ]
321c6d7a45dSGunnar Mills                },
322c6d7a45dSGunnar Mills                "MetricDataType": {
323c6d7a45dSGunnar Mills                    "anyOf": [
324c6d7a45dSGunnar Mills                        {
325c6d7a45dSGunnar Mills                            "$ref": "#/definitions/MetricDataType"
326c6d7a45dSGunnar Mills                        },
327c6d7a45dSGunnar Mills                        {
328c6d7a45dSGunnar Mills                            "type": "null"
329c6d7a45dSGunnar Mills                        }
330c6d7a45dSGunnar Mills                    ],
331c6d7a45dSGunnar Mills                    "description": "The data type of the metric.",
332c6d7a45dSGunnar Mills                    "longDescription": "This property shall specify the data-type of the metric.",
333c6d7a45dSGunnar Mills                    "readonly": false
334c6d7a45dSGunnar Mills                },
335c6d7a45dSGunnar Mills                "MetricProperties": {
336c6d7a45dSGunnar Mills                    "description": "The list of URIs with wildcards and property identifiers that this metric definition defines.  If a URI has wildcards, the wildcards are substituted as specified in the `Wildcards` property.",
337c6d7a45dSGunnar Mills                    "format": "uri-reference",
338c6d7a45dSGunnar Mills                    "items": {
339c6d7a45dSGunnar Mills                        "type": [
340c6d7a45dSGunnar Mills                            "string",
341c6d7a45dSGunnar Mills                            "null"
342c6d7a45dSGunnar Mills                        ]
343c6d7a45dSGunnar Mills                    },
344c6d7a45dSGunnar Mills                    "longDescription": "This array property shall list the URIs with wildcards and property identifiers that this metric defines.  A set of curly braces shall delimit each wildcard in the URI.  The corresponding entry in the `Wildcard` property shall replace each wildcard.  After each wildcard is replaced, it shall identify a resource property to which the metric definition applies.  The property identifiers portion of the URI shall follow RFC6901-defined JSON pointer notation rules.  This property should not be present if `ImplementationType` contains `Synthesized` or `Calculated`.",
345c6d7a45dSGunnar Mills                    "readonly": false,
346c6d7a45dSGunnar Mills                    "type": "array"
347c6d7a45dSGunnar Mills                },
348c6d7a45dSGunnar Mills                "MetricType": {
349c6d7a45dSGunnar Mills                    "anyOf": [
350c6d7a45dSGunnar Mills                        {
351c6d7a45dSGunnar Mills                            "$ref": "#/definitions/MetricType"
352c6d7a45dSGunnar Mills                        },
353c6d7a45dSGunnar Mills                        {
354c6d7a45dSGunnar Mills                            "type": "null"
355c6d7a45dSGunnar Mills                        }
356c6d7a45dSGunnar Mills                    ],
357c6d7a45dSGunnar Mills                    "description": "The type of metric.",
358c6d7a45dSGunnar Mills                    "longDescription": "This property shall specify the type of metric.",
359c6d7a45dSGunnar Mills                    "readonly": false
360c6d7a45dSGunnar Mills                },
361c6d7a45dSGunnar Mills                "MinReadingRange": {
362c6d7a45dSGunnar Mills                    "description": "Minimum value for metric reading.",
363c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the lowest possible value for the metric reading.  The value shall have the units specified in the property Units.  The property is not meaningful when the `MetricType` property is `Discrete`.",
364c6d7a45dSGunnar Mills                    "readonly": true,
365c6d7a45dSGunnar Mills                    "type": [
366c6d7a45dSGunnar Mills                        "number",
367c6d7a45dSGunnar Mills                        "null"
368c6d7a45dSGunnar Mills                    ]
369c6d7a45dSGunnar Mills                },
370c6d7a45dSGunnar Mills                "Name": {
371c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
372c6d7a45dSGunnar Mills                    "readonly": true
373c6d7a45dSGunnar Mills                },
374c6d7a45dSGunnar Mills                "OEMCalculationAlgorithm": {
375c6d7a45dSGunnar Mills                    "description": "The OEM-defined calculation that is performed on a source metric to obtain the metric being defined.",
376c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the OEM-defined calculation performed to obtain the metric.  This property shall be present if `CalculationAlgorithm` is `OEM`.",
377c6d7a45dSGunnar Mills                    "readonly": true,
378c6d7a45dSGunnar Mills                    "type": [
379c6d7a45dSGunnar Mills                        "string",
380c6d7a45dSGunnar Mills                        "null"
381c6d7a45dSGunnar Mills                    ],
382c6d7a45dSGunnar Mills                    "versionAdded": "v1_1_0"
383c6d7a45dSGunnar Mills                },
384c6d7a45dSGunnar Mills                "Oem": {
385c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
386c6d7a45dSGunnar Mills                    "description": "The OEM extension property.",
387c6d7a45dSGunnar 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."
388c6d7a45dSGunnar Mills                },
389c6d7a45dSGunnar Mills                "PhysicalContext": {
390c6d7a45dSGunnar Mills                    "anyOf": [
391c6d7a45dSGunnar Mills                        {
392c6d7a45dSGunnar Mills                            "$ref": "http://redfish.dmtf.org/schemas/v1/PhysicalContext.json#/definitions/PhysicalContext"
393c6d7a45dSGunnar Mills                        },
394c6d7a45dSGunnar Mills                        {
395c6d7a45dSGunnar Mills                            "type": "null"
396c6d7a45dSGunnar Mills                        }
397c6d7a45dSGunnar Mills                    ],
398c6d7a45dSGunnar Mills                    "description": "The physical context of the metric.",
399c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the physical context of the metric.",
400c6d7a45dSGunnar Mills                    "readonly": true
401c6d7a45dSGunnar Mills                },
402c6d7a45dSGunnar Mills                "Precision": {
403c6d7a45dSGunnar Mills                    "description": "Number of significant digits in the metric reading.",
404c6d7a45dSGunnar Mills                    "longDescription": "This property shall specify the number of significant digits in the metric reading.  The property is not meaningful when the `MetricType` property is `Discrete`.",
405c6d7a45dSGunnar Mills                    "readonly": true,
406c6d7a45dSGunnar Mills                    "type": [
407c6d7a45dSGunnar Mills                        "integer",
408c6d7a45dSGunnar Mills                        "null"
409c6d7a45dSGunnar Mills                    ]
410c6d7a45dSGunnar Mills                },
411c6d7a45dSGunnar Mills                "SensingInterval": {
412c6d7a45dSGunnar Mills                    "description": "The time interval between when a metric is updated.",
413c6d7a45dSGunnar Mills                    "longDescription": "This property shall specify the time interval between when a metric is updated.",
414c6d7a45dSGunnar Mills                    "pattern": "^P(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+(.\\d+)?S)?)?$",
415c6d7a45dSGunnar Mills                    "readonly": false,
416c6d7a45dSGunnar Mills                    "type": [
417c6d7a45dSGunnar Mills                        "string",
418c6d7a45dSGunnar Mills                        "null"
419c6d7a45dSGunnar Mills                    ]
420c6d7a45dSGunnar Mills                },
421c6d7a45dSGunnar Mills                "TimestampAccuracy": {
422c6d7a45dSGunnar Mills                    "description": "The accuracy of the timestamp.",
423c6d7a45dSGunnar Mills                    "longDescription": "This property shall specify the expected + or - variability of the timestamp.",
424c6d7a45dSGunnar Mills                    "pattern": "^P(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+(.\\d+)?S)?)?$",
425c6d7a45dSGunnar Mills                    "readonly": true,
426c6d7a45dSGunnar Mills                    "type": [
427c6d7a45dSGunnar Mills                        "string",
428c6d7a45dSGunnar Mills                        "null"
429c6d7a45dSGunnar Mills                    ]
430c6d7a45dSGunnar Mills                },
431c6d7a45dSGunnar Mills                "Units": {
432c6d7a45dSGunnar Mills                    "description": "The units of measure for this metric.",
433c6d7a45dSGunnar Mills                    "longDescription": "This property shall specify the units of the metric.  This property shall be consistent with the case-sensitive ('C/s' column) Unified Code for Units of Measure.  Note: Not all units of measure are covered by UCUM.",
434c6d7a45dSGunnar Mills                    "readonly": false,
435c6d7a45dSGunnar Mills                    "type": [
436c6d7a45dSGunnar Mills                        "string",
437c6d7a45dSGunnar Mills                        "null"
438c6d7a45dSGunnar Mills                    ]
439c6d7a45dSGunnar Mills                },
440c6d7a45dSGunnar Mills                "Wildcards": {
441c6d7a45dSGunnar Mills                    "description": "The wildcards and their substitution values for the entries in the `MetricProperties` array property.",
442c6d7a45dSGunnar Mills                    "items": {
443c6d7a45dSGunnar Mills                        "$ref": "#/definitions/Wildcard"
444c6d7a45dSGunnar Mills                    },
445c6d7a45dSGunnar Mills                    "longDescription": "The property shall contain a list of wildcards and their replacement strings, which are applied to the `MetricProperties` array property.  Each wildcard shall have a corresponding entry in this array property.",
446c6d7a45dSGunnar Mills                    "type": "array"
447c6d7a45dSGunnar Mills                }
448c6d7a45dSGunnar Mills            },
449c6d7a45dSGunnar Mills            "required": [
450c6d7a45dSGunnar Mills                "@odata.id",
451c6d7a45dSGunnar Mills                "@odata.type",
452c6d7a45dSGunnar Mills                "Id",
453c6d7a45dSGunnar Mills                "Name"
454c6d7a45dSGunnar Mills            ],
455c6d7a45dSGunnar Mills            "type": "object"
456c6d7a45dSGunnar Mills        },
457c6d7a45dSGunnar Mills        "MetricType": {
458c6d7a45dSGunnar Mills            "description": "The type of metric.  Provides information to the client on how the metric can be handled.",
459c6d7a45dSGunnar Mills            "enum": [
460c6d7a45dSGunnar Mills                "Numeric",
461c6d7a45dSGunnar Mills                "Discrete",
462c6d7a45dSGunnar Mills                "Gauge",
463c6d7a45dSGunnar Mills                "Counter",
464c6d7a45dSGunnar Mills                "Countdown",
465c6d7a45dSGunnar Mills                "String"
466c6d7a45dSGunnar Mills            ],
467c6d7a45dSGunnar Mills            "enumDescriptions": {
468c6d7a45dSGunnar Mills                "Countdown": "The metric is a countdown metric.  The metric reading is a non-negative integer that decreases monotonically.  When a counter reaches its minimum, the value resets to preset value and resumes counting down.",
469c6d7a45dSGunnar Mills                "Counter": "The metric is a counter metric.  The metric reading is a non-negative integer that increases monotonically.  When a counter reaches its maximum, the value resets to 0 and resumes counting.",
470c6d7a45dSGunnar Mills                "Discrete": "The metric is a discrete metric.  The metric value is discrete.  The possible values are listed in the `DiscreteValues` property.",
471c6d7a45dSGunnar Mills                "Gauge": "The metric is a gauge metric.  The metric value is a real number.  When the metric value reaches the gauge's extrema, it stays at that value, until the reading falls within the extrema.",
472c6d7a45dSGunnar Mills                "Numeric": "The metric is a numeric metric.  The metric value is any real number.",
473c6d7a45dSGunnar Mills                "String": "The metric is a non-discrete string metric.  The metric reading is a non-discrete string that displays some non-discrete, non-numeric data."
474c6d7a45dSGunnar Mills            },
475c6d7a45dSGunnar Mills            "enumLongDescriptions": {
476c6d7a45dSGunnar Mills                "Discrete": "The metric values shall indicate discrete states."
477c6d7a45dSGunnar Mills            },
478c6d7a45dSGunnar Mills            "enumVersionAdded": {
479c6d7a45dSGunnar Mills                "String": "v1_2_0"
480c6d7a45dSGunnar Mills            },
481c6d7a45dSGunnar Mills            "longDescription": "This property shall contain the type of metric.",
482c6d7a45dSGunnar Mills            "type": "string"
483c6d7a45dSGunnar Mills        },
484c6d7a45dSGunnar Mills        "OemActions": {
485c6d7a45dSGunnar Mills            "additionalProperties": true,
486c6d7a45dSGunnar Mills            "description": "The available OEM-specific actions for this resource.",
487c6d7a45dSGunnar Mills            "longDescription": "This type shall contain the available OEM-specific actions for this resource.",
488c6d7a45dSGunnar Mills            "patternProperties": {
489c6d7a45dSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
490c6d7a45dSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
491c6d7a45dSGunnar Mills                    "type": [
492c6d7a45dSGunnar Mills                        "array",
493c6d7a45dSGunnar Mills                        "boolean",
494c6d7a45dSGunnar Mills                        "integer",
495c6d7a45dSGunnar Mills                        "number",
496c6d7a45dSGunnar Mills                        "null",
497c6d7a45dSGunnar Mills                        "object",
498c6d7a45dSGunnar Mills                        "string"
499c6d7a45dSGunnar Mills                    ]
500c6d7a45dSGunnar Mills                }
501c6d7a45dSGunnar Mills            },
502c6d7a45dSGunnar Mills            "properties": {},
503c6d7a45dSGunnar Mills            "type": "object"
504c6d7a45dSGunnar Mills        },
505c6d7a45dSGunnar Mills        "Wildcard": {
506c6d7a45dSGunnar Mills            "additionalProperties": false,
507c6d7a45dSGunnar Mills            "description": "The wildcard and its substitution values.",
508c6d7a45dSGunnar Mills            "longDescription": "This property shall contain a wildcard and its substitution values.",
509c6d7a45dSGunnar Mills            "patternProperties": {
510c6d7a45dSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
511c6d7a45dSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
512c6d7a45dSGunnar Mills                    "type": [
513c6d7a45dSGunnar Mills                        "array",
514c6d7a45dSGunnar Mills                        "boolean",
515c6d7a45dSGunnar Mills                        "integer",
516c6d7a45dSGunnar Mills                        "number",
517c6d7a45dSGunnar Mills                        "null",
518c6d7a45dSGunnar Mills                        "object",
519c6d7a45dSGunnar Mills                        "string"
520c6d7a45dSGunnar Mills                    ]
521c6d7a45dSGunnar Mills                }
522c6d7a45dSGunnar Mills            },
523c6d7a45dSGunnar Mills            "properties": {
524c6d7a45dSGunnar Mills                "Name": {
525c6d7a45dSGunnar Mills                    "description": "The string used as a wildcard.",
526c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the string used as a wildcard.",
527c6d7a45dSGunnar Mills                    "readonly": true,
528c6d7a45dSGunnar Mills                    "type": [
529c6d7a45dSGunnar Mills                        "string",
530c6d7a45dSGunnar Mills                        "null"
531c6d7a45dSGunnar Mills                    ]
532c6d7a45dSGunnar Mills                },
533c6d7a45dSGunnar Mills                "Values": {
534c6d7a45dSGunnar Mills                    "description": "An array of values to substitute for the wildcard.  `*` indicates all possible values for the wildcard.",
535c6d7a45dSGunnar Mills                    "items": {
536c6d7a45dSGunnar Mills                        "type": [
537c6d7a45dSGunnar Mills                            "string",
538c6d7a45dSGunnar Mills                            "null"
539c6d7a45dSGunnar Mills                        ]
540c6d7a45dSGunnar Mills                    },
541c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the list of values to substitute for the wildcard.  The value `*` shall indicate all possible values for the wildcard.",
542c6d7a45dSGunnar Mills                    "readonly": true,
543c6d7a45dSGunnar Mills                    "type": "array"
544c6d7a45dSGunnar Mills                }
545c6d7a45dSGunnar Mills            },
546c6d7a45dSGunnar Mills            "type": "object"
547c6d7a45dSGunnar Mills        }
548c6d7a45dSGunnar Mills    },
549c6d7a45dSGunnar Mills    "language": "en",
550c6d7a45dSGunnar Mills    "owningEntity": "DMTF",
551c6d7a45dSGunnar Mills    "release": "2022.1",
552c6d7a45dSGunnar Mills    "title": "#MetricDefinition.v1_3_5.MetricDefinition"
553c6d7a45dSGunnar Mills}