diff --git a/config/_default/menus/api.en.yaml b/config/_default/menus/api.en.yaml index 3361b2f656d..27bf378a1a4 100644 --- a/config/_default/menus/api.en.yaml +++ b/config/_default/menus/api.en.yaml @@ -3278,6 +3278,19 @@ menu: - TestExistingSecurityMonitoringRule unstable: [] order: 56 + - name: Restore a rule to a historical version + url: /api/latest/security-monitoring/restore-a-rule-to-a-historical-version/ + identifier: security-monitoring-restore-a-rule-to-a-historical-version + parent: security-monitoring + generated: true + params: + versions: + - v2 + operationids: + - RestoreSecurityMonitoringRule + unstable: + - v2 + order: 133 - name: Convert an existing rule from JSON to Terraform url: /api/latest/security-monitoring/convert-an-existing-rule-from-json-to-terraform/ identifier: security-monitoring-convert-an-existing-rule-from-json-to-terraform @@ -10931,6 +10944,36 @@ menu: unstable: - v2 order: 5 + - name: Data Observability + url: /api/latest/data-observability/ + identifier: data-observability + generated: true + - name: Run a data observability monitor + url: /api/latest/data-observability/run-a-data-observability-monitor/ + identifier: data-observability-run-a-data-observability-monitor + parent: data-observability + generated: true + params: + versions: + - v2 + operationids: + - RunDataObservabilityMonitor + unstable: + - v2 + order: 1 + - name: Get data observability monitor run status + url: /api/latest/data-observability/get-data-observability-monitor-run-status/ + identifier: data-observability-get-data-observability-monitor-run-status + parent: data-observability + generated: true + params: + versions: + - v2 + operationids: + - GetDataObservabilityMonitorRunStatus + unstable: + - v2 + order: 2 - name: Datasets url: /api/latest/datasets/ identifier: datasets diff --git a/content/en/api/latest/data-observability/_index.md b/content/en/api/latest/data-observability/_index.md new file mode 100644 index 00000000000..21f1e2fdf1d --- /dev/null +++ b/content/en/api/latest/data-observability/_index.md @@ -0,0 +1,3 @@ +--- +title: Data Observability +--- diff --git a/content/en/api/latest/data-observability/get-data-observability-monitor-run-status/index.md b/content/en/api/latest/data-observability/get-data-observability-monitor-run-status/index.md new file mode 100644 index 00000000000..22308da38ce --- /dev/null +++ b/content/en/api/latest/data-observability/get-data-observability-monitor-run-status/index.md @@ -0,0 +1,3 @@ +--- +title: Get data observability monitor run status +--- diff --git a/content/en/api/latest/data-observability/run-a-data-observability-monitor/index.md b/content/en/api/latest/data-observability/run-a-data-observability-monitor/index.md new file mode 100644 index 00000000000..c6d9efc151b --- /dev/null +++ b/content/en/api/latest/data-observability/run-a-data-observability-monitor/index.md @@ -0,0 +1,3 @@ +--- +title: Run a data observability monitor +--- diff --git a/content/en/api/latest/security-monitoring/restore-a-rule-to-a-historical-version/index.md b/content/en/api/latest/security-monitoring/restore-a-rule-to-a-historical-version/index.md new file mode 100644 index 00000000000..e6b1a304b1c --- /dev/null +++ b/content/en/api/latest/security-monitoring/restore-a-rule-to-a-historical-version/index.md @@ -0,0 +1,3 @@ +--- +title: Restore a rule to a historical version +--- diff --git a/content/en/api/v2/data-observability/_index.md b/content/en/api/v2/data-observability/_index.md new file mode 100644 index 00000000000..c2391f40dda --- /dev/null +++ b/content/en/api/v2/data-observability/_index.md @@ -0,0 +1,4 @@ +--- +title: Data Observability +headless: true +--- diff --git a/content/en/api/v2/data-observability/examples.json b/content/en/api/v2/data-observability/examples.json new file mode 100644 index 00000000000..6a41124dae8 --- /dev/null +++ b/content/en/api/v2/data-observability/examples.json @@ -0,0 +1,112 @@ +{ + "GetDataObservabilityMonitorRunStatus": { + "responses": { + "200": { + "json": { + "data": { + "attributes": { + "error_message": "run completed but produced no metric data", + "status": "pending" + }, + "id": "abc123def456", + "type": "monitor_run" + } + }, + "html": "
\n
\n
\n
\n

data [required]

\n
\n

object

\n

The data object for a data observability monitor run status response.

\n
\n
\n
\n
\n
\n

attributes [required]

\n
\n

object

\n

The attributes of a data observability monitor run status response.

\n
\n
\n
\n
\n
\n

error_message

\n
\n

string

\n

Error message describing why the monitor run failed. Only present when status is error.

\n
\n \n
\n
\n
\n
\n
\n

status [required]

\n
\n

enum

\n

The status of a data observability monitor run. \nAllowed enum values: pending,ok,warn,alert,error

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier of the monitor run.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The JSON:API resource type for a data observability monitor run. \nAllowed enum values: monitor_run

default: monitor_run

\n
\n \n
\n
\n
\n
" + }, + "404": { + "json": { + "errors": [ + { + "detail": "Missing required attribute in body", + "meta": {}, + "source": { + "header": "Authorization", + "parameter": "limit", + "pointer": "/data/attributes/title" + }, + "status": "400", + "title": "Bad Request" + } + ] + }, + "html": "
\n
\n
\n
\n

errors [required]

\n
\n

[object]

\n

A list of errors.

\n
\n
\n
\n
\n
\n

detail

\n
\n

string

\n

A human-readable explanation specific to this occurrence of the error.

\n
\n \n
\n
\n
\n
\n
\n

meta

\n
\n

object

\n

Non-standard meta-information about the error

\n
\n \n
\n
\n
\n
\n
\n

source

\n
\n

object

\n

References to the source of the error.

\n
\n
\n
\n
\n
\n

header

\n
\n

string

\n

A string indicating the name of a single request header which caused the error.

\n
\n \n
\n
\n
\n
\n
\n

parameter

\n
\n

string

\n

A string indicating which URI query parameter caused the error.

\n
\n \n
\n
\n
\n
\n
\n

pointer

\n
\n

string

\n

A JSON pointer to the value in the request document that caused the error.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

status

\n
\n

string

\n

Status code of the response.

\n
\n \n
\n
\n
\n
\n
\n

title

\n
\n

string

\n

Short human-readable summary of the error.

\n
\n \n
\n
\n
\n
" + }, + "429": { + "json": { + "errors": [ + "Bad Request" + ] + }, + "html": "
\n
\n
\n
\n

errors [required]

\n
\n

[string]

\n

A list of errors.

\n
\n \n
\n
" + } + }, + "request": { + "json_curl": {}, + "json": {}, + "html": "" + } + }, + "RunDataObservabilityMonitor": { + "responses": { + "200": { + "json": { + "data": { + "id": "abc123def456", + "type": "monitor_run" + } + }, + "html": "
\n
\n
\n
\n

data [required]

\n
\n

object

\n

The data object returned when a data observability monitor run is triggered.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier of the monitor run.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The JSON:API resource type for a data observability monitor run. \nAllowed enum values: monitor_run

default: monitor_run

\n
\n \n
\n
\n
\n
" + }, + "400": { + "json": { + "errors": [ + { + "detail": "Missing required attribute in body", + "meta": {}, + "source": { + "header": "Authorization", + "parameter": "limit", + "pointer": "/data/attributes/title" + }, + "status": "400", + "title": "Bad Request" + } + ] + }, + "html": "
\n
\n
\n
\n

errors [required]

\n
\n

[object]

\n

A list of errors.

\n
\n
\n
\n
\n
\n

detail

\n
\n

string

\n

A human-readable explanation specific to this occurrence of the error.

\n
\n \n
\n
\n
\n
\n
\n

meta

\n
\n

object

\n

Non-standard meta-information about the error

\n
\n \n
\n
\n
\n
\n
\n

source

\n
\n

object

\n

References to the source of the error.

\n
\n
\n
\n
\n
\n

header

\n
\n

string

\n

A string indicating the name of a single request header which caused the error.

\n
\n \n
\n
\n
\n
\n
\n

parameter

\n
\n

string

\n

A string indicating which URI query parameter caused the error.

\n
\n \n
\n
\n
\n
\n
\n

pointer

\n
\n

string

\n

A JSON pointer to the value in the request document that caused the error.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

status

\n
\n

string

\n

Status code of the response.

\n
\n \n
\n
\n
\n
\n
\n

title

\n
\n

string

\n

Short human-readable summary of the error.

\n
\n \n
\n
\n
\n
" + }, + "404": { + "json": { + "errors": [ + { + "detail": "Missing required attribute in body", + "meta": {}, + "source": { + "header": "Authorization", + "parameter": "limit", + "pointer": "/data/attributes/title" + }, + "status": "400", + "title": "Bad Request" + } + ] + }, + "html": "
\n
\n
\n
\n

errors [required]

\n
\n

[object]

\n

A list of errors.

\n
\n
\n
\n
\n
\n

detail

\n
\n

string

\n

A human-readable explanation specific to this occurrence of the error.

\n
\n \n
\n
\n
\n
\n
\n

meta

\n
\n

object

\n

Non-standard meta-information about the error

\n
\n \n
\n
\n
\n
\n
\n

source

\n
\n

object

\n

References to the source of the error.

\n
\n
\n
\n
\n
\n

header

\n
\n

string

\n

A string indicating the name of a single request header which caused the error.

\n
\n \n
\n
\n
\n
\n
\n

parameter

\n
\n

string

\n

A string indicating which URI query parameter caused the error.

\n
\n \n
\n
\n
\n
\n
\n

pointer

\n
\n

string

\n

A JSON pointer to the value in the request document that caused the error.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

status

\n
\n

string

\n

Status code of the response.

\n
\n \n
\n
\n
\n
\n
\n

title

\n
\n

string

\n

Short human-readable summary of the error.

\n
\n \n
\n
\n
\n
" + }, + "429": { + "json": { + "errors": [ + "Bad Request" + ] + }, + "html": "
\n
\n
\n
\n

errors [required]

\n
\n

[string]

\n

A list of errors.

\n
\n \n
\n
" + } + }, + "request": { + "json_curl": {}, + "json": {}, + "html": "" + } + } +} \ No newline at end of file diff --git a/content/en/api/v2/security-monitoring/examples.json b/content/en/api/v2/security-monitoring/examples.json index ea69d7f5c88..066c4521d19 100644 --- a/content/en/api/v2/security-monitoring/examples.json +++ b/content/en/api/v2/security-monitoring/examples.json @@ -9470,6 +9470,223 @@ "html": "" } }, + "RestoreSecurityMonitoringRule": { + "responses": { + "200": { + "json": { + "calculatedFields": [ + { + "expression": "@request_end_timestamp - @request_start_timestamp", + "name": "response_time" + } + ], + "cases": [ + { + "actions": [ + { + "options": { + "duration": 0, + "flaggedIPType": "FLAGGED", + "userBehaviorName": "string" + }, + "type": "string" + } + ], + "condition": "string", + "customStatus": "critical", + "name": "string", + "notifications": [], + "status": "critical" + } + ], + "complianceSignalOptions": { + "defaultActivationStatus": false, + "defaultGroupByFields": [], + "userActivationStatus": false, + "userGroupByFields": [] + }, + "createdAt": "integer", + "creationAuthorId": "integer", + "customMessage": "string", + "customName": "string", + "defaultTags": [ + "security:attacks" + ], + "deprecationDate": "integer", + "filters": [ + { + "action": "string", + "query": "string" + } + ], + "groupSignalsBy": [ + "service" + ], + "hasExtendedTitle": false, + "id": "string", + "isDefault": false, + "isDeleted": false, + "isEnabled": false, + "message": "string", + "name": "string", + "options": { + "anomalyDetectionOptions": { + "bucketDuration": 300, + "detectionTolerance": 5, + "instantaneousBaseline": false, + "learningDuration": "integer", + "learningPeriodBaseline": "integer" + }, + "complianceRuleOptions": { + "complexRule": false, + "regoRule": { + "policy": "package datadog\n\nimport data.datadog.output as dd_output\nimport future.keywords.contains\nimport future.keywords.if\nimport future.keywords.in\n\neval(resource) = \"skip\" if {\n # Logic that evaluates to true if the resource should be skipped\n true\n} else = \"pass\" {\n # Logic that evaluates to true if the resource is compliant\n true\n} else = \"fail\" {\n # Logic that evaluates to true if the resource is not compliant\n true\n}\n\n# This part remains unchanged for all rules\nresults contains result if {\n some resource in input.resources[input.main_resource_type]\n result := dd_output.format(resource, eval(resource))\n}", + "resourceTypes": [ + "gcp_iam_service_account", + "gcp_iam_policy" + ] + }, + "resourceType": "aws_acm" + }, + "decreaseCriticalityBasedOnEnv": false, + "detectionMethod": "string", + "evaluationWindow": "integer", + "hardcodedEvaluatorType": "string", + "impossibleTravelOptions": { + "baselineUserLocations": true, + "baselineUserLocationsDuration": "integer" + }, + "keepAlive": "integer", + "maxSignalDuration": "integer", + "newValueOptions": { + "forgetAfter": "integer", + "instantaneousBaseline": false, + "learningDuration": "integer", + "learningMethod": "string", + "learningThreshold": "integer" + }, + "sequenceDetectionOptions": { + "stepTransitions": [ + { + "child": "string", + "evaluationWindow": "integer", + "parent": "string" + } + ], + "steps": [ + { + "condition": "string", + "evaluationWindow": "integer", + "name": "string" + } + ] + }, + "thirdPartyRuleOptions": { + "defaultNotifications": [], + "defaultStatus": "critical", + "rootQueries": [ + { + "groupByFields": [], + "query": "source:cloudtrail" + } + ], + "signalTitleTemplate": "string" + } + }, + "queries": [ + { + "aggregation": "string", + "customQueryExtension": "a > 3", + "dataSource": "logs", + "distinctFields": [], + "groupByFields": [], + "hasOptionalGroupByFields": false, + "index": "string", + "indexes": [], + "metric": "string", + "metrics": [], + "name": "string", + "query": "a > 3" + } + ], + "referenceTables": [ + { + "checkPresence": false, + "columnName": "string", + "logFieldPath": "string", + "ruleQueryName": "string", + "tableName": "string" + } + ], + "schedulingOptions": { + "rrule": "FREQ=HOURLY;INTERVAL=1;", + "start": "2025-07-14T12:00:00", + "timezone": "America/New_York" + }, + "tags": [], + "thirdPartyCases": [ + { + "customStatus": "critical", + "name": "string", + "notifications": [], + "query": "string", + "status": "critical" + } + ], + "type": "string", + "updateAuthorId": "integer", + "updatedAt": "integer", + "version": "integer" + }, + "html": "
\n
\n
\n
\n

Option 1

\n
\n

object

\n

Rule.

\n
\n
\n
\n
\n
\n

calculatedFields

\n
\n

[object]

\n

Calculated fields. Only allowed for scheduled rules - in other words, when schedulingOptions is also defined.

\n
\n
\n
\n
\n
\n

expression [required]

\n
\n

string

\n

Expression.

\n
\n \n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

Field name.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

cases

\n
\n

[object]

\n

Cases for generating signals.

\n
\n
\n
\n
\n
\n

actions

\n
\n

[object]

\n

Action to perform for each rule case.

\n
\n
\n
\n
\n
\n

options

\n
\n

object

\n

Options for the rule action

\n
\n
\n
\n
\n
\n

duration

\n
\n

int64

\n

Duration of the action in seconds. 0 indicates no expiration.

\n
\n \n
\n
\n
\n
\n
\n

flaggedIPType

\n
\n

enum

\n

Used with the case action of type 'flag_ip'. The value specified in this field is applied as a flag to the IP addresses. \nAllowed enum values: SUSPICIOUS,FLAGGED

\n
\n \n
\n
\n
\n
\n
\n

userBehaviorName

\n
\n

string

\n

Used with the case action of type 'user_behavior'. The value specified in this field is applied as a risk tag to all users affected by the rule.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

type

\n
\n

enum

\n

The action type. \nAllowed enum values: block_ip,block_user,user_behavior,flag_ip

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

condition

\n
\n

string

\n

A rule case contains logical operations (>,>=, &&, ||) to determine if a signal should be generated\nbased on the event counts in the previously defined queries.

\n
\n \n
\n
\n
\n
\n
\n

customStatus

\n
\n

enum

\n

Severity of the Security Signal. \nAllowed enum values: info,low,medium,high,critical

\n
\n \n
\n
\n
\n
\n
\n

name

\n
\n

string

\n

Name of the case.

\n
\n \n
\n
\n
\n
\n
\n

notifications

\n
\n

[string]

\n

Notification targets for each rule case.

\n
\n \n
\n
\n
\n
\n
\n

status

\n
\n

enum

\n

Severity of the Security Signal. \nAllowed enum values: info,low,medium,high,critical

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

complianceSignalOptions

\n
\n

object

\n

How to generate compliance signals. Useful for cloud_configuration rules only.

\n
\n
\n
\n
\n
\n

defaultActivationStatus

\n
\n

boolean

\n

The default activation status.

\n
\n \n
\n
\n
\n
\n
\n

defaultGroupByFields

\n
\n

[string]

\n

The default group by fields.

\n
\n \n
\n
\n
\n
\n
\n

userActivationStatus

\n
\n

boolean

\n

Whether signals will be sent.

\n
\n \n
\n
\n
\n
\n
\n

userGroupByFields

\n
\n

[string]

\n

Fields to use to group findings by when sending signals.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

createdAt

\n
\n

int64

\n

When the rule was created, timestamp in milliseconds.

\n
\n \n
\n
\n
\n
\n
\n

creationAuthorId

\n
\n

int64

\n

User ID of the user who created the rule.

\n
\n \n
\n
\n
\n
\n
\n

customMessage

\n
\n

string

\n

Custom/Overridden message for generated signals (used in case of Default rule update).

\n
\n \n
\n
\n
\n
\n
\n

customName

\n
\n

string

\n

Custom/Overridden name of the rule (used in case of Default rule update).

\n
\n \n
\n
\n
\n
\n
\n

defaultTags

\n
\n

[string]

\n

Default Tags for default rules (included in tags)

\n
\n \n
\n
\n
\n
\n
\n

deprecationDate

\n
\n

int64

\n

When the rule will be deprecated, timestamp in milliseconds.

\n
\n \n
\n
\n
\n
\n
\n

filters

\n
\n

[object]

\n

Additional queries to filter matched events before they are processed. This field is deprecated for log detection, signal correlation, and workload security rules.

\n
\n
\n
\n
\n
\n

action

\n
\n

enum

\n

The type of filtering action. \nAllowed enum values: require,suppress

\n
\n \n
\n
\n
\n
\n
\n

query

\n
\n

string

\n

Query for selecting logs to apply the filtering action.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

groupSignalsBy

\n
\n

[string]

\n

Additional grouping to perform on top of the existing groups in the query section. Must be a subset of the existing groups.

\n
\n \n
\n
\n
\n
\n
\n

hasExtendedTitle

\n
\n

boolean

\n

Whether the notifications include the triggering group-by values in their title.

\n
\n \n
\n
\n
\n
\n
\n

id

\n
\n

string

\n

The ID of the rule.

\n
\n \n
\n
\n
\n
\n
\n

isDefault

\n
\n

boolean

\n

Whether the rule is included by default.

\n
\n \n
\n
\n
\n
\n
\n

isDeleted

\n
\n

boolean

\n

Whether the rule has been deleted.

\n
\n \n
\n
\n
\n
\n
\n

isEnabled

\n
\n

boolean

\n

Whether the rule is enabled.

\n
\n \n
\n
\n
\n
\n
\n

message

\n
\n

string

\n

Message for generated signals.

\n
\n \n
\n
\n
\n
\n
\n

name

\n
\n

string

\n

The name of the rule.

\n
\n \n
\n
\n
\n
\n
\n

options

\n
\n

object

\n

Options.

\n
\n
\n
\n
\n
\n

anomalyDetectionOptions

\n
\n

object

\n

Options on anomaly detection method.

\n
\n
\n
\n
\n
\n

bucketDuration

\n
\n

enum

\n

Duration in seconds of the time buckets used to aggregate events matched by the rule.\nMust be greater than or equal to 300. \nAllowed enum values: 300,600,900,1800,3600,10800

\n
\n \n
\n
\n
\n
\n
\n

detectionTolerance

\n
\n

enum

\n

An optional parameter that sets how permissive anomaly detection is.\nHigher values require higher deviations before triggering a signal. \nAllowed enum values: 1,2,3,4,5

\n
\n \n
\n
\n
\n
\n
\n

instantaneousBaseline

\n
\n

boolean

\n

When set to true, Datadog uses previous values that fall within the defined learning window to construct the baseline, enabling the system to establish an accurate baseline more rapidly rather than relying solely on gradual learning over time.

\n
\n \n
\n
\n
\n
\n
\n

learningDuration

\n
\n

enum

\n

Learning duration in hours. Anomaly detection waits for at least this amount of historical data before it starts evaluating. \nAllowed enum values: 1,6,12,24,48,168,336

\n
\n \n
\n
\n
\n
\n
\n

learningPeriodBaseline

\n
\n

int64

\n

An optional override baseline to apply while the rule is in the learning period. Must be greater than or equal to 0.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

complianceRuleOptions

\n
\n

object

\n

Options for cloud_configuration rules.\nFields resourceType and regoRule are mandatory when managing custom cloud_configuration rules.

\n
\n
\n
\n
\n
\n

complexRule

\n
\n

boolean

\n

Whether the rule is a complex one.\nMust be set to true if regoRule.resourceTypes contains more than one item. Defaults to false.

\n
\n \n
\n
\n
\n
\n
\n

regoRule

\n
\n

object

\n

Rule details.

\n
\n
\n
\n
\n
\n

policy [required]

\n
\n

string

\n \n
\n \n
\n
\n
\n
\n
\n

resourceTypes [required]

\n
\n

[string]

\n

List of resource types that will be evaluated upon. Must have at least one element.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

resourceType

\n
\n

string

\n

Main resource type to be checked by the rule. It should be specified again in regoRule.resourceTypes.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

decreaseCriticalityBasedOnEnv

\n
\n

boolean

\n

If true, signals in non-production environments have a lower severity than what is defined by the rule case, which can reduce signal noise.\nThe severity is decreased by one level: CRITICAL in production becomes HIGH in non-production, HIGH becomes MEDIUM and so on. INFO remains INFO.\nThe decrement is applied when the environment tag of the signal starts with staging, test or dev.

\n
\n \n
\n
\n
\n
\n
\n

detectionMethod

\n
\n

enum

\n

The detection method. \nAllowed enum values: threshold,new_value,anomaly_detection,impossible_travel,hardcoded,third_party,anomaly_threshold,sequence_detection

\n
\n \n
\n
\n
\n
\n
\n

evaluationWindow

\n
\n

enum

\n

A time window is specified to match when at least one of the cases matches true. This is a sliding window\nand evaluates in real time. For third party detection method, this field is not used. \nAllowed enum values: 0,60,300,600,900,1800,3600,7200,10800,21600

Show 2 more,43200,86400

\n
\n \n
\n
\n
\n
\n
\n

hardcodedEvaluatorType

\n
\n

enum

\n

Hardcoded evaluator type. \nAllowed enum values: log4shell

\n
\n \n
\n
\n
\n
\n
\n

impossibleTravelOptions

\n
\n

object

\n

Options on impossible travel detection method.

\n
\n
\n
\n
\n
\n

baselineUserLocations

\n
\n

boolean

\n

If true, signals are suppressed for the first 24 hours. In that time, Datadog learns the user's regular\naccess locations. This can be helpful to reduce noise and infer VPN usage or credentialed API access.

\n
\n \n
\n
\n
\n
\n
\n

baselineUserLocationsDuration

\n
\n

int32

\n

The duration in days during which Datadog learns the user's regular access locations. After this period, signals are generated for accesses from unknown locations.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

keepAlive

\n
\n

enum

\n

Once a signal is generated, the signal will remain "open" if a case is matched at least once within\nthis keep alive window. For third party detection method, this field is not used. \nAllowed enum values: 0,60,300,600,900,1800,3600,7200,10800,21600

Show 2 more,43200,86400

\n
\n \n
\n
\n
\n
\n
\n

maxSignalDuration

\n
\n

enum

\n

A signal will "close" regardless of the query being matched once the time exceeds the maximum duration.\nThis time is calculated from the first seen timestamp. \nAllowed enum values: 0,60,300,600,900,1800,3600,7200,10800,21600

Show 2 more,43200,86400

\n
\n \n
\n
\n
\n
\n
\n

newValueOptions

\n
\n

object

\n

Options on new value detection method.

\n
\n
\n
\n
\n
\n

forgetAfter

\n
\n

int32

\n

The duration in days after which a learned value is forgotten.

\n
\n \n
\n
\n
\n
\n
\n

instantaneousBaseline

\n
\n

boolean

\n

When set to true, Datadog uses previous values that fall within the defined learning window to construct the baseline, enabling the system to establish an accurate baseline more rapidly rather than relying solely on gradual learning over time.

\n
\n \n
\n
\n
\n
\n
\n

learningDuration

\n
\n

int32

\n

The duration in days during which values are learned, and after which signals will be generated for values that\nweren't learned. If set to 0, a signal will be generated for all new values after the first value is learned.

\n
\n \n
\n
\n
\n
\n
\n

learningMethod

\n
\n

enum

\n

The learning method used to determine when signals should be generated for values that weren't learned. \nAllowed enum values: duration,threshold

default: duration

\n
\n \n
\n
\n
\n
\n
\n

learningThreshold

\n
\n

enum

\n

A number of occurrences after which signals will be generated for values that weren't learned. \nAllowed enum values: 0,1

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

sequenceDetectionOptions

\n
\n

object

\n

Options on sequence detection method.

\n
\n
\n
\n
\n
\n

stepTransitions

\n
\n

[object]

\n

Transitions defining the allowed order of steps and their evaluation windows.

\n
\n
\n
\n
\n
\n

child

\n
\n

string

\n

Name of the child step.

\n
\n \n
\n
\n
\n
\n
\n

evaluationWindow

\n
\n

enum

\n

A time window is specified to match when at least one of the cases matches true. This is a sliding window\nand evaluates in real time. For third party detection method, this field is not used. \nAllowed enum values: 0,60,300,600,900,1800,3600,7200,10800,21600

Show 2 more,43200,86400

\n
\n \n
\n
\n
\n
\n
\n

parent

\n
\n

string

\n

Name of the parent step.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

steps

\n
\n

[object]

\n

Steps that define the conditions to be matched in sequence.

\n
\n
\n
\n
\n
\n

condition

\n
\n

string

\n

Condition referencing rule queries (e.g., a > 0).

\n
\n \n
\n
\n
\n
\n
\n

evaluationWindow

\n
\n

enum

\n

A time window is specified to match when at least one of the cases matches true. This is a sliding window\nand evaluates in real time. For third party detection method, this field is not used. \nAllowed enum values: 0,60,300,600,900,1800,3600,7200,10800,21600

Show 2 more,43200,86400

\n
\n \n
\n
\n
\n
\n
\n

name

\n
\n

string

\n

Unique name identifying the step.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

thirdPartyRuleOptions

\n
\n

object

\n

Options on third party detection method.

\n
\n
\n
\n
\n
\n

defaultNotifications

\n
\n

[string]

\n

Notification targets for the logs that do not correspond to any of the cases.

\n
\n \n
\n
\n
\n
\n
\n

defaultStatus

\n
\n

enum

\n

Severity of the Security Signal. \nAllowed enum values: info,low,medium,high,critical

\n
\n \n
\n
\n
\n
\n
\n

rootQueries

\n
\n

[object]

\n

Queries to be combined with third party case queries. Each of them can have different group by fields, to aggregate differently based on the type of alert.

\n
\n
\n
\n
\n
\n

groupByFields

\n
\n

[string]

\n

Fields to group by.

\n
\n \n
\n
\n
\n
\n
\n

query

\n
\n

string

\n

Query to run on logs.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

signalTitleTemplate

\n
\n

string

\n

A template for the signal title; if omitted, the title is generated based on the case name.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

queries

\n
\n

[object]

\n

Queries for selecting logs which are part of the rule.

\n
\n
\n
\n
\n
\n

aggregation

\n
\n

enum

\n

The aggregation type. \nAllowed enum values: count,cardinality,sum,max,new_value,geo_data,event_count,none

\n
\n \n
\n
\n
\n
\n
\n

customQueryExtension

\n
\n

string

\n

Query extension to append to the logs query.

\n
\n \n
\n
\n
\n
\n
\n

dataSource

\n
\n

enum

\n

Source of events, either logs, audit trail, security signals, or Datadog events. app_sec_spans is deprecated in favor of spans. \nAllowed enum values: logs,audit,app_sec_spans,spans,security_runtime,network,events,security_signals

default: logs

\n
\n \n
\n
\n
\n
\n
\n

distinctFields

\n
\n

[string]

\n

Field for which the cardinality is measured. Sent as an array.

\n
\n \n
\n
\n
\n
\n
\n

groupByFields

\n
\n

[string]

\n

Fields to group by.

\n
\n \n
\n
\n
\n
\n
\n

hasOptionalGroupByFields

\n
\n

boolean

\n

When false, events without a group-by value are ignored by the rule. When true, events with missing group-by fields are processed with N/A, replacing the missing values.

\n
\n \n
\n
\n
\n
\n
\n

index

\n
\n

string

\n

This field is currently unstable and might be removed in a minor version upgrade.\nThe index to run the query on, if the dataSource is logs. Only used for scheduled rules - in other words, when the schedulingOptions field is present in the rule payload.

\n
\n \n
\n
\n
\n
\n
\n

indexes

\n
\n

[string]

\n

List of indexes to query when the dataSource is logs. Only used for scheduled rules, such as when the schedulingOptions field is present in the rule payload.

\n
\n \n
\n
\n
\n
\n
\n

metric

\n
\n

string

\n

DEPRECATED: (Deprecated) The target field to aggregate over when using the sum or max\naggregations. metrics field should be used instead.

\n
\n \n
\n
\n
\n
\n
\n

metrics

\n
\n

[string]

\n

Group of target fields to aggregate over when using the sum, max, geo data, or new value aggregations. The sum, max, and geo data aggregations only accept one value in this list, whereas the new value aggregation accepts up to five values.

\n
\n \n
\n
\n
\n
\n
\n

name

\n
\n

string

\n

Name of the query.

\n
\n \n
\n
\n
\n
\n
\n

query

\n
\n

string

\n

Query to run on logs.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

referenceTables

\n
\n

[object]

\n

Reference tables for the rule.

\n
\n
\n
\n
\n
\n

checkPresence

\n
\n

boolean

\n

Whether to include or exclude the matched values.

\n
\n \n
\n
\n
\n
\n
\n

columnName

\n
\n

string

\n

The name of the column in the reference table.

\n
\n \n
\n
\n
\n
\n
\n

logFieldPath

\n
\n

string

\n

The field in the log to match against the reference table.

\n
\n \n
\n
\n
\n
\n
\n

ruleQueryName

\n
\n

string

\n

The name of the query to apply the reference table to.

\n
\n \n
\n
\n
\n
\n
\n

tableName

\n
\n

string

\n

The name of the reference table.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

schedulingOptions

\n
\n

object

\n

Options for scheduled rules. When this field is present, the rule runs based on the schedule. When absent, it runs real-time on ingested logs.

\n
\n
\n
\n
\n
\n

rrule

\n
\n

string

\n

Schedule for the rule queries, written in RRULE syntax. See RFC for syntax reference.

\n
\n \n
\n
\n
\n
\n
\n

start

\n
\n

string

\n

Start date for the schedule, in ISO 8601 format without timezone.

\n
\n \n
\n
\n
\n
\n
\n

timezone

\n
\n

string

\n

Time zone of the start date, in the tz database format.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

tags

\n
\n

[string]

\n

Tags for generated signals.

\n
\n \n
\n
\n
\n
\n
\n

thirdPartyCases

\n
\n

[object]

\n

Cases for generating signals from third-party rules. Only available for third-party rules.

\n
\n
\n
\n
\n
\n

customStatus

\n
\n

enum

\n

Severity of the Security Signal. \nAllowed enum values: info,low,medium,high,critical

\n
\n \n
\n
\n
\n
\n
\n

name

\n
\n

string

\n

Name of the case.

\n
\n \n
\n
\n
\n
\n
\n

notifications

\n
\n

[string]

\n

Notification targets for each rule case.

\n
\n \n
\n
\n
\n
\n
\n

query

\n
\n

string

\n

A query to map a third party event to this case.

\n
\n \n
\n
\n
\n
\n
\n

status

\n
\n

enum

\n

Severity of the Security Signal. \nAllowed enum values: info,low,medium,high,critical

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

type

\n
\n

enum

\n

The rule type. \nAllowed enum values: log_detection,infrastructure_configuration,workload_security,cloud_configuration,application_security,api_security,workload_activity

\n
\n \n
\n
\n
\n
\n
\n

updateAuthorId

\n
\n

int64

\n

User ID of the user who updated the rule.

\n
\n \n
\n
\n
\n
\n
\n

updatedAt

\n
\n

int64

\n

The date the rule was last updated, in milliseconds.

\n
\n \n
\n
\n
\n
\n
\n

version

\n
\n

int64

\n

The version of the rule.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 2

\n
\n

object

\n

Rule.

\n
\n
\n
\n
\n
\n

cases

\n
\n

[object]

\n

Cases for generating signals.

\n
\n
\n
\n
\n
\n

actions

\n
\n

[object]

\n

Action to perform for each rule case.

\n
\n
\n
\n
\n
\n

options

\n
\n

object

\n

Options for the rule action

\n
\n
\n
\n
\n
\n

duration

\n
\n

int64

\n

Duration of the action in seconds. 0 indicates no expiration.

\n
\n \n
\n
\n
\n
\n
\n

flaggedIPType

\n
\n

enum

\n

Used with the case action of type 'flag_ip'. The value specified in this field is applied as a flag to the IP addresses. \nAllowed enum values: SUSPICIOUS,FLAGGED

\n
\n \n
\n
\n
\n
\n
\n

userBehaviorName

\n
\n

string

\n

Used with the case action of type 'user_behavior'. The value specified in this field is applied as a risk tag to all users affected by the rule.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

type

\n
\n

enum

\n

The action type. \nAllowed enum values: block_ip,block_user,user_behavior,flag_ip

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

condition

\n
\n

string

\n

A rule case contains logical operations (>,>=, &&, ||) to determine if a signal should be generated\nbased on the event counts in the previously defined queries.

\n
\n \n
\n
\n
\n
\n
\n

customStatus

\n
\n

enum

\n

Severity of the Security Signal. \nAllowed enum values: info,low,medium,high,critical

\n
\n \n
\n
\n
\n
\n
\n

name

\n
\n

string

\n

Name of the case.

\n
\n \n
\n
\n
\n
\n
\n

notifications

\n
\n

[string]

\n

Notification targets for each rule case.

\n
\n \n
\n
\n
\n
\n
\n

status

\n
\n

enum

\n

Severity of the Security Signal. \nAllowed enum values: info,low,medium,high,critical

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

createdAt

\n
\n

int64

\n

When the rule was created, timestamp in milliseconds.

\n
\n \n
\n
\n
\n
\n
\n

creationAuthorId

\n
\n

int64

\n

User ID of the user who created the rule.

\n
\n \n
\n
\n
\n
\n
\n

customMessage

\n
\n

string

\n

Custom/Overridden message for generated signals (used in case of Default rule update).

\n
\n \n
\n
\n
\n
\n
\n

customName

\n
\n

string

\n

Custom/Overridden name of the rule (used in case of Default rule update).

\n
\n \n
\n
\n
\n
\n
\n

deprecationDate

\n
\n

int64

\n

When the rule will be deprecated, timestamp in milliseconds.

\n
\n \n
\n
\n
\n
\n
\n

filters

\n
\n

[object]

\n

Additional queries to filter matched events before they are processed. This field is deprecated for log detection, signal correlation, and workload security rules.

\n
\n
\n
\n
\n
\n

action

\n
\n

enum

\n

The type of filtering action. \nAllowed enum values: require,suppress

\n
\n \n
\n
\n
\n
\n
\n

query

\n
\n

string

\n

Query for selecting logs to apply the filtering action.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

hasExtendedTitle

\n
\n

boolean

\n

Whether the notifications include the triggering group-by values in their title.

\n
\n \n
\n
\n
\n
\n
\n

id

\n
\n

string

\n

The ID of the rule.

\n
\n \n
\n
\n
\n
\n
\n

isDefault

\n
\n

boolean

\n

Whether the rule is included by default.

\n
\n \n
\n
\n
\n
\n
\n

isDeleted

\n
\n

boolean

\n

Whether the rule has been deleted.

\n
\n \n
\n
\n
\n
\n
\n

isEnabled

\n
\n

boolean

\n

Whether the rule is enabled.

\n
\n \n
\n
\n
\n
\n
\n

message

\n
\n

string

\n

Message for generated signals.

\n
\n \n
\n
\n
\n
\n
\n

name

\n
\n

string

\n

The name of the rule.

\n
\n \n
\n
\n
\n
\n
\n

options

\n
\n

object

\n

Options.

\n
\n
\n
\n
\n
\n

anomalyDetectionOptions

\n
\n

object

\n

Options on anomaly detection method.

\n
\n
\n
\n
\n
\n

bucketDuration

\n
\n

enum

\n

Duration in seconds of the time buckets used to aggregate events matched by the rule.\nMust be greater than or equal to 300. \nAllowed enum values: 300,600,900,1800,3600,10800

\n
\n \n
\n
\n
\n
\n
\n

detectionTolerance

\n
\n

enum

\n

An optional parameter that sets how permissive anomaly detection is.\nHigher values require higher deviations before triggering a signal. \nAllowed enum values: 1,2,3,4,5

\n
\n \n
\n
\n
\n
\n
\n

instantaneousBaseline

\n
\n

boolean

\n

When set to true, Datadog uses previous values that fall within the defined learning window to construct the baseline, enabling the system to establish an accurate baseline more rapidly rather than relying solely on gradual learning over time.

\n
\n \n
\n
\n
\n
\n
\n

learningDuration

\n
\n

enum

\n

Learning duration in hours. Anomaly detection waits for at least this amount of historical data before it starts evaluating. \nAllowed enum values: 1,6,12,24,48,168,336

\n
\n \n
\n
\n
\n
\n
\n

learningPeriodBaseline

\n
\n

int64

\n

An optional override baseline to apply while the rule is in the learning period. Must be greater than or equal to 0.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

complianceRuleOptions

\n
\n

object

\n

Options for cloud_configuration rules.\nFields resourceType and regoRule are mandatory when managing custom cloud_configuration rules.

\n
\n
\n
\n
\n
\n

complexRule

\n
\n

boolean

\n

Whether the rule is a complex one.\nMust be set to true if regoRule.resourceTypes contains more than one item. Defaults to false.

\n
\n \n
\n
\n
\n
\n
\n

regoRule

\n
\n

object

\n

Rule details.

\n
\n
\n
\n
\n
\n

policy [required]

\n
\n

string

\n \n
\n \n
\n
\n
\n
\n
\n

resourceTypes [required]

\n
\n

[string]

\n

List of resource types that will be evaluated upon. Must have at least one element.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

resourceType

\n
\n

string

\n

Main resource type to be checked by the rule. It should be specified again in regoRule.resourceTypes.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

decreaseCriticalityBasedOnEnv

\n
\n

boolean

\n

If true, signals in non-production environments have a lower severity than what is defined by the rule case, which can reduce signal noise.\nThe severity is decreased by one level: CRITICAL in production becomes HIGH in non-production, HIGH becomes MEDIUM and so on. INFO remains INFO.\nThe decrement is applied when the environment tag of the signal starts with staging, test or dev.

\n
\n \n
\n
\n
\n
\n
\n

detectionMethod

\n
\n

enum

\n

The detection method. \nAllowed enum values: threshold,new_value,anomaly_detection,impossible_travel,hardcoded,third_party,anomaly_threshold,sequence_detection

\n
\n \n
\n
\n
\n
\n
\n

evaluationWindow

\n
\n

enum

\n

A time window is specified to match when at least one of the cases matches true. This is a sliding window\nand evaluates in real time. For third party detection method, this field is not used. \nAllowed enum values: 0,60,300,600,900,1800,3600,7200,10800,21600

Show 2 more,43200,86400

\n
\n \n
\n
\n
\n
\n
\n

hardcodedEvaluatorType

\n
\n

enum

\n

Hardcoded evaluator type. \nAllowed enum values: log4shell

\n
\n \n
\n
\n
\n
\n
\n

impossibleTravelOptions

\n
\n

object

\n

Options on impossible travel detection method.

\n
\n
\n
\n
\n
\n

baselineUserLocations

\n
\n

boolean

\n

If true, signals are suppressed for the first 24 hours. In that time, Datadog learns the user's regular\naccess locations. This can be helpful to reduce noise and infer VPN usage or credentialed API access.

\n
\n \n
\n
\n
\n
\n
\n

baselineUserLocationsDuration

\n
\n

int32

\n

The duration in days during which Datadog learns the user's regular access locations. After this period, signals are generated for accesses from unknown locations.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

keepAlive

\n
\n

enum

\n

Once a signal is generated, the signal will remain "open" if a case is matched at least once within\nthis keep alive window. For third party detection method, this field is not used. \nAllowed enum values: 0,60,300,600,900,1800,3600,7200,10800,21600

Show 2 more,43200,86400

\n
\n \n
\n
\n
\n
\n
\n

maxSignalDuration

\n
\n

enum

\n

A signal will "close" regardless of the query being matched once the time exceeds the maximum duration.\nThis time is calculated from the first seen timestamp. \nAllowed enum values: 0,60,300,600,900,1800,3600,7200,10800,21600

Show 2 more,43200,86400

\n
\n \n
\n
\n
\n
\n
\n

newValueOptions

\n
\n

object

\n

Options on new value detection method.

\n
\n
\n
\n
\n
\n

forgetAfter

\n
\n

int32

\n

The duration in days after which a learned value is forgotten.

\n
\n \n
\n
\n
\n
\n
\n

instantaneousBaseline

\n
\n

boolean

\n

When set to true, Datadog uses previous values that fall within the defined learning window to construct the baseline, enabling the system to establish an accurate baseline more rapidly rather than relying solely on gradual learning over time.

\n
\n \n
\n
\n
\n
\n
\n

learningDuration

\n
\n

int32

\n

The duration in days during which values are learned, and after which signals will be generated for values that\nweren't learned. If set to 0, a signal will be generated for all new values after the first value is learned.

\n
\n \n
\n
\n
\n
\n
\n

learningMethod

\n
\n

enum

\n

The learning method used to determine when signals should be generated for values that weren't learned. \nAllowed enum values: duration,threshold

default: duration

\n
\n \n
\n
\n
\n
\n
\n

learningThreshold

\n
\n

enum

\n

A number of occurrences after which signals will be generated for values that weren't learned. \nAllowed enum values: 0,1

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

sequenceDetectionOptions

\n
\n

object

\n

Options on sequence detection method.

\n
\n
\n
\n
\n
\n

stepTransitions

\n
\n

[object]

\n

Transitions defining the allowed order of steps and their evaluation windows.

\n
\n
\n
\n
\n
\n

child

\n
\n

string

\n

Name of the child step.

\n
\n \n
\n
\n
\n
\n
\n

evaluationWindow

\n
\n

enum

\n

A time window is specified to match when at least one of the cases matches true. This is a sliding window\nand evaluates in real time. For third party detection method, this field is not used. \nAllowed enum values: 0,60,300,600,900,1800,3600,7200,10800,21600

Show 2 more,43200,86400

\n
\n \n
\n
\n
\n
\n
\n

parent

\n
\n

string

\n

Name of the parent step.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

steps

\n
\n

[object]

\n

Steps that define the conditions to be matched in sequence.

\n
\n
\n
\n
\n
\n

condition

\n
\n

string

\n

Condition referencing rule queries (e.g., a > 0).

\n
\n \n
\n
\n
\n
\n
\n

evaluationWindow

\n
\n

enum

\n

A time window is specified to match when at least one of the cases matches true. This is a sliding window\nand evaluates in real time. For third party detection method, this field is not used. \nAllowed enum values: 0,60,300,600,900,1800,3600,7200,10800,21600

Show 2 more,43200,86400

\n
\n \n
\n
\n
\n
\n
\n

name

\n
\n

string

\n

Unique name identifying the step.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

thirdPartyRuleOptions

\n
\n

object

\n

Options on third party detection method.

\n
\n
\n
\n
\n
\n

defaultNotifications

\n
\n

[string]

\n

Notification targets for the logs that do not correspond to any of the cases.

\n
\n \n
\n
\n
\n
\n
\n

defaultStatus

\n
\n

enum

\n

Severity of the Security Signal. \nAllowed enum values: info,low,medium,high,critical

\n
\n \n
\n
\n
\n
\n
\n

rootQueries

\n
\n

[object]

\n

Queries to be combined with third party case queries. Each of them can have different group by fields, to aggregate differently based on the type of alert.

\n
\n
\n
\n
\n
\n

groupByFields

\n
\n

[string]

\n

Fields to group by.

\n
\n \n
\n
\n
\n
\n
\n

query

\n
\n

string

\n

Query to run on logs.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

signalTitleTemplate

\n
\n

string

\n

A template for the signal title; if omitted, the title is generated based on the case name.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

queries

\n
\n

[object]

\n

Queries for selecting logs which are part of the rule.

\n
\n
\n
\n
\n
\n

aggregation

\n
\n

enum

\n

The aggregation type. \nAllowed enum values: count,cardinality,sum,max,new_value,geo_data,event_count,none

\n
\n \n
\n
\n
\n
\n
\n

correlatedByFields

\n
\n

[string]

\n

Fields to correlate by.

\n
\n \n
\n
\n
\n
\n
\n

correlatedQueryIndex

\n
\n

int32

\n

Index of the rule query used to retrieve the correlated field.

\n
\n \n
\n
\n
\n
\n
\n

defaultRuleId

\n
\n

string

\n

Default Rule ID to match on signals.

\n
\n \n
\n
\n
\n
\n
\n

distinctFields

\n
\n

[string]

\n

Field for which the cardinality is measured. Sent as an array.

\n
\n \n
\n
\n
\n
\n
\n

groupByFields

\n
\n

[string]

\n

Fields to group by.

\n
\n \n
\n
\n
\n
\n
\n

metrics

\n
\n

[string]

\n

Group of target fields to aggregate over.

\n
\n \n
\n
\n
\n
\n
\n

name

\n
\n

string

\n

Name of the query.

\n
\n \n
\n
\n
\n
\n
\n

ruleId

\n
\n

string

\n

Rule ID to match on signals.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

tags

\n
\n

[string]

\n

Tags for generated signals.

\n
\n \n
\n
\n
\n
\n
\n

type

\n
\n

enum

\n

The rule type. \nAllowed enum values: signal_correlation

\n
\n \n
\n
\n
\n
\n
\n

updateAuthorId

\n
\n

int64

\n

User ID of the user who updated the rule.

\n
\n \n
\n
\n
\n
\n
\n

version

\n
\n

int64

\n

The version of the rule.

\n
\n \n
\n
\n
\n
" + }, + "400": { + "json": { + "errors": [ + "Bad Request" + ] + }, + "html": "
\n
\n
\n
\n

errors [required]

\n
\n

[string]

\n

A list of errors.

\n
\n \n
\n
" + }, + "403": { + "json": { + "errors": [ + "Bad Request" + ] + }, + "html": "
\n
\n
\n
\n

errors [required]

\n
\n

[string]

\n

A list of errors.

\n
\n \n
\n
" + }, + "404": { + "json": { + "errors": [ + "Bad Request" + ] + }, + "html": "
\n
\n
\n
\n

errors [required]

\n
\n

[string]

\n

A list of errors.

\n
\n \n
\n
" + }, + "409": { + "json": { + "errors": [ + "Bad Request" + ] + }, + "html": "
\n
\n
\n
\n

errors [required]

\n
\n

[string]

\n

A list of errors.

\n
\n \n
\n
" + }, + "429": { + "json": { + "errors": [ + "Bad Request" + ] + }, + "html": "
\n
\n
\n
\n

errors [required]

\n
\n

[string]

\n

A list of errors.

\n
\n \n
\n
" + } + }, + "request": { + "json_curl": {}, + "json": {}, + "html": "" + } + }, "TestExistingSecurityMonitoringRule": { "responses": { "200": { diff --git a/data/api/v2/full_spec.yaml b/data/api/v2/full_spec.yaml index 146c9e69b84..e2b218468ad 100644 --- a/data/api/v2/full_spec.yaml +++ b/data/api/v2/full_spec.yaml @@ -1685,6 +1685,15 @@ components: required: true schema: type: string + SecurityMonitoringRuleVersion: + description: The historical version number of the rule. + in: path + name: version + required: true + schema: + example: 1 + format: int64 + type: integer SecurityMonitoringSuppressionID: description: The ID of the suppression rule in: path @@ -28523,6 +28532,31 @@ components: - bucket_name - bucket_region type: object + DataObservabilityMonitorRunStatus: + description: The status of a data observability monitor run. + enum: + - pending + - ok + - warn + - alert + - error + example: pending + type: string + x-enum-varnames: + - PENDING + - OK + - WARN + - ALERT + - ERROR + DataObservabilityMonitorRunType: + default: monitor_run + description: The JSON:API resource type for a data observability monitor run. + enum: + - monitor_run + example: monitor_run + type: string + x-enum-varnames: + - MONITOR_RUN DataRelationshipsTeams: description: Associates teams with this schedule in a data structure. properties: @@ -39197,6 +39231,42 @@ components: required: - data type: object + GetDataObservabilityMonitorRunStatusResponse: + description: The response for getting the status of a data observability monitor run. + properties: + data: + $ref: "#/components/schemas/GetDataObservabilityMonitorRunStatusResponseData" + required: + - data + type: object + GetDataObservabilityMonitorRunStatusResponseAttributes: + description: The attributes of a data observability monitor run status response. + properties: + error_message: + description: Error message describing why the monitor run failed. Only present when status is error. + example: "run completed but produced no metric data" + type: string + status: + $ref: "#/components/schemas/DataObservabilityMonitorRunStatus" + required: + - status + type: object + GetDataObservabilityMonitorRunStatusResponseData: + description: The data object for a data observability monitor run status response. + properties: + attributes: + $ref: "#/components/schemas/GetDataObservabilityMonitorRunStatusResponseAttributes" + id: + description: The unique identifier of the monitor run. + example: "abc123def456" + type: string + type: + $ref: "#/components/schemas/DataObservabilityMonitorRunType" + required: + - id + - type + - attributes + type: object GetDeviceAttributes: description: The device attributes properties: @@ -78882,6 +78952,27 @@ components: $ref: "#/components/schemas/RumRetentionFilterData" type: array type: object + RunDataObservabilityMonitorResponse: + description: The response returned when a data observability monitor run is triggered. + properties: + data: + $ref: "#/components/schemas/RunDataObservabilityMonitorResponseData" + required: + - data + type: object + RunDataObservabilityMonitorResponseData: + description: The data object returned when a data observability monitor run is triggered. + properties: + id: + description: The unique identifier of the monitor run. + example: "abc123def456" + type: string + type: + $ref: "#/components/schemas/DataObservabilityMonitorRunType" + required: + - id + - type + type: object RunHistoricalJobRequest: description: Run a historical job request. properties: @@ -126182,6 +126273,107 @@ paths: x-unstable: |- **Note**: This endpoint is in preview and is subject to change. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/data-observability/monitors/runs/{run_id}/status: + get: + description: Retrieves the current status of a data observability monitor run. Poll this endpoint after triggering a run to determine when evaluation is complete. + operationId: GetDataObservabilityMonitorRunStatus + parameters: + - description: The ID of the monitor run to retrieve status for. + example: "abc123def456" + in: path + name: run_id + required: true + schema: + type: string + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + status: ok + id: "abc123def456" + type: monitor_run + schema: + $ref: "#/components/schemas/GetDataObservabilityMonitorRunStatusResponse" + description: OK + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - data_observability_monitors_write + - monitors_write + summary: Get data observability monitor run status + tags: + - Data Observability + x-menu-order: 2 + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/data-observability/monitors/{monitor_id}/run: + post: + description: Manually triggers a run for a data observability monitor. Only monitors that are not scheduled (manually-runnable) can be triggered this way. + operationId: RunDataObservabilityMonitor + parameters: + - description: The ID of the data observability monitor to run. + example: 12345 + in: path + name: monitor_id + required: true + schema: + format: int64 + type: integer + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + id: "abc123def456" + type: monitor_run + schema: + $ref: "#/components/schemas/RunDataObservabilityMonitorResponse" + description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - data_observability_monitors_write + - monitors_write + summary: Run a data observability monitor + tags: + - Data Observability + x-menu-order: 1 + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). /api/v2/datasets: get: description: Get all datasets that have been configured for an organization. @@ -172619,6 +172811,61 @@ paths: operator: OR permissions: - security_monitoring_rules_read + /api/v2/security_monitoring/rules/{rule_id}/restore/{version}: + post: + description: |- + Restores a custom detection rule to a previously saved historical version. + Only custom rules can be restored. Default and partner rules return 400. + The restore creates a new version entry; it does not overwrite history. + operationId: RestoreSecurityMonitoringRule + parameters: + - $ref: "#/components/parameters/SecurityMonitoringRuleID" + - $ref: "#/components/parameters/SecurityMonitoringRuleVersion" + responses: + "200": + content: + "application/json": + examples: + default: + value: + cases: + - condition: "a > 0" + name: "" + notifications: [] + status: info + id: abc-123 + isEnabled: true + message: Test rule + name: My security monitoring rule. + tags: [] + type: log_detection + schema: + $ref: "#/components/schemas/SecurityMonitoringRuleResponse" + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" + "409": + $ref: "#/components/responses/ConflictResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - security_monitoring_rules_write + summary: Restore a rule to a historical version + tags: ["Security Monitoring"] + x-menu-order: 133 + "x-permission": + operator: OR + permissions: + - security_monitoring_rules_write + x-unstable: |- + **Note**: This endpoint is in beta and may be subject to changes. /api/v2/security_monitoring/rules/{rule_id}/test: post: description: |- @@ -189668,6 +189915,8 @@ tags: [Dashboards documentation](https://docs.datadoghq.com/dashboards/) for more information. name: Dashboards + - description: Manage and run data observability monitors. + name: Data Observability - description: |- Data Access Controls in Datadog is a feature that allows administrators and access managers to regulate access to sensitive data. By defining Restricted Datasets, you can ensure that only specific teams or roles can diff --git a/data/api/v2/translate_actions.json b/data/api/v2/translate_actions.json index 3d0c6d06967..cff6ed3c459 100644 --- a/data/api/v2/translate_actions.json +++ b/data/api/v2/translate_actions.json @@ -1564,6 +1564,14 @@ "description": "Get usage statistics for a single dashboard. The response includes view counts, the most recent view and edit times, widget counts, and the dashboard quality score. View-count fields depend on Real User Monitoring (RUM) and are `null` or `0` in orgs without RUM.", "summary": "Get usage stats for a dashboard" }, + "GetDataObservabilityMonitorRunStatus": { + "description": "Retrieves the current status of a data observability monitor run. Poll this endpoint after triggering a run to determine when evaluation is complete.", + "summary": "Get data observability monitor run status" + }, + "RunDataObservabilityMonitor": { + "description": "Manually triggers a run for a data observability monitor. Only monitors that are not scheduled (manually-runnable) can be triggered this way.", + "summary": "Run a data observability monitor" + }, "GetAllDatasets": { "description": "Get all datasets that have been configured for an organization.", "summary": "Get all datasets" @@ -5231,6 +5239,10 @@ "description": "Convert an existing rule from JSON to Terraform for Datadog provider\nresource `datadog_security_monitoring_rule`. You can do so for the following rule types:\n- App and API Protection\n- Cloud SIEM (log detection and signal correlation)\n- Workload Protection\n\nYou can convert Cloud Security configuration rules using Terraform's [Datadog Cloud Configuration Rule resource](https://registry.terraform.io/providers/DataDog/datadog/latest/docs/resources/cloud_configuration_rule).", "summary": "Convert an existing rule from JSON to Terraform" }, + "RestoreSecurityMonitoringRule": { + "description": "Restores a custom detection rule to a previously saved historical version.\nOnly custom rules can be restored. Default and partner rules return 400.\nThe restore creates a new version entry; it does not overwrite history.", + "summary": "Restore a rule to a historical version" + }, "TestExistingSecurityMonitoringRule": { "description": "Test an existing rule.", "summary": "Test an existing rule", diff --git a/data/api/v2/translate_tags.json b/data/api/v2/translate_tags.json index cd7dc74568c..875ced2b5d7 100644 --- a/data/api/v2/translate_tags.json +++ b/data/api/v2/translate_tags.json @@ -163,6 +163,10 @@ "name": "Dashboards", "description": "Get usage statistics for the dashboards in your organization, including view\ncounts, last-edit times, widget counts, and quality scores. See the\n[Dashboards documentation](https://docs.datadoghq.com/dashboards/) for more\ninformation." }, + "data-observability": { + "name": "Data Observability", + "description": "Manage and run data observability monitors." + }, "datasets": { "name": "Datasets", "description": "Data Access Controls in Datadog is a feature that allows administrators and access managers to regulate\naccess to sensitive data. By defining Restricted Datasets, you can ensure that only specific teams or roles can\nview certain types of telemetry (for example, logs, traces, metrics, and RUM data)."