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