1c6d7a45dSGunnar Mills{
2c6d7a45dSGunnar Mills    "$id": "http://redfish.dmtf.org/schemas/v1/MetricReportDefinition.v1_4_7.json",
3c6d7a45dSGunnar Mills    "$ref": "#/definitions/MetricReportDefinition",
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        "CalculationAlgorithmEnum": {
35c6d7a45dSGunnar Mills            "description": "The function to apply to the list of metric properties.",
36c6d7a45dSGunnar Mills            "enum": [
37c6d7a45dSGunnar Mills                "Average",
38c6d7a45dSGunnar Mills                "Maximum",
39c6d7a45dSGunnar Mills                "Minimum",
40c6d7a45dSGunnar Mills                "Summation"
41c6d7a45dSGunnar Mills            ],
42c6d7a45dSGunnar Mills            "enumDescriptions": {
43c6d7a45dSGunnar Mills                "Average": "The metric is calculated as the average metric reading over a duration.",
44c6d7a45dSGunnar Mills                "Maximum": "The metric is calculated as the maximum metric reading over a duration.",
45c6d7a45dSGunnar Mills                "Minimum": "The metric is calculated as the minimum metric reading over a duration.",
46c6d7a45dSGunnar Mills                "Summation": "The metric is calculated as the sum of the values over a duration."
47c6d7a45dSGunnar Mills            },
48c6d7a45dSGunnar Mills            "enumLongDescriptions": {
49c6d7a45dSGunnar Mills                "Average": "This value shall indicate the metric is calculated as the average metric reading over a duration.  The duration shall be the `CollectionDuration` property value.",
50c6d7a45dSGunnar Mills                "Maximum": "This value shall indicate the metric is calculated as the maximum metric reading over a duration.  The duration shall be the `CollectionDuration` property value.",
51c6d7a45dSGunnar Mills                "Minimum": "This value shall indicate the metric is calculated as the minimum metric reading over a duration.  The duration shall be the `CollectionDuration` property value.",
52c6d7a45dSGunnar Mills                "Summation": "This value shall indicate the metric is calculated as the sum of the specified metric reading over a duration.  The duration shall be the `CollectionDuration` property value."
53c6d7a45dSGunnar Mills            },
54c6d7a45dSGunnar Mills            "longDescription": "This type shall specify the function to apply to the list of metric properties.",
55c6d7a45dSGunnar Mills            "type": "string"
56c6d7a45dSGunnar Mills        },
57c6d7a45dSGunnar Mills        "CollectionTimeScope": {
58c6d7a45dSGunnar Mills            "description": "The time scope of the related metric values.",
59c6d7a45dSGunnar Mills            "enum": [
60c6d7a45dSGunnar Mills                "Point",
61c6d7a45dSGunnar Mills                "Interval",
62c6d7a45dSGunnar Mills                "StartupInterval"
63c6d7a45dSGunnar Mills            ],
64c6d7a45dSGunnar Mills            "enumDescriptions": {
65c6d7a45dSGunnar Mills                "Interval": "The corresponding metric values apply to a time interval.  On the corresponding metric value instances, the `Timestamp` property value in the metric report specifies the end of the time interval and the `CollectionDuration` property specifies its duration.",
66c6d7a45dSGunnar Mills                "Point": "The corresponding metric values apply to a point in time.  On the corresponding metric value instances, the `Timestamp` property value in the metric report specifies the point in time.",
67c6d7a45dSGunnar Mills                "StartupInterval": "The corresponding metric values apply to a time interval that began at the startup of the measured resource.  On the corresponding metric value instances, the `Timestamp` property value in the metric report specifies the end of the time interval.  The `CollectionDuration` property value specifies the duration between the startup of the resource and timestamp."
68c6d7a45dSGunnar Mills            },
69c6d7a45dSGunnar Mills            "enumLongDescriptions": {
70c6d7a45dSGunnar Mills                "Interval": "This value shall indicate the corresponding metric values apply to a time interval.  On the corresponding metric value instances, the `Timestamp` property value in the metric report shall specify the end of the time interval and the `CollectionDuration` property shall specify its duration.",
71c6d7a45dSGunnar Mills                "Point": "This value shall indicate the corresponding metric values apply to a point in time.  On the corresponding metric value instances, the `Timestamp` property value in the metric report shall specify the point in time.",
72c6d7a45dSGunnar Mills                "StartupInterval": "This value shall indicate the corresponding metric values apply to a time interval that began at the startup of the measured resource.  On the corresponding metric value instances, the `Timestamp` property value in the metric report shall specify the end of the time interval.  The `CollectionDuration` property value shall specify the duration between the startup of the resource and timestamp."
73c6d7a45dSGunnar Mills            },
74c6d7a45dSGunnar Mills            "longDescription": "This type shall specify the time scope of the corresponding metric values.",
75c6d7a45dSGunnar Mills            "type": "string"
76c6d7a45dSGunnar Mills        },
77c6d7a45dSGunnar Mills        "Links": {
78c6d7a45dSGunnar Mills            "additionalProperties": false,
79c6d7a45dSGunnar Mills            "description": "The links to other resources that are related to this resource.",
80c6d7a45dSGunnar 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.",
81c6d7a45dSGunnar Mills            "patternProperties": {
82c6d7a45dSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
83c6d7a45dSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
84c6d7a45dSGunnar Mills                    "type": [
85c6d7a45dSGunnar Mills                        "array",
86c6d7a45dSGunnar Mills                        "boolean",
87c6d7a45dSGunnar Mills                        "integer",
88c6d7a45dSGunnar Mills                        "number",
89c6d7a45dSGunnar Mills                        "null",
90c6d7a45dSGunnar Mills                        "object",
91c6d7a45dSGunnar Mills                        "string"
92c6d7a45dSGunnar Mills                    ]
93c6d7a45dSGunnar Mills                }
94c6d7a45dSGunnar Mills            },
95c6d7a45dSGunnar Mills            "properties": {
96c6d7a45dSGunnar Mills                "Oem": {
97c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
98c6d7a45dSGunnar Mills                    "description": "The OEM extension property.",
99c6d7a45dSGunnar 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."
100c6d7a45dSGunnar Mills                },
101c6d7a45dSGunnar Mills                "Triggers": {
102c6d7a45dSGunnar Mills                    "description": "The triggers that cause this metric report definition to generate a new metric report upon a trigger occurrence when the `TriggerActions` property contains `RedfishMetricReport`.",
103c6d7a45dSGunnar Mills                    "items": {
104c6d7a45dSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/v1/Triggers.json#/definitions/Triggers"
105c6d7a45dSGunnar Mills                    },
106c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain a set of triggers that cause this metric report to generate a new metric report upon a trigger occurrence when the `TriggerActions` property contains `RedfishMetricReport`.",
107c6d7a45dSGunnar Mills                    "readonly": true,
108c6d7a45dSGunnar Mills                    "type": "array",
109c6d7a45dSGunnar Mills                    "versionAdded": "v1_2_0"
110c6d7a45dSGunnar Mills                },
111c6d7a45dSGunnar Mills                "Triggers@odata.count": {
112c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
113c6d7a45dSGunnar Mills                }
114c6d7a45dSGunnar Mills            },
115c6d7a45dSGunnar Mills            "type": "object"
116c6d7a45dSGunnar Mills        },
117c6d7a45dSGunnar Mills        "Metric": {
118c6d7a45dSGunnar Mills            "additionalProperties": false,
119c6d7a45dSGunnar Mills            "description": "Specifies a set of metrics to include in the metric report.  Calculation parameters, if present, are applied to the metrics prior to being included in the metric report.",
120c6d7a45dSGunnar Mills            "longDescription": "The properties shall specify a set of metrics to include in the metric report.  The algorithm specified by `CollectionFunction`, if present, shall be applied to each of the metric properties listed in the `MetricProperties` property or the metric properties specified in the `MetricDefinition` referenced by the `MetricId` property prior to being included in the metric report.",
121c6d7a45dSGunnar Mills            "patternProperties": {
122c6d7a45dSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
123c6d7a45dSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
124c6d7a45dSGunnar Mills                    "type": [
125c6d7a45dSGunnar Mills                        "array",
126c6d7a45dSGunnar Mills                        "boolean",
127c6d7a45dSGunnar Mills                        "integer",
128c6d7a45dSGunnar Mills                        "number",
129c6d7a45dSGunnar Mills                        "null",
130c6d7a45dSGunnar Mills                        "object",
131c6d7a45dSGunnar Mills                        "string"
132c6d7a45dSGunnar Mills                    ]
133c6d7a45dSGunnar Mills                }
134c6d7a45dSGunnar Mills            },
135c6d7a45dSGunnar Mills            "properties": {
136c6d7a45dSGunnar Mills                "CollectionDuration": {
137c6d7a45dSGunnar Mills                    "description": "The duration over which the function is computed.",
138c6d7a45dSGunnar Mills                    "longDescription": "This property shall specify the duration over which the function is computed.",
139c6d7a45dSGunnar Mills                    "pattern": "^P(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+(.\\d+)?S)?)?$",
140c6d7a45dSGunnar Mills                    "readonly": false,
141c6d7a45dSGunnar Mills                    "type": [
142c6d7a45dSGunnar Mills                        "string",
143c6d7a45dSGunnar Mills                        "null"
144c6d7a45dSGunnar Mills                    ]
145c6d7a45dSGunnar Mills                },
146c6d7a45dSGunnar Mills                "CollectionFunction": {
147c6d7a45dSGunnar Mills                    "anyOf": [
148c6d7a45dSGunnar Mills                        {
149c6d7a45dSGunnar Mills                            "$ref": "#/definitions/CalculationAlgorithmEnum"
150c6d7a45dSGunnar Mills                        },
151c6d7a45dSGunnar Mills                        {
152c6d7a45dSGunnar Mills                            "type": "null"
153c6d7a45dSGunnar Mills                        }
154c6d7a45dSGunnar Mills                    ],
155c6d7a45dSGunnar Mills                    "description": "Specifies the function to perform on each of the metric properties listed in the `MetricProperties` property or the metric properties specified in the `MetricDefinition` referenced by the `MetricId` property.  If not specified, calculations are not performed on the metric properties.",
156c6d7a45dSGunnar Mills                    "longDescription": "The property shall specify the function to perform on each of the metric properties listed in the `MetricProperties` property or the metric properties specified in the `MetricDefinition` referenced by the `MetricId` property.  If not specified, calculations shall not be performed on the metric properties.",
157c6d7a45dSGunnar Mills                    "readonly": false
158c6d7a45dSGunnar Mills                },
159c6d7a45dSGunnar Mills                "CollectionTimeScope": {
160c6d7a45dSGunnar Mills                    "anyOf": [
161c6d7a45dSGunnar Mills                        {
162c6d7a45dSGunnar Mills                            "$ref": "#/definitions/CollectionTimeScope"
163c6d7a45dSGunnar Mills                        },
164c6d7a45dSGunnar Mills                        {
165c6d7a45dSGunnar Mills                            "type": "null"
166c6d7a45dSGunnar Mills                        }
167c6d7a45dSGunnar Mills                    ],
168c6d7a45dSGunnar Mills                    "description": "The scope of time over which the function is applied.",
169c6d7a45dSGunnar Mills                    "longDescription": "This property shall specify the scope of time over which the function is applied.",
170c6d7a45dSGunnar Mills                    "readonly": false
171c6d7a45dSGunnar Mills                },
172c6d7a45dSGunnar Mills                "MetricId": {
173c6d7a45dSGunnar Mills                    "description": "The metric definition identifier that contains the metric properties to include in the metric report.",
174c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the value of the `Id` property of the `MetricDefinition` resource that contains the metric properties to include in the metric report.  This property should not be present if `MetricProperties` is present.",
175c6d7a45dSGunnar Mills                    "readonly": false,
176c6d7a45dSGunnar Mills                    "type": [
177c6d7a45dSGunnar Mills                        "string",
178c6d7a45dSGunnar Mills                        "null"
179c6d7a45dSGunnar Mills                    ]
180c6d7a45dSGunnar Mills                },
181c6d7a45dSGunnar Mills                "MetricProperties": {
182c6d7a45dSGunnar Mills                    "description": "The list of URIs with wildcards and property identifiers to include in the metric report.  If a URI has wildcards, the wildcards are substituted as specified in the `Wildcards` property.",
183c6d7a45dSGunnar Mills                    "format": "uri-reference",
184c6d7a45dSGunnar Mills                    "items": {
185c6d7a45dSGunnar Mills                        "type": [
186c6d7a45dSGunnar Mills                            "string",
187c6d7a45dSGunnar Mills                            "null"
188c6d7a45dSGunnar Mills                        ]
189c6d7a45dSGunnar Mills                    },
190c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain a list of URIs with wildcards and property identifiers to include in the metric report.  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 describe a resource property to include in the metric report.  The property identifiers portion of the URI shall follow RFC6901-specified JSON pointer notation rules.  This property should not be present if `MetricId` is present.",
191c6d7a45dSGunnar Mills                    "readonly": false,
192c6d7a45dSGunnar Mills                    "type": "array"
193c6d7a45dSGunnar Mills                },
194c6d7a45dSGunnar Mills                "Oem": {
195c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
196c6d7a45dSGunnar Mills                    "description": "The OEM extension property.",
197c6d7a45dSGunnar 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.",
198c6d7a45dSGunnar Mills                    "versionAdded": "v1_4_0"
199c6d7a45dSGunnar Mills                }
200c6d7a45dSGunnar Mills            },
201c6d7a45dSGunnar Mills            "type": "object"
202c6d7a45dSGunnar Mills        },
203c6d7a45dSGunnar Mills        "MetricReportDefinition": {
204c6d7a45dSGunnar Mills            "additionalProperties": false,
205c6d7a45dSGunnar Mills            "description": "The `MetricReportDefinition` schema describes set of metrics that are collected into a metric report.",
206c6d7a45dSGunnar Mills            "longDescription": "This resource shall specify a set of metrics that shall be collected into a metric report in a Redfish implementation.",
207c6d7a45dSGunnar Mills            "patternProperties": {
208c6d7a45dSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
209c6d7a45dSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
210c6d7a45dSGunnar Mills                    "type": [
211c6d7a45dSGunnar Mills                        "array",
212c6d7a45dSGunnar Mills                        "boolean",
213c6d7a45dSGunnar Mills                        "integer",
214c6d7a45dSGunnar Mills                        "number",
215c6d7a45dSGunnar Mills                        "null",
216c6d7a45dSGunnar Mills                        "object",
217c6d7a45dSGunnar Mills                        "string"
218c6d7a45dSGunnar Mills                    ]
219c6d7a45dSGunnar Mills                }
220c6d7a45dSGunnar Mills            },
221c6d7a45dSGunnar Mills            "properties": {
222c6d7a45dSGunnar Mills                "@odata.context": {
223c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context"
224c6d7a45dSGunnar Mills                },
225c6d7a45dSGunnar Mills                "@odata.etag": {
226c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag"
227c6d7a45dSGunnar Mills                },
228c6d7a45dSGunnar Mills                "@odata.id": {
229c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id"
230c6d7a45dSGunnar Mills                },
231c6d7a45dSGunnar Mills                "@odata.type": {
232c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type"
233c6d7a45dSGunnar Mills                },
234c6d7a45dSGunnar Mills                "Actions": {
235c6d7a45dSGunnar Mills                    "$ref": "#/definitions/Actions",
236c6d7a45dSGunnar Mills                    "description": "The available actions for this resource.",
237c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the available actions for this resource."
238c6d7a45dSGunnar Mills                },
239c6d7a45dSGunnar Mills                "AppendLimit": {
240c6d7a45dSGunnar Mills                    "description": "The maximum number of entries that can be appended to a metric report.  When the metric report reaches its limit, its behavior is dictated by the `ReportUpdates` property.",
241c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain a number that indicates the maximum number of entries that can be appended to a metric report.  When the metric report reaches its limit, its behavior shall be dictated by the `ReportUpdates` property.  This property shall be required if `ReportUpdates` contains `AppendWrapsWhenFull` or `AppendStopsWhenFull`.",
242c6d7a45dSGunnar Mills                    "minimum": 0,
243c6d7a45dSGunnar Mills                    "readonly": true,
244c6d7a45dSGunnar Mills                    "type": "integer"
245c6d7a45dSGunnar Mills                },
246c6d7a45dSGunnar Mills                "Description": {
247c6d7a45dSGunnar Mills                    "anyOf": [
248c6d7a45dSGunnar Mills                        {
249c6d7a45dSGunnar Mills                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
250c6d7a45dSGunnar Mills                        },
251c6d7a45dSGunnar Mills                        {
252c6d7a45dSGunnar Mills                            "type": "null"
253c6d7a45dSGunnar Mills                        }
254c6d7a45dSGunnar Mills                    ],
255c6d7a45dSGunnar Mills                    "readonly": true
256c6d7a45dSGunnar Mills                },
257c6d7a45dSGunnar Mills                "Id": {
258c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
259c6d7a45dSGunnar Mills                    "readonly": true
260c6d7a45dSGunnar Mills                },
261c6d7a45dSGunnar Mills                "Links": {
262c6d7a45dSGunnar Mills                    "$ref": "#/definitions/Links",
263c6d7a45dSGunnar Mills                    "description": "The links to other resources that are related to this resource.",
264c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain links to resources that are related to but are not contained by, or subordinate to, this resource.",
265c6d7a45dSGunnar Mills                    "versionAdded": "v1_2_0"
266c6d7a45dSGunnar Mills                },
267c6d7a45dSGunnar Mills                "MetricProperties": {
268c6d7a45dSGunnar Mills                    "description": "The list of URIs with wildcards and property identifiers to include in the metric report.  If a URI has wildcards, the wildcards are substituted as specified in the `Wildcards` property.",
269c6d7a45dSGunnar Mills                    "format": "uri-reference",
270c6d7a45dSGunnar Mills                    "items": {
271c6d7a45dSGunnar Mills                        "type": [
272c6d7a45dSGunnar Mills                            "string",
273c6d7a45dSGunnar Mills                            "null"
274c6d7a45dSGunnar Mills                        ]
275c6d7a45dSGunnar Mills                    },
276c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain a list of URIs with wildcards and property identifiers to include in the metric report.  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 describe a resource property to include in the metric report.  The property identifiers portion of the URI shall follow RFC6901-specified JSON pointer notation rules.",
277c6d7a45dSGunnar Mills                    "readonly": false,
278c6d7a45dSGunnar Mills                    "type": "array"
279c6d7a45dSGunnar Mills                },
280c6d7a45dSGunnar Mills                "MetricReport": {
281c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/MetricReport.json#/definitions/MetricReport",
282c6d7a45dSGunnar Mills                    "description": "The most recent metric report produced by this metric report definition.",
283c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain a link to a resource of type `MetricReport` that represents the most recent metric report produced by this metric report definition.",
284c6d7a45dSGunnar Mills                    "readonly": true
285c6d7a45dSGunnar Mills                },
286c6d7a45dSGunnar Mills                "MetricReportDefinitionEnabled": {
287c6d7a45dSGunnar Mills                    "description": "An indication of whether the generation of new metric reports is enabled.",
288c6d7a45dSGunnar Mills                    "longDescription": "This property shall indicate whether the generation of new metric reports is enabled.",
289c6d7a45dSGunnar Mills                    "readonly": false,
290c6d7a45dSGunnar Mills                    "type": [
291c6d7a45dSGunnar Mills                        "boolean",
292c6d7a45dSGunnar Mills                        "null"
293c6d7a45dSGunnar Mills                    ],
294c6d7a45dSGunnar Mills                    "versionAdded": "v1_2_0"
295c6d7a45dSGunnar Mills                },
296c6d7a45dSGunnar Mills                "MetricReportDefinitionType": {
297c6d7a45dSGunnar Mills                    "anyOf": [
298c6d7a45dSGunnar Mills                        {
299c6d7a45dSGunnar Mills                            "$ref": "#/definitions/MetricReportDefinitionType"
300c6d7a45dSGunnar Mills                        },
301c6d7a45dSGunnar Mills                        {
302c6d7a45dSGunnar Mills                            "type": "null"
303c6d7a45dSGunnar Mills                        }
304c6d7a45dSGunnar Mills                    ],
305c6d7a45dSGunnar Mills                    "description": "Specifies when the metric report is generated.",
306c6d7a45dSGunnar Mills                    "longDescription": "This property shall specify when the metric report is generated.  If the value is `Periodic`, the `Schedule` property shall be present.",
307c6d7a45dSGunnar Mills                    "readonly": false
308c6d7a45dSGunnar Mills                },
309c6d7a45dSGunnar Mills                "MetricReportHeartbeatInterval": {
310c6d7a45dSGunnar Mills                    "description": "The interval at which to send the complete metric report because the Redfish client wants refreshed metric data even when the data has not changed.  This property value is always greater than the recurrence interval of a metric report, and it only applies when the `SuppressRepeatedMetricValue` property is `true`.",
311c6d7a45dSGunnar Mills                    "longDescription": "The property value shall contain a Redfish duration that describes the time interval between generations of the unsuppressed metric report.  It shall always be a value greater than the `RecurrenceInterval` property within `Schedule` and should only apply when the `SuppressRepeatedMetricValue` property is `true`.",
312c6d7a45dSGunnar Mills                    "pattern": "^P(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+(.\\d+)?S)?)?$",
313c6d7a45dSGunnar Mills                    "readonly": false,
314c6d7a45dSGunnar Mills                    "type": [
315c6d7a45dSGunnar Mills                        "string",
316c6d7a45dSGunnar Mills                        "null"
317c6d7a45dSGunnar Mills                    ],
318c6d7a45dSGunnar Mills                    "versionAdded": "v1_2_0"
319c6d7a45dSGunnar Mills                },
320c6d7a45dSGunnar Mills                "Metrics": {
321c6d7a45dSGunnar Mills                    "description": "The list of metrics to include in the metric report.  The metrics might include calculations to apply to metric properties.",
322c6d7a45dSGunnar Mills                    "items": {
323c6d7a45dSGunnar Mills                        "$ref": "#/definitions/Metric"
324c6d7a45dSGunnar Mills                    },
325c6d7a45dSGunnar Mills                    "longDescription": "The property shall contain a list of metrics to include in the metric report.  The metrics may include calculations to apply to metric properties.",
326c6d7a45dSGunnar Mills                    "type": "array"
327c6d7a45dSGunnar Mills                },
328c6d7a45dSGunnar Mills                "Name": {
329c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
330c6d7a45dSGunnar Mills                    "readonly": true
331c6d7a45dSGunnar Mills                },
332c6d7a45dSGunnar Mills                "Oem": {
333c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
334c6d7a45dSGunnar Mills                    "description": "The OEM extension property.",
335c6d7a45dSGunnar 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."
336c6d7a45dSGunnar Mills                },
337c6d7a45dSGunnar Mills                "ReportActions": {
338c6d7a45dSGunnar Mills                    "description": "The set of actions to perform when a metric report is generated.",
339c6d7a45dSGunnar Mills                    "items": {
340c6d7a45dSGunnar Mills                        "$ref": "#/definitions/ReportActionsEnum"
341c6d7a45dSGunnar Mills                    },
342c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the set of actions to perform when the metric report is generated.  This property should be ignored if `MetricReportDefinitionType` contains the value `OnRequest`.",
343c6d7a45dSGunnar Mills                    "readonly": false,
344c6d7a45dSGunnar Mills                    "type": "array"
345c6d7a45dSGunnar Mills                },
346c6d7a45dSGunnar Mills                "ReportTimespan": {
347c6d7a45dSGunnar Mills                    "description": "The maximum timespan that a metric report can cover.",
348c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the maximum timespan that a metric report can cover.",
349c6d7a45dSGunnar Mills                    "pattern": "^P(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+(.\\d+)?S)?)?$",
350c6d7a45dSGunnar Mills                    "readonly": false,
351c6d7a45dSGunnar Mills                    "type": [
352c6d7a45dSGunnar Mills                        "string",
353c6d7a45dSGunnar Mills                        "null"
354c6d7a45dSGunnar Mills                    ],
355c6d7a45dSGunnar Mills                    "versionAdded": "v1_3_0"
356c6d7a45dSGunnar Mills                },
357c6d7a45dSGunnar Mills                "ReportUpdates": {
358c6d7a45dSGunnar Mills                    "$ref": "#/definitions/ReportUpdatesEnum",
359c6d7a45dSGunnar Mills                    "description": "The behavior for how subsequent metric reports are handled in relationship to an existing metric report created from the metric report definition.  Namely, whether to overwrite, append, or create a metric report.",
360c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the behavior for how subsequent metric reports are handled in relationship to an existing metric report created from the metric report definition.  This property should be ignored if `MetricReportDefinitionType` contains the value `OnRequest`.",
361c6d7a45dSGunnar Mills                    "readonly": false
362c6d7a45dSGunnar Mills                },
363c6d7a45dSGunnar Mills                "Schedule": {
364c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Schedule.json#/definitions/Schedule",
365c6d7a45dSGunnar Mills                    "description": "The schedule for generating the metric report.",
366c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the schedule of the metric report.  The metric report shall be generated at an interval specified by the `RecurrenceInterval` property within `Schedule`.  If the `MaxOccurrences` property within `Schedule` is specified, the metric report shall no longer be generated after the specified number of occurrences.  The `State` property within `Status` should be set to `Disabled` and the `MetricReportDefinitionEnabled` property should be set to `false` when the specified number of occurrences is reached."
367c6d7a45dSGunnar Mills                },
368c6d7a45dSGunnar Mills                "Status": {
369c6d7a45dSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status",
370c6d7a45dSGunnar Mills                    "description": "The status and health of the resource and its subordinate or dependent resources.",
371c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain any status or health properties of the resource."
372c6d7a45dSGunnar Mills                },
373c6d7a45dSGunnar Mills                "SuppressRepeatedMetricValue": {
374c6d7a45dSGunnar Mills                    "description": "An indication of whether any metrics are suppressed from the generated metric report.  If `true`, any metric that equals the same value in the previously generated metric report is suppressed from the current report.  Also, duplicate metrics are suppressed.  If `false`, no metrics are suppressed from the current report.  The current report might contain no metrics if all metrics equal the values in the previously generated metric report.",
375c6d7a45dSGunnar Mills                    "longDescription": "This property shall indicate whether any metrics are suppressed from the generated metric report.  If `true`, any metric that equals the same value in the previously generated metric report is suppressed from the current report.  Also, duplicate metrics are suppressed.  If `false`, no metrics are suppressed from the current report.  The current report may contain no metrics if all metrics equal the values in the previously generated metric report.",
376c6d7a45dSGunnar Mills                    "readonly": false,
377c6d7a45dSGunnar Mills                    "type": [
378c6d7a45dSGunnar Mills                        "boolean",
379c6d7a45dSGunnar Mills                        "null"
380c6d7a45dSGunnar Mills                    ],
381c6d7a45dSGunnar Mills                    "versionAdded": "v1_2_0"
382c6d7a45dSGunnar Mills                },
383c6d7a45dSGunnar Mills                "Wildcards": {
384c6d7a45dSGunnar Mills                    "description": "The set of wildcards and their substitution values for the entries in the `MetricProperties` property.",
385c6d7a45dSGunnar Mills                    "items": {
386c6d7a45dSGunnar Mills                        "$ref": "#/definitions/Wildcard"
387c6d7a45dSGunnar Mills                    },
388c6d7a45dSGunnar Mills                    "longDescription": "The property shall contain a set of wildcards and their replacement strings, which are applied to the `MetricProperties` property.  Each wildcard expressed in the `MetricProperties` property shall have a corresponding entry in this property.",
389c6d7a45dSGunnar Mills                    "type": "array"
390c6d7a45dSGunnar Mills                }
391c6d7a45dSGunnar Mills            },
392c6d7a45dSGunnar Mills            "required": [
393c6d7a45dSGunnar Mills                "@odata.id",
394c6d7a45dSGunnar Mills                "@odata.type",
395c6d7a45dSGunnar Mills                "Id",
396c6d7a45dSGunnar Mills                "Name"
397c6d7a45dSGunnar Mills            ],
398c6d7a45dSGunnar Mills            "type": "object"
399c6d7a45dSGunnar Mills        },
400c6d7a45dSGunnar Mills        "MetricReportDefinitionType": {
401c6d7a45dSGunnar Mills            "description": "Indicates when the metric report is generated.",
402c6d7a45dSGunnar Mills            "enum": [
403c6d7a45dSGunnar Mills                "Periodic",
404c6d7a45dSGunnar Mills                "OnChange",
405c6d7a45dSGunnar Mills                "OnRequest"
406c6d7a45dSGunnar Mills            ],
407c6d7a45dSGunnar Mills            "enumDescriptions": {
408c6d7a45dSGunnar Mills                "OnChange": "The metric report is generated when any of the metric values change.",
409c6d7a45dSGunnar Mills                "OnRequest": "The metric report is generated when an HTTP `GET` is performed on the specified metric report.",
410c6d7a45dSGunnar Mills                "Periodic": "The metric report is generated at a periodic time interval, specified in the `Schedule` property."
411c6d7a45dSGunnar Mills            },
412c6d7a45dSGunnar Mills            "longDescription": "This type shall specify when the metric report is generated.",
413c6d7a45dSGunnar Mills            "type": "string"
414c6d7a45dSGunnar Mills        },
415c6d7a45dSGunnar Mills        "OemActions": {
416c6d7a45dSGunnar Mills            "additionalProperties": true,
417c6d7a45dSGunnar Mills            "description": "The available OEM-specific actions for this resource.",
418c6d7a45dSGunnar Mills            "longDescription": "This type shall contain the available OEM-specific actions for this resource.",
419c6d7a45dSGunnar Mills            "patternProperties": {
420c6d7a45dSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
421c6d7a45dSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
422c6d7a45dSGunnar Mills                    "type": [
423c6d7a45dSGunnar Mills                        "array",
424c6d7a45dSGunnar Mills                        "boolean",
425c6d7a45dSGunnar Mills                        "integer",
426c6d7a45dSGunnar Mills                        "number",
427c6d7a45dSGunnar Mills                        "null",
428c6d7a45dSGunnar Mills                        "object",
429c6d7a45dSGunnar Mills                        "string"
430c6d7a45dSGunnar Mills                    ]
431c6d7a45dSGunnar Mills                }
432c6d7a45dSGunnar Mills            },
433c6d7a45dSGunnar Mills            "properties": {},
434c6d7a45dSGunnar Mills            "type": "object"
435c6d7a45dSGunnar Mills        },
436c6d7a45dSGunnar Mills        "ReportActionsEnum": {
437c6d7a45dSGunnar Mills            "description": "Actions to perform when a metric report is generated.",
438c6d7a45dSGunnar Mills            "enum": [
439c6d7a45dSGunnar Mills                "LogToMetricReportsCollection",
440c6d7a45dSGunnar Mills                "RedfishEvent"
441c6d7a45dSGunnar Mills            ],
442c6d7a45dSGunnar Mills            "enumDescriptions": {
443c6d7a45dSGunnar Mills                "LogToMetricReportsCollection": "Record the occurrence to the metric report collection.",
444c6d7a45dSGunnar Mills                "RedfishEvent": "Send a Redfish event message containing the metric report."
445c6d7a45dSGunnar Mills            },
446c6d7a45dSGunnar Mills            "enumLongDescriptions": {
447c6d7a45dSGunnar Mills                "LogToMetricReportsCollection": "This value shall indicate the service records the occurrence to the metric report collection found under the telemetry service.  The service shall update the metric report based on the setting of the `ReportUpdates` property.",
448c6d7a45dSGunnar Mills                "RedfishEvent": "This value shall indicate the service sends a Redfish event of type `MetricReport` to subscribers in the event subscription collection of the event service."
449c6d7a45dSGunnar Mills            },
450c6d7a45dSGunnar Mills            "longDescription": "This type shall specify the actions to perform when a metric report is generated.",
451c6d7a45dSGunnar Mills            "type": "string"
452c6d7a45dSGunnar Mills        },
453c6d7a45dSGunnar Mills        "ReportUpdatesEnum": {
454c6d7a45dSGunnar Mills            "description": "Handling of subsequent metric reports when a metric report exists.",
455c6d7a45dSGunnar Mills            "enum": [
456c6d7a45dSGunnar Mills                "Overwrite",
457c6d7a45dSGunnar Mills                "AppendWrapsWhenFull",
458c6d7a45dSGunnar Mills                "AppendStopsWhenFull",
459c6d7a45dSGunnar Mills                "NewReport"
460c6d7a45dSGunnar Mills            ],
461c6d7a45dSGunnar Mills            "enumDescriptions": {
462c6d7a45dSGunnar Mills                "AppendStopsWhenFull": "New information is appended to the metric report.  The service stops adding entries when the metric report has reached its maximum capacity.",
463c6d7a45dSGunnar Mills                "AppendWrapsWhenFull": "New information is appended to the metric report.  The metric report entries are overwritten with new entries when the metric report has reached its maximum capacity.",
464c6d7a45dSGunnar Mills                "NewReport": "A new metric report is created, whose identifier is a service-defined identifier concatenated with the timestamp.",
465c6d7a45dSGunnar Mills                "Overwrite": "Overwrite the metric report."
466c6d7a45dSGunnar Mills            },
467c6d7a45dSGunnar Mills            "enumLongDescriptions": {
468c6d7a45dSGunnar Mills                "AppendStopsWhenFull": "This value shall indicate the service appends new information to the metric report referenced by the `MetricReport` property.  The service shall stop adding entries when the metric report has reached its maximum capacity.  The `State` property within `Status` should be set to `Disabled` and the `MetricReportDefinitionEnabled` property should be set to `false` when the append limit is reached.",
469c6d7a45dSGunnar Mills                "AppendWrapsWhenFull": "This value shall indicate the service appends new information to the metric report referenced by the `MetricReport` property.  The service shall overwrite entries in the metric report with new entries when the metric report has reached its maximum capacity.",
470c6d7a45dSGunnar Mills                "NewReport": "This value shall indicate the service creates a new metric report resource, whose `Id` property is a service-defined identifier concatenated with the timestamp.  The metric report referenced by the `MetricReport` property shall reference the metric report most recently created by this metric report definition.",
471c6d7a45dSGunnar Mills                "Overwrite": "This value shall indicate the service overwrites the metric report referenced by the `MetricReport` property."
472c6d7a45dSGunnar Mills            },
473c6d7a45dSGunnar Mills            "longDescription": "This type shall indicate how the service handles subsequent metric reports when a metric report exists.",
474c6d7a45dSGunnar Mills            "type": "string"
475c6d7a45dSGunnar Mills        },
476c6d7a45dSGunnar Mills        "Wildcard": {
477c6d7a45dSGunnar Mills            "additionalProperties": false,
478c6d7a45dSGunnar Mills            "description": "The wildcard and its substitution values.",
479c6d7a45dSGunnar Mills            "longDescription": "This type shall contain a wildcard and its substitution values.",
480c6d7a45dSGunnar Mills            "patternProperties": {
481c6d7a45dSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
482c6d7a45dSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
483c6d7a45dSGunnar Mills                    "type": [
484c6d7a45dSGunnar Mills                        "array",
485c6d7a45dSGunnar Mills                        "boolean",
486c6d7a45dSGunnar Mills                        "integer",
487c6d7a45dSGunnar Mills                        "number",
488c6d7a45dSGunnar Mills                        "null",
489c6d7a45dSGunnar Mills                        "object",
490c6d7a45dSGunnar Mills                        "string"
491c6d7a45dSGunnar Mills                    ]
492c6d7a45dSGunnar Mills                }
493c6d7a45dSGunnar Mills            },
494c6d7a45dSGunnar Mills            "properties": {
495c6d7a45dSGunnar Mills                "Keys": {
496c6d7a45dSGunnar Mills                    "deprecated": "This property has been deprecated in favor of using the property Values.",
497c6d7a45dSGunnar Mills                    "description": "An array of values to substitute for the wildcard.",
498c6d7a45dSGunnar Mills                    "items": {
499c6d7a45dSGunnar Mills                        "type": [
500c6d7a45dSGunnar Mills                            "string",
501c6d7a45dSGunnar Mills                            "null"
502c6d7a45dSGunnar Mills                        ]
503c6d7a45dSGunnar Mills                    },
504c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the list of values to substitute for the wildcard.",
505c6d7a45dSGunnar Mills                    "readonly": false,
506c6d7a45dSGunnar Mills                    "type": "array",
507c6d7a45dSGunnar Mills                    "versionDeprecated": "v1_1_0"
508c6d7a45dSGunnar Mills                },
509c6d7a45dSGunnar Mills                "Name": {
510c6d7a45dSGunnar Mills                    "description": "The string used as a wildcard.",
511c6d7a45dSGunnar Mills                    "longDescription": "This property shall contain the string used as a wildcard.",
512c6d7a45dSGunnar Mills                    "readonly": false,
513c6d7a45dSGunnar Mills                    "type": [
514c6d7a45dSGunnar Mills                        "string",
515c6d7a45dSGunnar Mills                        "null"
516c6d7a45dSGunnar Mills                    ]
517c6d7a45dSGunnar Mills                },
518c6d7a45dSGunnar Mills                "Values": {
519c6d7a45dSGunnar Mills                    "description": "An array of values to substitute for the wildcard.  `*` indicates all possible values for the wildcard.",
520c6d7a45dSGunnar Mills                    "items": {
521c6d7a45dSGunnar Mills                        "type": [
522c6d7a45dSGunnar Mills                            "string",
523c6d7a45dSGunnar Mills                            "null"
524c6d7a45dSGunnar Mills                        ]
525c6d7a45dSGunnar Mills                    },
526c6d7a45dSGunnar 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.",
527c6d7a45dSGunnar Mills                    "readonly": false,
528c6d7a45dSGunnar Mills                    "type": "array",
529c6d7a45dSGunnar Mills                    "versionAdded": "v1_1_0"
530c6d7a45dSGunnar Mills                }
531c6d7a45dSGunnar Mills            },
532c6d7a45dSGunnar Mills            "type": "object"
533c6d7a45dSGunnar Mills        }
534c6d7a45dSGunnar Mills    },
535c6d7a45dSGunnar Mills    "language": "en",
536c6d7a45dSGunnar Mills    "owningEntity": "DMTF",
537c6d7a45dSGunnar Mills    "release": "2020.4",
538c6d7a45dSGunnar Mills    "title": "#MetricReportDefinition.v1_4_7.MetricReportDefinition"
539c6d7a45dSGunnar Mills}