{
"type": "object",
"properties": {
"PCID": {
"type": "string",
"description": "Pink Connect ID for the authenticated connection"
},
"monitor_id": {
"type": "integer",
"description": "The ID of the monitor"
},
"assets": {
"type": "array",
"items": {
"type": "object",
"properties": {
"category": {
"type": "string",
"enum": [
"runbook"
],
"description": "Indicates the type of asset this entity represents on a monitor."
},
"name": {
"type": "string",
"description": "Name for the monitor asset"
},
"resource_key": {
"type": "string",
"description": "Represents the identifier of the internal Datadog resource that this asset represents. IDs in this field should be passed in as strings."
},
"resource_type": {
"type": "string",
"enum": [
"notebook"
],
"description": "Type of internal Datadog resource associated with a monitor asset."
},
"url": {
"type": "string",
"description": "URL link for the asset. For links with an internal resource type set, this should be the relative path to where the Datadog domain is appended internally. For external links, this should be the full URL path."
}
},
"required": [
"name",
"url",
"category"
]
},
"description": "The list of monitor assets tied to a monitor, which represents key links for users to take action on monitor alerts (for example, runbooks)."
},
"created": {
"type": "string",
"description": "Timestamp of the monitor creation."
},
"creator": {
"type": "object",
"description": "Object describing the creator of the shared element.",
"properties": {
"email": {
"type": "string",
"description": "Email of the creator."
},
"handle": {
"type": "string",
"description": "Handle of the creator."
},
"name": {
"type": "string",
"description": "Name of the creator."
}
}
},
"deleted": {
"type": "string",
"description": "Whether or not the monitor is deleted. (Always `null`)"
},
"draft_status": {
"type": "string",
"description": "Indicates whether the monitor is in a draft or published state. `draft`: The monitor appears as Draft and does not send notifications. `published`: The monitor is active and evaluates conditions and notify as configured. This field is in preview. The draft value is only available to customers with the feature enabled.",
"enum": [
"draft",
"published"
]
},
"id": {
"type": "integer",
"description": "ID of this monitor."
},
"matching_downtimes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"end": {
"type": "integer",
"format": "int64",
"description": "POSIX timestamp to end the downtime."
},
"id": {
"type": "integer",
"format": "int64",
"description": "The downtime ID."
},
"scope": {
"type": "array",
"items": {
"type": "string"
},
"description": "The scope(s) to which the downtime applies. Must be in `key:value` format. For example, `host:app2`. Provide multiple scopes as a comma-separated list like `env:dev,env:prod`. The resulting downtime applies to sources that matches ALL provided scopes (`env:dev` **AND** `env:prod`)."
},
"start": {
"type": "integer",
"format": "int64",
"description": "POSIX timestamp to start the downtime."
}
},
"required": [
"id"
]
},
"description": "A list of active v1 downtimes that match this monitor."
},
"message": {
"type": "string",
"description": "A message to include with notifications for this monitor."
},
"modified": {
"type": "string",
"description": "Last timestamp when the monitor was edited."
},
"multi": {
"type": "boolean",
"description": "Whether or not the monitor is broken down on different groups."
},
"name": {
"type": "string",
"description": "The monitor name."
},
"options": {
"type": "object",
"description": "List of options associated with your monitor.",
"properties": {
"aggregation": {
"type": "object",
"description": "Type of aggregation performed in the monitor query."
},
"device_ids": {
"type": "array",
"items": {
"type": "string",
"enum": [
"laptop_large",
"tablet",
"mobile_small",
"chrome.laptop_large",
"chrome.tablet",
"chrome.mobile_small",
"firefox.laptop_large",
"firefox.tablet",
"firefox.mobile_small"
]
},
"description": "IDs of the device the Synthetics monitor is running on."
},
"enable_logs_sample": {
"type": "boolean",
"description": "Whether or not to send a log sample when the log monitor triggers."
},
"enable_samples": {
"type": "boolean",
"description": "Whether or not to send a list of samples when the monitor triggers. This is only used by CI Test and Pipeline monitors."
},
"escalation_message": {
"type": "string",
"description": "We recommend using the [is_renotify](https://docs.datadoghq.com/monitors/notify/?tab=is_alert#renotify), block in the original message instead. A message to include with a re-notification. Supports the `@username` notification we allow elsewhere. Not applicable if `renotify_interval` is `None`."
},
"evaluation_delay": {
"type": "integer",
"description": "Time (in seconds) to delay evaluation, as a non-negative integer. For example, if the value is set to `300` (5min), the timeframe is set to `last_5m` and the time is 7:00, the monitor evaluates data from 6:50 to 6:55. This is useful for AWS CloudWatch and other backfilled metrics to ensure the monitor always has data during evaluation."
},
"group_retention_duration": {
"type": "string",
"description": "The time span after which groups with missing data are dropped from the monitor state. The minimum value is one hour, and the maximum value is 72 hours. Example values are: \"60m\", \"1h\", and \"2d\". This option is only available for APM Trace Analytics, Audit Trail, CI, Error Tracking, Event, Logs, and RUM monitors."
},
"groupby_simple_monitor": {
"type": "boolean",
"description": "Whether the log alert monitor triggers a single alert or multiple alerts when any group breaches a threshold. Use `notify_by` instead."
},
"include_tags": {
"type": "boolean",
"description": "A Boolean indicating whether notifications from this monitor automatically inserts its triggering tags into the title. **Examples** - If `True`, `[Triggered on {host:h1}] Monitor Title` - If `False`, `[Triggered] Monitor Title`"
},
"locked": {
"type": "boolean",
"description": "Whether or not the monitor is locked (only editable by creator and admins). Use `restricted_roles` instead."
},
"min_failure_duration": {
"type": "integer",
"description": "How long the test should be in failure before alerting (integer, number of seconds, max 7200)."
},
"min_location_failed": {
"type": "integer",
"description": "The minimum number of locations in failure at the same time during at least one moment in the `min_failure_duration` period (`min_location_failed` and `min_failure_duration` are part of the advanced alerting rules - integer, >= 1)."
},
"new_group_delay": {
"type": "integer",
"description": "Time (in seconds) to skip evaluations for new groups. For example, this option can be used to skip evaluations for new hosts while they initialize. Must be a non negative integer."
},
"new_host_delay": {
"type": "integer",
"description": "Time (in seconds) to allow a host to boot and applications to fully start before starting the evaluation of monitor results. Should be a non negative integer. Use new_group_delay instead."
},
"no_data_timeframe": {
"type": "integer",
"description": "The number of minutes before a monitor notifies after data stops reporting. Datadog recommends at least 2x the monitor timeframe for query alerts or 2 minutes for service checks. If omitted, 2x the evaluation timeframe is used for query alerts, and 24 hours is used for service checks."
},
"notification_preset_name": {
"type": "string",
"description": "Toggles the display of additional content sent in the monitor notification.",
"enum": [
"show_all",
"hide_query",
"hide_handles",
"hide_all",
"hide_query_and_handles",
"show_only_snapshot",
"hide_handles_and_footer"
]
},
"notify_audit": {
"type": "boolean",
"description": "A Boolean indicating whether tagged users is notified on changes to this monitor."
},
"notify_by": {
"type": "array",
"items": {
"type": "string"
},
"description": "Controls what granularity a monitor alerts on. Only available for monitors with groupings. For instance, a monitor grouped by `cluster`, `namespace`, and `pod` can be configured to only notify on each new `cluster` violating the alert conditions by setting `notify_by` to `[\"cluster\"]`. Tags mentioned in `notify_by` must be a subset of the grouping tags in the query. For example, a query grouped by `cluster` and `namespace` cannot notify on `region`. Setting `notify_by` to `[\"*\"]` configures the monitor to notify as a simple-alert."
},
"notify_no_data": {
"type": "boolean",
"description": "A Boolean indicating whether this monitor notifies when data stops reporting. Defaults to `false`."
},
"on_missing_data": {
"type": "string",
"description": "Controls how groups or monitors are treated if an evaluation does not return any data points. The default option results in different behavior depending on the monitor query type. For monitors using Count queries, an empty monitor evaluation is treated as 0 and is compared to the threshold conditions. For monitors using any query type other than Count, for example Gauge, Measure, or Rate, the monitor shows the last known status. This option is only available for APM Trace Analytics, Audit Trail, CI, Error Tracking, Event, Logs, and RUM monitors.",
"enum": [
"default",
"show_no_data",
"show_and_notify_no_data",
"resolve"
]
},
"renotify_interval": {
"type": "integer",
"description": "The number of minutes after the last notification before a monitor re-notifies on the current status. It only re-notifies if it’s not resolved."
},
"renotify_occurrences": {
"type": "integer",
"description": "The number of times re-notification messages should be sent on the current status at the provided re-notification interval."
},
"renotify_statuses": {
"type": "array",
"items": {
"type": "string",
"enum": [
"alert",
"warn",
"no data"
]
},
"description": "The types of monitor statuses for which re-notification messages are sent. Default: **null** if `renotify_interval` is **null**. If `renotify_interval` is set, defaults to renotify on `Alert` and `No Data`."
},
"require_full_window": {
"type": "boolean",
"description": "A Boolean indicating whether this monitor needs a full window of data before it’s evaluated. We highly recommend you set this to `false` for sparse metrics, otherwise some evaluations are skipped. Default is false. This setting only applies to metric monitors."
},
"scheduling_options": {
"type": "object",
"description": "Configuration options for scheduling."
},
"silenced": {
"type": "object",
"description": "Information about the downtime applied to the monitor. Only shows v1 downtimes."
},
"synthetics_check_id": {
"type": "string",
"description": "ID of the corresponding Synthetic check."
},
"threshold_windows": {
"type": "object",
"description": "Alerting time window options."
},
"thresholds": {
"type": "object",
"description": "List of the different monitor threshold available."
},
"timeout_h": {
"type": "integer",
"description": "The number of hours of the monitor not reporting data before it automatically resolves from a triggered state. The minimum allowed value is 0 hours. The maximum allowed value is 24 hours."
},
"variables": {
"type": "array",
"description": "List of requests that can be used in the monitor query. **This feature is currently in beta.**"
}
}
},
"overall_state": {
"type": "string",
"description": "The different states your monitor can be in.",
"enum": [
"Alert",
"Ignored",
"No Data",
"OK",
"Skipped",
"Unknown",
"Warn"
]
},
"priority": {
"type": "integer",
"description": "Integer from 1 (high) to 5 (low) indicating alert severity."
},
"query": {
"type": "string",
"description": "The monitor query."
},
"restricted_roles": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of unique role identifiers to define which roles are allowed to edit the monitor. The unique identifiers for all roles can be pulled from the [Roles API](https://docs.datadoghq.com/api/latest/roles/#list-roles) and are located in the `data.id` field. Editing a monitor includes any updates to the monitor configuration, monitor deletion, and muting of the monitor for any amount of time. You can use the [Restriction Policies API](https://docs.datadoghq.com/api/latest/restriction-policies/) to manage write authorization for individual monitors by teams and users, in addition to roles."
},
"state": {
"type": "object",
"description": "Wrapper object with the different monitor states.",
"properties": {
"groups": {
"type": "object",
"description": "Dictionary where the keys are groups (comma separated lists of tags) and the values are the list of groups your monitor is broken down on."
}
}
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Tags associated to your monitor."
},
"type": {
"type": "string",
"description": "The type of the monitor. For more information about `type`, see the [monitor options](https://docs.datadoghq.com/monitors/guide/monitor_api_options/) docs.",
"enum": [
"composite",
"event alert",
"log alert",
"metric alert",
"process alert",
"query alert",
"rum alert",
"service check",
"synthetics alert",
"trace-analytics alert",
"slo alert",
"event-v2 alert",
"audit alert",
"ci-pipelines alert",
"ci-tests alert",
"error-tracking alert",
"database-monitoring alert",
"network-performance alert",
"cost alert",
"data-quality alert",
"network-path alert"
]
}
},
"required": [
"PCID",
"monitor_id",
"query",
"type"
]
}