1f2a8e57eSGunnar Mills{
2f2a8e57eSGunnar Mills    "$id": "http://redfish.dmtf.org/schemas/v1/Triggers.v1_4_0.json",
3f2a8e57eSGunnar Mills    "$ref": "#/definitions/Triggers",
4f2a8e57eSGunnar Mills    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json",
5f2a8e57eSGunnar Mills    "copyright": "Copyright 2014-2024 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
6f2a8e57eSGunnar Mills    "definitions": {
7f2a8e57eSGunnar Mills        "Actions": {
8f2a8e57eSGunnar Mills            "additionalProperties": false,
9f2a8e57eSGunnar Mills            "description": "The available actions for this resource.",
10f2a8e57eSGunnar Mills            "longDescription": "This type shall contain the available actions for this resource.",
11f2a8e57eSGunnar Mills            "patternProperties": {
12f2a8e57eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
13f2a8e57eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
14f2a8e57eSGunnar Mills                    "type": [
15f2a8e57eSGunnar Mills                        "array",
16f2a8e57eSGunnar Mills                        "boolean",
17f2a8e57eSGunnar Mills                        "integer",
18f2a8e57eSGunnar Mills                        "number",
19f2a8e57eSGunnar Mills                        "null",
20f2a8e57eSGunnar Mills                        "object",
21f2a8e57eSGunnar Mills                        "string"
22f2a8e57eSGunnar Mills                    ]
23f2a8e57eSGunnar Mills                }
24f2a8e57eSGunnar Mills            },
25f2a8e57eSGunnar Mills            "properties": {
26f2a8e57eSGunnar Mills                "Oem": {
27f2a8e57eSGunnar Mills                    "$ref": "#/definitions/OemActions",
28f2a8e57eSGunnar Mills                    "description": "The available OEM-specific actions for this resource.",
29f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the available OEM-specific actions for this resource."
30f2a8e57eSGunnar Mills                }
31f2a8e57eSGunnar Mills            },
32f2a8e57eSGunnar Mills            "type": "object"
33f2a8e57eSGunnar Mills        },
34f2a8e57eSGunnar Mills        "DirectionOfCrossingEnum": {
35f2a8e57eSGunnar Mills            "description": "The direction of crossing that corresponds to a trigger.",
36f2a8e57eSGunnar Mills            "enum": [
37f2a8e57eSGunnar Mills                "Increasing",
38f2a8e57eSGunnar Mills                "Decreasing"
39f2a8e57eSGunnar Mills            ],
40f2a8e57eSGunnar Mills            "enumDescriptions": {
41f2a8e57eSGunnar Mills                "Decreasing": "A trigger is met when the metric value crosses the trigger value while decreasing.",
42f2a8e57eSGunnar Mills                "Increasing": "A trigger condition is met when the metric value crosses the trigger value while increasing."
43f2a8e57eSGunnar Mills            },
44f2a8e57eSGunnar Mills            "longDescription": "The value shall indicate the direction of crossing that corresponds to a trigger.",
45f2a8e57eSGunnar Mills            "type": "string"
46f2a8e57eSGunnar Mills        },
47f2a8e57eSGunnar Mills        "DiscreteTrigger": {
48f2a8e57eSGunnar Mills            "additionalProperties": false,
49f2a8e57eSGunnar Mills            "description": "The characteristics of the discrete trigger.",
50f2a8e57eSGunnar Mills            "longDescription": "This object shall contain the characteristics of the discrete trigger.",
51f2a8e57eSGunnar Mills            "patternProperties": {
52f2a8e57eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
53f2a8e57eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
54f2a8e57eSGunnar Mills                    "type": [
55f2a8e57eSGunnar Mills                        "array",
56f2a8e57eSGunnar Mills                        "boolean",
57f2a8e57eSGunnar Mills                        "integer",
58f2a8e57eSGunnar Mills                        "number",
59f2a8e57eSGunnar Mills                        "null",
60f2a8e57eSGunnar Mills                        "object",
61f2a8e57eSGunnar Mills                        "string"
62f2a8e57eSGunnar Mills                    ]
63f2a8e57eSGunnar Mills                }
64f2a8e57eSGunnar Mills            },
65f2a8e57eSGunnar Mills            "properties": {
66f2a8e57eSGunnar Mills                "DwellTime": {
67f2a8e57eSGunnar Mills                    "description": "The amount of time that a trigger event persists before the metric action is performed.",
68f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the amount of time that a trigger event persists before the `TriggerActions` are performed.",
69f2a8e57eSGunnar Mills                    "pattern": "^P(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+(.\\d+)?S)?)?$",
70f2a8e57eSGunnar Mills                    "readonly": false,
71f2a8e57eSGunnar Mills                    "type": [
72f2a8e57eSGunnar Mills                        "string",
73f2a8e57eSGunnar Mills                        "null"
74f2a8e57eSGunnar Mills                    ]
75f2a8e57eSGunnar Mills                },
76f2a8e57eSGunnar Mills                "Name": {
77f2a8e57eSGunnar Mills                    "description": "The name of the trigger.",
78f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain a name for the trigger.",
79f2a8e57eSGunnar Mills                    "readonly": true,
80f2a8e57eSGunnar Mills                    "type": [
81f2a8e57eSGunnar Mills                        "string",
82f2a8e57eSGunnar Mills                        "null"
83f2a8e57eSGunnar Mills                    ]
84f2a8e57eSGunnar Mills                },
85f2a8e57eSGunnar Mills                "Severity": {
86f2a8e57eSGunnar Mills                    "anyOf": [
87f2a8e57eSGunnar Mills                        {
88f2a8e57eSGunnar Mills                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Health"
89f2a8e57eSGunnar Mills                        },
90f2a8e57eSGunnar Mills                        {
91f2a8e57eSGunnar Mills                            "type": "null"
92f2a8e57eSGunnar Mills                        }
93f2a8e57eSGunnar Mills                    ],
94f2a8e57eSGunnar Mills                    "description": "The severity of the event message.",
95f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the `Severity` property to be used in the event message.",
96f2a8e57eSGunnar Mills                    "readonly": false
97f2a8e57eSGunnar Mills                },
98f2a8e57eSGunnar Mills                "Value": {
99f2a8e57eSGunnar Mills                    "description": "The discrete metric value that constitutes a trigger event.",
100f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the value discrete metric that constitutes a trigger event.  The `DwellTime` shall be measured from this point in time.",
101f2a8e57eSGunnar Mills                    "readonly": false,
102f2a8e57eSGunnar Mills                    "type": [
103f2a8e57eSGunnar Mills                        "string",
104f2a8e57eSGunnar Mills                        "null"
105f2a8e57eSGunnar Mills                    ]
106f2a8e57eSGunnar Mills                }
107f2a8e57eSGunnar Mills            },
108f2a8e57eSGunnar Mills            "type": "object"
109f2a8e57eSGunnar Mills        },
110f2a8e57eSGunnar Mills        "DiscreteTriggerConditionEnum": {
111f2a8e57eSGunnar Mills            "description": "The condition, in relationship to the discrete trigger values, which constitutes a trigger.",
112f2a8e57eSGunnar Mills            "enum": [
113f2a8e57eSGunnar Mills                "Specified",
114f2a8e57eSGunnar Mills                "Changed"
115f2a8e57eSGunnar Mills            ],
116f2a8e57eSGunnar Mills            "enumDescriptions": {
117f2a8e57eSGunnar Mills                "Changed": "A discrete trigger condition is met whenever the metric value changes.",
118f2a8e57eSGunnar Mills                "Specified": "A discrete trigger condition is met when the metric value becomes one of the values that the `DiscreteTriggers` property lists."
119f2a8e57eSGunnar Mills            },
120f2a8e57eSGunnar Mills            "longDescription": "This type shall specify the condition, in relationship to the discrete trigger values, which constitutes a trigger.",
121f2a8e57eSGunnar Mills            "type": "string"
122f2a8e57eSGunnar Mills        },
123f2a8e57eSGunnar Mills        "Links": {
124f2a8e57eSGunnar Mills            "additionalProperties": false,
125f2a8e57eSGunnar Mills            "description": "The links to other resources that are related to this resource.",
126f2a8e57eSGunnar 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.",
127f2a8e57eSGunnar Mills            "patternProperties": {
128f2a8e57eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
129f2a8e57eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
130f2a8e57eSGunnar Mills                    "type": [
131f2a8e57eSGunnar Mills                        "array",
132f2a8e57eSGunnar Mills                        "boolean",
133f2a8e57eSGunnar Mills                        "integer",
134f2a8e57eSGunnar Mills                        "number",
135f2a8e57eSGunnar Mills                        "null",
136f2a8e57eSGunnar Mills                        "object",
137f2a8e57eSGunnar Mills                        "string"
138f2a8e57eSGunnar Mills                    ]
139f2a8e57eSGunnar Mills                }
140f2a8e57eSGunnar Mills            },
141f2a8e57eSGunnar Mills            "properties": {
142f2a8e57eSGunnar Mills                "MetricReportDefinitions": {
143f2a8e57eSGunnar Mills                    "description": "The metric report definitions that generate new metric reports when a trigger condition is met and when the `TriggerActions` property contains `RedfishMetricReport`.",
144f2a8e57eSGunnar Mills                    "items": {
145f2a8e57eSGunnar Mills                        "$ref": "http://redfish.dmtf.org/schemas/v1/MetricReportDefinition.json#/definitions/MetricReportDefinition"
146f2a8e57eSGunnar Mills                    },
147f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain a set of links to metric report definitions that generate new metric reports when a trigger condition is met and when the `TriggerActions` property contains `RedfishMetricReport`.",
148f2a8e57eSGunnar Mills                    "readonly": false,
149f2a8e57eSGunnar Mills                    "type": "array",
150f2a8e57eSGunnar Mills                    "versionAdded": "v1_1_0"
151f2a8e57eSGunnar Mills                },
152f2a8e57eSGunnar Mills                "MetricReportDefinitions@odata.count": {
153f2a8e57eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
154f2a8e57eSGunnar Mills                },
155f2a8e57eSGunnar Mills                "Oem": {
156f2a8e57eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
157f2a8e57eSGunnar Mills                    "description": "The OEM extension property.",
158f2a8e57eSGunnar 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."
159f2a8e57eSGunnar Mills                }
160f2a8e57eSGunnar Mills            },
161f2a8e57eSGunnar Mills            "type": "object"
162f2a8e57eSGunnar Mills        },
163f2a8e57eSGunnar Mills        "MetricTypeEnum": {
164f2a8e57eSGunnar Mills            "description": "The type of metric for which the trigger is configured.",
165f2a8e57eSGunnar Mills            "enum": [
166f2a8e57eSGunnar Mills                "Numeric",
167f2a8e57eSGunnar Mills                "Discrete"
168f2a8e57eSGunnar Mills            ],
169f2a8e57eSGunnar Mills            "enumDescriptions": {
170f2a8e57eSGunnar Mills                "Discrete": "A discrete value trigger.",
171f2a8e57eSGunnar Mills                "Numeric": "A numeric value trigger."
172f2a8e57eSGunnar Mills            },
173f2a8e57eSGunnar Mills            "longDescription": "This type shall specify the type of metric for which the trigger is configured.",
174f2a8e57eSGunnar Mills            "type": "string"
175f2a8e57eSGunnar Mills        },
176f2a8e57eSGunnar Mills        "OemActions": {
177f2a8e57eSGunnar Mills            "additionalProperties": true,
178f2a8e57eSGunnar Mills            "description": "The available OEM-specific actions for this resource.",
179f2a8e57eSGunnar Mills            "longDescription": "This type shall contain the available OEM-specific actions for this resource.",
180f2a8e57eSGunnar Mills            "patternProperties": {
181f2a8e57eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
182f2a8e57eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
183f2a8e57eSGunnar Mills                    "type": [
184f2a8e57eSGunnar Mills                        "array",
185f2a8e57eSGunnar Mills                        "boolean",
186f2a8e57eSGunnar Mills                        "integer",
187f2a8e57eSGunnar Mills                        "number",
188f2a8e57eSGunnar Mills                        "null",
189f2a8e57eSGunnar Mills                        "object",
190f2a8e57eSGunnar Mills                        "string"
191f2a8e57eSGunnar Mills                    ]
192f2a8e57eSGunnar Mills                }
193f2a8e57eSGunnar Mills            },
194f2a8e57eSGunnar Mills            "properties": {},
195f2a8e57eSGunnar Mills            "type": "object"
196f2a8e57eSGunnar Mills        },
197f2a8e57eSGunnar Mills        "Threshold": {
198f2a8e57eSGunnar Mills            "additionalProperties": false,
199f2a8e57eSGunnar Mills            "description": "A threshold definition for a metric.",
200f2a8e57eSGunnar Mills            "longDescription": "This type shall contain the properties for an individual threshold for this metric.",
201f2a8e57eSGunnar Mills            "patternProperties": {
202f2a8e57eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
203f2a8e57eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
204f2a8e57eSGunnar Mills                    "type": [
205f2a8e57eSGunnar Mills                        "array",
206f2a8e57eSGunnar Mills                        "boolean",
207f2a8e57eSGunnar Mills                        "integer",
208f2a8e57eSGunnar Mills                        "number",
209f2a8e57eSGunnar Mills                        "null",
210f2a8e57eSGunnar Mills                        "object",
211f2a8e57eSGunnar Mills                        "string"
212f2a8e57eSGunnar Mills                    ]
213f2a8e57eSGunnar Mills                }
214f2a8e57eSGunnar Mills            },
215f2a8e57eSGunnar Mills            "properties": {
216f2a8e57eSGunnar Mills                "Activation": {
217f2a8e57eSGunnar Mills                    "anyOf": [
218f2a8e57eSGunnar Mills                        {
219f2a8e57eSGunnar Mills                            "$ref": "#/definitions/ThresholdActivation"
220f2a8e57eSGunnar Mills                        },
221f2a8e57eSGunnar Mills                        {
222f2a8e57eSGunnar Mills                            "type": "null"
223f2a8e57eSGunnar Mills                        }
224f2a8e57eSGunnar Mills                    ],
225f2a8e57eSGunnar Mills                    "description": "The direction of crossing that activates this threshold.",
226f2a8e57eSGunnar Mills                    "longDescription": "This property shall indicate the direction of crossing of the reading for this metric that activates the threshold.",
227f2a8e57eSGunnar Mills                    "readonly": false
228f2a8e57eSGunnar Mills                },
229f2a8e57eSGunnar Mills                "DwellTime": {
230f2a8e57eSGunnar Mills                    "description": "The duration the metric value must violate the threshold before the threshold is activated.",
231f2a8e57eSGunnar Mills                    "longDescription": "This property shall indicate the duration the metric value violates the threshold before the threshold is activated.",
232f2a8e57eSGunnar Mills                    "pattern": "^P(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+(.\\d+)?S)?)?$",
233f2a8e57eSGunnar Mills                    "readonly": false,
234f2a8e57eSGunnar Mills                    "type": [
235f2a8e57eSGunnar Mills                        "string",
236f2a8e57eSGunnar Mills                        "null"
237f2a8e57eSGunnar Mills                    ]
238f2a8e57eSGunnar Mills                },
239f2a8e57eSGunnar Mills                "Reading": {
240f2a8e57eSGunnar Mills                    "description": "The threshold value.",
241f2a8e57eSGunnar Mills                    "longDescription": "This property shall indicate the reading for this metric that activates the threshold.  The value of the property shall use the same units as the `MetricProperties` property.",
242f2a8e57eSGunnar Mills                    "readonly": false,
243f2a8e57eSGunnar Mills                    "type": [
244f2a8e57eSGunnar Mills                        "number",
245f2a8e57eSGunnar Mills                        "null"
246f2a8e57eSGunnar Mills                    ]
247f2a8e57eSGunnar Mills                }
248f2a8e57eSGunnar Mills            },
249f2a8e57eSGunnar Mills            "type": "object"
250f2a8e57eSGunnar Mills        },
251f2a8e57eSGunnar Mills        "ThresholdActivation": {
252f2a8e57eSGunnar Mills            "enum": [
253f2a8e57eSGunnar Mills                "Increasing",
254f2a8e57eSGunnar Mills                "Decreasing",
255f2a8e57eSGunnar Mills                "Either",
256f2a8e57eSGunnar Mills                "Disabled"
257f2a8e57eSGunnar Mills            ],
258f2a8e57eSGunnar Mills            "enumDescriptions": {
259f2a8e57eSGunnar Mills                "Decreasing": "Value decreases below the threshold.",
260f2a8e57eSGunnar Mills                "Disabled": "The threshold is disabled.",
261f2a8e57eSGunnar Mills                "Either": "Value crosses the threshold in either direction.",
262f2a8e57eSGunnar Mills                "Increasing": "Value increases above the threshold."
263f2a8e57eSGunnar Mills            },
264f2a8e57eSGunnar Mills            "enumLongDescriptions": {
265f2a8e57eSGunnar Mills                "Decreasing": "This threshold is activated when the reading changes from a value higher than the threshold to a value lower than the threshold.",
266f2a8e57eSGunnar Mills                "Disabled": "This value shall indicate the threshold is disabled and no actions shall be taken as a result of the reading crossing the threshold value.",
267f2a8e57eSGunnar Mills                "Either": "This threshold is activated when either the `Increasing` or `Decreasing` conditions are met.",
268f2a8e57eSGunnar Mills                "Increasing": "This threshold is activated when the reading changes from a value lower than the threshold to a value higher than the threshold."
269f2a8e57eSGunnar Mills            },
270f2a8e57eSGunnar Mills            "enumVersionAdded": {
271f2a8e57eSGunnar Mills                "Disabled": "v1_3_0"
272f2a8e57eSGunnar Mills            },
273f2a8e57eSGunnar Mills            "type": "string"
274f2a8e57eSGunnar Mills        },
275f2a8e57eSGunnar Mills        "Thresholds": {
276f2a8e57eSGunnar Mills            "additionalProperties": false,
277f2a8e57eSGunnar Mills            "description": "The set of thresholds for a metric.",
278f2a8e57eSGunnar Mills            "longDescription": "This type shall contain a set of thresholds for a metric.",
279f2a8e57eSGunnar Mills            "patternProperties": {
280f2a8e57eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
281f2a8e57eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
282f2a8e57eSGunnar Mills                    "type": [
283f2a8e57eSGunnar Mills                        "array",
284f2a8e57eSGunnar Mills                        "boolean",
285f2a8e57eSGunnar Mills                        "integer",
286f2a8e57eSGunnar Mills                        "number",
287f2a8e57eSGunnar Mills                        "null",
288f2a8e57eSGunnar Mills                        "object",
289f2a8e57eSGunnar Mills                        "string"
290f2a8e57eSGunnar Mills                    ]
291f2a8e57eSGunnar Mills                }
292f2a8e57eSGunnar Mills            },
293f2a8e57eSGunnar Mills            "properties": {
294f2a8e57eSGunnar Mills                "LowerCritical": {
295f2a8e57eSGunnar Mills                    "$ref": "#/definitions/Threshold",
296f2a8e57eSGunnar Mills                    "description": "The value at which the reading is below normal range and requires attention.",
297f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the value at which the `MetricProperties` property is below the normal range and may require attention.  The value of the property shall use the same units as the `MetricProperties` property."
298f2a8e57eSGunnar Mills                },
299f2a8e57eSGunnar Mills                "LowerWarning": {
300f2a8e57eSGunnar Mills                    "$ref": "#/definitions/Threshold",
301f2a8e57eSGunnar Mills                    "description": "The value at which the reading is below normal range.",
302f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the value at which the `MetricProperties` property is below the normal range.  The value of the property shall use the same units as the `MetricProperties` property."
303f2a8e57eSGunnar Mills                },
304f2a8e57eSGunnar Mills                "UpperCritical": {
305f2a8e57eSGunnar Mills                    "$ref": "#/definitions/Threshold",
306f2a8e57eSGunnar Mills                    "description": "The value at which the reading is above normal range and requires attention.",
307f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the value at which the `MetricProperties` property is above the normal range and may require attention.  The value of the property shall use the same units as the `MetricProperties` property."
308f2a8e57eSGunnar Mills                },
309f2a8e57eSGunnar Mills                "UpperWarning": {
310f2a8e57eSGunnar Mills                    "$ref": "#/definitions/Threshold",
311f2a8e57eSGunnar Mills                    "description": "The value at which the reading is above normal range.",
312f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the value at which the `MetricProperties` property is above the normal range.  The value of the property shall use the same units as the `MetricProperties` property."
313f2a8e57eSGunnar Mills                }
314f2a8e57eSGunnar Mills            },
315f2a8e57eSGunnar Mills            "type": "object"
316f2a8e57eSGunnar Mills        },
317f2a8e57eSGunnar Mills        "TriggerActionEnum": {
318f2a8e57eSGunnar Mills            "description": "The actions to perform when a trigger condition is met.",
319f2a8e57eSGunnar Mills            "enum": [
320f2a8e57eSGunnar Mills                "LogToLogService",
321f2a8e57eSGunnar Mills                "RedfishEvent",
322f2a8e57eSGunnar Mills                "RedfishMetricReport"
323f2a8e57eSGunnar Mills            ],
324f2a8e57eSGunnar Mills            "enumDescriptions": {
325f2a8e57eSGunnar Mills                "LogToLogService": "When a trigger condition is met, record in a log.",
326f2a8e57eSGunnar Mills                "RedfishEvent": "When a trigger condition is met, the service sends an event to subscribers.",
327f2a8e57eSGunnar Mills                "RedfishMetricReport": "When a trigger condition is met, force an update of the specified metric reports."
328f2a8e57eSGunnar Mills            },
329f2a8e57eSGunnar Mills            "enumLongDescriptions": {
330f2a8e57eSGunnar Mills                "LogToLogService": "This value indicates that when a trigger condition is met, the service shall log the occurrence of the condition to the log that the `LogService` property in the telemetry service resource describes.  The message for the created log entry shall follow the guidance specified by the `TriggerActionMessage` property.",
331f2a8e57eSGunnar Mills                "RedfishEvent": "This value indicates that when a trigger condition is met, the service shall send an event to subscribers.  The message key for the event shall follow the guidance specified by TriggerActionMessage.",
332f2a8e57eSGunnar Mills                "RedfishMetricReport": "This value indicates that when a trigger condition is met, the service shall force the metric reports managed by the metric report definitions specified by the `MetricReportDefinitions` property to be updated, regardless of the `MetricReportDefinitionType` property value.  The actions specified in the `ReportActions` property of each `MetricReportDefinition` resource shall be performed."
333f2a8e57eSGunnar Mills            },
334f2a8e57eSGunnar Mills            "enumVersionAdded": {
335f2a8e57eSGunnar Mills                "RedfishMetricReport": "v1_1_0"
336f2a8e57eSGunnar Mills            },
337f2a8e57eSGunnar Mills            "longDescription": "This type shall specify the actions to perform when a trigger condition is met.",
338f2a8e57eSGunnar Mills            "type": "string"
339f2a8e57eSGunnar Mills        },
340f2a8e57eSGunnar Mills        "TriggerActionMessage": {
341f2a8e57eSGunnar Mills            "description": "The message used for events or log entries when the trigger is activated.",
342f2a8e57eSGunnar Mills            "enum": [
343f2a8e57eSGunnar Mills                "Telemetry",
344f2a8e57eSGunnar Mills                "DriveMediaLife",
345f2a8e57eSGunnar Mills                "ConnectionSpeed"
346f2a8e57eSGunnar Mills            ],
347f2a8e57eSGunnar Mills            "enumDescriptions": {
348f2a8e57eSGunnar Mills                "ConnectionSpeed": "`ConnectionSpeedLow` message from the Network Device Message Registry.",
349f2a8e57eSGunnar Mills                "DriveMediaLife": "`MediaLifeLeftLow` message from the Storage Device Message Registry.",
350f2a8e57eSGunnar Mills                "Telemetry": "Messages from the Telemetry Message Registry."
351f2a8e57eSGunnar Mills            },
352f2a8e57eSGunnar Mills            "enumLongDescriptions": {
353f2a8e57eSGunnar Mills                "ConnectionSpeed": "This value shall indicate that messages generated in response to a trigger action shall utilize the `ConnectionSpeedLow` message from the Network Device Message Registry.",
354f2a8e57eSGunnar Mills                "DriveMediaLife": "This value shall indicate that messages generated in response to a trigger action shall utilize the `MediaLifeLeftLow` message from the Storage Device Message Registry.",
355f2a8e57eSGunnar Mills                "Telemetry": "This value shall indicate that messages generated in response to a trigger action shall utilize messages from the Telemetry Message Registry.  If this property is not supplied or supported, this value should be used as the default for this trigger."
356f2a8e57eSGunnar Mills            },
357f2a8e57eSGunnar Mills            "longDescription": "The value shall indicate the message used to complete the specified trigger actions.",
358f2a8e57eSGunnar Mills            "type": "string"
359f2a8e57eSGunnar Mills        },
360f2a8e57eSGunnar Mills        "Triggers": {
361f2a8e57eSGunnar Mills            "additionalProperties": false,
362f2a8e57eSGunnar Mills            "description": "The `Triggers` schema describes a trigger condition that applies to metrics.",
363f2a8e57eSGunnar Mills            "longDescription": "This resource shall contain a trigger condition that applies to metrics.",
364f2a8e57eSGunnar Mills            "patternProperties": {
365f2a8e57eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
366f2a8e57eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
367f2a8e57eSGunnar Mills                    "type": [
368f2a8e57eSGunnar Mills                        "array",
369f2a8e57eSGunnar Mills                        "boolean",
370f2a8e57eSGunnar Mills                        "integer",
371f2a8e57eSGunnar Mills                        "number",
372f2a8e57eSGunnar Mills                        "null",
373f2a8e57eSGunnar Mills                        "object",
374f2a8e57eSGunnar Mills                        "string"
375f2a8e57eSGunnar Mills                    ]
376f2a8e57eSGunnar Mills                }
377f2a8e57eSGunnar Mills            },
378f2a8e57eSGunnar Mills            "properties": {
379f2a8e57eSGunnar Mills                "@odata.context": {
380f2a8e57eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context"
381f2a8e57eSGunnar Mills                },
382f2a8e57eSGunnar Mills                "@odata.etag": {
383f2a8e57eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag"
384f2a8e57eSGunnar Mills                },
385f2a8e57eSGunnar Mills                "@odata.id": {
386f2a8e57eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id"
387f2a8e57eSGunnar Mills                },
388f2a8e57eSGunnar Mills                "@odata.type": {
389f2a8e57eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type"
390f2a8e57eSGunnar Mills                },
391f2a8e57eSGunnar Mills                "Actions": {
392f2a8e57eSGunnar Mills                    "$ref": "#/definitions/Actions",
393f2a8e57eSGunnar Mills                    "description": "The available actions for this resource.",
394f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the available actions for this resource."
395f2a8e57eSGunnar Mills                },
396f2a8e57eSGunnar Mills                "Description": {
397f2a8e57eSGunnar Mills                    "anyOf": [
398f2a8e57eSGunnar Mills                        {
399f2a8e57eSGunnar Mills                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
400f2a8e57eSGunnar Mills                        },
401f2a8e57eSGunnar Mills                        {
402f2a8e57eSGunnar Mills                            "type": "null"
403f2a8e57eSGunnar Mills                        }
404f2a8e57eSGunnar Mills                    ],
405f2a8e57eSGunnar Mills                    "readonly": true
406f2a8e57eSGunnar Mills                },
407f2a8e57eSGunnar Mills                "DiscreteTriggerCondition": {
408f2a8e57eSGunnar Mills                    "anyOf": [
409f2a8e57eSGunnar Mills                        {
410f2a8e57eSGunnar Mills                            "$ref": "#/definitions/DiscreteTriggerConditionEnum"
411f2a8e57eSGunnar Mills                        },
412f2a8e57eSGunnar Mills                        {
413f2a8e57eSGunnar Mills                            "type": "null"
414f2a8e57eSGunnar Mills                        }
415f2a8e57eSGunnar Mills                    ],
416f2a8e57eSGunnar Mills                    "description": "The conditions for a discrete metric trigger.",
417f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the conditions when a discrete metric triggers.",
418f2a8e57eSGunnar Mills                    "readonly": true
419f2a8e57eSGunnar Mills                },
420f2a8e57eSGunnar Mills                "DiscreteTriggers": {
421f2a8e57eSGunnar Mills                    "description": "The list of discrete triggers.",
422f2a8e57eSGunnar Mills                    "items": {
423f2a8e57eSGunnar Mills                        "$ref": "#/definitions/DiscreteTrigger"
424f2a8e57eSGunnar Mills                    },
425f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain a list of values to which to compare a metric reading.  This property shall be present when the `DiscreteTriggerCondition` property is `Specified`.",
426f2a8e57eSGunnar Mills                    "type": "array"
427f2a8e57eSGunnar Mills                },
428f2a8e57eSGunnar Mills                "EventTriggers": {
429f2a8e57eSGunnar Mills                    "description": "The array of `MessageId` values that specify when a trigger condition is met based on an event.",
430f2a8e57eSGunnar Mills                    "items": {
431f2a8e57eSGunnar Mills                        "type": [
432f2a8e57eSGunnar Mills                            "string",
433f2a8e57eSGunnar Mills                            "null"
434f2a8e57eSGunnar Mills                        ]
435f2a8e57eSGunnar Mills                    },
436f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain an array of `MessageId` values that specify when a trigger condition is met based on an event.  When the service generates an event and if it contains a `MessageId` within this array, a trigger condition shall be met.  The `MetricType` property should not be present if this resource is configured for event-based triggers.",
437f2a8e57eSGunnar Mills                    "pattern": "^[A-Za-z0-9]+\\.\\d+\\.\\d+\\.[A-Za-z0-9.]+$",
438f2a8e57eSGunnar Mills                    "readonly": false,
439f2a8e57eSGunnar Mills                    "type": "array",
440f2a8e57eSGunnar Mills                    "versionAdded": "v1_1_0"
441f2a8e57eSGunnar Mills                },
442f2a8e57eSGunnar Mills                "HysteresisDuration": {
443f2a8e57eSGunnar Mills                    "description": "The duration the metric value must not violate the threshold before the threshold is deactivated.",
444f2a8e57eSGunnar Mills                    "longDescription": "This property shall indicate the duration the metric value no longer violates the threshold before the threshold is deactivated.  A duration of zero seconds, or if the property is not present in the resource, shall indicate the threshold is deactivated immediately once the metric value no longer violates the threshold.  The threshold shall not deactivate until the conditions of both `HysteresisReading` and `HysteresisDuration` are met.",
445f2a8e57eSGunnar Mills                    "pattern": "^P(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+(.\\d+)?S)?)?$",
446f2a8e57eSGunnar Mills                    "readonly": false,
447f2a8e57eSGunnar Mills                    "type": [
448f2a8e57eSGunnar Mills                        "string",
449f2a8e57eSGunnar Mills                        "null"
450f2a8e57eSGunnar Mills                    ],
451f2a8e57eSGunnar Mills                    "versionAdded": "v1_3_0"
452f2a8e57eSGunnar Mills                },
453f2a8e57eSGunnar Mills                "HysteresisReading": {
454f2a8e57eSGunnar Mills                    "description": "The reading offset from the threshold value required to clear the threshold.",
455f2a8e57eSGunnar Mills                    "longDescription": "This property shall indicate the offset from the reading for this sensor and the threshold value that deactivates the threshold.  For example, a value of `-2` indicates the metric reading shall fall 2 units below an upper threshold value to deactivate the threshold.  The value of the property shall use the same units as the `Reading` property.  A value of `0`, or if the property is not present in the resource, shall indicate the threshold is deactivated when the metric value no longer violates the threshold.  The threshold shall not deactivate until the conditions of both `HysteresisReading` and `HysteresisDuration` are met.",
456f2a8e57eSGunnar Mills                    "readonly": false,
457f2a8e57eSGunnar Mills                    "type": [
458f2a8e57eSGunnar Mills                        "number",
459f2a8e57eSGunnar Mills                        "null"
460f2a8e57eSGunnar Mills                    ],
461f2a8e57eSGunnar Mills                    "versionAdded": "v1_3_0"
462f2a8e57eSGunnar Mills                },
463f2a8e57eSGunnar Mills                "Id": {
464f2a8e57eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
465f2a8e57eSGunnar Mills                    "readonly": true
466f2a8e57eSGunnar Mills                },
467f2a8e57eSGunnar Mills                "Links": {
468f2a8e57eSGunnar Mills                    "$ref": "#/definitions/Links",
469f2a8e57eSGunnar Mills                    "description": "The links to other resources that are related to this resource.",
470f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain links to resources that are related to but are not contained by, or subordinate to, this resource.",
471f2a8e57eSGunnar Mills                    "versionAdded": "v1_1_0"
472f2a8e57eSGunnar Mills                },
473f2a8e57eSGunnar Mills                "MetricIds": {
474f2a8e57eSGunnar Mills                    "description": "The label for the metric definitions that contain the property identifiers for this trigger.  It matches the `Id` property of the corresponding metric definition.",
475f2a8e57eSGunnar Mills                    "items": {
476f2a8e57eSGunnar Mills                        "type": [
477f2a8e57eSGunnar Mills                            "string",
478f2a8e57eSGunnar Mills                            "null"
479f2a8e57eSGunnar Mills                        ]
480f2a8e57eSGunnar Mills                    },
481f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the labels for the metric definitions that contain the property identifiers for this trigger.  This property shall match the value of the `Id` property of the corresponding metric definitions.",
482f2a8e57eSGunnar Mills                    "readonly": false,
483f2a8e57eSGunnar Mills                    "type": "array",
484f2a8e57eSGunnar Mills                    "versionAdded": "v1_2_0"
485f2a8e57eSGunnar Mills                },
486f2a8e57eSGunnar Mills                "MetricProperties": {
487f2a8e57eSGunnar Mills                    "description": "An array of URIs with wildcards and property identifiers for this trigger.  Each wildcard, a name contained by a set of curly braces, is replaced with its corresponding entry in the `Wildcard` array property.",
488f2a8e57eSGunnar Mills                    "format": "uri-reference",
489f2a8e57eSGunnar Mills                    "items": {
490f2a8e57eSGunnar Mills                        "type": [
491f2a8e57eSGunnar Mills                            "string",
492f2a8e57eSGunnar Mills                            "null"
493f2a8e57eSGunnar Mills                        ]
494f2a8e57eSGunnar Mills                    },
495f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain an array of URIs with wildcards and property identifiers for this trigger.  Use a set of curly braces to delimit each wildcard in the URI.  Replace each wildcard with its corresponding entry in the `Wildcard` array property.  A URI that contains wildcards shall link to a resource property to which this trigger definition applies after all wildcards are replaced with their corresponding entries in the Wildcard property.  The property identifiers portion of the URI shall follow the RFC6901-defined JSON fragment notation rules.",
496f2a8e57eSGunnar Mills                    "readonly": false,
497f2a8e57eSGunnar Mills                    "type": "array"
498f2a8e57eSGunnar Mills                },
499f2a8e57eSGunnar Mills                "MetricType": {
500f2a8e57eSGunnar Mills                    "anyOf": [
501f2a8e57eSGunnar Mills                        {
502f2a8e57eSGunnar Mills                            "$ref": "#/definitions/MetricTypeEnum"
503f2a8e57eSGunnar Mills                        },
504f2a8e57eSGunnar Mills                        {
505f2a8e57eSGunnar Mills                            "type": "null"
506f2a8e57eSGunnar Mills                        }
507f2a8e57eSGunnar Mills                    ],
508f2a8e57eSGunnar Mills                    "description": "The metric type of the trigger.",
509f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the metric type of the trigger.",
510f2a8e57eSGunnar Mills                    "readonly": true
511f2a8e57eSGunnar Mills                },
512f2a8e57eSGunnar Mills                "Name": {
513f2a8e57eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
514f2a8e57eSGunnar Mills                    "readonly": true
515f2a8e57eSGunnar Mills                },
516f2a8e57eSGunnar Mills                "NumericThresholds": {
517f2a8e57eSGunnar Mills                    "$ref": "#/definitions/Thresholds",
518f2a8e57eSGunnar Mills                    "description": "The thresholds for a numeric metric trigger.",
519f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the list of thresholds to which to compare a numeric metric value."
520f2a8e57eSGunnar Mills                },
521f2a8e57eSGunnar Mills                "Oem": {
522f2a8e57eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
523f2a8e57eSGunnar Mills                    "description": "The OEM extension property.",
524f2a8e57eSGunnar 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."
525f2a8e57eSGunnar Mills                },
526f2a8e57eSGunnar Mills                "Status": {
527f2a8e57eSGunnar Mills                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status",
528f2a8e57eSGunnar Mills                    "description": "The status and health of the resource and its subordinate or dependent resources.",
529f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain any status or health properties of the resource."
530f2a8e57eSGunnar Mills                },
531f2a8e57eSGunnar Mills                "TriggerActionMessage": {
532f2a8e57eSGunnar Mills                    "anyOf": [
533f2a8e57eSGunnar Mills                        {
534f2a8e57eSGunnar Mills                            "$ref": "#/definitions/TriggerActionMessage"
535f2a8e57eSGunnar Mills                        },
536f2a8e57eSGunnar Mills                        {
537f2a8e57eSGunnar Mills                            "type": "null"
538f2a8e57eSGunnar Mills                        }
539f2a8e57eSGunnar Mills                    ],
540f2a8e57eSGunnar Mills                    "description": "The message issued as part of the trigger actions.",
541f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the message definition used to generate a Redfish event or a log entry as requested by the values of `TriggerActions`.",
542f2a8e57eSGunnar Mills                    "readonly": false,
543f2a8e57eSGunnar Mills                    "versionAdded": "v1_4_0"
544f2a8e57eSGunnar Mills                },
545f2a8e57eSGunnar Mills                "TriggerActions": {
546f2a8e57eSGunnar Mills                    "description": "The actions that the trigger initiates.",
547f2a8e57eSGunnar Mills                    "items": {
548f2a8e57eSGunnar Mills                        "$ref": "#/definitions/TriggerActionEnum"
549f2a8e57eSGunnar Mills                    },
550f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the actions that the trigger initiates.",
551f2a8e57eSGunnar Mills                    "readonly": true,
552f2a8e57eSGunnar Mills                    "type": "array"
553f2a8e57eSGunnar Mills                },
554f2a8e57eSGunnar Mills                "TriggerEnabled": {
555f2a8e57eSGunnar Mills                    "description": "An indication of whether the trigger is enabled.",
556f2a8e57eSGunnar Mills                    "longDescription": "This property shall indicate whether the trigger is enabled.  If `true`, it is enabled.  If `false`, it is disabled and none of the actions listed in `TriggerActions` will occur.",
557f2a8e57eSGunnar Mills                    "readonly": false,
558f2a8e57eSGunnar Mills                    "type": [
559f2a8e57eSGunnar Mills                        "boolean",
560f2a8e57eSGunnar Mills                        "null"
561f2a8e57eSGunnar Mills                    ],
562f2a8e57eSGunnar Mills                    "versionAdded": "v1_4_0"
563f2a8e57eSGunnar Mills                },
564f2a8e57eSGunnar Mills                "Wildcards": {
565f2a8e57eSGunnar Mills                    "description": "The wildcards and their substitution values for the entries in the `MetricProperties` array property.",
566f2a8e57eSGunnar Mills                    "items": {
567f2a8e57eSGunnar Mills                        "$ref": "#/definitions/Wildcard"
568f2a8e57eSGunnar Mills                    },
569f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the wildcards and their substitution values for the entries in the `MetricProperties` array property.  Each wildcard shall have a corresponding entry in this array property.",
570f2a8e57eSGunnar Mills                    "type": "array"
571f2a8e57eSGunnar Mills                }
572f2a8e57eSGunnar Mills            },
573f2a8e57eSGunnar Mills            "required": [
574f2a8e57eSGunnar Mills                "@odata.id",
575f2a8e57eSGunnar Mills                "@odata.type",
576f2a8e57eSGunnar Mills                "Id",
577f2a8e57eSGunnar Mills                "Name"
578f2a8e57eSGunnar Mills            ],
579f2a8e57eSGunnar Mills            "type": "object"
580f2a8e57eSGunnar Mills        },
581f2a8e57eSGunnar Mills        "Wildcard": {
582f2a8e57eSGunnar Mills            "additionalProperties": false,
583f2a8e57eSGunnar Mills            "description": "The wildcard and its substitution values.",
584f2a8e57eSGunnar Mills            "longDescription": "This property shall contain a wildcard and its substitution values.",
585f2a8e57eSGunnar Mills            "patternProperties": {
586f2a8e57eSGunnar Mills                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
587f2a8e57eSGunnar Mills                    "description": "This property shall specify a valid odata or Redfish property.",
588f2a8e57eSGunnar Mills                    "type": [
589f2a8e57eSGunnar Mills                        "array",
590f2a8e57eSGunnar Mills                        "boolean",
591f2a8e57eSGunnar Mills                        "integer",
592f2a8e57eSGunnar Mills                        "number",
593f2a8e57eSGunnar Mills                        "null",
594f2a8e57eSGunnar Mills                        "object",
595f2a8e57eSGunnar Mills                        "string"
596f2a8e57eSGunnar Mills                    ]
597f2a8e57eSGunnar Mills                }
598f2a8e57eSGunnar Mills            },
599f2a8e57eSGunnar Mills            "properties": {
600f2a8e57eSGunnar Mills                "Name": {
601f2a8e57eSGunnar Mills                    "description": "The wildcard.",
602f2a8e57eSGunnar Mills                    "longDescription": "This property shall contain the string used as a wildcard when contained by curly braces for a URI segment in `MetricProperties`.",
603f2a8e57eSGunnar Mills                    "readonly": true,
604f2a8e57eSGunnar Mills                    "type": [
605f2a8e57eSGunnar Mills                        "string",
606f2a8e57eSGunnar Mills                        "null"
607f2a8e57eSGunnar Mills                    ]
608f2a8e57eSGunnar Mills                },
609f2a8e57eSGunnar Mills                "Values": {
610f2a8e57eSGunnar Mills                    "description": "An array of values to substitute for the wildcard.  A single value of `*` matches all resources.",
611f2a8e57eSGunnar Mills                    "items": {
612f2a8e57eSGunnar Mills                        "type": [
613f2a8e57eSGunnar Mills                            "string",
614f2a8e57eSGunnar Mills                            "null"
615f2a8e57eSGunnar Mills                        ]
616f2a8e57eSGunnar Mills                    },
617f2a8e57eSGunnar Mills                    "longDescription": "This array property shall contain the list of values to substitute for the wildcard.  A single value of `*` shall indicate that the wildcard matches any available values when substituted for a URI segment.  If this property is not present, the value shall be assumed to be `*`.",
618f2a8e57eSGunnar Mills                    "readonly": false,
619f2a8e57eSGunnar Mills                    "type": "array"
620f2a8e57eSGunnar Mills                }
621f2a8e57eSGunnar Mills            },
622f2a8e57eSGunnar Mills            "type": "object"
623f2a8e57eSGunnar Mills        }
624f2a8e57eSGunnar Mills    },
625f2a8e57eSGunnar Mills    "language": "en",
626f2a8e57eSGunnar Mills    "owningEntity": "DMTF",
627f2a8e57eSGunnar Mills    "release": "2024.1",
628f2a8e57eSGunnar Mills    "title": "#Triggers.v1_4_0.Triggers"
629f2a8e57eSGunnar Mills}