One of the following 4 shapes: Variant 1 Evaluates an aggregated metric value against one or more severity-based thresholds. | Property | Type | Required | Constraints | Description |
|---|
aggregation | string | Yes | one of: avg, min, max, sum, count | The aggregation function applied to the metric over duration. | conditionType | string | Yes | one of: metricsThreshold | The discriminator for the condition type. Must be metricsThreshold. | delay | string | No | | Optional. How long the evaluation is delayed after the job is dispatched (e.g. 1min). Capped at 10 days. Note (Alerting V2): this field is not used by evaluation scheduling; the server silently replaces invalid values with 0sec. | duration | string | Yes | | Required. The time range over which data points are aggregated for evaluation (e.g. 1min, 10min, 1hour). Must be a positive, non-zero multiple of the job invocation interval. Capped at 10 days (V2: 1 day). Note (Alerting V2): the multiple-of-interval constraint does not apply; any positive, non-zero duration up to 1 day is accepted. | frequency | string | No | | Optional. How often the condition is evaluated (e.g. 1min, 10min, 1hour). Capped at 1 hour. Note (Alerting V2): this field is not used by evaluation scheduling; the server silently replaces invalid values with 1min and the actual cadence is controlled by the platform. | metricsCondition | object | Yes | | The metric on which the condition is evaluated. | Properties of metricsCondition| Property | Type | Required | Constraints | Description |
|---|
entityClass | string | Yes | | The entity class that owns the metric. | entityTargetCondition | object | No | | Optional. Constraint on which entities the condition applies to. When omitted, the condition applies to the entity that owns the alert rule. | Properties of entityTargetCondition| Property | Type | Required | Constraints | Description |
|---|
entityIds | array<string> | Yes | | The entity IDs to target (or exclude). | exclude | boolean | No | | If true, the listed entities are excluded instead of included. | targetBy | string | Yes | one of: parents, entities | How to target entities. | | metricName | string | Yes | | The name of the metric inside the metrics definition. | metricsDefinitionId | string | Yes | | The identifier of the metrics definition. | | thresholds | array<one of 3> | Yes | min items: 1 | Severity-based thresholds. The first matching threshold determines the severity. Duplicate severities are not allowed. | Properties of thresholds| Property | Type | Required | Constraints | Description |
|---|
operands | array<number> | Yes | | Operand values for the operator. Single value for greaterThan/lessThan/etc., two values for between/outside (with operands[0] < operands[1]), list for in/notIn. | operator | string | Yes | one of: greaterThan, greaterThanOrEqualTo, lessThanOrEqualTo, lessThan, between, outside, in, notIn | The comparison operator applied to the aggregated value and operands. | severity | integer | Yes | one of: 1, 2, 3 | Alert severity. 1 - High, 2 - Moderate, 3 - Low. | One of the following 3 shapes: Variant 1 | Property | Type | Required | Constraints | Description |
|---|
operands | unknown | No | min items: 1; max items: 1 | | operator | unknown | No | one of: greaterThan, greaterThanOrEqualTo, lessThanOrEqualTo, lessThan | |
Variant 2 | Property | Type | Required | Constraints | Description |
|---|
operands | unknown | No | min items: 2; max items: 2 | | operator | unknown | No | one of: between, outside | |
Variant 3 | Property | Type | Required | Constraints | Description |
|---|
operands | unknown | No | min items: 1; max items: 1000 | | operator | unknown | No | one of: in, notIn | |
|
Variant 2 Fires an alert when a metric stops reporting data points for the configured duration. | Property | Type | Required | Constraints | Description |
|---|
conditionType | string | Yes | one of: metricsHeartbeat | The discriminator for the condition type. Must be metricsHeartbeat. | delay | string | No | | Optional. How long the evaluation is delayed after the job is dispatched. Must be a multiple of the job invocation interval. Capped at 10 days. | duration | string | Yes | | Required. The window in which at least one data point is expected (e.g. 1min, 10min, 1hour). Must be a positive, non-zero multiple of the job invocation interval. Capped at 90 days. | frequency | string | No | | Optional. How often the condition is evaluated (e.g. 1min). Must be a multiple of the job invocation interval. Capped at 1 hour. | metricsCondition | object | Yes | | The metric whose heartbeat is monitored. | Properties of metricsCondition| Property | Type | Required | Constraints | Description |
|---|
entityClass | string | Yes | | The entity class that owns the metric. | entityTargetCondition | object | No | | Optional. Constraint on which entities the condition applies to. When omitted, the condition applies to the entity that owns the alert rule. | Properties of entityTargetCondition| Property | Type | Required | Constraints | Description |
|---|
entityIds | array<string> | Yes | | | exclude | boolean | No | | | targetBy | string | Yes | one of: parents, entities | | | metricName | string | Yes | | The name of the metric inside the metrics definition. | metricsDefinitionId | string | Yes | | The identifier of the metrics definition. | | severity | integer | Yes | one of: 1, 2, 3 | The severity emitted when the heartbeat is missed. 1 - High, 2 - Moderate, 3 - Low. |
Variant 3 Fires an alert when an entity stops reporting location data points for the configured duration. | Property | Type | Required | Constraints | Description |
|---|
conditionType | string | Yes | one of: locationHeartbeat | The discriminator for the condition type. Must be locationHeartbeat. | delay | string | No | | Optional. How long the evaluation is delayed after the job is dispatched. Must be a multiple of the job invocation interval. Capped at 10 minutes. | duration | string | Yes | | Required. The window in which at least one location data point is expected (e.g. 1min, 10min, 1hour). Must be a positive, non-zero multiple of the job invocation interval. Capped at 10 minutes. | frequency | string | No | | Optional. How often the condition is evaluated (e.g. 1min). Must be a multiple of the job invocation interval. Capped at 10 minutes. | locationCondition | object | Yes | | The location data source on which the heartbeat is monitored. | Properties of locationCondition| Property | Type | Required | Constraints | Description |
|---|
entityClass | string | Yes | | The entity class whose location is monitored. | entityTargetCondition | object | No | | Optional. Constraint on which entities the condition applies to. When omitted, the condition applies to the entity that owns the alert rule. | Properties of entityTargetCondition| Property | Type | Required | Constraints | Description |
|---|
entityIds | array<string> | Yes | min items: 1; max items: 100 | | exclude | boolean | No | | | targetBy | string | Yes | one of: parents, entities | | | | severity | integer | Yes | one of: 1, 2, 3 | The severity emitted when the heartbeat is missed. 1 - High, 2 - Moderate, 3 - Low. |
Variant 4 Evaluates geofence-based metric conditions on tracked entities. | Property | Type | Required | Constraints | Description |
|---|
conditionType | string | Yes | one of: geofence | The discriminator for the condition type. Must be geofence. | delay | string | No | | Optional. How long the evaluation is delayed after the job is dispatched. Must be a multiple of the job invocation interval. Capped at 10 minutes. Note (Alerting V2): this field is not used by evaluation scheduling; the server silently replaces invalid values with 0sec. | duration | string | Yes | | Required. The time range over which the condition is evaluated (e.g. 1min). Must be a positive, non-zero multiple of the job invocation interval. Capped at 30 minutes. | geofenceAlertType | string | Yes | one of: inOnly, inAndOut | Whether to alert only when entering the geofence, or for both enter and exit transitions. | geofenceEntityIds | array<string> | No | | Required when geofenceAlertType=inAndOut. The ordered list of geofence area entity IDs that define the zones. Validation requires at least one entry. The length of this list also determines the required dimensions of geofenceSeverityMatrix (rows and columns = len + 1, including the "outside" zone). | geofenceExcludingEntityClasses | array<string> | No | | Optional. Used only when geofenceAlertType=inOnly. Entity classes whose areas suppress evaluation when a tracked entity is inside them. Must not contain geofenceTargetEntities.entityClass or any entity class listed in geofenceInOnlyConditions. | geofenceExcludingEntityIds | array<string> | No | | Optional. Geofence entity IDs to exclude from evaluation. | geofenceInOnlyConditions | array<object> | No | | Optional in the schema, but required when geofenceAlertType=inOnly (validation will reject the rule otherwise). Per-entity-class conditions evaluated on geofence entry. entityClass must differ from geofenceTargetEntities.entityClass, severities must be unique across this array, and classes listed here must not appear in geofenceExcludingEntityClasses. | Properties of geofenceInOnlyConditions| Property | Type | Required | Constraints | Description |
|---|
entityClass | string | Yes | | | metricsConditions | array<object> | No | | | Properties of metricsConditions| Property | Type | Required | Constraints | Description |
|---|
metricName | string | Yes | | | metricsDefinitionId | string | Yes | | | threshold | one of 3 | Yes | | | Nested structure continues below this depth. | | severity | integer | Yes | one of: 1, 2, 3 | | | geofenceSeverityMatrix | array<array> | No | | Required when geofenceAlertType=inAndOut. A square severity matrix representing transitions between zones (including an implicit "outside" zone). Must have exactly (length of geofenceEntityIds) + 1 rows and the same number of columns. matrix[from][to] gives the severity (0 - None, 1 - High, 2 - Moderate, 3 - Low) for transitioning from zone from to zone to, where index 0 represents outside. Ignored when geofenceAlertType=inOnly. | geofenceTargetEntities | object | Yes | | Specifies the entities whose locations are tracked and evaluated against the geofences. | Properties of geofenceTargetEntities| Property | Type | Required | Constraints | Description |
|---|
entityClass | string | Yes | | The entity class of the geofence entities. | entityIds | array<string> | No | | Optional. Specific entity IDs to evaluate. Each ID must be a descendant of the alert rule's owning entity. When omitted, all entities of entityClass under parentEntityId are evaluated; if parentEntityId is also omitted, all entities of entityClass under the alert rule's owning entity are evaluated. | parentEntityId | string | No | | Optional. Restricts geofence target entity resolution to descendants of this entity. Must be a descendant of the alert rule's owning entity. When omitted, target entities are resolved under the alert rule's owning entity. | | metricsConditionOperator | string | No | one of: and, or | Optional. Logical operator combining metricsConditions. Required when metricsConditions is non-empty. Ignored when metricsConditions is empty or absent. | metricsConditions | array<object> | No | | Optional. Per-metric threshold conditions evaluated against tracked entities. When present, metricsConditionOperator must also be set. | Properties of metricsConditions| Property | Type | Required | Constraints | Description |
|---|
entityClass | string | No | | Optional. The entity class to evaluate the metric against. When omitted, defaults to geofenceTargetEntities.entityClass. | entityId | string | No | | Optional. Scopes the metric evaluation to a specific entity. The entity must be a descendant of the alert rule's owning entity. When omitted, the metric is evaluated against any matching entity of entityClass. | metricName | string | Yes | | The name of the metric inside the metrics definition. | metricsDefinitionId | string | Yes | | The identifier of the metrics definition. | threshold | one of 3 | Yes | | The threshold the metric value is compared against. | Properties of threshold| Property | Type | Required | Constraints | Description |
|---|
operands | array<number> | Yes | | Operand values for the operator. Single value for greaterThan/lessThan/etc., two values for between/outside (with operands[0] < operands[1]), list for in/notIn. | operator | string | Yes | one of: greaterThan, greaterThanOrEqualTo, lessThanOrEqualTo, lessThan, between, outside, in, notIn | | One of the following 3 shapes: Variant 1 | Property | Type | Required | Constraints | Description |
|---|
operands | unknown | No | min items: 1; max items: 1 | | operator | unknown | No | one of: greaterThan, greaterThanOrEqualTo, lessThanOrEqualTo, lessThan | |
Variant 2 | Property | Type | Required | Constraints | Description |
|---|
operands | unknown | No | min items: 2; max items: 2 | | operator | unknown | No | one of: between, outside | |
Variant 3 | Property | Type | Required | Constraints | Description |
|---|
operands | unknown | No | min items: 1; max items: 1000 | | operator | unknown | No | one of: in, notIn | |
| | whenLocationIsMissing | string | No | one of: skipEvaluation, setFromAsOutsideOnly, setBothAsOutside | Optional. How to treat tracked entities with no recent location data. Defaults to skipEvaluation when omitted. |
|