diff --git a/.apigentools-info b/.apigentools-info
index 505dfd07213f8..2e5c781a97a3b 100644
--- a/.apigentools-info
+++ b/.apigentools-info
@@ -4,13 +4,13 @@
"spec_versions": {
"v1": {
"apigentools_version": "1.6.6",
- "regenerated": "2025-02-12 17:15:27.937252",
- "spec_repo_commit": "154100ad"
+ "regenerated": "2025-02-12 18:35:12.089667",
+ "spec_repo_commit": "6a4cfb82"
},
"v2": {
"apigentools_version": "1.6.6",
- "regenerated": "2025-02-12 17:15:36.321417",
- "spec_repo_commit": "154100ad"
+ "regenerated": "2025-02-12 18:35:20.202071",
+ "spec_repo_commit": "6a4cfb82"
}
}
}
\ No newline at end of file
diff --git a/config/_default/menus/api.en.yaml b/config/_default/menus/api.en.yaml
index 1d40fa1baeec6..1bc6c9bf7a243 100644
--- a/config/_default/menus/api.en.yaml
+++ b/config/_default/menus/api.en.yaml
@@ -2335,6 +2335,19 @@ menu:
- ListSecurityMonitoringSignals
unstable: []
order: 14
+ - name: Get a rule's version history
+ url: '#get-a-rules-version-history'
+ identifier: security-monitoring-get-a-rules-version-history
+ parent: security-monitoring
+ generated: true
+ params:
+ versions:
+ - v2
+ operationids:
+ - GetRuleVersionHistory
+ unstable:
+ - v2
+ order: 25
- name: Test an existing rule
url: '#test-an-existing-rule'
identifier: security-monitoring-test-an-existing-rule
@@ -8417,7 +8430,7 @@ menu:
operationids:
- CancelWorkflowInstance
unstable: []
- order: 4
+ order: 8
- name: Get a workflow instance
url: '#get-a-workflow-instance'
identifier: workflow-automation-get-a-workflow-instance
@@ -8429,7 +8442,7 @@ menu:
operationids:
- GetWorkflowInstance
unstable: []
- order: 3
+ order: 7
- name: Execute a workflow
url: '#execute-a-workflow'
identifier: workflow-automation-execute-a-workflow
@@ -8441,7 +8454,7 @@ menu:
operationids:
- CreateWorkflowInstance
unstable: []
- order: 2
+ order: 6
- name: List workflow instances
url: '#list-workflow-instances'
identifier: workflow-automation-list-workflow-instances
@@ -8453,4 +8466,52 @@ menu:
operationids:
- ListWorkflowInstances
unstable: []
+ order: 5
+ - name: Update an existing Workflow
+ url: '#update-an-existing-workflow'
+ identifier: workflow-automation-update-an-existing-workflow
+ parent: workflow-automation
+ generated: true
+ params:
+ versions:
+ - v2
+ operationids:
+ - UpdateWorkflow
+ unstable: []
+ order: 3
+ - name: Get an existing Workflow
+ url: '#get-an-existing-workflow'
+ identifier: workflow-automation-get-an-existing-workflow
+ parent: workflow-automation
+ generated: true
+ params:
+ versions:
+ - v2
+ operationids:
+ - GetWorkflow
+ unstable: []
order: 1
+ - name: Delete an existing Workflow
+ url: '#delete-an-existing-workflow'
+ identifier: workflow-automation-delete-an-existing-workflow
+ parent: workflow-automation
+ generated: true
+ params:
+ versions:
+ - v2
+ operationids:
+ - DeleteWorkflow
+ unstable: []
+ order: 4
+ - name: Create a Workflow
+ url: '#create-a-workflow'
+ identifier: workflow-automation-create-a-workflow
+ parent: workflow-automation
+ generated: true
+ params:
+ versions:
+ - v2
+ operationids:
+ - CreateWorkflow
+ unstable: []
+ order: 2
diff --git a/config/_default/menus/main.en.yaml b/config/_default/menus/main.en.yaml
index c2cc033c5b80c..602605650726f 100644
--- a/config/_default/menus/main.en.yaml
+++ b/config/_default/menus/main.en.yaml
@@ -4083,16 +4083,21 @@ menu:
identifier: data_streams_live_messages
parent: data_streams
weight: 2
+ - name: Data Pipeline Lineage
+ url: data_streams/data_pipeline_lineage
+ identifier: data_streams_pipeline_lineage
+ parent: data_streams
+ weight: 3
- name: Troubleshooting
url: data_streams/troubleshooting
identifier: data_streams_troubleshooting
parent: data_streams
- weight: 3
+ weight: 4
- name: Guide
url: data_streams/guide
identifier: data_streams_guide
parent: data_streams
- weight: 4
+ weight: 5
- name: Data Jobs Monitoring
url: data_jobs/
pre: data-jobs-monitoring
@@ -5699,6 +5704,11 @@ menu:
parent: automation_pipelines
identifier: automation_pipelines_inbox
weight: 10002
+ - name: Set Due Date Rules
+ url: security/automation_pipelines/set_due_date
+ parent: automation_pipelines
+ identifier: automation_pipelines_due_date
+ weight: 10003
- name: Security Inbox
url: security/security_inbox
parent: security_platform
diff --git a/content/en/account_management/scim/_index.md b/content/en/account_management/scim/_index.md
index 66f71eb860c21..440c9b534b269 100644
--- a/content/en/account_management/scim/_index.md
+++ b/content/en/account_management/scim/_index.md
@@ -25,6 +25,9 @@ The System for Cross-domain Identity Management, or SCIM, is an open standard th
- Remove users in Datadog when they no longer require access
- Keep user attributes synchronized between the identity provider and Datadog
- Single sign-on to Datadog (recommended)
+- Managed Teams: Create Datadog Teams from identity provider groups and keep membership of the Datadog Teams synchronized with group membership in the identity provider.
+
+**Note:** To use managed teams, you must use the Okta IdP and request access to the feature from [support][8].
Datadog supports using SCIM with the Microsoft Entra ID and Okta identity providers. To configure SCIM, see the documentation for your IdP:
- [Microsoft Entra ID][2]
@@ -63,3 +66,4 @@ Creating a new user with SCIM triggers an email to the user. For first time acce
[5]: /account_management/api-app-keys
[6]: /account_management/org_settings/service_accounts
[7]: https://app.datadoghq.com/organization-settings/users
+[8]: /help/
diff --git a/content/en/account_management/scim/okta.md b/content/en/account_management/scim/okta.md
index 44ac29f805918..5b46f4c596634 100644
--- a/content/en/account_management/scim/okta.md
+++ b/content/en/account_management/scim/okta.md
@@ -2,6 +2,13 @@
title: Configure SCIM with Okta
algolia:
tags: ["scim", "identity provider", "IdP", "Okta"]
+further_reading:
+ - link: '/account_management/scim/'
+ tag: 'Documentation'
+ text: 'User Provisioning with SCIM'
+ - link: 'account_management/saml/mapping/#map-saml-attributes-to-datadog-roles'
+ tag: 'Documentation'
+ text: 'Group Attribute Mapping'
---
See the following instructions to synchronize your Datadog users with Okta using SCIM.
@@ -31,9 +38,9 @@ When using SAML and SCIM together, Datadog strongly recommends disabling SAML ju
## Configure automatic user provisioning
1. In the application management screen, select **Provisioning** in the left panel
-2. Click **Configuration API integration**.
+2. Click **Configure API integration**.
3. Select **Enable API integration**.
-3. Complete the **Credentials** section as follows:
+4. Complete the **Credentials** section as follows:
- **Base URL**: `https://{{< region-param key="dd_full_site" >}}/api/v2/scim` **Note:** Use the appropriate subdomain for your site. To find your URL, see [Datadog sites][3].
- **API Token**: Use a valid Datadog application key. You can create an application key on [your organization settings page][4]. To maintain continuous access to your data, use a [service account][5] application key.
@@ -47,12 +54,81 @@ When using SAML and SCIM together, Datadog strongly recommends disabling SAML ju
- **Deactivate Users**
8. Under **Datadog Attribute Mappings**, find the mapping of Okta attributes to Datadog attributes already pre-configured. You can re-map them if needed, but map the Okta values to the same set of Datadog values.
-### Group attributes
+## Configure automatic team provisioning
-Group mapping is not supported.
+{{< callout url="/help/" header="false" >}}
+The Managed Teams feature is turned off by default. Request access by contacting support.
+{{< /callout >}}
+
+With [Managed Teams][6], you control the core provisioning of a Datadog Team — its name, handle, and membership — through the identity provider. The setup process differs depending on whether the team already exists in Datadog.
+
+**Note:** Users must exist in Datadog before you can add them to a team. Therefore, you must assign users to the Datadog app in Okta to ensure that they are created in Datadog through SCIM. Assign the Datadog application to your Okta group to ensure that all team members are created in Datadog automatically.
+
+### Create a new team in Datadog
+
+1. In your Datadog application in Okta, navigate to the **Push Groups** tab.
+{{< img src="/account_management/scim/okta/pushed-groups.png" alt="Okta pushed groups configuration interface">}}
+1. Click the **Push Groups** button. The pushed groups interface opens.
+1. Select the Okta group you want to push to Datadog.
+1. In the **Match result & push action** column, ensure **Create group** is selected.
+1. Click **Save**.
+
+To verify that the operation completed successfully, navigate to the [Teams list][7] in Datadog. Search for a Datadog Team matching the Okta group you configured. Verify that the team exists in Datadog and is managed externally. It may take a minute or two before the team appears in Datadog.
+
+{{< img src="/account_management/scim/okta/managed-externally.png" alt="Datadog team list showing a team called Identity team that is managed externally.">}}
+
+### Synchronize an existing Datadog Team with an Okta group
+
+You can map an existing Datadog Team to an Okta group. Establishing a link from the Okta group to the Datadog Team causes the Datadog Team to be managed by Okta going forward.
+
+**Note:** In order to synchronize an existing Datadog Team with an Okta group, the two names must match exactly.
+
+1. In your Datadog application in Okta, navigate to the **Push Groups** tab.
+1. Click the **Push Groups** button. The pushed groups interface opens.
+1. Select the Okta group you want to synchronize with a Datadog Team.
+1. In the **Match result & push action** column, ensure **Create group** is selected.
+1. Click **Save**.
+
+**Note:** When you select **Create group**, Okta displays a **No match found** message. You can ignore this message and proceed with creating the group to establish synchronization.
+
+### Delete the connection between an Okta group and a Datadog Team
+
+You have two options for disconnecting an Okta group from a Datadog Team, with different impacts on the Datadog Team membership.
+
+#### Keep team members in Datadog
+
+This procedure allows you to manage team membership in Datadog instead of Okta. The team members stay unchanged.
+
+1. In your Datadog application in Okta, navigate to the **Push Groups** tab.
+1. Click the **Push Groups** button. The pushed groups interface opens.
+1. Select the Okta group you want to unlink from its Datadog Team.
+1. In the **Match result & push action** column, select **Unlink Pushed Group**. A dialog box appears.
+1. Select **Leave the group in the target app**.
+1. Click **Unlink**.
+1. Click **Save**.
+
+#### Remove team members from Datadog
+
+This procedure allows you to manage team membership in Datadog instead of Okta and removes the team members from the Datadog Team.
+
+1. In your Datadog application in Okta, navigate to the **Push Groups** tab.
+1. Click the **Push Groups** button. The pushed groups interface opens.
+1. Select the Okta group you want to unlink from its Datadog Team.
+1. In the **Match result & push action** column, select **Unlink Pushed Group**. A dialog box appears.
+1. Select **Delete the group in the target app (recommended)**.
+1. Click **Unlink**.
+1. Click **Save**.
+
+**Note:** Contrary to the name of the option, selecting **Delete the group in the target app** does _not_ delete the team in Datadog. Instead, it removes all members from the team and removes the link between the group in Okta and the Datadog Team.
+
+## Further Reading
+
+{{< partial name="whats-next/whats-next.html" >}}
[1]: /account_management/scim/
[2]: /account_management/scim/#using-a-service-account-with-scim
[3]: /getting_started/site
[4]: https://app.datadoghq.com/organization-settings/application-keys
[5]: /account_management/org_settings/service_accounts
+[6]: /account_management/teams/manage/#manage-teams-through-an-identity-provider
+[7]: https://app.datadoghq.com/teams
diff --git a/content/en/account_management/teams/manage.md b/content/en/account_management/teams/manage.md
index 5df1fbcd9a459..e107bac571222 100644
--- a/content/en/account_management/teams/manage.md
+++ b/content/en/account_management/teams/manage.md
@@ -58,6 +58,23 @@ Under the team's settings, specify which users can modify the team membership. T
Users with the `user_access_manage` permission can set default rules on who can add or remove members, or edit team details. Set default rules with the **Default Settings** button on the team directory page. Override these policies for an individual team on the team details panel.
+## Manage teams through an identity provider
+
+{{< callout url="/help/" header="false" >}}
+The Managed Teams feature is turned off by default. Request access by contacting support.
+{{< /callout >}}
+
+When you set up a managed team, you configure the following properties of the team externally through an identity provider integration:
+ - Team name
+ - Team handle
+ - Team membership (synchronized from the corresponding identity provider group)
+
+To ensure that managed teams stay consistent with their configuration in your identity provider, you must make changes to managed properties in the identity provider, not through the Datadog site or API.
+
+Datadog supports Okta and other SCIM-compliant identity providers for managed teams.
+
+For more information on the capabilities of managed teams and how to set them up, see [SCIM][3].
+
## SAML attribute mapping
To manage teams and team membership using SAML attributes, see [Map SAML attributes to Teams][2].
@@ -72,3 +89,4 @@ To enforce a strict membership model, configure your default team settings so **
[1]: https://app.datadoghq.com/organization-settings/teams
[2]: /account_management/saml/mapping/#map-saml-attributes-to-teams
+[3]: /account_management/scim/
diff --git a/content/en/api/v2/security-monitoring/examples.json b/content/en/api/v2/security-monitoring/examples.json
index 4724a032a43e2..0389ad2c0e11d 100644
--- a/content/en/api/v2/security-monitoring/examples.json
+++ b/content/en/api/v2/security-monitoring/examples.json
@@ -4028,6 +4028,189 @@
"html": "
\n
\n
\n
\n
rule
\n
\n
<oneOf>
\n
Test a rule.
\n
\n
\n
\n
\n
\n
Option 1
\n
\n
object
\n
The payload of a rule to test
\n
\n
\n
\n
\n
\n
cases [required]
\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
\n
\n
type
\n
\n
enum
\n
The action type. \nAllowed enum values: block_ip,block_user
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
condition
\n
\n
string
\n
A 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
name
\n
\n
string
\n
Name of the case.
\n
\n \n
\n
\n
\n
\n
\n
notifications
\n
\n
[string]
\n
Notification targets.
\n
\n \n
\n
\n
\n
\n
\n
status [required]
\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
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
isEnabled [required]
\n
\n
boolean
\n
Whether the rule is enabled.
\n
\n \n
\n
\n
\n
\n
\n
message [required]
\n
\n
string
\n
Message for generated signals.
\n
\n \n
\n
\n
\n
\n
\n
name [required]
\n
\n
string
\n
The name of the rule.
\n
\n \n
\n
\n
\n
\n
\n
options [required]
\n
\n
object
\n
Options.
\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.
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
\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
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
\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
\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,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
enum
\n
The duration in days after which a learned value is forgotten. \nAllowed enum values: 1,2,7,14,21,28
\n
\n \n
\n
\n
\n
\n
\n
learningDuration
\n
\n
enum
\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. \nAllowed enum values: 0,1,7
\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
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 [required]
\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
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
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
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
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 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 [required]
\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
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
ruleQueryPayloads
\n
\n
[object]
\n
Data payloads used to test rules query with the expected result.
\n
\n
\n
\n
\n
\n
expectedResult
\n
\n
boolean
\n
Expected result of the test.
\n
\n \n
\n
\n
\n
\n
\n
index
\n
\n
int64
\n
Index of the query under test.
\n
\n \n
\n
\n
\n
\n
\n
payload
\n
\n
object
\n
Payload used to test the rule query.
\n
\n
\n
\n
\n
\n
ddsource
\n
\n
string
\n
Source of the payload.
\n
\n \n
\n
\n
\n
\n
\n
ddtags
\n
\n
string
\n
Tags associated with your data.
\n
\n \n
\n
\n
\n
\n
\n
hostname
\n
\n
string
\n
The name of the originating host of the log.
\n
\n \n
\n
\n
\n
\n
\n
message
\n
\n
string
\n
The message of the payload.
\n
\n \n
\n
\n
\n
\n
\n
service
\n
\n
string
\n
The name of the application or service generating the data.
Response object containing the version history of a rule.
\n
\n
\n
\n
\n
\n
count
\n
\n
int32
\n
The number of rule versions.
\n
\n \n
\n
\n
\n
\n
\n
data
\n
\n
object
\n
The RuleVersionHistorydata.
\n
\n
\n
\n
\n
\n
<any-key>
\n
\n
object
\n
A rule version with a list of updates.
\n
\n
\n
\n
\n
\n
changes
\n
\n
[object]
\n
A list of changes.
\n
\n
\n
\n
\n
\n
change
\n
\n
string
\n
The new value of the field.
\n
\n \n
\n
\n
\n
\n
\n
field
\n
\n
string
\n
The field that was changed.
\n
\n \n
\n
\n
\n
\n
\n
type
\n
\n
enum
\n
The type of change. \nAllowed enum values: create,update,delete
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
rule
\n
\n
<oneOf>
\n
Create a new rule.
\n
\n
\n
\n
\n
\n
Option 1
\n
\n
\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
\n
\n
type
\n
\n
enum
\n
The action type. \nAllowed enum values: block_ip,block_user
\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
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
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
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.
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
\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
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
\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
\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,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
enum
\n
The duration in days after which a learned value is forgotten. \nAllowed enum values: 1,2,7,14,21,28
\n
\n \n
\n
\n
\n
\n
\n
learningDuration
\n
\n
enum
\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. \nAllowed enum values: 0,1,7
\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
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
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
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
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
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
\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
\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
\n
\n
type
\n
\n
enum
\n
The action type. \nAllowed enum values: block_ip,block_user
\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
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
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
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.
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
\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
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
\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
\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,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
enum
\n
The duration in days after which a learned value is forgotten. \nAllowed enum values: 1,2,7,14,21,28
\n
\n \n
\n
\n
\n
\n
\n
learningDuration
\n
\n
enum
\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. \nAllowed enum values: 0,1,7
\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
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
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
id
\n
\n
string
\n
ID of the rule.
\n
\n \n
\n
\n
\n
\n
\n
type
\n
\n
enum
\n
Type of data. \nAllowed enum values: GetRuleVersionHistoryResponse
Set the workflow to published or unpublished. Workflows in an unpublished state will only be executable via manual runs. Automatic triggers such as Schedule will not execute the workflow until it is published.
\n
\n \n
\n
\n
\n
\n
\n
spec [required]
\n
\n
object
\n
The spec defines what the workflow does.
\n
\n
\n
\n
\n
\n
annotations
\n
\n
[object]
\n
A list of annotations used in the workflow. These are like sticky notes for your workflow!
\n
\n
\n
\n
\n
\n
display [required]
\n
\n
object
\n
The definition of AnnotationDisplay object.
\n
\n
\n
\n
\n
\n
bounds
\n
\n
object
\n
The definition of AnnotationDisplayBounds object.
\n
\n
\n
\n
\n
\n
height
\n
\n
double
\n
The boundsheight.
\n
\n \n
\n
\n
\n
\n
\n
width
\n
\n
double
\n
The boundswidth.
\n
\n \n
\n
\n
\n
\n
\n
x
\n
\n
double
\n
The boundsx.
\n
\n \n
\n
\n
\n
\n
\n
y
\n
\n
double
\n
The boundsy.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
id [required]
\n
\n
string
\n
The Annotationid.
\n
\n \n
\n
\n
\n
\n
\n
markdownTextAnnotation [required]
\n
\n
object
\n
The definition of AnnotationMarkdownTextAnnotation object.
\n
\n
\n
\n
\n
\n
text
\n
\n
string
\n
The markdownTextAnnotationtext.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
connectionEnvs
\n
\n
[object]
\n
A list of connections or connection groups used in the workflow.
\n
\n
\n
\n
\n
\n
connectionGroups
\n
\n
[object]
\n
The ConnectionEnvconnectionGroups.
\n
\n
\n
\n
\n
\n
connectionGroupId [required]
\n
\n
string
\n
The ConnectionGroupconnectionGroupId.
\n
\n \n
\n
\n
\n
\n
\n
label [required]
\n
\n
string
\n
The ConnectionGrouplabel.
\n
\n \n
\n
\n
\n
\n
\n
tags [required]
\n
\n
[string]
\n
The ConnectionGrouptags.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
connections
\n
\n
[object]
\n
The ConnectionEnvconnections.
\n
\n
\n
\n
\n
\n
connectionId [required]
\n
\n
string
\n
The ConnectionconnectionId.
\n
\n \n
\n
\n
\n
\n
\n
label [required]
\n
\n
string
\n
The Connectionlabel.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
env [required]
\n
\n
enum
\n
The definition of ConnectionEnvEnv object. \nAllowed enum values: default
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
handle
\n
\n
string
\n
Unique identifier used to trigger workflows automatically in Datadog.
\n
\n \n
\n
\n
\n
\n
\n
inputSchema
\n
\n
object
\n
A list of input parameters for the workflow. These can be used as dynamic runtime values in your workflow.
\n
\n
\n
\n
\n
\n
parameters
\n
\n
[object]
\n
The InputSchemaparameters.
\n
\n
\n
\n
\n
\n
defaultValue
\n
\n
\n
The InputSchemaParametersdefaultValue.
\n
\n \n
\n
\n
\n
\n
\n
description
\n
\n
string
\n
The InputSchemaParametersdescription.
\n
\n \n
\n
\n
\n
\n
\n
label
\n
\n
string
\n
The InputSchemaParameterslabel.
\n
\n \n
\n
\n
\n
\n
\n
name [required]
\n
\n
string
\n
The InputSchemaParametersname.
\n
\n \n
\n
\n
\n
\n
\n
type [required]
\n
\n
enum
\n
The definition of InputSchemaParametersType object. \nAllowed enum values: STRING,NUMBER,BOOLEAN,OBJECT,ARRAY_STRING,ARRAY_NUMBER,ARRAY_BOOLEAN,ARRAY_OBJECT
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
outputSchema
\n
\n
object
\n
A list of output parameters for the workflow.
\n
\n
\n
\n
\n
\n
parameters
\n
\n
[object]
\n
The OutputSchemaparameters.
\n
\n
\n
\n
\n
\n
defaultValue
\n
\n
\n
The OutputSchemaParametersdefaultValue.
\n
\n \n
\n
\n
\n
\n
\n
description
\n
\n
string
\n
The OutputSchemaParametersdescription.
\n
\n \n
\n
\n
\n
\n
\n
label
\n
\n
string
\n
The OutputSchemaParameterslabel.
\n
\n \n
\n
\n
\n
\n
\n
name [required]
\n
\n
string
\n
The OutputSchemaParametersname.
\n
\n \n
\n
\n
\n
\n
\n
type [required]
\n
\n
enum
\n
The definition of OutputSchemaParametersType object. \nAllowed enum values: STRING,NUMBER,BOOLEAN,OBJECT,ARRAY_STRING,ARRAY_NUMBER,ARRAY_BOOLEAN,ARRAY_OBJECT
\n
\n \n
\n
\n
\n
\n
\n
value
\n
\n
\n
The OutputSchemaParametersvalue.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
steps
\n
\n
[object]
\n
A Step is a sub-component of a workflow. Each Step performs an action.
\n
\n
\n
\n
\n
\n
actionId [required]
\n
\n
string
\n
The unique identifier of an action.
\n
\n \n
\n
\n
\n
\n
\n
completionGate
\n
\n
object
\n
Used to create conditions before running subsequent actions.
\n
\n
\n
\n
\n
\n
completionCondition [required]
\n
\n
object
\n
The definition of CompletionCondition object.
\n
\n
\n
\n
\n
\n
operand1 [required]
\n
\n
\n
The CompletionConditionoperand1.
\n
\n \n
\n
\n
\n
\n
\n
operand2
\n
\n
\n
The CompletionConditionoperand2.
\n
\n \n
\n
\n
\n
\n
\n
operator [required]
\n
\n
enum
\n
The definition of CompletionConditionOperator object. \nAllowed enum values: OPERATOR_EQUAL,OPERATOR_NOT_EQUAL,OPERATOR_GREATER_THAN,OPERATOR_LESS_THAN,OPERATOR_GREATER_THAN_OR_EQUAL_TO,OPERATOR_LESS_THAN_OR_EQUAL_TO,OPERATOR_CONTAINS,OPERATOR_DOES_NOT_CONTAIN,OPERATOR_IS_NULL,OPERATOR_IS_NOT_NULL,OPERATOR_IS_EMPTY,OPERATOR_IS_NOT_EMPTY
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
retryStrategy [required]
\n
\n
object
\n
The definition of RetryStrategy object.
\n
\n
\n
\n
\n
\n
kind [required]
\n
\n
enum
\n
The definition of RetryStrategyKind object. \nAllowed enum values: RETRY_STRATEGY_LINEAR
\n
\n \n
\n
\n
\n
\n
\n
linear
\n
\n
object
\n
The definition of RetryStrategyLinear object.
\n
\n
\n
\n
\n
\n
interval [required]
\n
\n
string
\n
The RetryStrategyLinearinterval. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s
\n
\n \n
\n
\n
\n
\n
\n
maxRetries [required]
\n
\n
double
\n
The RetryStrategyLinearmaxRetries.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
connectionLabel
\n
\n
string
\n
The unique identifier of a connection defined in the spec.
\n
\n \n
\n
\n
\n
\n
\n
display
\n
\n
object
\n
The definition of StepDisplay object.
\n
\n
\n
\n
\n
\n
bounds
\n
\n
object
\n
The definition of StepDisplayBounds object.
\n
\n
\n
\n
\n
\n
x
\n
\n
double
\n
The boundsx.
\n
\n \n
\n
\n
\n
\n
\n
y
\n
\n
double
\n
The boundsy.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
errorHandlers
\n
\n
[object]
\n
The SteperrorHandlers.
\n
\n
\n
\n
\n
\n
fallbackStepName [required]
\n
\n
string
\n
The ErrorHandlerfallbackStepName.
\n
\n \n
\n
\n
\n
\n
\n
retryStrategy [required]
\n
\n
object
\n
The definition of RetryStrategy object.
\n
\n
\n
\n
\n
\n
kind [required]
\n
\n
enum
\n
The definition of RetryStrategyKind object. \nAllowed enum values: RETRY_STRATEGY_LINEAR
\n
\n \n
\n
\n
\n
\n
\n
linear
\n
\n
object
\n
The definition of RetryStrategyLinear object.
\n
\n
\n
\n
\n
\n
interval [required]
\n
\n
string
\n
The RetryStrategyLinearinterval. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s
\n
\n \n
\n
\n
\n
\n
\n
maxRetries [required]
\n
\n
double
\n
The RetryStrategyLinearmaxRetries.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
name [required]
\n
\n
string
\n
Name of the step.
\n
\n \n
\n
\n
\n
\n
\n
outboundEdges
\n
\n
[object]
\n
A list of subsequent actions to run.
\n
\n
\n
\n
\n
\n
branchName [required]
\n
\n
string
\n
The OutboundEdgebranchName.
\n
\n \n
\n
\n
\n
\n
\n
nextStepName [required]
\n
\n
string
\n
The OutboundEdgenextStepName.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
parameters
\n
\n
[object]
\n
A list of inputs for an action.
\n
\n
\n
\n
\n
\n
name [required]
\n
\n
string
\n
The Parametername.
\n
\n \n
\n
\n
\n
\n
\n
value [required]
\n
\n
\n
The Parametervalue.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
readinessGate
\n
\n
object
\n
Used to merge multiple branches into a single branch.
\n
\n
\n
\n
\n
\n
thresholdType [required]
\n
\n
enum
\n
The definition of ReadinessGateThresholdType object. \nAllowed enum values: ANY,ALL
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
triggers
\n
\n
[ <oneOf>]
\n
The list of triggers that activate this workflow. At least one trigger is required, and each trigger type may appear at most once.
\n
\n
\n
\n
\n
\n
Option 1
\n
\n
object
\n
Schema for an API-based trigger.
\n
\n
\n
\n
\n
\n
apiTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA an API. The workflow must be published.
\n
\n
\n
\n
\n
\n
rateLimit
\n
\n
object
\n
Defines a rate limit for a trigger.
\n
\n
\n
\n
\n
\n
count
\n
\n
int64
\n
The TriggerRateLimitcount.
\n
\n \n
\n
\n
\n
\n
\n
interval
\n
\n
string
\n
The TriggerRateLimitinterval. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 2
\n
\n
object
\n
Schema for an App-based trigger.
\n
\n
\n
\n
\n
\n
appTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA an App.
\n
\n \n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 3
\n
\n
object
\n
Schema for a Case-based trigger.
\n
\n
\n
\n
\n
\n
caseTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA a Case. For automatic triggering a handle must be configured and the workflow must be published.
\n
\n
\n
\n
\n
\n
rateLimit
\n
\n
object
\n
Defines a rate limit for a trigger.
\n
\n
\n
\n
\n
\n
count
\n
\n
int64
\n
The TriggerRateLimitcount.
\n
\n \n
\n
\n
\n
\n
\n
interval
\n
\n
string
\n
The TriggerRateLimitinterval. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 4
\n
\n
object
\n
Schema for a Change Event-based trigger.
\n
\n
\n
\n
\n
\n
changeEventTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA a Change Event.
\n
\n \n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 5
\n
\n
object
\n
Schema for a Dashboard-based trigger.
\n
\n
\n
\n
\n
\n
dashboardTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA a Dashboard.
\n
\n \n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 6
\n
\n
object
\n
Schema for a GitHub webhook-based trigger.
\n
\n
\n
\n
\n
\n
githubWebhookTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA GitHub webhook. To trigger a workflow from GitHub, you must set a webhookSecret. In your GitHub Webhook Settings, set the Payload URL to "base_url"/api/v2/workflows/"workflow_id"/webhook?orgId="org_id", select application/json for the content type, and be highly recommend enabling SSL verification for security. The workflow must be published.
\n
\n
\n
\n
\n
\n
rateLimit
\n
\n
object
\n
Defines a rate limit for a trigger.
\n
\n
\n
\n
\n
\n
count
\n
\n
int64
\n
The TriggerRateLimitcount.
\n
\n \n
\n
\n
\n
\n
\n
interval
\n
\n
string
\n
The TriggerRateLimitinterval. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 7
\n
\n
object
\n
Schema for an Incident-based trigger.
\n
\n
\n
\n
\n
\n
incidentTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA an Incident. For automatic triggering a handle must be configured and the workflow must be published.
\n
\n
\n
\n
\n
\n
rateLimit
\n
\n
object
\n
Defines a rate limit for a trigger.
\n
\n
\n
\n
\n
\n
count
\n
\n
int64
\n
The TriggerRateLimitcount.
\n
\n \n
\n
\n
\n
\n
\n
interval
\n
\n
string
\n
The TriggerRateLimitinterval. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 8
\n
\n
object
\n
Schema for a Monitor-based trigger.
\n
\n
\n
\n
\n
\n
monitorTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA a Monitor. For automatic triggering a handle must be configured and the workflow must be published.
\n
\n
\n
\n
\n
\n
rateLimit
\n
\n
object
\n
Defines a rate limit for a trigger.
\n
\n
\n
\n
\n
\n
count
\n
\n
int64
\n
The TriggerRateLimitcount.
\n
\n \n
\n
\n
\n
\n
\n
interval
\n
\n
string
\n
The TriggerRateLimitinterval. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 9
\n
\n
object
\n
Schema for a Schedule-based trigger.
\n
\n
\n
\n
\n
\n
scheduleTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA a Schedule. The workflow must be published.
\n
\n
\n
\n
\n
\n
rruleExpression [required]
\n
\n
string
\n
Recurrence rule expression for scheduling.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 10
\n
\n
object
\n
Schema for a Security-based trigger.
\n
\n
\n
\n
\n
\n
securityTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA a Security Signal or Finding. For automatic triggering a handle must be configured and the workflow must be published.
\n
\n
\n
\n
\n
\n
rateLimit
\n
\n
object
\n
Defines a rate limit for a trigger.
\n
\n
\n
\n
\n
\n
count
\n
\n
int64
\n
The TriggerRateLimitcount.
\n
\n \n
\n
\n
\n
\n
\n
interval
\n
\n
string
\n
The TriggerRateLimitinterval. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 11
\n
\n
object
\n
Schema for a Slack-based trigger.
\n
\n
\n
\n
\n
\n
slackTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA Slack. The workflow must be published.
\n
\n \n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 12
\n
\n
object
\n
Schema for a Workflow-based trigger.
\n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
workflowTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA the Datadog UI. Only required if no other trigger exists.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
tags
\n
\n
[string]
\n
Tags of the workflow.
\n
\n \n
\n
\n
\n
\n
\n
updatedAt
\n
\n
date-time
\n
When the workflow was last updated.
\n
\n \n
\n
\n
\n
\n
\n
webhookSecret
\n
\n
string
\n
If a Webhook trigger is defined on this workflow, a webhookSecret is required and should be provided here.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
id
\n
\n
string
\n
The workflow identifier
\n
\n \n
\n
\n
\n
\n
\n
relationships
\n
\n
object
\n
The definition of WorkflowDataRelationships object.
\n
\n
\n
\n
\n
\n
creator
\n
\n
object
\n
The definition of WorkflowUserRelationship object.
\n
\n
\n
\n
\n
\n
data
\n
\n
object
\n
The definition of WorkflowUserRelationshipData object.
\n
\n
\n
\n
\n
\n
id [required]
\n
\n
string
\n
The user identifier
\n
\n \n
\n
\n
\n
\n
\n
type [required]
\n
\n
enum
\n
The definition of WorkflowUserRelationshipType object. \nAllowed enum values: users
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
owner
\n
\n
object
\n
The definition of WorkflowUserRelationship object.
\n
\n
\n
\n
\n
\n
data
\n
\n
object
\n
The definition of WorkflowUserRelationshipData object.
\n
\n
\n
\n
\n
\n
id [required]
\n
\n
string
\n
The user identifier
\n
\n \n
\n
\n
\n
\n
\n
type [required]
\n
\n
enum
\n
The definition of WorkflowUserRelationshipType object. \nAllowed enum values: users
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
type [required]
\n
\n
enum
\n
The definition of WorkflowDataType object. \nAllowed enum values: workflows
Set the workflow to published or unpublished. Workflows in an unpublished state will only be executable via manual runs. Automatic triggers such as Schedule will not execute the workflow until it is published.
\n
\n \n
\n
\n
\n
\n
\n
spec [required]
\n
\n
object
\n
The spec defines what the workflow does.
\n
\n
\n
\n
\n
\n
annotations
\n
\n
[object]
\n
A list of annotations used in the workflow. These are like sticky notes for your workflow!
\n
\n
\n
\n
\n
\n
display [required]
\n
\n
object
\n
The definition of AnnotationDisplay object.
\n
\n
\n
\n
\n
\n
bounds
\n
\n
object
\n
The definition of AnnotationDisplayBounds object.
\n
\n
\n
\n
\n
\n
height
\n
\n
double
\n
The boundsheight.
\n
\n \n
\n
\n
\n
\n
\n
width
\n
\n
double
\n
The boundswidth.
\n
\n \n
\n
\n
\n
\n
\n
x
\n
\n
double
\n
The boundsx.
\n
\n \n
\n
\n
\n
\n
\n
y
\n
\n
double
\n
The boundsy.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
id [required]
\n
\n
string
\n
The Annotationid.
\n
\n \n
\n
\n
\n
\n
\n
markdownTextAnnotation [required]
\n
\n
object
\n
The definition of AnnotationMarkdownTextAnnotation object.
\n
\n
\n
\n
\n
\n
text
\n
\n
string
\n
The markdownTextAnnotationtext.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
connectionEnvs
\n
\n
[object]
\n
A list of connections or connection groups used in the workflow.
\n
\n
\n
\n
\n
\n
connectionGroups
\n
\n
[object]
\n
The ConnectionEnvconnectionGroups.
\n
\n
\n
\n
\n
\n
connectionGroupId [required]
\n
\n
string
\n
The ConnectionGroupconnectionGroupId.
\n
\n \n
\n
\n
\n
\n
\n
label [required]
\n
\n
string
\n
The ConnectionGrouplabel.
\n
\n \n
\n
\n
\n
\n
\n
tags [required]
\n
\n
[string]
\n
The ConnectionGrouptags.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
connections
\n
\n
[object]
\n
The ConnectionEnvconnections.
\n
\n
\n
\n
\n
\n
connectionId [required]
\n
\n
string
\n
The ConnectionconnectionId.
\n
\n \n
\n
\n
\n
\n
\n
label [required]
\n
\n
string
\n
The Connectionlabel.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
env [required]
\n
\n
enum
\n
The definition of ConnectionEnvEnv object. \nAllowed enum values: default
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
handle
\n
\n
string
\n
Unique identifier used to trigger workflows automatically in Datadog.
\n
\n \n
\n
\n
\n
\n
\n
inputSchema
\n
\n
object
\n
A list of input parameters for the workflow. These can be used as dynamic runtime values in your workflow.
\n
\n
\n
\n
\n
\n
parameters
\n
\n
[object]
\n
The InputSchemaparameters.
\n
\n
\n
\n
\n
\n
defaultValue
\n
\n
\n
The InputSchemaParametersdefaultValue.
\n
\n \n
\n
\n
\n
\n
\n
description
\n
\n
string
\n
The InputSchemaParametersdescription.
\n
\n \n
\n
\n
\n
\n
\n
label
\n
\n
string
\n
The InputSchemaParameterslabel.
\n
\n \n
\n
\n
\n
\n
\n
name [required]
\n
\n
string
\n
The InputSchemaParametersname.
\n
\n \n
\n
\n
\n
\n
\n
type [required]
\n
\n
enum
\n
The definition of InputSchemaParametersType object. \nAllowed enum values: STRING,NUMBER,BOOLEAN,OBJECT,ARRAY_STRING,ARRAY_NUMBER,ARRAY_BOOLEAN,ARRAY_OBJECT
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
outputSchema
\n
\n
object
\n
A list of output parameters for the workflow.
\n
\n
\n
\n
\n
\n
parameters
\n
\n
[object]
\n
The OutputSchemaparameters.
\n
\n
\n
\n
\n
\n
defaultValue
\n
\n
\n
The OutputSchemaParametersdefaultValue.
\n
\n \n
\n
\n
\n
\n
\n
description
\n
\n
string
\n
The OutputSchemaParametersdescription.
\n
\n \n
\n
\n
\n
\n
\n
label
\n
\n
string
\n
The OutputSchemaParameterslabel.
\n
\n \n
\n
\n
\n
\n
\n
name [required]
\n
\n
string
\n
The OutputSchemaParametersname.
\n
\n \n
\n
\n
\n
\n
\n
type [required]
\n
\n
enum
\n
The definition of OutputSchemaParametersType object. \nAllowed enum values: STRING,NUMBER,BOOLEAN,OBJECT,ARRAY_STRING,ARRAY_NUMBER,ARRAY_BOOLEAN,ARRAY_OBJECT
\n
\n \n
\n
\n
\n
\n
\n
value
\n
\n
\n
The OutputSchemaParametersvalue.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
steps
\n
\n
[object]
\n
A Step is a sub-component of a workflow. Each Step performs an action.
\n
\n
\n
\n
\n
\n
actionId [required]
\n
\n
string
\n
The unique identifier of an action.
\n
\n \n
\n
\n
\n
\n
\n
completionGate
\n
\n
object
\n
Used to create conditions before running subsequent actions.
\n
\n
\n
\n
\n
\n
completionCondition [required]
\n
\n
object
\n
The definition of CompletionCondition object.
\n
\n
\n
\n
\n
\n
operand1 [required]
\n
\n
\n
The CompletionConditionoperand1.
\n
\n \n
\n
\n
\n
\n
\n
operand2
\n
\n
\n
The CompletionConditionoperand2.
\n
\n \n
\n
\n
\n
\n
\n
operator [required]
\n
\n
enum
\n
The definition of CompletionConditionOperator object. \nAllowed enum values: OPERATOR_EQUAL,OPERATOR_NOT_EQUAL,OPERATOR_GREATER_THAN,OPERATOR_LESS_THAN,OPERATOR_GREATER_THAN_OR_EQUAL_TO,OPERATOR_LESS_THAN_OR_EQUAL_TO,OPERATOR_CONTAINS,OPERATOR_DOES_NOT_CONTAIN,OPERATOR_IS_NULL,OPERATOR_IS_NOT_NULL,OPERATOR_IS_EMPTY,OPERATOR_IS_NOT_EMPTY
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
retryStrategy [required]
\n
\n
object
\n
The definition of RetryStrategy object.
\n
\n
\n
\n
\n
\n
kind [required]
\n
\n
enum
\n
The definition of RetryStrategyKind object. \nAllowed enum values: RETRY_STRATEGY_LINEAR
\n
\n \n
\n
\n
\n
\n
\n
linear
\n
\n
object
\n
The definition of RetryStrategyLinear object.
\n
\n
\n
\n
\n
\n
interval [required]
\n
\n
string
\n
The RetryStrategyLinearinterval. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s
\n
\n \n
\n
\n
\n
\n
\n
maxRetries [required]
\n
\n
double
\n
The RetryStrategyLinearmaxRetries.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
connectionLabel
\n
\n
string
\n
The unique identifier of a connection defined in the spec.
\n
\n \n
\n
\n
\n
\n
\n
display
\n
\n
object
\n
The definition of StepDisplay object.
\n
\n
\n
\n
\n
\n
bounds
\n
\n
object
\n
The definition of StepDisplayBounds object.
\n
\n
\n
\n
\n
\n
x
\n
\n
double
\n
The boundsx.
\n
\n \n
\n
\n
\n
\n
\n
y
\n
\n
double
\n
The boundsy.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
errorHandlers
\n
\n
[object]
\n
The SteperrorHandlers.
\n
\n
\n
\n
\n
\n
fallbackStepName [required]
\n
\n
string
\n
The ErrorHandlerfallbackStepName.
\n
\n \n
\n
\n
\n
\n
\n
retryStrategy [required]
\n
\n
object
\n
The definition of RetryStrategy object.
\n
\n
\n
\n
\n
\n
kind [required]
\n
\n
enum
\n
The definition of RetryStrategyKind object. \nAllowed enum values: RETRY_STRATEGY_LINEAR
\n
\n \n
\n
\n
\n
\n
\n
linear
\n
\n
object
\n
The definition of RetryStrategyLinear object.
\n
\n
\n
\n
\n
\n
interval [required]
\n
\n
string
\n
The RetryStrategyLinearinterval. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s
\n
\n \n
\n
\n
\n
\n
\n
maxRetries [required]
\n
\n
double
\n
The RetryStrategyLinearmaxRetries.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
name [required]
\n
\n
string
\n
Name of the step.
\n
\n \n
\n
\n
\n
\n
\n
outboundEdges
\n
\n
[object]
\n
A list of subsequent actions to run.
\n
\n
\n
\n
\n
\n
branchName [required]
\n
\n
string
\n
The OutboundEdgebranchName.
\n
\n \n
\n
\n
\n
\n
\n
nextStepName [required]
\n
\n
string
\n
The OutboundEdgenextStepName.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
parameters
\n
\n
[object]
\n
A list of inputs for an action.
\n
\n
\n
\n
\n
\n
name [required]
\n
\n
string
\n
The Parametername.
\n
\n \n
\n
\n
\n
\n
\n
value [required]
\n
\n
\n
The Parametervalue.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
readinessGate
\n
\n
object
\n
Used to merge multiple branches into a single branch.
\n
\n
\n
\n
\n
\n
thresholdType [required]
\n
\n
enum
\n
The definition of ReadinessGateThresholdType object. \nAllowed enum values: ANY,ALL
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
triggers
\n
\n
[ <oneOf>]
\n
The list of triggers that activate this workflow. At least one trigger is required, and each trigger type may appear at most once.
\n
\n
\n
\n
\n
\n
Option 1
\n
\n
object
\n
Schema for an API-based trigger.
\n
\n
\n
\n
\n
\n
apiTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA an API. The workflow must be published.
\n
\n
\n
\n
\n
\n
rateLimit
\n
\n
object
\n
Defines a rate limit for a trigger.
\n
\n
\n
\n
\n
\n
count
\n
\n
int64
\n
The TriggerRateLimitcount.
\n
\n \n
\n
\n
\n
\n
\n
interval
\n
\n
string
\n
The TriggerRateLimitinterval. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 2
\n
\n
object
\n
Schema for an App-based trigger.
\n
\n
\n
\n
\n
\n
appTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA an App.
\n
\n \n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 3
\n
\n
object
\n
Schema for a Case-based trigger.
\n
\n
\n
\n
\n
\n
caseTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA a Case. For automatic triggering a handle must be configured and the workflow must be published.
\n
\n
\n
\n
\n
\n
rateLimit
\n
\n
object
\n
Defines a rate limit for a trigger.
\n
\n
\n
\n
\n
\n
count
\n
\n
int64
\n
The TriggerRateLimitcount.
\n
\n \n
\n
\n
\n
\n
\n
interval
\n
\n
string
\n
The TriggerRateLimitinterval. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 4
\n
\n
object
\n
Schema for a Change Event-based trigger.
\n
\n
\n
\n
\n
\n
changeEventTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA a Change Event.
\n
\n \n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 5
\n
\n
object
\n
Schema for a Dashboard-based trigger.
\n
\n
\n
\n
\n
\n
dashboardTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA a Dashboard.
\n
\n \n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 6
\n
\n
object
\n
Schema for a GitHub webhook-based trigger.
\n
\n
\n
\n
\n
\n
githubWebhookTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA GitHub webhook. To trigger a workflow from GitHub, you must set a webhookSecret. In your GitHub Webhook Settings, set the Payload URL to "base_url"/api/v2/workflows/"workflow_id"/webhook?orgId="org_id", select application/json for the content type, and be highly recommend enabling SSL verification for security. The workflow must be published.
\n
\n
\n
\n
\n
\n
rateLimit
\n
\n
object
\n
Defines a rate limit for a trigger.
\n
\n
\n
\n
\n
\n
count
\n
\n
int64
\n
The TriggerRateLimitcount.
\n
\n \n
\n
\n
\n
\n
\n
interval
\n
\n
string
\n
The TriggerRateLimitinterval. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 7
\n
\n
object
\n
Schema for an Incident-based trigger.
\n
\n
\n
\n
\n
\n
incidentTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA an Incident. For automatic triggering a handle must be configured and the workflow must be published.
\n
\n
\n
\n
\n
\n
rateLimit
\n
\n
object
\n
Defines a rate limit for a trigger.
\n
\n
\n
\n
\n
\n
count
\n
\n
int64
\n
The TriggerRateLimitcount.
\n
\n \n
\n
\n
\n
\n
\n
interval
\n
\n
string
\n
The TriggerRateLimitinterval. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 8
\n
\n
object
\n
Schema for a Monitor-based trigger.
\n
\n
\n
\n
\n
\n
monitorTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA a Monitor. For automatic triggering a handle must be configured and the workflow must be published.
\n
\n
\n
\n
\n
\n
rateLimit
\n
\n
object
\n
Defines a rate limit for a trigger.
\n
\n
\n
\n
\n
\n
count
\n
\n
int64
\n
The TriggerRateLimitcount.
\n
\n \n
\n
\n
\n
\n
\n
interval
\n
\n
string
\n
The TriggerRateLimitinterval. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 9
\n
\n
object
\n
Schema for a Schedule-based trigger.
\n
\n
\n
\n
\n
\n
scheduleTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA a Schedule. The workflow must be published.
\n
\n
\n
\n
\n
\n
rruleExpression [required]
\n
\n
string
\n
Recurrence rule expression for scheduling.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 10
\n
\n
object
\n
Schema for a Security-based trigger.
\n
\n
\n
\n
\n
\n
securityTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA a Security Signal or Finding. For automatic triggering a handle must be configured and the workflow must be published.
\n
\n
\n
\n
\n
\n
rateLimit
\n
\n
object
\n
Defines a rate limit for a trigger.
\n
\n
\n
\n
\n
\n
count
\n
\n
int64
\n
The TriggerRateLimitcount.
\n
\n \n
\n
\n
\n
\n
\n
interval
\n
\n
string
\n
The TriggerRateLimitinterval. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 11
\n
\n
object
\n
Schema for a Slack-based trigger.
\n
\n
\n
\n
\n
\n
slackTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA Slack. The workflow must be published.
\n
\n \n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 12
\n
\n
object
\n
Schema for a Workflow-based trigger.
\n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
workflowTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA the Datadog UI. Only required if no other trigger exists.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
tags
\n
\n
[string]
\n
Tags of the workflow.
\n
\n \n
\n
\n
\n
\n
\n
updatedAt
\n
\n
date-time
\n
When the workflow was last updated.
\n
\n \n
\n
\n
\n
\n
\n
webhookSecret
\n
\n
string
\n
If a Webhook trigger is defined on this workflow, a webhookSecret is required and should be provided here.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
id
\n
\n
string
\n
The workflow identifier
\n
\n \n
\n
\n
\n
\n
\n
relationships
\n
\n
object
\n
The definition of WorkflowDataRelationships object.
\n
\n
\n
\n
\n
\n
creator
\n
\n
object
\n
The definition of WorkflowUserRelationship object.
\n
\n
\n
\n
\n
\n
data
\n
\n
object
\n
The definition of WorkflowUserRelationshipData object.
\n
\n
\n
\n
\n
\n
id [required]
\n
\n
string
\n
The user identifier
\n
\n \n
\n
\n
\n
\n
\n
type [required]
\n
\n
enum
\n
The definition of WorkflowUserRelationshipType object. \nAllowed enum values: users
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
owner
\n
\n
object
\n
The definition of WorkflowUserRelationship object.
\n
\n
\n
\n
\n
\n
data
\n
\n
object
\n
The definition of WorkflowUserRelationshipData object.
\n
\n
\n
\n
\n
\n
id [required]
\n
\n
string
\n
The user identifier
\n
\n \n
\n
\n
\n
\n
\n
type [required]
\n
\n
enum
\n
The definition of WorkflowUserRelationshipType object. \nAllowed enum values: users
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
type [required]
\n
\n
enum
\n
The definition of WorkflowDataType object. \nAllowed enum values: workflows
Set the workflow to published or unpublished. Workflows in an unpublished state will only be executable via manual runs. Automatic triggers such as Schedule will not execute the workflow until it is published.
\n
\n \n
\n
\n
\n
\n
\n
spec [required]
\n
\n
object
\n
The spec defines what the workflow does.
\n
\n
\n
\n
\n
\n
annotations
\n
\n
[object]
\n
A list of annotations used in the workflow. These are like sticky notes for your workflow!
\n
\n
\n
\n
\n
\n
display [required]
\n
\n
object
\n
The definition of AnnotationDisplay object.
\n
\n
\n
\n
\n
\n
bounds
\n
\n
object
\n
The definition of AnnotationDisplayBounds object.
\n
\n
\n
\n
\n
\n
height
\n
\n
double
\n
The boundsheight.
\n
\n \n
\n
\n
\n
\n
\n
width
\n
\n
double
\n
The boundswidth.
\n
\n \n
\n
\n
\n
\n
\n
x
\n
\n
double
\n
The boundsx.
\n
\n \n
\n
\n
\n
\n
\n
y
\n
\n
double
\n
The boundsy.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
id [required]
\n
\n
string
\n
The Annotationid.
\n
\n \n
\n
\n
\n
\n
\n
markdownTextAnnotation [required]
\n
\n
object
\n
The definition of AnnotationMarkdownTextAnnotation object.
\n
\n
\n
\n
\n
\n
text
\n
\n
string
\n
The markdownTextAnnotationtext.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
connectionEnvs
\n
\n
[object]
\n
A list of connections or connection groups used in the workflow.
\n
\n
\n
\n
\n
\n
connectionGroups
\n
\n
[object]
\n
The ConnectionEnvconnectionGroups.
\n
\n
\n
\n
\n
\n
connectionGroupId [required]
\n
\n
string
\n
The ConnectionGroupconnectionGroupId.
\n
\n \n
\n
\n
\n
\n
\n
label [required]
\n
\n
string
\n
The ConnectionGrouplabel.
\n
\n \n
\n
\n
\n
\n
\n
tags [required]
\n
\n
[string]
\n
The ConnectionGrouptags.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
connections
\n
\n
[object]
\n
The ConnectionEnvconnections.
\n
\n
\n
\n
\n
\n
connectionId [required]
\n
\n
string
\n
The ConnectionconnectionId.
\n
\n \n
\n
\n
\n
\n
\n
label [required]
\n
\n
string
\n
The Connectionlabel.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
env [required]
\n
\n
enum
\n
The definition of ConnectionEnvEnv object. \nAllowed enum values: default
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
handle
\n
\n
string
\n
Unique identifier used to trigger workflows automatically in Datadog.
\n
\n \n
\n
\n
\n
\n
\n
inputSchema
\n
\n
object
\n
A list of input parameters for the workflow. These can be used as dynamic runtime values in your workflow.
\n
\n
\n
\n
\n
\n
parameters
\n
\n
[object]
\n
The InputSchemaparameters.
\n
\n
\n
\n
\n
\n
defaultValue
\n
\n
\n
The InputSchemaParametersdefaultValue.
\n
\n \n
\n
\n
\n
\n
\n
description
\n
\n
string
\n
The InputSchemaParametersdescription.
\n
\n \n
\n
\n
\n
\n
\n
label
\n
\n
string
\n
The InputSchemaParameterslabel.
\n
\n \n
\n
\n
\n
\n
\n
name [required]
\n
\n
string
\n
The InputSchemaParametersname.
\n
\n \n
\n
\n
\n
\n
\n
type [required]
\n
\n
enum
\n
The definition of InputSchemaParametersType object. \nAllowed enum values: STRING,NUMBER,BOOLEAN,OBJECT,ARRAY_STRING,ARRAY_NUMBER,ARRAY_BOOLEAN,ARRAY_OBJECT
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
outputSchema
\n
\n
object
\n
A list of output parameters for the workflow.
\n
\n
\n
\n
\n
\n
parameters
\n
\n
[object]
\n
The OutputSchemaparameters.
\n
\n
\n
\n
\n
\n
defaultValue
\n
\n
\n
The OutputSchemaParametersdefaultValue.
\n
\n \n
\n
\n
\n
\n
\n
description
\n
\n
string
\n
The OutputSchemaParametersdescription.
\n
\n \n
\n
\n
\n
\n
\n
label
\n
\n
string
\n
The OutputSchemaParameterslabel.
\n
\n \n
\n
\n
\n
\n
\n
name [required]
\n
\n
string
\n
The OutputSchemaParametersname.
\n
\n \n
\n
\n
\n
\n
\n
type [required]
\n
\n
enum
\n
The definition of OutputSchemaParametersType object. \nAllowed enum values: STRING,NUMBER,BOOLEAN,OBJECT,ARRAY_STRING,ARRAY_NUMBER,ARRAY_BOOLEAN,ARRAY_OBJECT
\n
\n \n
\n
\n
\n
\n
\n
value
\n
\n
\n
The OutputSchemaParametersvalue.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
steps
\n
\n
[object]
\n
A Step is a sub-component of a workflow. Each Step performs an action.
\n
\n
\n
\n
\n
\n
actionId [required]
\n
\n
string
\n
The unique identifier of an action.
\n
\n \n
\n
\n
\n
\n
\n
completionGate
\n
\n
object
\n
Used to create conditions before running subsequent actions.
\n
\n
\n
\n
\n
\n
completionCondition [required]
\n
\n
object
\n
The definition of CompletionCondition object.
\n
\n
\n
\n
\n
\n
operand1 [required]
\n
\n
\n
The CompletionConditionoperand1.
\n
\n \n
\n
\n
\n
\n
\n
operand2
\n
\n
\n
The CompletionConditionoperand2.
\n
\n \n
\n
\n
\n
\n
\n
operator [required]
\n
\n
enum
\n
The definition of CompletionConditionOperator object. \nAllowed enum values: OPERATOR_EQUAL,OPERATOR_NOT_EQUAL,OPERATOR_GREATER_THAN,OPERATOR_LESS_THAN,OPERATOR_GREATER_THAN_OR_EQUAL_TO,OPERATOR_LESS_THAN_OR_EQUAL_TO,OPERATOR_CONTAINS,OPERATOR_DOES_NOT_CONTAIN,OPERATOR_IS_NULL,OPERATOR_IS_NOT_NULL,OPERATOR_IS_EMPTY,OPERATOR_IS_NOT_EMPTY
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
retryStrategy [required]
\n
\n
object
\n
The definition of RetryStrategy object.
\n
\n
\n
\n
\n
\n
kind [required]
\n
\n
enum
\n
The definition of RetryStrategyKind object. \nAllowed enum values: RETRY_STRATEGY_LINEAR
\n
\n \n
\n
\n
\n
\n
\n
linear
\n
\n
object
\n
The definition of RetryStrategyLinear object.
\n
\n
\n
\n
\n
\n
interval [required]
\n
\n
string
\n
The RetryStrategyLinearinterval. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s
\n
\n \n
\n
\n
\n
\n
\n
maxRetries [required]
\n
\n
double
\n
The RetryStrategyLinearmaxRetries.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
connectionLabel
\n
\n
string
\n
The unique identifier of a connection defined in the spec.
\n
\n \n
\n
\n
\n
\n
\n
display
\n
\n
object
\n
The definition of StepDisplay object.
\n
\n
\n
\n
\n
\n
bounds
\n
\n
object
\n
The definition of StepDisplayBounds object.
\n
\n
\n
\n
\n
\n
x
\n
\n
double
\n
The boundsx.
\n
\n \n
\n
\n
\n
\n
\n
y
\n
\n
double
\n
The boundsy.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
errorHandlers
\n
\n
[object]
\n
The SteperrorHandlers.
\n
\n
\n
\n
\n
\n
fallbackStepName [required]
\n
\n
string
\n
The ErrorHandlerfallbackStepName.
\n
\n \n
\n
\n
\n
\n
\n
retryStrategy [required]
\n
\n
object
\n
The definition of RetryStrategy object.
\n
\n
\n
\n
\n
\n
kind [required]
\n
\n
enum
\n
The definition of RetryStrategyKind object. \nAllowed enum values: RETRY_STRATEGY_LINEAR
\n
\n \n
\n
\n
\n
\n
\n
linear
\n
\n
object
\n
The definition of RetryStrategyLinear object.
\n
\n
\n
\n
\n
\n
interval [required]
\n
\n
string
\n
The RetryStrategyLinearinterval. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s
\n
\n \n
\n
\n
\n
\n
\n
maxRetries [required]
\n
\n
double
\n
The RetryStrategyLinearmaxRetries.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
name [required]
\n
\n
string
\n
Name of the step.
\n
\n \n
\n
\n
\n
\n
\n
outboundEdges
\n
\n
[object]
\n
A list of subsequent actions to run.
\n
\n
\n
\n
\n
\n
branchName [required]
\n
\n
string
\n
The OutboundEdgebranchName.
\n
\n \n
\n
\n
\n
\n
\n
nextStepName [required]
\n
\n
string
\n
The OutboundEdgenextStepName.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
parameters
\n
\n
[object]
\n
A list of inputs for an action.
\n
\n
\n
\n
\n
\n
name [required]
\n
\n
string
\n
The Parametername.
\n
\n \n
\n
\n
\n
\n
\n
value [required]
\n
\n
\n
The Parametervalue.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
readinessGate
\n
\n
object
\n
Used to merge multiple branches into a single branch.
\n
\n
\n
\n
\n
\n
thresholdType [required]
\n
\n
enum
\n
The definition of ReadinessGateThresholdType object. \nAllowed enum values: ANY,ALL
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
triggers
\n
\n
[ <oneOf>]
\n
The list of triggers that activate this workflow. At least one trigger is required, and each trigger type may appear at most once.
\n
\n
\n
\n
\n
\n
Option 1
\n
\n
object
\n
Schema for an API-based trigger.
\n
\n
\n
\n
\n
\n
apiTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA an API. The workflow must be published.
\n
\n
\n
\n
\n
\n
rateLimit
\n
\n
object
\n
Defines a rate limit for a trigger.
\n
\n
\n
\n
\n
\n
count
\n
\n
int64
\n
The TriggerRateLimitcount.
\n
\n \n
\n
\n
\n
\n
\n
interval
\n
\n
string
\n
The TriggerRateLimitinterval. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 2
\n
\n
object
\n
Schema for an App-based trigger.
\n
\n
\n
\n
\n
\n
appTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA an App.
\n
\n \n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 3
\n
\n
object
\n
Schema for a Case-based trigger.
\n
\n
\n
\n
\n
\n
caseTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA a Case. For automatic triggering a handle must be configured and the workflow must be published.
\n
\n
\n
\n
\n
\n
rateLimit
\n
\n
object
\n
Defines a rate limit for a trigger.
\n
\n
\n
\n
\n
\n
count
\n
\n
int64
\n
The TriggerRateLimitcount.
\n
\n \n
\n
\n
\n
\n
\n
interval
\n
\n
string
\n
The TriggerRateLimitinterval. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 4
\n
\n
object
\n
Schema for a Change Event-based trigger.
\n
\n
\n
\n
\n
\n
changeEventTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA a Change Event.
\n
\n \n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 5
\n
\n
object
\n
Schema for a Dashboard-based trigger.
\n
\n
\n
\n
\n
\n
dashboardTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA a Dashboard.
\n
\n \n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 6
\n
\n
object
\n
Schema for a GitHub webhook-based trigger.
\n
\n
\n
\n
\n
\n
githubWebhookTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA GitHub webhook. To trigger a workflow from GitHub, you must set a webhookSecret. In your GitHub Webhook Settings, set the Payload URL to "base_url"/api/v2/workflows/"workflow_id"/webhook?orgId="org_id", select application/json for the content type, and be highly recommend enabling SSL verification for security. The workflow must be published.
\n
\n
\n
\n
\n
\n
rateLimit
\n
\n
object
\n
Defines a rate limit for a trigger.
\n
\n
\n
\n
\n
\n
count
\n
\n
int64
\n
The TriggerRateLimitcount.
\n
\n \n
\n
\n
\n
\n
\n
interval
\n
\n
string
\n
The TriggerRateLimitinterval. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 7
\n
\n
object
\n
Schema for an Incident-based trigger.
\n
\n
\n
\n
\n
\n
incidentTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA an Incident. For automatic triggering a handle must be configured and the workflow must be published.
\n
\n
\n
\n
\n
\n
rateLimit
\n
\n
object
\n
Defines a rate limit for a trigger.
\n
\n
\n
\n
\n
\n
count
\n
\n
int64
\n
The TriggerRateLimitcount.
\n
\n \n
\n
\n
\n
\n
\n
interval
\n
\n
string
\n
The TriggerRateLimitinterval. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 8
\n
\n
object
\n
Schema for a Monitor-based trigger.
\n
\n
\n
\n
\n
\n
monitorTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA a Monitor. For automatic triggering a handle must be configured and the workflow must be published.
\n
\n
\n
\n
\n
\n
rateLimit
\n
\n
object
\n
Defines a rate limit for a trigger.
\n
\n
\n
\n
\n
\n
count
\n
\n
int64
\n
The TriggerRateLimitcount.
\n
\n \n
\n
\n
\n
\n
\n
interval
\n
\n
string
\n
The TriggerRateLimitinterval. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 9
\n
\n
object
\n
Schema for a Schedule-based trigger.
\n
\n
\n
\n
\n
\n
scheduleTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA a Schedule. The workflow must be published.
\n
\n
\n
\n
\n
\n
rruleExpression [required]
\n
\n
string
\n
Recurrence rule expression for scheduling.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 10
\n
\n
object
\n
Schema for a Security-based trigger.
\n
\n
\n
\n
\n
\n
securityTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA a Security Signal or Finding. For automatic triggering a handle must be configured and the workflow must be published.
\n
\n
\n
\n
\n
\n
rateLimit
\n
\n
object
\n
Defines a rate limit for a trigger.
\n
\n
\n
\n
\n
\n
count
\n
\n
int64
\n
The TriggerRateLimitcount.
\n
\n \n
\n
\n
\n
\n
\n
interval
\n
\n
string
\n
The TriggerRateLimitinterval. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 11
\n
\n
object
\n
Schema for a Slack-based trigger.
\n
\n
\n
\n
\n
\n
slackTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA Slack. The workflow must be published.
\n
\n \n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 12
\n
\n
object
\n
Schema for a Workflow-based trigger.
\n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
workflowTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA the Datadog UI. Only required if no other trigger exists.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
tags
\n
\n
[string]
\n
Tags of the workflow.
\n
\n \n
\n
\n
\n
\n
\n
updatedAt
\n
\n
date-time
\n
When the workflow was last updated.
\n
\n \n
\n
\n
\n
\n
\n
webhookSecret
\n
\n
string
\n
If a Webhook trigger is defined on this workflow, a webhookSecret is required and should be provided here.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
id
\n
\n
string
\n
The workflow identifier
\n
\n \n
\n
\n
\n
\n
\n
relationships
\n
\n
object
\n
The definition of WorkflowDataRelationships object.
\n
\n
\n
\n
\n
\n
creator
\n
\n
object
\n
The definition of WorkflowUserRelationship object.
\n
\n
\n
\n
\n
\n
data
\n
\n
object
\n
The definition of WorkflowUserRelationshipData object.
\n
\n
\n
\n
\n
\n
id [required]
\n
\n
string
\n
The user identifier
\n
\n \n
\n
\n
\n
\n
\n
type [required]
\n
\n
enum
\n
The definition of WorkflowUserRelationshipType object. \nAllowed enum values: users
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
owner
\n
\n
object
\n
The definition of WorkflowUserRelationship object.
\n
\n
\n
\n
\n
\n
data
\n
\n
object
\n
The definition of WorkflowUserRelationshipData object.
\n
\n
\n
\n
\n
\n
id [required]
\n
\n
string
\n
The user identifier
\n
\n \n
\n
\n
\n
\n
\n
type [required]
\n
\n
enum
\n
The definition of WorkflowUserRelationshipType object. \nAllowed enum values: users
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
type [required]
\n
\n
enum
\n
The definition of WorkflowDataType object. \nAllowed enum values: workflows
The definition of WorkflowDataUpdateAttributes object.
\n
\n
\n
\n
\n
\n
createdAt
\n
\n
date-time
\n
When the workflow was created.
\n
\n \n
\n
\n
\n
\n
\n
description
\n
\n
string
\n
Description of the workflow.
\n
\n \n
\n
\n
\n
\n
\n
name
\n
\n
string
\n
Name of the workflow.
\n
\n \n
\n
\n
\n
\n
\n
published
\n
\n
boolean
\n
Set the workflow to published or unpublished. Workflows in an unpublished state will only be executable via manual runs. Automatic triggers such as Schedule will not execute the workflow until it is published.
\n
\n \n
\n
\n
\n
\n
\n
spec
\n
\n
object
\n
The spec defines what the workflow does.
\n
\n
\n
\n
\n
\n
annotations
\n
\n
[object]
\n
A list of annotations used in the workflow. These are like sticky notes for your workflow!
\n
\n
\n
\n
\n
\n
display [required]
\n
\n
object
\n
The definition of AnnotationDisplay object.
\n
\n
\n
\n
\n
\n
bounds
\n
\n
object
\n
The definition of AnnotationDisplayBounds object.
\n
\n
\n
\n
\n
\n
height
\n
\n
double
\n
The boundsheight.
\n
\n \n
\n
\n
\n
\n
\n
width
\n
\n
double
\n
The boundswidth.
\n
\n \n
\n
\n
\n
\n
\n
x
\n
\n
double
\n
The boundsx.
\n
\n \n
\n
\n
\n
\n
\n
y
\n
\n
double
\n
The boundsy.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
id [required]
\n
\n
string
\n
The Annotationid.
\n
\n \n
\n
\n
\n
\n
\n
markdownTextAnnotation [required]
\n
\n
object
\n
The definition of AnnotationMarkdownTextAnnotation object.
\n
\n
\n
\n
\n
\n
text
\n
\n
string
\n
The markdownTextAnnotationtext.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
connectionEnvs
\n
\n
[object]
\n
A list of connections or connection groups used in the workflow.
\n
\n
\n
\n
\n
\n
connectionGroups
\n
\n
[object]
\n
The ConnectionEnvconnectionGroups.
\n
\n
\n
\n
\n
\n
connectionGroupId [required]
\n
\n
string
\n
The ConnectionGroupconnectionGroupId.
\n
\n \n
\n
\n
\n
\n
\n
label [required]
\n
\n
string
\n
The ConnectionGrouplabel.
\n
\n \n
\n
\n
\n
\n
\n
tags [required]
\n
\n
[string]
\n
The ConnectionGrouptags.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
connections
\n
\n
[object]
\n
The ConnectionEnvconnections.
\n
\n
\n
\n
\n
\n
connectionId [required]
\n
\n
string
\n
The ConnectionconnectionId.
\n
\n \n
\n
\n
\n
\n
\n
label [required]
\n
\n
string
\n
The Connectionlabel.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
env [required]
\n
\n
enum
\n
The definition of ConnectionEnvEnv object. \nAllowed enum values: default
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
handle
\n
\n
string
\n
Unique identifier used to trigger workflows automatically in Datadog.
\n
\n \n
\n
\n
\n
\n
\n
inputSchema
\n
\n
object
\n
A list of input parameters for the workflow. These can be used as dynamic runtime values in your workflow.
\n
\n
\n
\n
\n
\n
parameters
\n
\n
[object]
\n
The InputSchemaparameters.
\n
\n
\n
\n
\n
\n
defaultValue
\n
\n
\n
The InputSchemaParametersdefaultValue.
\n
\n \n
\n
\n
\n
\n
\n
description
\n
\n
string
\n
The InputSchemaParametersdescription.
\n
\n \n
\n
\n
\n
\n
\n
label
\n
\n
string
\n
The InputSchemaParameterslabel.
\n
\n \n
\n
\n
\n
\n
\n
name [required]
\n
\n
string
\n
The InputSchemaParametersname.
\n
\n \n
\n
\n
\n
\n
\n
type [required]
\n
\n
enum
\n
The definition of InputSchemaParametersType object. \nAllowed enum values: STRING,NUMBER,BOOLEAN,OBJECT,ARRAY_STRING,ARRAY_NUMBER,ARRAY_BOOLEAN,ARRAY_OBJECT
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
outputSchema
\n
\n
object
\n
A list of output parameters for the workflow.
\n
\n
\n
\n
\n
\n
parameters
\n
\n
[object]
\n
The OutputSchemaparameters.
\n
\n
\n
\n
\n
\n
defaultValue
\n
\n
\n
The OutputSchemaParametersdefaultValue.
\n
\n \n
\n
\n
\n
\n
\n
description
\n
\n
string
\n
The OutputSchemaParametersdescription.
\n
\n \n
\n
\n
\n
\n
\n
label
\n
\n
string
\n
The OutputSchemaParameterslabel.
\n
\n \n
\n
\n
\n
\n
\n
name [required]
\n
\n
string
\n
The OutputSchemaParametersname.
\n
\n \n
\n
\n
\n
\n
\n
type [required]
\n
\n
enum
\n
The definition of OutputSchemaParametersType object. \nAllowed enum values: STRING,NUMBER,BOOLEAN,OBJECT,ARRAY_STRING,ARRAY_NUMBER,ARRAY_BOOLEAN,ARRAY_OBJECT
\n
\n \n
\n
\n
\n
\n
\n
value
\n
\n
\n
The OutputSchemaParametersvalue.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
steps
\n
\n
[object]
\n
A Step is a sub-component of a workflow. Each Step performs an action.
\n
\n
\n
\n
\n
\n
actionId [required]
\n
\n
string
\n
The unique identifier of an action.
\n
\n \n
\n
\n
\n
\n
\n
completionGate
\n
\n
object
\n
Used to create conditions before running subsequent actions.
\n
\n
\n
\n
\n
\n
completionCondition [required]
\n
\n
object
\n
The definition of CompletionCondition object.
\n
\n
\n
\n
\n
\n
operand1 [required]
\n
\n
\n
The CompletionConditionoperand1.
\n
\n \n
\n
\n
\n
\n
\n
operand2
\n
\n
\n
The CompletionConditionoperand2.
\n
\n \n
\n
\n
\n
\n
\n
operator [required]
\n
\n
enum
\n
The definition of CompletionConditionOperator object. \nAllowed enum values: OPERATOR_EQUAL,OPERATOR_NOT_EQUAL,OPERATOR_GREATER_THAN,OPERATOR_LESS_THAN,OPERATOR_GREATER_THAN_OR_EQUAL_TO,OPERATOR_LESS_THAN_OR_EQUAL_TO,OPERATOR_CONTAINS,OPERATOR_DOES_NOT_CONTAIN,OPERATOR_IS_NULL,OPERATOR_IS_NOT_NULL,OPERATOR_IS_EMPTY,OPERATOR_IS_NOT_EMPTY
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
retryStrategy [required]
\n
\n
object
\n
The definition of RetryStrategy object.
\n
\n
\n
\n
\n
\n
kind [required]
\n
\n
enum
\n
The definition of RetryStrategyKind object. \nAllowed enum values: RETRY_STRATEGY_LINEAR
\n
\n \n
\n
\n
\n
\n
\n
linear
\n
\n
object
\n
The definition of RetryStrategyLinear object.
\n
\n
\n
\n
\n
\n
interval [required]
\n
\n
string
\n
The RetryStrategyLinearinterval. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s
\n
\n \n
\n
\n
\n
\n
\n
maxRetries [required]
\n
\n
double
\n
The RetryStrategyLinearmaxRetries.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
connectionLabel
\n
\n
string
\n
The unique identifier of a connection defined in the spec.
\n
\n \n
\n
\n
\n
\n
\n
display
\n
\n
object
\n
The definition of StepDisplay object.
\n
\n
\n
\n
\n
\n
bounds
\n
\n
object
\n
The definition of StepDisplayBounds object.
\n
\n
\n
\n
\n
\n
x
\n
\n
double
\n
The boundsx.
\n
\n \n
\n
\n
\n
\n
\n
y
\n
\n
double
\n
The boundsy.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
errorHandlers
\n
\n
[object]
\n
The SteperrorHandlers.
\n
\n
\n
\n
\n
\n
fallbackStepName [required]
\n
\n
string
\n
The ErrorHandlerfallbackStepName.
\n
\n \n
\n
\n
\n
\n
\n
retryStrategy [required]
\n
\n
object
\n
The definition of RetryStrategy object.
\n
\n
\n
\n
\n
\n
kind [required]
\n
\n
enum
\n
The definition of RetryStrategyKind object. \nAllowed enum values: RETRY_STRATEGY_LINEAR
\n
\n \n
\n
\n
\n
\n
\n
linear
\n
\n
object
\n
The definition of RetryStrategyLinear object.
\n
\n
\n
\n
\n
\n
interval [required]
\n
\n
string
\n
The RetryStrategyLinearinterval. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s
\n
\n \n
\n
\n
\n
\n
\n
maxRetries [required]
\n
\n
double
\n
The RetryStrategyLinearmaxRetries.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
name [required]
\n
\n
string
\n
Name of the step.
\n
\n \n
\n
\n
\n
\n
\n
outboundEdges
\n
\n
[object]
\n
A list of subsequent actions to run.
\n
\n
\n
\n
\n
\n
branchName [required]
\n
\n
string
\n
The OutboundEdgebranchName.
\n
\n \n
\n
\n
\n
\n
\n
nextStepName [required]
\n
\n
string
\n
The OutboundEdgenextStepName.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
parameters
\n
\n
[object]
\n
A list of inputs for an action.
\n
\n
\n
\n
\n
\n
name [required]
\n
\n
string
\n
The Parametername.
\n
\n \n
\n
\n
\n
\n
\n
value [required]
\n
\n
\n
The Parametervalue.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
readinessGate
\n
\n
object
\n
Used to merge multiple branches into a single branch.
\n
\n
\n
\n
\n
\n
thresholdType [required]
\n
\n
enum
\n
The definition of ReadinessGateThresholdType object. \nAllowed enum values: ANY,ALL
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
triggers
\n
\n
[ <oneOf>]
\n
The list of triggers that activate this workflow. At least one trigger is required, and each trigger type may appear at most once.
\n
\n
\n
\n
\n
\n
Option 1
\n
\n
object
\n
Schema for an API-based trigger.
\n
\n
\n
\n
\n
\n
apiTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA an API. The workflow must be published.
\n
\n
\n
\n
\n
\n
rateLimit
\n
\n
object
\n
Defines a rate limit for a trigger.
\n
\n
\n
\n
\n
\n
count
\n
\n
int64
\n
The TriggerRateLimitcount.
\n
\n \n
\n
\n
\n
\n
\n
interval
\n
\n
string
\n
The TriggerRateLimitinterval. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 2
\n
\n
object
\n
Schema for an App-based trigger.
\n
\n
\n
\n
\n
\n
appTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA an App.
\n
\n \n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 3
\n
\n
object
\n
Schema for a Case-based trigger.
\n
\n
\n
\n
\n
\n
caseTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA a Case. For automatic triggering a handle must be configured and the workflow must be published.
\n
\n
\n
\n
\n
\n
rateLimit
\n
\n
object
\n
Defines a rate limit for a trigger.
\n
\n
\n
\n
\n
\n
count
\n
\n
int64
\n
The TriggerRateLimitcount.
\n
\n \n
\n
\n
\n
\n
\n
interval
\n
\n
string
\n
The TriggerRateLimitinterval. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 4
\n
\n
object
\n
Schema for a Change Event-based trigger.
\n
\n
\n
\n
\n
\n
changeEventTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA a Change Event.
\n
\n \n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 5
\n
\n
object
\n
Schema for a Dashboard-based trigger.
\n
\n
\n
\n
\n
\n
dashboardTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA a Dashboard.
\n
\n \n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 6
\n
\n
object
\n
Schema for a GitHub webhook-based trigger.
\n
\n
\n
\n
\n
\n
githubWebhookTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA GitHub webhook. To trigger a workflow from GitHub, you must set a webhookSecret. In your GitHub Webhook Settings, set the Payload URL to "base_url"/api/v2/workflows/"workflow_id"/webhook?orgId="org_id", select application/json for the content type, and be highly recommend enabling SSL verification for security. The workflow must be published.
\n
\n
\n
\n
\n
\n
rateLimit
\n
\n
object
\n
Defines a rate limit for a trigger.
\n
\n
\n
\n
\n
\n
count
\n
\n
int64
\n
The TriggerRateLimitcount.
\n
\n \n
\n
\n
\n
\n
\n
interval
\n
\n
string
\n
The TriggerRateLimitinterval. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 7
\n
\n
object
\n
Schema for an Incident-based trigger.
\n
\n
\n
\n
\n
\n
incidentTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA an Incident. For automatic triggering a handle must be configured and the workflow must be published.
\n
\n
\n
\n
\n
\n
rateLimit
\n
\n
object
\n
Defines a rate limit for a trigger.
\n
\n
\n
\n
\n
\n
count
\n
\n
int64
\n
The TriggerRateLimitcount.
\n
\n \n
\n
\n
\n
\n
\n
interval
\n
\n
string
\n
The TriggerRateLimitinterval. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 8
\n
\n
object
\n
Schema for a Monitor-based trigger.
\n
\n
\n
\n
\n
\n
monitorTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA a Monitor. For automatic triggering a handle must be configured and the workflow must be published.
\n
\n
\n
\n
\n
\n
rateLimit
\n
\n
object
\n
Defines a rate limit for a trigger.
\n
\n
\n
\n
\n
\n
count
\n
\n
int64
\n
The TriggerRateLimitcount.
\n
\n \n
\n
\n
\n
\n
\n
interval
\n
\n
string
\n
The TriggerRateLimitinterval. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 9
\n
\n
object
\n
Schema for a Schedule-based trigger.
\n
\n
\n
\n
\n
\n
scheduleTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA a Schedule. The workflow must be published.
\n
\n
\n
\n
\n
\n
rruleExpression [required]
\n
\n
string
\n
Recurrence rule expression for scheduling.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 10
\n
\n
object
\n
Schema for a Security-based trigger.
\n
\n
\n
\n
\n
\n
securityTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA a Security Signal or Finding. For automatic triggering a handle must be configured and the workflow must be published.
\n
\n
\n
\n
\n
\n
rateLimit
\n
\n
object
\n
Defines a rate limit for a trigger.
\n
\n
\n
\n
\n
\n
count
\n
\n
int64
\n
The TriggerRateLimitcount.
\n
\n \n
\n
\n
\n
\n
\n
interval
\n
\n
string
\n
The TriggerRateLimitinterval. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 11
\n
\n
object
\n
Schema for a Slack-based trigger.
\n
\n
\n
\n
\n
\n
slackTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA Slack. The workflow must be published.
\n
\n \n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 12
\n
\n
object
\n
Schema for a Workflow-based trigger.
\n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
workflowTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA the Datadog UI. Only required if no other trigger exists.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
tags
\n
\n
[string]
\n
Tags of the workflow.
\n
\n \n
\n
\n
\n
\n
\n
updatedAt
\n
\n
date-time
\n
When the workflow was last updated.
\n
\n \n
\n
\n
\n
\n
\n
webhookSecret
\n
\n
string
\n
If a Webhook trigger is defined on this workflow, a webhookSecret is required and should be provided here.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
id
\n
\n
string
\n
The workflow identifier
\n
\n \n
\n
\n
\n
\n
\n
relationships
\n
\n
object
\n
The definition of WorkflowDataRelationships object.
\n
\n
\n
\n
\n
\n
creator
\n
\n
object
\n
The definition of WorkflowUserRelationship object.
\n
\n
\n
\n
\n
\n
data
\n
\n
object
\n
The definition of WorkflowUserRelationshipData object.
\n
\n
\n
\n
\n
\n
id [required]
\n
\n
string
\n
The user identifier
\n
\n \n
\n
\n
\n
\n
\n
type [required]
\n
\n
enum
\n
The definition of WorkflowUserRelationshipType object. \nAllowed enum values: users
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
owner
\n
\n
object
\n
The definition of WorkflowUserRelationship object.
\n
\n
\n
\n
\n
\n
data
\n
\n
object
\n
The definition of WorkflowUserRelationshipData object.
\n
\n
\n
\n
\n
\n
id [required]
\n
\n
string
\n
The user identifier
\n
\n \n
\n
\n
\n
\n
\n
type [required]
\n
\n
enum
\n
The definition of WorkflowUserRelationshipType object. \nAllowed enum values: users
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
type [required]
\n
\n
enum
\n
The definition of WorkflowDataType object. \nAllowed enum values: workflows
The definition of WorkflowDataUpdateAttributes object.
\n
\n
\n
\n
\n
\n
createdAt
\n
\n
date-time
\n
When the workflow was created.
\n
\n \n
\n
\n
\n
\n
\n
description
\n
\n
string
\n
Description of the workflow.
\n
\n \n
\n
\n
\n
\n
\n
name
\n
\n
string
\n
Name of the workflow.
\n
\n \n
\n
\n
\n
\n
\n
published
\n
\n
boolean
\n
Set the workflow to published or unpublished. Workflows in an unpublished state will only be executable via manual runs. Automatic triggers such as Schedule will not execute the workflow until it is published.
\n
\n \n
\n
\n
\n
\n
\n
spec
\n
\n
object
\n
The spec defines what the workflow does.
\n
\n
\n
\n
\n
\n
annotations
\n
\n
[object]
\n
A list of annotations used in the workflow. These are like sticky notes for your workflow!
\n
\n
\n
\n
\n
\n
display [required]
\n
\n
object
\n
The definition of AnnotationDisplay object.
\n
\n
\n
\n
\n
\n
bounds
\n
\n
object
\n
The definition of AnnotationDisplayBounds object.
\n
\n
\n
\n
\n
\n
height
\n
\n
double
\n
The boundsheight.
\n
\n \n
\n
\n
\n
\n
\n
width
\n
\n
double
\n
The boundswidth.
\n
\n \n
\n
\n
\n
\n
\n
x
\n
\n
double
\n
The boundsx.
\n
\n \n
\n
\n
\n
\n
\n
y
\n
\n
double
\n
The boundsy.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
id [required]
\n
\n
string
\n
The Annotationid.
\n
\n \n
\n
\n
\n
\n
\n
markdownTextAnnotation [required]
\n
\n
object
\n
The definition of AnnotationMarkdownTextAnnotation object.
\n
\n
\n
\n
\n
\n
text
\n
\n
string
\n
The markdownTextAnnotationtext.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
connectionEnvs
\n
\n
[object]
\n
A list of connections or connection groups used in the workflow.
\n
\n
\n
\n
\n
\n
connectionGroups
\n
\n
[object]
\n
The ConnectionEnvconnectionGroups.
\n
\n
\n
\n
\n
\n
connectionGroupId [required]
\n
\n
string
\n
The ConnectionGroupconnectionGroupId.
\n
\n \n
\n
\n
\n
\n
\n
label [required]
\n
\n
string
\n
The ConnectionGrouplabel.
\n
\n \n
\n
\n
\n
\n
\n
tags [required]
\n
\n
[string]
\n
The ConnectionGrouptags.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
connections
\n
\n
[object]
\n
The ConnectionEnvconnections.
\n
\n
\n
\n
\n
\n
connectionId [required]
\n
\n
string
\n
The ConnectionconnectionId.
\n
\n \n
\n
\n
\n
\n
\n
label [required]
\n
\n
string
\n
The Connectionlabel.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
env [required]
\n
\n
enum
\n
The definition of ConnectionEnvEnv object. \nAllowed enum values: default
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
handle
\n
\n
string
\n
Unique identifier used to trigger workflows automatically in Datadog.
\n
\n \n
\n
\n
\n
\n
\n
inputSchema
\n
\n
object
\n
A list of input parameters for the workflow. These can be used as dynamic runtime values in your workflow.
\n
\n
\n
\n
\n
\n
parameters
\n
\n
[object]
\n
The InputSchemaparameters.
\n
\n
\n
\n
\n
\n
defaultValue
\n
\n
\n
The InputSchemaParametersdefaultValue.
\n
\n \n
\n
\n
\n
\n
\n
description
\n
\n
string
\n
The InputSchemaParametersdescription.
\n
\n \n
\n
\n
\n
\n
\n
label
\n
\n
string
\n
The InputSchemaParameterslabel.
\n
\n \n
\n
\n
\n
\n
\n
name [required]
\n
\n
string
\n
The InputSchemaParametersname.
\n
\n \n
\n
\n
\n
\n
\n
type [required]
\n
\n
enum
\n
The definition of InputSchemaParametersType object. \nAllowed enum values: STRING,NUMBER,BOOLEAN,OBJECT,ARRAY_STRING,ARRAY_NUMBER,ARRAY_BOOLEAN,ARRAY_OBJECT
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
outputSchema
\n
\n
object
\n
A list of output parameters for the workflow.
\n
\n
\n
\n
\n
\n
parameters
\n
\n
[object]
\n
The OutputSchemaparameters.
\n
\n
\n
\n
\n
\n
defaultValue
\n
\n
\n
The OutputSchemaParametersdefaultValue.
\n
\n \n
\n
\n
\n
\n
\n
description
\n
\n
string
\n
The OutputSchemaParametersdescription.
\n
\n \n
\n
\n
\n
\n
\n
label
\n
\n
string
\n
The OutputSchemaParameterslabel.
\n
\n \n
\n
\n
\n
\n
\n
name [required]
\n
\n
string
\n
The OutputSchemaParametersname.
\n
\n \n
\n
\n
\n
\n
\n
type [required]
\n
\n
enum
\n
The definition of OutputSchemaParametersType object. \nAllowed enum values: STRING,NUMBER,BOOLEAN,OBJECT,ARRAY_STRING,ARRAY_NUMBER,ARRAY_BOOLEAN,ARRAY_OBJECT
\n
\n \n
\n
\n
\n
\n
\n
value
\n
\n
\n
The OutputSchemaParametersvalue.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
steps
\n
\n
[object]
\n
A Step is a sub-component of a workflow. Each Step performs an action.
\n
\n
\n
\n
\n
\n
actionId [required]
\n
\n
string
\n
The unique identifier of an action.
\n
\n \n
\n
\n
\n
\n
\n
completionGate
\n
\n
object
\n
Used to create conditions before running subsequent actions.
\n
\n
\n
\n
\n
\n
completionCondition [required]
\n
\n
object
\n
The definition of CompletionCondition object.
\n
\n
\n
\n
\n
\n
operand1 [required]
\n
\n
\n
The CompletionConditionoperand1.
\n
\n \n
\n
\n
\n
\n
\n
operand2
\n
\n
\n
The CompletionConditionoperand2.
\n
\n \n
\n
\n
\n
\n
\n
operator [required]
\n
\n
enum
\n
The definition of CompletionConditionOperator object. \nAllowed enum values: OPERATOR_EQUAL,OPERATOR_NOT_EQUAL,OPERATOR_GREATER_THAN,OPERATOR_LESS_THAN,OPERATOR_GREATER_THAN_OR_EQUAL_TO,OPERATOR_LESS_THAN_OR_EQUAL_TO,OPERATOR_CONTAINS,OPERATOR_DOES_NOT_CONTAIN,OPERATOR_IS_NULL,OPERATOR_IS_NOT_NULL,OPERATOR_IS_EMPTY,OPERATOR_IS_NOT_EMPTY
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
retryStrategy [required]
\n
\n
object
\n
The definition of RetryStrategy object.
\n
\n
\n
\n
\n
\n
kind [required]
\n
\n
enum
\n
The definition of RetryStrategyKind object. \nAllowed enum values: RETRY_STRATEGY_LINEAR
\n
\n \n
\n
\n
\n
\n
\n
linear
\n
\n
object
\n
The definition of RetryStrategyLinear object.
\n
\n
\n
\n
\n
\n
interval [required]
\n
\n
string
\n
The RetryStrategyLinearinterval. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s
\n
\n \n
\n
\n
\n
\n
\n
maxRetries [required]
\n
\n
double
\n
The RetryStrategyLinearmaxRetries.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
connectionLabel
\n
\n
string
\n
The unique identifier of a connection defined in the spec.
\n
\n \n
\n
\n
\n
\n
\n
display
\n
\n
object
\n
The definition of StepDisplay object.
\n
\n
\n
\n
\n
\n
bounds
\n
\n
object
\n
The definition of StepDisplayBounds object.
\n
\n
\n
\n
\n
\n
x
\n
\n
double
\n
The boundsx.
\n
\n \n
\n
\n
\n
\n
\n
y
\n
\n
double
\n
The boundsy.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
errorHandlers
\n
\n
[object]
\n
The SteperrorHandlers.
\n
\n
\n
\n
\n
\n
fallbackStepName [required]
\n
\n
string
\n
The ErrorHandlerfallbackStepName.
\n
\n \n
\n
\n
\n
\n
\n
retryStrategy [required]
\n
\n
object
\n
The definition of RetryStrategy object.
\n
\n
\n
\n
\n
\n
kind [required]
\n
\n
enum
\n
The definition of RetryStrategyKind object. \nAllowed enum values: RETRY_STRATEGY_LINEAR
\n
\n \n
\n
\n
\n
\n
\n
linear
\n
\n
object
\n
The definition of RetryStrategyLinear object.
\n
\n
\n
\n
\n
\n
interval [required]
\n
\n
string
\n
The RetryStrategyLinearinterval. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s
\n
\n \n
\n
\n
\n
\n
\n
maxRetries [required]
\n
\n
double
\n
The RetryStrategyLinearmaxRetries.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
name [required]
\n
\n
string
\n
Name of the step.
\n
\n \n
\n
\n
\n
\n
\n
outboundEdges
\n
\n
[object]
\n
A list of subsequent actions to run.
\n
\n
\n
\n
\n
\n
branchName [required]
\n
\n
string
\n
The OutboundEdgebranchName.
\n
\n \n
\n
\n
\n
\n
\n
nextStepName [required]
\n
\n
string
\n
The OutboundEdgenextStepName.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
parameters
\n
\n
[object]
\n
A list of inputs for an action.
\n
\n
\n
\n
\n
\n
name [required]
\n
\n
string
\n
The Parametername.
\n
\n \n
\n
\n
\n
\n
\n
value [required]
\n
\n
\n
The Parametervalue.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
readinessGate
\n
\n
object
\n
Used to merge multiple branches into a single branch.
\n
\n
\n
\n
\n
\n
thresholdType [required]
\n
\n
enum
\n
The definition of ReadinessGateThresholdType object. \nAllowed enum values: ANY,ALL
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
triggers
\n
\n
[ <oneOf>]
\n
The list of triggers that activate this workflow. At least one trigger is required, and each trigger type may appear at most once.
\n
\n
\n
\n
\n
\n
Option 1
\n
\n
object
\n
Schema for an API-based trigger.
\n
\n
\n
\n
\n
\n
apiTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA an API. The workflow must be published.
\n
\n
\n
\n
\n
\n
rateLimit
\n
\n
object
\n
Defines a rate limit for a trigger.
\n
\n
\n
\n
\n
\n
count
\n
\n
int64
\n
The TriggerRateLimitcount.
\n
\n \n
\n
\n
\n
\n
\n
interval
\n
\n
string
\n
The TriggerRateLimitinterval. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 2
\n
\n
object
\n
Schema for an App-based trigger.
\n
\n
\n
\n
\n
\n
appTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA an App.
\n
\n \n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 3
\n
\n
object
\n
Schema for a Case-based trigger.
\n
\n
\n
\n
\n
\n
caseTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA a Case. For automatic triggering a handle must be configured and the workflow must be published.
\n
\n
\n
\n
\n
\n
rateLimit
\n
\n
object
\n
Defines a rate limit for a trigger.
\n
\n
\n
\n
\n
\n
count
\n
\n
int64
\n
The TriggerRateLimitcount.
\n
\n \n
\n
\n
\n
\n
\n
interval
\n
\n
string
\n
The TriggerRateLimitinterval. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 4
\n
\n
object
\n
Schema for a Change Event-based trigger.
\n
\n
\n
\n
\n
\n
changeEventTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA a Change Event.
\n
\n \n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 5
\n
\n
object
\n
Schema for a Dashboard-based trigger.
\n
\n
\n
\n
\n
\n
dashboardTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA a Dashboard.
\n
\n \n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 6
\n
\n
object
\n
Schema for a GitHub webhook-based trigger.
\n
\n
\n
\n
\n
\n
githubWebhookTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA GitHub webhook. To trigger a workflow from GitHub, you must set a webhookSecret. In your GitHub Webhook Settings, set the Payload URL to "base_url"/api/v2/workflows/"workflow_id"/webhook?orgId="org_id", select application/json for the content type, and be highly recommend enabling SSL verification for security. The workflow must be published.
\n
\n
\n
\n
\n
\n
rateLimit
\n
\n
object
\n
Defines a rate limit for a trigger.
\n
\n
\n
\n
\n
\n
count
\n
\n
int64
\n
The TriggerRateLimitcount.
\n
\n \n
\n
\n
\n
\n
\n
interval
\n
\n
string
\n
The TriggerRateLimitinterval. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 7
\n
\n
object
\n
Schema for an Incident-based trigger.
\n
\n
\n
\n
\n
\n
incidentTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA an Incident. For automatic triggering a handle must be configured and the workflow must be published.
\n
\n
\n
\n
\n
\n
rateLimit
\n
\n
object
\n
Defines a rate limit for a trigger.
\n
\n
\n
\n
\n
\n
count
\n
\n
int64
\n
The TriggerRateLimitcount.
\n
\n \n
\n
\n
\n
\n
\n
interval
\n
\n
string
\n
The TriggerRateLimitinterval. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 8
\n
\n
object
\n
Schema for a Monitor-based trigger.
\n
\n
\n
\n
\n
\n
monitorTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA a Monitor. For automatic triggering a handle must be configured and the workflow must be published.
\n
\n
\n
\n
\n
\n
rateLimit
\n
\n
object
\n
Defines a rate limit for a trigger.
\n
\n
\n
\n
\n
\n
count
\n
\n
int64
\n
The TriggerRateLimitcount.
\n
\n \n
\n
\n
\n
\n
\n
interval
\n
\n
string
\n
The TriggerRateLimitinterval. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 9
\n
\n
object
\n
Schema for a Schedule-based trigger.
\n
\n
\n
\n
\n
\n
scheduleTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA a Schedule. The workflow must be published.
\n
\n
\n
\n
\n
\n
rruleExpression [required]
\n
\n
string
\n
Recurrence rule expression for scheduling.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 10
\n
\n
object
\n
Schema for a Security-based trigger.
\n
\n
\n
\n
\n
\n
securityTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA a Security Signal or Finding. For automatic triggering a handle must be configured and the workflow must be published.
\n
\n
\n
\n
\n
\n
rateLimit
\n
\n
object
\n
Defines a rate limit for a trigger.
\n
\n
\n
\n
\n
\n
count
\n
\n
int64
\n
The TriggerRateLimitcount.
\n
\n \n
\n
\n
\n
\n
\n
interval
\n
\n
string
\n
The TriggerRateLimitinterval. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 11
\n
\n
object
\n
Schema for a Slack-based trigger.
\n
\n
\n
\n
\n
\n
slackTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA Slack. The workflow must be published.
\n
\n \n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
Option 12
\n
\n
object
\n
Schema for a Workflow-based trigger.
\n
\n
\n
\n
\n
\n
startStepNames
\n
\n
[string]
\n
A list of steps that run first after a trigger fires.
\n
\n \n
\n
\n
\n
\n
\n
workflowTrigger [required]
\n
\n
object
\n
Trigger a workflow VIA the Datadog UI. Only required if no other trigger exists.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
tags
\n
\n
[string]
\n
Tags of the workflow.
\n
\n \n
\n
\n
\n
\n
\n
updatedAt
\n
\n
date-time
\n
When the workflow was last updated.
\n
\n \n
\n
\n
\n
\n
\n
webhookSecret
\n
\n
string
\n
If a Webhook trigger is defined on this workflow, a webhookSecret is required and should be provided here.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
id
\n
\n
string
\n
The workflow identifier
\n
\n \n
\n
\n
\n
\n
\n
relationships
\n
\n
object
\n
The definition of WorkflowDataRelationships object.
\n
\n
\n
\n
\n
\n
creator
\n
\n
object
\n
The definition of WorkflowUserRelationship object.
\n
\n
\n
\n
\n
\n
data
\n
\n
object
\n
The definition of WorkflowUserRelationshipData object.
\n
\n
\n
\n
\n
\n
id [required]
\n
\n
string
\n
The user identifier
\n
\n \n
\n
\n
\n
\n
\n
type [required]
\n
\n
enum
\n
The definition of WorkflowUserRelationshipType object. \nAllowed enum values: users
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
owner
\n
\n
object
\n
The definition of WorkflowUserRelationship object.
\n
\n
\n
\n
\n
\n
data
\n
\n
object
\n
The definition of WorkflowUserRelationshipData object.
\n
\n
\n
\n
\n
\n
id [required]
\n
\n
string
\n
The user identifier
\n
\n \n
\n
\n
\n
\n
\n
type [required]
\n
\n
enum
\n
The definition of WorkflowUserRelationshipType object. \nAllowed enum values: users
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
type [required]
\n
\n
enum
\n
The definition of WorkflowDataType object. \nAllowed enum values: workflows
\n
\n \n
\n
\n
\n
"
+ }
+ },
"ListWorkflowInstances": {
"responses": {
"200": {
diff --git a/content/en/api/v2/workflow-automation/request.CreateWorkflow.json b/content/en/api/v2/workflow-automation/request.CreateWorkflow.json
new file mode 100644
index 0000000000000..da523d67c5808
--- /dev/null
+++ b/content/en/api/v2/workflow-automation/request.CreateWorkflow.json
@@ -0,0 +1,89 @@
+{
+ "data": {
+ "attributes": {
+ "description": "A sample workflow.",
+ "name": "Example Workflow",
+ "published": true,
+ "spec": {
+ "connectionEnvs": [
+ {
+ "connections": [
+ {
+ "connectionId": "11111111-1111-1111-1111-111111111111",
+ "label": "INTEGRATION_DATADOG"
+ }
+ ],
+ "env": "default"
+ }
+ ],
+ "handle": "my-handle",
+ "inputSchema": {
+ "parameters": [
+ {
+ "defaultValue": "default",
+ "name": "input",
+ "type": "STRING"
+ }
+ ]
+ },
+ "outputSchema": {
+ "parameters": [
+ {
+ "name": "output",
+ "type": "ARRAY_OBJECT",
+ "value": "outputValue"
+ }
+ ]
+ },
+ "steps": [
+ {
+ "actionId": "com.datadoghq.dd.monitor.listMonitors",
+ "connectionLabel": "INTEGRATION_DATADOG",
+ "name": "Step1",
+ "outboundEdges": [
+ {
+ "branchName": "main",
+ "nextStepName": "Step2"
+ }
+ ],
+ "parameters": [
+ {
+ "name": "tags",
+ "value": "service:monitoring"
+ }
+ ]
+ },
+ {
+ "actionId": "com.datadoghq.core.noop",
+ "name": "Step2"
+ }
+ ],
+ "triggers": [
+ {
+ "monitorTrigger": {
+ "rateLimit": {
+ "count": 1,
+ "interval": "3600s"
+ }
+ },
+ "startStepNames": [
+ "Step1"
+ ]
+ },
+ {
+ "startStepNames": [
+ "Step1"
+ ],
+ "githubWebhookTrigger": {}
+ }
+ ]
+ },
+ "tags": [
+ "team:infra",
+ "service:monitoring",
+ "foo:bar"
+ ]
+ },
+ "type": "workflows"
+ }
+}
\ No newline at end of file
diff --git a/content/en/api/v2/workflow-automation/request.UpdateWorkflow.json b/content/en/api/v2/workflow-automation/request.UpdateWorkflow.json
new file mode 100644
index 0000000000000..71c2d03aa7917
--- /dev/null
+++ b/content/en/api/v2/workflow-automation/request.UpdateWorkflow.json
@@ -0,0 +1,90 @@
+{
+ "data": {
+ "attributes": {
+ "description": "A sample workflow.",
+ "name": "Example Workflow",
+ "published": true,
+ "spec": {
+ "connectionEnvs": [
+ {
+ "connections": [
+ {
+ "connectionId": "11111111-1111-1111-1111-111111111111",
+ "label": "INTEGRATION_DATADOG"
+ }
+ ],
+ "env": "default"
+ }
+ ],
+ "handle": "my-handle",
+ "inputSchema": {
+ "parameters": [
+ {
+ "defaultValue": "default",
+ "name": "input",
+ "type": "STRING"
+ }
+ ]
+ },
+ "outputSchema": {
+ "parameters": [
+ {
+ "name": "output",
+ "type": "ARRAY_OBJECT",
+ "value": "outputValue"
+ }
+ ]
+ },
+ "steps": [
+ {
+ "actionId": "com.datadoghq.dd.monitor.listMonitors",
+ "connectionLabel": "INTEGRATION_DATADOG",
+ "name": "Step1",
+ "outboundEdges": [
+ {
+ "branchName": "main",
+ "nextStepName": "Step2"
+ }
+ ],
+ "parameters": [
+ {
+ "name": "tags",
+ "value": "service:monitoring"
+ }
+ ]
+ },
+ {
+ "actionId": "com.datadoghq.core.noop",
+ "name": "Step2"
+ }
+ ],
+ "triggers": [
+ {
+ "monitorTrigger": {
+ "rateLimit": {
+ "count": 1,
+ "interval": "3600s"
+ }
+ },
+ "startStepNames": [
+ "Step1"
+ ]
+ },
+ {
+ "startStepNames": [
+ "Step1"
+ ],
+ "githubWebhookTrigger": {}
+ }
+ ]
+ },
+ "tags": [
+ "team:infra",
+ "service:monitoring",
+ "foo:bar"
+ ]
+ },
+ "id": "22222222-2222-2222-2222-222222222222",
+ "type": "workflows"
+ }
+}
\ No newline at end of file
diff --git a/content/en/data_jobs/dataproc.md b/content/en/data_jobs/dataproc.md
index 5f4a5b2715d05..d7848b35a28ca 100644
--- a/content/en/data_jobs/dataproc.md
+++ b/content/en/data_jobs/dataproc.md
@@ -62,8 +62,10 @@ When you create a new **Dataproc Cluster on Compute Engine** in the [Google Clou
1. On the **Customize cluster** page, locate the **Initialization Actions** section. Enter the path where you saved the script from the previous step.
+ When your cluster is created, this initialization action installs the Datadog Agent and downloads the Java tracer on each node of the cluster.
+
+1. **Optional**: Enable logs collection for your cluster by following the Dataproc integration [Log collection setup][14] steps. This correlates application logs to Spark job run traces.
-When your cluster is created, this initialization action installs the Datadog Agent and downloads the Java tracer on each node of the cluster.
### Specify service tagging per Spark application
@@ -108,3 +110,4 @@ In Datadog, view the [Data Jobs Monitoring][8] page to see a list of all your da
[11]: https://docs.datadoghq.com/data_jobs/kubernetes/
[12]: https://cloud.google.com/secret-manager/docs/access-control
[13]: https://github.com/DataDog/datadog-agent/blob/main/pkg/fleet/installer/setup/djm/dataproc.go
+[14]: /integrations/google_cloud_dataproc/#log-collection
diff --git a/content/en/data_streams/_index.md b/content/en/data_streams/_index.md
index 8dd4d39321222..1fad2b2876657 100644
--- a/content/en/data_streams/_index.md
+++ b/content/en/data_streams/_index.md
@@ -49,10 +49,10 @@ To get started, follow the installation instructions to configure services with
| Runtime | Supported technologies |
|---|----|
-| Java/Scala | Kafka (self-hosted, Amazon MSK, Confluent Cloud / Platform), RabbitMQ, HTTP, gRPC, Amazon SQS |
-| Python | Kafka (self-hosted, Amazon MSK, Confluent Cloud / Platform), RabbitMQ, Amazon SQS |
-| .NET | Kafka (self-hosted, Amazon MSK, Confluent Cloud / Platform), RabbitMQ, Amazon SQS |
-| Node.js | Kafka (self-hosted, Amazon MSK, Confluent Cloud / Platform), RabbitMQ, Amazon SQS |
+| Java/Scala | Kafka (self-hosted, Amazon MSK, Confluent Cloud / Platform), RabbitMQ, HTTP, gRPC, Amazon SQS, Amazon Kinesis, Amazon SNS, Google Pub/Sub |
+| Python | Kafka (self-hosted, Amazon MSK, Confluent Cloud / Platform), RabbitMQ, Amazon SQS, Amazon Kinesis, Amazon SNS |
+| .NET | Kafka (self-hosted, Amazon MSK, Confluent Cloud / Platform), RabbitMQ, Amazon SQS, Amazon SNS, IBM MQ, Azure Service Bus |
+| Node.js | Kafka (self-hosted, Amazon MSK, Confluent Cloud / Platform), RabbitMQ, Amazon SQS, Amazon Kinesis, Amazon SNS, Google Pub/Sub |
| Go | All (with [manual instrumentation][1]) |
## Explore Data Streams Monitoring
diff --git a/content/en/data_streams/data_pipeline_lineage.md b/content/en/data_streams/data_pipeline_lineage.md
new file mode 100644
index 0000000000000..de7ee7873cdbf
--- /dev/null
+++ b/content/en/data_streams/data_pipeline_lineage.md
@@ -0,0 +1,67 @@
+---
+title: Data Pipeline Lineage
+further_reading:
+- link: "/data_jobs"
+ tag: "Documentation"
+ text: "Data Jobs Monitoring"
+- link: https://www.datadoghq.com/blog/data-observability-monitoring/
+ tag: "Blog"
+ text: "Observing the data lifecycle with Datadog"
+---
+
+{{< callout url="https://www.datadoghq.com/product-preview/monitoring-for-data-and-data-pipelines/" >}}
+ Data Pipeline Lineage is available in Preview. If you're interested in this feature, complete the form to request access.
+{{< /callout >}}
+
+Datadog's Data Pipeline Lineage helps you monitor data flow throughout your pipelines end-to-end, including ingestion, processing, and storage. With expanded visibility into your streaming data pipelines, data jobs, and data warehouses in a unified view, you can detect issues with your data, identify related upstream failures, and troubleshoot faster.
+
+You can visualize lineage of data between components (streaming data, data processing jobs, data warehouses) with upstream and downstream dependencies, monitor throughput, and detect issues such as consumer lag, schema changes, along with the downstream data impacted.
+
+This feature requires both Data Streams Monitoring **and** [Data Jobs Monitoring][1].
+
+## Supported technologies
+
+| Type | Technology |
+| - | ---------- |
+| Streaming |
Apache Spark jobs running on KubernetesApache Spark jobs running on EMR on EKS
|
+| Storage |
S3 Snowflake
|
+
+Don't see your tech stack here? [Submit a request][2].
+
+## Setup
+
+1. **Set up Data Streams Monitoring on your producer and consumer services**. Follow the instructions in the [Data Streams Monitoring setup documentation][3]. If you are using Java, ensure that you use the [Datadog APM client for Java v1.34.0+][4].
+
+1. **Set up Data Jobs Monitoring on your Spark workloads**. See the instructions for [Spark on Kubernetes][5] or [Spark on EMR][6].
+
+1. **Enable Data Streams Monitoring for your Spark jobs**. Add `-Ddd.data.streams.enabled=true` to your `spark-submit` command line.
+
+ For example:
+ ```bash
+ spark-submit \
+ --conf spark.driver.extraJavaOptions="-Ddd.data.jobs.enabled=true -Ddd.data.streams.enabled=true" \
+ --conf spark.executor.extraJavaOptions="-Ddd.data.jobs.enabled=true -Ddd.data.streams.enabled=true" \
+ application.jar
+ ```
+
+1. **For Snowflake services, install APM clients**. Install Datadog's [Java][7] or [Python][8] APM client for any services that interact with Snowflake. Set the `DD_TRACE_REMOVE_INTEGRATION_SERVICE_NAMES_ENABLED` environment variable to `true`.
+
+## View your pipelines in Datadog
+{{< img src="data_streams/data_pipeline_lineage.png" alt="In Data Streams Monitoring, the Map view. A pipeline visualization shows data flow from left to right." style="width:100%;" >}}
+
+After you set up Data Pipeline Lineage, go the [Data Streams Monitoring][9] page in Datadog and select **Map** to see your visualized pipelines.
+
+## Further reading
+
+{{< partial name="whats-next/whats-next.html" >}}
+
+[1]: /data_jobs
+[2]: https://www.datadoghq.com/product-preview/monitoring-for-data-and-data-pipelines/
+[3]: /data_streams
+[4]: https://github.com/DataDog/dd-trace-java/releases/tag/v1.34.0
+[5]: /data_jobs/kubernetes/
+[6]: /data_jobs/emr/
+[7]: /tracing/trace_collection/automatic_instrumentation/dd_libraries/java/
+[8]: /tracing/trace_collection/automatic_instrumentation/dd_libraries/python/
+[9]: https://app.datadoghq.com/data-streams/map
diff --git a/content/en/getting_started/cloud_security_management/_index.md b/content/en/getting_started/cloud_security_management/_index.md
index 5a8d3c5e4e27e..074b0cc6f108d 100644
--- a/content/en/getting_started/cloud_security_management/_index.md
+++ b/content/en/getting_started/cloud_security_management/_index.md
@@ -32,24 +32,23 @@ further_reading:
## Overview
-[Datadog Cloud Security Management][1] (CSM) delivers real-time threat detection and continuous configuration audits across your entire cloud infrastructure. Powered by observability data, CSM includes [Misconfigurations][2] and [Threats][3].
+[Datadog Cloud Security Management][1] (CSM) delivers deep visibility, continuous configuration audits, identity risk assessments, vulnerability detection, and real-time threat detection across your entire cloud infrastructure—all in a unified platform for seamless collaboration and faster remediation.
-This guide walks you through best practices for getting your team up and running with CSM.
+With CSM, Security and DevOps teams can act on the shared context of observability and security data to quickly prioritize and remediate issues. This guide walks you through best practices for getting your team up and running with CSM.
## Phase 1: Deployment
-1. Install the [Datadog Agent (version 7.46 or above)][4].
-2. [Enable CSM for for your cloud resources and infrastructure][5]:
- - **CSM Threats**: Kubernetes, Docker, and host-based installations.
- - **CSM Misconfigurations**: AWS, Azure, GCP, Kubernetes, and Docker instructions.
- - **CSM Identity Risks**: Enable AWS resource collection and Cloudtrail logs forwarding.
- - **CSM Vulnerabilities**: Container image scanning and host scanning instructions for Kubernetes, ECS EC2 instances, and host-based installations.
-3. Check out the [CSM homepage][13] to get an overview of your organization's risks and threats.
-4. Review [500+ out-of-the-box Threats and Misconfigurations detection rules][14].
-5. Explore [security signals][15] and review [CSM Misconfigurations findings][16].
-6. Review and remediate [identity risks][28] on the [Identity Risks][29] page.
-7. Review container vulnerabilities on the [Container Images][25] page, and a consolidated list of vulnerabilities on the [Infrastructure Vulnerability][30] page.
-8. Set up [notification rules][17] and receive alerts using Slack, Jira, email, and more.
+1. Using [Agentless][34] and/or the [Datadog Agent (version 7.46 or above)][4], [enable CSM for your cloud resources and infrastructure][5]:
+ - **[Threats][3]**: Kubernetes, Docker, and host-based installations.
+ - **[Misconfigurations][2]**: AWS, Azure, GCP, Kubernetes, and Docker instructions.
+ - **[Identity Risks][28]**: Enable AWS resource collection and Cloudtrail logs forwarding.
+ - **[Vulnerabilities][6]**: Container image scanning and host scanning instructions for AWS, Azure, Kubernetes, ECS EC2 instances, and host-based installations.
+1. Check out the [CSM homepage][13] to get an overview of your organization's risks and threats.
+1. Review [500+ out-of-the-box Threats and Misconfigurations detection rules][14].
+1. Explore [security signals][15] and review [CSM Misconfigurations findings][16].
+1. Review and remediate identity risks on the [Identity Risks][29] page.
+1. Review container vulnerabilities on the [Container Images][25] page, and a consolidated list of vulnerabilities on the [Infrastructure Vulnerability][30] page.
+1. Set up [notification rules][17] and receive alerts using Slack, Jira, email, and more.
## Phase 2: Customization
@@ -78,6 +77,7 @@ For information on disabling CSM, see the following:
[3]: /security/threats/
[4]: https://app.datadoghq.com/account/settings/agent/latest
[5]: /security/cloud_security_management/setup
+[6]: /security/cloud_security_management/vulnerabilities/
[13]: https://app.datadoghq.com/security/csm
[14]: /security/default_rules/#cat-cloud-security-management
[15]: /security/cloud_security_management/misconfigurations/signals_explorer/
@@ -96,4 +96,5 @@ For information on disabling CSM, see the following:
[30]: https://app.datadoghq.com/security/infra-vulnerability
[31]: https://app.datadoghq.com/security/configuration/reports
[32]: /security/cloud_security_management/troubleshooting/vulnerabilities/#disable-csm-vulnerabilities
-[33]: /security/cloud_security_management/troubleshooting/threats/#disable-csm-threats
\ No newline at end of file
+[33]: /security/cloud_security_management/troubleshooting/threats/#disable-csm-threats
+[34]: /security/cloud_security_management/setup/cloud_integrations
\ No newline at end of file
diff --git a/content/en/infrastructure/containers/configuration.md b/content/en/infrastructure/containers/configuration.md
index 64dfe9447a5a7..3b260edf99f41 100644
--- a/content/en/infrastructure/containers/configuration.md
+++ b/content/en/infrastructure/containers/configuration.md
@@ -194,7 +194,7 @@ Set the environment variable on both the Process Agent and Cluster Agent contain
The [Orchestrator Explorer][3] collects CustomResourceDefinitions by default. These definitions appear in Datadog without any user configuration required.
-To collect custom resources, you need to configure both the Datadog Agent and set up indexing.
+To collect custom resources, you need to configure the Datadog Agent and set up indexing.
1. Configure the Datadog Agent:
@@ -235,11 +235,17 @@ To collect custom resources, you need to configure both the Datadog Agent and se
{{< /tabs >}}
1. In Datadog, open [Orchestrator Explorer][3].
+ {{< img src="infrastructure/crd_explorer_view.png" alt="Datadog's Orchestrator Explorer. In the left panel, Kubernetes > Custom Resources > Resource Definitions is selected. Custom resource definitions are displayed in a table. The third column is titled Indexing. Each of these column values is a clickable 'Enabled' or 'Disabled'." style="width:100%;" >}}
1. On the left panel, under **Select Resources**, select [**Kubernetes > Custom Resources > Resource Definitions**][4].
-1. Locate the custom resource definition that corresponds to the resource you want to visualize in the explorer. Click on the version under the **Versions** column.
-1. Click to select the fields you would like to index from the Custom Resource (maximum of 50 fields per resource), then click **Enable Indexing** to save
+1. Locate the custom resource definition that corresponds to the resource you want to visualize in the explorer. Use the **Indexing** column to toggle indexing.
+1. On the modal, under **Indexing Configuration**, select the fields you want to index from the custom resource.
+ {{< img src="infrastructure/indexing_resources.png" alt="A modal over the Orchestrator Explorer page, titled 'Collecting and Indexing monitoring.googleapis.com/v1/clusternodemonitorings'. Displays an 'Agent Setup' step with instructions for configuring the Datadog Agent, followed by an 'Indexing Configuration' step under which fields can be selected with checkboxes." style="width:100%;" >}}
+
+ Select **Enable Indexing** to save.
-Once fields are indexed, they will be available to add as columns in the explorer or as part of Saved Views.
+ **Note**: You can select a maximum of 50 fields for each resource.
+
+After the fields are indexed, you can add them as columns in the explorer or as part of Saved Views.
## Further reading
diff --git a/content/en/llm_observability/setup/auto_instrumentation.md b/content/en/llm_observability/setup/auto_instrumentation.md
index 50bdcb05a3630..c107a6b6077ca 100644
--- a/content/en/llm_observability/setup/auto_instrumentation.md
+++ b/content/en/llm_observability/setup/auto_instrumentation.md
@@ -23,8 +23,8 @@ Datadog's [LLM Observability Python SDK][16] provides integrations that automati
| Framework | Supported Versions | Tracer Version |
|--------------------------------------------|--------------------|-------------------|
-| [OpenAI](#openai), [Azure OpenAI](#openai) | >= 1.0.0 | >= 3.0.0 |
-| [Langchain](#langchain) | >= 0.1.0 | >= 3.0.0 |
+| [OpenAI](#openai), [Azure OpenAI](#openai) | >= 0.26.5 | >= 2.9.0 |
+| [Langchain](#langchain) | >= 0.0.192 | >= 2.9.0 |
| [Amazon Bedrock](#amazon-bedrock) | >= 1.31.57 | >= 2.9.0 |
| [Anthropic](#anthropic) | >= 0.28.0 | >= 2.10.0 |
| [Google Gemini](#google-gemini) | >= 0.7.2 | >= 2.14.0 |
diff --git a/content/en/logs/log_collection/ios.md b/content/en/logs/log_collection/ios.md
index 56582a42888d1..5a398e59d484f 100644
--- a/content/en/logs/log_collection/ios.md
+++ b/content/en/logs/log_collection/ios.md
@@ -327,7 +327,8 @@ DDDatadog.verbosityLevel = DDSDKVerbosityLevelDebug;
{{% /tab %}}
{{< /tabs >}}
-3. Configure the `Logger`:
+3. Configure the `Logger`:
+**Note**: You must create the logger *after* calling `Logs.enable()`.
{{< tabs >}}
{{% tab "Swift" %}}
diff --git a/content/en/monitors/status/status_page.md b/content/en/monitors/status/status_page.md
index 2ad97cdb25a60..e3d15782b4ced 100644
--- a/content/en/monitors/status/status_page.md
+++ b/content/en/monitors/status/status_page.md
@@ -84,7 +84,6 @@ The following monitor types are not supported by the provisional status page:
The following features are not supported by the provisional status page:
-- Custom schedules
- Notification grouping
diff --git a/content/en/monitors/types/audit_trail.md b/content/en/monitors/types/audit_trail.md
index 736da58aab17c..1350ee0c4cd4b 100644
--- a/content/en/monitors/types/audit_trail.md
+++ b/content/en/monitors/types/audit_trail.md
@@ -24,7 +24,7 @@ Audit Trail monitors alert you when a specified type of audit event exceeds a us
To create an [Audit Trail monitor][1] in Datadog, use the main navigation: *Monitors --> New Monitor --> Audit Trail*.
-
Note: There is a default limit of 1000 Event monitors per account. If you are encountering this limit, consider using multi alerts, or Contact Support.
+
Note: There is a default limit of 1000 monitors per account. If you are encountering this limit, consider using multi alerts, or Contact Support.
### Define the search query
diff --git a/content/en/network_monitoring/devices/snmp_traps.md b/content/en/network_monitoring/devices/snmp_traps.md
index dea93cc1ef46f..394341f8e91fc 100644
--- a/content/en/network_monitoring/devices/snmp_traps.md
+++ b/content/en/network_monitoring/devices/snmp_traps.md
@@ -37,7 +37,7 @@ Datadog Agent v7.37+ supports listening for SNMP Traps, enabling you to set up [
authKey: myAuthKey
authProtocol: "SHA"
privKey: myPrivKey
- privProtocol: "AES" # choices: MD5, SHA, SHA224, SHA256, SHA384, SHA512
+ privProtocol: "AES"
- user: "user"
authKey: myAuthKey
authProtocol: "MD5"
@@ -45,7 +45,7 @@ Datadog Agent v7.37+ supports listening for SNMP Traps, enabling you to set up [
privProtocol: "DES"
- user: "user2"
authKey: myAuthKey2
- authProtocol: "SHA"
+ authProtocol: "SHA" # choices: MD5, SHA, SHA224, SHA256, SHA384, SHA512
privKey: myPrivKey2
privProtocol: "AES" # choices: DES, AES (128 bits), AES192, AES192C, AES256, AES256C
```
diff --git a/content/en/real_user_monitoring/browser/advanced_configuration.md b/content/en/real_user_monitoring/browser/advanced_configuration.md
index 26fc253f578a5..b4aece12128ee 100644
--- a/content/en/real_user_monitoring/browser/advanced_configuration.md
+++ b/content/en/real_user_monitoring/browser/advanced_configuration.md
@@ -35,7 +35,7 @@ There are various ways you can modify the [data and context collected][1] by RUM
## Override default RUM view names
-The RUM Browser SDK automatically generates a [view event][2] for each new page visited by your users, or when the page URL is changed (for single-page applications). A view name is computed from the current page URL, where variable alphanumeric IDs are removed automatically. For example, `/dashboard/1234` becomes `/dashboard/?`.
+The RUM Browser SDK automatically generates a [view event][2] for each new page visited by your users, or when the page URL is changed (for single-page applications). A view name is computed from the current page URL, where variable IDs are removed automatically. A path segment that contains at least one number is considered a variable ID. For example, `/dashboard/1234` and `/dashboard/9a` become `/dashboard/?`.
Starting with [version 2.17.0][3], you can add view names and assign them to a dedicated service owned by a team by tracking view events manually with the `trackViewsManually` option:
diff --git a/content/en/real_user_monitoring/guide/monitor-hybrid-react-native-applications.md b/content/en/real_user_monitoring/guide/monitor-hybrid-react-native-applications.md
index 0224bd9c5cbe9..6c832edcbfb2e 100644
--- a/content/en/real_user_monitoring/guide/monitor-hybrid-react-native-applications.md
+++ b/content/en/real_user_monitoring/guide/monitor-hybrid-react-native-applications.md
@@ -22,7 +22,7 @@ RUM Events from both of these sources are reported as coming from the same appli
- Through *auto-instrumentation* - Some React classes and methods are modified to automate this. Auto-instrumentation for JavaScript errors, resources, and interactions can only be started from JavaScript code.
- Through *manual instrumentation* - For example, if you want to report something that you consider an error, but which is not going to crash the app.
- You can share the same instance of the core SDK between native and React Native without having to initialize the SDK on both sides separately. This allows you to initialize the native SDK on either the native side or on the React Native side (by calling `DdSdkReactNative.initialize`) and have it initialized for both sides, with events appearing in the same RUM session. React Native uses the default core instance. This means that you can use *manual instrumentation* on both sides, but *auto-instrumentation* is only activated for the side that the SDK was initialized.
-- You can report Datadog RUM events or logs only after the initialization. If you have not initialized the SDK yet, events and legs are not sent.
+- You can report Datadog RUM events or logs only after the initialization. If you have not initialized the SDK yet, events and logs are not sent.
- You cannot change the source attribute of a RUM session - all your RUM events appear under the same source.
## Monitor React Native apps with native content
diff --git a/content/en/real_user_monitoring/mobile_and_tv_monitoring/android/advanced_configuration.md b/content/en/real_user_monitoring/mobile_and_tv_monitoring/android/advanced_configuration.md
index a8702e2bc6348..ed6f26801d552 100644
--- a/content/en/real_user_monitoring/mobile_and_tv_monitoring/android/advanced_configuration.md
+++ b/content/en/real_user_monitoring/mobile_and_tv_monitoring/android/advanced_configuration.md
@@ -458,7 +458,7 @@ To get timing information in resources (such as third-party providers, network r
}
```
-2. Add add the [EventListener][12] factory:
+2. Add the [EventListener][12] factory:
{{< tabs >}}
{{% tab "Kotlin" %}}
diff --git a/content/en/real_user_monitoring/mobile_and_tv_monitoring/flutter/advanced_configuration.md b/content/en/real_user_monitoring/mobile_and_tv_monitoring/flutter/advanced_configuration.md
index 06dc64414cfcd..5c7e958e71065 100644
--- a/content/en/real_user_monitoring/mobile_and_tv_monitoring/flutter/advanced_configuration.md
+++ b/content/en/real_user_monitoring/mobile_and_tv_monitoring/flutter/advanced_configuration.md
@@ -22,7 +22,7 @@ further_reading:
---
## Overview
-If you have not set up the Datadog Flutter SDK for RUM yet, follow the [in-app setup instructions][1] or refer to the [RUM Flutter setup documentation][2]. Learn how to set up [OpenTelemetry with RUM Flutter](#opentelemetry-setup).
+If you have not set up the Datadog Flutter SDK for RUM yet, follow the [in-app setup instructions][1] or see the [RUM Flutter setup documentation][2]. Learn how to set up [OpenTelemetry with RUM Flutter](#opentelemetry-setup). For additional manual instrumentation functions, such as automatic view tracking, see [Flutter Libraries for RUM][3].
## Initialization parameters
You can specify the following parameters in your configuration when intializing the SDK.
@@ -74,7 +74,7 @@ Defines the maximum number of batches processed sequentially without a delay, wi
`version`
: Optional
**Type**: String
-The application's version number. Because `version` is a Datadog tag, it must comply with the rules in [Defining Tags][20].
+The application's version number. Because `version` is a Datadog tag, it must comply with the rules in [Defining Tags][4].
`flavor`
: Optional
@@ -101,10 +101,10 @@ A map of first party hosts and the types of tracing headers Datadog automaticall
);
```
The `TracingHeaderType` enum has the following values:
- - `datadog`: Datadog's [`x-datadog-*` header][21]
- - `b3`: OpenTelemetry B3 [single header][22]
- - `b3multi`: OpenTelemetry B3 [multiple headers][23]
- - `tracecontext`: W3C [trace context header][24]
+ - `datadog`: Datadog's [`x-datadog-*` header][5]
+ - `b3`: OpenTelemetry B3 [single header][6]
+ - `b3multi`: OpenTelemetry B3 [multiple headers][7]
+ - `tracecontext`: W3C [trace context header][8]
`rumConfiguration`
: Optional
@@ -154,7 +154,7 @@ The amount of elapsed time that distinguishes a _long task_, in seconds. If the
: Optional
**Type**: Boolean
**Default**: `true`
-Enables [automatic collection of user frustrations][19].
+Enables [automatic collection of user frustrations][9].
`vitalUpdateFrequency`
: Optional
@@ -181,7 +181,7 @@ The sampling rate for telemetry data, such as errors and debug logs.
## Automatically track resources
-Use the [Datadog Tracking HTTP Client][12] package to enable automatic tracking of resources and HTTP calls from your views.
+Use the [Datadog Tracking HTTP Client][10] package to enable automatic tracking of resources and HTTP calls from your views.
Add the package to your `pubspec.yaml` and add the following to your initialization file:
@@ -192,9 +192,9 @@ final configuration = DatadogConfiguration(
)..enableHttpTracking()
```
-**Note**: The Datadog Tracking HTTP Client modifies [`HttpOverrides.global`][27]. If you are using your own custom `HttpOverrides`, you may need to inherit from [`DatadogHttpOverrides`][28]. In this case, you do not need to call `enableHttpTracking`. Versions of `datadog_tracking_http_client` >= 1.3 check the value of `HttpOverrides.current` and use this for client creation, so you only need to make sure to initialize `HttpOverrides.global` prior to initializing Datadog.
+**Note**: The Datadog Tracking HTTP Client modifies [`HttpOverrides.global`][11]. If you are using your own custom `HttpOverrides`, you may need to inherit from [`DatadogHttpOverrides`][12]. In this case, you do not need to call `enableHttpTracking`. Versions of `datadog_tracking_http_client` >= 1.3 check the value of `HttpOverrides.current` and use this for client creation, so you only need to make sure to initialize `HttpOverrides.global` prior to initializing Datadog.
-In order to enable Datadog [Distributed Tracing][29], you must set the `DatadogConfiguration.firstPartyHosts` property in your configuration object to a domain that supports distributed tracing. You can also modify the sampling rate for distributed tracing by setting the `tracingSamplingRate` on your `DatadogRumConfiguration`.
+In order to enable Datadog [Distributed Tracing][13], you must set the `DatadogConfiguration.firstPartyHosts` property in your configuration object to a domain that supports distributed tracing. You can also modify the sampling rate for distributed tracing by setting the `tracingSamplingRate` on your `DatadogRumConfiguration`.
- `firstPartyHosts` does not allow wildcards, but matches any subdomains for a given domain. For example, `api.example.com` matches `staging.api.example.com` and `prod.api.example.com`, not `news.example.com`.
@@ -202,7 +202,7 @@ In order to enable Datadog [Distributed Tracing][29], you must set the `DatadogC
## Enrich user sessions
-Flutter RUM automatically tracks attributes such as user activity, views (using the `DatadogNavigationObserver`), errors, native crashes, and network requests (using the Datadog Tracking HTTP Client). See the [RUM Data Collection documentation][3] to learn about the RUM events and default attributes. You can further enrich user session information and gain finer control over the attributes collected by tracking custom events.
+Flutter RUM automatically tracks attributes such as user activity, views (using the `DatadogNavigationObserver`), errors, native crashes, and network requests (using the Datadog Tracking HTTP Client). See the [RUM Data Collection documentation][14] to learn about the RUM events and default attributes. You can further enrich user session information and gain finer control over the attributes collected by tracking custom events.
### Notify the SDK that your view finished loading
@@ -233,7 +233,7 @@ void _onHeroImageLoaded() {
Once you set the timing, it is accessible as `@view.custom_timings.`. For example, `@view.custom_timings.hero_image`.
-To create visualizations in your dashboards, [create a measure][4] first.
+To create visualizations in your dashboards, [create a measure][15] first.
### Track user actions
@@ -256,7 +256,7 @@ When using `DdRum.startAction` and `DdRum.stopAction`, the `type` action must be
### Track custom resources
-In addition to tracking resources automatically using the [Datadog Tracking HTTP Client][5], you can track specific custom resources such as network requests or third-party provider APIs using the [following methods][6]:
+In addition to tracking resources automatically using the [Datadog Tracking HTTP Client][16], you can track specific custom resources such as network requests or third-party provider APIs using the [following methods][17]:
- `DdRum.startResource`
- `DdRum.stopResource`
@@ -295,7 +295,7 @@ DatadogSdk.instance.rum?.addError("This is an error message.");
## Track custom global attributes
-In addition to the [default RUM attributes][3] captured by the Datadog Flutter SDK automatically, you can choose to add additional contextual information (such as custom attributes) to your RUM events to enrich your observability within Datadog.
+In addition to the [default RUM attributes][14] captured by the Datadog Flutter SDK automatically, you can choose to add additional contextual information (such as custom attributes) to your RUM events to enrich your observability within Datadog.
Custom attributes allow you to filter and group information about observed user behavior (such as the cart value, merchant tier, or ad campaign) with code-level information (such as backend services, session timeline, error logs, and network health).
@@ -419,11 +419,11 @@ final sessionId = await DatadogSdk.instance.rum?.getCurrentSessionId()
## Flutter-specific performance metrics
-To enable the collection of Flutter-specific performance metrics, set `reportFlutterPerformance: true` in `DatadogRumConfiguration`. Widget build and raster times are displayed in [Mobile Vitals][17].
+To enable the collection of Flutter-specific performance metrics, set `reportFlutterPerformance: true` in `DatadogRumConfiguration`. Widget build and raster times are displayed in [Mobile Vitals][18].
## OpenTelemetry setup
-The [Datadog Tracking HTTP Client][12] package and [gRPC Interceptor][13] package both support distributed traces through both automatic header generation and header ingestion. This section describes how to use OpenTelemetry with RUM Flutter.
+The [Datadog Tracking HTTP Client][10] package and [gRPC Interceptor][19] package both support distributed traces through both automatic header generation and header ingestion. This section describes how to use OpenTelemetry with RUM Flutter.
### Datadog header generation
@@ -468,30 +468,20 @@ if (DatadogSdk.instance.isFirstPartyHost(host)){
[1]: https://app.datadoghq.com/rum/application/create
[2]: /real_user_monitoring/mobile_and_tv_monitoring/flutter/setup/
-[3]: /real_user_monitoring/mobile_and_tv_monitoring/flutter/data_collected
-[4]: /real_user_monitoring/explorer/?tab=measures#setup-facets-and-measures
-[5]: https://github.com/DataDog/dd-sdk-flutter/tree/main/packages/datadog_tracking_http_client
-[6]: https://pub.dev/documentation/datadog_flutter_plugin/latest/datadog_flutter_plugin/
-[7]: https://pub.dev/documentation/datadog_flutter_plugin/latest/datadog_flutter_plugin/DatadogNavigationObserver-class.html
-[8]: https://pub.dev/packages?q=go_router
-[9]: https://pub.dev/packages/auto_route
-[10]: https://pub.dev/packages/beamer
-[11]: https://github.com/flutter/flutter/issues/112196
-[12]: https://pub.dev/packages/datadog_tracking_http_client
-[13]: https://pub.dev/packages/datadog_grpc_interceptor
-[14]: https://github.com/openzipkin/b3-propagation#single-headers
-[15]: https://github.com/openzipkin/b3-propagation#multiple-headers
-[16]: https://www.w3.org/TR/trace-context/#tracestate-header
-[17]: /real_user_monitoring/mobile_and_tv_monitoring/mobile_vitals/?tab=flutter
-[18]: /real_user_monitoring/mobile_and_tv_monitoring/flutter/integrated_libraries
-[19]: /real_user_monitoring/browser/frustration_signals/
-[20]: /getting_started/tagging/#defining-tags
-[21]: /real_user_monitoring/connect_rum_and_traces/?tab=browserrum#how-are-rum-resources-linked-to-traces
-[22]: https://github.com/openzipkin/b3-propagation#single-headers
-[23]: https://github.com/openzipkin/b3-propagation#multiple-headers
-[24]: https://www.w3.org/TR/trace-context/#tracestate-header
-[25]: https://pub.dev/packages/go_router
-[26]: https://pub.dev/documentation/datadog_flutter_plugin/latest/datadog_flutter_plugin/ViewInfoExtractor.html
-[27]: https://api.flutter.dev/flutter/dart-io/HttpOverrides/current.html
-[28]: https://pub.dev/documentation/datadog_tracking_http_client/latest/datadog_tracking_http_client/DatadogTrackingHttpOverrides-class.html
-[29]: /serverless/aws_lambda/distributed_tracing/
\ No newline at end of file
+[3]: /real_user_monitoring/mobile_and_tv_monitoring/flutter/integrated_libraries/
+[4]: /getting_started/tagging/#defining-tags
+[5]: /real_user_monitoring/connect_rum_and_traces/?tab=browserrum#how-are-rum-resources-linked-to-traces
+[6]: https://github.com/openzipkin/b3-propagation#single-headers
+[7]: https://github.com/openzipkin/b3-propagation#multiple-headers
+[8]: https://www.w3.org/TR/trace-context/#tracestate-header
+[9]: /real_user_monitoring/browser/frustration_signals/
+[10]: https://pub.dev/packages/datadog_tracking_http_client
+[11]: https://api.flutter.dev/flutter/dart-io/HttpOverrides/current.html
+[12]: https://pub.dev/documentation/datadog_tracking_http_client/latest/datadog_tracking_http_client/DatadogTrackingHttpOverrides-class.html
+[13]: /serverless/aws_lambda/distributed_tracing/
+[14]: /real_user_monitoring/mobile_and_tv_monitoring/flutter/data_collected
+[15]: /real_user_monitoring/explorer/?tab=measures#setup-facets-and-measures
+[16]: https://github.com/DataDog/dd-sdk-flutter/tree/main/packages/datadog_tracking_http_client
+[17]: https://pub.dev/documentation/datadog_flutter_plugin/latest/datadog_flutter_plugin/
+[18]: /real_user_monitoring/mobile_and_tv_monitoring/mobile_vitals/?tab=flutter
+[19]: https://pub.dev/packages/datadog_grpc_interceptor
diff --git a/content/en/real_user_monitoring/mobile_and_tv_monitoring/ios/setup.md b/content/en/real_user_monitoring/mobile_and_tv_monitoring/ios/setup.md
index c3ba30d5995f6..447078ee90312 100644
--- a/content/en/real_user_monitoring/mobile_and_tv_monitoring/ios/setup.md
+++ b/content/en/real_user_monitoring/mobile_and_tv_monitoring/ios/setup.md
@@ -458,6 +458,8 @@ The `trackRUMView(name:)` method starts and stops a view when the `SwiftUI` view
The Datadog iOS SDK allows you to instrument tap actions of `SwiftUI` applications. The instrumentation also works with hybrid `UIKit` and `SwiftUI` applications.
+
Using .trackRUMTapAction(name:) for SwiftUI controls inside a List can break its default gestures. For example, it may disable the Button action or break NavigationLink. To track taps in a List element, use the Custom Actions API instead.
+
To instrument a tap action on a `SwiftUI.View`, add the following method to your view declaration:
```swift
diff --git a/content/en/real_user_monitoring/mobile_and_tv_monitoring/unity/advanced_configuration.md b/content/en/real_user_monitoring/mobile_and_tv_monitoring/unity/advanced_configuration.md
index 0d603eac9e2d4..5919a2883be6a 100644
--- a/content/en/real_user_monitoring/mobile_and_tv_monitoring/unity/advanced_configuration.md
+++ b/content/en/real_user_monitoring/mobile_and_tv_monitoring/unity/advanced_configuration.md
@@ -164,9 +164,10 @@ To remove an existing attribute, set it to `null`.
For example:
```cs
-DatadogSdk.Instance.AddUserExtraInfo({
- 'attribute_1': 'foo',
- 'attribute_2': null,
+DatadogSdk.Instance.AddUserExtraInfo(new ()
+{
+ { "attribute_1", "foo" },
+ { "attribute_2", null },
});
```
diff --git a/content/en/security/automation_pipelines/_index.md b/content/en/security/automation_pipelines/_index.md
index bd4744b02819f..d0a34f2e7ff7d 100644
--- a/content/en/security/automation_pipelines/_index.md
+++ b/content/en/security/automation_pipelines/_index.md
@@ -9,6 +9,9 @@ further_reading:
- link: "/security/automation_pipelines/security_inbox"
tag: "Documentation"
text: "Add to Security Inbox Rules"
+ - link: "/security/automation_pipelines/set_due_date"
+ tag: "Documentation"
+ text: "Set Due Date Rules"
---
{{< callout btn_hidden="true">}}
@@ -19,6 +22,8 @@ further_reading:
Automation Pipelines allows you to set up automated rules for newly discovered vulnerabilities, thus accelerating triage and remediation efforts at scale.
+{{< img src="security/automation_pipelines/vulnerabilities_settings.png" alt="Automation Vulnerabilities Settings page" width="100%">}}
+
## Availability
Automation Pipelines is available for:
@@ -57,6 +62,14 @@ Customize the Security Inbox by defining specific conditions that determine whic
- **Strengthen compliance and address key system concerns**: Address concerns affecting regulatory compliance or important business systems, regardless of severity.
- **Prioritize current risks**: Focus on immediate threats, such as identity risks after an incident, or industry-wide vulnerabilities.
+### Set due dates for vulnerabilities to align with your security SLOs
+
+Assign deadlines for vulnerability remediation to ensure compliance and improve team accountability. This allows you to:
+
+- **Align with compliance frameworks**: Automatically set due dates that conform to industry regulations like FedRAMP or PCI.
+- **Enhance accountability**: Utilize security SLOs to hold teams responsible for timely vulnerability remediation, reducing the administrative burden of follow-ups and status checks.
+- **Facilitate proactive risk management**: Encourage prompt action on vulnerabilities to mitigate the risk of exploitation, leveraging SLOs as a strategic tool to prioritize and expedite security tasks.
+
## Further reading
{{< partial name="whats-next/whats-next.html" >}}
\ No newline at end of file
diff --git a/content/en/security/automation_pipelines/mute.md b/content/en/security/automation_pipelines/mute.md
index 178370bfaf5c9..1b26644755c88 100644
--- a/content/en/security/automation_pipelines/mute.md
+++ b/content/en/security/automation_pipelines/mute.md
@@ -2,6 +2,10 @@
title: Mute Rules
aliases:
- /security/vulnerability_pipeline/mute
+further_reading:
+ - link: "/security/automation_pipelines"
+ tag: "Documentation"
+ text: "Automation Pipelines"
---
{{< callout url="https://www.datadoghq.com/product-preview/security-automation-pipelines/" >}}
@@ -13,19 +17,33 @@ Configure mute rules to streamline security alerts by automatically filtering ou
## Create a mute rule
1. On the [Automation Pipelines][2] page, click **Add a New Rule** and select **Mute**.
-1. Enter a descriptive name for the rule, for example, Cloud Infrastructure Anomaly Warnings.
+1. Enter a descriptive name for the rule, for example, **Cloud Infrastructure Anomaly Warnings**.
1. Use the following boxes to configure the rule criteria:
- - **Any of these types**: The types of findings that the rule should check for. Available types include **Misconfiguration**, **Attack Path**, **Identity Risk**, and **API Security Finding**.
+ - **Any of these types**: The types of findings that the rule should check for. Available types include:
+ - **Misconfiguration**
+ - **Attack Path**
+ - **Identity Risk**
+ - **API Security Finding**
- **Any of these tags or attributes**: The resource tags or attributes that must match for the rule to apply.
1. To add severity criteria to the rule, click **Add Severity**.
1. Specify the mute reason and duration:
- - **Reason for muting**: The reason for muting the finding. Available reasons include **False Positive**, **Risk Accepted**, **Pending Fix**, **No Fix**, **Duplicate**, and **Other**.
+ - **Reason for muting**: The reason for muting the finding. Available reasons include:
+ - **False Positive**
+ - **Risk Accepted**
+ - **Pending fix**
+ - **No Fix**
+ - **Duplicate**
+ - **Other**
- **Rule expiration**: The date on which the rule expires.
- **Further description for muting reason**: Optional box for additional details.
-1. Click **Save**.
+1. Click **Save**. The rule applies to new findings immediately and starts checking existing findings within the next hour.
## Rule matching order
When Datadog identifies a vulnerability, it evaluates the vulnerability against your sequence of mute rules. Starting with the first rule, if there's a match, Datadog mutes the vulnerability for the specified duration and stops evaluating further. If no match occurs, Datadog moves to the next rule. This process continues until a match is found or all rules are checked without a match.
+## Further reading
+
+{{< partial name="whats-next/whats-next.html" >}}
+
[2]: https://app.datadoghq.com/security/configuration/pipeline-vulnerability
\ No newline at end of file
diff --git a/content/en/security/automation_pipelines/security_inbox.md b/content/en/security/automation_pipelines/security_inbox.md
index 1f6fe58f77236..45473068dcc29 100644
--- a/content/en/security/automation_pipelines/security_inbox.md
+++ b/content/en/security/automation_pipelines/security_inbox.md
@@ -6,6 +6,9 @@ further_reading:
- link: "/security/security_inbox"
tag: "Documentation"
text: "Security Inbox"
+ - link: "/security/automation_pipelines"
+ tag: "Documentation"
+ text: "Automation Pipelines"
---
{{< callout url="https://www.datadoghq.com/product-preview/customize-your-security-inbox/" >}}
@@ -17,12 +20,16 @@ Configure inbox rules to manage your Security Inbox effectively, ensuring only t
## Create an inbox rule
1. On the [Automation Pipelines][2] page, click **Add a New Rule** and select **Add to Security Inbox**.
-1. Enter a descriptive name for the rule, for example, Cloud Infrastructure Anomaly Warnings.
+1. Enter a descriptive name for the rule, for example, **Cloud Infrastructure Anomaly Warnings**.
1. Use the following boxes to configure the rule criteria:
- - **Any of these types**: The types of findings that the rule should check for. Available types include **Misconfiguration**, **Attack Path**, **Identity Risk**, and **API Security Finding**.
+ - **Any of these types**: The types of findings that the rule should check for. Available types include:
+ - **Misconfiguration**
+ - **Attack Path**
+ - **Identity Risk**
+ - **API Security Finding**
- **Any of these tags or attributes**: The resource tags or attributes that must match for the rule to apply.
1. To add severity criteria to the rule, click **Add Severity**.
-1. Click **Save**.
+1. Click **Save**. The rule applies to new findings immediately and starts checking existing findings within the next hour.
## Rule matching order
diff --git a/content/en/security/automation_pipelines/set_due_date.md b/content/en/security/automation_pipelines/set_due_date.md
new file mode 100644
index 0000000000000..761c8e8a535d5
--- /dev/null
+++ b/content/en/security/automation_pipelines/set_due_date.md
@@ -0,0 +1,59 @@
+---
+title: Set Due Date Rules
+further_reading:
+ - link: "/security/automation_pipelines"
+ tag: "Documentation"
+ text: "Automation Pipelines"
+---
+
+{{< callout url="https://www.datadoghq.com/product-preview/security-automation-pipelines/" >}}
+ Automation Pipelines is in Preview. To enroll in the Preview for due date rules, click Request Access.
+{{< /callout >}}
+
+Configure due date rules to ensure vulnerabilities are addressed within your specified SLO time frames. By setting these due dates, you can automate accountability, meet compliance requirements, and prioritize the prompt remediation of security issues, thereby preventing potential exploitation.
+
+## Create a due date rule
+
+1. On the [Automation Pipelines][2] page, click **Add a New Rule** and select **Set Due Date**.
+1. Enter a descriptive name for the rule, for example, **Cloud Infrastructure Anomaly Warnings**.
+1. Use the following boxes to configure the rule criteria:
+ - **Any of these types**: The types of findings that the rule should check for. Available types include:
+ - **Application Code Vulnerability**
+ - **Application Library Vulnerability**
+ - **Container Image Vulnerability**
+ - **Misconfiguration**
+ - **Attack Path**
+ - **Identity Risk**
+ - **API Security Finding**
+ - **Any of these tags or attributes**: The resource tags or attributes that must match for the rule to apply.
+1. Set a due date for each severity level that requires one, effective from the discovery of a matching severity vulnerability.
+1. Click **Save**. The rule applies to new findings immediately and starts checking existing findings within the next hour.
+
+## Where due dates appear
+
+When a finding has a due date, you can see it in these locations:
+
+- Explorer facets
+- Findings side panel
+- Notifications
+- Jira ticket descriptions
+- Reporting metrics (as an "overdue" Boolean) to identify teams or repositories with the most overdue vulnerabilities
+
+## Rule matching order
+
+When Datadog identifies a vulnerability, it evaluates the vulnerability against your sequence of due date rules. Starting with the first rule, if there's a match, Datadog sets a due date on the vulnerability for the specified duration and stops evaluating further. If no match occurs, Datadog moves to the next rule. This process continues until a match is found or all rules are checked without a match.
+
+## Removing due dates
+
+When managing vulnerabilities, due dates can be removed under various conditions, such as:
+
+- The detection rule that triggered the vulnerability passes successfully.
+- The vulnerability is muted, either manually or automatically through a mute rule.
+- The due date rule associated with the vulnerability is disabled or deleted.
+- The associated due date rule is modified so that its criteria no longer match the vulnerability.
+
+## Further reading
+
+{{< partial name="whats-next/whats-next.html" >}}
+
+[2]: https://app.datadoghq.com/security/configuration/pipeline-vulnerability
\ No newline at end of file
diff --git a/content/en/security/cloud_security_management/_index.md b/content/en/security/cloud_security_management/_index.md
index e9c924c7bbb4e..8f403944580aa 100644
--- a/content/en/security/cloud_security_management/_index.md
+++ b/content/en/security/cloud_security_management/_index.md
@@ -62,14 +62,16 @@ cascade:
Learn how Datadog Cloud SIEM and Cloud Security Management elevate your organization's threat detection and investigation for dynamic, cloud-scale environments.
{{< /learning-center-callout >}}
-Datadog Cloud Security Management (CSM) delivers real-time threat detection and continuous configuration audits across your entire cloud infrastructure, all in a unified view for seamless collaboration and faster remediation. Powered by observability data, security teams can determine the impact of a threat by tracing the full attack flow and identify the resource owner where a vulnerability was triggered.
+Datadog Cloud Security Management (CSM) delivers deep visibility, continuous configuration audits, identity risk assessments, vulnerability detection, and real-time threat detection across your entire cloud infrastructure—all in a unified platform for seamless collaboration and faster remediation.
-CSM leverages the Datadog Agent and platform-wide cloud integrations and includes:
+Security and DevOps teams can act on the shared context of observability and security data to quickly prioritize and remediate issues.
+
+CSM leverages both the Datadog Agent and Agentless, and includes:
- [**Threats**][1]: Monitors file, network, and process activity across your environment to detect real-time threats to your infrastructure.
- [**Misconfigurations**][2]: Tracks the security hygiene and compliance posture of your production environment, automates audit evidence collection, and enables you to remediate misconfigurations that leave your organization vulnerable to attacks.
- [**Identity Risks**][8]: Provides in-depth visibility into your organization's AWS IAM risks and enables you to detect and resolve identity risks on an ongoing basis.
-- [**Vulnerabilities**][9]: Leverages infrastructure observability to detect, prioritize, and manage vulnerabilities in your organization's containers and hosts.
+- [**Vulnerabilities**][9]: Continuously detect, prioritize, and remediate exploitable vulnerabilities in your container images, host images, and hosts running in your infrastructure.
{{< img src="security/csm/csm_overview_2.png" alt="Cloud Security Management in Datadog" width="100%">}}
diff --git a/content/en/service_management/events/guides/usage.md b/content/en/service_management/events/guides/usage.md
index 981b26d9d1de7..ac90d0ebf274e 100644
--- a/content/en/service_management/events/guides/usage.md
+++ b/content/en/service_management/events/guides/usage.md
@@ -13,7 +13,7 @@ further_reading:
## Custom metrics
-[Generate metrics][5] with 15-month retention from any event search query to create and monitor historical events and alerts. For more information, see [Event Analytics][6].
+[Generate metrics][5] with 15-month retention from any event search query to create and monitor historical events and alerts. Events ingested with a timestamp within the past 20 minutes are considered for aggregation. For more information, see [Event Analytics][6].
{{< img src="service_management/events/guides/usage/generate-metrics.png" alt="Image of metrics with the events search query." >}}
diff --git a/content/en/software_catalog/software_templates.md b/content/en/software_catalog/software_templates.md
index 753dd512e5032..995d3b193f510 100644
--- a/content/en/software_catalog/software_templates.md
+++ b/content/en/software_catalog/software_templates.md
@@ -1,5 +1,5 @@
---
-title: Software Templates
+title: Self-Service
aliases:
- /service_catalog/software_templates
further_reading:
@@ -14,10 +14,11 @@ further_reading:
text: "Learn about Workflows"
---
-
## Automate developer workflows
Use [App Builder][2] to create dynamic, user-friendly forms to collect inputs from developers. Call Datadog's [Actions][7] from your app to initiate API calls to external services, perform custom logic, or data transformations. Orchestrate end-to-end processes of multiple actions using [Workflow Automation][1]. Integrate them with Datadog's Software Catalog to enable dynamic and self-service workflows.
+{{< img src="tracing/service_catalog/self-service-ui.png" alt="Publish to Self-Service" style="width:100%;" >}}
+
{{< callout url="https://forms.gle/6Er52qd3BCERhotg7" d_target="#signupModal" btn_hidden="false">}}
Software Templates are in Preview. Complete the form to request access.
{{< /callout >}}
@@ -25,8 +26,8 @@ Use [App Builder][2] to create dynamic, user-friendly forms to collect inputs fr
### Create software template workflows
To use software templates in Datadog, create a Git repository with the desired template. You can start from scratch or use our quickstart blueprints to learn from an example.
-#### Start from a blueprint
-Navigate to [App Builder Blueprints][9] and select one of the following blueprints:
+#### Start from an example
+Navigate to [App Builder Blueprints][9] and select one of the following blueprints. These are examples of how to configure an App or Workflow to help you get started. You can make updates to the examples to fit your needs, such as configuring inputs, setting up integrations with source code management or cloud providers, and configuring permissions.
##### Scaffold New Service
@@ -51,10 +52,11 @@ The [Provision RDS Instance blueprint][13] shows an example of how to provision
#### Start from scratch
Navigate to the [Workflow Automation][3] page to configure the template in Datadog.
-1. Create the form for your template:
+1. Create a form for the developer-facing frontend using App Builder:
- Navigate to **Actions** > **App Builder** and select **New App**.
- Enter a name and description, and use the drag-and-drop editor to create a form that collects the required parameters for your template.
- - Select **New Query**, and use the **Trigger workflow** action to call your templating workflow and pass in the relevant parameters.
+ - You can leverage the `Form` component or build a custom UI.
+ - After your UI is done, select **New Query**, and use the **Trigger workflow** action to call your templating workflow and pass in the relevant parameters. You can also explore the available integrations in the [Actions Catalog][7] or leverage the `HTTP` action to interact with any integrations not provided out of the box.
- Create a **Button** that submits the form, triggers your workflow, and passes in the parameters for the template.
- Save and publish the app.
@@ -64,23 +66,24 @@ Navigate to the [Workflow Automation][3] page to configure the template in Datad
3. Configure the templating workflow:
- Use GitHub, Gitlab, or HTTP [actions][7] to retrieve your template files.
- - Use Cookiecutter to generate the project files from the template.
- Use the Apply Template [action][7] to manipulate your template repository and pass in your input parameters.
- Use GitHub, Gitlab, or HTTP [actions][7] to upload the project files to the repository.
- Save the workflow.
{{< img src="tracing/software_catalog/templating-workflow.png" alt="Workflow for building software template automation" style="width:100%;" >}}
-4. Test your application and workflow:
- - Click **View App** to view the app on a standalone page, or **Add to a Dashboard** to place the app in a dashboard.
- - Navigate to **Service Mgmt** > **App Builder**, and select your app. Fill out the template form, and click the submit button.
+4. Test your App and Workflow:
+ - Click **View App** to view the app on a standalone page in a preview.
- Track the success of the workflow templating process in [Workflow Automation][3].
- {{< img src="tracing/software_catalog/templating-app.png" alt="Application for managing software templates through App Builder" style="width:100%;" >}}
+### Publishing your App
+When you have finished setting up and testing up your App, you can publish it for your team members to use. The publishing flow prompts you to define permissions and then allows you to add your App to a Dashboard or to the Self-Service portal.
+
+ {{< img src="tracing/service_catalog/self-service-publish.png" alt="Publish to Self-Service" style="width:100%;" >}}
### Available Software Catalog Actions
-Below is a comprehensive list of actions available for Software Catalog in Datadog Workflow Automation. Note that this list may evolve as new actions are added.
+Below is a list of actions available for Software Catalog in Datadog App Builder and Workflow Automation. You can see a full list of in the [Action Catalog][7].
- **Templating**
- "Apply template" to pass in parameters to a set of files
diff --git a/content/en/synthetics/guide/browser-tests-totp.md b/content/en/synthetics/guide/browser-tests-totp.md
index 3c166622114e8..6bde4a0a81b65 100644
--- a/content/en/synthetics/guide/browser-tests-totp.md
+++ b/content/en/synthetics/guide/browser-tests-totp.md
@@ -27,9 +27,10 @@ Create a global variable where you enter a secret key or upload a QR code from y
2. In **Define variable**, enter a **Variable Name**. Your variable name can only use uppercase letters, numbers, and underscores.
3. Enter a **Description** for your variable (optional).
4. Select **Tags** to associate with your variable (optional).
-5. Enter the **Secret Key** to your variable or upload a QR code image.
-6. Click **+ Generate** to create a TOTP. You can copy the generated TOTP with the **Copy** icon.
-7. In **Permissions settings**, restrict access to your variable based on roles in your org. For more information about roles, see the [RBAC documentation][1].
+5. Follow your authenticator app's documentation for instructions on creating a secret key or adding a new QR code.
+6. Enter the **Secret Key** to your variable or upload a QR code image.
+7. Click **+ Generate** to create a TOTP. You can copy the generated TOTP with the **Copy** icon.
+8. In **Permissions settings**, restrict access to your variable based on roles in your org. For more information about roles, see the [RBAC documentation][1].
{{< img src="synthetics/guide/browser-tests-totp/new-variable-totp.png" alt="Create a MFA token" style="width:100%;" >}}
diff --git a/content/en/watchdog/faulty_cloud_saas_api_detection.md b/content/en/watchdog/faulty_cloud_saas_api_detection.md
index e2daaae47e58a..b62b954bcadf3 100644
--- a/content/en/watchdog/faulty_cloud_saas_api_detection.md
+++ b/content/en/watchdog/faulty_cloud_saas_api_detection.md
@@ -64,15 +64,14 @@ Watchdog monitors the status of the following external providers' APIs:
| Zendesk | *.zendesk.com |
The following AWS services are monitored (.*amazonaws.com):
+- CloudWatch
- DynamoDB
- ELB
- ES
-- Events
- Firehose
- Kinesis
- KMS
- Lambda
-- Monitoring
- RDS
- S3
- SNS
@@ -100,4 +99,4 @@ in the following regions:
{{< partial name="whats-next/whats-next.html" >}}
[1]: https://app.datadoghq.com/event/explorer
-[2]: https://app.datadoghq.com/monitors/create
\ No newline at end of file
+[2]: https://app.datadoghq.com/monitors/create
diff --git a/data/api/v2/CodeExamples.json b/data/api/v2/CodeExamples.json
index 45fb1f4dee5ea..0dd4b3477940e 100644
--- a/data/api/v2/CodeExamples.json
+++ b/data/api/v2/CodeExamples.json
@@ -1334,11 +1334,25 @@
"description": "Update a user returns \"OK\" response"
}
],
+ "CreateWorkflow": [
+ {
+ "group": "workflow_automation",
+ "suffix": "",
+ "description": "Create a Workflow returns \"Successfully created a workflow.\" response"
+ }
+ ],
"CreateWorkflowInstance": [
{
"group": "workflow_automation",
"suffix": "",
"description": "Execute a workflow returns \"Created\" response"
}
+ ],
+ "UpdateWorkflow": [
+ {
+ "group": "workflow_automation",
+ "suffix": "",
+ "description": "Update an existing Workflow returns \"Successfully updated a workflow.\" response"
+ }
]
}
\ No newline at end of file
diff --git a/data/api/v2/full_spec.yaml b/data/api/v2/full_spec.yaml
index 41bd1df0e4b8f..58485bd3af7d0 100644
--- a/data/api/v2/full_spec.yaml
+++ b/data/api/v2/full_spec.yaml
@@ -1075,6 +1075,22 @@ components:
type: string
x-enum-varnames:
- API_KEYS
+ APITrigger:
+ description: Trigger a workflow VIA an API. The workflow must be published.
+ properties:
+ rateLimit:
+ $ref: '#/components/schemas/TriggerRateLimit'
+ type: object
+ APITriggerWrapper:
+ description: Schema for an API-based trigger.
+ properties:
+ apiTrigger:
+ $ref: '#/components/schemas/APITrigger'
+ startStepNames:
+ $ref: '#/components/schemas/StartStepNames'
+ required:
+ - apiTrigger
+ type: object
AWSAccountConfigID:
description: 'Unique Datadog ID of the AWS Account Integration Config.
@@ -1849,6 +1865,56 @@ components:
- id
- base_severity
type: object
+ Annotation:
+ description: A list of annotations used in the workflow. These are like sticky
+ notes for your workflow!
+ properties:
+ display:
+ $ref: '#/components/schemas/AnnotationDisplay'
+ id:
+ description: The `Annotation` `id`.
+ example: ''
+ type: string
+ markdownTextAnnotation:
+ $ref: '#/components/schemas/AnnotationMarkdownTextAnnotation'
+ required:
+ - id
+ - display
+ - markdownTextAnnotation
+ type: object
+ AnnotationDisplay:
+ description: The definition of `AnnotationDisplay` object.
+ properties:
+ bounds:
+ $ref: '#/components/schemas/AnnotationDisplayBounds'
+ type: object
+ AnnotationDisplayBounds:
+ description: The definition of `AnnotationDisplayBounds` object.
+ properties:
+ height:
+ description: The `bounds` `height`.
+ format: double
+ type: number
+ width:
+ description: The `bounds` `width`.
+ format: double
+ type: number
+ x:
+ description: The `bounds` `x`.
+ format: double
+ type: number
+ y:
+ description: The `bounds` `y`.
+ format: double
+ type: number
+ type: object
+ AnnotationMarkdownTextAnnotation:
+ description: The definition of `AnnotationMarkdownTextAnnotation` object.
+ properties:
+ text:
+ description: The `markdownTextAnnotation` `text`.
+ type: string
+ type: object
ApiID:
description: API identifier.
example: 90646597-5fdb-4a17-a240-647003f8c028
@@ -1992,6 +2058,17 @@ components:
deployment:
$ref: '#/components/schemas/DeploymentRelationship'
type: object
+ AppTriggerWrapper:
+ description: Schema for an App-based trigger.
+ properties:
+ appTrigger:
+ description: Trigger a workflow VIA an App.
+ type: object
+ startStepNames:
+ $ref: '#/components/schemas/StartStepNames'
+ required:
+ - appTrigger
+ type: object
ApplicationKeyCreateAttributes:
description: Attributes used to create an application Key.
properties:
@@ -5259,6 +5336,23 @@ components:
- OPEN
- IN_PROGRESS
- CLOSED
+ CaseTrigger:
+ description: Trigger a workflow VIA a Case. For automatic triggering a handle
+ must be configured and the workflow must be published.
+ properties:
+ rateLimit:
+ $ref: '#/components/schemas/TriggerRateLimit'
+ type: object
+ CaseTriggerWrapper:
+ description: Schema for a Case-based trigger.
+ properties:
+ caseTrigger:
+ $ref: '#/components/schemas/CaseTrigger'
+ startStepNames:
+ $ref: '#/components/schemas/StartStepNames'
+ required:
+ - caseTrigger
+ type: object
CaseType:
description: Case type
enum:
@@ -5476,6 +5570,17 @@ components:
type: string
x-enum-varnames:
- SERVICE
+ ChangeEventTriggerWrapper:
+ description: Schema for a Change Event-based trigger.
+ properties:
+ changeEventTrigger:
+ description: Trigger a workflow VIA a Change Event.
+ type: object
+ startStepNames:
+ $ref: '#/components/schemas/StartStepNames'
+ required:
+ - changeEventTrigger
+ type: object
ChargebackBreakdown:
description: Charges breakdown.
properties:
@@ -6178,6 +6283,60 @@ components:
required:
- location
type: object
+ CompletionCondition:
+ description: The definition of `CompletionCondition` object.
+ properties:
+ operand1:
+ description: The `CompletionCondition` `operand1`.
+ operand2:
+ description: The `CompletionCondition` `operand2`.
+ operator:
+ $ref: '#/components/schemas/CompletionConditionOperator'
+ required:
+ - operand1
+ - operator
+ type: object
+ CompletionConditionOperator:
+ description: The definition of `CompletionConditionOperator` object.
+ enum:
+ - OPERATOR_EQUAL
+ - OPERATOR_NOT_EQUAL
+ - OPERATOR_GREATER_THAN
+ - OPERATOR_LESS_THAN
+ - OPERATOR_GREATER_THAN_OR_EQUAL_TO
+ - OPERATOR_LESS_THAN_OR_EQUAL_TO
+ - OPERATOR_CONTAINS
+ - OPERATOR_DOES_NOT_CONTAIN
+ - OPERATOR_IS_NULL
+ - OPERATOR_IS_NOT_NULL
+ - OPERATOR_IS_EMPTY
+ - OPERATOR_IS_NOT_EMPTY
+ example: OPERATOR_EQUAL
+ type: string
+ x-enum-varnames:
+ - OPERATOR_EQUAL
+ - OPERATOR_NOT_EQUAL
+ - OPERATOR_GREATER_THAN
+ - OPERATOR_LESS_THAN
+ - OPERATOR_GREATER_THAN_OR_EQUAL_TO
+ - OPERATOR_LESS_THAN_OR_EQUAL_TO
+ - OPERATOR_CONTAINS
+ - OPERATOR_DOES_NOT_CONTAIN
+ - OPERATOR_IS_NULL
+ - OPERATOR_IS_NOT_NULL
+ - OPERATOR_IS_EMPTY
+ - OPERATOR_IS_NOT_EMPTY
+ CompletionGate:
+ description: Used to create conditions before running subsequent actions.
+ properties:
+ completionCondition:
+ $ref: '#/components/schemas/CompletionCondition'
+ retryStrategy:
+ $ref: '#/components/schemas/RetryStrategy'
+ required:
+ - completionCondition
+ - retryStrategy
+ type: object
Component:
description: '[Definition of a UI component in the app](https://docs.datadoghq.com/service_management/app_builder/components/)'
properties:
@@ -6649,6 +6808,70 @@ components:
$ref: '#/components/schemas/ConfluentResourceResponseData'
type: array
type: object
+ Connection:
+ description: The definition of `Connection` object.
+ properties:
+ connectionId:
+ description: The `Connection` `connectionId`.
+ example: ''
+ type: string
+ label:
+ description: The `Connection` `label`.
+ example: ''
+ type: string
+ required:
+ - connectionId
+ - label
+ type: object
+ ConnectionEnv:
+ description: A list of connections or connection groups used in the workflow.
+ properties:
+ connectionGroups:
+ description: The `ConnectionEnv` `connectionGroups`.
+ items:
+ $ref: '#/components/schemas/ConnectionGroup'
+ type: array
+ connections:
+ description: The `ConnectionEnv` `connections`.
+ items:
+ $ref: '#/components/schemas/Connection'
+ type: array
+ env:
+ $ref: '#/components/schemas/ConnectionEnvEnv'
+ required:
+ - env
+ type: object
+ ConnectionEnvEnv:
+ description: The definition of `ConnectionEnvEnv` object.
+ enum:
+ - default
+ example: default
+ type: string
+ x-enum-varnames:
+ - DEFAULT
+ ConnectionGroup:
+ description: The definition of `ConnectionGroup` object.
+ properties:
+ connectionGroupId:
+ description: The `ConnectionGroup` `connectionGroupId`.
+ example: ''
+ type: string
+ label:
+ description: The `ConnectionGroup` `label`.
+ example: ''
+ type: string
+ tags:
+ description: The `ConnectionGroup` `tags`.
+ example:
+ - ''
+ items:
+ type: string
+ type: array
+ required:
+ - connectionGroupId
+ - label
+ - tags
+ type: object
Container:
description: Container object.
properties:
@@ -7557,6 +7780,82 @@ components:
type:
$ref: '#/components/schemas/RuleType'
type: object
+ CreateWorkflowRequest:
+ description: A request object for creating a new workflow.
+ example:
+ data:
+ attributes:
+ description: A sample workflow.
+ name: Example Workflow
+ published: true
+ spec:
+ annotations:
+ - display:
+ bounds:
+ height: 150
+ width: 300
+ x: -375
+ y: -0.5
+ id: 99999999-9999-9999-9999-999999999999
+ markdownTextAnnotation:
+ text: Example annotation.
+ connectionEnvs:
+ - connections:
+ - connectionId: 11111111-1111-1111-1111-111111111111
+ label: INTEGRATION_DATADOG
+ env: default
+ handle: my-handle
+ inputSchema:
+ parameters:
+ - defaultValue: default
+ name: input
+ type: STRING
+ outputSchema:
+ parameters:
+ - name: output
+ type: ARRAY_OBJECT
+ value: '{{ Steps.Step1 }}'
+ steps:
+ - actionId: com.datadoghq.dd.monitor.listMonitors
+ connectionLabel: INTEGRATION_DATADOG
+ name: Step1
+ outboundEdges:
+ - branchName: main
+ nextStepName: Step2
+ parameters:
+ - name: tags
+ value: service:monitoring
+ - actionId: com.datadoghq.core.noop
+ name: Step2
+ triggers:
+ - monitorTrigger:
+ rateLimit:
+ count: 1
+ interval: 3600s
+ startStepNames:
+ - Step1
+ - githubWebhookTrigger: {}
+ startStepNames:
+ - Step1
+ tags:
+ - team:infra
+ - service:monitoring
+ - foo:bar
+ type: workflows
+ properties:
+ data:
+ $ref: '#/components/schemas/WorkflowData'
+ required:
+ - data
+ type: object
+ CreateWorkflowResponse:
+ description: The response object after creating a new workflow.
+ properties:
+ data:
+ $ref: '#/components/schemas/WorkflowData'
+ required:
+ - data
+ type: object
Creator:
description: Creator of the object.
properties:
@@ -9043,6 +9342,17 @@ components:
$ref: '#/components/schemas/DashboardListItemResponse'
type: array
type: object
+ DashboardTriggerWrapper:
+ description: Schema for a Dashboard-based trigger.
+ properties:
+ dashboardTrigger:
+ description: Trigger a workflow VIA a Dashboard.
+ type: object
+ startStepNames:
+ $ref: '#/components/schemas/StartStepNames'
+ required:
+ - dashboardTrigger
+ type: object
DashboardType:
description: The type of the dashboard.
enum:
@@ -11022,6 +11332,19 @@ components:
minLength: 1
type: string
type: object
+ ErrorHandler:
+ description: Used to handle errors in an action.
+ properties:
+ fallbackStepName:
+ description: The `ErrorHandler` `fallbackStepName`.
+ example: ''
+ type: string
+ retryStrategy:
+ $ref: '#/components/schemas/RetryStrategy'
+ required:
+ - retryStrategy
+ - fallbackStepName
+ type: object
Event:
description: The metadata associated with a request.
properties:
@@ -12801,6 +13124,30 @@ components:
$ref: '#/components/schemas/GetInterfacesData'
type: array
type: object
+ GetRuleVersionHistoryData:
+ description: Data for the rule version history.
+ properties:
+ attributes:
+ $ref: '#/components/schemas/RuleVersionHistory'
+ id:
+ description: ID of the rule.
+ type: string
+ type:
+ $ref: '#/components/schemas/GetRuleVersionHistoryDataType'
+ type: object
+ GetRuleVersionHistoryDataType:
+ description: Type of data.
+ enum:
+ - GetRuleVersionHistoryResponse
+ type: string
+ x-enum-varnames:
+ - GETRULEVERSIONHISTORYRESPONSE
+ GetRuleVersionHistoryResponse:
+ description: Response for getting the rule version history.
+ properties:
+ data:
+ $ref: '#/components/schemas/GetRuleVersionHistoryData'
+ type: object
GetSBOMResponse:
description: The expected response schema when getting an SBOM.
properties:
@@ -12830,6 +13177,12 @@ components:
- _HANDLE
- EMAIL
- _EMAIL
+ GetWorkflowResponse:
+ description: The response object after getting a workflow.
+ properties:
+ data:
+ $ref: '#/components/schemas/WorkflowData'
+ type: object
GitCommitSHA:
description: Git Commit SHA.
example: 66adc9350f2cc9b250b69abddab733dd55e1a588
@@ -12839,6 +13192,26 @@ components:
description: Git Repository URL
example: https://github.com/organization/example-repository
type: string
+ GithubWebhookTrigger:
+ description: Trigger a workflow VIA GitHub webhook. To trigger a workflow from
+ GitHub, you must set a `webhookSecret`. In your GitHub Webhook Settings, set
+ the Payload URL to "base_url"/api/v2/workflows/"workflow_id"/webhook?orgId="org_id",
+ select application/json for the content type, and be highly recommend enabling
+ SSL verification for security. The workflow must be published.
+ properties:
+ rateLimit:
+ $ref: '#/components/schemas/TriggerRateLimit'
+ type: object
+ GithubWebhookTriggerWrapper:
+ description: Schema for a GitHub webhook-based trigger.
+ properties:
+ githubWebhookTrigger:
+ $ref: '#/components/schemas/GithubWebhookTrigger'
+ startStepNames:
+ $ref: '#/components/schemas/StartStepNames'
+ required:
+ - githubWebhookTrigger
+ type: object
GroupScalarColumn:
description: A column containing the tag keys and values in a group.
properties:
@@ -15134,6 +15507,23 @@ components:
type: string
x-enum-varnames:
- INCIDENT_TODOS
+ IncidentTrigger:
+ description: Trigger a workflow VIA an Incident. For automatic triggering a
+ handle must be configured and the workflow must be published.
+ properties:
+ rateLimit:
+ $ref: '#/components/schemas/TriggerRateLimit'
+ type: object
+ IncidentTriggerWrapper:
+ description: Schema for an Incident-based trigger.
+ properties:
+ incidentTrigger:
+ $ref: '#/components/schemas/IncidentTrigger'
+ startStepNames:
+ $ref: '#/components/schemas/StartStepNames'
+ required:
+ - incidentTrigger
+ type: object
IncidentType:
default: incidents
description: Incident resource type.
@@ -15578,6 +15968,59 @@ components:
- ONCALL
- INCIDENT
- RELATION
+ InputSchema:
+ description: A list of input parameters for the workflow. These can be used
+ as dynamic runtime values in your workflow.
+ properties:
+ parameters:
+ description: The `InputSchema` `parameters`.
+ items:
+ $ref: '#/components/schemas/InputSchemaParameters'
+ type: array
+ type: object
+ InputSchemaParameters:
+ description: The definition of `InputSchemaParameters` object.
+ properties:
+ defaultValue:
+ description: The `InputSchemaParameters` `defaultValue`.
+ description:
+ description: The `InputSchemaParameters` `description`.
+ type: string
+ label:
+ description: The `InputSchemaParameters` `label`.
+ type: string
+ name:
+ description: The `InputSchemaParameters` `name`.
+ example: ''
+ type: string
+ type:
+ $ref: '#/components/schemas/InputSchemaParametersType'
+ required:
+ - name
+ - type
+ type: object
+ InputSchemaParametersType:
+ description: The definition of `InputSchemaParametersType` object.
+ enum:
+ - STRING
+ - NUMBER
+ - BOOLEAN
+ - OBJECT
+ - ARRAY_STRING
+ - ARRAY_NUMBER
+ - ARRAY_BOOLEAN
+ - ARRAY_OBJECT
+ example: STRING
+ type: string
+ x-enum-varnames:
+ - STRING
+ - NUMBER
+ - BOOLEAN
+ - OBJECT
+ - ARRAY_STRING
+ - ARRAY_NUMBER
+ - ARRAY_BOOLEAN
+ - ARRAY_OBJECT
IntakePayloadAccepted:
description: The payload accepted for intake.
properties:
@@ -19768,6 +20211,23 @@ components:
type:
$ref: '#/components/schemas/MonitorDowntimeMatchResourceType'
type: object
+ MonitorTrigger:
+ description: Trigger a workflow VIA a Monitor. For automatic triggering a handle
+ must be configured and the workflow must be published.
+ properties:
+ rateLimit:
+ $ref: '#/components/schemas/TriggerRateLimit'
+ type: object
+ MonitorTriggerWrapper:
+ description: Schema for a Monitor-based trigger.
+ properties:
+ monitorTrigger:
+ $ref: '#/components/schemas/MonitorTrigger'
+ startStepNames:
+ $ref: '#/components/schemas/StartStepNames'
+ required:
+ - monitorTrigger
+ type: object
MonitorType:
description: Attributes from the monitor that triggered the event.
nullable: true
@@ -20543,6 +21003,21 @@ components:
type: string
x-enum-varnames:
- ORGS
+ OutboundEdge:
+ description: The definition of `OutboundEdge` object.
+ properties:
+ branchName:
+ description: The `OutboundEdge` `branchName`.
+ example: ''
+ type: string
+ nextStepName:
+ description: The `OutboundEdge` `nextStepName`.
+ example: ''
+ type: string
+ required:
+ - nextStepName
+ - branchName
+ type: object
OutcomeType:
default: outcome
description: The JSON:API type for an outcome.
@@ -20722,6 +21197,60 @@ components:
example: /api/v2/scorecard/outcomes?include=rule&page%5Blimit%5D=100&page%5Boffset%5D=100
type: string
type: object
+ OutputSchema:
+ description: A list of output parameters for the workflow.
+ properties:
+ parameters:
+ description: The `OutputSchema` `parameters`.
+ items:
+ $ref: '#/components/schemas/OutputSchemaParameters'
+ type: array
+ type: object
+ OutputSchemaParameters:
+ description: The definition of `OutputSchemaParameters` object.
+ properties:
+ defaultValue:
+ description: The `OutputSchemaParameters` `defaultValue`.
+ description:
+ description: The `OutputSchemaParameters` `description`.
+ type: string
+ label:
+ description: The `OutputSchemaParameters` `label`.
+ type: string
+ name:
+ description: The `OutputSchemaParameters` `name`.
+ example: ''
+ type: string
+ type:
+ $ref: '#/components/schemas/OutputSchemaParametersType'
+ value:
+ description: The `OutputSchemaParameters` `value`.
+ required:
+ - name
+ - type
+ type: object
+ OutputSchemaParametersType:
+ description: The definition of `OutputSchemaParametersType` object.
+ enum:
+ - STRING
+ - NUMBER
+ - BOOLEAN
+ - OBJECT
+ - ARRAY_STRING
+ - ARRAY_NUMBER
+ - ARRAY_BOOLEAN
+ - ARRAY_OBJECT
+ example: STRING
+ type: string
+ x-enum-varnames:
+ - STRING
+ - NUMBER
+ - BOOLEAN
+ - OBJECT
+ - ARRAY_STRING
+ - ARRAY_NUMBER
+ - ARRAY_BOOLEAN
+ - ARRAY_OBJECT
Pagination:
description: Pagination object.
properties:
@@ -20734,6 +21263,19 @@ components:
format: int64
type: integer
type: object
+ Parameter:
+ description: The definition of `Parameter` object.
+ properties:
+ name:
+ description: The `Parameter` `name`.
+ example: ''
+ type: string
+ value:
+ description: The `Parameter` `value`.
+ required:
+ - name
+ - value
+ type: object
PartialAPIKey:
description: Partial Datadog API key.
properties:
@@ -22376,6 +22918,24 @@ components:
from the other indexes
type: string
type: object
+ ReadinessGate:
+ description: Used to merge multiple branches into a single branch.
+ properties:
+ thresholdType:
+ $ref: '#/components/schemas/ReadinessGateThresholdType'
+ required:
+ - thresholdType
+ type: object
+ ReadinessGateThresholdType:
+ description: The definition of `ReadinessGateThresholdType` object.
+ enum:
+ - ANY
+ - ALL
+ example: ANY
+ type: string
+ x-enum-varnames:
+ - ANY
+ - ALL
RelationType:
description: Supported relation types.
enum:
@@ -23508,6 +24068,41 @@ components:
required:
- data
type: object
+ RetryStrategy:
+ description: The definition of `RetryStrategy` object.
+ properties:
+ kind:
+ $ref: '#/components/schemas/RetryStrategyKind'
+ linear:
+ $ref: '#/components/schemas/RetryStrategyLinear'
+ required:
+ - kind
+ type: object
+ RetryStrategyKind:
+ description: The definition of `RetryStrategyKind` object.
+ enum:
+ - RETRY_STRATEGY_LINEAR
+ example: RETRY_STRATEGY_LINEAR
+ type: string
+ x-enum-varnames:
+ - RETRY_STRATEGY_LINEAR
+ RetryStrategyLinear:
+ description: The definition of `RetryStrategyLinear` object.
+ properties:
+ interval:
+ description: The `RetryStrategyLinear` `interval`. The expected format is
+ the number of seconds ending with an s. For example, 1 day is 86400s
+ example: ''
+ type: string
+ maxRetries:
+ description: The `RetryStrategyLinear` `maxRetries`.
+ example: 0.0
+ format: double
+ type: number
+ required:
+ - interval
+ - maxRetries
+ type: object
Role:
description: Role object returned by the API.
properties:
@@ -23908,6 +24503,57 @@ components:
example: John Doe
type: string
type: object
+ RuleVersionHistory:
+ description: Response object containing the version history of a rule.
+ properties:
+ count:
+ description: The number of rule versions.
+ format: int32
+ maximum: 2147483647
+ type: integer
+ data:
+ additionalProperties:
+ $ref: '#/components/schemas/RuleVersions'
+ description: A rule version with a list of updates.
+ description: The `RuleVersionHistory` `data`.
+ type: object
+ type: object
+ RuleVersionUpdate:
+ description: A change in a rule version.
+ properties:
+ change:
+ description: The new value of the field.
+ example: cloud_provider:aws
+ type: string
+ field:
+ description: The field that was changed.
+ example: Tags
+ type: string
+ type:
+ $ref: '#/components/schemas/RuleVersionUpdateType'
+ type: object
+ RuleVersionUpdateType:
+ description: The type of change.
+ enum:
+ - create
+ - update
+ - delete
+ type: string
+ x-enum-varnames:
+ - CREATE
+ - UPDATE
+ - DELETE
+ RuleVersions:
+ description: A rule version with a list of updates.
+ properties:
+ changes:
+ description: A list of changes.
+ items:
+ $ref: '#/components/schemas/RuleVersionUpdate'
+ type: array
+ rule:
+ $ref: '#/components/schemas/SecurityMonitoringRuleResponse'
+ type: object
RumMetricCompute:
description: The compute rule to compute the rum-based metric.
properties:
@@ -24622,6 +25268,26 @@ components:
type:
$ref: '#/components/schemas/ScalarFormulaResponseType'
type: object
+ ScheduleTrigger:
+ description: Trigger a workflow VIA a Schedule. The workflow must be published.
+ properties:
+ rruleExpression:
+ description: Recurrence rule expression for scheduling.
+ example: ''
+ type: string
+ required:
+ - rruleExpression
+ type: object
+ ScheduleTriggerWrapper:
+ description: Schema for a Schedule-based trigger.
+ properties:
+ scheduleTrigger:
+ $ref: '#/components/schemas/ScheduleTrigger'
+ startStepNames:
+ $ref: '#/components/schemas/StartStepNames'
+ required:
+ - scheduleTrigger
+ type: object
ScorecardType:
default: scorecard
description: The JSON:API type for scorecard.
@@ -26872,6 +27538,23 @@ components:
nullable: true
type: string
type: object
+ SecurityTrigger:
+ description: Trigger a workflow VIA a Security Signal or Finding. For automatic
+ triggering a handle must be configured and the workflow must be published.
+ properties:
+ rateLimit:
+ $ref: '#/components/schemas/TriggerRateLimit'
+ type: object
+ SecurityTriggerWrapper:
+ description: Schema for a Security-based trigger.
+ properties:
+ securityTrigger:
+ $ref: '#/components/schemas/SecurityTrigger'
+ startStepNames:
+ $ref: '#/components/schemas/StartStepNames'
+ required:
+ - securityTrigger
+ type: object
Selectors:
description: 'Selectors are used to filter security issues for which notifications
should be generated.
@@ -28629,6 +29312,17 @@ components:
- channel_name
- redirect_url
type: object
+ SlackTriggerWrapper:
+ description: Schema for a Slack-based trigger.
+ properties:
+ slackTrigger:
+ description: Trigger a workflow VIA Slack. The workflow must be published.
+ type: object
+ startStepNames:
+ $ref: '#/components/schemas/StartStepNames'
+ required:
+ - slackTrigger
+ type: object
SloReportCreateRequest:
description: The SLO report request body.
properties:
@@ -29551,6 +30245,41 @@ components:
from the other indexes
type: string
type: object
+ Spec:
+ description: The spec defines what the workflow does.
+ properties:
+ annotations:
+ description: A list of annotations used in the workflow. These are like
+ sticky notes for your workflow!
+ items:
+ $ref: '#/components/schemas/Annotation'
+ type: array
+ connectionEnvs:
+ description: A list of connections or connection groups used in the workflow.
+ items:
+ $ref: '#/components/schemas/ConnectionEnv'
+ type: array
+ handle:
+ description: Unique identifier used to trigger workflows automatically in
+ Datadog.
+ type: string
+ inputSchema:
+ $ref: '#/components/schemas/InputSchema'
+ outputSchema:
+ $ref: '#/components/schemas/OutputSchema'
+ steps:
+ description: A `Step` is a sub-component of a workflow. Each `Step` performs
+ an action.
+ items:
+ $ref: '#/components/schemas/Step'
+ type: array
+ triggers:
+ description: The list of triggers that activate this workflow. At least
+ one trigger is required, and each trigger type may appear at most once.
+ items:
+ $ref: '#/components/schemas/Trigger'
+ type: array
+ type: object
SpecVersion:
description: The version of the CycloneDX specification a BOM conforms to.
enum:
@@ -29569,6 +30298,14 @@ components:
- ONE_THREE
- ONE_FOUR
- ONE_FIVE
+ StartStepNames:
+ description: A list of steps that run first after a trigger fires.
+ example:
+ - ''
+ items:
+ description: The `StartStepNames` `items`.
+ type: string
+ type: array
State:
description: The state of the rule evaluation.
enum:
@@ -29581,6 +30318,64 @@ components:
- PASS
- FAIL
- SKIP
+ Step:
+ description: A Step is a sub-component of a workflow. Each Step performs an
+ action.
+ properties:
+ actionId:
+ description: The unique identifier of an action.
+ example: ''
+ type: string
+ completionGate:
+ $ref: '#/components/schemas/CompletionGate'
+ connectionLabel:
+ description: The unique identifier of a connection defined in the spec.
+ type: string
+ display:
+ $ref: '#/components/schemas/StepDisplay'
+ errorHandlers:
+ description: The `Step` `errorHandlers`.
+ items:
+ $ref: '#/components/schemas/ErrorHandler'
+ type: array
+ name:
+ description: Name of the step.
+ example: ''
+ type: string
+ outboundEdges:
+ description: A list of subsequent actions to run.
+ items:
+ $ref: '#/components/schemas/OutboundEdge'
+ type: array
+ parameters:
+ description: A list of inputs for an action.
+ items:
+ $ref: '#/components/schemas/Parameter'
+ type: array
+ readinessGate:
+ $ref: '#/components/schemas/ReadinessGate'
+ required:
+ - name
+ - actionId
+ type: object
+ StepDisplay:
+ description: The definition of `StepDisplay` object.
+ properties:
+ bounds:
+ $ref: '#/components/schemas/StepDisplayBounds'
+ type: object
+ StepDisplayBounds:
+ description: The definition of `StepDisplayBounds` object.
+ properties:
+ x:
+ description: The `bounds` `x`.
+ format: double
+ type: number
+ y:
+ description: The `bounds` `y`.
+ format: double
+ type: number
+ type: object
TagsEventAttribute:
description: Array of tags associated with your event.
example:
@@ -30393,6 +31188,33 @@ components:
type: string
x-enum-varnames:
- SECRET
+ Trigger:
+ description: One of the triggers that can start the execution of a workflow.
+ oneOf:
+ - $ref: '#/components/schemas/APITriggerWrapper'
+ - $ref: '#/components/schemas/AppTriggerWrapper'
+ - $ref: '#/components/schemas/CaseTriggerWrapper'
+ - $ref: '#/components/schemas/ChangeEventTriggerWrapper'
+ - $ref: '#/components/schemas/DashboardTriggerWrapper'
+ - $ref: '#/components/schemas/GithubWebhookTriggerWrapper'
+ - $ref: '#/components/schemas/IncidentTriggerWrapper'
+ - $ref: '#/components/schemas/MonitorTriggerWrapper'
+ - $ref: '#/components/schemas/ScheduleTriggerWrapper'
+ - $ref: '#/components/schemas/SecurityTriggerWrapper'
+ - $ref: '#/components/schemas/SlackTriggerWrapper'
+ - $ref: '#/components/schemas/WorkflowTriggerWrapper'
+ TriggerRateLimit:
+ description: Defines a rate limit for a trigger.
+ properties:
+ count:
+ description: The `TriggerRateLimit` `count`.
+ format: int64
+ type: integer
+ interval:
+ description: The `TriggerRateLimit` `interval`. The expected format is the
+ number of seconds ending with an s. For example, 1 day is 86400s
+ type: string
+ type: object
TriggerSource:
description: 'The type of security issues on which the rule applies. Notification
rules based on security signals need to use the trigger source "security_signals",
@@ -30682,6 +31504,81 @@ components:
type:
$ref: '#/components/schemas/RuleType'
type: object
+ UpdateWorkflowRequest:
+ description: A request object for updating an existing workflow.
+ example:
+ data:
+ attributes:
+ description: A sample workflow.
+ name: Example Workflow
+ published: true
+ spec:
+ annotations:
+ - display:
+ bounds:
+ height: 150
+ width: 300
+ x: -375
+ y: -0.5
+ id: 99999999-9999-9999-9999-999999999999
+ markdownTextAnnotation:
+ text: Example annotation.
+ connectionEnvs:
+ - connections:
+ - connectionId: 11111111-1111-1111-1111-111111111111
+ label: INTEGRATION_DATADOG
+ env: default
+ handle: my-handle
+ inputSchema:
+ parameters:
+ - defaultValue: default
+ name: input
+ type: STRING
+ outputSchema:
+ parameters:
+ - name: output
+ type: ARRAY_OBJECT
+ value: '{{ Steps.Step1 }}'
+ steps:
+ - actionId: com.datadoghq.dd.monitor.listMonitors
+ connectionLabel: INTEGRATION_DATADOG
+ name: Step1
+ outboundEdges:
+ - branchName: main
+ nextStepName: Step2
+ parameters:
+ - name: tags
+ value: service:monitoring
+ - actionId: com.datadoghq.core.noop
+ name: Step2
+ triggers:
+ - monitorTrigger:
+ rateLimit:
+ count: 1
+ interval: 3600s
+ startStepNames:
+ - Step1
+ - githubWebhookTrigger: {}
+ startStepNames:
+ - Step1
+ tags:
+ - team:infra
+ - service:monitoring
+ - foo:bar
+ id: 22222222-2222-2222-2222-222222222222
+ type: workflows
+ properties:
+ data:
+ $ref: '#/components/schemas/WorkflowDataUpdate'
+ required:
+ - data
+ type: object
+ UpdateWorkflowResponse:
+ description: The response object after updating a workflow.
+ properties:
+ data:
+ $ref: '#/components/schemas/WorkflowDataUpdate'
+ type: object
UpsertCatalogEntityRequest:
description: Create or update entity request.
oneOf:
@@ -31749,6 +32646,134 @@ components:
- PAST_SIX_MONTHS
- PAST_ONE_YEAR
- ALERT
+ WorkflowData:
+ description: Data related to the workflow.
+ properties:
+ attributes:
+ $ref: '#/components/schemas/WorkflowDataAttributes'
+ id:
+ description: The workflow identifier
+ readOnly: true
+ type: string
+ relationships:
+ $ref: '#/components/schemas/WorkflowDataRelationships'
+ type:
+ $ref: '#/components/schemas/WorkflowDataType'
+ required:
+ - type
+ - attributes
+ type: object
+ WorkflowDataAttributes:
+ description: The definition of `WorkflowDataAttributes` object.
+ properties:
+ createdAt:
+ description: When the workflow was created.
+ format: date-time
+ readOnly: true
+ type: string
+ description:
+ description: Description of the workflow.
+ type: string
+ name:
+ description: Name of the workflow.
+ example: ''
+ type: string
+ published:
+ description: Set the workflow to published or unpublished. Workflows in
+ an unpublished state will only be executable via manual runs. Automatic
+ triggers such as Schedule will not execute the workflow until it is published.
+ type: boolean
+ spec:
+ $ref: '#/components/schemas/Spec'
+ tags:
+ description: Tags of the workflow.
+ items:
+ type: string
+ type: array
+ updatedAt:
+ description: When the workflow was last updated.
+ format: date-time
+ readOnly: true
+ type: string
+ webhookSecret:
+ description: If a Webhook trigger is defined on this workflow, a webhookSecret
+ is required and should be provided here.
+ type: string
+ writeOnly: true
+ required:
+ - name
+ - spec
+ type: object
+ WorkflowDataRelationships:
+ description: The definition of `WorkflowDataRelationships` object.
+ properties:
+ creator:
+ $ref: '#/components/schemas/WorkflowUserRelationship'
+ owner:
+ $ref: '#/components/schemas/WorkflowUserRelationship'
+ readOnly: true
+ type: object
+ WorkflowDataType:
+ description: The definition of `WorkflowDataType` object.
+ enum:
+ - workflows
+ example: workflows
+ type: string
+ x-enum-varnames:
+ - WORKFLOWS
+ WorkflowDataUpdate:
+ description: Data related to the workflow being updated.
+ properties:
+ attributes:
+ $ref: '#/components/schemas/WorkflowDataUpdateAttributes'
+ id:
+ description: The workflow identifier
+ type: string
+ relationships:
+ $ref: '#/components/schemas/WorkflowDataRelationships'
+ type:
+ $ref: '#/components/schemas/WorkflowDataType'
+ required:
+ - type
+ - attributes
+ type: object
+ WorkflowDataUpdateAttributes:
+ description: The definition of `WorkflowDataUpdateAttributes` object.
+ properties:
+ createdAt:
+ description: When the workflow was created.
+ format: date-time
+ readOnly: true
+ type: string
+ description:
+ description: Description of the workflow.
+ type: string
+ name:
+ description: Name of the workflow.
+ type: string
+ published:
+ description: Set the workflow to published or unpublished. Workflows in
+ an unpublished state will only be executable via manual runs. Automatic
+ triggers such as Schedule will not execute the workflow until it is published.
+ type: boolean
+ spec:
+ $ref: '#/components/schemas/Spec'
+ tags:
+ description: Tags of the workflow.
+ items:
+ type: string
+ type: array
+ updatedAt:
+ description: When the workflow was last updated.
+ format: date-time
+ readOnly: true
+ type: string
+ webhookSecret:
+ description: If a Webhook trigger is defined on this workflow, a webhookSecret
+ is required and should be provided here.
+ type: string
+ writeOnly: true
+ type: object
WorkflowInstanceCreateMeta:
description: Additional information for creating a workflow instance.
properties:
@@ -31815,6 +32840,45 @@ components:
format: int64
type: integer
type: object
+ WorkflowTriggerWrapper:
+ description: Schema for a Workflow-based trigger.
+ properties:
+ startStepNames:
+ $ref: '#/components/schemas/StartStepNames'
+ workflowTrigger:
+ description: Trigger a workflow VIA the Datadog UI. Only required if no
+ other trigger exists.
+ type: object
+ required:
+ - workflowTrigger
+ type: object
+ WorkflowUserRelationship:
+ description: The definition of `WorkflowUserRelationship` object.
+ properties:
+ data:
+ $ref: '#/components/schemas/WorkflowUserRelationshipData'
+ type: object
+ WorkflowUserRelationshipData:
+ description: The definition of `WorkflowUserRelationshipData` object.
+ properties:
+ id:
+ description: The user identifier
+ example: ''
+ type: string
+ type:
+ $ref: '#/components/schemas/WorkflowUserRelationshipType'
+ required:
+ - type
+ - id
+ type: object
+ WorkflowUserRelationshipType:
+ description: The definition of `WorkflowUserRelationshipType` object.
+ enum:
+ - users
+ example: users
+ type: string
+ x-enum-varnames:
+ - USERS
WorklflowCancelInstanceResponse:
description: Information about the canceled instance.
properties:
@@ -49135,6 +50199,45 @@ paths:
- security_monitoring_rules_write
x-undo:
type: idempotent
+ /api/v2/security_monitoring/rules/{rule_id}/version_history:
+ get:
+ description: Get a rule's version history.
+ operationId: GetRuleVersionHistory
+ parameters:
+ - $ref: '#/components/parameters/SecurityMonitoringRuleID'
+ - $ref: '#/components/parameters/PageSize'
+ - $ref: '#/components/parameters/PageNumber'
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/GetRuleVersionHistoryResponse'
+ description: OK
+ '400':
+ $ref: '#/components/responses/BadRequestResponse'
+ '403':
+ $ref: '#/components/responses/NotAuthorizedResponse'
+ '404':
+ $ref: '#/components/responses/NotFoundResponse'
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ:
+ - security_monitoring_rules_read
+ summary: Get a rule's version history
+ tags:
+ - Security Monitoring
+ x-menu-order: 25
+ x-permission:
+ operator: OR
+ permissions:
+ - security_monitoring_rules_read
+ x-undo:
+ type: safe
+ x-unstable: '**Note**: This endpoint is in beta and may be subject to changes.'
/api/v2/security_monitoring/signals:
get:
description: 'The list endpoint returns security signals that match a search
@@ -53723,6 +54826,206 @@ paths:
- teams_read
x-undo:
type: safe
+ /api/v2/workflows:
+ post:
+ description: Create a new workflow, returning the workflow ID. This API requires
+ an application key scoped with the `workflows_write` permission.
+ operationId: CreateWorkflow
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateWorkflowRequest'
+ required: true
+ responses:
+ '201':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateWorkflowResponse'
+ description: Successfully created a workflow.
+ '400':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Bad request
+ '403':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Forbidden
+ '429':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Too many requests
+ summary: Create a Workflow
+ tags:
+ - Workflow Automation
+ x-given:
+ workflow:
+ parameters:
+ - name: body
+ value: "{\n \"data\": {\n \"type\": \"workflows\",\n \"attributes\":
+ {\n \"name\": \"Cassette Workflow x-given\",\n \"spec\":
+ {\n \"triggers\": [\n {\n \"startStepNames\":
+ [\"No_op\"],\n \"workflowTrigger\": {}\n }\n
+ \ ],\n \"steps\": [\n {\n \"name\":
+ \"No_op\",\n \"actionId\": \"com.datadoghq.core.noop\"\n
+ \ }\n ]\n }\n }\n }\n}"
+ step: there is a valid "workflow" in the system
+ x-menu-order: 2
+ x-permission:
+ operator: OR
+ permissions:
+ - workflows_write
+ x-undo:
+ operationId: DeleteWorkflow
+ parameters:
+ - name: workflow_id
+ source: data.id
+ type: unsafe
+ /api/v2/workflows/{workflow_id}:
+ delete:
+ description: Delete a workflow by ID. This API requires an application key scoped
+ with the `workflows_write` permission.
+ operationId: DeleteWorkflow
+ parameters:
+ - $ref: '#/components/parameters/WorkflowId'
+ responses:
+ '204':
+ description: Successfully deleted a workflow.
+ '403':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Forbidden
+ '404':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Not found
+ '429':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Too many requests
+ summary: Delete an existing Workflow
+ tags:
+ - Workflow Automation
+ x-menu-order: 4
+ x-permission:
+ operator: OR
+ permissions:
+ - workflows_write
+ x-undo:
+ type: idempotent
+ get:
+ description: Get a workflow by ID. This API requires an application key scoped
+ with the `workflows_read` permission.
+ operationId: GetWorkflow
+ parameters:
+ - $ref: '#/components/parameters/WorkflowId'
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/GetWorkflowResponse'
+ description: Successfully got a workflow.
+ '400':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Bad request
+ '403':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Forbidden
+ '404':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Not found
+ '429':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Too many requests
+ summary: Get an existing Workflow
+ tags:
+ - Workflow Automation
+ x-menu-order: 1
+ x-permission:
+ operator: OR
+ permissions:
+ - workflows_read
+ x-undo:
+ type: safe
+ patch:
+ description: Update a workflow by ID. This API requires an application key scoped
+ with the `workflows_write` permission.
+ operationId: UpdateWorkflow
+ parameters:
+ - $ref: '#/components/parameters/WorkflowId'
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UpdateWorkflowRequest'
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UpdateWorkflowResponse'
+ description: Successfully updated a workflow.
+ '400':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Bad request
+ '403':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Forbidden
+ '404':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Not found
+ '429':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Too many requests
+ summary: Update an existing Workflow
+ tags:
+ - Workflow Automation
+ x-menu-order: 3
+ x-permission:
+ operator: OR
+ permissions:
+ - workflows_write
+ x-undo:
+ type: idempotent
/api/v2/workflows/{workflow_id}/instances:
get:
description: List all instances of a given workflow. This API requires an application
@@ -53753,7 +55056,7 @@ paths:
summary: List workflow instances
tags:
- Workflow Automation
- x-menu-order: 1
+ x-menu-order: 5
x-permission:
operator: OR
permissions:
@@ -53794,7 +55097,7 @@ paths:
tags:
- Workflow Automation
x-codegen-request-body-name: body
- x-menu-order: 2
+ x-menu-order: 6
x-permission:
operator: OR
permissions:
@@ -53832,7 +55135,7 @@ paths:
summary: Get a workflow instance
tags:
- Workflow Automation
- x-menu-order: 3
+ x-menu-order: 7
x-permission:
operator: OR
permissions:
@@ -53865,7 +55168,7 @@ paths:
summary: Cancel a workflow instance
tags:
- Workflow Automation
- x-menu-order: 4
+ x-menu-order: 8
x-permission:
operator: OR
permissions:
@@ -54385,7 +55688,12 @@ tags:
externalDocs:
url: https://docs.datadoghq.com/account_management/users
name: Users
-- description: Automate your teams operational processes with Datadog Workflow Automation.
+- description: Datadog Workflow Automation allows you to automate your end-to-end
+ processes by connecting Datadog with the rest of your tech stack. Build workflows
+ to auto-remediate your alerts, streamline your incident and security processes,
+ and reduce manual toil. Workflow Automation supports over 1,000+ OOTB actions,
+ including AWS, JIRA, ServiceNow, GitHub, and OpenAI. Learn more in our Workflow
+ Automation docs [here](https://docs.datadoghq.com/service_management/workflows/).
externalDocs:
description: Find out more at
url: https://docs.datadoghq.com/service_management/workflows/
diff --git a/data/api/v2/full_spec_deref.json b/data/api/v2/full_spec_deref.json
index 8689d812b8ad2..c00c25852bd2e 100644
--- a/data/api/v2/full_spec_deref.json
+++ b/data/api/v2/full_spec_deref.json
@@ -3916,6 +3916,68 @@
"API_KEYS"
]
},
+ "APITrigger": {
+ "description": "Trigger a workflow VIA an API. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "APITriggerWrapper": {
+ "description": "Schema for an API-based trigger.",
+ "properties": {
+ "apiTrigger": {
+ "description": "Trigger a workflow VIA an API. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "apiTrigger"
+ ],
+ "type": "object"
+ },
"AWSAccountConfigID": {
"description": "Unique Datadog ID of the AWS Account Integration Config.\nTo get the config ID for an account, use the [List all AWS integrations](https://docs.datadoghq.com/api/latest/aws-integration/#list-all-aws-integrations)\nendpoint and query by AWS Account ID.",
"example": "00000000-abcd-0001-0000-000000000000",
@@ -10104,6 +10166,132 @@
],
"type": "object"
},
+ "Annotation": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "properties": {
+ "display": {
+ "description": "The definition of `AnnotationDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `AnnotationDisplayBounds` object.",
+ "properties": {
+ "height": {
+ "description": "The `bounds` `height`.",
+ "format": "double",
+ "type": "number"
+ },
+ "width": {
+ "description": "The `bounds` `width`.",
+ "format": "double",
+ "type": "number"
+ },
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The `Annotation` `id`.",
+ "example": "",
+ "type": "string"
+ },
+ "markdownTextAnnotation": {
+ "description": "The definition of `AnnotationMarkdownTextAnnotation` object.",
+ "properties": {
+ "text": {
+ "description": "The `markdownTextAnnotation` `text`.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "required": [
+ "id",
+ "display",
+ "markdownTextAnnotation"
+ ],
+ "type": "object"
+ },
+ "AnnotationDisplay": {
+ "description": "The definition of `AnnotationDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `AnnotationDisplayBounds` object.",
+ "properties": {
+ "height": {
+ "description": "The `bounds` `height`.",
+ "format": "double",
+ "type": "number"
+ },
+ "width": {
+ "description": "The `bounds` `width`.",
+ "format": "double",
+ "type": "number"
+ },
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "AnnotationDisplayBounds": {
+ "description": "The definition of `AnnotationDisplayBounds` object.",
+ "properties": {
+ "height": {
+ "description": "The `bounds` `height`.",
+ "format": "double",
+ "type": "number"
+ },
+ "width": {
+ "description": "The `bounds` `width`.",
+ "format": "double",
+ "type": "number"
+ },
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "AnnotationMarkdownTextAnnotation": {
+ "description": "The definition of `AnnotationMarkdownTextAnnotation` object.",
+ "properties": {
+ "text": {
+ "description": "The `markdownTextAnnotation` `text`.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
"ApiID": {
"description": "API identifier.",
"example": "90646597-5fdb-4a17-a240-647003f8c028",
@@ -10425,6 +10613,30 @@
},
"type": "object"
},
+ "AppTriggerWrapper": {
+ "description": "Schema for an App-based trigger.",
+ "properties": {
+ "appTrigger": {
+ "description": "Trigger a workflow VIA an App.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "appTrigger"
+ ],
+ "type": "object"
+ },
"ApplicationKeyCreateAttributes": {
"description": "Attributes used to create an application Key.",
"properties": {
@@ -31640,6 +31852,68 @@
"CLOSED"
]
},
+ "CaseTrigger": {
+ "description": "Trigger a workflow VIA a Case. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "CaseTriggerWrapper": {
+ "description": "Schema for a Case-based trigger.",
+ "properties": {
+ "caseTrigger": {
+ "description": "Trigger a workflow VIA a Case. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "caseTrigger"
+ ],
+ "type": "object"
+ },
"CaseType": {
"description": "Case type",
"enum": [
@@ -32628,6 +32902,30 @@
"SERVICE"
]
},
+ "ChangeEventTriggerWrapper": {
+ "description": "Schema for a Change Event-based trigger.",
+ "properties": {
+ "changeEventTrigger": {
+ "description": "Trigger a workflow VIA a Change Event.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "changeEventTrigger"
+ ],
+ "type": "object"
+ },
"ChargebackBreakdown": {
"description": "Charges breakdown.",
"properties": {
@@ -35005,6 +35303,188 @@
],
"type": "object"
},
+ "CompletionCondition": {
+ "description": "The definition of `CompletionCondition` object.",
+ "properties": {
+ "operand1": {
+ "description": "The `CompletionCondition` `operand1`."
+ },
+ "operand2": {
+ "description": "The `CompletionCondition` `operand2`."
+ },
+ "operator": {
+ "description": "The definition of `CompletionConditionOperator` object.",
+ "enum": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ],
+ "example": "OPERATOR_EQUAL",
+ "type": "string",
+ "x-enum-varnames": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ]
+ }
+ },
+ "required": [
+ "operand1",
+ "operator"
+ ],
+ "type": "object"
+ },
+ "CompletionConditionOperator": {
+ "description": "The definition of `CompletionConditionOperator` object.",
+ "enum": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ],
+ "example": "OPERATOR_EQUAL",
+ "type": "string",
+ "x-enum-varnames": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ]
+ },
+ "CompletionGate": {
+ "description": "Used to create conditions before running subsequent actions.",
+ "properties": {
+ "completionCondition": {
+ "description": "The definition of `CompletionCondition` object.",
+ "properties": {
+ "operand1": {
+ "description": "The `CompletionCondition` `operand1`."
+ },
+ "operand2": {
+ "description": "The `CompletionCondition` `operand2`."
+ },
+ "operator": {
+ "description": "The definition of `CompletionConditionOperator` object.",
+ "enum": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ],
+ "example": "OPERATOR_EQUAL",
+ "type": "string",
+ "x-enum-varnames": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ]
+ }
+ },
+ "required": [
+ "operand1",
+ "operator"
+ ],
+ "type": "object"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "completionCondition",
+ "retryStrategy"
+ ],
+ "type": "object"
+ },
"Component": {
"description": "[Definition of a UI component in the app](https://docs.datadoghq.com/service_management/app_builder/components/)",
"properties": {
@@ -37176,6 +37656,147 @@
},
"type": "object"
},
+ "Connection": {
+ "description": "The definition of `Connection` object.",
+ "properties": {
+ "connectionId": {
+ "description": "The `Connection` `connectionId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `Connection` `label`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "connectionId",
+ "label"
+ ],
+ "type": "object"
+ },
+ "ConnectionEnv": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "properties": {
+ "connectionGroups": {
+ "description": "The `ConnectionEnv` `connectionGroups`.",
+ "items": {
+ "description": "The definition of `ConnectionGroup` object.",
+ "properties": {
+ "connectionGroupId": {
+ "description": "The `ConnectionGroup` `connectionGroupId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `ConnectionGroup` `label`.",
+ "example": "",
+ "type": "string"
+ },
+ "tags": {
+ "description": "The `ConnectionGroup` `tags`.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "connectionGroupId",
+ "label",
+ "tags"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "connections": {
+ "description": "The `ConnectionEnv` `connections`.",
+ "items": {
+ "description": "The definition of `Connection` object.",
+ "properties": {
+ "connectionId": {
+ "description": "The `Connection` `connectionId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `Connection` `label`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "connectionId",
+ "label"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "env": {
+ "description": "The definition of `ConnectionEnvEnv` object.",
+ "enum": [
+ "default"
+ ],
+ "example": "default",
+ "type": "string",
+ "x-enum-varnames": [
+ "DEFAULT"
+ ]
+ }
+ },
+ "required": [
+ "env"
+ ],
+ "type": "object"
+ },
+ "ConnectionEnvEnv": {
+ "description": "The definition of `ConnectionEnvEnv` object.",
+ "enum": [
+ "default"
+ ],
+ "example": "default",
+ "type": "string",
+ "x-enum-varnames": [
+ "DEFAULT"
+ ]
+ },
+ "ConnectionGroup": {
+ "description": "The definition of `ConnectionGroup` object.",
+ "properties": {
+ "connectionGroupId": {
+ "description": "The `ConnectionGroup` `connectionGroupId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `ConnectionGroup` `label`.",
+ "example": "",
+ "type": "string"
+ },
+ "tags": {
+ "description": "The `ConnectionGroup` `tags`.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "connectionGroupId",
+ "label",
+ "tags"
+ ],
+ "type": "object"
+ },
"Container": {
"description": "Container object.",
"properties": {
@@ -42857,1961 +43478,2681 @@
},
"type": "object"
},
- "Creator": {
- "description": "Creator of the object.",
- "properties": {
- "email": {
- "description": "Email of the creator.",
- "type": "string"
- },
- "handle": {
- "description": "Handle of the creator.",
- "type": "string"
- },
- "name": {
- "description": "Name of the creator.",
- "nullable": true,
- "type": "string"
- }
- },
- "type": "object"
- },
- "CsmAgentData": {
- "description": "Single Agent Data.",
- "properties": {
- "attributes": {
- "description": "A CSM Agent returned by the API.",
- "properties": {
- "agent_version": {
- "description": "Version of the Datadog Agent.",
- "type": "string"
- },
- "aws_fargate": {
- "description": "AWS Fargate details.",
- "type": "string"
- },
- "cluster_name": {
- "description": "List of cluster names associated with the Agent.",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "datadog_agent": {
- "description": "Unique identifier for the Datadog Agent.",
- "type": "string"
- },
- "ecs_fargate_task_arn": {
- "description": "ARN of the ECS Fargate task.",
- "type": "string"
- },
- "envs": {
- "description": "List of environments associated with the Agent.",
- "items": {
- "type": "string"
- },
- "nullable": true,
- "type": "array"
- },
- "host_id": {
- "description": "ID of the host.",
- "format": "int64",
- "type": "integer"
- },
- "hostname": {
- "description": "Name of the host.",
- "type": "string"
- },
- "install_method_installer_version": {
- "description": "Version of the installer used for installing the Datadog Agent.",
- "type": "string"
- },
- "install_method_tool": {
- "description": "Tool used for installing the Datadog Agent.",
- "type": "string"
- },
- "is_csm_vm_containers_enabled": {
- "description": "Indicates if CSM VM Containers is enabled.",
- "nullable": true,
- "type": "boolean"
- },
- "is_csm_vm_hosts_enabled": {
- "description": "Indicates if CSM VM Hosts is enabled.",
- "nullable": true,
- "type": "boolean"
- },
- "is_cspm_enabled": {
- "description": "Indicates if CSPM is enabled.",
- "nullable": true,
- "type": "boolean"
- },
- "is_cws_enabled": {
- "description": "Indicates if CWS is enabled.",
- "nullable": true,
- "type": "boolean"
- },
- "is_cws_remote_configuration_enabled": {
- "description": "Indicates if CWS Remote Configuration is enabled.",
- "nullable": true,
- "type": "boolean"
- },
- "is_remote_configuration_enabled": {
- "description": "Indicates if Remote Configuration is enabled.",
- "nullable": true,
- "type": "boolean"
- },
- "os": {
- "description": "Operating system of the host.",
- "type": "string"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "The ID of the Agent.",
- "example": "fffffc5505f6a006fdf7cf5aae053653",
- "type": "string"
- },
- "type": {
- "default": "datadog_agent",
- "description": "The type of the resource. The value should always be `datadog_agent`.",
- "enum": [
- "datadog_agent"
- ],
- "example": "datadog_agent",
- "type": "string",
- "x-enum-varnames": [
- "DATADOG_AGENT"
- ]
- }
- },
- "type": "object"
- },
- "CsmAgentsAttributes": {
- "description": "A CSM Agent returned by the API.",
- "properties": {
- "agent_version": {
- "description": "Version of the Datadog Agent.",
- "type": "string"
- },
- "aws_fargate": {
- "description": "AWS Fargate details.",
- "type": "string"
- },
- "cluster_name": {
- "description": "List of cluster names associated with the Agent.",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "datadog_agent": {
- "description": "Unique identifier for the Datadog Agent.",
- "type": "string"
- },
- "ecs_fargate_task_arn": {
- "description": "ARN of the ECS Fargate task.",
- "type": "string"
- },
- "envs": {
- "description": "List of environments associated with the Agent.",
- "items": {
- "type": "string"
- },
- "nullable": true,
- "type": "array"
- },
- "host_id": {
- "description": "ID of the host.",
- "format": "int64",
- "type": "integer"
- },
- "hostname": {
- "description": "Name of the host.",
- "type": "string"
- },
- "install_method_installer_version": {
- "description": "Version of the installer used for installing the Datadog Agent.",
- "type": "string"
- },
- "install_method_tool": {
- "description": "Tool used for installing the Datadog Agent.",
- "type": "string"
- },
- "is_csm_vm_containers_enabled": {
- "description": "Indicates if CSM VM Containers is enabled.",
- "nullable": true,
- "type": "boolean"
- },
- "is_csm_vm_hosts_enabled": {
- "description": "Indicates if CSM VM Hosts is enabled.",
- "nullable": true,
- "type": "boolean"
- },
- "is_cspm_enabled": {
- "description": "Indicates if CSPM is enabled.",
- "nullable": true,
- "type": "boolean"
- },
- "is_cws_enabled": {
- "description": "Indicates if CWS is enabled.",
- "nullable": true,
- "type": "boolean"
- },
- "is_cws_remote_configuration_enabled": {
- "description": "Indicates if CWS Remote Configuration is enabled.",
- "nullable": true,
- "type": "boolean"
- },
- "is_remote_configuration_enabled": {
- "description": "Indicates if Remote Configuration is enabled.",
- "nullable": true,
- "type": "boolean"
- },
- "os": {
- "description": "Operating system of the host.",
- "type": "string"
- }
- },
- "type": "object"
- },
- "CsmAgentsResponse": {
- "description": "Response object that includes a list of CSM Agents.",
- "properties": {
+ "CreateWorkflowRequest": {
+ "description": "A request object for creating a new workflow.",
+ "example": {
"data": {
- "description": "A list of Agents.",
- "items": {
- "description": "Single Agent Data.",
- "properties": {
- "attributes": {
- "description": "A CSM Agent returned by the API.",
- "properties": {
- "agent_version": {
- "description": "Version of the Datadog Agent.",
- "type": "string"
- },
- "aws_fargate": {
- "description": "AWS Fargate details.",
- "type": "string"
- },
- "cluster_name": {
- "description": "List of cluster names associated with the Agent.",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "datadog_agent": {
- "description": "Unique identifier for the Datadog Agent.",
- "type": "string"
- },
- "ecs_fargate_task_arn": {
- "description": "ARN of the ECS Fargate task.",
- "type": "string"
- },
- "envs": {
- "description": "List of environments associated with the Agent.",
- "items": {
- "type": "string"
- },
- "nullable": true,
- "type": "array"
- },
- "host_id": {
- "description": "ID of the host.",
- "format": "int64",
- "type": "integer"
- },
- "hostname": {
- "description": "Name of the host.",
- "type": "string"
- },
- "install_method_installer_version": {
- "description": "Version of the installer used for installing the Datadog Agent.",
- "type": "string"
- },
- "install_method_tool": {
- "description": "Tool used for installing the Datadog Agent.",
- "type": "string"
- },
- "is_csm_vm_containers_enabled": {
- "description": "Indicates if CSM VM Containers is enabled.",
- "nullable": true,
- "type": "boolean"
- },
- "is_csm_vm_hosts_enabled": {
- "description": "Indicates if CSM VM Hosts is enabled.",
- "nullable": true,
- "type": "boolean"
- },
- "is_cspm_enabled": {
- "description": "Indicates if CSPM is enabled.",
- "nullable": true,
- "type": "boolean"
- },
- "is_cws_enabled": {
- "description": "Indicates if CWS is enabled.",
- "nullable": true,
- "type": "boolean"
- },
- "is_cws_remote_configuration_enabled": {
- "description": "Indicates if CWS Remote Configuration is enabled.",
- "nullable": true,
- "type": "boolean"
- },
- "is_remote_configuration_enabled": {
- "description": "Indicates if Remote Configuration is enabled.",
- "nullable": true,
- "type": "boolean"
+ "attributes": {
+ "description": "A sample workflow.",
+ "name": "Example Workflow",
+ "published": true,
+ "spec": {
+ "annotations": [
+ {
+ "display": {
+ "bounds": {
+ "height": 150,
+ "width": 300,
+ "x": -375,
+ "y": -0.5
+ }
},
- "os": {
- "description": "Operating system of the host.",
- "type": "string"
+ "id": "99999999-9999-9999-9999-999999999999",
+ "markdownTextAnnotation": {
+ "text": "Example annotation."
}
- },
- "type": "object"
- },
- "id": {
- "description": "The ID of the Agent.",
- "example": "fffffc5505f6a006fdf7cf5aae053653",
- "type": "string"
+ }
+ ],
+ "connectionEnvs": [
+ {
+ "connections": [
+ {
+ "connectionId": "11111111-1111-1111-1111-111111111111",
+ "label": "INTEGRATION_DATADOG"
+ }
+ ],
+ "env": "default"
+ }
+ ],
+ "handle": "my-handle",
+ "inputSchema": {
+ "parameters": [
+ {
+ "defaultValue": "default",
+ "name": "input",
+ "type": "STRING"
+ }
+ ]
},
- "type": {
- "default": "datadog_agent",
- "description": "The type of the resource. The value should always be `datadog_agent`.",
- "enum": [
- "datadog_agent"
- ],
- "example": "datadog_agent",
- "type": "string",
- "x-enum-varnames": [
- "DATADOG_AGENT"
+ "outputSchema": {
+ "parameters": [
+ {
+ "name": "output",
+ "type": "ARRAY_OBJECT",
+ "value": "{{ Steps.Step1 }}"
+ }
]
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "meta": {
- "description": "Metadata related to the paginated response.",
- "properties": {
- "page_index": {
- "description": "The index of the current page in the paginated results.",
- "example": 0,
- "format": "int64",
- "type": "integer"
- },
- "page_size": {
- "description": "The number of items per page in the paginated results.",
- "example": 10,
- "format": "int64",
- "type": "integer"
- },
- "total_filtered": {
- "description": "Total number of items that match the filter criteria.",
- "example": 128697,
- "format": "int64",
- "type": "integer"
- }
- },
- "type": "object"
- }
- },
- "type": "object"
- },
- "CsmCloudAccountsCoverageAnalysisAttributes": {
- "description": "CSM Cloud Accounts Coverage Analysis attributes.",
- "properties": {
- "aws_coverage": {
- "description": "CSM Coverage Analysis.",
- "properties": {
- "configured_resources_count": {
- "description": "The number of fully configured resources.",
- "example": 8,
- "format": "int64",
- "type": "integer"
- },
- "coverage": {
- "description": "The coverage percentage.",
- "example": 0.8,
- "format": "double",
- "type": "number"
- },
- "partially_configured_resources_count": {
- "description": "The number of partially configured resources.",
- "example": 0,
- "format": "int64",
- "type": "integer"
- },
- "total_resources_count": {
- "description": "The total number of resources.",
- "example": 10,
- "format": "int64",
- "type": "integer"
- }
- },
- "type": "object"
- },
- "azure_coverage": {
- "description": "CSM Coverage Analysis.",
- "properties": {
- "configured_resources_count": {
- "description": "The number of fully configured resources.",
- "example": 8,
- "format": "int64",
- "type": "integer"
- },
- "coverage": {
- "description": "The coverage percentage.",
- "example": 0.8,
- "format": "double",
- "type": "number"
- },
- "partially_configured_resources_count": {
- "description": "The number of partially configured resources.",
- "example": 0,
- "format": "int64",
- "type": "integer"
- },
- "total_resources_count": {
- "description": "The total number of resources.",
- "example": 10,
- "format": "int64",
- "type": "integer"
- }
- },
- "type": "object"
- },
- "gcp_coverage": {
- "description": "CSM Coverage Analysis.",
- "properties": {
- "configured_resources_count": {
- "description": "The number of fully configured resources.",
- "example": 8,
- "format": "int64",
- "type": "integer"
- },
- "coverage": {
- "description": "The coverage percentage.",
- "example": 0.8,
- "format": "double",
- "type": "number"
- },
- "partially_configured_resources_count": {
- "description": "The number of partially configured resources.",
- "example": 0,
- "format": "int64",
- "type": "integer"
- },
- "total_resources_count": {
- "description": "The total number of resources.",
- "example": 10,
- "format": "int64",
- "type": "integer"
- }
- },
- "type": "object"
- },
- "org_id": {
- "description": "The ID of your organization.",
- "example": 123456,
- "format": "int64",
- "type": "integer"
- },
- "total_coverage": {
- "description": "CSM Coverage Analysis.",
- "properties": {
- "configured_resources_count": {
- "description": "The number of fully configured resources.",
- "example": 8,
- "format": "int64",
- "type": "integer"
- },
- "coverage": {
- "description": "The coverage percentage.",
- "example": 0.8,
- "format": "double",
- "type": "number"
- },
- "partially_configured_resources_count": {
- "description": "The number of partially configured resources.",
- "example": 0,
- "format": "int64",
- "type": "integer"
- },
- "total_resources_count": {
- "description": "The total number of resources.",
- "example": 10,
- "format": "int64",
- "type": "integer"
- }
- },
- "type": "object"
- }
- },
- "type": "object"
- },
- "CsmCloudAccountsCoverageAnalysisData": {
- "description": "CSM Cloud Accounts Coverage Analysis data.",
- "properties": {
- "attributes": {
- "description": "CSM Cloud Accounts Coverage Analysis attributes.",
- "properties": {
- "aws_coverage": {
- "description": "CSM Coverage Analysis.",
- "properties": {
- "configured_resources_count": {
- "description": "The number of fully configured resources.",
- "example": 8,
- "format": "int64",
- "type": "integer"
- },
- "coverage": {
- "description": "The coverage percentage.",
- "example": 0.8,
- "format": "double",
- "type": "number"
- },
- "partially_configured_resources_count": {
- "description": "The number of partially configured resources.",
- "example": 0,
- "format": "int64",
- "type": "integer"
- },
- "total_resources_count": {
- "description": "The total number of resources.",
- "example": 10,
- "format": "int64",
- "type": "integer"
- }
},
- "type": "object"
- },
- "azure_coverage": {
- "description": "CSM Coverage Analysis.",
- "properties": {
- "configured_resources_count": {
- "description": "The number of fully configured resources.",
- "example": 8,
- "format": "int64",
- "type": "integer"
- },
- "coverage": {
- "description": "The coverage percentage.",
- "example": 0.8,
- "format": "double",
- "type": "number"
- },
- "partially_configured_resources_count": {
- "description": "The number of partially configured resources.",
- "example": 0,
- "format": "int64",
- "type": "integer"
+ "steps": [
+ {
+ "actionId": "com.datadoghq.dd.monitor.listMonitors",
+ "connectionLabel": "INTEGRATION_DATADOG",
+ "name": "Step1",
+ "outboundEdges": [
+ {
+ "branchName": "main",
+ "nextStepName": "Step2"
+ }
+ ],
+ "parameters": [
+ {
+ "name": "tags",
+ "value": "service:monitoring"
+ }
+ ]
},
- "total_resources_count": {
- "description": "The total number of resources.",
- "example": 10,
- "format": "int64",
- "type": "integer"
+ {
+ "actionId": "com.datadoghq.core.noop",
+ "name": "Step2"
}
- },
- "type": "object"
- },
- "gcp_coverage": {
- "description": "CSM Coverage Analysis.",
- "properties": {
- "configured_resources_count": {
- "description": "The number of fully configured resources.",
- "example": 8,
- "format": "int64",
- "type": "integer"
- },
- "coverage": {
- "description": "The coverage percentage.",
- "example": 0.8,
- "format": "double",
- "type": "number"
- },
- "partially_configured_resources_count": {
- "description": "The number of partially configured resources.",
- "example": 0,
- "format": "int64",
- "type": "integer"
+ ],
+ "triggers": [
+ {
+ "monitorTrigger": {
+ "rateLimit": {
+ "count": 1,
+ "interval": "3600s"
+ }
+ },
+ "startStepNames": [
+ "Step1"
+ ]
},
- "total_resources_count": {
- "description": "The total number of resources.",
- "example": 10,
- "format": "int64",
- "type": "integer"
+ {
+ "githubWebhookTrigger": {},
+ "startStepNames": [
+ "Step1"
+ ]
}
- },
- "type": "object"
- },
- "org_id": {
- "description": "The ID of your organization.",
- "example": 123456,
- "format": "int64",
- "type": "integer"
+ ]
},
- "total_coverage": {
- "description": "CSM Coverage Analysis.",
- "properties": {
- "configured_resources_count": {
- "description": "The number of fully configured resources.",
- "example": 8,
- "format": "int64",
- "type": "integer"
- },
- "coverage": {
- "description": "The coverage percentage.",
- "example": 0.8,
- "format": "double",
- "type": "number"
- },
- "partially_configured_resources_count": {
- "description": "The number of partially configured resources.",
- "example": 0,
- "format": "int64",
- "type": "integer"
- },
- "total_resources_count": {
- "description": "The total number of resources.",
- "example": 10,
- "format": "int64",
- "type": "integer"
- }
- },
- "type": "object"
- }
+ "tags": [
+ "team:infra",
+ "service:monitoring",
+ "foo:bar"
+ ]
},
- "type": "object"
- },
- "id": {
- "description": "The ID of your organization.",
- "example": "66b3c6b5-5c9a-457e-b1c3-f247ca23afa3",
- "type": "string"
- },
- "type": {
- "default": "get_cloud_accounts_coverage_analysis_response_public_v0",
- "description": "The type of the resource. The value should always be `get_cloud_accounts_coverage_analysis_response_public_v0`.",
- "example": "get_cloud_accounts_coverage_analysis_response_public_v0",
- "type": "string"
+ "type": "workflows"
}
},
- "type": "object"
- },
- "CsmCloudAccountsCoverageAnalysisResponse": {
- "description": "CSM Cloud Accounts Coverage Analysis response.",
"properties": {
"data": {
- "description": "CSM Cloud Accounts Coverage Analysis data.",
+ "description": "Data related to the workflow.",
"properties": {
"attributes": {
- "description": "CSM Cloud Accounts Coverage Analysis attributes.",
+ "description": "The definition of `WorkflowDataAttributes` object.",
"properties": {
- "aws_coverage": {
- "description": "CSM Coverage Analysis.",
- "properties": {
- "configured_resources_count": {
- "description": "The number of fully configured resources.",
- "example": 8,
- "format": "int64",
- "type": "integer"
- },
- "coverage": {
- "description": "The coverage percentage.",
- "example": 0.8,
- "format": "double",
- "type": "number"
- },
- "partially_configured_resources_count": {
- "description": "The number of partially configured resources.",
- "example": 0,
- "format": "int64",
- "type": "integer"
- },
- "total_resources_count": {
- "description": "The total number of resources.",
- "example": 10,
- "format": "int64",
- "type": "integer"
- }
- },
- "type": "object"
+ "createdAt": {
+ "description": "When the workflow was created.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
},
- "azure_coverage": {
- "description": "CSM Coverage Analysis.",
- "properties": {
- "configured_resources_count": {
- "description": "The number of fully configured resources.",
- "example": 8,
- "format": "int64",
- "type": "integer"
- },
- "coverage": {
- "description": "The coverage percentage.",
- "example": 0.8,
- "format": "double",
- "type": "number"
- },
- "partially_configured_resources_count": {
- "description": "The number of partially configured resources.",
- "example": 0,
- "format": "int64",
- "type": "integer"
- },
- "total_resources_count": {
- "description": "The total number of resources.",
- "example": 10,
- "format": "int64",
- "type": "integer"
- }
- },
- "type": "object"
+ "description": {
+ "description": "Description of the workflow.",
+ "type": "string"
},
- "gcp_coverage": {
- "description": "CSM Coverage Analysis.",
- "properties": {
- "configured_resources_count": {
- "description": "The number of fully configured resources.",
- "example": 8,
- "format": "int64",
- "type": "integer"
- },
- "coverage": {
- "description": "The coverage percentage.",
- "example": 0.8,
- "format": "double",
- "type": "number"
- },
- "partially_configured_resources_count": {
- "description": "The number of partially configured resources.",
- "example": 0,
- "format": "int64",
- "type": "integer"
- },
- "total_resources_count": {
- "description": "The total number of resources.",
- "example": 10,
- "format": "int64",
- "type": "integer"
- }
- },
- "type": "object"
+ "name": {
+ "description": "Name of the workflow.",
+ "example": "",
+ "type": "string"
},
- "org_id": {
- "description": "The ID of your organization.",
- "example": 123456,
- "format": "int64",
- "type": "integer"
+ "published": {
+ "description": "Set the workflow to published or unpublished. Workflows in an unpublished state will only be executable via manual runs. Automatic triggers such as Schedule will not execute the workflow until it is published.",
+ "type": "boolean"
},
- "total_coverage": {
- "description": "CSM Coverage Analysis.",
+ "spec": {
+ "description": "The spec defines what the workflow does.",
"properties": {
- "configured_resources_count": {
- "description": "The number of fully configured resources.",
- "example": 8,
- "format": "int64",
- "type": "integer"
+ "annotations": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "items": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "properties": {
+ "display": {
+ "description": "The definition of `AnnotationDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `AnnotationDisplayBounds` object.",
+ "properties": {
+ "height": {
+ "description": "The `bounds` `height`.",
+ "format": "double",
+ "type": "number"
+ },
+ "width": {
+ "description": "The `bounds` `width`.",
+ "format": "double",
+ "type": "number"
+ },
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The `Annotation` `id`.",
+ "example": "",
+ "type": "string"
+ },
+ "markdownTextAnnotation": {
+ "description": "The definition of `AnnotationMarkdownTextAnnotation` object.",
+ "properties": {
+ "text": {
+ "description": "The `markdownTextAnnotation` `text`.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "required": [
+ "id",
+ "display",
+ "markdownTextAnnotation"
+ ],
+ "type": "object"
+ },
+ "type": "array"
},
- "coverage": {
- "description": "The coverage percentage.",
- "example": 0.8,
- "format": "double",
- "type": "number"
+ "connectionEnvs": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "items": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "properties": {
+ "connectionGroups": {
+ "description": "The `ConnectionEnv` `connectionGroups`.",
+ "items": {
+ "description": "The definition of `ConnectionGroup` object.",
+ "properties": {
+ "connectionGroupId": {
+ "description": "The `ConnectionGroup` `connectionGroupId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `ConnectionGroup` `label`.",
+ "example": "",
+ "type": "string"
+ },
+ "tags": {
+ "description": "The `ConnectionGroup` `tags`.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "connectionGroupId",
+ "label",
+ "tags"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "connections": {
+ "description": "The `ConnectionEnv` `connections`.",
+ "items": {
+ "description": "The definition of `Connection` object.",
+ "properties": {
+ "connectionId": {
+ "description": "The `Connection` `connectionId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `Connection` `label`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "connectionId",
+ "label"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "env": {
+ "description": "The definition of `ConnectionEnvEnv` object.",
+ "enum": [
+ "default"
+ ],
+ "example": "default",
+ "type": "string",
+ "x-enum-varnames": [
+ "DEFAULT"
+ ]
+ }
+ },
+ "required": [
+ "env"
+ ],
+ "type": "object"
+ },
+ "type": "array"
},
- "partially_configured_resources_count": {
- "description": "The number of partially configured resources.",
- "example": 0,
- "format": "int64",
- "type": "integer"
+ "handle": {
+ "description": "Unique identifier used to trigger workflows automatically in Datadog.",
+ "type": "string"
},
- "total_resources_count": {
- "description": "The total number of resources.",
- "example": 10,
- "format": "int64",
- "type": "integer"
- }
- },
- "type": "object"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "The ID of your organization.",
- "example": "66b3c6b5-5c9a-457e-b1c3-f247ca23afa3",
- "type": "string"
- },
- "type": {
- "default": "get_cloud_accounts_coverage_analysis_response_public_v0",
- "description": "The type of the resource. The value should always be `get_cloud_accounts_coverage_analysis_response_public_v0`.",
- "example": "get_cloud_accounts_coverage_analysis_response_public_v0",
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "type": "object"
- },
- "CsmCoverageAnalysis": {
- "description": "CSM Coverage Analysis.",
- "properties": {
- "configured_resources_count": {
- "description": "The number of fully configured resources.",
- "example": 8,
- "format": "int64",
- "type": "integer"
- },
- "coverage": {
- "description": "The coverage percentage.",
- "example": 0.8,
- "format": "double",
- "type": "number"
- },
- "partially_configured_resources_count": {
- "description": "The number of partially configured resources.",
- "example": 0,
- "format": "int64",
- "type": "integer"
- },
- "total_resources_count": {
- "description": "The total number of resources.",
- "example": 10,
- "format": "int64",
- "type": "integer"
- }
- },
- "type": "object"
- },
- "CsmHostsAndContainersCoverageAnalysisAttributes": {
- "description": "CSM Hosts and Containers Coverage Analysis attributes.",
- "properties": {
- "cspm_coverage": {
- "description": "CSM Coverage Analysis.",
- "properties": {
- "configured_resources_count": {
- "description": "The number of fully configured resources.",
- "example": 8,
- "format": "int64",
- "type": "integer"
- },
- "coverage": {
- "description": "The coverage percentage.",
- "example": 0.8,
- "format": "double",
- "type": "number"
- },
- "partially_configured_resources_count": {
- "description": "The number of partially configured resources.",
- "example": 0,
- "format": "int64",
- "type": "integer"
- },
- "total_resources_count": {
- "description": "The total number of resources.",
- "example": 10,
- "format": "int64",
- "type": "integer"
- }
- },
- "type": "object"
- },
- "cws_coverage": {
- "description": "CSM Coverage Analysis.",
- "properties": {
- "configured_resources_count": {
- "description": "The number of fully configured resources.",
- "example": 8,
- "format": "int64",
- "type": "integer"
- },
- "coverage": {
- "description": "The coverage percentage.",
- "example": 0.8,
- "format": "double",
- "type": "number"
- },
- "partially_configured_resources_count": {
- "description": "The number of partially configured resources.",
- "example": 0,
- "format": "int64",
- "type": "integer"
- },
- "total_resources_count": {
- "description": "The total number of resources.",
- "example": 10,
- "format": "int64",
- "type": "integer"
- }
- },
- "type": "object"
- },
- "org_id": {
- "description": "The ID of your organization.",
- "example": 123456,
- "format": "int64",
- "type": "integer"
- },
- "total_coverage": {
- "description": "CSM Coverage Analysis.",
- "properties": {
- "configured_resources_count": {
- "description": "The number of fully configured resources.",
- "example": 8,
- "format": "int64",
- "type": "integer"
- },
- "coverage": {
- "description": "The coverage percentage.",
- "example": 0.8,
- "format": "double",
- "type": "number"
- },
- "partially_configured_resources_count": {
- "description": "The number of partially configured resources.",
- "example": 0,
- "format": "int64",
- "type": "integer"
- },
- "total_resources_count": {
- "description": "The total number of resources.",
- "example": 10,
- "format": "int64",
- "type": "integer"
- }
- },
- "type": "object"
- },
- "vm_coverage": {
- "description": "CSM Coverage Analysis.",
- "properties": {
- "configured_resources_count": {
- "description": "The number of fully configured resources.",
- "example": 8,
- "format": "int64",
- "type": "integer"
- },
- "coverage": {
- "description": "The coverage percentage.",
- "example": 0.8,
- "format": "double",
- "type": "number"
- },
- "partially_configured_resources_count": {
- "description": "The number of partially configured resources.",
- "example": 0,
- "format": "int64",
- "type": "integer"
- },
- "total_resources_count": {
- "description": "The total number of resources.",
- "example": 10,
- "format": "int64",
- "type": "integer"
- }
- },
- "type": "object"
- }
- },
- "type": "object"
- },
- "CsmHostsAndContainersCoverageAnalysisData": {
- "description": "CSM Hosts and Containers Coverage Analysis data.",
- "properties": {
- "attributes": {
- "description": "CSM Hosts and Containers Coverage Analysis attributes.",
- "properties": {
- "cspm_coverage": {
- "description": "CSM Coverage Analysis.",
- "properties": {
- "configured_resources_count": {
- "description": "The number of fully configured resources.",
- "example": 8,
- "format": "int64",
- "type": "integer"
- },
- "coverage": {
- "description": "The coverage percentage.",
- "example": 0.8,
- "format": "double",
- "type": "number"
- },
- "partially_configured_resources_count": {
- "description": "The number of partially configured resources.",
- "example": 0,
- "format": "int64",
- "type": "integer"
- },
- "total_resources_count": {
- "description": "The total number of resources.",
- "example": 10,
- "format": "int64",
- "type": "integer"
- }
- },
- "type": "object"
- },
- "cws_coverage": {
- "description": "CSM Coverage Analysis.",
- "properties": {
- "configured_resources_count": {
- "description": "The number of fully configured resources.",
- "example": 8,
- "format": "int64",
- "type": "integer"
- },
- "coverage": {
- "description": "The coverage percentage.",
- "example": 0.8,
- "format": "double",
- "type": "number"
- },
- "partially_configured_resources_count": {
- "description": "The number of partially configured resources.",
- "example": 0,
- "format": "int64",
- "type": "integer"
- },
- "total_resources_count": {
- "description": "The total number of resources.",
- "example": 10,
- "format": "int64",
- "type": "integer"
- }
- },
- "type": "object"
- },
- "org_id": {
- "description": "The ID of your organization.",
- "example": 123456,
- "format": "int64",
- "type": "integer"
- },
- "total_coverage": {
- "description": "CSM Coverage Analysis.",
- "properties": {
- "configured_resources_count": {
- "description": "The number of fully configured resources.",
- "example": 8,
- "format": "int64",
- "type": "integer"
- },
- "coverage": {
- "description": "The coverage percentage.",
- "example": 0.8,
- "format": "double",
- "type": "number"
- },
- "partially_configured_resources_count": {
- "description": "The number of partially configured resources.",
- "example": 0,
- "format": "int64",
- "type": "integer"
- },
- "total_resources_count": {
- "description": "The total number of resources.",
- "example": 10,
- "format": "int64",
- "type": "integer"
- }
- },
- "type": "object"
- },
- "vm_coverage": {
- "description": "CSM Coverage Analysis.",
- "properties": {
- "configured_resources_count": {
- "description": "The number of fully configured resources.",
- "example": 8,
- "format": "int64",
- "type": "integer"
- },
- "coverage": {
- "description": "The coverage percentage.",
- "example": 0.8,
- "format": "double",
- "type": "number"
- },
- "partially_configured_resources_count": {
- "description": "The number of partially configured resources.",
- "example": 0,
- "format": "int64",
- "type": "integer"
- },
- "total_resources_count": {
- "description": "The total number of resources.",
- "example": 10,
- "format": "int64",
- "type": "integer"
- }
- },
- "type": "object"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "The ID of your organization.",
- "example": "66b3c6b5-5c9a-457e-b1c3-f247ca23afa3",
- "type": "string"
- },
- "type": {
- "default": "get_hosts_and_containers_coverage_analysis_response_public_v0",
- "description": "The type of the resource. The value should always be `get_hosts_and_containers_coverage_analysis_response_public_v0`.",
- "example": "get_hosts_and_containers_coverage_analysis_response_public_v0",
- "type": "string"
- }
- },
- "type": "object"
- },
- "CsmHostsAndContainersCoverageAnalysisResponse": {
- "description": "CSM Hosts and Containers Coverage Analysis response.",
- "properties": {
- "data": {
- "description": "CSM Hosts and Containers Coverage Analysis data.",
- "properties": {
- "attributes": {
- "description": "CSM Hosts and Containers Coverage Analysis attributes.",
- "properties": {
- "cspm_coverage": {
- "description": "CSM Coverage Analysis.",
- "properties": {
- "configured_resources_count": {
- "description": "The number of fully configured resources.",
- "example": 8,
- "format": "int64",
- "type": "integer"
+ "inputSchema": {
+ "description": "A list of input parameters for the workflow. These can be used as dynamic runtime values in your workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `InputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `InputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `InputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `InputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `InputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `InputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `InputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
},
- "coverage": {
- "description": "The coverage percentage.",
- "example": 0.8,
- "format": "double",
- "type": "number"
+ "outputSchema": {
+ "description": "A list of output parameters for the workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `OutputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `OutputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `OutputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `OutputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `OutputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `OutputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `OutputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ },
+ "value": {
+ "description": "The `OutputSchemaParameters` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
},
- "partially_configured_resources_count": {
- "description": "The number of partially configured resources.",
- "example": 0,
- "format": "int64",
- "type": "integer"
+ "steps": {
+ "description": "A `Step` is a sub-component of a workflow. Each `Step` performs an action.",
+ "items": {
+ "description": "A Step is a sub-component of a workflow. Each Step performs an action.",
+ "properties": {
+ "actionId": {
+ "description": "The unique identifier of an action.",
+ "example": "",
+ "type": "string"
+ },
+ "completionGate": {
+ "description": "Used to create conditions before running subsequent actions.",
+ "properties": {
+ "completionCondition": {
+ "description": "The definition of `CompletionCondition` object.",
+ "properties": {
+ "operand1": {
+ "description": "The `CompletionCondition` `operand1`."
+ },
+ "operand2": {
+ "description": "The `CompletionCondition` `operand2`."
+ },
+ "operator": {
+ "description": "The definition of `CompletionConditionOperator` object.",
+ "enum": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ],
+ "example": "OPERATOR_EQUAL",
+ "type": "string",
+ "x-enum-varnames": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ]
+ }
+ },
+ "required": [
+ "operand1",
+ "operator"
+ ],
+ "type": "object"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "completionCondition",
+ "retryStrategy"
+ ],
+ "type": "object"
+ },
+ "connectionLabel": {
+ "description": "The unique identifier of a connection defined in the spec.",
+ "type": "string"
+ },
+ "display": {
+ "description": "The definition of `StepDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `StepDisplayBounds` object.",
+ "properties": {
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "errorHandlers": {
+ "description": "The `Step` `errorHandlers`.",
+ "items": {
+ "description": "Used to handle errors in an action.",
+ "properties": {
+ "fallbackStepName": {
+ "description": "The `ErrorHandler` `fallbackStepName`.",
+ "example": "",
+ "type": "string"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "retryStrategy",
+ "fallbackStepName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the step.",
+ "example": "",
+ "type": "string"
+ },
+ "outboundEdges": {
+ "description": "A list of subsequent actions to run.",
+ "items": {
+ "description": "The definition of `OutboundEdge` object.",
+ "properties": {
+ "branchName": {
+ "description": "The `OutboundEdge` `branchName`.",
+ "example": "",
+ "type": "string"
+ },
+ "nextStepName": {
+ "description": "The `OutboundEdge` `nextStepName`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "nextStepName",
+ "branchName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "parameters": {
+ "description": "A list of inputs for an action.",
+ "items": {
+ "description": "The definition of `Parameter` object.",
+ "properties": {
+ "name": {
+ "description": "The `Parameter` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "value": {
+ "description": "The `Parameter` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "value"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "readinessGate": {
+ "description": "Used to merge multiple branches into a single branch.",
+ "properties": {
+ "thresholdType": {
+ "description": "The definition of `ReadinessGateThresholdType` object.",
+ "enum": [
+ "ANY",
+ "ALL"
+ ],
+ "example": "ANY",
+ "type": "string",
+ "x-enum-varnames": [
+ "ANY",
+ "ALL"
+ ]
+ }
+ },
+ "required": [
+ "thresholdType"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "name",
+ "actionId"
+ ],
+ "type": "object"
+ },
+ "type": "array"
},
- "total_resources_count": {
- "description": "The total number of resources.",
- "example": 10,
- "format": "int64",
- "type": "integer"
+ "triggers": {
+ "description": "The list of triggers that activate this workflow. At least one trigger is required, and each trigger type may appear at most once.",
+ "items": {
+ "description": "One of the triggers that can start the execution of a workflow.",
+ "oneOf": [
+ {
+ "description": "Schema for an API-based trigger.",
+ "properties": {
+ "apiTrigger": {
+ "description": "Trigger a workflow VIA an API. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "apiTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an App-based trigger.",
+ "properties": {
+ "appTrigger": {
+ "description": "Trigger a workflow VIA an App.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "appTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Case-based trigger.",
+ "properties": {
+ "caseTrigger": {
+ "description": "Trigger a workflow VIA a Case. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "caseTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Change Event-based trigger.",
+ "properties": {
+ "changeEventTrigger": {
+ "description": "Trigger a workflow VIA a Change Event.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "changeEventTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Dashboard-based trigger.",
+ "properties": {
+ "dashboardTrigger": {
+ "description": "Trigger a workflow VIA a Dashboard.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "dashboardTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a GitHub webhook-based trigger.",
+ "properties": {
+ "githubWebhookTrigger": {
+ "description": "Trigger a workflow VIA GitHub webhook. To trigger a workflow from GitHub, you must set a `webhookSecret`. In your GitHub Webhook Settings, set the Payload URL to \"base_url\"/api/v2/workflows/\"workflow_id\"/webhook?orgId=\"org_id\", select application/json for the content type, and be highly recommend enabling SSL verification for security. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "githubWebhookTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an Incident-based trigger.",
+ "properties": {
+ "incidentTrigger": {
+ "description": "Trigger a workflow VIA an Incident. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "incidentTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Monitor-based trigger.",
+ "properties": {
+ "monitorTrigger": {
+ "description": "Trigger a workflow VIA a Monitor. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "monitorTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Schedule-based trigger.",
+ "properties": {
+ "scheduleTrigger": {
+ "description": "Trigger a workflow VIA a Schedule. The workflow must be published.",
+ "properties": {
+ "rruleExpression": {
+ "description": "Recurrence rule expression for scheduling.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "rruleExpression"
+ ],
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "scheduleTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Security-based trigger.",
+ "properties": {
+ "securityTrigger": {
+ "description": "Trigger a workflow VIA a Security Signal or Finding. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "securityTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Slack-based trigger.",
+ "properties": {
+ "slackTrigger": {
+ "description": "Trigger a workflow VIA Slack. The workflow must be published.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "slackTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Workflow-based trigger.",
+ "properties": {
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "workflowTrigger": {
+ "description": "Trigger a workflow VIA the Datadog UI. Only required if no other trigger exists.",
+ "type": "object"
+ }
+ },
+ "required": [
+ "workflowTrigger"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "type": "array"
}
},
"type": "object"
},
- "cws_coverage": {
- "description": "CSM Coverage Analysis.",
- "properties": {
- "configured_resources_count": {
- "description": "The number of fully configured resources.",
- "example": 8,
- "format": "int64",
- "type": "integer"
- },
- "coverage": {
- "description": "The coverage percentage.",
- "example": 0.8,
- "format": "double",
- "type": "number"
- },
- "partially_configured_resources_count": {
- "description": "The number of partially configured resources.",
- "example": 0,
- "format": "int64",
- "type": "integer"
- },
- "total_resources_count": {
- "description": "The total number of resources.",
- "example": 10,
- "format": "int64",
- "type": "integer"
- }
+ "tags": {
+ "description": "Tags of the workflow.",
+ "items": {
+ "type": "string"
},
- "type": "object"
+ "type": "array"
},
- "org_id": {
- "description": "The ID of your organization.",
- "example": 123456,
- "format": "int64",
- "type": "integer"
+ "updatedAt": {
+ "description": "When the workflow was last updated.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
},
- "total_coverage": {
- "description": "CSM Coverage Analysis.",
+ "webhookSecret": {
+ "description": "If a Webhook trigger is defined on this workflow, a webhookSecret is required and should be provided here.",
+ "type": "string",
+ "writeOnly": true
+ }
+ },
+ "required": [
+ "name",
+ "spec"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "description": "The workflow identifier",
+ "readOnly": true,
+ "type": "string"
+ },
+ "relationships": {
+ "description": "The definition of `WorkflowDataRelationships` object.",
+ "properties": {
+ "creator": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
"properties": {
- "configured_resources_count": {
- "description": "The number of fully configured resources.",
- "example": 8,
- "format": "int64",
- "type": "integer"
- },
- "coverage": {
- "description": "The coverage percentage.",
- "example": 0.8,
- "format": "double",
- "type": "number"
- },
- "partially_configured_resources_count": {
- "description": "The number of partially configured resources.",
- "example": 0,
- "format": "int64",
- "type": "integer"
- },
- "total_resources_count": {
- "description": "The total number of resources.",
- "example": 10,
- "format": "int64",
- "type": "integer"
+ "data": {
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
+ "properties": {
+ "id": {
+ "description": "The user identifier",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "id"
+ ],
+ "type": "object"
}
},
"type": "object"
},
- "vm_coverage": {
- "description": "CSM Coverage Analysis.",
+ "owner": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
"properties": {
- "configured_resources_count": {
- "description": "The number of fully configured resources.",
- "example": 8,
- "format": "int64",
- "type": "integer"
- },
- "coverage": {
- "description": "The coverage percentage.",
- "example": 0.8,
- "format": "double",
- "type": "number"
- },
- "partially_configured_resources_count": {
- "description": "The number of partially configured resources.",
- "example": 0,
- "format": "int64",
- "type": "integer"
- },
- "total_resources_count": {
- "description": "The total number of resources.",
- "example": 10,
- "format": "int64",
- "type": "integer"
+ "data": {
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
+ "properties": {
+ "id": {
+ "description": "The user identifier",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "id"
+ ],
+ "type": "object"
}
},
"type": "object"
}
},
+ "readOnly": true,
"type": "object"
},
- "id": {
- "description": "The ID of your organization.",
- "example": "66b3c6b5-5c9a-457e-b1c3-f247ca23afa3",
- "type": "string"
- },
"type": {
- "default": "get_hosts_and_containers_coverage_analysis_response_public_v0",
- "description": "The type of the resource. The value should always be `get_hosts_and_containers_coverage_analysis_response_public_v0`.",
- "example": "get_hosts_and_containers_coverage_analysis_response_public_v0",
- "type": "string"
+ "description": "The definition of `WorkflowDataType` object.",
+ "enum": [
+ "workflows"
+ ],
+ "example": "workflows",
+ "type": "string",
+ "x-enum-varnames": [
+ "WORKFLOWS"
+ ]
}
},
+ "required": [
+ "type",
+ "attributes"
+ ],
"type": "object"
}
},
+ "required": [
+ "data"
+ ],
"type": "object"
},
- "CsmServerlessCoverageAnalysisAttributes": {
- "description": "CSM Serverless Resources Coverage Analysis attributes.",
+ "CreateWorkflowResponse": {
+ "description": "The response object after creating a new workflow.",
"properties": {
- "cws_coverage": {
- "description": "CSM Coverage Analysis.",
+ "data": {
+ "description": "Data related to the workflow.",
"properties": {
- "configured_resources_count": {
- "description": "The number of fully configured resources.",
- "example": 8,
- "format": "int64",
- "type": "integer"
- },
- "coverage": {
- "description": "The coverage percentage.",
- "example": 0.8,
- "format": "double",
- "type": "number"
- },
- "partially_configured_resources_count": {
- "description": "The number of partially configured resources.",
- "example": 0,
- "format": "int64",
- "type": "integer"
- },
- "total_resources_count": {
- "description": "The total number of resources.",
- "example": 10,
- "format": "int64",
- "type": "integer"
- }
- },
- "type": "object"
- },
- "org_id": {
- "description": "The ID of your organization.",
- "example": 123456,
- "format": "int64",
- "type": "integer"
- },
- "total_coverage": {
- "description": "CSM Coverage Analysis.",
- "properties": {
- "configured_resources_count": {
- "description": "The number of fully configured resources.",
- "example": 8,
- "format": "int64",
- "type": "integer"
- },
- "coverage": {
- "description": "The coverage percentage.",
- "example": 0.8,
- "format": "double",
- "type": "number"
- },
- "partially_configured_resources_count": {
- "description": "The number of partially configured resources.",
- "example": 0,
- "format": "int64",
- "type": "integer"
- },
- "total_resources_count": {
- "description": "The total number of resources.",
- "example": 10,
- "format": "int64",
- "type": "integer"
- }
- },
- "type": "object"
- }
- },
- "type": "object"
- },
- "CsmServerlessCoverageAnalysisData": {
- "description": "CSM Serverless Resources Coverage Analysis data.",
- "properties": {
- "attributes": {
- "description": "CSM Serverless Resources Coverage Analysis attributes.",
- "properties": {
- "cws_coverage": {
- "description": "CSM Coverage Analysis.",
+ "attributes": {
+ "description": "The definition of `WorkflowDataAttributes` object.",
"properties": {
- "configured_resources_count": {
- "description": "The number of fully configured resources.",
- "example": 8,
- "format": "int64",
- "type": "integer"
- },
- "coverage": {
- "description": "The coverage percentage.",
- "example": 0.8,
- "format": "double",
- "type": "number"
- },
- "partially_configured_resources_count": {
- "description": "The number of partially configured resources.",
- "example": 0,
- "format": "int64",
- "type": "integer"
+ "createdAt": {
+ "description": "When the workflow was created.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
},
- "total_resources_count": {
- "description": "The total number of resources.",
- "example": 10,
- "format": "int64",
- "type": "integer"
- }
- },
- "type": "object"
- },
- "org_id": {
- "description": "The ID of your organization.",
- "example": 123456,
- "format": "int64",
- "type": "integer"
- },
- "total_coverage": {
- "description": "CSM Coverage Analysis.",
- "properties": {
- "configured_resources_count": {
- "description": "The number of fully configured resources.",
- "example": 8,
- "format": "int64",
- "type": "integer"
+ "description": {
+ "description": "Description of the workflow.",
+ "type": "string"
},
- "coverage": {
- "description": "The coverage percentage.",
- "example": 0.8,
- "format": "double",
- "type": "number"
+ "name": {
+ "description": "Name of the workflow.",
+ "example": "",
+ "type": "string"
},
- "partially_configured_resources_count": {
- "description": "The number of partially configured resources.",
- "example": 0,
- "format": "int64",
- "type": "integer"
+ "published": {
+ "description": "Set the workflow to published or unpublished. Workflows in an unpublished state will only be executable via manual runs. Automatic triggers such as Schedule will not execute the workflow until it is published.",
+ "type": "boolean"
},
- "total_resources_count": {
- "description": "The total number of resources.",
- "example": 10,
- "format": "int64",
- "type": "integer"
- }
- },
- "type": "object"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "The ID of your organization.",
- "example": "66b3c6b5-5c9a-457e-b1c3-f247ca23afa3",
- "type": "string"
- },
- "type": {
- "default": "get_serverless_coverage_analysis_response_public_v0",
- "description": "The type of the resource. The value should always be `get_serverless_coverage_analysis_response_public_v0`.",
- "example": "get_serverless_coverage_analysis_response_public_v0",
- "type": "string"
- }
- },
- "type": "object"
- },
- "CsmServerlessCoverageAnalysisResponse": {
- "description": "CSM Serverless Resources Coverage Analysis response.",
- "properties": {
- "data": {
- "description": "CSM Serverless Resources Coverage Analysis data.",
- "properties": {
- "attributes": {
- "description": "CSM Serverless Resources Coverage Analysis attributes.",
- "properties": {
- "cws_coverage": {
- "description": "CSM Coverage Analysis.",
+ "spec": {
+ "description": "The spec defines what the workflow does.",
"properties": {
- "configured_resources_count": {
- "description": "The number of fully configured resources.",
- "example": 8,
- "format": "int64",
- "type": "integer"
+ "annotations": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "items": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "properties": {
+ "display": {
+ "description": "The definition of `AnnotationDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `AnnotationDisplayBounds` object.",
+ "properties": {
+ "height": {
+ "description": "The `bounds` `height`.",
+ "format": "double",
+ "type": "number"
+ },
+ "width": {
+ "description": "The `bounds` `width`.",
+ "format": "double",
+ "type": "number"
+ },
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The `Annotation` `id`.",
+ "example": "",
+ "type": "string"
+ },
+ "markdownTextAnnotation": {
+ "description": "The definition of `AnnotationMarkdownTextAnnotation` object.",
+ "properties": {
+ "text": {
+ "description": "The `markdownTextAnnotation` `text`.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "required": [
+ "id",
+ "display",
+ "markdownTextAnnotation"
+ ],
+ "type": "object"
+ },
+ "type": "array"
},
- "coverage": {
- "description": "The coverage percentage.",
- "example": 0.8,
- "format": "double",
- "type": "number"
+ "connectionEnvs": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "items": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "properties": {
+ "connectionGroups": {
+ "description": "The `ConnectionEnv` `connectionGroups`.",
+ "items": {
+ "description": "The definition of `ConnectionGroup` object.",
+ "properties": {
+ "connectionGroupId": {
+ "description": "The `ConnectionGroup` `connectionGroupId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `ConnectionGroup` `label`.",
+ "example": "",
+ "type": "string"
+ },
+ "tags": {
+ "description": "The `ConnectionGroup` `tags`.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "connectionGroupId",
+ "label",
+ "tags"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "connections": {
+ "description": "The `ConnectionEnv` `connections`.",
+ "items": {
+ "description": "The definition of `Connection` object.",
+ "properties": {
+ "connectionId": {
+ "description": "The `Connection` `connectionId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `Connection` `label`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "connectionId",
+ "label"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "env": {
+ "description": "The definition of `ConnectionEnvEnv` object.",
+ "enum": [
+ "default"
+ ],
+ "example": "default",
+ "type": "string",
+ "x-enum-varnames": [
+ "DEFAULT"
+ ]
+ }
+ },
+ "required": [
+ "env"
+ ],
+ "type": "object"
+ },
+ "type": "array"
},
- "partially_configured_resources_count": {
- "description": "The number of partially configured resources.",
- "example": 0,
- "format": "int64",
- "type": "integer"
+ "handle": {
+ "description": "Unique identifier used to trigger workflows automatically in Datadog.",
+ "type": "string"
},
- "total_resources_count": {
- "description": "The total number of resources.",
- "example": 10,
- "format": "int64",
- "type": "integer"
- }
- },
- "type": "object"
- },
- "org_id": {
- "description": "The ID of your organization.",
- "example": 123456,
- "format": "int64",
- "type": "integer"
- },
- "total_coverage": {
- "description": "CSM Coverage Analysis.",
- "properties": {
- "configured_resources_count": {
- "description": "The number of fully configured resources.",
- "example": 8,
- "format": "int64",
- "type": "integer"
+ "inputSchema": {
+ "description": "A list of input parameters for the workflow. These can be used as dynamic runtime values in your workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `InputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `InputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `InputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `InputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `InputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `InputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `InputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
},
- "coverage": {
- "description": "The coverage percentage.",
- "example": 0.8,
- "format": "double",
- "type": "number"
+ "outputSchema": {
+ "description": "A list of output parameters for the workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `OutputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `OutputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `OutputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `OutputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `OutputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `OutputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `OutputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ },
+ "value": {
+ "description": "The `OutputSchemaParameters` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
},
- "partially_configured_resources_count": {
- "description": "The number of partially configured resources.",
- "example": 0,
- "format": "int64",
- "type": "integer"
+ "steps": {
+ "description": "A `Step` is a sub-component of a workflow. Each `Step` performs an action.",
+ "items": {
+ "description": "A Step is a sub-component of a workflow. Each Step performs an action.",
+ "properties": {
+ "actionId": {
+ "description": "The unique identifier of an action.",
+ "example": "",
+ "type": "string"
+ },
+ "completionGate": {
+ "description": "Used to create conditions before running subsequent actions.",
+ "properties": {
+ "completionCondition": {
+ "description": "The definition of `CompletionCondition` object.",
+ "properties": {
+ "operand1": {
+ "description": "The `CompletionCondition` `operand1`."
+ },
+ "operand2": {
+ "description": "The `CompletionCondition` `operand2`."
+ },
+ "operator": {
+ "description": "The definition of `CompletionConditionOperator` object.",
+ "enum": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ],
+ "example": "OPERATOR_EQUAL",
+ "type": "string",
+ "x-enum-varnames": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ]
+ }
+ },
+ "required": [
+ "operand1",
+ "operator"
+ ],
+ "type": "object"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "completionCondition",
+ "retryStrategy"
+ ],
+ "type": "object"
+ },
+ "connectionLabel": {
+ "description": "The unique identifier of a connection defined in the spec.",
+ "type": "string"
+ },
+ "display": {
+ "description": "The definition of `StepDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `StepDisplayBounds` object.",
+ "properties": {
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "errorHandlers": {
+ "description": "The `Step` `errorHandlers`.",
+ "items": {
+ "description": "Used to handle errors in an action.",
+ "properties": {
+ "fallbackStepName": {
+ "description": "The `ErrorHandler` `fallbackStepName`.",
+ "example": "",
+ "type": "string"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "retryStrategy",
+ "fallbackStepName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the step.",
+ "example": "",
+ "type": "string"
+ },
+ "outboundEdges": {
+ "description": "A list of subsequent actions to run.",
+ "items": {
+ "description": "The definition of `OutboundEdge` object.",
+ "properties": {
+ "branchName": {
+ "description": "The `OutboundEdge` `branchName`.",
+ "example": "",
+ "type": "string"
+ },
+ "nextStepName": {
+ "description": "The `OutboundEdge` `nextStepName`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "nextStepName",
+ "branchName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "parameters": {
+ "description": "A list of inputs for an action.",
+ "items": {
+ "description": "The definition of `Parameter` object.",
+ "properties": {
+ "name": {
+ "description": "The `Parameter` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "value": {
+ "description": "The `Parameter` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "value"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "readinessGate": {
+ "description": "Used to merge multiple branches into a single branch.",
+ "properties": {
+ "thresholdType": {
+ "description": "The definition of `ReadinessGateThresholdType` object.",
+ "enum": [
+ "ANY",
+ "ALL"
+ ],
+ "example": "ANY",
+ "type": "string",
+ "x-enum-varnames": [
+ "ANY",
+ "ALL"
+ ]
+ }
+ },
+ "required": [
+ "thresholdType"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "name",
+ "actionId"
+ ],
+ "type": "object"
+ },
+ "type": "array"
},
- "total_resources_count": {
- "description": "The total number of resources.",
- "example": 10,
- "format": "int64",
- "type": "integer"
+ "triggers": {
+ "description": "The list of triggers that activate this workflow. At least one trigger is required, and each trigger type may appear at most once.",
+ "items": {
+ "description": "One of the triggers that can start the execution of a workflow.",
+ "oneOf": [
+ {
+ "description": "Schema for an API-based trigger.",
+ "properties": {
+ "apiTrigger": {
+ "description": "Trigger a workflow VIA an API. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "apiTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an App-based trigger.",
+ "properties": {
+ "appTrigger": {
+ "description": "Trigger a workflow VIA an App.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "appTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Case-based trigger.",
+ "properties": {
+ "caseTrigger": {
+ "description": "Trigger a workflow VIA a Case. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "caseTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Change Event-based trigger.",
+ "properties": {
+ "changeEventTrigger": {
+ "description": "Trigger a workflow VIA a Change Event.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "changeEventTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Dashboard-based trigger.",
+ "properties": {
+ "dashboardTrigger": {
+ "description": "Trigger a workflow VIA a Dashboard.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "dashboardTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a GitHub webhook-based trigger.",
+ "properties": {
+ "githubWebhookTrigger": {
+ "description": "Trigger a workflow VIA GitHub webhook. To trigger a workflow from GitHub, you must set a `webhookSecret`. In your GitHub Webhook Settings, set the Payload URL to \"base_url\"/api/v2/workflows/\"workflow_id\"/webhook?orgId=\"org_id\", select application/json for the content type, and be highly recommend enabling SSL verification for security. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "githubWebhookTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an Incident-based trigger.",
+ "properties": {
+ "incidentTrigger": {
+ "description": "Trigger a workflow VIA an Incident. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "incidentTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Monitor-based trigger.",
+ "properties": {
+ "monitorTrigger": {
+ "description": "Trigger a workflow VIA a Monitor. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "monitorTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Schedule-based trigger.",
+ "properties": {
+ "scheduleTrigger": {
+ "description": "Trigger a workflow VIA a Schedule. The workflow must be published.",
+ "properties": {
+ "rruleExpression": {
+ "description": "Recurrence rule expression for scheduling.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "rruleExpression"
+ ],
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "scheduleTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Security-based trigger.",
+ "properties": {
+ "securityTrigger": {
+ "description": "Trigger a workflow VIA a Security Signal or Finding. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "securityTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Slack-based trigger.",
+ "properties": {
+ "slackTrigger": {
+ "description": "Trigger a workflow VIA Slack. The workflow must be published.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "slackTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Workflow-based trigger.",
+ "properties": {
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "workflowTrigger": {
+ "description": "Trigger a workflow VIA the Datadog UI. Only required if no other trigger exists.",
+ "type": "object"
+ }
+ },
+ "required": [
+ "workflowTrigger"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "type": "array"
}
},
"type": "object"
+ },
+ "tags": {
+ "description": "Tags of the workflow.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "updatedAt": {
+ "description": "When the workflow was last updated.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "webhookSecret": {
+ "description": "If a Webhook trigger is defined on this workflow, a webhookSecret is required and should be provided here.",
+ "type": "string",
+ "writeOnly": true
}
},
+ "required": [
+ "name",
+ "spec"
+ ],
"type": "object"
},
"id": {
- "description": "The ID of your organization.",
- "example": "66b3c6b5-5c9a-457e-b1c3-f247ca23afa3",
- "type": "string"
- },
- "type": {
- "default": "get_serverless_coverage_analysis_response_public_v0",
- "description": "The type of the resource. The value should always be `get_serverless_coverage_analysis_response_public_v0`.",
- "example": "get_serverless_coverage_analysis_response_public_v0",
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "type": "object"
- },
- "CustomConnection": {
- "description": "A custom connection used by an app.",
- "properties": {
- "attributes": {
- "description": "The custom connection attributes.",
- "properties": {
- "name": {
- "description": "The name of the custom connection.",
+ "description": "The workflow identifier",
+ "readOnly": true,
"type": "string"
},
- "onPremRunner": {
- "description": "Information about the Private Action Runner used by the custom connection, if the custom connection is associated with a Private Action Runner.",
+ "relationships": {
+ "description": "The definition of `WorkflowDataRelationships` object.",
"properties": {
- "id": {
- "description": "The Private Action Runner ID.",
- "type": "string"
+ "creator": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
+ "properties": {
+ "data": {
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
+ "properties": {
+ "id": {
+ "description": "The user identifier",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "id"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object"
},
- "url": {
- "description": "The URL of the Private Action Runner.",
- "type": "string"
+ "owner": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
+ "properties": {
+ "data": {
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
+ "properties": {
+ "id": {
+ "description": "The user identifier",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "id"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object"
}
},
+ "readOnly": true,
"type": "object"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "The ID of the custom connection.",
- "example": "65bb1f25-52e1-4510-9f8d-22d1516ed693",
- "format": "uuid",
- "type": "string"
- },
- "type": {
- "default": "custom_connections",
- "description": "The custom connection type.",
- "enum": [
- "custom_connections"
- ],
- "example": "custom_connections",
- "type": "string",
- "x-enum-varnames": [
- "CUSTOM_CONNECTIONS"
- ]
- }
- },
- "type": "object"
- },
- "CustomConnectionAttributes": {
- "description": "The custom connection attributes.",
- "properties": {
- "name": {
- "description": "The name of the custom connection.",
- "type": "string"
- },
- "onPremRunner": {
- "description": "Information about the Private Action Runner used by the custom connection, if the custom connection is associated with a Private Action Runner.",
- "properties": {
- "id": {
- "description": "The Private Action Runner ID.",
- "type": "string"
},
- "url": {
- "description": "The URL of the Private Action Runner.",
- "type": "string"
+ "type": {
+ "description": "The definition of `WorkflowDataType` object.",
+ "enum": [
+ "workflows"
+ ],
+ "example": "workflows",
+ "type": "string",
+ "x-enum-varnames": [
+ "WORKFLOWS"
+ ]
}
},
+ "required": [
+ "type",
+ "attributes"
+ ],
"type": "object"
}
},
+ "required": [
+ "data"
+ ],
"type": "object"
},
- "CustomConnectionAttributesOnPremRunner": {
- "description": "Information about the Private Action Runner used by the custom connection, if the custom connection is associated with a Private Action Runner.",
+ "Creator": {
+ "description": "Creator of the object.",
"properties": {
- "id": {
- "description": "The Private Action Runner ID.",
+ "email": {
+ "description": "Email of the creator.",
"type": "string"
},
- "url": {
- "description": "The URL of the Private Action Runner.",
+ "handle": {
+ "description": "Handle of the creator.",
"type": "string"
- }
- },
- "type": "object"
- },
- "CustomConnectionType": {
- "default": "custom_connections",
- "description": "The custom connection type.",
- "enum": [
- "custom_connections"
- ],
- "example": "custom_connections",
- "type": "string",
- "x-enum-varnames": [
- "CUSTOM_CONNECTIONS"
- ]
- },
- "CustomCostGetResponseMeta": {
- "description": "Meta for the response from the Get Custom Costs endpoints.",
- "properties": {
- "version": {
- "description": "Version of Custom Costs file",
+ },
+ "name": {
+ "description": "Name of the creator.",
+ "nullable": true,
"type": "string"
}
},
"type": "object"
},
- "CustomCostListResponseMeta": {
- "description": "Meta for the response from the List Custom Costs endpoints.",
+ "CsmAgentData": {
+ "description": "Single Agent Data.",
"properties": {
- "total_filtered_count": {
- "description": "Number of Custom Costs files returned by the List Custom Costs endpoint",
- "format": "int64",
- "type": "integer"
- },
- "version": {
- "description": "Version of Custom Costs file",
- "type": "string"
- }
- },
- "type": "object"
- },
- "CustomCostUploadResponseMeta": {
- "description": "Meta for the response from the Upload Custom Costs endpoints.",
- "properties": {
- "version": {
- "description": "Version of Custom Costs file",
- "type": "string"
- }
- },
- "type": "object"
- },
- "CustomCostsFileGetResponse": {
- "description": "Response for Get Custom Costs files.",
- "properties": {
- "data": {
- "description": "JSON API format of for a Custom Costs file with content.",
+ "attributes": {
+ "description": "A CSM Agent returned by the API.",
"properties": {
- "attributes": {
- "description": "Schema of a cost file's metadata.",
- "properties": {
- "billed_cost": {
- "description": "Total cost in the cost file.",
- "example": 100.5,
- "format": "double",
- "type": "number"
- },
- "billing_currency": {
- "description": "Currency used in the Custom Costs file.",
- "example": "USD",
- "type": "string"
- },
- "charge_period": {
- "description": "Usage charge period of a Custom Costs file.",
- "properties": {
- "end": {
- "description": "End of the usage of the Custom Costs file.",
- "example": 1706745600000,
- "format": "double",
- "type": "number"
- },
- "start": {
- "description": "Start of the usage of the Custom Costs file.",
- "example": 1704067200000,
- "format": "double",
- "type": "number"
- }
- },
- "type": "object"
- },
- "content": {
- "description": "Detail of the line items from the Custom Costs file.",
- "items": {
- "description": "Line item details from a Custom Costs file.",
- "properties": {
- "BilledCost": {
- "description": "Total cost in the cost file.",
- "example": 100.5,
- "format": "double",
- "type": "number"
- },
- "BillingCurrency": {
- "description": "Currency used in the Custom Costs file.",
- "example": "USD",
- "type": "string"
- },
- "ChargeDescription": {
- "description": "Description for the line item cost.",
- "example": "Monthly usage charge for my service",
- "type": "string"
- },
- "ChargePeriodEnd": {
- "description": "End date of the usage charge.",
- "example": "2023-02-28",
- "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
- "type": "string"
- },
- "ChargePeriodStart": {
- "description": "Start date of the usage charge.",
- "example": "2023-02-01",
- "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
- "type": "string"
- },
- "ProviderName": {
- "description": "Name of the provider for the line item.",
- "type": "string"
- },
- "Tags": {
- "additionalProperties": {
- "type": "string"
- },
- "description": "Additional tags for the line item.",
- "type": "object"
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "name": {
- "description": "Name of the Custom Costs file.",
- "example": "my_file.json",
- "type": "string"
- },
- "provider_names": {
- "description": "Providers contained in the Custom Costs file.",
- "items": {
- "description": "Name of a provider.",
- "example": "my_provider",
- "type": "string"
- },
- "type": "array"
- },
- "status": {
- "description": "Status of the Custom Costs file.",
- "example": "active",
- "type": "string"
- },
- "uploaded_at": {
- "description": "Timestamp in millisecond of the upload time of the Custom Costs file.",
- "example": 1704067200000,
- "format": "double",
- "type": "number"
- },
- "uploaded_by": {
- "description": "Metadata of the user that has uploaded the Custom Costs file.",
- "properties": {
- "email": {
- "description": "The name of the Custom Costs file.",
- "example": "email.test@datadohq.com",
- "type": "string"
- },
- "icon": {
- "description": "The name of the Custom Costs file.",
- "example": "icon.png",
- "type": "string"
- },
- "name": {
- "description": "Name of the user.",
- "example": "Test User",
- "type": "string"
- }
- },
- "type": "object"
- }
+ "agent_version": {
+ "description": "Version of the Datadog Agent.",
+ "type": "string"
+ },
+ "aws_fargate": {
+ "description": "AWS Fargate details.",
+ "type": "string"
+ },
+ "cluster_name": {
+ "description": "List of cluster names associated with the Agent.",
+ "items": {
+ "type": "string"
},
- "type": "object"
+ "type": "array"
},
- "id": {
- "description": "ID of the Custom Costs metadata.",
+ "datadog_agent": {
+ "description": "Unique identifier for the Datadog Agent.",
"type": "string"
},
- "type": {
- "description": "Type of the Custom Costs file metadata.",
+ "ecs_fargate_task_arn": {
+ "description": "ARN of the ECS Fargate task.",
"type": "string"
- }
- },
- "type": "object"
- },
- "meta": {
- "description": "Meta for the response from the Get Custom Costs endpoints.",
- "properties": {
- "version": {
- "description": "Version of Custom Costs file",
+ },
+ "envs": {
+ "description": "List of environments associated with the Agent.",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true,
+ "type": "array"
+ },
+ "host_id": {
+ "description": "ID of the host.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "hostname": {
+ "description": "Name of the host.",
+ "type": "string"
+ },
+ "install_method_installer_version": {
+ "description": "Version of the installer used for installing the Datadog Agent.",
+ "type": "string"
+ },
+ "install_method_tool": {
+ "description": "Tool used for installing the Datadog Agent.",
+ "type": "string"
+ },
+ "is_csm_vm_containers_enabled": {
+ "description": "Indicates if CSM VM Containers is enabled.",
+ "nullable": true,
+ "type": "boolean"
+ },
+ "is_csm_vm_hosts_enabled": {
+ "description": "Indicates if CSM VM Hosts is enabled.",
+ "nullable": true,
+ "type": "boolean"
+ },
+ "is_cspm_enabled": {
+ "description": "Indicates if CSPM is enabled.",
+ "nullable": true,
+ "type": "boolean"
+ },
+ "is_cws_enabled": {
+ "description": "Indicates if CWS is enabled.",
+ "nullable": true,
+ "type": "boolean"
+ },
+ "is_cws_remote_configuration_enabled": {
+ "description": "Indicates if CWS Remote Configuration is enabled.",
+ "nullable": true,
+ "type": "boolean"
+ },
+ "is_remote_configuration_enabled": {
+ "description": "Indicates if Remote Configuration is enabled.",
+ "nullable": true,
+ "type": "boolean"
+ },
+ "os": {
+ "description": "Operating system of the host.",
"type": "string"
}
},
"type": "object"
+ },
+ "id": {
+ "description": "The ID of the Agent.",
+ "example": "fffffc5505f6a006fdf7cf5aae053653",
+ "type": "string"
+ },
+ "type": {
+ "default": "datadog_agent",
+ "description": "The type of the resource. The value should always be `datadog_agent`.",
+ "enum": [
+ "datadog_agent"
+ ],
+ "example": "datadog_agent",
+ "type": "string",
+ "x-enum-varnames": [
+ "DATADOG_AGENT"
+ ]
}
},
"type": "object"
},
- "CustomCostsFileLineItem": {
- "description": "Line item details from a Custom Costs file.",
+ "CsmAgentsAttributes": {
+ "description": "A CSM Agent returned by the API.",
"properties": {
- "BilledCost": {
- "description": "Total cost in the cost file.",
- "example": 100.5,
- "format": "double",
- "type": "number"
- },
- "BillingCurrency": {
- "description": "Currency used in the Custom Costs file.",
- "example": "USD",
+ "agent_version": {
+ "description": "Version of the Datadog Agent.",
"type": "string"
},
- "ChargeDescription": {
- "description": "Description for the line item cost.",
- "example": "Monthly usage charge for my service",
+ "aws_fargate": {
+ "description": "AWS Fargate details.",
"type": "string"
},
- "ChargePeriodEnd": {
- "description": "End date of the usage charge.",
- "example": "2023-02-28",
- "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
- "type": "string"
+ "cluster_name": {
+ "description": "List of cluster names associated with the Agent.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
},
- "ChargePeriodStart": {
- "description": "Start date of the usage charge.",
- "example": "2023-02-01",
- "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
+ "datadog_agent": {
+ "description": "Unique identifier for the Datadog Agent.",
"type": "string"
},
- "ProviderName": {
- "description": "Name of the provider for the line item.",
+ "ecs_fargate_task_arn": {
+ "description": "ARN of the ECS Fargate task.",
"type": "string"
},
- "Tags": {
- "additionalProperties": {
+ "envs": {
+ "description": "List of environments associated with the Agent.",
+ "items": {
"type": "string"
},
- "description": "Additional tags for the line item.",
- "type": "object"
+ "nullable": true,
+ "type": "array"
+ },
+ "host_id": {
+ "description": "ID of the host.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "hostname": {
+ "description": "Name of the host.",
+ "type": "string"
+ },
+ "install_method_installer_version": {
+ "description": "Version of the installer used for installing the Datadog Agent.",
+ "type": "string"
+ },
+ "install_method_tool": {
+ "description": "Tool used for installing the Datadog Agent.",
+ "type": "string"
+ },
+ "is_csm_vm_containers_enabled": {
+ "description": "Indicates if CSM VM Containers is enabled.",
+ "nullable": true,
+ "type": "boolean"
+ },
+ "is_csm_vm_hosts_enabled": {
+ "description": "Indicates if CSM VM Hosts is enabled.",
+ "nullable": true,
+ "type": "boolean"
+ },
+ "is_cspm_enabled": {
+ "description": "Indicates if CSPM is enabled.",
+ "nullable": true,
+ "type": "boolean"
+ },
+ "is_cws_enabled": {
+ "description": "Indicates if CWS is enabled.",
+ "nullable": true,
+ "type": "boolean"
+ },
+ "is_cws_remote_configuration_enabled": {
+ "description": "Indicates if CWS Remote Configuration is enabled.",
+ "nullable": true,
+ "type": "boolean"
+ },
+ "is_remote_configuration_enabled": {
+ "description": "Indicates if Remote Configuration is enabled.",
+ "nullable": true,
+ "type": "boolean"
+ },
+ "os": {
+ "description": "Operating system of the host.",
+ "type": "string"
}
},
"type": "object"
},
- "CustomCostsFileListResponse": {
- "description": "Response for List Custom Costs files.",
+ "CsmAgentsResponse": {
+ "description": "Response object that includes a list of CSM Agents.",
"properties": {
"data": {
- "description": "List of Custom Costs files.",
+ "description": "A list of Agents.",
"items": {
- "description": "JSON API format for a Custom Costs file.",
+ "description": "Single Agent Data.",
"properties": {
"attributes": {
- "description": "Schema of a Custom Costs metadata.",
+ "description": "A CSM Agent returned by the API.",
"properties": {
- "billed_cost": {
- "description": "Total cost in the cost file.",
- "example": 100.5,
- "format": "double",
- "type": "number"
+ "agent_version": {
+ "description": "Version of the Datadog Agent.",
+ "type": "string"
},
- "billing_currency": {
- "description": "Currency used in the Custom Costs file.",
- "example": "USD",
+ "aws_fargate": {
+ "description": "AWS Fargate details.",
"type": "string"
},
- "charge_period": {
- "description": "Usage charge period of a Custom Costs file.",
- "properties": {
- "end": {
- "description": "End of the usage of the Custom Costs file.",
- "example": 1706745600000,
- "format": "double",
- "type": "number"
- },
- "start": {
- "description": "Start of the usage of the Custom Costs file.",
- "example": 1704067200000,
- "format": "double",
- "type": "number"
- }
+ "cluster_name": {
+ "description": "List of cluster names associated with the Agent.",
+ "items": {
+ "type": "string"
},
- "type": "object"
+ "type": "array"
},
- "name": {
- "description": "Name of the Custom Costs file.",
- "example": "my_file.json",
+ "datadog_agent": {
+ "description": "Unique identifier for the Datadog Agent.",
"type": "string"
},
- "provider_names": {
- "description": "Providers contained in the Custom Costs file.",
+ "ecs_fargate_task_arn": {
+ "description": "ARN of the ECS Fargate task.",
+ "type": "string"
+ },
+ "envs": {
+ "description": "List of environments associated with the Agent.",
"items": {
- "description": "Name of the provider.",
- "example": "my_provider",
"type": "string"
},
+ "nullable": true,
"type": "array"
},
- "status": {
- "description": "Status of the Custom Costs file.",
- "example": "active",
+ "host_id": {
+ "description": "ID of the host.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "hostname": {
+ "description": "Name of the host.",
"type": "string"
},
- "uploaded_at": {
- "description": "Timestamp, in millisecond, of the upload time of the Custom Costs file.",
- "example": 1704067200000,
- "format": "double",
- "type": "number"
+ "install_method_installer_version": {
+ "description": "Version of the installer used for installing the Datadog Agent.",
+ "type": "string"
},
- "uploaded_by": {
- "description": "Metadata of the user that has uploaded the Custom Costs file.",
- "properties": {
- "email": {
- "description": "The name of the Custom Costs file.",
- "example": "email.test@datadohq.com",
- "type": "string"
- },
- "icon": {
- "description": "The name of the Custom Costs file.",
- "example": "icon.png",
- "type": "string"
- },
- "name": {
- "description": "Name of the user.",
- "example": "Test User",
- "type": "string"
- }
- },
- "type": "object"
+ "install_method_tool": {
+ "description": "Tool used for installing the Datadog Agent.",
+ "type": "string"
+ },
+ "is_csm_vm_containers_enabled": {
+ "description": "Indicates if CSM VM Containers is enabled.",
+ "nullable": true,
+ "type": "boolean"
+ },
+ "is_csm_vm_hosts_enabled": {
+ "description": "Indicates if CSM VM Hosts is enabled.",
+ "nullable": true,
+ "type": "boolean"
+ },
+ "is_cspm_enabled": {
+ "description": "Indicates if CSPM is enabled.",
+ "nullable": true,
+ "type": "boolean"
+ },
+ "is_cws_enabled": {
+ "description": "Indicates if CWS is enabled.",
+ "nullable": true,
+ "type": "boolean"
+ },
+ "is_cws_remote_configuration_enabled": {
+ "description": "Indicates if CWS Remote Configuration is enabled.",
+ "nullable": true,
+ "type": "boolean"
+ },
+ "is_remote_configuration_enabled": {
+ "description": "Indicates if Remote Configuration is enabled.",
+ "nullable": true,
+ "type": "boolean"
+ },
+ "os": {
+ "description": "Operating system of the host.",
+ "type": "string"
}
},
"type": "object"
},
"id": {
- "description": "ID of the Custom Costs metadata.",
+ "description": "The ID of the Agent.",
+ "example": "fffffc5505f6a006fdf7cf5aae053653",
"type": "string"
},
"type": {
- "description": "Type of the Custom Costs file metadata.",
- "type": "string"
+ "default": "datadog_agent",
+ "description": "The type of the resource. The value should always be `datadog_agent`.",
+ "enum": [
+ "datadog_agent"
+ ],
+ "example": "datadog_agent",
+ "type": "string",
+ "x-enum-varnames": [
+ "DATADOG_AGENT"
+ ]
}
},
"type": "object"
@@ -44819,16 +46160,25 @@
"type": "array"
},
"meta": {
- "description": "Meta for the response from the List Custom Costs endpoints.",
+ "description": "Metadata related to the paginated response.",
"properties": {
- "total_filtered_count": {
- "description": "Number of Custom Costs files returned by the List Custom Costs endpoint",
+ "page_index": {
+ "description": "The index of the current page in the paginated results.",
+ "example": 0,
"format": "int64",
"type": "integer"
},
- "version": {
- "description": "Version of Custom Costs file",
- "type": "string"
+ "page_size": {
+ "description": "The number of items per page in the paginated results.",
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ },
+ "total_filtered": {
+ "description": "Total number of items that match the filter criteria.",
+ "example": 128697,
+ "format": "int64",
+ "type": "integer"
}
},
"type": "object"
@@ -44836,80 +46186,131 @@
},
"type": "object"
},
- "CustomCostsFileMetadata": {
- "description": "Schema of a Custom Costs metadata.",
+ "CsmCloudAccountsCoverageAnalysisAttributes": {
+ "description": "CSM Cloud Accounts Coverage Analysis attributes.",
"properties": {
- "billed_cost": {
- "description": "Total cost in the cost file.",
- "example": 100.5,
- "format": "double",
- "type": "number"
- },
- "billing_currency": {
- "description": "Currency used in the Custom Costs file.",
- "example": "USD",
- "type": "string"
- },
- "charge_period": {
- "description": "Usage charge period of a Custom Costs file.",
+ "aws_coverage": {
+ "description": "CSM Coverage Analysis.",
"properties": {
- "end": {
- "description": "End of the usage of the Custom Costs file.",
- "example": 1706745600000,
+ "configured_resources_count": {
+ "description": "The number of fully configured resources.",
+ "example": 8,
+ "format": "int64",
+ "type": "integer"
+ },
+ "coverage": {
+ "description": "The coverage percentage.",
+ "example": 0.8,
"format": "double",
"type": "number"
},
- "start": {
- "description": "Start of the usage of the Custom Costs file.",
- "example": 1704067200000,
+ "partially_configured_resources_count": {
+ "description": "The number of partially configured resources.",
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ },
+ "total_resources_count": {
+ "description": "The total number of resources.",
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "azure_coverage": {
+ "description": "CSM Coverage Analysis.",
+ "properties": {
+ "configured_resources_count": {
+ "description": "The number of fully configured resources.",
+ "example": 8,
+ "format": "int64",
+ "type": "integer"
+ },
+ "coverage": {
+ "description": "The coverage percentage.",
+ "example": 0.8,
"format": "double",
"type": "number"
+ },
+ "partially_configured_resources_count": {
+ "description": "The number of partially configured resources.",
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ },
+ "total_resources_count": {
+ "description": "The total number of resources.",
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
}
},
"type": "object"
},
- "name": {
- "description": "Name of the Custom Costs file.",
- "example": "my_file.json",
- "type": "string"
- },
- "provider_names": {
- "description": "Providers contained in the Custom Costs file.",
- "items": {
- "description": "Name of the provider.",
- "example": "my_provider",
- "type": "string"
+ "gcp_coverage": {
+ "description": "CSM Coverage Analysis.",
+ "properties": {
+ "configured_resources_count": {
+ "description": "The number of fully configured resources.",
+ "example": 8,
+ "format": "int64",
+ "type": "integer"
+ },
+ "coverage": {
+ "description": "The coverage percentage.",
+ "example": 0.8,
+ "format": "double",
+ "type": "number"
+ },
+ "partially_configured_resources_count": {
+ "description": "The number of partially configured resources.",
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ },
+ "total_resources_count": {
+ "description": "The total number of resources.",
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ }
},
- "type": "array"
- },
- "status": {
- "description": "Status of the Custom Costs file.",
- "example": "active",
- "type": "string"
+ "type": "object"
},
- "uploaded_at": {
- "description": "Timestamp, in millisecond, of the upload time of the Custom Costs file.",
- "example": 1704067200000,
- "format": "double",
- "type": "number"
+ "org_id": {
+ "description": "The ID of your organization.",
+ "example": 123456,
+ "format": "int64",
+ "type": "integer"
},
- "uploaded_by": {
- "description": "Metadata of the user that has uploaded the Custom Costs file.",
+ "total_coverage": {
+ "description": "CSM Coverage Analysis.",
"properties": {
- "email": {
- "description": "The name of the Custom Costs file.",
- "example": "email.test@datadohq.com",
- "type": "string"
+ "configured_resources_count": {
+ "description": "The number of fully configured resources.",
+ "example": 8,
+ "format": "int64",
+ "type": "integer"
},
- "icon": {
- "description": "The name of the Custom Costs file.",
- "example": "icon.png",
- "type": "string"
+ "coverage": {
+ "description": "The coverage percentage.",
+ "example": 0.8,
+ "format": "double",
+ "type": "number"
},
- "name": {
- "description": "Name of the user.",
- "example": "Test User",
- "type": "string"
+ "partially_configured_resources_count": {
+ "description": "The number of partially configured resources.",
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ },
+ "total_resources_count": {
+ "description": "The total number of resources.",
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
}
},
"type": "object"
@@ -44917,83 +46318,134 @@
},
"type": "object"
},
- "CustomCostsFileMetadataHighLevel": {
- "description": "JSON API format for a Custom Costs file.",
+ "CsmCloudAccountsCoverageAnalysisData": {
+ "description": "CSM Cloud Accounts Coverage Analysis data.",
"properties": {
"attributes": {
- "description": "Schema of a Custom Costs metadata.",
+ "description": "CSM Cloud Accounts Coverage Analysis attributes.",
"properties": {
- "billed_cost": {
- "description": "Total cost in the cost file.",
- "example": 100.5,
- "format": "double",
- "type": "number"
- },
- "billing_currency": {
- "description": "Currency used in the Custom Costs file.",
- "example": "USD",
- "type": "string"
- },
- "charge_period": {
- "description": "Usage charge period of a Custom Costs file.",
+ "aws_coverage": {
+ "description": "CSM Coverage Analysis.",
"properties": {
- "end": {
- "description": "End of the usage of the Custom Costs file.",
- "example": 1706745600000,
+ "configured_resources_count": {
+ "description": "The number of fully configured resources.",
+ "example": 8,
+ "format": "int64",
+ "type": "integer"
+ },
+ "coverage": {
+ "description": "The coverage percentage.",
+ "example": 0.8,
"format": "double",
"type": "number"
},
- "start": {
- "description": "Start of the usage of the Custom Costs file.",
- "example": 1704067200000,
+ "partially_configured_resources_count": {
+ "description": "The number of partially configured resources.",
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ },
+ "total_resources_count": {
+ "description": "The total number of resources.",
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "azure_coverage": {
+ "description": "CSM Coverage Analysis.",
+ "properties": {
+ "configured_resources_count": {
+ "description": "The number of fully configured resources.",
+ "example": 8,
+ "format": "int64",
+ "type": "integer"
+ },
+ "coverage": {
+ "description": "The coverage percentage.",
+ "example": 0.8,
"format": "double",
"type": "number"
+ },
+ "partially_configured_resources_count": {
+ "description": "The number of partially configured resources.",
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ },
+ "total_resources_count": {
+ "description": "The total number of resources.",
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
}
},
"type": "object"
},
- "name": {
- "description": "Name of the Custom Costs file.",
- "example": "my_file.json",
- "type": "string"
- },
- "provider_names": {
- "description": "Providers contained in the Custom Costs file.",
- "items": {
- "description": "Name of the provider.",
- "example": "my_provider",
- "type": "string"
+ "gcp_coverage": {
+ "description": "CSM Coverage Analysis.",
+ "properties": {
+ "configured_resources_count": {
+ "description": "The number of fully configured resources.",
+ "example": 8,
+ "format": "int64",
+ "type": "integer"
+ },
+ "coverage": {
+ "description": "The coverage percentage.",
+ "example": 0.8,
+ "format": "double",
+ "type": "number"
+ },
+ "partially_configured_resources_count": {
+ "description": "The number of partially configured resources.",
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ },
+ "total_resources_count": {
+ "description": "The total number of resources.",
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ }
},
- "type": "array"
- },
- "status": {
- "description": "Status of the Custom Costs file.",
- "example": "active",
- "type": "string"
+ "type": "object"
},
- "uploaded_at": {
- "description": "Timestamp, in millisecond, of the upload time of the Custom Costs file.",
- "example": 1704067200000,
- "format": "double",
- "type": "number"
+ "org_id": {
+ "description": "The ID of your organization.",
+ "example": 123456,
+ "format": "int64",
+ "type": "integer"
},
- "uploaded_by": {
- "description": "Metadata of the user that has uploaded the Custom Costs file.",
+ "total_coverage": {
+ "description": "CSM Coverage Analysis.",
"properties": {
- "email": {
- "description": "The name of the Custom Costs file.",
- "example": "email.test@datadohq.com",
- "type": "string"
+ "configured_resources_count": {
+ "description": "The number of fully configured resources.",
+ "example": 8,
+ "format": "int64",
+ "type": "integer"
},
- "icon": {
- "description": "The name of the Custom Costs file.",
- "example": "icon.png",
- "type": "string"
+ "coverage": {
+ "description": "The coverage percentage.",
+ "example": 0.8,
+ "format": "double",
+ "type": "number"
},
- "name": {
- "description": "Name of the user.",
- "example": "Test User",
- "type": "string"
+ "partially_configured_resources_count": {
+ "description": "The number of partially configured resources.",
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ },
+ "total_resources_count": {
+ "description": "The total number of resources.",
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
}
},
"type": "object"
@@ -45002,272 +46454,464 @@
"type": "object"
},
"id": {
- "description": "ID of the Custom Costs metadata.",
+ "description": "The ID of your organization.",
+ "example": "66b3c6b5-5c9a-457e-b1c3-f247ca23afa3",
"type": "string"
},
"type": {
- "description": "Type of the Custom Costs file metadata.",
- "type": "string"
- }
- },
- "type": "object"
- },
- "CustomCostsFileMetadataWithContent": {
- "description": "Schema of a cost file's metadata.",
- "properties": {
- "billed_cost": {
- "description": "Total cost in the cost file.",
- "example": 100.5,
- "format": "double",
- "type": "number"
- },
- "billing_currency": {
- "description": "Currency used in the Custom Costs file.",
- "example": "USD",
- "type": "string"
- },
- "charge_period": {
- "description": "Usage charge period of a Custom Costs file.",
- "properties": {
- "end": {
- "description": "End of the usage of the Custom Costs file.",
- "example": 1706745600000,
- "format": "double",
- "type": "number"
- },
- "start": {
- "description": "Start of the usage of the Custom Costs file.",
- "example": 1704067200000,
- "format": "double",
- "type": "number"
- }
- },
- "type": "object"
- },
- "content": {
- "description": "Detail of the line items from the Custom Costs file.",
- "items": {
- "description": "Line item details from a Custom Costs file.",
- "properties": {
- "BilledCost": {
- "description": "Total cost in the cost file.",
- "example": 100.5,
- "format": "double",
- "type": "number"
- },
- "BillingCurrency": {
- "description": "Currency used in the Custom Costs file.",
- "example": "USD",
- "type": "string"
- },
- "ChargeDescription": {
- "description": "Description for the line item cost.",
- "example": "Monthly usage charge for my service",
- "type": "string"
- },
- "ChargePeriodEnd": {
- "description": "End date of the usage charge.",
- "example": "2023-02-28",
- "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
- "type": "string"
- },
- "ChargePeriodStart": {
- "description": "Start date of the usage charge.",
- "example": "2023-02-01",
- "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
- "type": "string"
- },
- "ProviderName": {
- "description": "Name of the provider for the line item.",
- "type": "string"
- },
- "Tags": {
- "additionalProperties": {
- "type": "string"
- },
- "description": "Additional tags for the line item.",
- "type": "object"
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "name": {
- "description": "Name of the Custom Costs file.",
- "example": "my_file.json",
- "type": "string"
- },
- "provider_names": {
- "description": "Providers contained in the Custom Costs file.",
- "items": {
- "description": "Name of a provider.",
- "example": "my_provider",
- "type": "string"
- },
- "type": "array"
- },
- "status": {
- "description": "Status of the Custom Costs file.",
- "example": "active",
+ "default": "get_cloud_accounts_coverage_analysis_response_public_v0",
+ "description": "The type of the resource. The value should always be `get_cloud_accounts_coverage_analysis_response_public_v0`.",
+ "example": "get_cloud_accounts_coverage_analysis_response_public_v0",
"type": "string"
- },
- "uploaded_at": {
- "description": "Timestamp in millisecond of the upload time of the Custom Costs file.",
- "example": 1704067200000,
- "format": "double",
- "type": "number"
- },
- "uploaded_by": {
- "description": "Metadata of the user that has uploaded the Custom Costs file.",
- "properties": {
- "email": {
- "description": "The name of the Custom Costs file.",
- "example": "email.test@datadohq.com",
- "type": "string"
- },
- "icon": {
- "description": "The name of the Custom Costs file.",
- "example": "icon.png",
- "type": "string"
- },
- "name": {
- "description": "Name of the user.",
- "example": "Test User",
- "type": "string"
- }
- },
- "type": "object"
}
},
"type": "object"
},
- "CustomCostsFileMetadataWithContentHighLevel": {
- "description": "JSON API format of for a Custom Costs file with content.",
+ "CsmCloudAccountsCoverageAnalysisResponse": {
+ "description": "CSM Cloud Accounts Coverage Analysis response.",
"properties": {
- "attributes": {
- "description": "Schema of a cost file's metadata.",
+ "data": {
+ "description": "CSM Cloud Accounts Coverage Analysis data.",
"properties": {
- "billed_cost": {
- "description": "Total cost in the cost file.",
- "example": 100.5,
- "format": "double",
- "type": "number"
- },
- "billing_currency": {
- "description": "Currency used in the Custom Costs file.",
- "example": "USD",
- "type": "string"
- },
- "charge_period": {
- "description": "Usage charge period of a Custom Costs file.",
+ "attributes": {
+ "description": "CSM Cloud Accounts Coverage Analysis attributes.",
"properties": {
- "end": {
- "description": "End of the usage of the Custom Costs file.",
- "example": 1706745600000,
- "format": "double",
- "type": "number"
- },
- "start": {
- "description": "Start of the usage of the Custom Costs file.",
- "example": 1704067200000,
- "format": "double",
- "type": "number"
- }
- },
- "type": "object"
- },
- "content": {
- "description": "Detail of the line items from the Custom Costs file.",
- "items": {
- "description": "Line item details from a Custom Costs file.",
- "properties": {
- "BilledCost": {
- "description": "Total cost in the cost file.",
- "example": 100.5,
- "format": "double",
- "type": "number"
- },
- "BillingCurrency": {
- "description": "Currency used in the Custom Costs file.",
- "example": "USD",
- "type": "string"
- },
- "ChargeDescription": {
- "description": "Description for the line item cost.",
- "example": "Monthly usage charge for my service",
- "type": "string"
- },
- "ChargePeriodEnd": {
- "description": "End date of the usage charge.",
- "example": "2023-02-28",
- "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
- "type": "string"
- },
- "ChargePeriodStart": {
- "description": "Start date of the usage charge.",
- "example": "2023-02-01",
- "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
- "type": "string"
+ "aws_coverage": {
+ "description": "CSM Coverage Analysis.",
+ "properties": {
+ "configured_resources_count": {
+ "description": "The number of fully configured resources.",
+ "example": 8,
+ "format": "int64",
+ "type": "integer"
+ },
+ "coverage": {
+ "description": "The coverage percentage.",
+ "example": 0.8,
+ "format": "double",
+ "type": "number"
+ },
+ "partially_configured_resources_count": {
+ "description": "The number of partially configured resources.",
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ },
+ "total_resources_count": {
+ "description": "The total number of resources.",
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ }
},
- "ProviderName": {
- "description": "Name of the provider for the line item.",
- "type": "string"
+ "type": "object"
+ },
+ "azure_coverage": {
+ "description": "CSM Coverage Analysis.",
+ "properties": {
+ "configured_resources_count": {
+ "description": "The number of fully configured resources.",
+ "example": 8,
+ "format": "int64",
+ "type": "integer"
+ },
+ "coverage": {
+ "description": "The coverage percentage.",
+ "example": 0.8,
+ "format": "double",
+ "type": "number"
+ },
+ "partially_configured_resources_count": {
+ "description": "The number of partially configured resources.",
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ },
+ "total_resources_count": {
+ "description": "The total number of resources.",
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ }
},
- "Tags": {
- "additionalProperties": {
- "type": "string"
+ "type": "object"
+ },
+ "gcp_coverage": {
+ "description": "CSM Coverage Analysis.",
+ "properties": {
+ "configured_resources_count": {
+ "description": "The number of fully configured resources.",
+ "example": 8,
+ "format": "int64",
+ "type": "integer"
},
- "description": "Additional tags for the line item.",
- "type": "object"
- }
+ "coverage": {
+ "description": "The coverage percentage.",
+ "example": 0.8,
+ "format": "double",
+ "type": "number"
+ },
+ "partially_configured_resources_count": {
+ "description": "The number of partially configured resources.",
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ },
+ "total_resources_count": {
+ "description": "The total number of resources.",
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ "type": "object"
},
- "type": "object"
+ "org_id": {
+ "description": "The ID of your organization.",
+ "example": 123456,
+ "format": "int64",
+ "type": "integer"
+ },
+ "total_coverage": {
+ "description": "CSM Coverage Analysis.",
+ "properties": {
+ "configured_resources_count": {
+ "description": "The number of fully configured resources.",
+ "example": 8,
+ "format": "int64",
+ "type": "integer"
+ },
+ "coverage": {
+ "description": "The coverage percentage.",
+ "example": 0.8,
+ "format": "double",
+ "type": "number"
+ },
+ "partially_configured_resources_count": {
+ "description": "The number of partially configured resources.",
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ },
+ "total_resources_count": {
+ "description": "The total number of resources.",
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ }
},
- "type": "array"
+ "type": "object"
},
- "name": {
- "description": "Name of the Custom Costs file.",
- "example": "my_file.json",
+ "id": {
+ "description": "The ID of your organization.",
+ "example": "66b3c6b5-5c9a-457e-b1c3-f247ca23afa3",
"type": "string"
},
- "provider_names": {
- "description": "Providers contained in the Custom Costs file.",
- "items": {
- "description": "Name of a provider.",
- "example": "my_provider",
- "type": "string"
- },
- "type": "array"
- },
- "status": {
- "description": "Status of the Custom Costs file.",
- "example": "active",
+ "type": {
+ "default": "get_cloud_accounts_coverage_analysis_response_public_v0",
+ "description": "The type of the resource. The value should always be `get_cloud_accounts_coverage_analysis_response_public_v0`.",
+ "example": "get_cloud_accounts_coverage_analysis_response_public_v0",
"type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "CsmCoverageAnalysis": {
+ "description": "CSM Coverage Analysis.",
+ "properties": {
+ "configured_resources_count": {
+ "description": "The number of fully configured resources.",
+ "example": 8,
+ "format": "int64",
+ "type": "integer"
+ },
+ "coverage": {
+ "description": "The coverage percentage.",
+ "example": 0.8,
+ "format": "double",
+ "type": "number"
+ },
+ "partially_configured_resources_count": {
+ "description": "The number of partially configured resources.",
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ },
+ "total_resources_count": {
+ "description": "The total number of resources.",
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "CsmHostsAndContainersCoverageAnalysisAttributes": {
+ "description": "CSM Hosts and Containers Coverage Analysis attributes.",
+ "properties": {
+ "cspm_coverage": {
+ "description": "CSM Coverage Analysis.",
+ "properties": {
+ "configured_resources_count": {
+ "description": "The number of fully configured resources.",
+ "example": 8,
+ "format": "int64",
+ "type": "integer"
},
- "uploaded_at": {
- "description": "Timestamp in millisecond of the upload time of the Custom Costs file.",
- "example": 1704067200000,
+ "coverage": {
+ "description": "The coverage percentage.",
+ "example": 0.8,
"format": "double",
"type": "number"
},
- "uploaded_by": {
- "description": "Metadata of the user that has uploaded the Custom Costs file.",
+ "partially_configured_resources_count": {
+ "description": "The number of partially configured resources.",
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ },
+ "total_resources_count": {
+ "description": "The total number of resources.",
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "cws_coverage": {
+ "description": "CSM Coverage Analysis.",
+ "properties": {
+ "configured_resources_count": {
+ "description": "The number of fully configured resources.",
+ "example": 8,
+ "format": "int64",
+ "type": "integer"
+ },
+ "coverage": {
+ "description": "The coverage percentage.",
+ "example": 0.8,
+ "format": "double",
+ "type": "number"
+ },
+ "partially_configured_resources_count": {
+ "description": "The number of partially configured resources.",
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ },
+ "total_resources_count": {
+ "description": "The total number of resources.",
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "org_id": {
+ "description": "The ID of your organization.",
+ "example": 123456,
+ "format": "int64",
+ "type": "integer"
+ },
+ "total_coverage": {
+ "description": "CSM Coverage Analysis.",
+ "properties": {
+ "configured_resources_count": {
+ "description": "The number of fully configured resources.",
+ "example": 8,
+ "format": "int64",
+ "type": "integer"
+ },
+ "coverage": {
+ "description": "The coverage percentage.",
+ "example": 0.8,
+ "format": "double",
+ "type": "number"
+ },
+ "partially_configured_resources_count": {
+ "description": "The number of partially configured resources.",
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ },
+ "total_resources_count": {
+ "description": "The total number of resources.",
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "vm_coverage": {
+ "description": "CSM Coverage Analysis.",
+ "properties": {
+ "configured_resources_count": {
+ "description": "The number of fully configured resources.",
+ "example": 8,
+ "format": "int64",
+ "type": "integer"
+ },
+ "coverage": {
+ "description": "The coverage percentage.",
+ "example": 0.8,
+ "format": "double",
+ "type": "number"
+ },
+ "partially_configured_resources_count": {
+ "description": "The number of partially configured resources.",
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ },
+ "total_resources_count": {
+ "description": "The total number of resources.",
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "CsmHostsAndContainersCoverageAnalysisData": {
+ "description": "CSM Hosts and Containers Coverage Analysis data.",
+ "properties": {
+ "attributes": {
+ "description": "CSM Hosts and Containers Coverage Analysis attributes.",
+ "properties": {
+ "cspm_coverage": {
+ "description": "CSM Coverage Analysis.",
"properties": {
- "email": {
- "description": "The name of the Custom Costs file.",
- "example": "email.test@datadohq.com",
- "type": "string"
+ "configured_resources_count": {
+ "description": "The number of fully configured resources.",
+ "example": 8,
+ "format": "int64",
+ "type": "integer"
},
- "icon": {
- "description": "The name of the Custom Costs file.",
- "example": "icon.png",
- "type": "string"
+ "coverage": {
+ "description": "The coverage percentage.",
+ "example": 0.8,
+ "format": "double",
+ "type": "number"
},
- "name": {
- "description": "Name of the user.",
- "example": "Test User",
- "type": "string"
+ "partially_configured_resources_count": {
+ "description": "The number of partially configured resources.",
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ },
+ "total_resources_count": {
+ "description": "The total number of resources.",
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "cws_coverage": {
+ "description": "CSM Coverage Analysis.",
+ "properties": {
+ "configured_resources_count": {
+ "description": "The number of fully configured resources.",
+ "example": 8,
+ "format": "int64",
+ "type": "integer"
+ },
+ "coverage": {
+ "description": "The coverage percentage.",
+ "example": 0.8,
+ "format": "double",
+ "type": "number"
+ },
+ "partially_configured_resources_count": {
+ "description": "The number of partially configured resources.",
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ },
+ "total_resources_count": {
+ "description": "The total number of resources.",
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "org_id": {
+ "description": "The ID of your organization.",
+ "example": 123456,
+ "format": "int64",
+ "type": "integer"
+ },
+ "total_coverage": {
+ "description": "CSM Coverage Analysis.",
+ "properties": {
+ "configured_resources_count": {
+ "description": "The number of fully configured resources.",
+ "example": 8,
+ "format": "int64",
+ "type": "integer"
+ },
+ "coverage": {
+ "description": "The coverage percentage.",
+ "example": 0.8,
+ "format": "double",
+ "type": "number"
+ },
+ "partially_configured_resources_count": {
+ "description": "The number of partially configured resources.",
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ },
+ "total_resources_count": {
+ "description": "The total number of resources.",
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "vm_coverage": {
+ "description": "CSM Coverage Analysis.",
+ "properties": {
+ "configured_resources_count": {
+ "description": "The number of fully configured resources.",
+ "example": 8,
+ "format": "int64",
+ "type": "integer"
+ },
+ "coverage": {
+ "description": "The coverage percentage.",
+ "example": 0.8,
+ "format": "double",
+ "type": "number"
+ },
+ "partially_configured_resources_count": {
+ "description": "The number of partially configured resources.",
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ },
+ "total_resources_count": {
+ "description": "The total number of resources.",
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
}
},
"type": "object"
@@ -45276,145 +46920,150 @@
"type": "object"
},
"id": {
- "description": "ID of the Custom Costs metadata.",
+ "description": "The ID of your organization.",
+ "example": "66b3c6b5-5c9a-457e-b1c3-f247ca23afa3",
"type": "string"
},
"type": {
- "description": "Type of the Custom Costs file metadata.",
+ "default": "get_hosts_and_containers_coverage_analysis_response_public_v0",
+ "description": "The type of the resource. The value should always be `get_hosts_and_containers_coverage_analysis_response_public_v0`.",
+ "example": "get_hosts_and_containers_coverage_analysis_response_public_v0",
"type": "string"
}
},
"type": "object"
},
- "CustomCostsFileUploadRequest": {
- "description": "Request for uploading a Custom Costs file.",
- "items": {
- "description": "Line item details from a Custom Costs file.",
- "properties": {
- "BilledCost": {
- "description": "Total cost in the cost file.",
- "example": 100.5,
- "format": "double",
- "type": "number"
- },
- "BillingCurrency": {
- "description": "Currency used in the Custom Costs file.",
- "example": "USD",
- "type": "string"
- },
- "ChargeDescription": {
- "description": "Description for the line item cost.",
- "example": "Monthly usage charge for my service",
- "type": "string"
- },
- "ChargePeriodEnd": {
- "description": "End date of the usage charge.",
- "example": "2023-02-28",
- "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
- "type": "string"
- },
- "ChargePeriodStart": {
- "description": "Start date of the usage charge.",
- "example": "2023-02-01",
- "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
- "type": "string"
- },
- "ProviderName": {
- "description": "Name of the provider for the line item.",
- "type": "string"
- },
- "Tags": {
- "additionalProperties": {
- "type": "string"
- },
- "description": "Additional tags for the line item.",
- "type": "object"
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "CustomCostsFileUploadResponse": {
- "description": "Response for Uploaded Custom Costs files.",
+ "CsmHostsAndContainersCoverageAnalysisResponse": {
+ "description": "CSM Hosts and Containers Coverage Analysis response.",
"properties": {
"data": {
- "description": "JSON API format for a Custom Costs file.",
+ "description": "CSM Hosts and Containers Coverage Analysis data.",
"properties": {
"attributes": {
- "description": "Schema of a Custom Costs metadata.",
+ "description": "CSM Hosts and Containers Coverage Analysis attributes.",
"properties": {
- "billed_cost": {
- "description": "Total cost in the cost file.",
- "example": 100.5,
- "format": "double",
- "type": "number"
- },
- "billing_currency": {
- "description": "Currency used in the Custom Costs file.",
- "example": "USD",
- "type": "string"
- },
- "charge_period": {
- "description": "Usage charge period of a Custom Costs file.",
+ "cspm_coverage": {
+ "description": "CSM Coverage Analysis.",
"properties": {
- "end": {
- "description": "End of the usage of the Custom Costs file.",
- "example": 1706745600000,
+ "configured_resources_count": {
+ "description": "The number of fully configured resources.",
+ "example": 8,
+ "format": "int64",
+ "type": "integer"
+ },
+ "coverage": {
+ "description": "The coverage percentage.",
+ "example": 0.8,
"format": "double",
"type": "number"
},
- "start": {
- "description": "Start of the usage of the Custom Costs file.",
- "example": 1704067200000,
+ "partially_configured_resources_count": {
+ "description": "The number of partially configured resources.",
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ },
+ "total_resources_count": {
+ "description": "The total number of resources.",
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "cws_coverage": {
+ "description": "CSM Coverage Analysis.",
+ "properties": {
+ "configured_resources_count": {
+ "description": "The number of fully configured resources.",
+ "example": 8,
+ "format": "int64",
+ "type": "integer"
+ },
+ "coverage": {
+ "description": "The coverage percentage.",
+ "example": 0.8,
"format": "double",
"type": "number"
+ },
+ "partially_configured_resources_count": {
+ "description": "The number of partially configured resources.",
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ },
+ "total_resources_count": {
+ "description": "The total number of resources.",
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
}
},
"type": "object"
},
- "name": {
- "description": "Name of the Custom Costs file.",
- "example": "my_file.json",
- "type": "string"
+ "org_id": {
+ "description": "The ID of your organization.",
+ "example": 123456,
+ "format": "int64",
+ "type": "integer"
},
- "provider_names": {
- "description": "Providers contained in the Custom Costs file.",
- "items": {
- "description": "Name of the provider.",
- "example": "my_provider",
- "type": "string"
+ "total_coverage": {
+ "description": "CSM Coverage Analysis.",
+ "properties": {
+ "configured_resources_count": {
+ "description": "The number of fully configured resources.",
+ "example": 8,
+ "format": "int64",
+ "type": "integer"
+ },
+ "coverage": {
+ "description": "The coverage percentage.",
+ "example": 0.8,
+ "format": "double",
+ "type": "number"
+ },
+ "partially_configured_resources_count": {
+ "description": "The number of partially configured resources.",
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ },
+ "total_resources_count": {
+ "description": "The total number of resources.",
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ }
},
- "type": "array"
- },
- "status": {
- "description": "Status of the Custom Costs file.",
- "example": "active",
- "type": "string"
- },
- "uploaded_at": {
- "description": "Timestamp, in millisecond, of the upload time of the Custom Costs file.",
- "example": 1704067200000,
- "format": "double",
- "type": "number"
+ "type": "object"
},
- "uploaded_by": {
- "description": "Metadata of the user that has uploaded the Custom Costs file.",
+ "vm_coverage": {
+ "description": "CSM Coverage Analysis.",
"properties": {
- "email": {
- "description": "The name of the Custom Costs file.",
- "example": "email.test@datadohq.com",
- "type": "string"
+ "configured_resources_count": {
+ "description": "The number of fully configured resources.",
+ "example": 8,
+ "format": "int64",
+ "type": "integer"
},
- "icon": {
- "description": "The name of the Custom Costs file.",
- "example": "icon.png",
- "type": "string"
+ "coverage": {
+ "description": "The coverage percentage.",
+ "example": 0.8,
+ "format": "double",
+ "type": "number"
},
- "name": {
- "description": "Name of the user.",
- "example": "Test User",
- "type": "string"
+ "partially_configured_resources_count": {
+ "description": "The number of partially configured resources.",
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ },
+ "total_resources_count": {
+ "description": "The total number of resources.",
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
}
},
"type": "object"
@@ -45423,21 +47072,14 @@
"type": "object"
},
"id": {
- "description": "ID of the Custom Costs metadata.",
+ "description": "The ID of your organization.",
+ "example": "66b3c6b5-5c9a-457e-b1c3-f247ca23afa3",
"type": "string"
},
"type": {
- "description": "Type of the Custom Costs file metadata.",
- "type": "string"
- }
- },
- "type": "object"
- },
- "meta": {
- "description": "Meta for the response from the Upload Custom Costs endpoints.",
- "properties": {
- "version": {
- "description": "Version of Custom Costs file",
+ "default": "get_hosts_and_containers_coverage_analysis_response_public_v0",
+ "description": "The type of the resource. The value should always be `get_hosts_and_containers_coverage_analysis_response_public_v0`.",
+ "example": "get_hosts_and_containers_coverage_analysis_response_public_v0",
"type": "string"
}
},
@@ -45446,1526 +47088,1384 @@
},
"type": "object"
},
- "CustomCostsFileUsageChargePeriod": {
- "description": "Usage charge period of a Custom Costs file.",
+ "CsmServerlessCoverageAnalysisAttributes": {
+ "description": "CSM Serverless Resources Coverage Analysis attributes.",
"properties": {
- "end": {
- "description": "End of the usage of the Custom Costs file.",
- "example": 1706745600000,
- "format": "double",
- "type": "number"
+ "cws_coverage": {
+ "description": "CSM Coverage Analysis.",
+ "properties": {
+ "configured_resources_count": {
+ "description": "The number of fully configured resources.",
+ "example": 8,
+ "format": "int64",
+ "type": "integer"
+ },
+ "coverage": {
+ "description": "The coverage percentage.",
+ "example": 0.8,
+ "format": "double",
+ "type": "number"
+ },
+ "partially_configured_resources_count": {
+ "description": "The number of partially configured resources.",
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ },
+ "total_resources_count": {
+ "description": "The total number of resources.",
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ "type": "object"
},
- "start": {
- "description": "Start of the usage of the Custom Costs file.",
- "example": 1704067200000,
- "format": "double",
- "type": "number"
+ "org_id": {
+ "description": "The ID of your organization.",
+ "example": 123456,
+ "format": "int64",
+ "type": "integer"
+ },
+ "total_coverage": {
+ "description": "CSM Coverage Analysis.",
+ "properties": {
+ "configured_resources_count": {
+ "description": "The number of fully configured resources.",
+ "example": 8,
+ "format": "int64",
+ "type": "integer"
+ },
+ "coverage": {
+ "description": "The coverage percentage.",
+ "example": 0.8,
+ "format": "double",
+ "type": "number"
+ },
+ "partially_configured_resources_count": {
+ "description": "The number of partially configured resources.",
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ },
+ "total_resources_count": {
+ "description": "The total number of resources.",
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ "type": "object"
}
},
"type": "object"
},
- "CustomCostsUser": {
- "description": "Metadata of the user that has uploaded the Custom Costs file.",
+ "CsmServerlessCoverageAnalysisData": {
+ "description": "CSM Serverless Resources Coverage Analysis data.",
"properties": {
- "email": {
- "description": "The name of the Custom Costs file.",
- "example": "email.test@datadohq.com",
- "type": "string"
+ "attributes": {
+ "description": "CSM Serverless Resources Coverage Analysis attributes.",
+ "properties": {
+ "cws_coverage": {
+ "description": "CSM Coverage Analysis.",
+ "properties": {
+ "configured_resources_count": {
+ "description": "The number of fully configured resources.",
+ "example": 8,
+ "format": "int64",
+ "type": "integer"
+ },
+ "coverage": {
+ "description": "The coverage percentage.",
+ "example": 0.8,
+ "format": "double",
+ "type": "number"
+ },
+ "partially_configured_resources_count": {
+ "description": "The number of partially configured resources.",
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ },
+ "total_resources_count": {
+ "description": "The total number of resources.",
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "org_id": {
+ "description": "The ID of your organization.",
+ "example": 123456,
+ "format": "int64",
+ "type": "integer"
+ },
+ "total_coverage": {
+ "description": "CSM Coverage Analysis.",
+ "properties": {
+ "configured_resources_count": {
+ "description": "The number of fully configured resources.",
+ "example": 8,
+ "format": "int64",
+ "type": "integer"
+ },
+ "coverage": {
+ "description": "The coverage percentage.",
+ "example": 0.8,
+ "format": "double",
+ "type": "number"
+ },
+ "partially_configured_resources_count": {
+ "description": "The number of partially configured resources.",
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ },
+ "total_resources_count": {
+ "description": "The total number of resources.",
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
},
- "icon": {
- "description": "The name of the Custom Costs file.",
- "example": "icon.png",
+ "id": {
+ "description": "The ID of your organization.",
+ "example": "66b3c6b5-5c9a-457e-b1c3-f247ca23afa3",
"type": "string"
},
- "name": {
- "description": "Name of the user.",
- "example": "Test User",
+ "type": {
+ "default": "get_serverless_coverage_analysis_response_public_v0",
+ "description": "The type of the resource. The value should always be `get_serverless_coverage_analysis_response_public_v0`.",
+ "example": "get_serverless_coverage_analysis_response_public_v0",
"type": "string"
}
},
"type": "object"
},
- "CustomDestinationAttributeTagsRestrictionListType": {
- "default": "ALLOW_LIST",
- "description": "How `forward_tags_restriction_list` parameter should be interpreted.\nIf `ALLOW_LIST`, then only tags whose keys on the forwarded logs match the ones on the restriction list\nare forwarded.\n\n`BLOCK_LIST` works the opposite way. It does not forward the tags matching the ones on the list.",
- "enum": [
- "ALLOW_LIST",
- "BLOCK_LIST"
- ],
- "example": "ALLOW_LIST",
- "type": "string",
- "x-enum-varnames": [
- "ALLOW_LIST",
- "BLOCK_LIST"
- ]
- },
- "CustomDestinationCreateRequest": {
- "description": "The custom destination.",
+ "CsmServerlessCoverageAnalysisResponse": {
+ "description": "CSM Serverless Resources Coverage Analysis response.",
"properties": {
"data": {
- "description": "The definition of a custom destination.",
+ "description": "CSM Serverless Resources Coverage Analysis data.",
"properties": {
"attributes": {
- "description": "The attributes associated with the custom destination.",
+ "description": "CSM Serverless Resources Coverage Analysis attributes.",
"properties": {
- "enabled": {
- "default": true,
- "description": "Whether logs matching this custom destination should be forwarded or not.",
- "example": true,
- "type": "boolean"
- },
- "forward_tags": {
- "default": true,
- "description": "Whether tags from the forwarded logs should be forwarded or not.",
- "example": true,
- "type": "boolean"
- },
- "forward_tags_restriction_list": {
- "default": [],
- "description": "List of [keys of tags](https://docs.datadoghq.com/getting_started/tagging/#define-tags) to be filtered.\n\nAn empty list represents no restriction is in place and either all or no tags will be\nforwarded depending on `forward_tags_restriction_list_type` parameter.",
- "example": [
- "datacenter",
- "host"
- ],
- "items": {
- "description": "The [key part of a tag](https://docs.datadoghq.com/getting_started/tagging/#define-tags).",
- "type": "string"
+ "cws_coverage": {
+ "description": "CSM Coverage Analysis.",
+ "properties": {
+ "configured_resources_count": {
+ "description": "The number of fully configured resources.",
+ "example": 8,
+ "format": "int64",
+ "type": "integer"
+ },
+ "coverage": {
+ "description": "The coverage percentage.",
+ "example": 0.8,
+ "format": "double",
+ "type": "number"
+ },
+ "partially_configured_resources_count": {
+ "description": "The number of partially configured resources.",
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ },
+ "total_resources_count": {
+ "description": "The total number of resources.",
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ }
},
- "maxItems": 10,
- "minItems": 0,
- "type": "array"
+ "type": "object"
},
- "forward_tags_restriction_list_type": {
- "default": "ALLOW_LIST",
- "description": "How `forward_tags_restriction_list` parameter should be interpreted.\nIf `ALLOW_LIST`, then only tags whose keys on the forwarded logs match the ones on the restriction list\nare forwarded.\n\n`BLOCK_LIST` works the opposite way. It does not forward the tags matching the ones on the list.",
- "enum": [
- "ALLOW_LIST",
- "BLOCK_LIST"
- ],
- "example": "ALLOW_LIST",
- "type": "string",
- "x-enum-varnames": [
- "ALLOW_LIST",
- "BLOCK_LIST"
- ]
+ "org_id": {
+ "description": "The ID of your organization.",
+ "example": 123456,
+ "format": "int64",
+ "type": "integer"
},
- "forwarder_destination": {
- "description": "A custom destination's location to forward logs.",
- "oneOf": [
- {
- "description": "The HTTP destination.",
- "properties": {
- "auth": {
- "description": "Authentication method of the HTTP requests.",
- "oneOf": [
- {
- "description": "Basic access authentication.",
- "properties": {
- "password": {
- "description": "The password of the authentication. This field is not returned by the API.",
- "example": "datadog-custom-destination-password",
- "type": "string",
- "writeOnly": true
- },
- "type": {
- "default": "basic",
- "description": "Type of the basic access authentication.",
- "enum": [
- "basic"
- ],
- "example": "basic",
- "type": "string",
- "x-enum-varnames": [
- "BASIC"
- ]
- },
- "username": {
- "description": "The username of the authentication. This field is not returned by the API.",
- "example": "datadog-custom-destination-username",
- "type": "string",
- "writeOnly": true
- }
- },
- "required": [
- "type",
- "username",
- "password"
- ],
- "type": "object"
- },
- {
- "description": "Custom header access authentication.",
- "properties": {
- "header_name": {
- "description": "The header name of the authentication.",
- "example": "CUSTOM-HEADER-NAME",
- "type": "string"
- },
- "header_value": {
- "description": "The header value of the authentication. This field is not returned by the API.",
- "example": "CUSTOM-HEADER-AUTHENTICATION-VALUE",
- "type": "string",
- "writeOnly": true
- },
- "type": {
- "default": "custom_header",
- "description": "Type of the custom header access authentication.",
- "enum": [
- "custom_header"
- ],
- "example": "custom_header",
- "type": "string",
- "x-enum-varnames": [
- "CUSTOM_HEADER"
- ]
- }
- },
- "required": [
- "type",
- "header_name",
- "header_value"
- ],
- "type": "object"
- }
- ]
- },
- "endpoint": {
- "description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
- "example": "https://example.com",
- "type": "string"
- },
- "type": {
- "default": "http",
- "description": "Type of the HTTP destination.",
- "enum": [
- "http"
- ],
- "example": "http",
- "type": "string",
- "x-enum-varnames": [
- "HTTP"
- ]
- }
- },
- "required": [
- "type",
- "endpoint",
- "auth"
- ],
- "type": "object"
+ "total_coverage": {
+ "description": "CSM Coverage Analysis.",
+ "properties": {
+ "configured_resources_count": {
+ "description": "The number of fully configured resources.",
+ "example": 8,
+ "format": "int64",
+ "type": "integer"
},
- {
- "description": "The Splunk HTTP Event Collector (HEC) destination.",
- "properties": {
- "access_token": {
- "description": "Access token of the Splunk HTTP Event Collector. This field is not returned by the API.",
- "example": "splunk_access_token",
- "type": "string",
- "writeOnly": true
- },
- "endpoint": {
- "description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
- "example": "https://example.com",
- "type": "string"
- },
- "type": {
- "default": "splunk_hec",
- "description": "Type of the Splunk HTTP Event Collector (HEC) destination.",
- "enum": [
- "splunk_hec"
- ],
- "example": "splunk_hec",
- "type": "string",
- "x-enum-varnames": [
- "SPLUNK_HEC"
- ]
- }
- },
- "required": [
- "type",
- "endpoint",
- "access_token"
- ],
- "type": "object"
+ "coverage": {
+ "description": "The coverage percentage.",
+ "example": 0.8,
+ "format": "double",
+ "type": "number"
},
- {
- "description": "The Elasticsearch destination.",
- "properties": {
- "auth": {
- "description": "Basic access authentication.",
- "properties": {
- "password": {
- "description": "The password of the authentication. This field is not returned by the API.",
- "example": "datadog-custom-destination-password",
- "type": "string",
- "writeOnly": true
- },
- "username": {
- "description": "The username of the authentication. This field is not returned by the API.",
- "example": "datadog-custom-destination-username",
- "type": "string",
- "writeOnly": true
- }
- },
- "required": [
- "username",
- "password"
- ],
- "type": "object"
- },
- "endpoint": {
- "description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
- "example": "https://example.com",
- "type": "string"
- },
- "index_name": {
- "description": "Name of the Elasticsearch index (must follow [Elasticsearch's criteria](https://www.elastic.co/guide/en/elasticsearch/reference/8.11/indices-create-index.html#indices-create-api-path-params)).",
- "example": "nginx-logs",
- "type": "string"
- },
- "index_rotation": {
- "description": "Date pattern with US locale and UTC timezone to be appended to the index name after adding `-`\n(that is, `${index_name}-${indexPattern}`).\nYou can customize the index rotation naming pattern by choosing one of these options:\n- Hourly: `yyyy-MM-dd-HH` (as an example, it would render: `2022-10-19-09`)\n- Daily: `yyyy-MM-dd` (as an example, it would render: `2022-10-19`)\n- Weekly: `yyyy-'W'ww` (as an example, it would render: `2022-W42`)\n- Monthly: `yyyy-MM` (as an example, it would render: `2022-10`)\n\nIf this field is missing or is blank, it means that the index name will always be the same\n(that is, no rotation).",
- "example": "yyyy-MM-dd",
- "type": "string"
- },
- "type": {
- "default": "elasticsearch",
- "description": "Type of the Elasticsearch destination.",
- "enum": [
- "elasticsearch"
- ],
- "example": "elasticsearch",
- "type": "string",
- "x-enum-varnames": [
- "ELASTICSEARCH"
- ]
- }
- },
- "required": [
- "type",
- "endpoint",
- "auth",
- "index_name"
- ],
- "type": "object"
+ "partially_configured_resources_count": {
+ "description": "The number of partially configured resources.",
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ },
+ "total_resources_count": {
+ "description": "The total number of resources.",
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
}
- ]
- },
- "name": {
- "description": "The custom destination name.",
- "example": "Nginx logs",
- "type": "string"
- },
- "query": {
- "default": "",
- "description": "The custom destination query and filter. Logs matching this query are forwarded to the destination.",
- "example": "source:nginx",
- "type": "string"
+ },
+ "type": "object"
}
},
- "required": [
- "name",
- "forwarder_destination"
- ],
"type": "object"
},
+ "id": {
+ "description": "The ID of your organization.",
+ "example": "66b3c6b5-5c9a-457e-b1c3-f247ca23afa3",
+ "type": "string"
+ },
"type": {
- "default": "custom_destination",
- "description": "The type of the resource. The value should always be `custom_destination`.",
- "enum": [
- "custom_destination"
- ],
- "example": "custom_destination",
- "type": "string",
- "x-enum-varnames": [
- "CUSTOM_DESTINATION"
- ]
+ "default": "get_serverless_coverage_analysis_response_public_v0",
+ "description": "The type of the resource. The value should always be `get_serverless_coverage_analysis_response_public_v0`.",
+ "example": "get_serverless_coverage_analysis_response_public_v0",
+ "type": "string"
}
},
- "required": [
- "type",
- "attributes"
- ],
"type": "object"
}
},
"type": "object"
},
- "CustomDestinationCreateRequestAttributes": {
- "description": "The attributes associated with the custom destination.",
+ "CustomConnection": {
+ "description": "A custom connection used by an app.",
"properties": {
- "enabled": {
- "default": true,
- "description": "Whether logs matching this custom destination should be forwarded or not.",
- "example": true,
- "type": "boolean"
- },
- "forward_tags": {
- "default": true,
- "description": "Whether tags from the forwarded logs should be forwarded or not.",
- "example": true,
- "type": "boolean"
- },
- "forward_tags_restriction_list": {
- "default": [],
- "description": "List of [keys of tags](https://docs.datadoghq.com/getting_started/tagging/#define-tags) to be filtered.\n\nAn empty list represents no restriction is in place and either all or no tags will be\nforwarded depending on `forward_tags_restriction_list_type` parameter.",
- "example": [
- "datacenter",
- "host"
- ],
- "items": {
- "description": "The [key part of a tag](https://docs.datadoghq.com/getting_started/tagging/#define-tags).",
- "type": "string"
- },
- "maxItems": 10,
- "minItems": 0,
- "type": "array"
- },
- "forward_tags_restriction_list_type": {
- "default": "ALLOW_LIST",
- "description": "How `forward_tags_restriction_list` parameter should be interpreted.\nIf `ALLOW_LIST`, then only tags whose keys on the forwarded logs match the ones on the restriction list\nare forwarded.\n\n`BLOCK_LIST` works the opposite way. It does not forward the tags matching the ones on the list.",
- "enum": [
- "ALLOW_LIST",
- "BLOCK_LIST"
- ],
- "example": "ALLOW_LIST",
- "type": "string",
- "x-enum-varnames": [
- "ALLOW_LIST",
- "BLOCK_LIST"
- ]
- },
- "forwarder_destination": {
- "description": "A custom destination's location to forward logs.",
- "oneOf": [
- {
- "description": "The HTTP destination.",
- "properties": {
- "auth": {
- "description": "Authentication method of the HTTP requests.",
- "oneOf": [
- {
- "description": "Basic access authentication.",
- "properties": {
- "password": {
- "description": "The password of the authentication. This field is not returned by the API.",
- "example": "datadog-custom-destination-password",
- "type": "string",
- "writeOnly": true
- },
- "type": {
- "default": "basic",
- "description": "Type of the basic access authentication.",
- "enum": [
- "basic"
- ],
- "example": "basic",
- "type": "string",
- "x-enum-varnames": [
- "BASIC"
- ]
- },
- "username": {
- "description": "The username of the authentication. This field is not returned by the API.",
- "example": "datadog-custom-destination-username",
- "type": "string",
- "writeOnly": true
- }
- },
- "required": [
- "type",
- "username",
- "password"
- ],
- "type": "object"
- },
- {
- "description": "Custom header access authentication.",
- "properties": {
- "header_name": {
- "description": "The header name of the authentication.",
- "example": "CUSTOM-HEADER-NAME",
- "type": "string"
- },
- "header_value": {
- "description": "The header value of the authentication. This field is not returned by the API.",
- "example": "CUSTOM-HEADER-AUTHENTICATION-VALUE",
- "type": "string",
- "writeOnly": true
- },
- "type": {
- "default": "custom_header",
- "description": "Type of the custom header access authentication.",
- "enum": [
- "custom_header"
- ],
- "example": "custom_header",
- "type": "string",
- "x-enum-varnames": [
- "CUSTOM_HEADER"
- ]
- }
- },
- "required": [
- "type",
- "header_name",
- "header_value"
- ],
- "type": "object"
- }
- ]
- },
- "endpoint": {
- "description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
- "example": "https://example.com",
- "type": "string"
- },
- "type": {
- "default": "http",
- "description": "Type of the HTTP destination.",
- "enum": [
- "http"
- ],
- "example": "http",
- "type": "string",
- "x-enum-varnames": [
- "HTTP"
- ]
- }
- },
- "required": [
- "type",
- "endpoint",
- "auth"
- ],
- "type": "object"
- },
- {
- "description": "The Splunk HTTP Event Collector (HEC) destination.",
- "properties": {
- "access_token": {
- "description": "Access token of the Splunk HTTP Event Collector. This field is not returned by the API.",
- "example": "splunk_access_token",
- "type": "string",
- "writeOnly": true
- },
- "endpoint": {
- "description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
- "example": "https://example.com",
- "type": "string"
- },
- "type": {
- "default": "splunk_hec",
- "description": "Type of the Splunk HTTP Event Collector (HEC) destination.",
- "enum": [
- "splunk_hec"
- ],
- "example": "splunk_hec",
- "type": "string",
- "x-enum-varnames": [
- "SPLUNK_HEC"
- ]
- }
- },
- "required": [
- "type",
- "endpoint",
- "access_token"
- ],
- "type": "object"
+ "attributes": {
+ "description": "The custom connection attributes.",
+ "properties": {
+ "name": {
+ "description": "The name of the custom connection.",
+ "type": "string"
},
- {
- "description": "The Elasticsearch destination.",
+ "onPremRunner": {
+ "description": "Information about the Private Action Runner used by the custom connection, if the custom connection is associated with a Private Action Runner.",
"properties": {
- "auth": {
- "description": "Basic access authentication.",
- "properties": {
- "password": {
- "description": "The password of the authentication. This field is not returned by the API.",
- "example": "datadog-custom-destination-password",
- "type": "string",
- "writeOnly": true
- },
- "username": {
- "description": "The username of the authentication. This field is not returned by the API.",
- "example": "datadog-custom-destination-username",
- "type": "string",
- "writeOnly": true
- }
- },
- "required": [
- "username",
- "password"
- ],
- "type": "object"
- },
- "endpoint": {
- "description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
- "example": "https://example.com",
- "type": "string"
- },
- "index_name": {
- "description": "Name of the Elasticsearch index (must follow [Elasticsearch's criteria](https://www.elastic.co/guide/en/elasticsearch/reference/8.11/indices-create-index.html#indices-create-api-path-params)).",
- "example": "nginx-logs",
+ "id": {
+ "description": "The Private Action Runner ID.",
"type": "string"
},
- "index_rotation": {
- "description": "Date pattern with US locale and UTC timezone to be appended to the index name after adding `-`\n(that is, `${index_name}-${indexPattern}`).\nYou can customize the index rotation naming pattern by choosing one of these options:\n- Hourly: `yyyy-MM-dd-HH` (as an example, it would render: `2022-10-19-09`)\n- Daily: `yyyy-MM-dd` (as an example, it would render: `2022-10-19`)\n- Weekly: `yyyy-'W'ww` (as an example, it would render: `2022-W42`)\n- Monthly: `yyyy-MM` (as an example, it would render: `2022-10`)\n\nIf this field is missing or is blank, it means that the index name will always be the same\n(that is, no rotation).",
- "example": "yyyy-MM-dd",
+ "url": {
+ "description": "The URL of the Private Action Runner.",
"type": "string"
- },
- "type": {
- "default": "elasticsearch",
- "description": "Type of the Elasticsearch destination.",
- "enum": [
- "elasticsearch"
- ],
- "example": "elasticsearch",
- "type": "string",
- "x-enum-varnames": [
- "ELASTICSEARCH"
- ]
}
},
- "required": [
- "type",
- "endpoint",
- "auth",
- "index_name"
- ],
"type": "object"
}
- ]
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The ID of the custom connection.",
+ "example": "65bb1f25-52e1-4510-9f8d-22d1516ed693",
+ "format": "uuid",
+ "type": "string"
},
+ "type": {
+ "default": "custom_connections",
+ "description": "The custom connection type.",
+ "enum": [
+ "custom_connections"
+ ],
+ "example": "custom_connections",
+ "type": "string",
+ "x-enum-varnames": [
+ "CUSTOM_CONNECTIONS"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "CustomConnectionAttributes": {
+ "description": "The custom connection attributes.",
+ "properties": {
"name": {
- "description": "The custom destination name.",
- "example": "Nginx logs",
+ "description": "The name of the custom connection.",
"type": "string"
},
- "query": {
- "default": "",
- "description": "The custom destination query and filter. Logs matching this query are forwarded to the destination.",
- "example": "source:nginx",
+ "onPremRunner": {
+ "description": "Information about the Private Action Runner used by the custom connection, if the custom connection is associated with a Private Action Runner.",
+ "properties": {
+ "id": {
+ "description": "The Private Action Runner ID.",
+ "type": "string"
+ },
+ "url": {
+ "description": "The URL of the Private Action Runner.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "CustomConnectionAttributesOnPremRunner": {
+ "description": "Information about the Private Action Runner used by the custom connection, if the custom connection is associated with a Private Action Runner.",
+ "properties": {
+ "id": {
+ "description": "The Private Action Runner ID.",
+ "type": "string"
+ },
+ "url": {
+ "description": "The URL of the Private Action Runner.",
"type": "string"
}
},
- "required": [
- "name",
- "forwarder_destination"
+ "type": "object"
+ },
+ "CustomConnectionType": {
+ "default": "custom_connections",
+ "description": "The custom connection type.",
+ "enum": [
+ "custom_connections"
],
+ "example": "custom_connections",
+ "type": "string",
+ "x-enum-varnames": [
+ "CUSTOM_CONNECTIONS"
+ ]
+ },
+ "CustomCostGetResponseMeta": {
+ "description": "Meta for the response from the Get Custom Costs endpoints.",
+ "properties": {
+ "version": {
+ "description": "Version of Custom Costs file",
+ "type": "string"
+ }
+ },
"type": "object"
},
- "CustomDestinationCreateRequestDefinition": {
- "description": "The definition of a custom destination.",
+ "CustomCostListResponseMeta": {
+ "description": "Meta for the response from the List Custom Costs endpoints.",
"properties": {
- "attributes": {
- "description": "The attributes associated with the custom destination.",
+ "total_filtered_count": {
+ "description": "Number of Custom Costs files returned by the List Custom Costs endpoint",
+ "format": "int64",
+ "type": "integer"
+ },
+ "version": {
+ "description": "Version of Custom Costs file",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "CustomCostUploadResponseMeta": {
+ "description": "Meta for the response from the Upload Custom Costs endpoints.",
+ "properties": {
+ "version": {
+ "description": "Version of Custom Costs file",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "CustomCostsFileGetResponse": {
+ "description": "Response for Get Custom Costs files.",
+ "properties": {
+ "data": {
+ "description": "JSON API format of for a Custom Costs file with content.",
"properties": {
- "enabled": {
- "default": true,
- "description": "Whether logs matching this custom destination should be forwarded or not.",
- "example": true,
- "type": "boolean"
- },
- "forward_tags": {
- "default": true,
- "description": "Whether tags from the forwarded logs should be forwarded or not.",
- "example": true,
- "type": "boolean"
- },
- "forward_tags_restriction_list": {
- "default": [],
- "description": "List of [keys of tags](https://docs.datadoghq.com/getting_started/tagging/#define-tags) to be filtered.\n\nAn empty list represents no restriction is in place and either all or no tags will be\nforwarded depending on `forward_tags_restriction_list_type` parameter.",
- "example": [
- "datacenter",
- "host"
- ],
- "items": {
- "description": "The [key part of a tag](https://docs.datadoghq.com/getting_started/tagging/#define-tags).",
- "type": "string"
- },
- "maxItems": 10,
- "minItems": 0,
- "type": "array"
- },
- "forward_tags_restriction_list_type": {
- "default": "ALLOW_LIST",
- "description": "How `forward_tags_restriction_list` parameter should be interpreted.\nIf `ALLOW_LIST`, then only tags whose keys on the forwarded logs match the ones on the restriction list\nare forwarded.\n\n`BLOCK_LIST` works the opposite way. It does not forward the tags matching the ones on the list.",
- "enum": [
- "ALLOW_LIST",
- "BLOCK_LIST"
- ],
- "example": "ALLOW_LIST",
- "type": "string",
- "x-enum-varnames": [
- "ALLOW_LIST",
- "BLOCK_LIST"
- ]
- },
- "forwarder_destination": {
- "description": "A custom destination's location to forward logs.",
- "oneOf": [
- {
- "description": "The HTTP destination.",
+ "attributes": {
+ "description": "Schema of a cost file's metadata.",
+ "properties": {
+ "billed_cost": {
+ "description": "Total cost in the cost file.",
+ "example": 100.5,
+ "format": "double",
+ "type": "number"
+ },
+ "billing_currency": {
+ "description": "Currency used in the Custom Costs file.",
+ "example": "USD",
+ "type": "string"
+ },
+ "charge_period": {
+ "description": "Usage charge period of a Custom Costs file.",
"properties": {
- "auth": {
- "description": "Authentication method of the HTTP requests.",
- "oneOf": [
- {
- "description": "Basic access authentication.",
- "properties": {
- "password": {
- "description": "The password of the authentication. This field is not returned by the API.",
- "example": "datadog-custom-destination-password",
- "type": "string",
- "writeOnly": true
- },
- "type": {
- "default": "basic",
- "description": "Type of the basic access authentication.",
- "enum": [
- "basic"
- ],
- "example": "basic",
- "type": "string",
- "x-enum-varnames": [
- "BASIC"
- ]
- },
- "username": {
- "description": "The username of the authentication. This field is not returned by the API.",
- "example": "datadog-custom-destination-username",
- "type": "string",
- "writeOnly": true
- }
- },
- "required": [
- "type",
- "username",
- "password"
- ],
- "type": "object"
- },
- {
- "description": "Custom header access authentication.",
- "properties": {
- "header_name": {
- "description": "The header name of the authentication.",
- "example": "CUSTOM-HEADER-NAME",
- "type": "string"
- },
- "header_value": {
- "description": "The header value of the authentication. This field is not returned by the API.",
- "example": "CUSTOM-HEADER-AUTHENTICATION-VALUE",
- "type": "string",
- "writeOnly": true
- },
- "type": {
- "default": "custom_header",
- "description": "Type of the custom header access authentication.",
- "enum": [
- "custom_header"
- ],
- "example": "custom_header",
- "type": "string",
- "x-enum-varnames": [
- "CUSTOM_HEADER"
- ]
- }
- },
- "required": [
- "type",
- "header_name",
- "header_value"
- ],
- "type": "object"
- }
- ]
- },
- "endpoint": {
- "description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
- "example": "https://example.com",
- "type": "string"
+ "end": {
+ "description": "End of the usage of the Custom Costs file.",
+ "example": 1706745600000,
+ "format": "double",
+ "type": "number"
},
- "type": {
- "default": "http",
- "description": "Type of the HTTP destination.",
- "enum": [
- "http"
- ],
- "example": "http",
- "type": "string",
- "x-enum-varnames": [
- "HTTP"
- ]
+ "start": {
+ "description": "Start of the usage of the Custom Costs file.",
+ "example": 1704067200000,
+ "format": "double",
+ "type": "number"
}
},
- "required": [
- "type",
- "endpoint",
- "auth"
- ],
"type": "object"
},
- {
- "description": "The Splunk HTTP Event Collector (HEC) destination.",
- "properties": {
- "access_token": {
- "description": "Access token of the Splunk HTTP Event Collector. This field is not returned by the API.",
- "example": "splunk_access_token",
- "type": "string",
- "writeOnly": true
- },
- "endpoint": {
- "description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
- "example": "https://example.com",
- "type": "string"
+ "content": {
+ "description": "Detail of the line items from the Custom Costs file.",
+ "items": {
+ "description": "Line item details from a Custom Costs file.",
+ "properties": {
+ "BilledCost": {
+ "description": "Total cost in the cost file.",
+ "example": 100.5,
+ "format": "double",
+ "type": "number"
+ },
+ "BillingCurrency": {
+ "description": "Currency used in the Custom Costs file.",
+ "example": "USD",
+ "type": "string"
+ },
+ "ChargeDescription": {
+ "description": "Description for the line item cost.",
+ "example": "Monthly usage charge for my service",
+ "type": "string"
+ },
+ "ChargePeriodEnd": {
+ "description": "End date of the usage charge.",
+ "example": "2023-02-28",
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
+ "type": "string"
+ },
+ "ChargePeriodStart": {
+ "description": "Start date of the usage charge.",
+ "example": "2023-02-01",
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
+ "type": "string"
+ },
+ "ProviderName": {
+ "description": "Name of the provider for the line item.",
+ "type": "string"
+ },
+ "Tags": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Additional tags for the line item.",
+ "type": "object"
+ }
},
- "type": {
- "default": "splunk_hec",
- "description": "Type of the Splunk HTTP Event Collector (HEC) destination.",
- "enum": [
- "splunk_hec"
- ],
- "example": "splunk_hec",
- "type": "string",
- "x-enum-varnames": [
- "SPLUNK_HEC"
- ]
- }
+ "type": "object"
},
- "required": [
- "type",
- "endpoint",
- "access_token"
- ],
- "type": "object"
+ "type": "array"
},
- {
- "description": "The Elasticsearch destination.",
+ "name": {
+ "description": "Name of the Custom Costs file.",
+ "example": "my_file.json",
+ "type": "string"
+ },
+ "provider_names": {
+ "description": "Providers contained in the Custom Costs file.",
+ "items": {
+ "description": "Name of a provider.",
+ "example": "my_provider",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "status": {
+ "description": "Status of the Custom Costs file.",
+ "example": "active",
+ "type": "string"
+ },
+ "uploaded_at": {
+ "description": "Timestamp in millisecond of the upload time of the Custom Costs file.",
+ "example": 1704067200000,
+ "format": "double",
+ "type": "number"
+ },
+ "uploaded_by": {
+ "description": "Metadata of the user that has uploaded the Custom Costs file.",
"properties": {
- "auth": {
- "description": "Basic access authentication.",
- "properties": {
- "password": {
- "description": "The password of the authentication. This field is not returned by the API.",
- "example": "datadog-custom-destination-password",
- "type": "string",
- "writeOnly": true
- },
- "username": {
- "description": "The username of the authentication. This field is not returned by the API.",
- "example": "datadog-custom-destination-username",
- "type": "string",
- "writeOnly": true
- }
- },
- "required": [
- "username",
- "password"
- ],
- "type": "object"
- },
- "endpoint": {
- "description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
- "example": "https://example.com",
+ "email": {
+ "description": "The name of the Custom Costs file.",
+ "example": "email.test@datadohq.com",
"type": "string"
},
- "index_name": {
- "description": "Name of the Elasticsearch index (must follow [Elasticsearch's criteria](https://www.elastic.co/guide/en/elasticsearch/reference/8.11/indices-create-index.html#indices-create-api-path-params)).",
- "example": "nginx-logs",
+ "icon": {
+ "description": "The name of the Custom Costs file.",
+ "example": "icon.png",
"type": "string"
},
- "index_rotation": {
- "description": "Date pattern with US locale and UTC timezone to be appended to the index name after adding `-`\n(that is, `${index_name}-${indexPattern}`).\nYou can customize the index rotation naming pattern by choosing one of these options:\n- Hourly: `yyyy-MM-dd-HH` (as an example, it would render: `2022-10-19-09`)\n- Daily: `yyyy-MM-dd` (as an example, it would render: `2022-10-19`)\n- Weekly: `yyyy-'W'ww` (as an example, it would render: `2022-W42`)\n- Monthly: `yyyy-MM` (as an example, it would render: `2022-10`)\n\nIf this field is missing or is blank, it means that the index name will always be the same\n(that is, no rotation).",
- "example": "yyyy-MM-dd",
+ "name": {
+ "description": "Name of the user.",
+ "example": "Test User",
"type": "string"
- },
- "type": {
- "default": "elasticsearch",
- "description": "Type of the Elasticsearch destination.",
- "enum": [
- "elasticsearch"
- ],
- "example": "elasticsearch",
- "type": "string",
- "x-enum-varnames": [
- "ELASTICSEARCH"
- ]
}
},
- "required": [
- "type",
- "endpoint",
- "auth",
- "index_name"
- ],
"type": "object"
}
- ]
+ },
+ "type": "object"
},
- "name": {
- "description": "The custom destination name.",
- "example": "Nginx logs",
+ "id": {
+ "description": "ID of the Custom Costs metadata.",
"type": "string"
},
- "query": {
- "default": "",
- "description": "The custom destination query and filter. Logs matching this query are forwarded to the destination.",
- "example": "source:nginx",
+ "type": {
+ "description": "Type of the Custom Costs file metadata.",
"type": "string"
}
},
- "required": [
- "name",
- "forwarder_destination"
- ],
"type": "object"
},
- "type": {
- "default": "custom_destination",
- "description": "The type of the resource. The value should always be `custom_destination`.",
- "enum": [
- "custom_destination"
- ],
- "example": "custom_destination",
- "type": "string",
- "x-enum-varnames": [
- "CUSTOM_DESTINATION"
- ]
+ "meta": {
+ "description": "Meta for the response from the Get Custom Costs endpoints.",
+ "properties": {
+ "version": {
+ "description": "Version of Custom Costs file",
+ "type": "string"
+ }
+ },
+ "type": "object"
}
},
- "required": [
- "type",
- "attributes"
- ],
"type": "object"
},
- "CustomDestinationElasticsearchDestinationAuth": {
- "description": "Basic access authentication.",
+ "CustomCostsFileLineItem": {
+ "description": "Line item details from a Custom Costs file.",
"properties": {
- "password": {
- "description": "The password of the authentication. This field is not returned by the API.",
- "example": "datadog-custom-destination-password",
- "type": "string",
- "writeOnly": true
+ "BilledCost": {
+ "description": "Total cost in the cost file.",
+ "example": 100.5,
+ "format": "double",
+ "type": "number"
},
- "username": {
- "description": "The username of the authentication. This field is not returned by the API.",
- "example": "datadog-custom-destination-username",
- "type": "string",
- "writeOnly": true
- }
- },
- "required": [
- "username",
- "password"
- ],
- "type": "object"
- },
- "CustomDestinationForwardDestination": {
- "description": "A custom destination's location to forward logs.",
- "oneOf": [
- {
- "description": "The HTTP destination.",
- "properties": {
- "auth": {
- "description": "Authentication method of the HTTP requests.",
- "oneOf": [
- {
- "description": "Basic access authentication.",
- "properties": {
- "password": {
- "description": "The password of the authentication. This field is not returned by the API.",
- "example": "datadog-custom-destination-password",
- "type": "string",
- "writeOnly": true
- },
- "type": {
- "default": "basic",
- "description": "Type of the basic access authentication.",
- "enum": [
- "basic"
- ],
- "example": "basic",
- "type": "string",
- "x-enum-varnames": [
- "BASIC"
- ]
+ "BillingCurrency": {
+ "description": "Currency used in the Custom Costs file.",
+ "example": "USD",
+ "type": "string"
+ },
+ "ChargeDescription": {
+ "description": "Description for the line item cost.",
+ "example": "Monthly usage charge for my service",
+ "type": "string"
+ },
+ "ChargePeriodEnd": {
+ "description": "End date of the usage charge.",
+ "example": "2023-02-28",
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
+ "type": "string"
+ },
+ "ChargePeriodStart": {
+ "description": "Start date of the usage charge.",
+ "example": "2023-02-01",
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
+ "type": "string"
+ },
+ "ProviderName": {
+ "description": "Name of the provider for the line item.",
+ "type": "string"
+ },
+ "Tags": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Additional tags for the line item.",
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "CustomCostsFileListResponse": {
+ "description": "Response for List Custom Costs files.",
+ "properties": {
+ "data": {
+ "description": "List of Custom Costs files.",
+ "items": {
+ "description": "JSON API format for a Custom Costs file.",
+ "properties": {
+ "attributes": {
+ "description": "Schema of a Custom Costs metadata.",
+ "properties": {
+ "billed_cost": {
+ "description": "Total cost in the cost file.",
+ "example": 100.5,
+ "format": "double",
+ "type": "number"
+ },
+ "billing_currency": {
+ "description": "Currency used in the Custom Costs file.",
+ "example": "USD",
+ "type": "string"
+ },
+ "charge_period": {
+ "description": "Usage charge period of a Custom Costs file.",
+ "properties": {
+ "end": {
+ "description": "End of the usage of the Custom Costs file.",
+ "example": 1706745600000,
+ "format": "double",
+ "type": "number"
+ },
+ "start": {
+ "description": "Start of the usage of the Custom Costs file.",
+ "example": 1704067200000,
+ "format": "double",
+ "type": "number"
+ }
},
- "username": {
- "description": "The username of the authentication. This field is not returned by the API.",
- "example": "datadog-custom-destination-username",
- "type": "string",
- "writeOnly": true
- }
+ "type": "object"
},
- "required": [
- "type",
- "username",
- "password"
- ],
- "type": "object"
- },
- {
- "description": "Custom header access authentication.",
- "properties": {
- "header_name": {
- "description": "The header name of the authentication.",
- "example": "CUSTOM-HEADER-NAME",
+ "name": {
+ "description": "Name of the Custom Costs file.",
+ "example": "my_file.json",
+ "type": "string"
+ },
+ "provider_names": {
+ "description": "Providers contained in the Custom Costs file.",
+ "items": {
+ "description": "Name of the provider.",
+ "example": "my_provider",
"type": "string"
},
- "header_value": {
- "description": "The header value of the authentication. This field is not returned by the API.",
- "example": "CUSTOM-HEADER-AUTHENTICATION-VALUE",
- "type": "string",
- "writeOnly": true
- },
- "type": {
- "default": "custom_header",
- "description": "Type of the custom header access authentication.",
- "enum": [
- "custom_header"
- ],
- "example": "custom_header",
- "type": "string",
- "x-enum-varnames": [
- "CUSTOM_HEADER"
- ]
- }
+ "type": "array"
},
- "required": [
- "type",
- "header_name",
- "header_value"
- ],
- "type": "object"
- }
- ]
- },
- "endpoint": {
- "description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
- "example": "https://example.com",
- "type": "string"
- },
- "type": {
- "default": "http",
- "description": "Type of the HTTP destination.",
- "enum": [
- "http"
- ],
- "example": "http",
- "type": "string",
- "x-enum-varnames": [
- "HTTP"
- ]
- }
- },
- "required": [
- "type",
- "endpoint",
- "auth"
- ],
- "type": "object"
- },
- {
- "description": "The Splunk HTTP Event Collector (HEC) destination.",
- "properties": {
- "access_token": {
- "description": "Access token of the Splunk HTTP Event Collector. This field is not returned by the API.",
- "example": "splunk_access_token",
- "type": "string",
- "writeOnly": true
- },
- "endpoint": {
- "description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
- "example": "https://example.com",
- "type": "string"
+ "status": {
+ "description": "Status of the Custom Costs file.",
+ "example": "active",
+ "type": "string"
+ },
+ "uploaded_at": {
+ "description": "Timestamp, in millisecond, of the upload time of the Custom Costs file.",
+ "example": 1704067200000,
+ "format": "double",
+ "type": "number"
+ },
+ "uploaded_by": {
+ "description": "Metadata of the user that has uploaded the Custom Costs file.",
+ "properties": {
+ "email": {
+ "description": "The name of the Custom Costs file.",
+ "example": "email.test@datadohq.com",
+ "type": "string"
+ },
+ "icon": {
+ "description": "The name of the Custom Costs file.",
+ "example": "icon.png",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the user.",
+ "example": "Test User",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the Custom Costs metadata.",
+ "type": "string"
+ },
+ "type": {
+ "description": "Type of the Custom Costs file metadata.",
+ "type": "string"
+ }
},
- "type": {
- "default": "splunk_hec",
- "description": "Type of the Splunk HTTP Event Collector (HEC) destination.",
- "enum": [
- "splunk_hec"
- ],
- "example": "splunk_hec",
- "type": "string",
- "x-enum-varnames": [
- "SPLUNK_HEC"
- ]
- }
+ "type": "object"
},
- "required": [
- "type",
- "endpoint",
- "access_token"
- ],
- "type": "object"
+ "type": "array"
},
- {
- "description": "The Elasticsearch destination.",
+ "meta": {
+ "description": "Meta for the response from the List Custom Costs endpoints.",
"properties": {
- "auth": {
- "description": "Basic access authentication.",
- "properties": {
- "password": {
- "description": "The password of the authentication. This field is not returned by the API.",
- "example": "datadog-custom-destination-password",
- "type": "string",
- "writeOnly": true
- },
- "username": {
- "description": "The username of the authentication. This field is not returned by the API.",
- "example": "datadog-custom-destination-username",
- "type": "string",
- "writeOnly": true
- }
- },
- "required": [
- "username",
- "password"
- ],
- "type": "object"
- },
- "endpoint": {
- "description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
- "example": "https://example.com",
- "type": "string"
- },
- "index_name": {
- "description": "Name of the Elasticsearch index (must follow [Elasticsearch's criteria](https://www.elastic.co/guide/en/elasticsearch/reference/8.11/indices-create-index.html#indices-create-api-path-params)).",
- "example": "nginx-logs",
- "type": "string"
+ "total_filtered_count": {
+ "description": "Number of Custom Costs files returned by the List Custom Costs endpoint",
+ "format": "int64",
+ "type": "integer"
},
- "index_rotation": {
- "description": "Date pattern with US locale and UTC timezone to be appended to the index name after adding `-`\n(that is, `${index_name}-${indexPattern}`).\nYou can customize the index rotation naming pattern by choosing one of these options:\n- Hourly: `yyyy-MM-dd-HH` (as an example, it would render: `2022-10-19-09`)\n- Daily: `yyyy-MM-dd` (as an example, it would render: `2022-10-19`)\n- Weekly: `yyyy-'W'ww` (as an example, it would render: `2022-W42`)\n- Monthly: `yyyy-MM` (as an example, it would render: `2022-10`)\n\nIf this field is missing or is blank, it means that the index name will always be the same\n(that is, no rotation).",
- "example": "yyyy-MM-dd",
+ "version": {
+ "description": "Version of Custom Costs file",
"type": "string"
- },
- "type": {
- "default": "elasticsearch",
- "description": "Type of the Elasticsearch destination.",
- "enum": [
- "elasticsearch"
- ],
- "example": "elasticsearch",
- "type": "string",
- "x-enum-varnames": [
- "ELASTICSEARCH"
- ]
}
},
- "required": [
- "type",
- "endpoint",
- "auth",
- "index_name"
- ],
"type": "object"
}
- ]
+ },
+ "type": "object"
},
- "CustomDestinationForwardDestinationElasticsearch": {
- "description": "The Elasticsearch destination.",
+ "CustomCostsFileMetadata": {
+ "description": "Schema of a Custom Costs metadata.",
"properties": {
- "auth": {
- "description": "Basic access authentication.",
+ "billed_cost": {
+ "description": "Total cost in the cost file.",
+ "example": 100.5,
+ "format": "double",
+ "type": "number"
+ },
+ "billing_currency": {
+ "description": "Currency used in the Custom Costs file.",
+ "example": "USD",
+ "type": "string"
+ },
+ "charge_period": {
+ "description": "Usage charge period of a Custom Costs file.",
"properties": {
- "password": {
- "description": "The password of the authentication. This field is not returned by the API.",
- "example": "datadog-custom-destination-password",
- "type": "string",
- "writeOnly": true
+ "end": {
+ "description": "End of the usage of the Custom Costs file.",
+ "example": 1706745600000,
+ "format": "double",
+ "type": "number"
},
- "username": {
- "description": "The username of the authentication. This field is not returned by the API.",
- "example": "datadog-custom-destination-username",
- "type": "string",
- "writeOnly": true
+ "start": {
+ "description": "Start of the usage of the Custom Costs file.",
+ "example": 1704067200000,
+ "format": "double",
+ "type": "number"
}
},
- "required": [
- "username",
- "password"
- ],
"type": "object"
},
- "endpoint": {
- "description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
- "example": "https://example.com",
+ "name": {
+ "description": "Name of the Custom Costs file.",
+ "example": "my_file.json",
"type": "string"
},
- "index_name": {
- "description": "Name of the Elasticsearch index (must follow [Elasticsearch's criteria](https://www.elastic.co/guide/en/elasticsearch/reference/8.11/indices-create-index.html#indices-create-api-path-params)).",
- "example": "nginx-logs",
- "type": "string"
+ "provider_names": {
+ "description": "Providers contained in the Custom Costs file.",
+ "items": {
+ "description": "Name of the provider.",
+ "example": "my_provider",
+ "type": "string"
+ },
+ "type": "array"
},
- "index_rotation": {
- "description": "Date pattern with US locale and UTC timezone to be appended to the index name after adding `-`\n(that is, `${index_name}-${indexPattern}`).\nYou can customize the index rotation naming pattern by choosing one of these options:\n- Hourly: `yyyy-MM-dd-HH` (as an example, it would render: `2022-10-19-09`)\n- Daily: `yyyy-MM-dd` (as an example, it would render: `2022-10-19`)\n- Weekly: `yyyy-'W'ww` (as an example, it would render: `2022-W42`)\n- Monthly: `yyyy-MM` (as an example, it would render: `2022-10`)\n\nIf this field is missing or is blank, it means that the index name will always be the same\n(that is, no rotation).",
- "example": "yyyy-MM-dd",
+ "status": {
+ "description": "Status of the Custom Costs file.",
+ "example": "active",
"type": "string"
},
- "type": {
- "default": "elasticsearch",
- "description": "Type of the Elasticsearch destination.",
- "enum": [
- "elasticsearch"
- ],
- "example": "elasticsearch",
- "type": "string",
- "x-enum-varnames": [
- "ELASTICSEARCH"
- ]
+ "uploaded_at": {
+ "description": "Timestamp, in millisecond, of the upload time of the Custom Costs file.",
+ "example": 1704067200000,
+ "format": "double",
+ "type": "number"
+ },
+ "uploaded_by": {
+ "description": "Metadata of the user that has uploaded the Custom Costs file.",
+ "properties": {
+ "email": {
+ "description": "The name of the Custom Costs file.",
+ "example": "email.test@datadohq.com",
+ "type": "string"
+ },
+ "icon": {
+ "description": "The name of the Custom Costs file.",
+ "example": "icon.png",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the user.",
+ "example": "Test User",
+ "type": "string"
+ }
+ },
+ "type": "object"
}
},
- "required": [
- "type",
- "endpoint",
- "auth",
- "index_name"
- ],
"type": "object"
},
- "CustomDestinationForwardDestinationElasticsearchType": {
- "default": "elasticsearch",
- "description": "Type of the Elasticsearch destination.",
- "enum": [
- "elasticsearch"
- ],
- "example": "elasticsearch",
- "type": "string",
- "x-enum-varnames": [
- "ELASTICSEARCH"
- ]
- },
- "CustomDestinationForwardDestinationHttp": {
- "description": "The HTTP destination.",
+ "CustomCostsFileMetadataHighLevel": {
+ "description": "JSON API format for a Custom Costs file.",
"properties": {
- "auth": {
- "description": "Authentication method of the HTTP requests.",
- "oneOf": [
- {
- "description": "Basic access authentication.",
+ "attributes": {
+ "description": "Schema of a Custom Costs metadata.",
+ "properties": {
+ "billed_cost": {
+ "description": "Total cost in the cost file.",
+ "example": 100.5,
+ "format": "double",
+ "type": "number"
+ },
+ "billing_currency": {
+ "description": "Currency used in the Custom Costs file.",
+ "example": "USD",
+ "type": "string"
+ },
+ "charge_period": {
+ "description": "Usage charge period of a Custom Costs file.",
"properties": {
- "password": {
- "description": "The password of the authentication. This field is not returned by the API.",
- "example": "datadog-custom-destination-password",
- "type": "string",
- "writeOnly": true
- },
- "type": {
- "default": "basic",
- "description": "Type of the basic access authentication.",
- "enum": [
- "basic"
- ],
- "example": "basic",
- "type": "string",
- "x-enum-varnames": [
- "BASIC"
- ]
+ "end": {
+ "description": "End of the usage of the Custom Costs file.",
+ "example": 1706745600000,
+ "format": "double",
+ "type": "number"
},
- "username": {
- "description": "The username of the authentication. This field is not returned by the API.",
- "example": "datadog-custom-destination-username",
- "type": "string",
- "writeOnly": true
+ "start": {
+ "description": "Start of the usage of the Custom Costs file.",
+ "example": 1704067200000,
+ "format": "double",
+ "type": "number"
}
},
- "required": [
- "type",
- "username",
- "password"
- ],
"type": "object"
},
- {
- "description": "Custom header access authentication.",
+ "name": {
+ "description": "Name of the Custom Costs file.",
+ "example": "my_file.json",
+ "type": "string"
+ },
+ "provider_names": {
+ "description": "Providers contained in the Custom Costs file.",
+ "items": {
+ "description": "Name of the provider.",
+ "example": "my_provider",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "status": {
+ "description": "Status of the Custom Costs file.",
+ "example": "active",
+ "type": "string"
+ },
+ "uploaded_at": {
+ "description": "Timestamp, in millisecond, of the upload time of the Custom Costs file.",
+ "example": 1704067200000,
+ "format": "double",
+ "type": "number"
+ },
+ "uploaded_by": {
+ "description": "Metadata of the user that has uploaded the Custom Costs file.",
"properties": {
- "header_name": {
- "description": "The header name of the authentication.",
- "example": "CUSTOM-HEADER-NAME",
+ "email": {
+ "description": "The name of the Custom Costs file.",
+ "example": "email.test@datadohq.com",
"type": "string"
},
- "header_value": {
- "description": "The header value of the authentication. This field is not returned by the API.",
- "example": "CUSTOM-HEADER-AUTHENTICATION-VALUE",
- "type": "string",
- "writeOnly": true
+ "icon": {
+ "description": "The name of the Custom Costs file.",
+ "example": "icon.png",
+ "type": "string"
},
- "type": {
- "default": "custom_header",
- "description": "Type of the custom header access authentication.",
- "enum": [
- "custom_header"
- ],
- "example": "custom_header",
- "type": "string",
- "x-enum-varnames": [
- "CUSTOM_HEADER"
- ]
+ "name": {
+ "description": "Name of the user.",
+ "example": "Test User",
+ "type": "string"
}
},
- "required": [
- "type",
- "header_name",
- "header_value"
- ],
"type": "object"
}
- ]
+ },
+ "type": "object"
},
- "endpoint": {
- "description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
- "example": "https://example.com",
+ "id": {
+ "description": "ID of the Custom Costs metadata.",
"type": "string"
},
"type": {
- "default": "http",
- "description": "Type of the HTTP destination.",
- "enum": [
- "http"
- ],
- "example": "http",
- "type": "string",
- "x-enum-varnames": [
- "HTTP"
- ]
+ "description": "Type of the Custom Costs file metadata.",
+ "type": "string"
}
},
- "required": [
- "type",
- "endpoint",
- "auth"
- ],
"type": "object"
},
- "CustomDestinationForwardDestinationHttpType": {
- "default": "http",
- "description": "Type of the HTTP destination.",
- "enum": [
- "http"
- ],
- "example": "http",
- "type": "string",
- "x-enum-varnames": [
- "HTTP"
- ]
- },
- "CustomDestinationForwardDestinationSplunk": {
- "description": "The Splunk HTTP Event Collector (HEC) destination.",
+ "CustomCostsFileMetadataWithContent": {
+ "description": "Schema of a cost file's metadata.",
"properties": {
- "access_token": {
- "description": "Access token of the Splunk HTTP Event Collector. This field is not returned by the API.",
- "example": "splunk_access_token",
- "type": "string",
- "writeOnly": true
+ "billed_cost": {
+ "description": "Total cost in the cost file.",
+ "example": 100.5,
+ "format": "double",
+ "type": "number"
},
- "endpoint": {
- "description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
- "example": "https://example.com",
+ "billing_currency": {
+ "description": "Currency used in the Custom Costs file.",
+ "example": "USD",
"type": "string"
},
- "type": {
- "default": "splunk_hec",
- "description": "Type of the Splunk HTTP Event Collector (HEC) destination.",
- "enum": [
- "splunk_hec"
- ],
- "example": "splunk_hec",
- "type": "string",
- "x-enum-varnames": [
- "SPLUNK_HEC"
- ]
- }
- },
- "required": [
- "type",
- "endpoint",
- "access_token"
- ],
- "type": "object"
- },
- "CustomDestinationForwardDestinationSplunkType": {
- "default": "splunk_hec",
- "description": "Type of the Splunk HTTP Event Collector (HEC) destination.",
- "enum": [
- "splunk_hec"
- ],
- "example": "splunk_hec",
- "type": "string",
- "x-enum-varnames": [
- "SPLUNK_HEC"
- ]
- },
- "CustomDestinationHttpDestinationAuth": {
- "description": "Authentication method of the HTTP requests.",
- "oneOf": [
- {
- "description": "Basic access authentication.",
+ "charge_period": {
+ "description": "Usage charge period of a Custom Costs file.",
"properties": {
- "password": {
- "description": "The password of the authentication. This field is not returned by the API.",
- "example": "datadog-custom-destination-password",
- "type": "string",
- "writeOnly": true
- },
- "type": {
- "default": "basic",
- "description": "Type of the basic access authentication.",
- "enum": [
- "basic"
- ],
- "example": "basic",
- "type": "string",
- "x-enum-varnames": [
- "BASIC"
- ]
+ "end": {
+ "description": "End of the usage of the Custom Costs file.",
+ "example": 1706745600000,
+ "format": "double",
+ "type": "number"
},
- "username": {
- "description": "The username of the authentication. This field is not returned by the API.",
- "example": "datadog-custom-destination-username",
- "type": "string",
- "writeOnly": true
+ "start": {
+ "description": "Start of the usage of the Custom Costs file.",
+ "example": 1704067200000,
+ "format": "double",
+ "type": "number"
}
},
- "required": [
- "type",
- "username",
- "password"
- ],
"type": "object"
},
- {
- "description": "Custom header access authentication.",
+ "content": {
+ "description": "Detail of the line items from the Custom Costs file.",
+ "items": {
+ "description": "Line item details from a Custom Costs file.",
+ "properties": {
+ "BilledCost": {
+ "description": "Total cost in the cost file.",
+ "example": 100.5,
+ "format": "double",
+ "type": "number"
+ },
+ "BillingCurrency": {
+ "description": "Currency used in the Custom Costs file.",
+ "example": "USD",
+ "type": "string"
+ },
+ "ChargeDescription": {
+ "description": "Description for the line item cost.",
+ "example": "Monthly usage charge for my service",
+ "type": "string"
+ },
+ "ChargePeriodEnd": {
+ "description": "End date of the usage charge.",
+ "example": "2023-02-28",
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
+ "type": "string"
+ },
+ "ChargePeriodStart": {
+ "description": "Start date of the usage charge.",
+ "example": "2023-02-01",
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
+ "type": "string"
+ },
+ "ProviderName": {
+ "description": "Name of the provider for the line item.",
+ "type": "string"
+ },
+ "Tags": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Additional tags for the line item.",
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the Custom Costs file.",
+ "example": "my_file.json",
+ "type": "string"
+ },
+ "provider_names": {
+ "description": "Providers contained in the Custom Costs file.",
+ "items": {
+ "description": "Name of a provider.",
+ "example": "my_provider",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "status": {
+ "description": "Status of the Custom Costs file.",
+ "example": "active",
+ "type": "string"
+ },
+ "uploaded_at": {
+ "description": "Timestamp in millisecond of the upload time of the Custom Costs file.",
+ "example": 1704067200000,
+ "format": "double",
+ "type": "number"
+ },
+ "uploaded_by": {
+ "description": "Metadata of the user that has uploaded the Custom Costs file.",
"properties": {
- "header_name": {
- "description": "The header name of the authentication.",
- "example": "CUSTOM-HEADER-NAME",
+ "email": {
+ "description": "The name of the Custom Costs file.",
+ "example": "email.test@datadohq.com",
"type": "string"
},
- "header_value": {
- "description": "The header value of the authentication. This field is not returned by the API.",
- "example": "CUSTOM-HEADER-AUTHENTICATION-VALUE",
- "type": "string",
- "writeOnly": true
+ "icon": {
+ "description": "The name of the Custom Costs file.",
+ "example": "icon.png",
+ "type": "string"
},
- "type": {
- "default": "custom_header",
- "description": "Type of the custom header access authentication.",
- "enum": [
- "custom_header"
- ],
- "example": "custom_header",
- "type": "string",
- "x-enum-varnames": [
- "CUSTOM_HEADER"
- ]
+ "name": {
+ "description": "Name of the user.",
+ "example": "Test User",
+ "type": "string"
}
},
- "required": [
- "type",
- "header_name",
- "header_value"
- ],
"type": "object"
}
- ]
- },
- "CustomDestinationHttpDestinationAuthBasic": {
- "description": "Basic access authentication.",
- "properties": {
- "password": {
- "description": "The password of the authentication. This field is not returned by the API.",
- "example": "datadog-custom-destination-password",
- "type": "string",
- "writeOnly": true
- },
- "type": {
- "default": "basic",
- "description": "Type of the basic access authentication.",
- "enum": [
- "basic"
- ],
- "example": "basic",
- "type": "string",
- "x-enum-varnames": [
- "BASIC"
- ]
- },
- "username": {
- "description": "The username of the authentication. This field is not returned by the API.",
- "example": "datadog-custom-destination-username",
- "type": "string",
- "writeOnly": true
- }
},
- "required": [
- "type",
- "username",
- "password"
- ],
"type": "object"
},
- "CustomDestinationHttpDestinationAuthBasicType": {
- "default": "basic",
- "description": "Type of the basic access authentication.",
- "enum": [
- "basic"
- ],
- "example": "basic",
- "type": "string",
- "x-enum-varnames": [
- "BASIC"
- ]
- },
- "CustomDestinationHttpDestinationAuthCustomHeader": {
- "description": "Custom header access authentication.",
+ "CustomCostsFileMetadataWithContentHighLevel": {
+ "description": "JSON API format of for a Custom Costs file with content.",
"properties": {
- "header_name": {
- "description": "The header name of the authentication.",
- "example": "CUSTOM-HEADER-NAME",
- "type": "string"
+ "attributes": {
+ "description": "Schema of a cost file's metadata.",
+ "properties": {
+ "billed_cost": {
+ "description": "Total cost in the cost file.",
+ "example": 100.5,
+ "format": "double",
+ "type": "number"
+ },
+ "billing_currency": {
+ "description": "Currency used in the Custom Costs file.",
+ "example": "USD",
+ "type": "string"
+ },
+ "charge_period": {
+ "description": "Usage charge period of a Custom Costs file.",
+ "properties": {
+ "end": {
+ "description": "End of the usage of the Custom Costs file.",
+ "example": 1706745600000,
+ "format": "double",
+ "type": "number"
+ },
+ "start": {
+ "description": "Start of the usage of the Custom Costs file.",
+ "example": 1704067200000,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "content": {
+ "description": "Detail of the line items from the Custom Costs file.",
+ "items": {
+ "description": "Line item details from a Custom Costs file.",
+ "properties": {
+ "BilledCost": {
+ "description": "Total cost in the cost file.",
+ "example": 100.5,
+ "format": "double",
+ "type": "number"
+ },
+ "BillingCurrency": {
+ "description": "Currency used in the Custom Costs file.",
+ "example": "USD",
+ "type": "string"
+ },
+ "ChargeDescription": {
+ "description": "Description for the line item cost.",
+ "example": "Monthly usage charge for my service",
+ "type": "string"
+ },
+ "ChargePeriodEnd": {
+ "description": "End date of the usage charge.",
+ "example": "2023-02-28",
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
+ "type": "string"
+ },
+ "ChargePeriodStart": {
+ "description": "Start date of the usage charge.",
+ "example": "2023-02-01",
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
+ "type": "string"
+ },
+ "ProviderName": {
+ "description": "Name of the provider for the line item.",
+ "type": "string"
+ },
+ "Tags": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Additional tags for the line item.",
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the Custom Costs file.",
+ "example": "my_file.json",
+ "type": "string"
+ },
+ "provider_names": {
+ "description": "Providers contained in the Custom Costs file.",
+ "items": {
+ "description": "Name of a provider.",
+ "example": "my_provider",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "status": {
+ "description": "Status of the Custom Costs file.",
+ "example": "active",
+ "type": "string"
+ },
+ "uploaded_at": {
+ "description": "Timestamp in millisecond of the upload time of the Custom Costs file.",
+ "example": 1704067200000,
+ "format": "double",
+ "type": "number"
+ },
+ "uploaded_by": {
+ "description": "Metadata of the user that has uploaded the Custom Costs file.",
+ "properties": {
+ "email": {
+ "description": "The name of the Custom Costs file.",
+ "example": "email.test@datadohq.com",
+ "type": "string"
+ },
+ "icon": {
+ "description": "The name of the Custom Costs file.",
+ "example": "icon.png",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the user.",
+ "example": "Test User",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
},
- "header_value": {
- "description": "The header value of the authentication. This field is not returned by the API.",
- "example": "CUSTOM-HEADER-AUTHENTICATION-VALUE",
- "type": "string",
- "writeOnly": true
+ "id": {
+ "description": "ID of the Custom Costs metadata.",
+ "type": "string"
},
"type": {
- "default": "custom_header",
- "description": "Type of the custom header access authentication.",
- "enum": [
- "custom_header"
- ],
- "example": "custom_header",
- "type": "string",
- "x-enum-varnames": [
- "CUSTOM_HEADER"
- ]
+ "description": "Type of the Custom Costs file metadata.",
+ "type": "string"
}
},
- "required": [
- "type",
- "header_name",
- "header_value"
- ],
"type": "object"
},
- "CustomDestinationHttpDestinationAuthCustomHeaderType": {
- "default": "custom_header",
- "description": "Type of the custom header access authentication.",
- "enum": [
- "custom_header"
- ],
- "example": "custom_header",
- "type": "string",
- "x-enum-varnames": [
- "CUSTOM_HEADER"
+ "CustomCostsFileUploadRequest": {
+ "description": "Request for uploading a Custom Costs file.",
+ "items": {
+ "description": "Line item details from a Custom Costs file.",
+ "properties": {
+ "BilledCost": {
+ "description": "Total cost in the cost file.",
+ "example": 100.5,
+ "format": "double",
+ "type": "number"
+ },
+ "BillingCurrency": {
+ "description": "Currency used in the Custom Costs file.",
+ "example": "USD",
+ "type": "string"
+ },
+ "ChargeDescription": {
+ "description": "Description for the line item cost.",
+ "example": "Monthly usage charge for my service",
+ "type": "string"
+ },
+ "ChargePeriodEnd": {
+ "description": "End date of the usage charge.",
+ "example": "2023-02-28",
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
+ "type": "string"
+ },
+ "ChargePeriodStart": {
+ "description": "Start date of the usage charge.",
+ "example": "2023-02-01",
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
+ "type": "string"
+ },
+ "ProviderName": {
+ "description": "Name of the provider for the line item.",
+ "type": "string"
+ },
+ "Tags": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Additional tags for the line item.",
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "CustomCostsFileUploadResponse": {
+ "description": "Response for Uploaded Custom Costs files.",
+ "properties": {
+ "data": {
+ "description": "JSON API format for a Custom Costs file.",
+ "properties": {
+ "attributes": {
+ "description": "Schema of a Custom Costs metadata.",
+ "properties": {
+ "billed_cost": {
+ "description": "Total cost in the cost file.",
+ "example": 100.5,
+ "format": "double",
+ "type": "number"
+ },
+ "billing_currency": {
+ "description": "Currency used in the Custom Costs file.",
+ "example": "USD",
+ "type": "string"
+ },
+ "charge_period": {
+ "description": "Usage charge period of a Custom Costs file.",
+ "properties": {
+ "end": {
+ "description": "End of the usage of the Custom Costs file.",
+ "example": 1706745600000,
+ "format": "double",
+ "type": "number"
+ },
+ "start": {
+ "description": "Start of the usage of the Custom Costs file.",
+ "example": 1704067200000,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "name": {
+ "description": "Name of the Custom Costs file.",
+ "example": "my_file.json",
+ "type": "string"
+ },
+ "provider_names": {
+ "description": "Providers contained in the Custom Costs file.",
+ "items": {
+ "description": "Name of the provider.",
+ "example": "my_provider",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "status": {
+ "description": "Status of the Custom Costs file.",
+ "example": "active",
+ "type": "string"
+ },
+ "uploaded_at": {
+ "description": "Timestamp, in millisecond, of the upload time of the Custom Costs file.",
+ "example": 1704067200000,
+ "format": "double",
+ "type": "number"
+ },
+ "uploaded_by": {
+ "description": "Metadata of the user that has uploaded the Custom Costs file.",
+ "properties": {
+ "email": {
+ "description": "The name of the Custom Costs file.",
+ "example": "email.test@datadohq.com",
+ "type": "string"
+ },
+ "icon": {
+ "description": "The name of the Custom Costs file.",
+ "example": "icon.png",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the user.",
+ "example": "Test User",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the Custom Costs metadata.",
+ "type": "string"
+ },
+ "type": {
+ "description": "Type of the Custom Costs file metadata.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "meta": {
+ "description": "Meta for the response from the Upload Custom Costs endpoints.",
+ "properties": {
+ "version": {
+ "description": "Version of Custom Costs file",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "CustomCostsFileUsageChargePeriod": {
+ "description": "Usage charge period of a Custom Costs file.",
+ "properties": {
+ "end": {
+ "description": "End of the usage of the Custom Costs file.",
+ "example": 1706745600000,
+ "format": "double",
+ "type": "number"
+ },
+ "start": {
+ "description": "Start of the usage of the Custom Costs file.",
+ "example": 1704067200000,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "CustomCostsUser": {
+ "description": "Metadata of the user that has uploaded the Custom Costs file.",
+ "properties": {
+ "email": {
+ "description": "The name of the Custom Costs file.",
+ "example": "email.test@datadohq.com",
+ "type": "string"
+ },
+ "icon": {
+ "description": "The name of the Custom Costs file.",
+ "example": "icon.png",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the user.",
+ "example": "Test User",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "CustomDestinationAttributeTagsRestrictionListType": {
+ "default": "ALLOW_LIST",
+ "description": "How `forward_tags_restriction_list` parameter should be interpreted.\nIf `ALLOW_LIST`, then only tags whose keys on the forwarded logs match the ones on the restriction list\nare forwarded.\n\n`BLOCK_LIST` works the opposite way. It does not forward the tags matching the ones on the list.",
+ "enum": [
+ "ALLOW_LIST",
+ "BLOCK_LIST"
+ ],
+ "example": "ALLOW_LIST",
+ "type": "string",
+ "x-enum-varnames": [
+ "ALLOW_LIST",
+ "BLOCK_LIST"
]
},
- "CustomDestinationResponse": {
+ "CustomDestinationCreateRequest": {
"description": "The custom destination.",
"properties": {
"data": {
@@ -47027,6 +48527,12 @@
{
"description": "Basic access authentication.",
"properties": {
+ "password": {
+ "description": "The password of the authentication. This field is not returned by the API.",
+ "example": "datadog-custom-destination-password",
+ "type": "string",
+ "writeOnly": true
+ },
"type": {
"default": "basic",
"description": "Type of the basic access authentication.",
@@ -47038,10 +48544,18 @@
"x-enum-varnames": [
"BASIC"
]
+ },
+ "username": {
+ "description": "The username of the authentication. This field is not returned by the API.",
+ "example": "datadog-custom-destination-username",
+ "type": "string",
+ "writeOnly": true
}
},
"required": [
- "type"
+ "type",
+ "username",
+ "password"
],
"type": "object"
},
@@ -47053,6 +48567,12 @@
"example": "CUSTOM-HEADER-NAME",
"type": "string"
},
+ "header_value": {
+ "description": "The header value of the authentication. This field is not returned by the API.",
+ "example": "CUSTOM-HEADER-AUTHENTICATION-VALUE",
+ "type": "string",
+ "writeOnly": true
+ },
"type": {
"default": "custom_header",
"description": "Type of the custom header access authentication.",
@@ -47068,7 +48588,8 @@
},
"required": [
"type",
- "header_name"
+ "header_name",
+ "header_value"
],
"type": "object"
}
@@ -47102,6 +48623,12 @@
{
"description": "The Splunk HTTP Event Collector (HEC) destination.",
"properties": {
+ "access_token": {
+ "description": "Access token of the Splunk HTTP Event Collector. This field is not returned by the API.",
+ "example": "splunk_access_token",
+ "type": "string",
+ "writeOnly": true
+ },
"endpoint": {
"description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
"example": "https://example.com",
@@ -47122,7 +48649,8 @@
},
"required": [
"type",
- "endpoint"
+ "endpoint",
+ "access_token"
],
"type": "object"
},
@@ -47130,10 +48658,25 @@
"description": "The Elasticsearch destination.",
"properties": {
"auth": {
- "additionalProperties": {
- "description": "Basic access authentication."
- },
"description": "Basic access authentication.",
+ "properties": {
+ "password": {
+ "description": "The password of the authentication. This field is not returned by the API.",
+ "example": "datadog-custom-destination-password",
+ "type": "string",
+ "writeOnly": true
+ },
+ "username": {
+ "description": "The username of the authentication. This field is not returned by the API.",
+ "example": "datadog-custom-destination-username",
+ "type": "string",
+ "writeOnly": true
+ }
+ },
+ "required": [
+ "username",
+ "password"
+ ],
"type": "object"
},
"endpoint": {
@@ -47181,19 +48724,17 @@
},
"query": {
"default": "",
- "description": "The custom destination query filter. Logs matching this query are forwarded to the destination.",
+ "description": "The custom destination query and filter. Logs matching this query are forwarded to the destination.",
"example": "source:nginx",
"type": "string"
}
},
+ "required": [
+ "name",
+ "forwarder_destination"
+ ],
"type": "object"
},
- "id": {
- "description": "The custom destination ID.",
- "example": "be5d7a69-d0c8-4d4d-8ee8-bba292d98139",
- "readOnly": true,
- "type": "string"
- },
"type": {
"default": "custom_destination",
"description": "The type of the resource. The value should always be `custom_destination`.",
@@ -47207,12 +48748,16 @@
]
}
},
+ "required": [
+ "type",
+ "attributes"
+ ],
"type": "object"
}
},
"type": "object"
},
- "CustomDestinationResponseAttributes": {
+ "CustomDestinationCreateRequestAttributes": {
"description": "The attributes associated with the custom destination.",
"properties": {
"enabled": {
@@ -47268,6 +48813,12 @@
{
"description": "Basic access authentication.",
"properties": {
+ "password": {
+ "description": "The password of the authentication. This field is not returned by the API.",
+ "example": "datadog-custom-destination-password",
+ "type": "string",
+ "writeOnly": true
+ },
"type": {
"default": "basic",
"description": "Type of the basic access authentication.",
@@ -47279,10 +48830,18 @@
"x-enum-varnames": [
"BASIC"
]
+ },
+ "username": {
+ "description": "The username of the authentication. This field is not returned by the API.",
+ "example": "datadog-custom-destination-username",
+ "type": "string",
+ "writeOnly": true
}
},
"required": [
- "type"
+ "type",
+ "username",
+ "password"
],
"type": "object"
},
@@ -47294,6 +48853,12 @@
"example": "CUSTOM-HEADER-NAME",
"type": "string"
},
+ "header_value": {
+ "description": "The header value of the authentication. This field is not returned by the API.",
+ "example": "CUSTOM-HEADER-AUTHENTICATION-VALUE",
+ "type": "string",
+ "writeOnly": true
+ },
"type": {
"default": "custom_header",
"description": "Type of the custom header access authentication.",
@@ -47309,7 +48874,8 @@
},
"required": [
"type",
- "header_name"
+ "header_name",
+ "header_value"
],
"type": "object"
}
@@ -47343,6 +48909,12 @@
{
"description": "The Splunk HTTP Event Collector (HEC) destination.",
"properties": {
+ "access_token": {
+ "description": "Access token of the Splunk HTTP Event Collector. This field is not returned by the API.",
+ "example": "splunk_access_token",
+ "type": "string",
+ "writeOnly": true
+ },
"endpoint": {
"description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
"example": "https://example.com",
@@ -47363,7 +48935,8 @@
},
"required": [
"type",
- "endpoint"
+ "endpoint",
+ "access_token"
],
"type": "object"
},
@@ -47371,10 +48944,25 @@
"description": "The Elasticsearch destination.",
"properties": {
"auth": {
- "additionalProperties": {
- "description": "Basic access authentication."
- },
"description": "Basic access authentication.",
+ "properties": {
+ "password": {
+ "description": "The password of the authentication. This field is not returned by the API.",
+ "example": "datadog-custom-destination-password",
+ "type": "string",
+ "writeOnly": true
+ },
+ "username": {
+ "description": "The username of the authentication. This field is not returned by the API.",
+ "example": "datadog-custom-destination-username",
+ "type": "string",
+ "writeOnly": true
+ }
+ },
+ "required": [
+ "username",
+ "password"
+ ],
"type": "object"
},
"endpoint": {
@@ -47422,14 +49010,18 @@
},
"query": {
"default": "",
- "description": "The custom destination query filter. Logs matching this query are forwarded to the destination.",
+ "description": "The custom destination query and filter. Logs matching this query are forwarded to the destination.",
"example": "source:nginx",
"type": "string"
}
},
+ "required": [
+ "name",
+ "forwarder_destination"
+ ],
"type": "object"
},
- "CustomDestinationResponseDefinition": {
+ "CustomDestinationCreateRequestDefinition": {
"description": "The definition of a custom destination.",
"properties": {
"attributes": {
@@ -47488,6 +49080,12 @@
{
"description": "Basic access authentication.",
"properties": {
+ "password": {
+ "description": "The password of the authentication. This field is not returned by the API.",
+ "example": "datadog-custom-destination-password",
+ "type": "string",
+ "writeOnly": true
+ },
"type": {
"default": "basic",
"description": "Type of the basic access authentication.",
@@ -47499,10 +49097,18 @@
"x-enum-varnames": [
"BASIC"
]
+ },
+ "username": {
+ "description": "The username of the authentication. This field is not returned by the API.",
+ "example": "datadog-custom-destination-username",
+ "type": "string",
+ "writeOnly": true
}
},
"required": [
- "type"
+ "type",
+ "username",
+ "password"
],
"type": "object"
},
@@ -47514,6 +49120,12 @@
"example": "CUSTOM-HEADER-NAME",
"type": "string"
},
+ "header_value": {
+ "description": "The header value of the authentication. This field is not returned by the API.",
+ "example": "CUSTOM-HEADER-AUTHENTICATION-VALUE",
+ "type": "string",
+ "writeOnly": true
+ },
"type": {
"default": "custom_header",
"description": "Type of the custom header access authentication.",
@@ -47529,7 +49141,8 @@
},
"required": [
"type",
- "header_name"
+ "header_name",
+ "header_value"
],
"type": "object"
}
@@ -47563,6 +49176,12 @@
{
"description": "The Splunk HTTP Event Collector (HEC) destination.",
"properties": {
+ "access_token": {
+ "description": "Access token of the Splunk HTTP Event Collector. This field is not returned by the API.",
+ "example": "splunk_access_token",
+ "type": "string",
+ "writeOnly": true
+ },
"endpoint": {
"description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
"example": "https://example.com",
@@ -47583,7 +49202,8 @@
},
"required": [
"type",
- "endpoint"
+ "endpoint",
+ "access_token"
],
"type": "object"
},
@@ -47591,10 +49211,25 @@
"description": "The Elasticsearch destination.",
"properties": {
"auth": {
- "additionalProperties": {
- "description": "Basic access authentication."
- },
"description": "Basic access authentication.",
+ "properties": {
+ "password": {
+ "description": "The password of the authentication. This field is not returned by the API.",
+ "example": "datadog-custom-destination-password",
+ "type": "string",
+ "writeOnly": true
+ },
+ "username": {
+ "description": "The username of the authentication. This field is not returned by the API.",
+ "example": "datadog-custom-destination-username",
+ "type": "string",
+ "writeOnly": true
+ }
+ },
+ "required": [
+ "username",
+ "password"
+ ],
"type": "object"
},
"endpoint": {
@@ -47642,19 +49277,17 @@
},
"query": {
"default": "",
- "description": "The custom destination query filter. Logs matching this query are forwarded to the destination.",
+ "description": "The custom destination query and filter. Logs matching this query are forwarded to the destination.",
"example": "source:nginx",
"type": "string"
}
},
+ "required": [
+ "name",
+ "forwarder_destination"
+ ],
"type": "object"
},
- "id": {
- "description": "The custom destination ID.",
- "example": "be5d7a69-d0c8-4d4d-8ee8-bba292d98139",
- "readOnly": true,
- "type": "string"
- },
"type": {
"default": "custom_destination",
"description": "The type of the resource. The value should always be `custom_destination`.",
@@ -47668,16 +49301,35 @@
]
}
},
+ "required": [
+ "type",
+ "attributes"
+ ],
"type": "object"
},
- "CustomDestinationResponseElasticsearchDestinationAuth": {
- "additionalProperties": {
- "description": "Basic access authentication."
- },
+ "CustomDestinationElasticsearchDestinationAuth": {
"description": "Basic access authentication.",
+ "properties": {
+ "password": {
+ "description": "The password of the authentication. This field is not returned by the API.",
+ "example": "datadog-custom-destination-password",
+ "type": "string",
+ "writeOnly": true
+ },
+ "username": {
+ "description": "The username of the authentication. This field is not returned by the API.",
+ "example": "datadog-custom-destination-username",
+ "type": "string",
+ "writeOnly": true
+ }
+ },
+ "required": [
+ "username",
+ "password"
+ ],
"type": "object"
},
- "CustomDestinationResponseForwardDestination": {
+ "CustomDestinationForwardDestination": {
"description": "A custom destination's location to forward logs.",
"oneOf": [
{
@@ -47689,6 +49341,12 @@
{
"description": "Basic access authentication.",
"properties": {
+ "password": {
+ "description": "The password of the authentication. This field is not returned by the API.",
+ "example": "datadog-custom-destination-password",
+ "type": "string",
+ "writeOnly": true
+ },
"type": {
"default": "basic",
"description": "Type of the basic access authentication.",
@@ -47700,10 +49358,18 @@
"x-enum-varnames": [
"BASIC"
]
+ },
+ "username": {
+ "description": "The username of the authentication. This field is not returned by the API.",
+ "example": "datadog-custom-destination-username",
+ "type": "string",
+ "writeOnly": true
}
},
"required": [
- "type"
+ "type",
+ "username",
+ "password"
],
"type": "object"
},
@@ -47715,6 +49381,12 @@
"example": "CUSTOM-HEADER-NAME",
"type": "string"
},
+ "header_value": {
+ "description": "The header value of the authentication. This field is not returned by the API.",
+ "example": "CUSTOM-HEADER-AUTHENTICATION-VALUE",
+ "type": "string",
+ "writeOnly": true
+ },
"type": {
"default": "custom_header",
"description": "Type of the custom header access authentication.",
@@ -47730,7 +49402,8 @@
},
"required": [
"type",
- "header_name"
+ "header_name",
+ "header_value"
],
"type": "object"
}
@@ -47764,6 +49437,12 @@
{
"description": "The Splunk HTTP Event Collector (HEC) destination.",
"properties": {
+ "access_token": {
+ "description": "Access token of the Splunk HTTP Event Collector. This field is not returned by the API.",
+ "example": "splunk_access_token",
+ "type": "string",
+ "writeOnly": true
+ },
"endpoint": {
"description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
"example": "https://example.com",
@@ -47784,7 +49463,8 @@
},
"required": [
"type",
- "endpoint"
+ "endpoint",
+ "access_token"
],
"type": "object"
},
@@ -47792,10 +49472,25 @@
"description": "The Elasticsearch destination.",
"properties": {
"auth": {
- "additionalProperties": {
- "description": "Basic access authentication."
- },
"description": "Basic access authentication.",
+ "properties": {
+ "password": {
+ "description": "The password of the authentication. This field is not returned by the API.",
+ "example": "datadog-custom-destination-password",
+ "type": "string",
+ "writeOnly": true
+ },
+ "username": {
+ "description": "The username of the authentication. This field is not returned by the API.",
+ "example": "datadog-custom-destination-username",
+ "type": "string",
+ "writeOnly": true
+ }
+ },
+ "required": [
+ "username",
+ "password"
+ ],
"type": "object"
},
"endpoint": {
@@ -47836,14 +49531,29 @@
}
]
},
- "CustomDestinationResponseForwardDestinationElasticsearch": {
+ "CustomDestinationForwardDestinationElasticsearch": {
"description": "The Elasticsearch destination.",
"properties": {
"auth": {
- "additionalProperties": {
- "description": "Basic access authentication."
- },
"description": "Basic access authentication.",
+ "properties": {
+ "password": {
+ "description": "The password of the authentication. This field is not returned by the API.",
+ "example": "datadog-custom-destination-password",
+ "type": "string",
+ "writeOnly": true
+ },
+ "username": {
+ "description": "The username of the authentication. This field is not returned by the API.",
+ "example": "datadog-custom-destination-username",
+ "type": "string",
+ "writeOnly": true
+ }
+ },
+ "required": [
+ "username",
+ "password"
+ ],
"type": "object"
},
"endpoint": {
@@ -47882,7 +49592,7 @@
],
"type": "object"
},
- "CustomDestinationResponseForwardDestinationElasticsearchType": {
+ "CustomDestinationForwardDestinationElasticsearchType": {
"default": "elasticsearch",
"description": "Type of the Elasticsearch destination.",
"enum": [
@@ -47894,7 +49604,7 @@
"ELASTICSEARCH"
]
},
- "CustomDestinationResponseForwardDestinationHttp": {
+ "CustomDestinationForwardDestinationHttp": {
"description": "The HTTP destination.",
"properties": {
"auth": {
@@ -47903,6 +49613,12 @@
{
"description": "Basic access authentication.",
"properties": {
+ "password": {
+ "description": "The password of the authentication. This field is not returned by the API.",
+ "example": "datadog-custom-destination-password",
+ "type": "string",
+ "writeOnly": true
+ },
"type": {
"default": "basic",
"description": "Type of the basic access authentication.",
@@ -47914,10 +49630,18 @@
"x-enum-varnames": [
"BASIC"
]
+ },
+ "username": {
+ "description": "The username of the authentication. This field is not returned by the API.",
+ "example": "datadog-custom-destination-username",
+ "type": "string",
+ "writeOnly": true
}
},
"required": [
- "type"
+ "type",
+ "username",
+ "password"
],
"type": "object"
},
@@ -47929,6 +49653,12 @@
"example": "CUSTOM-HEADER-NAME",
"type": "string"
},
+ "header_value": {
+ "description": "The header value of the authentication. This field is not returned by the API.",
+ "example": "CUSTOM-HEADER-AUTHENTICATION-VALUE",
+ "type": "string",
+ "writeOnly": true
+ },
"type": {
"default": "custom_header",
"description": "Type of the custom header access authentication.",
@@ -47944,7 +49674,8 @@
},
"required": [
"type",
- "header_name"
+ "header_name",
+ "header_value"
],
"type": "object"
}
@@ -47975,7 +49706,7 @@
],
"type": "object"
},
- "CustomDestinationResponseForwardDestinationHttpType": {
+ "CustomDestinationForwardDestinationHttpType": {
"default": "http",
"description": "Type of the HTTP destination.",
"enum": [
@@ -47987,9 +49718,15 @@
"HTTP"
]
},
- "CustomDestinationResponseForwardDestinationSplunk": {
+ "CustomDestinationForwardDestinationSplunk": {
"description": "The Splunk HTTP Event Collector (HEC) destination.",
"properties": {
+ "access_token": {
+ "description": "Access token of the Splunk HTTP Event Collector. This field is not returned by the API.",
+ "example": "splunk_access_token",
+ "type": "string",
+ "writeOnly": true
+ },
"endpoint": {
"description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
"example": "https://example.com",
@@ -48010,11 +49747,12 @@
},
"required": [
"type",
- "endpoint"
+ "endpoint",
+ "access_token"
],
"type": "object"
},
- "CustomDestinationResponseForwardDestinationSplunkType": {
+ "CustomDestinationForwardDestinationSplunkType": {
"default": "splunk_hec",
"description": "Type of the Splunk HTTP Event Collector (HEC) destination.",
"enum": [
@@ -48026,12 +49764,18 @@
"SPLUNK_HEC"
]
},
- "CustomDestinationResponseHttpDestinationAuth": {
+ "CustomDestinationHttpDestinationAuth": {
"description": "Authentication method of the HTTP requests.",
"oneOf": [
{
"description": "Basic access authentication.",
"properties": {
+ "password": {
+ "description": "The password of the authentication. This field is not returned by the API.",
+ "example": "datadog-custom-destination-password",
+ "type": "string",
+ "writeOnly": true
+ },
"type": {
"default": "basic",
"description": "Type of the basic access authentication.",
@@ -48043,10 +49787,18 @@
"x-enum-varnames": [
"BASIC"
]
+ },
+ "username": {
+ "description": "The username of the authentication. This field is not returned by the API.",
+ "example": "datadog-custom-destination-username",
+ "type": "string",
+ "writeOnly": true
}
},
"required": [
- "type"
+ "type",
+ "username",
+ "password"
],
"type": "object"
},
@@ -48058,6 +49810,12 @@
"example": "CUSTOM-HEADER-NAME",
"type": "string"
},
+ "header_value": {
+ "description": "The header value of the authentication. This field is not returned by the API.",
+ "example": "CUSTOM-HEADER-AUTHENTICATION-VALUE",
+ "type": "string",
+ "writeOnly": true
+ },
"type": {
"default": "custom_header",
"description": "Type of the custom header access authentication.",
@@ -48073,15 +49831,22 @@
},
"required": [
"type",
- "header_name"
+ "header_name",
+ "header_value"
],
"type": "object"
}
]
},
- "CustomDestinationResponseHttpDestinationAuthBasic": {
+ "CustomDestinationHttpDestinationAuthBasic": {
"description": "Basic access authentication.",
"properties": {
+ "password": {
+ "description": "The password of the authentication. This field is not returned by the API.",
+ "example": "datadog-custom-destination-password",
+ "type": "string",
+ "writeOnly": true
+ },
"type": {
"default": "basic",
"description": "Type of the basic access authentication.",
@@ -48093,14 +49858,22 @@
"x-enum-varnames": [
"BASIC"
]
+ },
+ "username": {
+ "description": "The username of the authentication. This field is not returned by the API.",
+ "example": "datadog-custom-destination-username",
+ "type": "string",
+ "writeOnly": true
}
},
"required": [
- "type"
+ "type",
+ "username",
+ "password"
],
"type": "object"
},
- "CustomDestinationResponseHttpDestinationAuthBasicType": {
+ "CustomDestinationHttpDestinationAuthBasicType": {
"default": "basic",
"description": "Type of the basic access authentication.",
"enum": [
@@ -48112,7 +49885,7 @@
"BASIC"
]
},
- "CustomDestinationResponseHttpDestinationAuthCustomHeader": {
+ "CustomDestinationHttpDestinationAuthCustomHeader": {
"description": "Custom header access authentication.",
"properties": {
"header_name": {
@@ -48120,6 +49893,12 @@
"example": "CUSTOM-HEADER-NAME",
"type": "string"
},
+ "header_value": {
+ "description": "The header value of the authentication. This field is not returned by the API.",
+ "example": "CUSTOM-HEADER-AUTHENTICATION-VALUE",
+ "type": "string",
+ "writeOnly": true
+ },
"type": {
"default": "custom_header",
"description": "Type of the custom header access authentication.",
@@ -48135,11 +49914,12 @@
},
"required": [
"type",
- "header_name"
+ "header_name",
+ "header_value"
],
"type": "object"
},
- "CustomDestinationResponseHttpDestinationAuthCustomHeaderType": {
+ "CustomDestinationHttpDestinationAuthCustomHeaderType": {
"default": "custom_header",
"description": "Type of the custom header access authentication.",
"enum": [
@@ -48151,19 +49931,7 @@
"CUSTOM_HEADER"
]
},
- "CustomDestinationType": {
- "default": "custom_destination",
- "description": "The type of the resource. The value should always be `custom_destination`.",
- "enum": [
- "custom_destination"
- ],
- "example": "custom_destination",
- "type": "string",
- "x-enum-varnames": [
- "CUSTOM_DESTINATION"
- ]
- },
- "CustomDestinationUpdateRequest": {
+ "CustomDestinationResponse": {
"description": "The custom destination.",
"properties": {
"data": {
@@ -48186,7 +49954,7 @@
},
"forward_tags_restriction_list": {
"default": [],
- "description": "List of [keys of tags](https://docs.datadoghq.com/getting_started/tagging/#define-tags) to be restricted from being forwarded.\nAn empty list represents no restriction is in place and either all or no tags will be forwarded depending on `forward_tags_restriction_list_type` parameter.",
+ "description": "List of [keys of tags](https://docs.datadoghq.com/getting_started/tagging/#define-tags) to be filtered.\n\nAn empty list represents no restriction is in place and either all or no tags will be\nforwarded depending on `forward_tags_restriction_list_type` parameter.",
"example": [
"datacenter",
"host"
@@ -48225,12 +49993,6 @@
{
"description": "Basic access authentication.",
"properties": {
- "password": {
- "description": "The password of the authentication. This field is not returned by the API.",
- "example": "datadog-custom-destination-password",
- "type": "string",
- "writeOnly": true
- },
"type": {
"default": "basic",
"description": "Type of the basic access authentication.",
@@ -48242,18 +50004,10 @@
"x-enum-varnames": [
"BASIC"
]
- },
- "username": {
- "description": "The username of the authentication. This field is not returned by the API.",
- "example": "datadog-custom-destination-username",
- "type": "string",
- "writeOnly": true
}
},
"required": [
- "type",
- "username",
- "password"
+ "type"
],
"type": "object"
},
@@ -48265,12 +50019,6 @@
"example": "CUSTOM-HEADER-NAME",
"type": "string"
},
- "header_value": {
- "description": "The header value of the authentication. This field is not returned by the API.",
- "example": "CUSTOM-HEADER-AUTHENTICATION-VALUE",
- "type": "string",
- "writeOnly": true
- },
"type": {
"default": "custom_header",
"description": "Type of the custom header access authentication.",
@@ -48286,8 +50034,7 @@
},
"required": [
"type",
- "header_name",
- "header_value"
+ "header_name"
],
"type": "object"
}
@@ -48321,12 +50068,6 @@
{
"description": "The Splunk HTTP Event Collector (HEC) destination.",
"properties": {
- "access_token": {
- "description": "Access token of the Splunk HTTP Event Collector. This field is not returned by the API.",
- "example": "splunk_access_token",
- "type": "string",
- "writeOnly": true
- },
"endpoint": {
"description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
"example": "https://example.com",
@@ -48347,8 +50088,7 @@
},
"required": [
"type",
- "endpoint",
- "access_token"
+ "endpoint"
],
"type": "object"
},
@@ -48356,25 +50096,10 @@
"description": "The Elasticsearch destination.",
"properties": {
"auth": {
- "description": "Basic access authentication.",
- "properties": {
- "password": {
- "description": "The password of the authentication. This field is not returned by the API.",
- "example": "datadog-custom-destination-password",
- "type": "string",
- "writeOnly": true
- },
- "username": {
- "description": "The username of the authentication. This field is not returned by the API.",
- "example": "datadog-custom-destination-username",
- "type": "string",
- "writeOnly": true
- }
+ "additionalProperties": {
+ "description": "Basic access authentication."
},
- "required": [
- "username",
- "password"
- ],
+ "description": "Basic access authentication.",
"type": "object"
},
"endpoint": {
@@ -48422,7 +50147,7 @@
},
"query": {
"default": "",
- "description": "The custom destination query and filter. Logs matching this query are forwarded to the destination.",
+ "description": "The custom destination query filter. Logs matching this query are forwarded to the destination.",
"example": "source:nginx",
"type": "string"
}
@@ -48432,6 +50157,7 @@
"id": {
"description": "The custom destination ID.",
"example": "be5d7a69-d0c8-4d4d-8ee8-bba292d98139",
+ "readOnly": true,
"type": "string"
},
"type": {
@@ -48447,16 +50173,12 @@
]
}
},
- "required": [
- "type",
- "id"
- ],
"type": "object"
}
},
"type": "object"
},
- "CustomDestinationUpdateRequestAttributes": {
+ "CustomDestinationResponseAttributes": {
"description": "The attributes associated with the custom destination.",
"properties": {
"enabled": {
@@ -48473,7 +50195,7 @@
},
"forward_tags_restriction_list": {
"default": [],
- "description": "List of [keys of tags](https://docs.datadoghq.com/getting_started/tagging/#define-tags) to be restricted from being forwarded.\nAn empty list represents no restriction is in place and either all or no tags will be forwarded depending on `forward_tags_restriction_list_type` parameter.",
+ "description": "List of [keys of tags](https://docs.datadoghq.com/getting_started/tagging/#define-tags) to be filtered.\n\nAn empty list represents no restriction is in place and either all or no tags will be\nforwarded depending on `forward_tags_restriction_list_type` parameter.",
"example": [
"datacenter",
"host"
@@ -48512,12 +50234,6 @@
{
"description": "Basic access authentication.",
"properties": {
- "password": {
- "description": "The password of the authentication. This field is not returned by the API.",
- "example": "datadog-custom-destination-password",
- "type": "string",
- "writeOnly": true
- },
"type": {
"default": "basic",
"description": "Type of the basic access authentication.",
@@ -48529,18 +50245,10 @@
"x-enum-varnames": [
"BASIC"
]
- },
- "username": {
- "description": "The username of the authentication. This field is not returned by the API.",
- "example": "datadog-custom-destination-username",
- "type": "string",
- "writeOnly": true
}
},
"required": [
- "type",
- "username",
- "password"
+ "type"
],
"type": "object"
},
@@ -48552,12 +50260,6 @@
"example": "CUSTOM-HEADER-NAME",
"type": "string"
},
- "header_value": {
- "description": "The header value of the authentication. This field is not returned by the API.",
- "example": "CUSTOM-HEADER-AUTHENTICATION-VALUE",
- "type": "string",
- "writeOnly": true
- },
"type": {
"default": "custom_header",
"description": "Type of the custom header access authentication.",
@@ -48573,8 +50275,7 @@
},
"required": [
"type",
- "header_name",
- "header_value"
+ "header_name"
],
"type": "object"
}
@@ -48608,12 +50309,6 @@
{
"description": "The Splunk HTTP Event Collector (HEC) destination.",
"properties": {
- "access_token": {
- "description": "Access token of the Splunk HTTP Event Collector. This field is not returned by the API.",
- "example": "splunk_access_token",
- "type": "string",
- "writeOnly": true
- },
"endpoint": {
"description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
"example": "https://example.com",
@@ -48634,8 +50329,7 @@
},
"required": [
"type",
- "endpoint",
- "access_token"
+ "endpoint"
],
"type": "object"
},
@@ -48643,25 +50337,10 @@
"description": "The Elasticsearch destination.",
"properties": {
"auth": {
- "description": "Basic access authentication.",
- "properties": {
- "password": {
- "description": "The password of the authentication. This field is not returned by the API.",
- "example": "datadog-custom-destination-password",
- "type": "string",
- "writeOnly": true
- },
- "username": {
- "description": "The username of the authentication. This field is not returned by the API.",
- "example": "datadog-custom-destination-username",
- "type": "string",
- "writeOnly": true
- }
+ "additionalProperties": {
+ "description": "Basic access authentication."
},
- "required": [
- "username",
- "password"
- ],
+ "description": "Basic access authentication.",
"type": "object"
},
"endpoint": {
@@ -48709,14 +50388,14 @@
},
"query": {
"default": "",
- "description": "The custom destination query and filter. Logs matching this query are forwarded to the destination.",
+ "description": "The custom destination query filter. Logs matching this query are forwarded to the destination.",
"example": "source:nginx",
"type": "string"
}
},
"type": "object"
},
- "CustomDestinationUpdateRequestDefinition": {
+ "CustomDestinationResponseDefinition": {
"description": "The definition of a custom destination.",
"properties": {
"attributes": {
@@ -48736,7 +50415,7 @@
},
"forward_tags_restriction_list": {
"default": [],
- "description": "List of [keys of tags](https://docs.datadoghq.com/getting_started/tagging/#define-tags) to be restricted from being forwarded.\nAn empty list represents no restriction is in place and either all or no tags will be forwarded depending on `forward_tags_restriction_list_type` parameter.",
+ "description": "List of [keys of tags](https://docs.datadoghq.com/getting_started/tagging/#define-tags) to be filtered.\n\nAn empty list represents no restriction is in place and either all or no tags will be\nforwarded depending on `forward_tags_restriction_list_type` parameter.",
"example": [
"datacenter",
"host"
@@ -48775,12 +50454,6 @@
{
"description": "Basic access authentication.",
"properties": {
- "password": {
- "description": "The password of the authentication. This field is not returned by the API.",
- "example": "datadog-custom-destination-password",
- "type": "string",
- "writeOnly": true
- },
"type": {
"default": "basic",
"description": "Type of the basic access authentication.",
@@ -48792,18 +50465,10 @@
"x-enum-varnames": [
"BASIC"
]
- },
- "username": {
- "description": "The username of the authentication. This field is not returned by the API.",
- "example": "datadog-custom-destination-username",
- "type": "string",
- "writeOnly": true
}
},
"required": [
- "type",
- "username",
- "password"
+ "type"
],
"type": "object"
},
@@ -48815,12 +50480,6 @@
"example": "CUSTOM-HEADER-NAME",
"type": "string"
},
- "header_value": {
- "description": "The header value of the authentication. This field is not returned by the API.",
- "example": "CUSTOM-HEADER-AUTHENTICATION-VALUE",
- "type": "string",
- "writeOnly": true
- },
"type": {
"default": "custom_header",
"description": "Type of the custom header access authentication.",
@@ -48836,8 +50495,7 @@
},
"required": [
"type",
- "header_name",
- "header_value"
+ "header_name"
],
"type": "object"
}
@@ -48871,12 +50529,6 @@
{
"description": "The Splunk HTTP Event Collector (HEC) destination.",
"properties": {
- "access_token": {
- "description": "Access token of the Splunk HTTP Event Collector. This field is not returned by the API.",
- "example": "splunk_access_token",
- "type": "string",
- "writeOnly": true
- },
"endpoint": {
"description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
"example": "https://example.com",
@@ -48897,8 +50549,7 @@
},
"required": [
"type",
- "endpoint",
- "access_token"
+ "endpoint"
],
"type": "object"
},
@@ -48906,25 +50557,10 @@
"description": "The Elasticsearch destination.",
"properties": {
"auth": {
- "description": "Basic access authentication.",
- "properties": {
- "password": {
- "description": "The password of the authentication. This field is not returned by the API.",
- "example": "datadog-custom-destination-password",
- "type": "string",
- "writeOnly": true
- },
- "username": {
- "description": "The username of the authentication. This field is not returned by the API.",
- "example": "datadog-custom-destination-username",
- "type": "string",
- "writeOnly": true
- }
+ "additionalProperties": {
+ "description": "Basic access authentication."
},
- "required": [
- "username",
- "password"
- ],
+ "description": "Basic access authentication.",
"type": "object"
},
"endpoint": {
@@ -48972,7 +50608,7 @@
},
"query": {
"default": "",
- "description": "The custom destination query and filter. Logs matching this query are forwarded to the destination.",
+ "description": "The custom destination query filter. Logs matching this query are forwarded to the destination.",
"example": "source:nginx",
"type": "string"
}
@@ -48982,6 +50618,7 @@
"id": {
"description": "The custom destination ID.",
"example": "be5d7a69-d0c8-4d4d-8ee8-bba292d98139",
+ "readOnly": true,
"type": "string"
},
"type": {
@@ -48997,947 +50634,2276 @@
]
}
},
- "required": [
- "type",
- "id"
- ],
"type": "object"
},
- "CustomDestinationsResponse": {
- "description": "The available custom destinations.",
- "properties": {
- "data": {
- "description": "A list of custom destinations.",
- "items": {
- "description": "The definition of a custom destination.",
- "properties": {
- "attributes": {
- "description": "The attributes associated with the custom destination.",
- "properties": {
- "enabled": {
- "default": true,
- "description": "Whether logs matching this custom destination should be forwarded or not.",
- "example": true,
- "type": "boolean"
- },
- "forward_tags": {
- "default": true,
- "description": "Whether tags from the forwarded logs should be forwarded or not.",
- "example": true,
- "type": "boolean"
- },
- "forward_tags_restriction_list": {
- "default": [],
- "description": "List of [keys of tags](https://docs.datadoghq.com/getting_started/tagging/#define-tags) to be filtered.\n\nAn empty list represents no restriction is in place and either all or no tags will be\nforwarded depending on `forward_tags_restriction_list_type` parameter.",
- "example": [
- "datacenter",
- "host"
- ],
- "items": {
- "description": "The [key part of a tag](https://docs.datadoghq.com/getting_started/tagging/#define-tags).",
- "type": "string"
- },
- "maxItems": 10,
- "minItems": 0,
- "type": "array"
- },
- "forward_tags_restriction_list_type": {
- "default": "ALLOW_LIST",
- "description": "How `forward_tags_restriction_list` parameter should be interpreted.\nIf `ALLOW_LIST`, then only tags whose keys on the forwarded logs match the ones on the restriction list\nare forwarded.\n\n`BLOCK_LIST` works the opposite way. It does not forward the tags matching the ones on the list.",
- "enum": [
- "ALLOW_LIST",
- "BLOCK_LIST"
- ],
- "example": "ALLOW_LIST",
- "type": "string",
- "x-enum-varnames": [
- "ALLOW_LIST",
- "BLOCK_LIST"
- ]
- },
- "forwarder_destination": {
- "description": "A custom destination's location to forward logs.",
- "oneOf": [
- {
- "description": "The HTTP destination.",
- "properties": {
- "auth": {
- "description": "Authentication method of the HTTP requests.",
- "oneOf": [
- {
- "description": "Basic access authentication.",
- "properties": {
- "type": {
- "default": "basic",
- "description": "Type of the basic access authentication.",
- "enum": [
- "basic"
- ],
- "example": "basic",
- "type": "string",
- "x-enum-varnames": [
- "BASIC"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object"
- },
- {
- "description": "Custom header access authentication.",
- "properties": {
- "header_name": {
- "description": "The header name of the authentication.",
- "example": "CUSTOM-HEADER-NAME",
- "type": "string"
- },
- "type": {
- "default": "custom_header",
- "description": "Type of the custom header access authentication.",
- "enum": [
- "custom_header"
- ],
- "example": "custom_header",
- "type": "string",
- "x-enum-varnames": [
- "CUSTOM_HEADER"
- ]
- }
- },
- "required": [
- "type",
- "header_name"
- ],
- "type": "object"
- }
- ]
- },
- "endpoint": {
- "description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
- "example": "https://example.com",
- "type": "string"
- },
- "type": {
- "default": "http",
- "description": "Type of the HTTP destination.",
- "enum": [
- "http"
- ],
- "example": "http",
- "type": "string",
- "x-enum-varnames": [
- "HTTP"
- ]
- }
- },
- "required": [
- "type",
- "endpoint",
- "auth"
- ],
- "type": "object"
- },
- {
- "description": "The Splunk HTTP Event Collector (HEC) destination.",
- "properties": {
- "endpoint": {
- "description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
- "example": "https://example.com",
- "type": "string"
- },
- "type": {
- "default": "splunk_hec",
- "description": "Type of the Splunk HTTP Event Collector (HEC) destination.",
- "enum": [
- "splunk_hec"
- ],
- "example": "splunk_hec",
- "type": "string",
- "x-enum-varnames": [
- "SPLUNK_HEC"
- ]
- }
- },
- "required": [
- "type",
- "endpoint"
- ],
- "type": "object"
- },
- {
- "description": "The Elasticsearch destination.",
- "properties": {
- "auth": {
- "additionalProperties": {
- "description": "Basic access authentication."
- },
- "description": "Basic access authentication.",
- "type": "object"
- },
- "endpoint": {
- "description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
- "example": "https://example.com",
- "type": "string"
- },
- "index_name": {
- "description": "Name of the Elasticsearch index (must follow [Elasticsearch's criteria](https://www.elastic.co/guide/en/elasticsearch/reference/8.11/indices-create-index.html#indices-create-api-path-params)).",
- "example": "nginx-logs",
- "type": "string"
- },
- "index_rotation": {
- "description": "Date pattern with US locale and UTC timezone to be appended to the index name after adding `-`\n(that is, `${index_name}-${indexPattern}`).\nYou can customize the index rotation naming pattern by choosing one of these options:\n- Hourly: `yyyy-MM-dd-HH` (as an example, it would render: `2022-10-19-09`)\n- Daily: `yyyy-MM-dd` (as an example, it would render: `2022-10-19`)\n- Weekly: `yyyy-'W'ww` (as an example, it would render: `2022-W42`)\n- Monthly: `yyyy-MM` (as an example, it would render: `2022-10`)\n\nIf this field is missing or is blank, it means that the index name will always be the same\n(that is, no rotation).",
- "example": "yyyy-MM-dd",
- "type": "string"
- },
- "type": {
- "default": "elasticsearch",
- "description": "Type of the Elasticsearch destination.",
- "enum": [
- "elasticsearch"
- ],
- "example": "elasticsearch",
- "type": "string",
- "x-enum-varnames": [
- "ELASTICSEARCH"
- ]
- }
- },
- "required": [
- "type",
- "endpoint",
- "auth",
- "index_name"
- ],
- "type": "object"
- }
- ]
- },
- "name": {
- "description": "The custom destination name.",
- "example": "Nginx logs",
- "type": "string"
- },
- "query": {
- "default": "",
- "description": "The custom destination query filter. Logs matching this query are forwarded to the destination.",
- "example": "source:nginx",
- "type": "string"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "The custom destination ID.",
- "example": "be5d7a69-d0c8-4d4d-8ee8-bba292d98139",
- "readOnly": true,
- "type": "string"
- },
- "type": {
- "default": "custom_destination",
- "description": "The type of the resource. The value should always be `custom_destination`.",
- "enum": [
- "custom_destination"
- ],
- "example": "custom_destination",
- "type": "string",
- "x-enum-varnames": [
- "CUSTOM_DESTINATION"
- ]
- }
- },
- "type": "object"
- },
- "type": "array"
- }
+ "CustomDestinationResponseElasticsearchDestinationAuth": {
+ "additionalProperties": {
+ "description": "Basic access authentication."
},
+ "description": "Basic access authentication.",
"type": "object"
},
- "DORADeploymentRequest": {
- "description": "Request to create a DORA deployment event.",
- "properties": {
- "data": {
- "description": "The JSON:API data.",
+ "CustomDestinationResponseForwardDestination": {
+ "description": "A custom destination's location to forward logs.",
+ "oneOf": [
+ {
+ "description": "The HTTP destination.",
"properties": {
- "attributes": {
- "description": "Attributes to create a DORA deployment event.",
- "properties": {
- "env": {
- "description": "Environment name to where the service was deployed.",
- "example": "staging",
- "type": "string"
- },
- "finished_at": {
- "description": "Unix timestamp when the deployment finished. It must be in nanoseconds, milliseconds, or seconds, and it should not be older than 1 hour.",
- "example": 1693491984000000000,
- "format": "int64",
- "type": "integer"
+ "auth": {
+ "description": "Authentication method of the HTTP requests.",
+ "oneOf": [
+ {
+ "description": "Basic access authentication.",
+ "properties": {
+ "type": {
+ "default": "basic",
+ "description": "Type of the basic access authentication.",
+ "enum": [
+ "basic"
+ ],
+ "example": "basic",
+ "type": "string",
+ "x-enum-varnames": [
+ "BASIC"
+ ]
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object"
},
- "git": {
- "description": "Git info for DORA Metrics events.",
+ {
+ "description": "Custom header access authentication.",
"properties": {
- "commit_sha": {
- "description": "Git Commit SHA.",
- "example": "66adc9350f2cc9b250b69abddab733dd55e1a588",
- "pattern": "^[a-fA-F0-9]{40,}$",
+ "header_name": {
+ "description": "The header name of the authentication.",
+ "example": "CUSTOM-HEADER-NAME",
"type": "string"
},
- "repository_url": {
- "description": "Git Repository URL",
- "example": "https://github.com/organization/example-repository",
- "type": "string"
+ "type": {
+ "default": "custom_header",
+ "description": "Type of the custom header access authentication.",
+ "enum": [
+ "custom_header"
+ ],
+ "example": "custom_header",
+ "type": "string",
+ "x-enum-varnames": [
+ "CUSTOM_HEADER"
+ ]
}
},
"required": [
- "repository_url",
- "commit_sha"
+ "type",
+ "header_name"
],
"type": "object"
- },
- "id": {
- "description": "Deployment ID.",
- "type": "string"
- },
- "service": {
- "description": "Service name.",
- "example": "shopist",
- "type": "string"
- },
- "started_at": {
- "description": "Unix timestamp when the deployment started. It must be in nanoseconds, milliseconds, or seconds.",
- "example": 1693491974000000000,
- "format": "int64",
- "type": "integer"
- },
- "team": {
- "description": "Name of the team owning the deployed service. If not provided, this is automatically populated with the team associated with the service in the Service Catalog.",
- "example": "backend",
- "type": "string"
- },
- "version": {
- "description": "Version to correlate with [APM Deployment Tracking](https://docs.datadoghq.com/tracing/services/deployment_tracking/).",
- "example": "v1.12.07",
- "type": "string"
}
- },
- "required": [
- "service",
- "started_at",
- "finished_at"
+ ]
+ },
+ "endpoint": {
+ "description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
+ "example": "https://example.com",
+ "type": "string"
+ },
+ "type": {
+ "default": "http",
+ "description": "Type of the HTTP destination.",
+ "enum": [
+ "http"
],
- "type": "object"
+ "example": "http",
+ "type": "string",
+ "x-enum-varnames": [
+ "HTTP"
+ ]
}
},
"required": [
- "attributes"
+ "type",
+ "endpoint",
+ "auth"
],
"type": "object"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "DORADeploymentRequestAttributes": {
- "description": "Attributes to create a DORA deployment event.",
- "properties": {
- "env": {
- "description": "Environment name to where the service was deployed.",
- "example": "staging",
- "type": "string"
},
- "finished_at": {
- "description": "Unix timestamp when the deployment finished. It must be in nanoseconds, milliseconds, or seconds, and it should not be older than 1 hour.",
- "example": 1693491984000000000,
- "format": "int64",
- "type": "integer"
+ {
+ "description": "The Splunk HTTP Event Collector (HEC) destination.",
+ "properties": {
+ "endpoint": {
+ "description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
+ "example": "https://example.com",
+ "type": "string"
+ },
+ "type": {
+ "default": "splunk_hec",
+ "description": "Type of the Splunk HTTP Event Collector (HEC) destination.",
+ "enum": [
+ "splunk_hec"
+ ],
+ "example": "splunk_hec",
+ "type": "string",
+ "x-enum-varnames": [
+ "SPLUNK_HEC"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "endpoint"
+ ],
+ "type": "object"
},
- "git": {
- "description": "Git info for DORA Metrics events.",
+ {
+ "description": "The Elasticsearch destination.",
"properties": {
- "commit_sha": {
- "description": "Git Commit SHA.",
- "example": "66adc9350f2cc9b250b69abddab733dd55e1a588",
- "pattern": "^[a-fA-F0-9]{40,}$",
+ "auth": {
+ "additionalProperties": {
+ "description": "Basic access authentication."
+ },
+ "description": "Basic access authentication.",
+ "type": "object"
+ },
+ "endpoint": {
+ "description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
+ "example": "https://example.com",
"type": "string"
},
- "repository_url": {
- "description": "Git Repository URL",
- "example": "https://github.com/organization/example-repository",
+ "index_name": {
+ "description": "Name of the Elasticsearch index (must follow [Elasticsearch's criteria](https://www.elastic.co/guide/en/elasticsearch/reference/8.11/indices-create-index.html#indices-create-api-path-params)).",
+ "example": "nginx-logs",
+ "type": "string"
+ },
+ "index_rotation": {
+ "description": "Date pattern with US locale and UTC timezone to be appended to the index name after adding `-`\n(that is, `${index_name}-${indexPattern}`).\nYou can customize the index rotation naming pattern by choosing one of these options:\n- Hourly: `yyyy-MM-dd-HH` (as an example, it would render: `2022-10-19-09`)\n- Daily: `yyyy-MM-dd` (as an example, it would render: `2022-10-19`)\n- Weekly: `yyyy-'W'ww` (as an example, it would render: `2022-W42`)\n- Monthly: `yyyy-MM` (as an example, it would render: `2022-10`)\n\nIf this field is missing or is blank, it means that the index name will always be the same\n(that is, no rotation).",
+ "example": "yyyy-MM-dd",
"type": "string"
+ },
+ "type": {
+ "default": "elasticsearch",
+ "description": "Type of the Elasticsearch destination.",
+ "enum": [
+ "elasticsearch"
+ ],
+ "example": "elasticsearch",
+ "type": "string",
+ "x-enum-varnames": [
+ "ELASTICSEARCH"
+ ]
}
},
"required": [
- "repository_url",
- "commit_sha"
+ "type",
+ "endpoint",
+ "auth",
+ "index_name"
],
"type": "object"
+ }
+ ]
+ },
+ "CustomDestinationResponseForwardDestinationElasticsearch": {
+ "description": "The Elasticsearch destination.",
+ "properties": {
+ "auth": {
+ "additionalProperties": {
+ "description": "Basic access authentication."
+ },
+ "description": "Basic access authentication.",
+ "type": "object"
},
- "id": {
- "description": "Deployment ID.",
+ "endpoint": {
+ "description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
+ "example": "https://example.com",
"type": "string"
},
- "service": {
- "description": "Service name.",
- "example": "shopist",
+ "index_name": {
+ "description": "Name of the Elasticsearch index (must follow [Elasticsearch's criteria](https://www.elastic.co/guide/en/elasticsearch/reference/8.11/indices-create-index.html#indices-create-api-path-params)).",
+ "example": "nginx-logs",
"type": "string"
},
- "started_at": {
- "description": "Unix timestamp when the deployment started. It must be in nanoseconds, milliseconds, or seconds.",
- "example": 1693491974000000000,
- "format": "int64",
- "type": "integer"
- },
- "team": {
- "description": "Name of the team owning the deployed service. If not provided, this is automatically populated with the team associated with the service in the Service Catalog.",
- "example": "backend",
+ "index_rotation": {
+ "description": "Date pattern with US locale and UTC timezone to be appended to the index name after adding `-`\n(that is, `${index_name}-${indexPattern}`).\nYou can customize the index rotation naming pattern by choosing one of these options:\n- Hourly: `yyyy-MM-dd-HH` (as an example, it would render: `2022-10-19-09`)\n- Daily: `yyyy-MM-dd` (as an example, it would render: `2022-10-19`)\n- Weekly: `yyyy-'W'ww` (as an example, it would render: `2022-W42`)\n- Monthly: `yyyy-MM` (as an example, it would render: `2022-10`)\n\nIf this field is missing or is blank, it means that the index name will always be the same\n(that is, no rotation).",
+ "example": "yyyy-MM-dd",
"type": "string"
},
- "version": {
- "description": "Version to correlate with [APM Deployment Tracking](https://docs.datadoghq.com/tracing/services/deployment_tracking/).",
- "example": "v1.12.07",
- "type": "string"
+ "type": {
+ "default": "elasticsearch",
+ "description": "Type of the Elasticsearch destination.",
+ "enum": [
+ "elasticsearch"
+ ],
+ "example": "elasticsearch",
+ "type": "string",
+ "x-enum-varnames": [
+ "ELASTICSEARCH"
+ ]
}
},
"required": [
- "service",
- "started_at",
- "finished_at"
+ "type",
+ "endpoint",
+ "auth",
+ "index_name"
],
"type": "object"
},
- "DORADeploymentRequestData": {
- "description": "The JSON:API data.",
+ "CustomDestinationResponseForwardDestinationElasticsearchType": {
+ "default": "elasticsearch",
+ "description": "Type of the Elasticsearch destination.",
+ "enum": [
+ "elasticsearch"
+ ],
+ "example": "elasticsearch",
+ "type": "string",
+ "x-enum-varnames": [
+ "ELASTICSEARCH"
+ ]
+ },
+ "CustomDestinationResponseForwardDestinationHttp": {
+ "description": "The HTTP destination.",
"properties": {
- "attributes": {
- "description": "Attributes to create a DORA deployment event.",
- "properties": {
- "env": {
- "description": "Environment name to where the service was deployed.",
- "example": "staging",
- "type": "string"
- },
- "finished_at": {
- "description": "Unix timestamp when the deployment finished. It must be in nanoseconds, milliseconds, or seconds, and it should not be older than 1 hour.",
- "example": 1693491984000000000,
- "format": "int64",
- "type": "integer"
+ "auth": {
+ "description": "Authentication method of the HTTP requests.",
+ "oneOf": [
+ {
+ "description": "Basic access authentication.",
+ "properties": {
+ "type": {
+ "default": "basic",
+ "description": "Type of the basic access authentication.",
+ "enum": [
+ "basic"
+ ],
+ "example": "basic",
+ "type": "string",
+ "x-enum-varnames": [
+ "BASIC"
+ ]
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object"
},
- "git": {
- "description": "Git info for DORA Metrics events.",
+ {
+ "description": "Custom header access authentication.",
"properties": {
- "commit_sha": {
- "description": "Git Commit SHA.",
- "example": "66adc9350f2cc9b250b69abddab733dd55e1a588",
- "pattern": "^[a-fA-F0-9]{40,}$",
+ "header_name": {
+ "description": "The header name of the authentication.",
+ "example": "CUSTOM-HEADER-NAME",
"type": "string"
},
- "repository_url": {
- "description": "Git Repository URL",
- "example": "https://github.com/organization/example-repository",
- "type": "string"
+ "type": {
+ "default": "custom_header",
+ "description": "Type of the custom header access authentication.",
+ "enum": [
+ "custom_header"
+ ],
+ "example": "custom_header",
+ "type": "string",
+ "x-enum-varnames": [
+ "CUSTOM_HEADER"
+ ]
}
},
"required": [
- "repository_url",
- "commit_sha"
+ "type",
+ "header_name"
],
"type": "object"
- },
- "id": {
- "description": "Deployment ID.",
- "type": "string"
- },
- "service": {
- "description": "Service name.",
- "example": "shopist",
- "type": "string"
- },
- "started_at": {
- "description": "Unix timestamp when the deployment started. It must be in nanoseconds, milliseconds, or seconds.",
- "example": 1693491974000000000,
- "format": "int64",
- "type": "integer"
- },
- "team": {
- "description": "Name of the team owning the deployed service. If not provided, this is automatically populated with the team associated with the service in the Service Catalog.",
- "example": "backend",
- "type": "string"
- },
- "version": {
- "description": "Version to correlate with [APM Deployment Tracking](https://docs.datadoghq.com/tracing/services/deployment_tracking/).",
- "example": "v1.12.07",
- "type": "string"
}
- },
- "required": [
- "service",
- "started_at",
- "finished_at"
+ ]
+ },
+ "endpoint": {
+ "description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
+ "example": "https://example.com",
+ "type": "string"
+ },
+ "type": {
+ "default": "http",
+ "description": "Type of the HTTP destination.",
+ "enum": [
+ "http"
],
- "type": "object"
+ "example": "http",
+ "type": "string",
+ "x-enum-varnames": [
+ "HTTP"
+ ]
}
},
"required": [
- "attributes"
+ "type",
+ "endpoint",
+ "auth"
],
"type": "object"
},
- "DORADeploymentResponse": {
- "description": "Response after receiving a DORA deployment event.",
+ "CustomDestinationResponseForwardDestinationHttpType": {
+ "default": "http",
+ "description": "Type of the HTTP destination.",
+ "enum": [
+ "http"
+ ],
+ "example": "http",
+ "type": "string",
+ "x-enum-varnames": [
+ "HTTP"
+ ]
+ },
+ "CustomDestinationResponseForwardDestinationSplunk": {
+ "description": "The Splunk HTTP Event Collector (HEC) destination.",
"properties": {
- "data": {
- "description": "The JSON:API data.",
+ "endpoint": {
+ "description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
+ "example": "https://example.com",
+ "type": "string"
+ },
+ "type": {
+ "default": "splunk_hec",
+ "description": "Type of the Splunk HTTP Event Collector (HEC) destination.",
+ "enum": [
+ "splunk_hec"
+ ],
+ "example": "splunk_hec",
+ "type": "string",
+ "x-enum-varnames": [
+ "SPLUNK_HEC"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "endpoint"
+ ],
+ "type": "object"
+ },
+ "CustomDestinationResponseForwardDestinationSplunkType": {
+ "default": "splunk_hec",
+ "description": "Type of the Splunk HTTP Event Collector (HEC) destination.",
+ "enum": [
+ "splunk_hec"
+ ],
+ "example": "splunk_hec",
+ "type": "string",
+ "x-enum-varnames": [
+ "SPLUNK_HEC"
+ ]
+ },
+ "CustomDestinationResponseHttpDestinationAuth": {
+ "description": "Authentication method of the HTTP requests.",
+ "oneOf": [
+ {
+ "description": "Basic access authentication.",
"properties": {
- "id": {
- "description": "The ID of the received DORA deployment event.",
- "example": "4242fcdd31586083",
+ "type": {
+ "default": "basic",
+ "description": "Type of the basic access authentication.",
+ "enum": [
+ "basic"
+ ],
+ "example": "basic",
+ "type": "string",
+ "x-enum-varnames": [
+ "BASIC"
+ ]
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Custom header access authentication.",
+ "properties": {
+ "header_name": {
+ "description": "The header name of the authentication.",
+ "example": "CUSTOM-HEADER-NAME",
"type": "string"
},
"type": {
- "default": "dora_deployment",
- "description": "JSON:API type for DORA deployment events.",
+ "default": "custom_header",
+ "description": "Type of the custom header access authentication.",
"enum": [
- "dora_deployment"
+ "custom_header"
],
- "example": "dora_deployment",
+ "example": "custom_header",
"type": "string",
"x-enum-varnames": [
- "DORA_DEPLOYMENT"
+ "CUSTOM_HEADER"
]
}
},
"required": [
- "id"
+ "type",
+ "header_name"
],
"type": "object"
}
- },
- "required": [
- "data"
- ],
- "type": "object"
+ ]
},
- "DORADeploymentResponseData": {
- "description": "The JSON:API data.",
+ "CustomDestinationResponseHttpDestinationAuthBasic": {
+ "description": "Basic access authentication.",
"properties": {
- "id": {
- "description": "The ID of the received DORA deployment event.",
- "example": "4242fcdd31586083",
- "type": "string"
- },
"type": {
- "default": "dora_deployment",
- "description": "JSON:API type for DORA deployment events.",
+ "default": "basic",
+ "description": "Type of the basic access authentication.",
"enum": [
- "dora_deployment"
+ "basic"
],
- "example": "dora_deployment",
+ "example": "basic",
"type": "string",
"x-enum-varnames": [
- "DORA_DEPLOYMENT"
+ "BASIC"
]
}
},
"required": [
- "id"
+ "type"
],
"type": "object"
},
- "DORADeploymentType": {
- "default": "dora_deployment",
- "description": "JSON:API type for DORA deployment events.",
+ "CustomDestinationResponseHttpDestinationAuthBasicType": {
+ "default": "basic",
+ "description": "Type of the basic access authentication.",
"enum": [
- "dora_deployment"
+ "basic"
],
- "example": "dora_deployment",
+ "example": "basic",
"type": "string",
"x-enum-varnames": [
- "DORA_DEPLOYMENT"
+ "BASIC"
]
},
- "DORAGitInfo": {
- "description": "Git info for DORA Metrics events.",
+ "CustomDestinationResponseHttpDestinationAuthCustomHeader": {
+ "description": "Custom header access authentication.",
"properties": {
- "commit_sha": {
- "description": "Git Commit SHA.",
- "example": "66adc9350f2cc9b250b69abddab733dd55e1a588",
- "pattern": "^[a-fA-F0-9]{40,}$",
+ "header_name": {
+ "description": "The header name of the authentication.",
+ "example": "CUSTOM-HEADER-NAME",
"type": "string"
},
- "repository_url": {
- "description": "Git Repository URL",
- "example": "https://github.com/organization/example-repository",
- "type": "string"
+ "type": {
+ "default": "custom_header",
+ "description": "Type of the custom header access authentication.",
+ "enum": [
+ "custom_header"
+ ],
+ "example": "custom_header",
+ "type": "string",
+ "x-enum-varnames": [
+ "CUSTOM_HEADER"
+ ]
}
},
"required": [
- "repository_url",
- "commit_sha"
+ "type",
+ "header_name"
],
"type": "object"
},
- "DORAIncidentRequest": {
- "description": "Request to create a DORA incident event.",
+ "CustomDestinationResponseHttpDestinationAuthCustomHeaderType": {
+ "default": "custom_header",
+ "description": "Type of the custom header access authentication.",
+ "enum": [
+ "custom_header"
+ ],
+ "example": "custom_header",
+ "type": "string",
+ "x-enum-varnames": [
+ "CUSTOM_HEADER"
+ ]
+ },
+ "CustomDestinationType": {
+ "default": "custom_destination",
+ "description": "The type of the resource. The value should always be `custom_destination`.",
+ "enum": [
+ "custom_destination"
+ ],
+ "example": "custom_destination",
+ "type": "string",
+ "x-enum-varnames": [
+ "CUSTOM_DESTINATION"
+ ]
+ },
+ "CustomDestinationUpdateRequest": {
+ "description": "The custom destination.",
"properties": {
"data": {
- "description": "The JSON:API data.",
+ "description": "The definition of a custom destination.",
"properties": {
"attributes": {
- "description": "Attributes to create a DORA incident event.",
+ "description": "The attributes associated with the custom destination.",
"properties": {
- "env": {
- "description": "Environment name that was impacted by the incident.",
- "example": "staging",
- "type": "string"
- },
- "finished_at": {
- "description": "Unix timestamp when the incident finished. It must be in nanoseconds, milliseconds, or seconds, and it should not be older than 1 hour.",
- "example": 1693491984000000000,
- "format": "int64",
- "type": "integer"
- },
- "git": {
- "description": "Git info for DORA Metrics events.",
- "properties": {
- "commit_sha": {
- "description": "Git Commit SHA.",
- "example": "66adc9350f2cc9b250b69abddab733dd55e1a588",
- "pattern": "^[a-fA-F0-9]{40,}$",
- "type": "string"
- },
- "repository_url": {
- "description": "Git Repository URL",
- "example": "https://github.com/organization/example-repository",
- "type": "string"
- }
- },
- "required": [
- "repository_url",
- "commit_sha"
- ],
- "type": "object"
- },
- "id": {
- "description": "Incident ID. Required to update a previously sent incident.",
- "type": "string"
+ "enabled": {
+ "default": true,
+ "description": "Whether logs matching this custom destination should be forwarded or not.",
+ "example": true,
+ "type": "boolean"
},
- "name": {
- "description": "Incident name.",
- "example": "Webserver is down failing all requests.",
- "type": "string"
+ "forward_tags": {
+ "default": true,
+ "description": "Whether tags from the forwarded logs should be forwarded or not.",
+ "example": true,
+ "type": "boolean"
},
- "services": {
- "description": "Service names impacted by the incident. If possible, use names registered in the Service Catalog. Required when the team field is not provided.",
+ "forward_tags_restriction_list": {
+ "default": [],
+ "description": "List of [keys of tags](https://docs.datadoghq.com/getting_started/tagging/#define-tags) to be restricted from being forwarded.\nAn empty list represents no restriction is in place and either all or no tags will be forwarded depending on `forward_tags_restriction_list_type` parameter.",
"example": [
- "shopist"
+ "datacenter",
+ "host"
],
"items": {
+ "description": "The [key part of a tag](https://docs.datadoghq.com/getting_started/tagging/#define-tags).",
"type": "string"
},
+ "maxItems": 10,
+ "minItems": 0,
"type": "array"
},
- "severity": {
- "description": "Incident severity.",
- "example": "High",
- "type": "string"
+ "forward_tags_restriction_list_type": {
+ "default": "ALLOW_LIST",
+ "description": "How `forward_tags_restriction_list` parameter should be interpreted.\nIf `ALLOW_LIST`, then only tags whose keys on the forwarded logs match the ones on the restriction list\nare forwarded.\n\n`BLOCK_LIST` works the opposite way. It does not forward the tags matching the ones on the list.",
+ "enum": [
+ "ALLOW_LIST",
+ "BLOCK_LIST"
+ ],
+ "example": "ALLOW_LIST",
+ "type": "string",
+ "x-enum-varnames": [
+ "ALLOW_LIST",
+ "BLOCK_LIST"
+ ]
},
- "started_at": {
- "description": "Unix timestamp when the incident started. It must be in nanoseconds, milliseconds, or seconds.",
- "example": 1693491974000000000,
- "format": "int64",
- "type": "integer"
+ "forwarder_destination": {
+ "description": "A custom destination's location to forward logs.",
+ "oneOf": [
+ {
+ "description": "The HTTP destination.",
+ "properties": {
+ "auth": {
+ "description": "Authentication method of the HTTP requests.",
+ "oneOf": [
+ {
+ "description": "Basic access authentication.",
+ "properties": {
+ "password": {
+ "description": "The password of the authentication. This field is not returned by the API.",
+ "example": "datadog-custom-destination-password",
+ "type": "string",
+ "writeOnly": true
+ },
+ "type": {
+ "default": "basic",
+ "description": "Type of the basic access authentication.",
+ "enum": [
+ "basic"
+ ],
+ "example": "basic",
+ "type": "string",
+ "x-enum-varnames": [
+ "BASIC"
+ ]
+ },
+ "username": {
+ "description": "The username of the authentication. This field is not returned by the API.",
+ "example": "datadog-custom-destination-username",
+ "type": "string",
+ "writeOnly": true
+ }
+ },
+ "required": [
+ "type",
+ "username",
+ "password"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Custom header access authentication.",
+ "properties": {
+ "header_name": {
+ "description": "The header name of the authentication.",
+ "example": "CUSTOM-HEADER-NAME",
+ "type": "string"
+ },
+ "header_value": {
+ "description": "The header value of the authentication. This field is not returned by the API.",
+ "example": "CUSTOM-HEADER-AUTHENTICATION-VALUE",
+ "type": "string",
+ "writeOnly": true
+ },
+ "type": {
+ "default": "custom_header",
+ "description": "Type of the custom header access authentication.",
+ "enum": [
+ "custom_header"
+ ],
+ "example": "custom_header",
+ "type": "string",
+ "x-enum-varnames": [
+ "CUSTOM_HEADER"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "header_name",
+ "header_value"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "endpoint": {
+ "description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
+ "example": "https://example.com",
+ "type": "string"
+ },
+ "type": {
+ "default": "http",
+ "description": "Type of the HTTP destination.",
+ "enum": [
+ "http"
+ ],
+ "example": "http",
+ "type": "string",
+ "x-enum-varnames": [
+ "HTTP"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "endpoint",
+ "auth"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "The Splunk HTTP Event Collector (HEC) destination.",
+ "properties": {
+ "access_token": {
+ "description": "Access token of the Splunk HTTP Event Collector. This field is not returned by the API.",
+ "example": "splunk_access_token",
+ "type": "string",
+ "writeOnly": true
+ },
+ "endpoint": {
+ "description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
+ "example": "https://example.com",
+ "type": "string"
+ },
+ "type": {
+ "default": "splunk_hec",
+ "description": "Type of the Splunk HTTP Event Collector (HEC) destination.",
+ "enum": [
+ "splunk_hec"
+ ],
+ "example": "splunk_hec",
+ "type": "string",
+ "x-enum-varnames": [
+ "SPLUNK_HEC"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "endpoint",
+ "access_token"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "The Elasticsearch destination.",
+ "properties": {
+ "auth": {
+ "description": "Basic access authentication.",
+ "properties": {
+ "password": {
+ "description": "The password of the authentication. This field is not returned by the API.",
+ "example": "datadog-custom-destination-password",
+ "type": "string",
+ "writeOnly": true
+ },
+ "username": {
+ "description": "The username of the authentication. This field is not returned by the API.",
+ "example": "datadog-custom-destination-username",
+ "type": "string",
+ "writeOnly": true
+ }
+ },
+ "required": [
+ "username",
+ "password"
+ ],
+ "type": "object"
+ },
+ "endpoint": {
+ "description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
+ "example": "https://example.com",
+ "type": "string"
+ },
+ "index_name": {
+ "description": "Name of the Elasticsearch index (must follow [Elasticsearch's criteria](https://www.elastic.co/guide/en/elasticsearch/reference/8.11/indices-create-index.html#indices-create-api-path-params)).",
+ "example": "nginx-logs",
+ "type": "string"
+ },
+ "index_rotation": {
+ "description": "Date pattern with US locale and UTC timezone to be appended to the index name after adding `-`\n(that is, `${index_name}-${indexPattern}`).\nYou can customize the index rotation naming pattern by choosing one of these options:\n- Hourly: `yyyy-MM-dd-HH` (as an example, it would render: `2022-10-19-09`)\n- Daily: `yyyy-MM-dd` (as an example, it would render: `2022-10-19`)\n- Weekly: `yyyy-'W'ww` (as an example, it would render: `2022-W42`)\n- Monthly: `yyyy-MM` (as an example, it would render: `2022-10`)\n\nIf this field is missing or is blank, it means that the index name will always be the same\n(that is, no rotation).",
+ "example": "yyyy-MM-dd",
+ "type": "string"
+ },
+ "type": {
+ "default": "elasticsearch",
+ "description": "Type of the Elasticsearch destination.",
+ "enum": [
+ "elasticsearch"
+ ],
+ "example": "elasticsearch",
+ "type": "string",
+ "x-enum-varnames": [
+ "ELASTICSEARCH"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "endpoint",
+ "auth",
+ "index_name"
+ ],
+ "type": "object"
+ }
+ ]
},
- "team": {
- "description": "Name of the team owning the services impacted. If possible, use team handles registered in Datadog. Required when the services field is not provided.",
- "example": "backend",
+ "name": {
+ "description": "The custom destination name.",
+ "example": "Nginx logs",
"type": "string"
},
- "version": {
- "description": "Version to correlate with [APM Deployment Tracking](https://docs.datadoghq.com/tracing/services/deployment_tracking/).",
- "example": "v1.12.07",
+ "query": {
+ "default": "",
+ "description": "The custom destination query and filter. Logs matching this query are forwarded to the destination.",
+ "example": "source:nginx",
"type": "string"
}
},
- "required": [
- "started_at"
- ],
"type": "object"
+ },
+ "id": {
+ "description": "The custom destination ID.",
+ "example": "be5d7a69-d0c8-4d4d-8ee8-bba292d98139",
+ "type": "string"
+ },
+ "type": {
+ "default": "custom_destination",
+ "description": "The type of the resource. The value should always be `custom_destination`.",
+ "enum": [
+ "custom_destination"
+ ],
+ "example": "custom_destination",
+ "type": "string",
+ "x-enum-varnames": [
+ "CUSTOM_DESTINATION"
+ ]
}
},
"required": [
- "attributes"
+ "type",
+ "id"
],
"type": "object"
}
},
- "required": [
- "data"
- ],
"type": "object"
},
- "DORAIncidentRequestAttributes": {
- "description": "Attributes to create a DORA incident event.",
+ "CustomDestinationUpdateRequestAttributes": {
+ "description": "The attributes associated with the custom destination.",
"properties": {
- "env": {
- "description": "Environment name that was impacted by the incident.",
- "example": "staging",
- "type": "string"
- },
- "finished_at": {
- "description": "Unix timestamp when the incident finished. It must be in nanoseconds, milliseconds, or seconds, and it should not be older than 1 hour.",
- "example": 1693491984000000000,
- "format": "int64",
- "type": "integer"
- },
- "git": {
- "description": "Git info for DORA Metrics events.",
- "properties": {
- "commit_sha": {
- "description": "Git Commit SHA.",
- "example": "66adc9350f2cc9b250b69abddab733dd55e1a588",
- "pattern": "^[a-fA-F0-9]{40,}$",
- "type": "string"
- },
- "repository_url": {
- "description": "Git Repository URL",
- "example": "https://github.com/organization/example-repository",
- "type": "string"
- }
- },
- "required": [
- "repository_url",
- "commit_sha"
- ],
- "type": "object"
- },
- "id": {
- "description": "Incident ID. Required to update a previously sent incident.",
- "type": "string"
+ "enabled": {
+ "default": true,
+ "description": "Whether logs matching this custom destination should be forwarded or not.",
+ "example": true,
+ "type": "boolean"
},
- "name": {
- "description": "Incident name.",
- "example": "Webserver is down failing all requests.",
- "type": "string"
+ "forward_tags": {
+ "default": true,
+ "description": "Whether tags from the forwarded logs should be forwarded or not.",
+ "example": true,
+ "type": "boolean"
},
- "services": {
- "description": "Service names impacted by the incident. If possible, use names registered in the Service Catalog. Required when the team field is not provided.",
+ "forward_tags_restriction_list": {
+ "default": [],
+ "description": "List of [keys of tags](https://docs.datadoghq.com/getting_started/tagging/#define-tags) to be restricted from being forwarded.\nAn empty list represents no restriction is in place and either all or no tags will be forwarded depending on `forward_tags_restriction_list_type` parameter.",
"example": [
- "shopist"
+ "datacenter",
+ "host"
],
"items": {
+ "description": "The [key part of a tag](https://docs.datadoghq.com/getting_started/tagging/#define-tags).",
"type": "string"
},
+ "maxItems": 10,
+ "minItems": 0,
"type": "array"
},
- "severity": {
- "description": "Incident severity.",
- "example": "High",
- "type": "string"
- },
- "started_at": {
- "description": "Unix timestamp when the incident started. It must be in nanoseconds, milliseconds, or seconds.",
- "example": 1693491974000000000,
- "format": "int64",
- "type": "integer"
- },
- "team": {
- "description": "Name of the team owning the services impacted. If possible, use team handles registered in Datadog. Required when the services field is not provided.",
- "example": "backend",
- "type": "string"
+ "forward_tags_restriction_list_type": {
+ "default": "ALLOW_LIST",
+ "description": "How `forward_tags_restriction_list` parameter should be interpreted.\nIf `ALLOW_LIST`, then only tags whose keys on the forwarded logs match the ones on the restriction list\nare forwarded.\n\n`BLOCK_LIST` works the opposite way. It does not forward the tags matching the ones on the list.",
+ "enum": [
+ "ALLOW_LIST",
+ "BLOCK_LIST"
+ ],
+ "example": "ALLOW_LIST",
+ "type": "string",
+ "x-enum-varnames": [
+ "ALLOW_LIST",
+ "BLOCK_LIST"
+ ]
},
- "version": {
- "description": "Version to correlate with [APM Deployment Tracking](https://docs.datadoghq.com/tracing/services/deployment_tracking/).",
- "example": "v1.12.07",
- "type": "string"
- }
- },
- "required": [
- "started_at"
- ],
- "type": "object"
- },
- "DORAIncidentRequestData": {
- "description": "The JSON:API data.",
- "properties": {
- "attributes": {
- "description": "Attributes to create a DORA incident event.",
- "properties": {
- "env": {
- "description": "Environment name that was impacted by the incident.",
- "example": "staging",
- "type": "string"
+ "forwarder_destination": {
+ "description": "A custom destination's location to forward logs.",
+ "oneOf": [
+ {
+ "description": "The HTTP destination.",
+ "properties": {
+ "auth": {
+ "description": "Authentication method of the HTTP requests.",
+ "oneOf": [
+ {
+ "description": "Basic access authentication.",
+ "properties": {
+ "password": {
+ "description": "The password of the authentication. This field is not returned by the API.",
+ "example": "datadog-custom-destination-password",
+ "type": "string",
+ "writeOnly": true
+ },
+ "type": {
+ "default": "basic",
+ "description": "Type of the basic access authentication.",
+ "enum": [
+ "basic"
+ ],
+ "example": "basic",
+ "type": "string",
+ "x-enum-varnames": [
+ "BASIC"
+ ]
+ },
+ "username": {
+ "description": "The username of the authentication. This field is not returned by the API.",
+ "example": "datadog-custom-destination-username",
+ "type": "string",
+ "writeOnly": true
+ }
+ },
+ "required": [
+ "type",
+ "username",
+ "password"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Custom header access authentication.",
+ "properties": {
+ "header_name": {
+ "description": "The header name of the authentication.",
+ "example": "CUSTOM-HEADER-NAME",
+ "type": "string"
+ },
+ "header_value": {
+ "description": "The header value of the authentication. This field is not returned by the API.",
+ "example": "CUSTOM-HEADER-AUTHENTICATION-VALUE",
+ "type": "string",
+ "writeOnly": true
+ },
+ "type": {
+ "default": "custom_header",
+ "description": "Type of the custom header access authentication.",
+ "enum": [
+ "custom_header"
+ ],
+ "example": "custom_header",
+ "type": "string",
+ "x-enum-varnames": [
+ "CUSTOM_HEADER"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "header_name",
+ "header_value"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "endpoint": {
+ "description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
+ "example": "https://example.com",
+ "type": "string"
+ },
+ "type": {
+ "default": "http",
+ "description": "Type of the HTTP destination.",
+ "enum": [
+ "http"
+ ],
+ "example": "http",
+ "type": "string",
+ "x-enum-varnames": [
+ "HTTP"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "endpoint",
+ "auth"
+ ],
+ "type": "object"
},
- "finished_at": {
- "description": "Unix timestamp when the incident finished. It must be in nanoseconds, milliseconds, or seconds, and it should not be older than 1 hour.",
- "example": 1693491984000000000,
- "format": "int64",
- "type": "integer"
+ {
+ "description": "The Splunk HTTP Event Collector (HEC) destination.",
+ "properties": {
+ "access_token": {
+ "description": "Access token of the Splunk HTTP Event Collector. This field is not returned by the API.",
+ "example": "splunk_access_token",
+ "type": "string",
+ "writeOnly": true
+ },
+ "endpoint": {
+ "description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
+ "example": "https://example.com",
+ "type": "string"
+ },
+ "type": {
+ "default": "splunk_hec",
+ "description": "Type of the Splunk HTTP Event Collector (HEC) destination.",
+ "enum": [
+ "splunk_hec"
+ ],
+ "example": "splunk_hec",
+ "type": "string",
+ "x-enum-varnames": [
+ "SPLUNK_HEC"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "endpoint",
+ "access_token"
+ ],
+ "type": "object"
},
- "git": {
- "description": "Git info for DORA Metrics events.",
+ {
+ "description": "The Elasticsearch destination.",
"properties": {
- "commit_sha": {
- "description": "Git Commit SHA.",
- "example": "66adc9350f2cc9b250b69abddab733dd55e1a588",
- "pattern": "^[a-fA-F0-9]{40,}$",
+ "auth": {
+ "description": "Basic access authentication.",
+ "properties": {
+ "password": {
+ "description": "The password of the authentication. This field is not returned by the API.",
+ "example": "datadog-custom-destination-password",
+ "type": "string",
+ "writeOnly": true
+ },
+ "username": {
+ "description": "The username of the authentication. This field is not returned by the API.",
+ "example": "datadog-custom-destination-username",
+ "type": "string",
+ "writeOnly": true
+ }
+ },
+ "required": [
+ "username",
+ "password"
+ ],
+ "type": "object"
+ },
+ "endpoint": {
+ "description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
+ "example": "https://example.com",
"type": "string"
},
- "repository_url": {
- "description": "Git Repository URL",
- "example": "https://github.com/organization/example-repository",
+ "index_name": {
+ "description": "Name of the Elasticsearch index (must follow [Elasticsearch's criteria](https://www.elastic.co/guide/en/elasticsearch/reference/8.11/indices-create-index.html#indices-create-api-path-params)).",
+ "example": "nginx-logs",
+ "type": "string"
+ },
+ "index_rotation": {
+ "description": "Date pattern with US locale and UTC timezone to be appended to the index name after adding `-`\n(that is, `${index_name}-${indexPattern}`).\nYou can customize the index rotation naming pattern by choosing one of these options:\n- Hourly: `yyyy-MM-dd-HH` (as an example, it would render: `2022-10-19-09`)\n- Daily: `yyyy-MM-dd` (as an example, it would render: `2022-10-19`)\n- Weekly: `yyyy-'W'ww` (as an example, it would render: `2022-W42`)\n- Monthly: `yyyy-MM` (as an example, it would render: `2022-10`)\n\nIf this field is missing or is blank, it means that the index name will always be the same\n(that is, no rotation).",
+ "example": "yyyy-MM-dd",
"type": "string"
+ },
+ "type": {
+ "default": "elasticsearch",
+ "description": "Type of the Elasticsearch destination.",
+ "enum": [
+ "elasticsearch"
+ ],
+ "example": "elasticsearch",
+ "type": "string",
+ "x-enum-varnames": [
+ "ELASTICSEARCH"
+ ]
}
},
"required": [
- "repository_url",
- "commit_sha"
+ "type",
+ "endpoint",
+ "auth",
+ "index_name"
],
"type": "object"
+ }
+ ]
+ },
+ "name": {
+ "description": "The custom destination name.",
+ "example": "Nginx logs",
+ "type": "string"
+ },
+ "query": {
+ "default": "",
+ "description": "The custom destination query and filter. Logs matching this query are forwarded to the destination.",
+ "example": "source:nginx",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "CustomDestinationUpdateRequestDefinition": {
+ "description": "The definition of a custom destination.",
+ "properties": {
+ "attributes": {
+ "description": "The attributes associated with the custom destination.",
+ "properties": {
+ "enabled": {
+ "default": true,
+ "description": "Whether logs matching this custom destination should be forwarded or not.",
+ "example": true,
+ "type": "boolean"
},
- "id": {
- "description": "Incident ID. Required to update a previously sent incident.",
- "type": "string"
- },
- "name": {
- "description": "Incident name.",
- "example": "Webserver is down failing all requests.",
- "type": "string"
+ "forward_tags": {
+ "default": true,
+ "description": "Whether tags from the forwarded logs should be forwarded or not.",
+ "example": true,
+ "type": "boolean"
},
- "services": {
- "description": "Service names impacted by the incident. If possible, use names registered in the Service Catalog. Required when the team field is not provided.",
+ "forward_tags_restriction_list": {
+ "default": [],
+ "description": "List of [keys of tags](https://docs.datadoghq.com/getting_started/tagging/#define-tags) to be restricted from being forwarded.\nAn empty list represents no restriction is in place and either all or no tags will be forwarded depending on `forward_tags_restriction_list_type` parameter.",
"example": [
- "shopist"
+ "datacenter",
+ "host"
],
"items": {
+ "description": "The [key part of a tag](https://docs.datadoghq.com/getting_started/tagging/#define-tags).",
"type": "string"
},
+ "maxItems": 10,
+ "minItems": 0,
"type": "array"
},
- "severity": {
- "description": "Incident severity.",
- "example": "High",
- "type": "string"
- },
- "started_at": {
- "description": "Unix timestamp when the incident started. It must be in nanoseconds, milliseconds, or seconds.",
- "example": 1693491974000000000,
- "format": "int64",
- "type": "integer"
- },
- "team": {
- "description": "Name of the team owning the services impacted. If possible, use team handles registered in Datadog. Required when the services field is not provided.",
- "example": "backend",
- "type": "string"
- },
- "version": {
- "description": "Version to correlate with [APM Deployment Tracking](https://docs.datadoghq.com/tracing/services/deployment_tracking/).",
- "example": "v1.12.07",
- "type": "string"
- }
- },
- "required": [
- "started_at"
- ],
- "type": "object"
- }
- },
- "required": [
- "attributes"
- ],
- "type": "object"
- },
- "DORAIncidentResponse": {
- "description": "Response after receiving a DORA incident event.",
- "properties": {
- "data": {
- "description": "Response after receiving a DORA incident event.",
- "properties": {
- "id": {
- "description": "The ID of the received DORA incident event.",
- "example": "4242fcdd31586083",
- "type": "string"
- },
- "type": {
- "default": "dora_incident",
- "description": "JSON:API type for DORA incident events.",
+ "forward_tags_restriction_list_type": {
+ "default": "ALLOW_LIST",
+ "description": "How `forward_tags_restriction_list` parameter should be interpreted.\nIf `ALLOW_LIST`, then only tags whose keys on the forwarded logs match the ones on the restriction list\nare forwarded.\n\n`BLOCK_LIST` works the opposite way. It does not forward the tags matching the ones on the list.",
"enum": [
- "dora_incident"
+ "ALLOW_LIST",
+ "BLOCK_LIST"
],
- "example": "dora_incident",
+ "example": "ALLOW_LIST",
"type": "string",
"x-enum-varnames": [
- "DORA_INCIDENT"
+ "ALLOW_LIST",
+ "BLOCK_LIST"
+ ]
+ },
+ "forwarder_destination": {
+ "description": "A custom destination's location to forward logs.",
+ "oneOf": [
+ {
+ "description": "The HTTP destination.",
+ "properties": {
+ "auth": {
+ "description": "Authentication method of the HTTP requests.",
+ "oneOf": [
+ {
+ "description": "Basic access authentication.",
+ "properties": {
+ "password": {
+ "description": "The password of the authentication. This field is not returned by the API.",
+ "example": "datadog-custom-destination-password",
+ "type": "string",
+ "writeOnly": true
+ },
+ "type": {
+ "default": "basic",
+ "description": "Type of the basic access authentication.",
+ "enum": [
+ "basic"
+ ],
+ "example": "basic",
+ "type": "string",
+ "x-enum-varnames": [
+ "BASIC"
+ ]
+ },
+ "username": {
+ "description": "The username of the authentication. This field is not returned by the API.",
+ "example": "datadog-custom-destination-username",
+ "type": "string",
+ "writeOnly": true
+ }
+ },
+ "required": [
+ "type",
+ "username",
+ "password"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Custom header access authentication.",
+ "properties": {
+ "header_name": {
+ "description": "The header name of the authentication.",
+ "example": "CUSTOM-HEADER-NAME",
+ "type": "string"
+ },
+ "header_value": {
+ "description": "The header value of the authentication. This field is not returned by the API.",
+ "example": "CUSTOM-HEADER-AUTHENTICATION-VALUE",
+ "type": "string",
+ "writeOnly": true
+ },
+ "type": {
+ "default": "custom_header",
+ "description": "Type of the custom header access authentication.",
+ "enum": [
+ "custom_header"
+ ],
+ "example": "custom_header",
+ "type": "string",
+ "x-enum-varnames": [
+ "CUSTOM_HEADER"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "header_name",
+ "header_value"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "endpoint": {
+ "description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
+ "example": "https://example.com",
+ "type": "string"
+ },
+ "type": {
+ "default": "http",
+ "description": "Type of the HTTP destination.",
+ "enum": [
+ "http"
+ ],
+ "example": "http",
+ "type": "string",
+ "x-enum-varnames": [
+ "HTTP"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "endpoint",
+ "auth"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "The Splunk HTTP Event Collector (HEC) destination.",
+ "properties": {
+ "access_token": {
+ "description": "Access token of the Splunk HTTP Event Collector. This field is not returned by the API.",
+ "example": "splunk_access_token",
+ "type": "string",
+ "writeOnly": true
+ },
+ "endpoint": {
+ "description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
+ "example": "https://example.com",
+ "type": "string"
+ },
+ "type": {
+ "default": "splunk_hec",
+ "description": "Type of the Splunk HTTP Event Collector (HEC) destination.",
+ "enum": [
+ "splunk_hec"
+ ],
+ "example": "splunk_hec",
+ "type": "string",
+ "x-enum-varnames": [
+ "SPLUNK_HEC"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "endpoint",
+ "access_token"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "The Elasticsearch destination.",
+ "properties": {
+ "auth": {
+ "description": "Basic access authentication.",
+ "properties": {
+ "password": {
+ "description": "The password of the authentication. This field is not returned by the API.",
+ "example": "datadog-custom-destination-password",
+ "type": "string",
+ "writeOnly": true
+ },
+ "username": {
+ "description": "The username of the authentication. This field is not returned by the API.",
+ "example": "datadog-custom-destination-username",
+ "type": "string",
+ "writeOnly": true
+ }
+ },
+ "required": [
+ "username",
+ "password"
+ ],
+ "type": "object"
+ },
+ "endpoint": {
+ "description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
+ "example": "https://example.com",
+ "type": "string"
+ },
+ "index_name": {
+ "description": "Name of the Elasticsearch index (must follow [Elasticsearch's criteria](https://www.elastic.co/guide/en/elasticsearch/reference/8.11/indices-create-index.html#indices-create-api-path-params)).",
+ "example": "nginx-logs",
+ "type": "string"
+ },
+ "index_rotation": {
+ "description": "Date pattern with US locale and UTC timezone to be appended to the index name after adding `-`\n(that is, `${index_name}-${indexPattern}`).\nYou can customize the index rotation naming pattern by choosing one of these options:\n- Hourly: `yyyy-MM-dd-HH` (as an example, it would render: `2022-10-19-09`)\n- Daily: `yyyy-MM-dd` (as an example, it would render: `2022-10-19`)\n- Weekly: `yyyy-'W'ww` (as an example, it would render: `2022-W42`)\n- Monthly: `yyyy-MM` (as an example, it would render: `2022-10`)\n\nIf this field is missing or is blank, it means that the index name will always be the same\n(that is, no rotation).",
+ "example": "yyyy-MM-dd",
+ "type": "string"
+ },
+ "type": {
+ "default": "elasticsearch",
+ "description": "Type of the Elasticsearch destination.",
+ "enum": [
+ "elasticsearch"
+ ],
+ "example": "elasticsearch",
+ "type": "string",
+ "x-enum-varnames": [
+ "ELASTICSEARCH"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "endpoint",
+ "auth",
+ "index_name"
+ ],
+ "type": "object"
+ }
]
+ },
+ "name": {
+ "description": "The custom destination name.",
+ "example": "Nginx logs",
+ "type": "string"
+ },
+ "query": {
+ "default": "",
+ "description": "The custom destination query and filter. Logs matching this query are forwarded to the destination.",
+ "example": "source:nginx",
+ "type": "string"
}
},
- "required": [
- "id"
- ],
"type": "object"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "DORAIncidentResponseData": {
- "description": "Response after receiving a DORA incident event.",
- "properties": {
+ },
"id": {
- "description": "The ID of the received DORA incident event.",
- "example": "4242fcdd31586083",
+ "description": "The custom destination ID.",
+ "example": "be5d7a69-d0c8-4d4d-8ee8-bba292d98139",
"type": "string"
},
"type": {
- "default": "dora_incident",
- "description": "JSON:API type for DORA incident events.",
+ "default": "custom_destination",
+ "description": "The type of the resource. The value should always be `custom_destination`.",
"enum": [
- "dora_incident"
+ "custom_destination"
],
- "example": "dora_incident",
+ "example": "custom_destination",
"type": "string",
"x-enum-varnames": [
- "DORA_INCIDENT"
+ "CUSTOM_DESTINATION"
]
}
},
"required": [
+ "type",
"id"
],
"type": "object"
},
- "DORAIncidentType": {
- "default": "dora_incident",
- "description": "JSON:API type for DORA incident events.",
- "enum": [
- "dora_incident"
- ],
- "example": "dora_incident",
- "type": "string",
- "x-enum-varnames": [
- "DORA_INCIDENT"
- ]
- },
- "DashboardListAddItemsRequest": {
- "description": "Request containing a list of dashboards to add.",
+ "CustomDestinationsResponse": {
+ "description": "The available custom destinations.",
"properties": {
- "dashboards": {
- "description": "List of dashboards to add the dashboard list.",
+ "data": {
+ "description": "A list of custom destinations.",
"items": {
- "description": "A dashboard within a list.",
+ "description": "The definition of a custom destination.",
"properties": {
- "id": {
- "description": "ID of the dashboard.",
- "example": "q5j-nti-fv6",
- "type": "string"
- },
- "type": {
- "description": "The type of the dashboard.",
- "enum": [
+ "attributes": {
+ "description": "The attributes associated with the custom destination.",
+ "properties": {
+ "enabled": {
+ "default": true,
+ "description": "Whether logs matching this custom destination should be forwarded or not.",
+ "example": true,
+ "type": "boolean"
+ },
+ "forward_tags": {
+ "default": true,
+ "description": "Whether tags from the forwarded logs should be forwarded or not.",
+ "example": true,
+ "type": "boolean"
+ },
+ "forward_tags_restriction_list": {
+ "default": [],
+ "description": "List of [keys of tags](https://docs.datadoghq.com/getting_started/tagging/#define-tags) to be filtered.\n\nAn empty list represents no restriction is in place and either all or no tags will be\nforwarded depending on `forward_tags_restriction_list_type` parameter.",
+ "example": [
+ "datacenter",
+ "host"
+ ],
+ "items": {
+ "description": "The [key part of a tag](https://docs.datadoghq.com/getting_started/tagging/#define-tags).",
+ "type": "string"
+ },
+ "maxItems": 10,
+ "minItems": 0,
+ "type": "array"
+ },
+ "forward_tags_restriction_list_type": {
+ "default": "ALLOW_LIST",
+ "description": "How `forward_tags_restriction_list` parameter should be interpreted.\nIf `ALLOW_LIST`, then only tags whose keys on the forwarded logs match the ones on the restriction list\nare forwarded.\n\n`BLOCK_LIST` works the opposite way. It does not forward the tags matching the ones on the list.",
+ "enum": [
+ "ALLOW_LIST",
+ "BLOCK_LIST"
+ ],
+ "example": "ALLOW_LIST",
+ "type": "string",
+ "x-enum-varnames": [
+ "ALLOW_LIST",
+ "BLOCK_LIST"
+ ]
+ },
+ "forwarder_destination": {
+ "description": "A custom destination's location to forward logs.",
+ "oneOf": [
+ {
+ "description": "The HTTP destination.",
+ "properties": {
+ "auth": {
+ "description": "Authentication method of the HTTP requests.",
+ "oneOf": [
+ {
+ "description": "Basic access authentication.",
+ "properties": {
+ "type": {
+ "default": "basic",
+ "description": "Type of the basic access authentication.",
+ "enum": [
+ "basic"
+ ],
+ "example": "basic",
+ "type": "string",
+ "x-enum-varnames": [
+ "BASIC"
+ ]
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Custom header access authentication.",
+ "properties": {
+ "header_name": {
+ "description": "The header name of the authentication.",
+ "example": "CUSTOM-HEADER-NAME",
+ "type": "string"
+ },
+ "type": {
+ "default": "custom_header",
+ "description": "Type of the custom header access authentication.",
+ "enum": [
+ "custom_header"
+ ],
+ "example": "custom_header",
+ "type": "string",
+ "x-enum-varnames": [
+ "CUSTOM_HEADER"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "header_name"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "endpoint": {
+ "description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
+ "example": "https://example.com",
+ "type": "string"
+ },
+ "type": {
+ "default": "http",
+ "description": "Type of the HTTP destination.",
+ "enum": [
+ "http"
+ ],
+ "example": "http",
+ "type": "string",
+ "x-enum-varnames": [
+ "HTTP"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "endpoint",
+ "auth"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "The Splunk HTTP Event Collector (HEC) destination.",
+ "properties": {
+ "endpoint": {
+ "description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
+ "example": "https://example.com",
+ "type": "string"
+ },
+ "type": {
+ "default": "splunk_hec",
+ "description": "Type of the Splunk HTTP Event Collector (HEC) destination.",
+ "enum": [
+ "splunk_hec"
+ ],
+ "example": "splunk_hec",
+ "type": "string",
+ "x-enum-varnames": [
+ "SPLUNK_HEC"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "endpoint"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "The Elasticsearch destination.",
+ "properties": {
+ "auth": {
+ "additionalProperties": {
+ "description": "Basic access authentication."
+ },
+ "description": "Basic access authentication.",
+ "type": "object"
+ },
+ "endpoint": {
+ "description": "The destination for which logs will be forwarded to.\nMust have HTTPS scheme and forwarding back to Datadog is not allowed.",
+ "example": "https://example.com",
+ "type": "string"
+ },
+ "index_name": {
+ "description": "Name of the Elasticsearch index (must follow [Elasticsearch's criteria](https://www.elastic.co/guide/en/elasticsearch/reference/8.11/indices-create-index.html#indices-create-api-path-params)).",
+ "example": "nginx-logs",
+ "type": "string"
+ },
+ "index_rotation": {
+ "description": "Date pattern with US locale and UTC timezone to be appended to the index name after adding `-`\n(that is, `${index_name}-${indexPattern}`).\nYou can customize the index rotation naming pattern by choosing one of these options:\n- Hourly: `yyyy-MM-dd-HH` (as an example, it would render: `2022-10-19-09`)\n- Daily: `yyyy-MM-dd` (as an example, it would render: `2022-10-19`)\n- Weekly: `yyyy-'W'ww` (as an example, it would render: `2022-W42`)\n- Monthly: `yyyy-MM` (as an example, it would render: `2022-10`)\n\nIf this field is missing or is blank, it means that the index name will always be the same\n(that is, no rotation).",
+ "example": "yyyy-MM-dd",
+ "type": "string"
+ },
+ "type": {
+ "default": "elasticsearch",
+ "description": "Type of the Elasticsearch destination.",
+ "enum": [
+ "elasticsearch"
+ ],
+ "example": "elasticsearch",
+ "type": "string",
+ "x-enum-varnames": [
+ "ELASTICSEARCH"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "endpoint",
+ "auth",
+ "index_name"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "name": {
+ "description": "The custom destination name.",
+ "example": "Nginx logs",
+ "type": "string"
+ },
+ "query": {
+ "default": "",
+ "description": "The custom destination query filter. Logs matching this query are forwarded to the destination.",
+ "example": "source:nginx",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The custom destination ID.",
+ "example": "be5d7a69-d0c8-4d4d-8ee8-bba292d98139",
+ "readOnly": true,
+ "type": "string"
+ },
+ "type": {
+ "default": "custom_destination",
+ "description": "The type of the resource. The value should always be `custom_destination`.",
+ "enum": [
+ "custom_destination"
+ ],
+ "example": "custom_destination",
+ "type": "string",
+ "x-enum-varnames": [
+ "CUSTOM_DESTINATION"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "DORADeploymentRequest": {
+ "description": "Request to create a DORA deployment event.",
+ "properties": {
+ "data": {
+ "description": "The JSON:API data.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes to create a DORA deployment event.",
+ "properties": {
+ "env": {
+ "description": "Environment name to where the service was deployed.",
+ "example": "staging",
+ "type": "string"
+ },
+ "finished_at": {
+ "description": "Unix timestamp when the deployment finished. It must be in nanoseconds, milliseconds, or seconds, and it should not be older than 1 hour.",
+ "example": 1693491984000000000,
+ "format": "int64",
+ "type": "integer"
+ },
+ "git": {
+ "description": "Git info for DORA Metrics events.",
+ "properties": {
+ "commit_sha": {
+ "description": "Git Commit SHA.",
+ "example": "66adc9350f2cc9b250b69abddab733dd55e1a588",
+ "pattern": "^[a-fA-F0-9]{40,}$",
+ "type": "string"
+ },
+ "repository_url": {
+ "description": "Git Repository URL",
+ "example": "https://github.com/organization/example-repository",
+ "type": "string"
+ }
+ },
+ "required": [
+ "repository_url",
+ "commit_sha"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "description": "Deployment ID.",
+ "type": "string"
+ },
+ "service": {
+ "description": "Service name.",
+ "example": "shopist",
+ "type": "string"
+ },
+ "started_at": {
+ "description": "Unix timestamp when the deployment started. It must be in nanoseconds, milliseconds, or seconds.",
+ "example": 1693491974000000000,
+ "format": "int64",
+ "type": "integer"
+ },
+ "team": {
+ "description": "Name of the team owning the deployed service. If not provided, this is automatically populated with the team associated with the service in the Service Catalog.",
+ "example": "backend",
+ "type": "string"
+ },
+ "version": {
+ "description": "Version to correlate with [APM Deployment Tracking](https://docs.datadoghq.com/tracing/services/deployment_tracking/).",
+ "example": "v1.12.07",
+ "type": "string"
+ }
+ },
+ "required": [
+ "service",
+ "started_at",
+ "finished_at"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "attributes"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "DORADeploymentRequestAttributes": {
+ "description": "Attributes to create a DORA deployment event.",
+ "properties": {
+ "env": {
+ "description": "Environment name to where the service was deployed.",
+ "example": "staging",
+ "type": "string"
+ },
+ "finished_at": {
+ "description": "Unix timestamp when the deployment finished. It must be in nanoseconds, milliseconds, or seconds, and it should not be older than 1 hour.",
+ "example": 1693491984000000000,
+ "format": "int64",
+ "type": "integer"
+ },
+ "git": {
+ "description": "Git info for DORA Metrics events.",
+ "properties": {
+ "commit_sha": {
+ "description": "Git Commit SHA.",
+ "example": "66adc9350f2cc9b250b69abddab733dd55e1a588",
+ "pattern": "^[a-fA-F0-9]{40,}$",
+ "type": "string"
+ },
+ "repository_url": {
+ "description": "Git Repository URL",
+ "example": "https://github.com/organization/example-repository",
+ "type": "string"
+ }
+ },
+ "required": [
+ "repository_url",
+ "commit_sha"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "description": "Deployment ID.",
+ "type": "string"
+ },
+ "service": {
+ "description": "Service name.",
+ "example": "shopist",
+ "type": "string"
+ },
+ "started_at": {
+ "description": "Unix timestamp when the deployment started. It must be in nanoseconds, milliseconds, or seconds.",
+ "example": 1693491974000000000,
+ "format": "int64",
+ "type": "integer"
+ },
+ "team": {
+ "description": "Name of the team owning the deployed service. If not provided, this is automatically populated with the team associated with the service in the Service Catalog.",
+ "example": "backend",
+ "type": "string"
+ },
+ "version": {
+ "description": "Version to correlate with [APM Deployment Tracking](https://docs.datadoghq.com/tracing/services/deployment_tracking/).",
+ "example": "v1.12.07",
+ "type": "string"
+ }
+ },
+ "required": [
+ "service",
+ "started_at",
+ "finished_at"
+ ],
+ "type": "object"
+ },
+ "DORADeploymentRequestData": {
+ "description": "The JSON:API data.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes to create a DORA deployment event.",
+ "properties": {
+ "env": {
+ "description": "Environment name to where the service was deployed.",
+ "example": "staging",
+ "type": "string"
+ },
+ "finished_at": {
+ "description": "Unix timestamp when the deployment finished. It must be in nanoseconds, milliseconds, or seconds, and it should not be older than 1 hour.",
+ "example": 1693491984000000000,
+ "format": "int64",
+ "type": "integer"
+ },
+ "git": {
+ "description": "Git info for DORA Metrics events.",
+ "properties": {
+ "commit_sha": {
+ "description": "Git Commit SHA.",
+ "example": "66adc9350f2cc9b250b69abddab733dd55e1a588",
+ "pattern": "^[a-fA-F0-9]{40,}$",
+ "type": "string"
+ },
+ "repository_url": {
+ "description": "Git Repository URL",
+ "example": "https://github.com/organization/example-repository",
+ "type": "string"
+ }
+ },
+ "required": [
+ "repository_url",
+ "commit_sha"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "description": "Deployment ID.",
+ "type": "string"
+ },
+ "service": {
+ "description": "Service name.",
+ "example": "shopist",
+ "type": "string"
+ },
+ "started_at": {
+ "description": "Unix timestamp when the deployment started. It must be in nanoseconds, milliseconds, or seconds.",
+ "example": 1693491974000000000,
+ "format": "int64",
+ "type": "integer"
+ },
+ "team": {
+ "description": "Name of the team owning the deployed service. If not provided, this is automatically populated with the team associated with the service in the Service Catalog.",
+ "example": "backend",
+ "type": "string"
+ },
+ "version": {
+ "description": "Version to correlate with [APM Deployment Tracking](https://docs.datadoghq.com/tracing/services/deployment_tracking/).",
+ "example": "v1.12.07",
+ "type": "string"
+ }
+ },
+ "required": [
+ "service",
+ "started_at",
+ "finished_at"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "attributes"
+ ],
+ "type": "object"
+ },
+ "DORADeploymentResponse": {
+ "description": "Response after receiving a DORA deployment event.",
+ "properties": {
+ "data": {
+ "description": "The JSON:API data.",
+ "properties": {
+ "id": {
+ "description": "The ID of the received DORA deployment event.",
+ "example": "4242fcdd31586083",
+ "type": "string"
+ },
+ "type": {
+ "default": "dora_deployment",
+ "description": "JSON:API type for DORA deployment events.",
+ "enum": [
+ "dora_deployment"
+ ],
+ "example": "dora_deployment",
+ "type": "string",
+ "x-enum-varnames": [
+ "DORA_DEPLOYMENT"
+ ]
+ }
+ },
+ "required": [
+ "id"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "DORADeploymentResponseData": {
+ "description": "The JSON:API data.",
+ "properties": {
+ "id": {
+ "description": "The ID of the received DORA deployment event.",
+ "example": "4242fcdd31586083",
+ "type": "string"
+ },
+ "type": {
+ "default": "dora_deployment",
+ "description": "JSON:API type for DORA deployment events.",
+ "enum": [
+ "dora_deployment"
+ ],
+ "example": "dora_deployment",
+ "type": "string",
+ "x-enum-varnames": [
+ "DORA_DEPLOYMENT"
+ ]
+ }
+ },
+ "required": [
+ "id"
+ ],
+ "type": "object"
+ },
+ "DORADeploymentType": {
+ "default": "dora_deployment",
+ "description": "JSON:API type for DORA deployment events.",
+ "enum": [
+ "dora_deployment"
+ ],
+ "example": "dora_deployment",
+ "type": "string",
+ "x-enum-varnames": [
+ "DORA_DEPLOYMENT"
+ ]
+ },
+ "DORAGitInfo": {
+ "description": "Git info for DORA Metrics events.",
+ "properties": {
+ "commit_sha": {
+ "description": "Git Commit SHA.",
+ "example": "66adc9350f2cc9b250b69abddab733dd55e1a588",
+ "pattern": "^[a-fA-F0-9]{40,}$",
+ "type": "string"
+ },
+ "repository_url": {
+ "description": "Git Repository URL",
+ "example": "https://github.com/organization/example-repository",
+ "type": "string"
+ }
+ },
+ "required": [
+ "repository_url",
+ "commit_sha"
+ ],
+ "type": "object"
+ },
+ "DORAIncidentRequest": {
+ "description": "Request to create a DORA incident event.",
+ "properties": {
+ "data": {
+ "description": "The JSON:API data.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes to create a DORA incident event.",
+ "properties": {
+ "env": {
+ "description": "Environment name that was impacted by the incident.",
+ "example": "staging",
+ "type": "string"
+ },
+ "finished_at": {
+ "description": "Unix timestamp when the incident finished. It must be in nanoseconds, milliseconds, or seconds, and it should not be older than 1 hour.",
+ "example": 1693491984000000000,
+ "format": "int64",
+ "type": "integer"
+ },
+ "git": {
+ "description": "Git info for DORA Metrics events.",
+ "properties": {
+ "commit_sha": {
+ "description": "Git Commit SHA.",
+ "example": "66adc9350f2cc9b250b69abddab733dd55e1a588",
+ "pattern": "^[a-fA-F0-9]{40,}$",
+ "type": "string"
+ },
+ "repository_url": {
+ "description": "Git Repository URL",
+ "example": "https://github.com/organization/example-repository",
+ "type": "string"
+ }
+ },
+ "required": [
+ "repository_url",
+ "commit_sha"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "description": "Incident ID. Required to update a previously sent incident.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Incident name.",
+ "example": "Webserver is down failing all requests.",
+ "type": "string"
+ },
+ "services": {
+ "description": "Service names impacted by the incident. If possible, use names registered in the Service Catalog. Required when the team field is not provided.",
+ "example": [
+ "shopist"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "severity": {
+ "description": "Incident severity.",
+ "example": "High",
+ "type": "string"
+ },
+ "started_at": {
+ "description": "Unix timestamp when the incident started. It must be in nanoseconds, milliseconds, or seconds.",
+ "example": 1693491974000000000,
+ "format": "int64",
+ "type": "integer"
+ },
+ "team": {
+ "description": "Name of the team owning the services impacted. If possible, use team handles registered in Datadog. Required when the services field is not provided.",
+ "example": "backend",
+ "type": "string"
+ },
+ "version": {
+ "description": "Version to correlate with [APM Deployment Tracking](https://docs.datadoghq.com/tracing/services/deployment_tracking/).",
+ "example": "v1.12.07",
+ "type": "string"
+ }
+ },
+ "required": [
+ "started_at"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "attributes"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "DORAIncidentRequestAttributes": {
+ "description": "Attributes to create a DORA incident event.",
+ "properties": {
+ "env": {
+ "description": "Environment name that was impacted by the incident.",
+ "example": "staging",
+ "type": "string"
+ },
+ "finished_at": {
+ "description": "Unix timestamp when the incident finished. It must be in nanoseconds, milliseconds, or seconds, and it should not be older than 1 hour.",
+ "example": 1693491984000000000,
+ "format": "int64",
+ "type": "integer"
+ },
+ "git": {
+ "description": "Git info for DORA Metrics events.",
+ "properties": {
+ "commit_sha": {
+ "description": "Git Commit SHA.",
+ "example": "66adc9350f2cc9b250b69abddab733dd55e1a588",
+ "pattern": "^[a-fA-F0-9]{40,}$",
+ "type": "string"
+ },
+ "repository_url": {
+ "description": "Git Repository URL",
+ "example": "https://github.com/organization/example-repository",
+ "type": "string"
+ }
+ },
+ "required": [
+ "repository_url",
+ "commit_sha"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "description": "Incident ID. Required to update a previously sent incident.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Incident name.",
+ "example": "Webserver is down failing all requests.",
+ "type": "string"
+ },
+ "services": {
+ "description": "Service names impacted by the incident. If possible, use names registered in the Service Catalog. Required when the team field is not provided.",
+ "example": [
+ "shopist"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "severity": {
+ "description": "Incident severity.",
+ "example": "High",
+ "type": "string"
+ },
+ "started_at": {
+ "description": "Unix timestamp when the incident started. It must be in nanoseconds, milliseconds, or seconds.",
+ "example": 1693491974000000000,
+ "format": "int64",
+ "type": "integer"
+ },
+ "team": {
+ "description": "Name of the team owning the services impacted. If possible, use team handles registered in Datadog. Required when the services field is not provided.",
+ "example": "backend",
+ "type": "string"
+ },
+ "version": {
+ "description": "Version to correlate with [APM Deployment Tracking](https://docs.datadoghq.com/tracing/services/deployment_tracking/).",
+ "example": "v1.12.07",
+ "type": "string"
+ }
+ },
+ "required": [
+ "started_at"
+ ],
+ "type": "object"
+ },
+ "DORAIncidentRequestData": {
+ "description": "The JSON:API data.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes to create a DORA incident event.",
+ "properties": {
+ "env": {
+ "description": "Environment name that was impacted by the incident.",
+ "example": "staging",
+ "type": "string"
+ },
+ "finished_at": {
+ "description": "Unix timestamp when the incident finished. It must be in nanoseconds, milliseconds, or seconds, and it should not be older than 1 hour.",
+ "example": 1693491984000000000,
+ "format": "int64",
+ "type": "integer"
+ },
+ "git": {
+ "description": "Git info for DORA Metrics events.",
+ "properties": {
+ "commit_sha": {
+ "description": "Git Commit SHA.",
+ "example": "66adc9350f2cc9b250b69abddab733dd55e1a588",
+ "pattern": "^[a-fA-F0-9]{40,}$",
+ "type": "string"
+ },
+ "repository_url": {
+ "description": "Git Repository URL",
+ "example": "https://github.com/organization/example-repository",
+ "type": "string"
+ }
+ },
+ "required": [
+ "repository_url",
+ "commit_sha"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "description": "Incident ID. Required to update a previously sent incident.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Incident name.",
+ "example": "Webserver is down failing all requests.",
+ "type": "string"
+ },
+ "services": {
+ "description": "Service names impacted by the incident. If possible, use names registered in the Service Catalog. Required when the team field is not provided.",
+ "example": [
+ "shopist"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "severity": {
+ "description": "Incident severity.",
+ "example": "High",
+ "type": "string"
+ },
+ "started_at": {
+ "description": "Unix timestamp when the incident started. It must be in nanoseconds, milliseconds, or seconds.",
+ "example": 1693491974000000000,
+ "format": "int64",
+ "type": "integer"
+ },
+ "team": {
+ "description": "Name of the team owning the services impacted. If possible, use team handles registered in Datadog. Required when the services field is not provided.",
+ "example": "backend",
+ "type": "string"
+ },
+ "version": {
+ "description": "Version to correlate with [APM Deployment Tracking](https://docs.datadoghq.com/tracing/services/deployment_tracking/).",
+ "example": "v1.12.07",
+ "type": "string"
+ }
+ },
+ "required": [
+ "started_at"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "attributes"
+ ],
+ "type": "object"
+ },
+ "DORAIncidentResponse": {
+ "description": "Response after receiving a DORA incident event.",
+ "properties": {
+ "data": {
+ "description": "Response after receiving a DORA incident event.",
+ "properties": {
+ "id": {
+ "description": "The ID of the received DORA incident event.",
+ "example": "4242fcdd31586083",
+ "type": "string"
+ },
+ "type": {
+ "default": "dora_incident",
+ "description": "JSON:API type for DORA incident events.",
+ "enum": [
+ "dora_incident"
+ ],
+ "example": "dora_incident",
+ "type": "string",
+ "x-enum-varnames": [
+ "DORA_INCIDENT"
+ ]
+ }
+ },
+ "required": [
+ "id"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "DORAIncidentResponseData": {
+ "description": "Response after receiving a DORA incident event.",
+ "properties": {
+ "id": {
+ "description": "The ID of the received DORA incident event.",
+ "example": "4242fcdd31586083",
+ "type": "string"
+ },
+ "type": {
+ "default": "dora_incident",
+ "description": "JSON:API type for DORA incident events.",
+ "enum": [
+ "dora_incident"
+ ],
+ "example": "dora_incident",
+ "type": "string",
+ "x-enum-varnames": [
+ "DORA_INCIDENT"
+ ]
+ }
+ },
+ "required": [
+ "id"
+ ],
+ "type": "object"
+ },
+ "DORAIncidentType": {
+ "default": "dora_incident",
+ "description": "JSON:API type for DORA incident events.",
+ "enum": [
+ "dora_incident"
+ ],
+ "example": "dora_incident",
+ "type": "string",
+ "x-enum-varnames": [
+ "DORA_INCIDENT"
+ ]
+ },
+ "DashboardListAddItemsRequest": {
+ "description": "Request containing a list of dashboards to add.",
+ "properties": {
+ "dashboards": {
+ "description": "List of dashboards to add the dashboard list.",
+ "items": {
+ "description": "A dashboard within a list.",
+ "properties": {
+ "id": {
+ "description": "ID of the dashboard.",
+ "example": "q5j-nti-fv6",
+ "type": "string"
+ },
+ "type": {
+ "description": "The type of the dashboard.",
+ "enum": [
"custom_timeboard",
"custom_screenboard",
"integration_screenboard",
@@ -50518,6 +53484,30 @@
},
"type": "object"
},
+ "DashboardTriggerWrapper": {
+ "description": "Schema for a Dashboard-based trigger.",
+ "properties": {
+ "dashboardTrigger": {
+ "description": "Trigger a workflow VIA a Dashboard.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "dashboardTrigger"
+ ],
+ "type": "object"
+ },
"DashboardType": {
"description": "The type of the dashboard.",
"enum": [
@@ -64852,6 +67842,62 @@
},
"type": "object"
},
+ "ErrorHandler": {
+ "description": "Used to handle errors in an action.",
+ "properties": {
+ "fallbackStepName": {
+ "description": "The `ErrorHandler` `fallbackStepName`.",
+ "example": "",
+ "type": "string"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "retryStrategy",
+ "fallbackStepName"
+ ],
+ "type": "object"
+ },
"Event": {
"description": "The metadata associated with a request.",
"properties": {
@@ -73925,185 +76971,2957 @@
},
"type": "object"
},
- "GetSBOMResponse": {
- "description": "The expected response schema when getting an SBOM.",
+ "GetRuleVersionHistoryData": {
+ "description": "Data for the rule version history.",
"properties": {
- "data": {
- "description": "A single SBOM",
+ "attributes": {
+ "description": "Response object containing the version history of a rule.",
"properties": {
- "attributes": {
- "description": "The JSON:API attributes of the SBOM.",
- "properties": {
- "bomFormat": {
- "description": "Specifies the format of the BOM. This helps to identify the file as CycloneDX since BOM do not have a filename convention nor does JSON schema support namespaces. This value MUST be `CycloneDX`.",
- "example": "CycloneDX",
- "type": "string"
- },
- "components": {
- "description": "A list of software and hardware components.",
- "items": {
- "description": "Software or hardware component.",
- "properties": {
- "bom-ref": {
- "description": "An optional identifier that can be used to reference the component elsewhere in the BOM.",
- "example": "pkg:golang/google.golang.org/grpc@1.68.1",
- "type": "string"
- },
- "name": {
- "description": "The name of the component. This will often be a shortened, single name of the component.",
- "example": "google.golang.org/grpc",
- "type": "string"
- },
- "purl": {
- "description": "Specifies the package-url (purl). The purl, if specified, MUST be valid and conform to the [specification](https://github.com/package-url/purl-spec).",
- "example": "pkg:golang/google.golang.org/grpc@1.68.1",
- "type": "string"
- },
- "type": {
- "description": "The SBOM component type",
- "enum": [
- "application",
- "container",
- "data",
- "device",
- "device-driver",
- "file",
- "firmware",
- "framework",
- "library",
- "machine-learning-model",
- "operating-system",
- "platform"
- ],
- "example": "application",
- "type": "string",
- "x-enum-varnames": [
- "APPLICATION",
- "CONTAINER",
- "DATA",
- "DEVICE",
- "DEVICE_DRIVER",
- "FILE",
- "FIRMWARE",
- "FRAMEWORK",
- "LIBRARY",
- "MACHINE_LEARNING_MODEL",
- "OPERATING_SYSTEM",
- "PLATFORM"
- ]
- },
- "version": {
- "description": "The component version.",
- "example": "1.68.1",
- "type": "string"
- }
- },
- "required": [
- "type",
- "name",
- "version"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "metadata": {
- "description": "Provides additional information about a BOM.",
- "properties": {
- "component": {
- "description": "The component that the BOM describes.",
+ "count": {
+ "description": "The number of rule versions.",
+ "format": "int32",
+ "maximum": 2147483647,
+ "type": "integer"
+ },
+ "data": {
+ "additionalProperties": {
+ "description": "A rule version with a list of updates.",
+ "properties": {
+ "changes": {
+ "description": "A list of changes.",
+ "items": {
+ "description": "A change in a rule version.",
"properties": {
- "name": {
- "description": "The name of the component. This will often be a shortened, single name of the component.",
- "example": "github.com/datadog/datadog-agent",
+ "change": {
+ "description": "The new value of the field.",
+ "example": "cloud_provider:aws",
"type": "string"
},
- "type": {
- "description": "Specifies the type of the component.",
- "example": "application",
+ "field": {
+ "description": "The field that was changed.",
+ "example": "Tags",
"type": "string"
+ },
+ "type": {
+ "description": "The type of change.",
+ "enum": [
+ "create",
+ "update",
+ "delete"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "CREATE",
+ "UPDATE",
+ "DELETE"
+ ]
}
},
"type": "object"
- }
+ },
+ "type": "array"
},
- "type": "object"
- },
- "serialNumber": {
- "description": "Every BOM generated has a unique serial number, even if the contents of the BOM have not changed overt time. The serial number follows [RFC-4122](https://datatracker.ietf.org/doc/html/rfc4122)",
- "example": "urn:uuid:f7119d2f-1vgh-24b5-91f0-12010db72da7",
- "type": "string"
- },
- "specVersion": {
- "description": "The version of the CycloneDX specification a BOM conforms to.",
- "enum": [
- "1.0",
- "1.1",
- "1.2",
- "1.3",
- "1.4",
- "1.5"
- ],
- "example": "1.5",
- "type": "string",
- "x-enum-varnames": [
- "ONE_ZERO",
- "ONE_ONE",
- "ONE_TWO",
- "ONE_THREE",
- "ONE_FOUR",
- "ONE_FIVE"
- ]
+ "rule": {
+ "description": "Create a new rule.",
+ "oneOf": [
+ {
+ "description": "Rule.",
+ "properties": {
+ "cases": {
+ "description": "Cases for generating signals.",
+ "items": {
+ "description": "Case when signal is generated.",
+ "properties": {
+ "actions": {
+ "description": "Action to perform for each rule case.",
+ "items": {
+ "description": "Action to perform when a signal is triggered. Only available for Application Security rule type.",
+ "properties": {
+ "options": {
+ "description": "Options for the rule action",
+ "properties": {
+ "duration": {
+ "description": "Duration of the action in seconds. 0 indicates no expiration.",
+ "example": 0,
+ "format": "int64",
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "description": "The action type.",
+ "enum": [
+ "block_ip",
+ "block_user"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "BLOCK_IP",
+ "BLOCK_USER"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "condition": {
+ "description": "A rule case contains logical operations (`>`,`>=`, `&&`, `||`) to determine if a signal should be generated\nbased on the event counts in the previously defined queries.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the case.",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notification targets for each rule case.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "status": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "complianceSignalOptions": {
+ "description": "How to generate compliance signals. Useful for cloud_configuration rules only.",
+ "properties": {
+ "defaultActivationStatus": {
+ "description": "The default activation status.",
+ "nullable": true,
+ "type": "boolean"
+ },
+ "defaultGroupByFields": {
+ "description": "The default group by fields.",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true,
+ "type": "array"
+ },
+ "userActivationStatus": {
+ "description": "Whether signals will be sent.",
+ "nullable": true,
+ "type": "boolean"
+ },
+ "userGroupByFields": {
+ "description": "Fields to use to group findings by when sending signals.",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true,
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "createdAt": {
+ "description": "When the rule was created, timestamp in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "creationAuthorId": {
+ "description": "User ID of the user who created the rule.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "defaultTags": {
+ "description": "Default Tags for default rules (included in tags)",
+ "example": [
+ "security:attacks"
+ ],
+ "items": {
+ "description": "Default Tag.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "deprecationDate": {
+ "description": "When the rule will be deprecated, timestamp in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "filters": {
+ "description": "Additional queries to filter matched events before they are processed. This field is deprecated for log detection, signal correlation, and workload security rules.",
+ "items": {
+ "description": "The rule's suppression filter.",
+ "properties": {
+ "action": {
+ "description": "The type of filtering action.",
+ "enum": [
+ "require",
+ "suppress"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "REQUIRE",
+ "SUPPRESS"
+ ]
+ },
+ "query": {
+ "description": "Query for selecting logs to apply the filtering action.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "groupSignalsBy": {
+ "description": "Additional grouping to perform on top of the existing groups in the query section. Must be a subset of the existing groups.",
+ "example": [
+ "service"
+ ],
+ "items": {
+ "description": "Field to group by.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "hasExtendedTitle": {
+ "description": "Whether the notifications include the triggering group-by values in their title.",
+ "type": "boolean"
+ },
+ "id": {
+ "description": "The ID of the rule.",
+ "type": "string"
+ },
+ "isDefault": {
+ "description": "Whether the rule is included by default.",
+ "type": "boolean"
+ },
+ "isDeleted": {
+ "description": "Whether the rule has been deleted.",
+ "type": "boolean"
+ },
+ "isEnabled": {
+ "description": "Whether the rule is enabled.",
+ "type": "boolean"
+ },
+ "message": {
+ "description": "Message for generated signals.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the rule.",
+ "type": "string"
+ },
+ "options": {
+ "description": "Options.",
+ "properties": {
+ "complianceRuleOptions": {
+ "additionalProperties": {},
+ "description": "Options for cloud_configuration rules.\nFields `resourceType` and `regoRule` are mandatory when managing custom `cloud_configuration` rules.\n",
+ "properties": {
+ "complexRule": {
+ "description": "Whether the rule is a complex one.\nMust be set to true if `regoRule.resourceTypes` contains more than one item. Defaults to false.\n",
+ "type": "boolean"
+ },
+ "regoRule": {
+ "description": "Rule details.",
+ "properties": {
+ "policy": {
+ "description": "The policy written in `rego`, see: https://www.openpolicyagent.org/docs/latest/policy-language/",
+ "example": "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}\n",
+ "type": "string"
+ },
+ "resourceTypes": {
+ "description": "List of resource types that will be evaluated upon. Must have at least one element.",
+ "example": [
+ "gcp_iam_service_account",
+ "gcp_iam_policy"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "policy",
+ "resourceTypes"
+ ],
+ "type": "object"
+ },
+ "resourceType": {
+ "description": "Main resource type to be checked by the rule. It should be specified again in `regoRule.resourceTypes`.\n",
+ "example": "aws_acm",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "decreaseCriticalityBasedOnEnv": {
+ "description": "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`.",
+ "example": false,
+ "type": "boolean"
+ },
+ "detectionMethod": {
+ "description": "The detection method.",
+ "enum": [
+ "threshold",
+ "new_value",
+ "anomaly_detection",
+ "impossible_travel",
+ "hardcoded",
+ "third_party",
+ "anomaly_threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "THRESHOLD",
+ "NEW_VALUE",
+ "ANOMALY_DETECTION",
+ "IMPOSSIBLE_TRAVEL",
+ "HARDCODED",
+ "THIRD_PARTY",
+ "ANOMALY_THRESHOLD"
+ ]
+ },
+ "evaluationWindow": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS"
+ ]
+ },
+ "hardcodedEvaluatorType": {
+ "description": "Hardcoded evaluator type.",
+ "enum": [
+ "log4shell"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "LOG4SHELL"
+ ]
+ },
+ "impossibleTravelOptions": {
+ "description": "Options on impossible travel detection method.",
+ "properties": {
+ "baselineUserLocations": {
+ "description": "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.",
+ "example": true,
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "keepAlive": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS"
+ ]
+ },
+ "maxSignalDuration": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600,
+ 43200,
+ 86400
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS",
+ "TWELVE_HOURS",
+ "ONE_DAY"
+ ]
+ },
+ "newValueOptions": {
+ "description": "Options on new value detection method.",
+ "properties": {
+ "forgetAfter": {
+ "description": "The duration in days after which a learned value is forgotten.",
+ "enum": [
+ 1,
+ 2,
+ 7,
+ 14,
+ 21,
+ 28
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ONE_DAY",
+ "TWO_DAYS",
+ "ONE_WEEK",
+ "TWO_WEEKS",
+ "THREE_WEEKS",
+ "FOUR_WEEKS"
+ ]
+ },
+ "learningDuration": {
+ "default": 0,
+ "description": "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.",
+ "enum": [
+ 0,
+ 1,
+ 7
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_DAYS",
+ "ONE_DAY",
+ "SEVEN_DAYS"
+ ]
+ },
+ "learningMethod": {
+ "default": "duration",
+ "description": "The learning method used to determine when signals should be generated for values that weren't learned.",
+ "enum": [
+ "duration",
+ "threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "DURATION",
+ "THRESHOLD"
+ ]
+ },
+ "learningThreshold": {
+ "default": 0,
+ "description": "A number of occurrences after which signals will be generated for values that weren't learned.",
+ "enum": [
+ 0,
+ 1
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_OCCURRENCES",
+ "ONE_OCCURRENCE"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "thirdPartyRuleOptions": {
+ "description": "Options on third party detection method.",
+ "properties": {
+ "defaultNotifications": {
+ "description": "Notification targets for the logs that do not correspond to any of the cases.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "defaultStatus": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ },
+ "rootQueries": {
+ "description": "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.",
+ "items": {
+ "description": "A query to be combined with the third party case query.",
+ "properties": {
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "query": {
+ "description": "Query to run on logs.",
+ "example": "source:cloudtrail",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "signalTitleTemplate": {
+ "description": "A template for the signal title; if omitted, the title is generated based on the case name.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "queries": {
+ "description": "Queries for selecting logs which are part of the rule.",
+ "items": {
+ "description": "Query for matching rule.",
+ "properties": {
+ "aggregation": {
+ "description": "The aggregation type.",
+ "enum": [
+ "count",
+ "cardinality",
+ "sum",
+ "max",
+ "new_value",
+ "geo_data",
+ "event_count",
+ "none"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "COUNT",
+ "CARDINALITY",
+ "SUM",
+ "MAX",
+ "NEW_VALUE",
+ "GEO_DATA",
+ "EVENT_COUNT",
+ "NONE"
+ ]
+ },
+ "distinctFields": {
+ "description": "Field for which the cardinality is measured. Sent as an array.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "hasOptionalGroupByFields": {
+ "description": "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.",
+ "example": false,
+ "readOnly": true,
+ "type": "boolean"
+ },
+ "metric": {
+ "deprecated": true,
+ "description": "(Deprecated) The target field to aggregate over when using the sum or max\naggregations. `metrics` field should be used instead.",
+ "type": "string"
+ },
+ "metrics": {
+ "description": "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.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the query.",
+ "type": "string"
+ },
+ "query": {
+ "description": "Query to run on logs.",
+ "example": "a > 3",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "referenceTables": {
+ "description": "Reference tables for the rule.",
+ "items": {
+ "description": "Reference tables used in the queries.",
+ "properties": {
+ "checkPresence": {
+ "description": "Whether to include or exclude the matched values.",
+ "type": "boolean"
+ },
+ "columnName": {
+ "description": "The name of the column in the reference table.",
+ "type": "string"
+ },
+ "logFieldPath": {
+ "description": "The field in the log to match against the reference table.",
+ "type": "string"
+ },
+ "ruleQueryName": {
+ "description": "The name of the query to apply the reference table to.",
+ "type": "string"
+ },
+ "tableName": {
+ "description": "The name of the reference table.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "tags": {
+ "description": "Tags for generated signals.",
+ "items": {
+ "description": "Tag.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "thirdPartyCases": {
+ "description": "Cases for generating signals from third-party rules. Only available for third-party rules.",
+ "example": [],
+ "items": {
+ "description": "Case when signal is generated by a third party rule.",
+ "properties": {
+ "name": {
+ "description": "Name of the case.",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notification targets for each rule case.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "query": {
+ "description": "A query to map a third party event to this case.",
+ "type": "string"
+ },
+ "status": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "type": {
+ "description": "The rule type.",
+ "enum": [
+ "log_detection",
+ "infrastructure_configuration",
+ "workload_security",
+ "cloud_configuration",
+ "application_security"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "LOG_DETECTION",
+ "INFRASTRUCTURE_CONFIGURATION",
+ "WORKLOAD_SECURITY",
+ "CLOUD_CONFIGURATION",
+ "APPLICATION_SECURITY"
+ ]
+ },
+ "updateAuthorId": {
+ "description": "User ID of the user who updated the rule.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "updatedAt": {
+ "description": "The date the rule was last updated, in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "version": {
+ "description": "The version of the rule.",
+ "format": "int64",
+ "type": "integer"
+ }
+ }
+ },
+ {
+ "description": "Rule.",
+ "properties": {
+ "cases": {
+ "description": "Cases for generating signals.",
+ "items": {
+ "description": "Case when signal is generated.",
+ "properties": {
+ "actions": {
+ "description": "Action to perform for each rule case.",
+ "items": {
+ "description": "Action to perform when a signal is triggered. Only available for Application Security rule type.",
+ "properties": {
+ "options": {
+ "description": "Options for the rule action",
+ "properties": {
+ "duration": {
+ "description": "Duration of the action in seconds. 0 indicates no expiration.",
+ "example": 0,
+ "format": "int64",
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "description": "The action type.",
+ "enum": [
+ "block_ip",
+ "block_user"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "BLOCK_IP",
+ "BLOCK_USER"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "condition": {
+ "description": "A rule case contains logical operations (`>`,`>=`, `&&`, `||`) to determine if a signal should be generated\nbased on the event counts in the previously defined queries.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the case.",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notification targets for each rule case.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "status": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "createdAt": {
+ "description": "When the rule was created, timestamp in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "creationAuthorId": {
+ "description": "User ID of the user who created the rule.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "deprecationDate": {
+ "description": "When the rule will be deprecated, timestamp in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "filters": {
+ "description": "Additional queries to filter matched events before they are processed. This field is deprecated for log detection, signal correlation, and workload security rules.",
+ "items": {
+ "description": "The rule's suppression filter.",
+ "properties": {
+ "action": {
+ "description": "The type of filtering action.",
+ "enum": [
+ "require",
+ "suppress"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "REQUIRE",
+ "SUPPRESS"
+ ]
+ },
+ "query": {
+ "description": "Query for selecting logs to apply the filtering action.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "hasExtendedTitle": {
+ "description": "Whether the notifications include the triggering group-by values in their title.",
+ "type": "boolean"
+ },
+ "id": {
+ "description": "The ID of the rule.",
+ "type": "string"
+ },
+ "isDefault": {
+ "description": "Whether the rule is included by default.",
+ "type": "boolean"
+ },
+ "isDeleted": {
+ "description": "Whether the rule has been deleted.",
+ "type": "boolean"
+ },
+ "isEnabled": {
+ "description": "Whether the rule is enabled.",
+ "type": "boolean"
+ },
+ "message": {
+ "description": "Message for generated signals.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the rule.",
+ "type": "string"
+ },
+ "options": {
+ "description": "Options.",
+ "properties": {
+ "complianceRuleOptions": {
+ "additionalProperties": {},
+ "description": "Options for cloud_configuration rules.\nFields `resourceType` and `regoRule` are mandatory when managing custom `cloud_configuration` rules.\n",
+ "properties": {
+ "complexRule": {
+ "description": "Whether the rule is a complex one.\nMust be set to true if `regoRule.resourceTypes` contains more than one item. Defaults to false.\n",
+ "type": "boolean"
+ },
+ "regoRule": {
+ "description": "Rule details.",
+ "properties": {
+ "policy": {
+ "description": "The policy written in `rego`, see: https://www.openpolicyagent.org/docs/latest/policy-language/",
+ "example": "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}\n",
+ "type": "string"
+ },
+ "resourceTypes": {
+ "description": "List of resource types that will be evaluated upon. Must have at least one element.",
+ "example": [
+ "gcp_iam_service_account",
+ "gcp_iam_policy"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "policy",
+ "resourceTypes"
+ ],
+ "type": "object"
+ },
+ "resourceType": {
+ "description": "Main resource type to be checked by the rule. It should be specified again in `regoRule.resourceTypes`.\n",
+ "example": "aws_acm",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "decreaseCriticalityBasedOnEnv": {
+ "description": "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`.",
+ "example": false,
+ "type": "boolean"
+ },
+ "detectionMethod": {
+ "description": "The detection method.",
+ "enum": [
+ "threshold",
+ "new_value",
+ "anomaly_detection",
+ "impossible_travel",
+ "hardcoded",
+ "third_party",
+ "anomaly_threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "THRESHOLD",
+ "NEW_VALUE",
+ "ANOMALY_DETECTION",
+ "IMPOSSIBLE_TRAVEL",
+ "HARDCODED",
+ "THIRD_PARTY",
+ "ANOMALY_THRESHOLD"
+ ]
+ },
+ "evaluationWindow": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS"
+ ]
+ },
+ "hardcodedEvaluatorType": {
+ "description": "Hardcoded evaluator type.",
+ "enum": [
+ "log4shell"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "LOG4SHELL"
+ ]
+ },
+ "impossibleTravelOptions": {
+ "description": "Options on impossible travel detection method.",
+ "properties": {
+ "baselineUserLocations": {
+ "description": "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.",
+ "example": true,
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "keepAlive": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS"
+ ]
+ },
+ "maxSignalDuration": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600,
+ 43200,
+ 86400
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS",
+ "TWELVE_HOURS",
+ "ONE_DAY"
+ ]
+ },
+ "newValueOptions": {
+ "description": "Options on new value detection method.",
+ "properties": {
+ "forgetAfter": {
+ "description": "The duration in days after which a learned value is forgotten.",
+ "enum": [
+ 1,
+ 2,
+ 7,
+ 14,
+ 21,
+ 28
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ONE_DAY",
+ "TWO_DAYS",
+ "ONE_WEEK",
+ "TWO_WEEKS",
+ "THREE_WEEKS",
+ "FOUR_WEEKS"
+ ]
+ },
+ "learningDuration": {
+ "default": 0,
+ "description": "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.",
+ "enum": [
+ 0,
+ 1,
+ 7
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_DAYS",
+ "ONE_DAY",
+ "SEVEN_DAYS"
+ ]
+ },
+ "learningMethod": {
+ "default": "duration",
+ "description": "The learning method used to determine when signals should be generated for values that weren't learned.",
+ "enum": [
+ "duration",
+ "threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "DURATION",
+ "THRESHOLD"
+ ]
+ },
+ "learningThreshold": {
+ "default": 0,
+ "description": "A number of occurrences after which signals will be generated for values that weren't learned.",
+ "enum": [
+ 0,
+ 1
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_OCCURRENCES",
+ "ONE_OCCURRENCE"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "thirdPartyRuleOptions": {
+ "description": "Options on third party detection method.",
+ "properties": {
+ "defaultNotifications": {
+ "description": "Notification targets for the logs that do not correspond to any of the cases.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "defaultStatus": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ },
+ "rootQueries": {
+ "description": "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.",
+ "items": {
+ "description": "A query to be combined with the third party case query.",
+ "properties": {
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "query": {
+ "description": "Query to run on logs.",
+ "example": "source:cloudtrail",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "signalTitleTemplate": {
+ "description": "A template for the signal title; if omitted, the title is generated based on the case name.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "queries": {
+ "description": "Queries for selecting logs which are part of the rule.",
+ "items": {
+ "description": "Query for matching rule on signals.",
+ "properties": {
+ "aggregation": {
+ "description": "The aggregation type.",
+ "enum": [
+ "count",
+ "cardinality",
+ "sum",
+ "max",
+ "new_value",
+ "geo_data",
+ "event_count",
+ "none"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "COUNT",
+ "CARDINALITY",
+ "SUM",
+ "MAX",
+ "NEW_VALUE",
+ "GEO_DATA",
+ "EVENT_COUNT",
+ "NONE"
+ ]
+ },
+ "correlatedByFields": {
+ "description": "Fields to correlate by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "correlatedQueryIndex": {
+ "description": "Index of the rule query used to retrieve the correlated field.",
+ "format": "int32",
+ "maximum": 9,
+ "type": "integer"
+ },
+ "defaultRuleId": {
+ "description": "Default Rule ID to match on signals.",
+ "example": "d3f-ru1-e1d",
+ "type": "string"
+ },
+ "distinctFields": {
+ "description": "Field for which the cardinality is measured. Sent as an array.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "metrics": {
+ "description": "Group of target fields to aggregate over.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the query.",
+ "type": "string"
+ },
+ "ruleId": {
+ "description": "Rule ID to match on signals.",
+ "example": "org-ru1-e1d",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "tags": {
+ "description": "Tags for generated signals.",
+ "items": {
+ "description": "Tag.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "type": {
+ "description": "The rule type.",
+ "enum": [
+ "signal_correlation"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "SIGNAL_CORRELATION"
+ ]
+ },
+ "updateAuthorId": {
+ "description": "User ID of the user who updated the rule.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "version": {
+ "description": "The version of the rule.",
+ "format": "int64",
+ "type": "integer"
+ }
+ }
+ }
+ ]
+ }
},
- "version": {
- "description": "It increments when a BOM is modified. The default value is 1.",
- "example": 1,
- "format": "int64",
- "type": "integer"
- }
+ "type": "object"
},
- "required": [
- "bomFormat",
- "specVersion",
- "components",
- "metadata",
- "serialNumber",
- "version"
- ],
+ "description": "The `RuleVersionHistory` `data`.",
"type": "object"
- },
- "id": {
- "description": "The unique ID for this SBOM (it is equivalent to the `asset_name` or `asset_name@repo_digest` (Image)",
- "example": "github.com/datadog/datadog-agent",
- "type": "string"
- },
- "type": {
- "description": "The JSON:API type.",
- "enum": [
- "sboms"
- ],
- "example": "sboms",
- "type": "string",
- "x-enum-varnames": [
- "SBOMS"
- ]
}
},
"type": "object"
+ },
+ "id": {
+ "description": "ID of the rule.",
+ "type": "string"
+ },
+ "type": {
+ "description": "Type of data.",
+ "enum": [
+ "GetRuleVersionHistoryResponse"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "GETRULEVERSIONHISTORYRESPONSE"
+ ]
}
},
- "required": [
- "data"
- ],
"type": "object"
},
- "GetTeamMembershipsSort": {
- "description": "Specifies the order of returned team memberships",
+ "GetRuleVersionHistoryDataType": {
+ "description": "Type of data.",
"enum": [
- "manager_name",
- "-manager_name",
- "name",
- "-name",
+ "GetRuleVersionHistoryResponse"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "GETRULEVERSIONHISTORYRESPONSE"
+ ]
+ },
+ "GetRuleVersionHistoryResponse": {
+ "description": "Response for getting the rule version history.",
+ "properties": {
+ "data": {
+ "description": "Data for the rule version history.",
+ "properties": {
+ "attributes": {
+ "description": "Response object containing the version history of a rule.",
+ "properties": {
+ "count": {
+ "description": "The number of rule versions.",
+ "format": "int32",
+ "maximum": 2147483647,
+ "type": "integer"
+ },
+ "data": {
+ "additionalProperties": {
+ "description": "A rule version with a list of updates.",
+ "properties": {
+ "changes": {
+ "description": "A list of changes.",
+ "items": {
+ "description": "A change in a rule version.",
+ "properties": {
+ "change": {
+ "description": "The new value of the field.",
+ "example": "cloud_provider:aws",
+ "type": "string"
+ },
+ "field": {
+ "description": "The field that was changed.",
+ "example": "Tags",
+ "type": "string"
+ },
+ "type": {
+ "description": "The type of change.",
+ "enum": [
+ "create",
+ "update",
+ "delete"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "CREATE",
+ "UPDATE",
+ "DELETE"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "rule": {
+ "description": "Create a new rule.",
+ "oneOf": [
+ {
+ "description": "Rule.",
+ "properties": {
+ "cases": {
+ "description": "Cases for generating signals.",
+ "items": {
+ "description": "Case when signal is generated.",
+ "properties": {
+ "actions": {
+ "description": "Action to perform for each rule case.",
+ "items": {
+ "description": "Action to perform when a signal is triggered. Only available for Application Security rule type.",
+ "properties": {
+ "options": {
+ "description": "Options for the rule action",
+ "properties": {
+ "duration": {
+ "description": "Duration of the action in seconds. 0 indicates no expiration.",
+ "example": 0,
+ "format": "int64",
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "description": "The action type.",
+ "enum": [
+ "block_ip",
+ "block_user"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "BLOCK_IP",
+ "BLOCK_USER"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "condition": {
+ "description": "A rule case contains logical operations (`>`,`>=`, `&&`, `||`) to determine if a signal should be generated\nbased on the event counts in the previously defined queries.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the case.",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notification targets for each rule case.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "status": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "complianceSignalOptions": {
+ "description": "How to generate compliance signals. Useful for cloud_configuration rules only.",
+ "properties": {
+ "defaultActivationStatus": {
+ "description": "The default activation status.",
+ "nullable": true,
+ "type": "boolean"
+ },
+ "defaultGroupByFields": {
+ "description": "The default group by fields.",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true,
+ "type": "array"
+ },
+ "userActivationStatus": {
+ "description": "Whether signals will be sent.",
+ "nullable": true,
+ "type": "boolean"
+ },
+ "userGroupByFields": {
+ "description": "Fields to use to group findings by when sending signals.",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true,
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "createdAt": {
+ "description": "When the rule was created, timestamp in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "creationAuthorId": {
+ "description": "User ID of the user who created the rule.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "defaultTags": {
+ "description": "Default Tags for default rules (included in tags)",
+ "example": [
+ "security:attacks"
+ ],
+ "items": {
+ "description": "Default Tag.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "deprecationDate": {
+ "description": "When the rule will be deprecated, timestamp in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "filters": {
+ "description": "Additional queries to filter matched events before they are processed. This field is deprecated for log detection, signal correlation, and workload security rules.",
+ "items": {
+ "description": "The rule's suppression filter.",
+ "properties": {
+ "action": {
+ "description": "The type of filtering action.",
+ "enum": [
+ "require",
+ "suppress"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "REQUIRE",
+ "SUPPRESS"
+ ]
+ },
+ "query": {
+ "description": "Query for selecting logs to apply the filtering action.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "groupSignalsBy": {
+ "description": "Additional grouping to perform on top of the existing groups in the query section. Must be a subset of the existing groups.",
+ "example": [
+ "service"
+ ],
+ "items": {
+ "description": "Field to group by.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "hasExtendedTitle": {
+ "description": "Whether the notifications include the triggering group-by values in their title.",
+ "type": "boolean"
+ },
+ "id": {
+ "description": "The ID of the rule.",
+ "type": "string"
+ },
+ "isDefault": {
+ "description": "Whether the rule is included by default.",
+ "type": "boolean"
+ },
+ "isDeleted": {
+ "description": "Whether the rule has been deleted.",
+ "type": "boolean"
+ },
+ "isEnabled": {
+ "description": "Whether the rule is enabled.",
+ "type": "boolean"
+ },
+ "message": {
+ "description": "Message for generated signals.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the rule.",
+ "type": "string"
+ },
+ "options": {
+ "description": "Options.",
+ "properties": {
+ "complianceRuleOptions": {
+ "additionalProperties": {},
+ "description": "Options for cloud_configuration rules.\nFields `resourceType` and `regoRule` are mandatory when managing custom `cloud_configuration` rules.\n",
+ "properties": {
+ "complexRule": {
+ "description": "Whether the rule is a complex one.\nMust be set to true if `regoRule.resourceTypes` contains more than one item. Defaults to false.\n",
+ "type": "boolean"
+ },
+ "regoRule": {
+ "description": "Rule details.",
+ "properties": {
+ "policy": {
+ "description": "The policy written in `rego`, see: https://www.openpolicyagent.org/docs/latest/policy-language/",
+ "example": "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}\n",
+ "type": "string"
+ },
+ "resourceTypes": {
+ "description": "List of resource types that will be evaluated upon. Must have at least one element.",
+ "example": [
+ "gcp_iam_service_account",
+ "gcp_iam_policy"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "policy",
+ "resourceTypes"
+ ],
+ "type": "object"
+ },
+ "resourceType": {
+ "description": "Main resource type to be checked by the rule. It should be specified again in `regoRule.resourceTypes`.\n",
+ "example": "aws_acm",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "decreaseCriticalityBasedOnEnv": {
+ "description": "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`.",
+ "example": false,
+ "type": "boolean"
+ },
+ "detectionMethod": {
+ "description": "The detection method.",
+ "enum": [
+ "threshold",
+ "new_value",
+ "anomaly_detection",
+ "impossible_travel",
+ "hardcoded",
+ "third_party",
+ "anomaly_threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "THRESHOLD",
+ "NEW_VALUE",
+ "ANOMALY_DETECTION",
+ "IMPOSSIBLE_TRAVEL",
+ "HARDCODED",
+ "THIRD_PARTY",
+ "ANOMALY_THRESHOLD"
+ ]
+ },
+ "evaluationWindow": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS"
+ ]
+ },
+ "hardcodedEvaluatorType": {
+ "description": "Hardcoded evaluator type.",
+ "enum": [
+ "log4shell"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "LOG4SHELL"
+ ]
+ },
+ "impossibleTravelOptions": {
+ "description": "Options on impossible travel detection method.",
+ "properties": {
+ "baselineUserLocations": {
+ "description": "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.",
+ "example": true,
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "keepAlive": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS"
+ ]
+ },
+ "maxSignalDuration": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600,
+ 43200,
+ 86400
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS",
+ "TWELVE_HOURS",
+ "ONE_DAY"
+ ]
+ },
+ "newValueOptions": {
+ "description": "Options on new value detection method.",
+ "properties": {
+ "forgetAfter": {
+ "description": "The duration in days after which a learned value is forgotten.",
+ "enum": [
+ 1,
+ 2,
+ 7,
+ 14,
+ 21,
+ 28
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ONE_DAY",
+ "TWO_DAYS",
+ "ONE_WEEK",
+ "TWO_WEEKS",
+ "THREE_WEEKS",
+ "FOUR_WEEKS"
+ ]
+ },
+ "learningDuration": {
+ "default": 0,
+ "description": "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.",
+ "enum": [
+ 0,
+ 1,
+ 7
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_DAYS",
+ "ONE_DAY",
+ "SEVEN_DAYS"
+ ]
+ },
+ "learningMethod": {
+ "default": "duration",
+ "description": "The learning method used to determine when signals should be generated for values that weren't learned.",
+ "enum": [
+ "duration",
+ "threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "DURATION",
+ "THRESHOLD"
+ ]
+ },
+ "learningThreshold": {
+ "default": 0,
+ "description": "A number of occurrences after which signals will be generated for values that weren't learned.",
+ "enum": [
+ 0,
+ 1
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_OCCURRENCES",
+ "ONE_OCCURRENCE"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "thirdPartyRuleOptions": {
+ "description": "Options on third party detection method.",
+ "properties": {
+ "defaultNotifications": {
+ "description": "Notification targets for the logs that do not correspond to any of the cases.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "defaultStatus": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ },
+ "rootQueries": {
+ "description": "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.",
+ "items": {
+ "description": "A query to be combined with the third party case query.",
+ "properties": {
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "query": {
+ "description": "Query to run on logs.",
+ "example": "source:cloudtrail",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "signalTitleTemplate": {
+ "description": "A template for the signal title; if omitted, the title is generated based on the case name.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "queries": {
+ "description": "Queries for selecting logs which are part of the rule.",
+ "items": {
+ "description": "Query for matching rule.",
+ "properties": {
+ "aggregation": {
+ "description": "The aggregation type.",
+ "enum": [
+ "count",
+ "cardinality",
+ "sum",
+ "max",
+ "new_value",
+ "geo_data",
+ "event_count",
+ "none"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "COUNT",
+ "CARDINALITY",
+ "SUM",
+ "MAX",
+ "NEW_VALUE",
+ "GEO_DATA",
+ "EVENT_COUNT",
+ "NONE"
+ ]
+ },
+ "distinctFields": {
+ "description": "Field for which the cardinality is measured. Sent as an array.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "hasOptionalGroupByFields": {
+ "description": "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.",
+ "example": false,
+ "readOnly": true,
+ "type": "boolean"
+ },
+ "metric": {
+ "deprecated": true,
+ "description": "(Deprecated) The target field to aggregate over when using the sum or max\naggregations. `metrics` field should be used instead.",
+ "type": "string"
+ },
+ "metrics": {
+ "description": "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.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the query.",
+ "type": "string"
+ },
+ "query": {
+ "description": "Query to run on logs.",
+ "example": "a > 3",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "referenceTables": {
+ "description": "Reference tables for the rule.",
+ "items": {
+ "description": "Reference tables used in the queries.",
+ "properties": {
+ "checkPresence": {
+ "description": "Whether to include or exclude the matched values.",
+ "type": "boolean"
+ },
+ "columnName": {
+ "description": "The name of the column in the reference table.",
+ "type": "string"
+ },
+ "logFieldPath": {
+ "description": "The field in the log to match against the reference table.",
+ "type": "string"
+ },
+ "ruleQueryName": {
+ "description": "The name of the query to apply the reference table to.",
+ "type": "string"
+ },
+ "tableName": {
+ "description": "The name of the reference table.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "tags": {
+ "description": "Tags for generated signals.",
+ "items": {
+ "description": "Tag.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "thirdPartyCases": {
+ "description": "Cases for generating signals from third-party rules. Only available for third-party rules.",
+ "example": [],
+ "items": {
+ "description": "Case when signal is generated by a third party rule.",
+ "properties": {
+ "name": {
+ "description": "Name of the case.",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notification targets for each rule case.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "query": {
+ "description": "A query to map a third party event to this case.",
+ "type": "string"
+ },
+ "status": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "type": {
+ "description": "The rule type.",
+ "enum": [
+ "log_detection",
+ "infrastructure_configuration",
+ "workload_security",
+ "cloud_configuration",
+ "application_security"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "LOG_DETECTION",
+ "INFRASTRUCTURE_CONFIGURATION",
+ "WORKLOAD_SECURITY",
+ "CLOUD_CONFIGURATION",
+ "APPLICATION_SECURITY"
+ ]
+ },
+ "updateAuthorId": {
+ "description": "User ID of the user who updated the rule.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "updatedAt": {
+ "description": "The date the rule was last updated, in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "version": {
+ "description": "The version of the rule.",
+ "format": "int64",
+ "type": "integer"
+ }
+ }
+ },
+ {
+ "description": "Rule.",
+ "properties": {
+ "cases": {
+ "description": "Cases for generating signals.",
+ "items": {
+ "description": "Case when signal is generated.",
+ "properties": {
+ "actions": {
+ "description": "Action to perform for each rule case.",
+ "items": {
+ "description": "Action to perform when a signal is triggered. Only available for Application Security rule type.",
+ "properties": {
+ "options": {
+ "description": "Options for the rule action",
+ "properties": {
+ "duration": {
+ "description": "Duration of the action in seconds. 0 indicates no expiration.",
+ "example": 0,
+ "format": "int64",
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "description": "The action type.",
+ "enum": [
+ "block_ip",
+ "block_user"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "BLOCK_IP",
+ "BLOCK_USER"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "condition": {
+ "description": "A rule case contains logical operations (`>`,`>=`, `&&`, `||`) to determine if a signal should be generated\nbased on the event counts in the previously defined queries.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the case.",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notification targets for each rule case.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "status": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "createdAt": {
+ "description": "When the rule was created, timestamp in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "creationAuthorId": {
+ "description": "User ID of the user who created the rule.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "deprecationDate": {
+ "description": "When the rule will be deprecated, timestamp in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "filters": {
+ "description": "Additional queries to filter matched events before they are processed. This field is deprecated for log detection, signal correlation, and workload security rules.",
+ "items": {
+ "description": "The rule's suppression filter.",
+ "properties": {
+ "action": {
+ "description": "The type of filtering action.",
+ "enum": [
+ "require",
+ "suppress"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "REQUIRE",
+ "SUPPRESS"
+ ]
+ },
+ "query": {
+ "description": "Query for selecting logs to apply the filtering action.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "hasExtendedTitle": {
+ "description": "Whether the notifications include the triggering group-by values in their title.",
+ "type": "boolean"
+ },
+ "id": {
+ "description": "The ID of the rule.",
+ "type": "string"
+ },
+ "isDefault": {
+ "description": "Whether the rule is included by default.",
+ "type": "boolean"
+ },
+ "isDeleted": {
+ "description": "Whether the rule has been deleted.",
+ "type": "boolean"
+ },
+ "isEnabled": {
+ "description": "Whether the rule is enabled.",
+ "type": "boolean"
+ },
+ "message": {
+ "description": "Message for generated signals.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the rule.",
+ "type": "string"
+ },
+ "options": {
+ "description": "Options.",
+ "properties": {
+ "complianceRuleOptions": {
+ "additionalProperties": {},
+ "description": "Options for cloud_configuration rules.\nFields `resourceType` and `regoRule` are mandatory when managing custom `cloud_configuration` rules.\n",
+ "properties": {
+ "complexRule": {
+ "description": "Whether the rule is a complex one.\nMust be set to true if `regoRule.resourceTypes` contains more than one item. Defaults to false.\n",
+ "type": "boolean"
+ },
+ "regoRule": {
+ "description": "Rule details.",
+ "properties": {
+ "policy": {
+ "description": "The policy written in `rego`, see: https://www.openpolicyagent.org/docs/latest/policy-language/",
+ "example": "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}\n",
+ "type": "string"
+ },
+ "resourceTypes": {
+ "description": "List of resource types that will be evaluated upon. Must have at least one element.",
+ "example": [
+ "gcp_iam_service_account",
+ "gcp_iam_policy"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "policy",
+ "resourceTypes"
+ ],
+ "type": "object"
+ },
+ "resourceType": {
+ "description": "Main resource type to be checked by the rule. It should be specified again in `regoRule.resourceTypes`.\n",
+ "example": "aws_acm",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "decreaseCriticalityBasedOnEnv": {
+ "description": "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`.",
+ "example": false,
+ "type": "boolean"
+ },
+ "detectionMethod": {
+ "description": "The detection method.",
+ "enum": [
+ "threshold",
+ "new_value",
+ "anomaly_detection",
+ "impossible_travel",
+ "hardcoded",
+ "third_party",
+ "anomaly_threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "THRESHOLD",
+ "NEW_VALUE",
+ "ANOMALY_DETECTION",
+ "IMPOSSIBLE_TRAVEL",
+ "HARDCODED",
+ "THIRD_PARTY",
+ "ANOMALY_THRESHOLD"
+ ]
+ },
+ "evaluationWindow": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS"
+ ]
+ },
+ "hardcodedEvaluatorType": {
+ "description": "Hardcoded evaluator type.",
+ "enum": [
+ "log4shell"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "LOG4SHELL"
+ ]
+ },
+ "impossibleTravelOptions": {
+ "description": "Options on impossible travel detection method.",
+ "properties": {
+ "baselineUserLocations": {
+ "description": "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.",
+ "example": true,
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "keepAlive": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS"
+ ]
+ },
+ "maxSignalDuration": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600,
+ 43200,
+ 86400
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS",
+ "TWELVE_HOURS",
+ "ONE_DAY"
+ ]
+ },
+ "newValueOptions": {
+ "description": "Options on new value detection method.",
+ "properties": {
+ "forgetAfter": {
+ "description": "The duration in days after which a learned value is forgotten.",
+ "enum": [
+ 1,
+ 2,
+ 7,
+ 14,
+ 21,
+ 28
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ONE_DAY",
+ "TWO_DAYS",
+ "ONE_WEEK",
+ "TWO_WEEKS",
+ "THREE_WEEKS",
+ "FOUR_WEEKS"
+ ]
+ },
+ "learningDuration": {
+ "default": 0,
+ "description": "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.",
+ "enum": [
+ 0,
+ 1,
+ 7
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_DAYS",
+ "ONE_DAY",
+ "SEVEN_DAYS"
+ ]
+ },
+ "learningMethod": {
+ "default": "duration",
+ "description": "The learning method used to determine when signals should be generated for values that weren't learned.",
+ "enum": [
+ "duration",
+ "threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "DURATION",
+ "THRESHOLD"
+ ]
+ },
+ "learningThreshold": {
+ "default": 0,
+ "description": "A number of occurrences after which signals will be generated for values that weren't learned.",
+ "enum": [
+ 0,
+ 1
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_OCCURRENCES",
+ "ONE_OCCURRENCE"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "thirdPartyRuleOptions": {
+ "description": "Options on third party detection method.",
+ "properties": {
+ "defaultNotifications": {
+ "description": "Notification targets for the logs that do not correspond to any of the cases.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "defaultStatus": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ },
+ "rootQueries": {
+ "description": "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.",
+ "items": {
+ "description": "A query to be combined with the third party case query.",
+ "properties": {
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "query": {
+ "description": "Query to run on logs.",
+ "example": "source:cloudtrail",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "signalTitleTemplate": {
+ "description": "A template for the signal title; if omitted, the title is generated based on the case name.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "queries": {
+ "description": "Queries for selecting logs which are part of the rule.",
+ "items": {
+ "description": "Query for matching rule on signals.",
+ "properties": {
+ "aggregation": {
+ "description": "The aggregation type.",
+ "enum": [
+ "count",
+ "cardinality",
+ "sum",
+ "max",
+ "new_value",
+ "geo_data",
+ "event_count",
+ "none"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "COUNT",
+ "CARDINALITY",
+ "SUM",
+ "MAX",
+ "NEW_VALUE",
+ "GEO_DATA",
+ "EVENT_COUNT",
+ "NONE"
+ ]
+ },
+ "correlatedByFields": {
+ "description": "Fields to correlate by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "correlatedQueryIndex": {
+ "description": "Index of the rule query used to retrieve the correlated field.",
+ "format": "int32",
+ "maximum": 9,
+ "type": "integer"
+ },
+ "defaultRuleId": {
+ "description": "Default Rule ID to match on signals.",
+ "example": "d3f-ru1-e1d",
+ "type": "string"
+ },
+ "distinctFields": {
+ "description": "Field for which the cardinality is measured. Sent as an array.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "metrics": {
+ "description": "Group of target fields to aggregate over.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the query.",
+ "type": "string"
+ },
+ "ruleId": {
+ "description": "Rule ID to match on signals.",
+ "example": "org-ru1-e1d",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "tags": {
+ "description": "Tags for generated signals.",
+ "items": {
+ "description": "Tag.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "type": {
+ "description": "The rule type.",
+ "enum": [
+ "signal_correlation"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "SIGNAL_CORRELATION"
+ ]
+ },
+ "updateAuthorId": {
+ "description": "User ID of the user who updated the rule.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "version": {
+ "description": "The version of the rule.",
+ "format": "int64",
+ "type": "integer"
+ }
+ }
+ }
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "description": "The `RuleVersionHistory` `data`.",
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the rule.",
+ "type": "string"
+ },
+ "type": {
+ "description": "Type of data.",
+ "enum": [
+ "GetRuleVersionHistoryResponse"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "GETRULEVERSIONHISTORYRESPONSE"
+ ]
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "GetSBOMResponse": {
+ "description": "The expected response schema when getting an SBOM.",
+ "properties": {
+ "data": {
+ "description": "A single SBOM",
+ "properties": {
+ "attributes": {
+ "description": "The JSON:API attributes of the SBOM.",
+ "properties": {
+ "bomFormat": {
+ "description": "Specifies the format of the BOM. This helps to identify the file as CycloneDX since BOM do not have a filename convention nor does JSON schema support namespaces. This value MUST be `CycloneDX`.",
+ "example": "CycloneDX",
+ "type": "string"
+ },
+ "components": {
+ "description": "A list of software and hardware components.",
+ "items": {
+ "description": "Software or hardware component.",
+ "properties": {
+ "bom-ref": {
+ "description": "An optional identifier that can be used to reference the component elsewhere in the BOM.",
+ "example": "pkg:golang/google.golang.org/grpc@1.68.1",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the component. This will often be a shortened, single name of the component.",
+ "example": "google.golang.org/grpc",
+ "type": "string"
+ },
+ "purl": {
+ "description": "Specifies the package-url (purl). The purl, if specified, MUST be valid and conform to the [specification](https://github.com/package-url/purl-spec).",
+ "example": "pkg:golang/google.golang.org/grpc@1.68.1",
+ "type": "string"
+ },
+ "type": {
+ "description": "The SBOM component type",
+ "enum": [
+ "application",
+ "container",
+ "data",
+ "device",
+ "device-driver",
+ "file",
+ "firmware",
+ "framework",
+ "library",
+ "machine-learning-model",
+ "operating-system",
+ "platform"
+ ],
+ "example": "application",
+ "type": "string",
+ "x-enum-varnames": [
+ "APPLICATION",
+ "CONTAINER",
+ "DATA",
+ "DEVICE",
+ "DEVICE_DRIVER",
+ "FILE",
+ "FIRMWARE",
+ "FRAMEWORK",
+ "LIBRARY",
+ "MACHINE_LEARNING_MODEL",
+ "OPERATING_SYSTEM",
+ "PLATFORM"
+ ]
+ },
+ "version": {
+ "description": "The component version.",
+ "example": "1.68.1",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "name",
+ "version"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "metadata": {
+ "description": "Provides additional information about a BOM.",
+ "properties": {
+ "component": {
+ "description": "The component that the BOM describes.",
+ "properties": {
+ "name": {
+ "description": "The name of the component. This will often be a shortened, single name of the component.",
+ "example": "github.com/datadog/datadog-agent",
+ "type": "string"
+ },
+ "type": {
+ "description": "Specifies the type of the component.",
+ "example": "application",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "serialNumber": {
+ "description": "Every BOM generated has a unique serial number, even if the contents of the BOM have not changed overt time. The serial number follows [RFC-4122](https://datatracker.ietf.org/doc/html/rfc4122)",
+ "example": "urn:uuid:f7119d2f-1vgh-24b5-91f0-12010db72da7",
+ "type": "string"
+ },
+ "specVersion": {
+ "description": "The version of the CycloneDX specification a BOM conforms to.",
+ "enum": [
+ "1.0",
+ "1.1",
+ "1.2",
+ "1.3",
+ "1.4",
+ "1.5"
+ ],
+ "example": "1.5",
+ "type": "string",
+ "x-enum-varnames": [
+ "ONE_ZERO",
+ "ONE_ONE",
+ "ONE_TWO",
+ "ONE_THREE",
+ "ONE_FOUR",
+ "ONE_FIVE"
+ ]
+ },
+ "version": {
+ "description": "It increments when a BOM is modified. The default value is 1.",
+ "example": 1,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ "required": [
+ "bomFormat",
+ "specVersion",
+ "components",
+ "metadata",
+ "serialNumber",
+ "version"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "description": "The unique ID for this SBOM (it is equivalent to the `asset_name` or `asset_name@repo_digest` (Image)",
+ "example": "github.com/datadog/datadog-agent",
+ "type": "string"
+ },
+ "type": {
+ "description": "The JSON:API type.",
+ "enum": [
+ "sboms"
+ ],
+ "example": "sboms",
+ "type": "string",
+ "x-enum-varnames": [
+ "SBOMS"
+ ]
+ }
+ },
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "GetTeamMembershipsSort": {
+ "description": "Specifies the order of returned team memberships",
+ "enum": [
+ "manager_name",
+ "-manager_name",
+ "name",
+ "-name",
"handle",
"-handle",
"email",
@@ -74121,6 +79939,1123 @@
"_EMAIL"
]
},
+ "GetWorkflowResponse": {
+ "description": "The response object after getting a workflow.",
+ "properties": {
+ "data": {
+ "description": "Data related to the workflow.",
+ "properties": {
+ "attributes": {
+ "description": "The definition of `WorkflowDataAttributes` object.",
+ "properties": {
+ "createdAt": {
+ "description": "When the workflow was created.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of the workflow.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the workflow.",
+ "example": "",
+ "type": "string"
+ },
+ "published": {
+ "description": "Set the workflow to published or unpublished. Workflows in an unpublished state will only be executable via manual runs. Automatic triggers such as Schedule will not execute the workflow until it is published.",
+ "type": "boolean"
+ },
+ "spec": {
+ "description": "The spec defines what the workflow does.",
+ "properties": {
+ "annotations": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "items": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "properties": {
+ "display": {
+ "description": "The definition of `AnnotationDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `AnnotationDisplayBounds` object.",
+ "properties": {
+ "height": {
+ "description": "The `bounds` `height`.",
+ "format": "double",
+ "type": "number"
+ },
+ "width": {
+ "description": "The `bounds` `width`.",
+ "format": "double",
+ "type": "number"
+ },
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The `Annotation` `id`.",
+ "example": "",
+ "type": "string"
+ },
+ "markdownTextAnnotation": {
+ "description": "The definition of `AnnotationMarkdownTextAnnotation` object.",
+ "properties": {
+ "text": {
+ "description": "The `markdownTextAnnotation` `text`.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "required": [
+ "id",
+ "display",
+ "markdownTextAnnotation"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "connectionEnvs": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "items": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "properties": {
+ "connectionGroups": {
+ "description": "The `ConnectionEnv` `connectionGroups`.",
+ "items": {
+ "description": "The definition of `ConnectionGroup` object.",
+ "properties": {
+ "connectionGroupId": {
+ "description": "The `ConnectionGroup` `connectionGroupId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `ConnectionGroup` `label`.",
+ "example": "",
+ "type": "string"
+ },
+ "tags": {
+ "description": "The `ConnectionGroup` `tags`.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "connectionGroupId",
+ "label",
+ "tags"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "connections": {
+ "description": "The `ConnectionEnv` `connections`.",
+ "items": {
+ "description": "The definition of `Connection` object.",
+ "properties": {
+ "connectionId": {
+ "description": "The `Connection` `connectionId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `Connection` `label`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "connectionId",
+ "label"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "env": {
+ "description": "The definition of `ConnectionEnvEnv` object.",
+ "enum": [
+ "default"
+ ],
+ "example": "default",
+ "type": "string",
+ "x-enum-varnames": [
+ "DEFAULT"
+ ]
+ }
+ },
+ "required": [
+ "env"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "handle": {
+ "description": "Unique identifier used to trigger workflows automatically in Datadog.",
+ "type": "string"
+ },
+ "inputSchema": {
+ "description": "A list of input parameters for the workflow. These can be used as dynamic runtime values in your workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `InputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `InputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `InputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `InputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `InputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `InputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `InputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "outputSchema": {
+ "description": "A list of output parameters for the workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `OutputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `OutputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `OutputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `OutputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `OutputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `OutputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `OutputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ },
+ "value": {
+ "description": "The `OutputSchemaParameters` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "steps": {
+ "description": "A `Step` is a sub-component of a workflow. Each `Step` performs an action.",
+ "items": {
+ "description": "A Step is a sub-component of a workflow. Each Step performs an action.",
+ "properties": {
+ "actionId": {
+ "description": "The unique identifier of an action.",
+ "example": "",
+ "type": "string"
+ },
+ "completionGate": {
+ "description": "Used to create conditions before running subsequent actions.",
+ "properties": {
+ "completionCondition": {
+ "description": "The definition of `CompletionCondition` object.",
+ "properties": {
+ "operand1": {
+ "description": "The `CompletionCondition` `operand1`."
+ },
+ "operand2": {
+ "description": "The `CompletionCondition` `operand2`."
+ },
+ "operator": {
+ "description": "The definition of `CompletionConditionOperator` object.",
+ "enum": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ],
+ "example": "OPERATOR_EQUAL",
+ "type": "string",
+ "x-enum-varnames": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ]
+ }
+ },
+ "required": [
+ "operand1",
+ "operator"
+ ],
+ "type": "object"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "completionCondition",
+ "retryStrategy"
+ ],
+ "type": "object"
+ },
+ "connectionLabel": {
+ "description": "The unique identifier of a connection defined in the spec.",
+ "type": "string"
+ },
+ "display": {
+ "description": "The definition of `StepDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `StepDisplayBounds` object.",
+ "properties": {
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "errorHandlers": {
+ "description": "The `Step` `errorHandlers`.",
+ "items": {
+ "description": "Used to handle errors in an action.",
+ "properties": {
+ "fallbackStepName": {
+ "description": "The `ErrorHandler` `fallbackStepName`.",
+ "example": "",
+ "type": "string"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "retryStrategy",
+ "fallbackStepName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the step.",
+ "example": "",
+ "type": "string"
+ },
+ "outboundEdges": {
+ "description": "A list of subsequent actions to run.",
+ "items": {
+ "description": "The definition of `OutboundEdge` object.",
+ "properties": {
+ "branchName": {
+ "description": "The `OutboundEdge` `branchName`.",
+ "example": "",
+ "type": "string"
+ },
+ "nextStepName": {
+ "description": "The `OutboundEdge` `nextStepName`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "nextStepName",
+ "branchName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "parameters": {
+ "description": "A list of inputs for an action.",
+ "items": {
+ "description": "The definition of `Parameter` object.",
+ "properties": {
+ "name": {
+ "description": "The `Parameter` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "value": {
+ "description": "The `Parameter` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "value"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "readinessGate": {
+ "description": "Used to merge multiple branches into a single branch.",
+ "properties": {
+ "thresholdType": {
+ "description": "The definition of `ReadinessGateThresholdType` object.",
+ "enum": [
+ "ANY",
+ "ALL"
+ ],
+ "example": "ANY",
+ "type": "string",
+ "x-enum-varnames": [
+ "ANY",
+ "ALL"
+ ]
+ }
+ },
+ "required": [
+ "thresholdType"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "name",
+ "actionId"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "triggers": {
+ "description": "The list of triggers that activate this workflow. At least one trigger is required, and each trigger type may appear at most once.",
+ "items": {
+ "description": "One of the triggers that can start the execution of a workflow.",
+ "oneOf": [
+ {
+ "description": "Schema for an API-based trigger.",
+ "properties": {
+ "apiTrigger": {
+ "description": "Trigger a workflow VIA an API. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "apiTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an App-based trigger.",
+ "properties": {
+ "appTrigger": {
+ "description": "Trigger a workflow VIA an App.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "appTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Case-based trigger.",
+ "properties": {
+ "caseTrigger": {
+ "description": "Trigger a workflow VIA a Case. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "caseTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Change Event-based trigger.",
+ "properties": {
+ "changeEventTrigger": {
+ "description": "Trigger a workflow VIA a Change Event.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "changeEventTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Dashboard-based trigger.",
+ "properties": {
+ "dashboardTrigger": {
+ "description": "Trigger a workflow VIA a Dashboard.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "dashboardTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a GitHub webhook-based trigger.",
+ "properties": {
+ "githubWebhookTrigger": {
+ "description": "Trigger a workflow VIA GitHub webhook. To trigger a workflow from GitHub, you must set a `webhookSecret`. In your GitHub Webhook Settings, set the Payload URL to \"base_url\"/api/v2/workflows/\"workflow_id\"/webhook?orgId=\"org_id\", select application/json for the content type, and be highly recommend enabling SSL verification for security. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "githubWebhookTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an Incident-based trigger.",
+ "properties": {
+ "incidentTrigger": {
+ "description": "Trigger a workflow VIA an Incident. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "incidentTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Monitor-based trigger.",
+ "properties": {
+ "monitorTrigger": {
+ "description": "Trigger a workflow VIA a Monitor. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "monitorTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Schedule-based trigger.",
+ "properties": {
+ "scheduleTrigger": {
+ "description": "Trigger a workflow VIA a Schedule. The workflow must be published.",
+ "properties": {
+ "rruleExpression": {
+ "description": "Recurrence rule expression for scheduling.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "rruleExpression"
+ ],
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "scheduleTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Security-based trigger.",
+ "properties": {
+ "securityTrigger": {
+ "description": "Trigger a workflow VIA a Security Signal or Finding. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "securityTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Slack-based trigger.",
+ "properties": {
+ "slackTrigger": {
+ "description": "Trigger a workflow VIA Slack. The workflow must be published.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "slackTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Workflow-based trigger.",
+ "properties": {
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "workflowTrigger": {
+ "description": "Trigger a workflow VIA the Datadog UI. Only required if no other trigger exists.",
+ "type": "object"
+ }
+ },
+ "required": [
+ "workflowTrigger"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "tags": {
+ "description": "Tags of the workflow.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "updatedAt": {
+ "description": "When the workflow was last updated.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "webhookSecret": {
+ "description": "If a Webhook trigger is defined on this workflow, a webhookSecret is required and should be provided here.",
+ "type": "string",
+ "writeOnly": true
+ }
+ },
+ "required": [
+ "name",
+ "spec"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "description": "The workflow identifier",
+ "readOnly": true,
+ "type": "string"
+ },
+ "relationships": {
+ "description": "The definition of `WorkflowDataRelationships` object.",
+ "properties": {
+ "creator": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
+ "properties": {
+ "data": {
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
+ "properties": {
+ "id": {
+ "description": "The user identifier",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "id"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "owner": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
+ "properties": {
+ "data": {
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
+ "properties": {
+ "id": {
+ "description": "The user identifier",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "id"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "readOnly": true,
+ "type": "object"
+ },
+ "type": {
+ "description": "The definition of `WorkflowDataType` object.",
+ "enum": [
+ "workflows"
+ ],
+ "example": "workflows",
+ "type": "string",
+ "x-enum-varnames": [
+ "WORKFLOWS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "attributes"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
"GitCommitSHA": {
"description": "Git Commit SHA.",
"example": "66adc9350f2cc9b250b69abddab733dd55e1a588",
@@ -74132,6 +81067,68 @@
"example": "https://github.com/organization/example-repository",
"type": "string"
},
+ "GithubWebhookTrigger": {
+ "description": "Trigger a workflow VIA GitHub webhook. To trigger a workflow from GitHub, you must set a `webhookSecret`. In your GitHub Webhook Settings, set the Payload URL to \"base_url\"/api/v2/workflows/\"workflow_id\"/webhook?orgId=\"org_id\", select application/json for the content type, and be highly recommend enabling SSL verification for security. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "GithubWebhookTriggerWrapper": {
+ "description": "Schema for a GitHub webhook-based trigger.",
+ "properties": {
+ "githubWebhookTrigger": {
+ "description": "Trigger a workflow VIA GitHub webhook. To trigger a workflow from GitHub, you must set a `webhookSecret`. In your GitHub Webhook Settings, set the Payload URL to \"base_url\"/api/v2/workflows/\"workflow_id\"/webhook?orgId=\"org_id\", select application/json for the content type, and be highly recommend enabling SSL verification for security. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "githubWebhookTrigger"
+ ],
+ "type": "object"
+ },
"GroupScalarColumn": {
"description": "A column containing the tag keys and values in a group.",
"properties": {
@@ -98266,6 +105263,68 @@
"INCIDENT_TODOS"
]
},
+ "IncidentTrigger": {
+ "description": "Trigger a workflow VIA an Incident. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "IncidentTriggerWrapper": {
+ "description": "Schema for an Incident-based trigger.",
+ "properties": {
+ "incidentTrigger": {
+ "description": "Trigger a workflow VIA an Incident. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "incidentTrigger"
+ ],
+ "type": "object"
+ },
"IncidentType": {
"default": "incidents",
"description": "Incident resource type.",
@@ -101197,6 +108256,143 @@
"RELATION"
]
},
+ "InputSchema": {
+ "description": "A list of input parameters for the workflow. These can be used as dynamic runtime values in your workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `InputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `InputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `InputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `InputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `InputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `InputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `InputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "InputSchemaParameters": {
+ "description": "The definition of `InputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `InputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `InputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `InputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `InputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `InputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "InputSchemaParametersType": {
+ "description": "The definition of `InputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ },
"IntakePayloadAccepted": {
"description": "The payload accepted for intake.",
"properties": {
@@ -128174,6 +135370,68 @@
},
"type": "object"
},
+ "MonitorTrigger": {
+ "description": "Trigger a workflow VIA a Monitor. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "MonitorTriggerWrapper": {
+ "description": "Schema for a Monitor-based trigger.",
+ "properties": {
+ "monitorTrigger": {
+ "description": "Trigger a workflow VIA a Monitor. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "monitorTrigger"
+ ],
+ "type": "object"
+ },
"MonitorType": {
"description": "Attributes from the monitor that triggered the event.",
"nullable": true,
@@ -131139,6 +138397,26 @@
"ORGS"
]
},
+ "OutboundEdge": {
+ "description": "The definition of `OutboundEdge` object.",
+ "properties": {
+ "branchName": {
+ "description": "The `OutboundEdge` `branchName`.",
+ "example": "",
+ "type": "string"
+ },
+ "nextStepName": {
+ "description": "The `OutboundEdge` `nextStepName`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "nextStepName",
+ "branchName"
+ ],
+ "type": "object"
+ },
"OutcomeType": {
"default": "outcome",
"description": "The JSON:API type for an outcome.",
@@ -132157,6 +139435,149 @@
},
"type": "object"
},
+ "OutputSchema": {
+ "description": "A list of output parameters for the workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `OutputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `OutputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `OutputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `OutputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `OutputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `OutputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `OutputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ },
+ "value": {
+ "description": "The `OutputSchemaParameters` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "OutputSchemaParameters": {
+ "description": "The definition of `OutputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `OutputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `OutputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `OutputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `OutputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `OutputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ },
+ "value": {
+ "description": "The `OutputSchemaParameters` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "OutputSchemaParametersType": {
+ "description": "The definition of `OutputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ },
"Pagination": {
"description": "Pagination object.",
"properties": {
@@ -132173,6 +139594,24 @@
},
"type": "object"
},
+ "Parameter": {
+ "description": "The definition of `Parameter` object.",
+ "properties": {
+ "name": {
+ "description": "The `Parameter` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "value": {
+ "description": "The `Parameter` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "value"
+ ],
+ "type": "object"
+ },
"PartialAPIKey": {
"description": "Partial Datadog API key.",
"properties": {
@@ -139988,6 +147427,41 @@
},
"type": "object"
},
+ "ReadinessGate": {
+ "description": "Used to merge multiple branches into a single branch.",
+ "properties": {
+ "thresholdType": {
+ "description": "The definition of `ReadinessGateThresholdType` object.",
+ "enum": [
+ "ANY",
+ "ALL"
+ ],
+ "example": "ANY",
+ "type": "string",
+ "x-enum-varnames": [
+ "ANY",
+ "ALL"
+ ]
+ }
+ },
+ "required": [
+ "thresholdType"
+ ],
+ "type": "object"
+ },
+ "ReadinessGateThresholdType": {
+ "description": "The definition of `ReadinessGateThresholdType` object.",
+ "enum": [
+ "ANY",
+ "ALL"
+ ],
+ "example": "ANY",
+ "type": "string",
+ "x-enum-varnames": [
+ "ANY",
+ "ALL"
+ ]
+ },
"RelationType": {
"description": "Supported relation types.",
"enum": [
@@ -143073,44 +150547,492 @@
"type": "string"
}
},
- "type": "object"
- },
- "filter_type": {
- "default": "spans-sampling-processor",
- "description": "The type of retention filter. The value should always be spans-sampling-processor.",
- "enum": [
- "spans-sampling-processor"
+ "type": "object"
+ },
+ "filter_type": {
+ "default": "spans-sampling-processor",
+ "description": "The type of retention filter. The value should always be spans-sampling-processor.",
+ "enum": [
+ "spans-sampling-processor"
+ ],
+ "example": "spans-sampling-processor",
+ "type": "string",
+ "x-enum-varnames": [
+ "SPANS_SAMPLING_PROCESSOR"
+ ]
+ },
+ "modified_at": {
+ "description": "The modification timestamp of the retention filter.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "modified_by": {
+ "description": "The modifier of the retention filter.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the retention filter.",
+ "example": "my retention filter",
+ "type": "string"
+ },
+ "rate": {
+ "description": "Sample rate to apply to spans going through this retention filter,\na value of 1.0 keeps all spans matching the query.",
+ "example": 1,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "RetentionFilterCreateAttributes": {
+ "description": "The object describing the configuration of the retention filter to create/update.",
+ "properties": {
+ "enabled": {
+ "description": "Enable/Disable the retention filter.",
+ "example": true,
+ "type": "boolean"
+ },
+ "filter": {
+ "description": "The spans filter. Spans matching this filter will be indexed and stored.",
+ "properties": {
+ "query": {
+ "description": "The search query - following the [span search syntax](https://docs.datadoghq.com/tracing/trace_explorer/query_syntax/).",
+ "example": "@http.status_code:200 service:my-service",
+ "type": "string"
+ }
+ },
+ "required": [
+ "query"
+ ],
+ "type": "object"
+ },
+ "filter_type": {
+ "default": "spans-sampling-processor",
+ "description": "The type of retention filter. The value should always be spans-sampling-processor.",
+ "enum": [
+ "spans-sampling-processor"
+ ],
+ "example": "spans-sampling-processor",
+ "type": "string",
+ "x-enum-varnames": [
+ "SPANS_SAMPLING_PROCESSOR"
+ ]
+ },
+ "name": {
+ "description": "The name of the retention filter.",
+ "example": "my retention filter",
+ "type": "string"
+ },
+ "rate": {
+ "description": "Sample rate to apply to spans going through this retention filter,\na value of 1.0 keeps all spans matching the query.",
+ "example": 1,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "name",
+ "filter",
+ "enabled",
+ "filter_type",
+ "rate"
+ ],
+ "type": "object"
+ },
+ "RetentionFilterCreateData": {
+ "description": "The body of the retention filter to be created.",
+ "properties": {
+ "attributes": {
+ "description": "The object describing the configuration of the retention filter to create/update.",
+ "properties": {
+ "enabled": {
+ "description": "Enable/Disable the retention filter.",
+ "example": true,
+ "type": "boolean"
+ },
+ "filter": {
+ "description": "The spans filter. Spans matching this filter will be indexed and stored.",
+ "properties": {
+ "query": {
+ "description": "The search query - following the [span search syntax](https://docs.datadoghq.com/tracing/trace_explorer/query_syntax/).",
+ "example": "@http.status_code:200 service:my-service",
+ "type": "string"
+ }
+ },
+ "required": [
+ "query"
+ ],
+ "type": "object"
+ },
+ "filter_type": {
+ "default": "spans-sampling-processor",
+ "description": "The type of retention filter. The value should always be spans-sampling-processor.",
+ "enum": [
+ "spans-sampling-processor"
+ ],
+ "example": "spans-sampling-processor",
+ "type": "string",
+ "x-enum-varnames": [
+ "SPANS_SAMPLING_PROCESSOR"
+ ]
+ },
+ "name": {
+ "description": "The name of the retention filter.",
+ "example": "my retention filter",
+ "type": "string"
+ },
+ "rate": {
+ "description": "Sample rate to apply to spans going through this retention filter,\na value of 1.0 keeps all spans matching the query.",
+ "example": 1,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "name",
+ "filter",
+ "enabled",
+ "filter_type",
+ "rate"
+ ],
+ "type": "object"
+ },
+ "type": {
+ "default": "apm_retention_filter",
+ "description": "The type of the resource.",
+ "enum": [
+ "apm_retention_filter"
+ ],
+ "example": "apm_retention_filter",
+ "type": "string",
+ "x-enum-varnames": [
+ "apm_retention_filter"
+ ]
+ }
+ },
+ "required": [
+ "attributes",
+ "type"
+ ],
+ "type": "object"
+ },
+ "RetentionFilterCreateRequest": {
+ "description": "The body of the retention filter to be created.",
+ "properties": {
+ "data": {
+ "description": "The body of the retention filter to be created.",
+ "properties": {
+ "attributes": {
+ "description": "The object describing the configuration of the retention filter to create/update.",
+ "properties": {
+ "enabled": {
+ "description": "Enable/Disable the retention filter.",
+ "example": true,
+ "type": "boolean"
+ },
+ "filter": {
+ "description": "The spans filter. Spans matching this filter will be indexed and stored.",
+ "properties": {
+ "query": {
+ "description": "The search query - following the [span search syntax](https://docs.datadoghq.com/tracing/trace_explorer/query_syntax/).",
+ "example": "@http.status_code:200 service:my-service",
+ "type": "string"
+ }
+ },
+ "required": [
+ "query"
+ ],
+ "type": "object"
+ },
+ "filter_type": {
+ "default": "spans-sampling-processor",
+ "description": "The type of retention filter. The value should always be spans-sampling-processor.",
+ "enum": [
+ "spans-sampling-processor"
+ ],
+ "example": "spans-sampling-processor",
+ "type": "string",
+ "x-enum-varnames": [
+ "SPANS_SAMPLING_PROCESSOR"
+ ]
+ },
+ "name": {
+ "description": "The name of the retention filter.",
+ "example": "my retention filter",
+ "type": "string"
+ },
+ "rate": {
+ "description": "Sample rate to apply to spans going through this retention filter,\na value of 1.0 keeps all spans matching the query.",
+ "example": 1,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "name",
+ "filter",
+ "enabled",
+ "filter_type",
+ "rate"
+ ],
+ "type": "object"
+ },
+ "type": {
+ "default": "apm_retention_filter",
+ "description": "The type of the resource.",
+ "enum": [
+ "apm_retention_filter"
+ ],
+ "example": "apm_retention_filter",
+ "type": "string",
+ "x-enum-varnames": [
+ "apm_retention_filter"
+ ]
+ }
+ },
+ "required": [
+ "attributes",
+ "type"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "RetentionFilterCreateResponse": {
+ "description": "The retention filters definition.",
+ "properties": {
+ "data": {
+ "description": "The definition of the retention filter.",
+ "properties": {
+ "attributes": {
+ "description": "The attributes of the retention filter.",
+ "properties": {
+ "created_at": {
+ "description": "The creation timestamp of the retention filter.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "created_by": {
+ "description": "The creator of the retention filter.",
+ "type": "string"
+ },
+ "editable": {
+ "description": "Shows whether the filter can be edited.",
+ "example": true,
+ "type": "boolean"
+ },
+ "enabled": {
+ "description": "The status of the retention filter (Enabled/Disabled).",
+ "example": true,
+ "type": "boolean"
+ },
+ "execution_order": {
+ "description": "The execution order of the retention filter.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "filter": {
+ "description": "The spans filter used to index spans.",
+ "properties": {
+ "query": {
+ "description": "The search query - following the [span search syntax](https://docs.datadoghq.com/tracing/trace_explorer/query_syntax/).",
+ "example": "@http.status_code:200 service:my-service",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "filter_type": {
+ "default": "spans-sampling-processor",
+ "description": "The type of retention filter. The value should always be spans-sampling-processor.",
+ "enum": [
+ "spans-sampling-processor"
+ ],
+ "example": "spans-sampling-processor",
+ "type": "string",
+ "x-enum-varnames": [
+ "SPANS_SAMPLING_PROCESSOR"
+ ]
+ },
+ "modified_at": {
+ "description": "The modification timestamp of the retention filter.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "modified_by": {
+ "description": "The modifier of the retention filter.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the retention filter.",
+ "example": "my retention filter",
+ "type": "string"
+ },
+ "rate": {
+ "description": "Sample rate to apply to spans going through this retention filter,\na value of 1.0 keeps all spans matching the query.",
+ "example": 1,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The ID of the retention filter.",
+ "example": "7RBOb7dLSYWI01yc3pIH8w",
+ "type": "string"
+ },
+ "type": {
+ "default": "apm_retention_filter",
+ "description": "The type of the resource.",
+ "enum": [
+ "apm_retention_filter"
+ ],
+ "example": "apm_retention_filter",
+ "type": "string",
+ "x-enum-varnames": [
+ "apm_retention_filter"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type",
+ "attributes"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "RetentionFilterResponse": {
+ "description": "The retention filters definition.",
+ "properties": {
+ "data": {
+ "description": "The definition of the retention filter.",
+ "properties": {
+ "attributes": {
+ "description": "The attributes of the retention filter.",
+ "properties": {
+ "created_at": {
+ "description": "The creation timestamp of the retention filter.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "created_by": {
+ "description": "The creator of the retention filter.",
+ "type": "string"
+ },
+ "editable": {
+ "description": "Shows whether the filter can be edited.",
+ "example": true,
+ "type": "boolean"
+ },
+ "enabled": {
+ "description": "The status of the retention filter (Enabled/Disabled).",
+ "example": true,
+ "type": "boolean"
+ },
+ "execution_order": {
+ "description": "The execution order of the retention filter.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "filter": {
+ "description": "The spans filter used to index spans.",
+ "properties": {
+ "query": {
+ "description": "The search query - following the [span search syntax](https://docs.datadoghq.com/tracing/trace_explorer/query_syntax/).",
+ "example": "@http.status_code:200 service:my-service",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "filter_type": {
+ "default": "spans-sampling-processor",
+ "description": "The type of retention filter.",
+ "enum": [
+ "spans-sampling-processor",
+ "spans-errors-sampling-processor",
+ "spans-appsec-sampling-processor"
+ ],
+ "example": "spans-sampling-processor",
+ "type": "string",
+ "x-enum-varnames": [
+ "SPANS_SAMPLING_PROCESSOR",
+ "SPANS_ERRORS_SAMPLING_PROCESSOR",
+ "SPANS_APPSEC_SAMPLING_PROCESSOR"
+ ]
+ },
+ "modified_at": {
+ "description": "The modification timestamp of the retention filter.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "modified_by": {
+ "description": "The modifier of the retention filter.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the retention filter.",
+ "example": "my retention filter",
+ "type": "string"
+ },
+ "rate": {
+ "description": "Sample rate to apply to spans going through this retention filter,\na value of 1.0 keeps all spans matching the query.",
+ "example": 1,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The ID of the retention filter.",
+ "example": "7RBOb7dLSYWI01yc3pIH8w",
+ "type": "string"
+ },
+ "type": {
+ "default": "apm_retention_filter",
+ "description": "The type of the resource.",
+ "enum": [
+ "apm_retention_filter"
+ ],
+ "example": "apm_retention_filter",
+ "type": "string",
+ "x-enum-varnames": [
+ "apm_retention_filter"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type",
+ "attributes"
],
- "example": "spans-sampling-processor",
- "type": "string",
- "x-enum-varnames": [
- "SPANS_SAMPLING_PROCESSOR"
- ]
- },
- "modified_at": {
- "description": "The modification timestamp of the retention filter.",
- "format": "int64",
- "type": "integer"
- },
- "modified_by": {
- "description": "The modifier of the retention filter.",
- "type": "string"
- },
- "name": {
- "description": "The name of the retention filter.",
- "example": "my retention filter",
- "type": "string"
- },
- "rate": {
- "description": "Sample rate to apply to spans going through this retention filter,\na value of 1.0 keeps all spans matching the query.",
- "example": 1,
- "format": "double",
- "type": "number"
+ "type": "object"
}
},
"type": "object"
},
- "RetentionFilterCreateAttributes": {
+ "RetentionFilterType": {
+ "default": "spans-sampling-processor",
+ "description": "The type of retention filter. The value should always be spans-sampling-processor.",
+ "enum": [
+ "spans-sampling-processor"
+ ],
+ "example": "spans-sampling-processor",
+ "type": "string",
+ "x-enum-varnames": [
+ "SPANS_SAMPLING_PROCESSOR"
+ ]
+ },
+ "RetentionFilterUpdateAttributes": {
"description": "The object describing the configuration of the retention filter to create/update.",
"properties": {
"enabled": {
@@ -143134,14 +151056,18 @@
},
"filter_type": {
"default": "spans-sampling-processor",
- "description": "The type of retention filter. The value should always be spans-sampling-processor.",
+ "description": "The type of retention filter.",
"enum": [
- "spans-sampling-processor"
+ "spans-sampling-processor",
+ "spans-errors-sampling-processor",
+ "spans-appsec-sampling-processor"
],
"example": "spans-sampling-processor",
"type": "string",
"x-enum-varnames": [
- "SPANS_SAMPLING_PROCESSOR"
+ "SPANS_SAMPLING_PROCESSOR",
+ "SPANS_ERRORS_SAMPLING_PROCESSOR",
+ "SPANS_APPSEC_SAMPLING_PROCESSOR"
]
},
"name": {
@@ -143165,8 +151091,8 @@
],
"type": "object"
},
- "RetentionFilterCreateData": {
- "description": "The body of the retention filter to be created.",
+ "RetentionFilterUpdateData": {
+ "description": "The body of the retention filter to be updated.",
"properties": {
"attributes": {
"description": "The object describing the configuration of the retention filter to create/update.",
@@ -143192,14 +151118,18 @@
},
"filter_type": {
"default": "spans-sampling-processor",
- "description": "The type of retention filter. The value should always be spans-sampling-processor.",
+ "description": "The type of retention filter.",
"enum": [
- "spans-sampling-processor"
+ "spans-sampling-processor",
+ "spans-errors-sampling-processor",
+ "spans-appsec-sampling-processor"
],
"example": "spans-sampling-processor",
"type": "string",
"x-enum-varnames": [
- "SPANS_SAMPLING_PROCESSOR"
+ "SPANS_SAMPLING_PROCESSOR",
+ "SPANS_ERRORS_SAMPLING_PROCESSOR",
+ "SPANS_APPSEC_SAMPLING_PROCESSOR"
]
},
"name": {
@@ -143223,6 +151153,11 @@
],
"type": "object"
},
+ "id": {
+ "description": "The ID of the retention filter.",
+ "example": "retention-filter-id",
+ "type": "string"
+ },
"type": {
"default": "apm_retention_filter",
"description": "The type of the resource.",
@@ -143237,16 +151172,17 @@
}
},
"required": [
+ "id",
"attributes",
"type"
],
"type": "object"
},
- "RetentionFilterCreateRequest": {
- "description": "The body of the retention filter to be created.",
+ "RetentionFilterUpdateRequest": {
+ "description": "The body of the retention filter to be updated.",
"properties": {
"data": {
- "description": "The body of the retention filter to be created.",
+ "description": "The body of the retention filter to be updated.",
"properties": {
"attributes": {
"description": "The object describing the configuration of the retention filter to create/update.",
@@ -143272,14 +151208,18 @@
},
"filter_type": {
"default": "spans-sampling-processor",
- "description": "The type of retention filter. The value should always be spans-sampling-processor.",
+ "description": "The type of retention filter.",
"enum": [
- "spans-sampling-processor"
+ "spans-sampling-processor",
+ "spans-errors-sampling-processor",
+ "spans-appsec-sampling-processor"
],
"example": "spans-sampling-processor",
"type": "string",
"x-enum-varnames": [
- "SPANS_SAMPLING_PROCESSOR"
+ "SPANS_SAMPLING_PROCESSOR",
+ "SPANS_ERRORS_SAMPLING_PROCESSOR",
+ "SPANS_APPSEC_SAMPLING_PROCESSOR"
]
},
"name": {
@@ -143303,6 +151243,11 @@
],
"type": "object"
},
+ "id": {
+ "description": "The ID of the retention filter.",
+ "example": "retention-filter-id",
+ "type": "string"
+ },
"type": {
"default": "apm_retention_filter",
"description": "The type of the resource.",
@@ -143317,6 +151262,7 @@
}
},
"required": [
+ "id",
"attributes",
"type"
],
@@ -143328,471 +151274,1296 @@
],
"type": "object"
},
- "RetentionFilterCreateResponse": {
- "description": "The retention filters definition.",
+ "RetentionFilterWithoutAttributes": {
+ "description": "The retention filter object .",
+ "properties": {
+ "id": {
+ "description": "The ID of the retention filter.",
+ "example": "7RBOb7dLSYWI01yc3pIH8w",
+ "type": "string"
+ },
+ "type": {
+ "default": "apm_retention_filter",
+ "description": "The type of the resource.",
+ "enum": [
+ "apm_retention_filter"
+ ],
+ "example": "apm_retention_filter",
+ "type": "string",
+ "x-enum-varnames": [
+ "apm_retention_filter"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ },
+ "RetentionFiltersResponse": {
+ "description": "An ordered list of retention filters.",
"properties": {
"data": {
- "description": "The definition of the retention filter.",
+ "description": "A list of retention filters objects.",
+ "items": {
+ "description": "The definition of the retention filter.",
+ "properties": {
+ "attributes": {
+ "description": "The attributes of the retention filter.",
+ "properties": {
+ "created_at": {
+ "description": "The creation timestamp of the retention filter.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "created_by": {
+ "description": "The creator of the retention filter.",
+ "type": "string"
+ },
+ "editable": {
+ "description": "Shows whether the filter can be edited.",
+ "example": true,
+ "type": "boolean"
+ },
+ "enabled": {
+ "description": "The status of the retention filter (Enabled/Disabled).",
+ "example": true,
+ "type": "boolean"
+ },
+ "execution_order": {
+ "description": "The execution order of the retention filter.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "filter": {
+ "description": "The spans filter used to index spans.",
+ "properties": {
+ "query": {
+ "description": "The search query - following the [span search syntax](https://docs.datadoghq.com/tracing/trace_explorer/query_syntax/).",
+ "example": "@http.status_code:200 service:my-service",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "filter_type": {
+ "default": "spans-sampling-processor",
+ "description": "The type of retention filter.",
+ "enum": [
+ "spans-sampling-processor",
+ "spans-errors-sampling-processor",
+ "spans-appsec-sampling-processor"
+ ],
+ "example": "spans-sampling-processor",
+ "type": "string",
+ "x-enum-varnames": [
+ "SPANS_SAMPLING_PROCESSOR",
+ "SPANS_ERRORS_SAMPLING_PROCESSOR",
+ "SPANS_APPSEC_SAMPLING_PROCESSOR"
+ ]
+ },
+ "modified_at": {
+ "description": "The modification timestamp of the retention filter.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "modified_by": {
+ "description": "The modifier of the retention filter.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the retention filter.",
+ "example": "my retention filter",
+ "type": "string"
+ },
+ "rate": {
+ "description": "Sample rate to apply to spans going through this retention filter,\na value of 1.0 keeps all spans matching the query.",
+ "example": 1,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The ID of the retention filter.",
+ "example": "7RBOb7dLSYWI01yc3pIH8w",
+ "type": "string"
+ },
+ "type": {
+ "default": "apm_retention_filter",
+ "description": "The type of the resource.",
+ "enum": [
+ "apm_retention_filter"
+ ],
+ "example": "apm_retention_filter",
+ "type": "string",
+ "x-enum-varnames": [
+ "apm_retention_filter"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type",
+ "attributes"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "RetryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ },
+ "RetryStrategyKind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "RetryStrategyLinear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ },
+ "Role": {
+ "description": "Role object returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of the role.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the role.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "modified_at": {
+ "description": "Time of last role modification.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
+ "type": "string"
+ },
+ "user_count": {
+ "description": "Number of users with that role.",
+ "format": "int64",
+ "readOnly": true,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The unique identifier of the role.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships of the role object returned by the API.",
+ "properties": {
+ "permissions": {
+ "description": "Relationship to multiple permissions objects.",
+ "properties": {
+ "data": {
+ "description": "Relationships to permission objects.",
+ "items": {
+ "description": "Relationship to permission object.",
+ "properties": {
+ "id": {
+ "description": "ID of the permission.",
+ "type": "string"
+ },
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "RoleAttributes": {
+ "description": "Attributes of the role.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the role.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "modified_at": {
+ "description": "Time of last role modification.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
+ "type": "string"
+ },
+ "user_count": {
+ "description": "Number of users with that role.",
+ "format": "int64",
+ "readOnly": true,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "RoleClone": {
+ "description": "Data for the clone role request.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes required to create a new role by cloning an existing one.",
+ "properties": {
+ "name": {
+ "description": "Name of the new role that is cloned.",
+ "example": "cloned-role",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "type": "object"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "attributes"
+ ],
+ "type": "object"
+ },
+ "RoleCloneAttributes": {
+ "description": "Attributes required to create a new role by cloning an existing one.",
+ "properties": {
+ "name": {
+ "description": "Name of the new role that is cloned.",
+ "example": "cloned-role",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "type": "object"
+ },
+ "RoleCloneRequest": {
+ "description": "Request to create a role by cloning an existing role.",
+ "properties": {
+ "data": {
+ "description": "Data for the clone role request.",
"properties": {
"attributes": {
- "description": "The attributes of the retention filter.",
+ "description": "Attributes required to create a new role by cloning an existing one.",
+ "properties": {
+ "name": {
+ "description": "Name of the new role that is cloned.",
+ "example": "cloned-role",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "type": "object"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "attributes"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "RoleCreateAttributes": {
+ "description": "Attributes of the created role.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the role.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "modified_at": {
+ "description": "Time of last role modification.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the role.",
+ "example": "developers",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "type": "object"
+ },
+ "RoleCreateData": {
+ "description": "Data related to the creation of a role.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of the created role.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the role.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "modified_at": {
+ "description": "Time of last role modification.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the role.",
+ "example": "developers",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "type": "object"
+ },
+ "relationships": {
+ "description": "Relationships of the role object.",
+ "properties": {
+ "permissions": {
+ "description": "Relationship to multiple permissions objects.",
+ "properties": {
+ "data": {
+ "description": "Relationships to permission objects.",
+ "items": {
+ "description": "Relationship to permission object.",
+ "properties": {
+ "id": {
+ "description": "ID of the permission.",
+ "type": "string"
+ },
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "required": [
+ "attributes"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "RoleCreateRequest": {
+ "description": "Create a role.",
+ "properties": {
+ "data": {
+ "description": "Data related to the creation of a role.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of the created role.",
"properties": {
"created_at": {
- "description": "The creation timestamp of the retention filter.",
- "format": "int64",
- "type": "integer"
- },
- "created_by": {
- "description": "The creator of the retention filter.",
+ "description": "Creation time of the role.",
+ "format": "date-time",
+ "readOnly": true,
"type": "string"
},
- "editable": {
- "description": "Shows whether the filter can be edited.",
- "example": true,
- "type": "boolean"
- },
- "enabled": {
- "description": "The status of the retention filter (Enabled/Disabled).",
- "example": true,
- "type": "boolean"
- },
- "execution_order": {
- "description": "The execution order of the retention filter.",
- "format": "int64",
- "type": "integer"
+ "modified_at": {
+ "description": "Time of last role modification.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
},
- "filter": {
- "description": "The spans filter used to index spans.",
+ "name": {
+ "description": "Name of the role.",
+ "example": "developers",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "type": "object"
+ },
+ "relationships": {
+ "description": "Relationships of the role object.",
+ "properties": {
+ "permissions": {
+ "description": "Relationship to multiple permissions objects.",
"properties": {
- "query": {
- "description": "The search query - following the [span search syntax](https://docs.datadoghq.com/tracing/trace_explorer/query_syntax/).",
- "example": "@http.status_code:200 service:my-service",
- "type": "string"
+ "data": {
+ "description": "Relationships to permission objects.",
+ "items": {
+ "description": "Relationship to permission object.",
+ "properties": {
+ "id": {
+ "description": "ID of the permission.",
+ "type": "string"
+ },
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
}
},
- "type": "object"
- },
- "filter_type": {
- "default": "spans-sampling-processor",
- "description": "The type of retention filter. The value should always be spans-sampling-processor.",
- "enum": [
- "spans-sampling-processor"
- ],
- "example": "spans-sampling-processor",
- "type": "string",
- "x-enum-varnames": [
- "SPANS_SAMPLING_PROCESSOR"
- ]
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "required": [
+ "attributes"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "RoleCreateResponse": {
+ "description": "Response containing information about a created role.",
+ "properties": {
+ "data": {
+ "description": "Role object returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of the created role.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the role.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
},
"modified_at": {
- "description": "The modification timestamp of the retention filter.",
- "format": "int64",
- "type": "integer"
- },
- "modified_by": {
- "description": "The modifier of the retention filter.",
+ "description": "Time of last role modification.",
+ "format": "date-time",
+ "readOnly": true,
"type": "string"
},
"name": {
- "description": "The name of the retention filter.",
- "example": "my retention filter",
+ "description": "Name of the role.",
+ "example": "developers",
"type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "description": "The unique identifier of the role.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships of the role object returned by the API.",
+ "properties": {
+ "permissions": {
+ "description": "Relationship to multiple permissions objects.",
+ "properties": {
+ "data": {
+ "description": "Relationships to permission objects.",
+ "items": {
+ "description": "Relationship to permission object.",
+ "properties": {
+ "id": {
+ "description": "ID of the permission.",
+ "type": "string"
+ },
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "RoleCreateResponseData": {
+ "description": "Role object returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of the created role.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the role.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "modified_at": {
+ "description": "Time of last role modification.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the role.",
+ "example": "developers",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "description": "The unique identifier of the role.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships of the role object returned by the API.",
+ "properties": {
+ "permissions": {
+ "description": "Relationship to multiple permissions objects.",
+ "properties": {
+ "data": {
+ "description": "Relationships to permission objects.",
+ "items": {
+ "description": "Relationship to permission object.",
+ "properties": {
+ "id": {
+ "description": "ID of the permission.",
+ "type": "string"
+ },
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object"
+ },
+ "RoleRelationships": {
+ "description": "Relationships of the role object.",
+ "properties": {
+ "permissions": {
+ "description": "Relationship to multiple permissions objects.",
+ "properties": {
+ "data": {
+ "description": "Relationships to permission objects.",
+ "items": {
+ "description": "Relationship to permission object.",
+ "properties": {
+ "id": {
+ "description": "ID of the permission.",
+ "type": "string"
+ },
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
},
- "rate": {
- "description": "Sample rate to apply to spans going through this retention filter,\na value of 1.0 keeps all spans matching the query.",
- "example": 1,
- "format": "double",
- "type": "number"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
}
},
- "type": "object"
- },
- "id": {
- "description": "The ID of the retention filter.",
- "example": "7RBOb7dLSYWI01yc3pIH8w",
- "type": "string"
- },
- "type": {
- "default": "apm_retention_filter",
- "description": "The type of the resource.",
- "enum": [
- "apm_retention_filter"
- ],
- "example": "apm_retention_filter",
- "type": "string",
- "x-enum-varnames": [
- "apm_retention_filter"
- ]
+ "type": "array"
}
},
- "required": [
- "id",
- "type",
- "attributes"
- ],
- "type": "object"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
"type": "object"
},
- "RetentionFilterResponse": {
- "description": "The retention filters definition.",
+ "RoleResponse": {
+ "description": "Response containing information about a single role.",
"properties": {
"data": {
- "description": "The definition of the retention filter.",
+ "description": "Role object returned by the API.",
"properties": {
"attributes": {
- "description": "The attributes of the retention filter.",
+ "description": "Attributes of the role.",
"properties": {
"created_at": {
- "description": "The creation timestamp of the retention filter.",
- "format": "int64",
- "type": "integer"
- },
- "created_by": {
- "description": "The creator of the retention filter.",
+ "description": "Creation time of the role.",
+ "format": "date-time",
+ "readOnly": true,
"type": "string"
},
- "editable": {
- "description": "Shows whether the filter can be edited.",
- "example": true,
- "type": "boolean"
- },
- "enabled": {
- "description": "The status of the retention filter (Enabled/Disabled).",
- "example": true,
- "type": "boolean"
- },
- "execution_order": {
- "description": "The execution order of the retention filter.",
- "format": "int64",
- "type": "integer"
- },
- "filter": {
- "description": "The spans filter used to index spans.",
- "properties": {
- "query": {
- "description": "The search query - following the [span search syntax](https://docs.datadoghq.com/tracing/trace_explorer/query_syntax/).",
- "example": "@http.status_code:200 service:my-service",
- "type": "string"
- }
- },
- "type": "object"
- },
- "filter_type": {
- "default": "spans-sampling-processor",
- "description": "The type of retention filter.",
- "enum": [
- "spans-sampling-processor",
- "spans-errors-sampling-processor",
- "spans-appsec-sampling-processor"
- ],
- "example": "spans-sampling-processor",
- "type": "string",
- "x-enum-varnames": [
- "SPANS_SAMPLING_PROCESSOR",
- "SPANS_ERRORS_SAMPLING_PROCESSOR",
- "SPANS_APPSEC_SAMPLING_PROCESSOR"
- ]
- },
"modified_at": {
- "description": "The modification timestamp of the retention filter.",
- "format": "int64",
- "type": "integer"
- },
- "modified_by": {
- "description": "The modifier of the retention filter.",
+ "description": "Time of last role modification.",
+ "format": "date-time",
+ "readOnly": true,
"type": "string"
},
"name": {
- "description": "The name of the retention filter.",
- "example": "my retention filter",
+ "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
"type": "string"
},
- "rate": {
- "description": "Sample rate to apply to spans going through this retention filter,\na value of 1.0 keeps all spans matching the query.",
- "example": 1,
- "format": "double",
- "type": "number"
+ "user_count": {
+ "description": "Number of users with that role.",
+ "format": "int64",
+ "readOnly": true,
+ "type": "integer"
}
},
"type": "object"
},
"id": {
- "description": "The ID of the retention filter.",
- "example": "7RBOb7dLSYWI01yc3pIH8w",
+ "description": "The unique identifier of the role.",
"type": "string"
},
+ "relationships": {
+ "description": "Relationships of the role object returned by the API.",
+ "properties": {
+ "permissions": {
+ "description": "Relationship to multiple permissions objects.",
+ "properties": {
+ "data": {
+ "description": "Relationships to permission objects.",
+ "items": {
+ "description": "Relationship to permission object.",
+ "properties": {
+ "id": {
+ "description": "ID of the permission.",
+ "type": "string"
+ },
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object"
+ },
"type": {
- "default": "apm_retention_filter",
- "description": "The type of the resource.",
+ "default": "roles",
+ "description": "Roles type.",
"enum": [
- "apm_retention_filter"
+ "roles"
],
- "example": "apm_retention_filter",
+ "example": "roles",
"type": "string",
"x-enum-varnames": [
- "apm_retention_filter"
+ "ROLES"
]
}
},
"required": [
- "id",
- "type",
- "attributes"
+ "type"
],
- "type": "object"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
"type": "object"
},
- "RetentionFilterType": {
- "default": "spans-sampling-processor",
- "description": "The type of retention filter. The value should always be spans-sampling-processor.",
- "enum": [
- "spans-sampling-processor"
- ],
- "example": "spans-sampling-processor",
- "type": "string",
- "x-enum-varnames": [
- "SPANS_SAMPLING_PROCESSOR"
- ]
- },
- "RetentionFilterUpdateAttributes": {
- "description": "The object describing the configuration of the retention filter to create/update.",
+ "RoleResponseRelationships": {
+ "description": "Relationships of the role object returned by the API.",
"properties": {
- "enabled": {
- "description": "Enable/Disable the retention filter.",
- "example": true,
- "type": "boolean"
- },
- "filter": {
- "description": "The spans filter. Spans matching this filter will be indexed and stored.",
+ "permissions": {
+ "description": "Relationship to multiple permissions objects.",
"properties": {
- "query": {
- "description": "The search query - following the [span search syntax](https://docs.datadoghq.com/tracing/trace_explorer/query_syntax/).",
- "example": "@http.status_code:200 service:my-service",
- "type": "string"
+ "data": {
+ "description": "Relationships to permission objects.",
+ "items": {
+ "description": "Relationship to permission object.",
+ "properties": {
+ "id": {
+ "description": "ID of the permission.",
+ "type": "string"
+ },
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
}
},
- "required": [
- "query"
- ],
- "type": "object"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object"
+ },
+ "RoleUpdateAttributes": {
+ "description": "Attributes of the role.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the role.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
},
- "filter_type": {
- "default": "spans-sampling-processor",
- "description": "The type of retention filter.",
- "enum": [
- "spans-sampling-processor",
- "spans-errors-sampling-processor",
- "spans-appsec-sampling-processor"
- ],
- "example": "spans-sampling-processor",
- "type": "string",
- "x-enum-varnames": [
- "SPANS_SAMPLING_PROCESSOR",
- "SPANS_ERRORS_SAMPLING_PROCESSOR",
- "SPANS_APPSEC_SAMPLING_PROCESSOR"
- ]
+ "modified_at": {
+ "description": "Time of last role modification.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
},
"name": {
- "description": "The name of the retention filter.",
- "example": "my retention filter",
+ "description": "Name of the role.",
"type": "string"
},
- "rate": {
- "description": "Sample rate to apply to spans going through this retention filter,\na value of 1.0 keeps all spans matching the query.",
- "example": 1,
- "format": "double",
- "type": "number"
+ "user_count": {
+ "description": "The user count.",
+ "format": "int32",
+ "maximum": 2147483647,
+ "type": "integer"
}
},
- "required": [
- "name",
- "filter",
- "enabled",
- "filter_type",
- "rate"
- ],
"type": "object"
},
- "RetentionFilterUpdateData": {
- "description": "The body of the retention filter to be updated.",
+ "RoleUpdateData": {
+ "description": "Data related to the update of a role.",
"properties": {
"attributes": {
- "description": "The object describing the configuration of the retention filter to create/update.",
+ "description": "Attributes of the role.",
"properties": {
- "enabled": {
- "description": "Enable/Disable the retention filter.",
- "example": true,
- "type": "boolean"
- },
- "filter": {
- "description": "The spans filter. Spans matching this filter will be indexed and stored.",
- "properties": {
- "query": {
- "description": "The search query - following the [span search syntax](https://docs.datadoghq.com/tracing/trace_explorer/query_syntax/).",
- "example": "@http.status_code:200 service:my-service",
- "type": "string"
- }
- },
- "required": [
- "query"
- ],
- "type": "object"
+ "created_at": {
+ "description": "Creation time of the role.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
},
- "filter_type": {
- "default": "spans-sampling-processor",
- "description": "The type of retention filter.",
- "enum": [
- "spans-sampling-processor",
- "spans-errors-sampling-processor",
- "spans-appsec-sampling-processor"
- ],
- "example": "spans-sampling-processor",
- "type": "string",
- "x-enum-varnames": [
- "SPANS_SAMPLING_PROCESSOR",
- "SPANS_ERRORS_SAMPLING_PROCESSOR",
- "SPANS_APPSEC_SAMPLING_PROCESSOR"
- ]
+ "modified_at": {
+ "description": "Time of last role modification.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
},
"name": {
- "description": "The name of the retention filter.",
- "example": "my retention filter",
+ "description": "Name of the role.",
"type": "string"
},
- "rate": {
- "description": "Sample rate to apply to spans going through this retention filter,\na value of 1.0 keeps all spans matching the query.",
- "example": 1,
- "format": "double",
- "type": "number"
+ "user_count": {
+ "description": "The user count.",
+ "format": "int32",
+ "maximum": 2147483647,
+ "type": "integer"
}
},
- "required": [
- "name",
- "filter",
- "enabled",
- "filter_type",
- "rate"
- ],
"type": "object"
},
"id": {
- "description": "The ID of the retention filter.",
- "example": "retention-filter-id",
+ "description": "The unique identifier of the role.",
+ "example": "00000000-0000-1111-0000-000000000000",
"type": "string"
},
+ "relationships": {
+ "description": "Relationships of the role object.",
+ "properties": {
+ "permissions": {
+ "description": "Relationship to multiple permissions objects.",
+ "properties": {
+ "data": {
+ "description": "Relationships to permission objects.",
+ "items": {
+ "description": "Relationship to permission object.",
+ "properties": {
+ "id": {
+ "description": "ID of the permission.",
+ "type": "string"
+ },
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object"
+ },
"type": {
- "default": "apm_retention_filter",
- "description": "The type of the resource.",
+ "default": "roles",
+ "description": "Roles type.",
"enum": [
- "apm_retention_filter"
+ "roles"
],
- "example": "apm_retention_filter",
+ "example": "roles",
"type": "string",
"x-enum-varnames": [
- "apm_retention_filter"
+ "ROLES"
]
}
},
"required": [
- "id",
"attributes",
- "type"
+ "type",
+ "id"
],
- "type": "object"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
},
- "RetentionFilterUpdateRequest": {
- "description": "The body of the retention filter to be updated.",
+ "RoleUpdateRequest": {
+ "description": "Update a role.",
"properties": {
"data": {
- "description": "The body of the retention filter to be updated.",
+ "description": "Data related to the update of a role.",
"properties": {
"attributes": {
- "description": "The object describing the configuration of the retention filter to create/update.",
+ "description": "Attributes of the role.",
"properties": {
- "enabled": {
- "description": "Enable/Disable the retention filter.",
- "example": true,
- "type": "boolean"
- },
- "filter": {
- "description": "The spans filter. Spans matching this filter will be indexed and stored.",
- "properties": {
- "query": {
- "description": "The search query - following the [span search syntax](https://docs.datadoghq.com/tracing/trace_explorer/query_syntax/).",
- "example": "@http.status_code:200 service:my-service",
- "type": "string"
- }
- },
- "required": [
- "query"
- ],
- "type": "object"
+ "created_at": {
+ "description": "Creation time of the role.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
},
- "filter_type": {
- "default": "spans-sampling-processor",
- "description": "The type of retention filter.",
- "enum": [
- "spans-sampling-processor",
- "spans-errors-sampling-processor",
- "spans-appsec-sampling-processor"
- ],
- "example": "spans-sampling-processor",
- "type": "string",
- "x-enum-varnames": [
- "SPANS_SAMPLING_PROCESSOR",
- "SPANS_ERRORS_SAMPLING_PROCESSOR",
- "SPANS_APPSEC_SAMPLING_PROCESSOR"
- ]
+ "modified_at": {
+ "description": "Time of last role modification.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
},
"name": {
- "description": "The name of the retention filter.",
- "example": "my retention filter",
+ "description": "Name of the role.",
"type": "string"
},
- "rate": {
- "description": "Sample rate to apply to spans going through this retention filter,\na value of 1.0 keeps all spans matching the query.",
- "example": 1,
- "format": "double",
- "type": "number"
+ "user_count": {
+ "description": "The user count.",
+ "format": "int32",
+ "maximum": 2147483647,
+ "type": "integer"
}
},
- "required": [
- "name",
- "filter",
- "enabled",
- "filter_type",
- "rate"
- ],
"type": "object"
},
"id": {
- "description": "The ID of the retention filter.",
- "example": "retention-filter-id",
+ "description": "The unique identifier of the role.",
+ "example": "00000000-0000-1111-0000-000000000000",
"type": "string"
},
+ "relationships": {
+ "description": "Relationships of the role object.",
+ "properties": {
+ "permissions": {
+ "description": "Relationship to multiple permissions objects.",
+ "properties": {
+ "data": {
+ "description": "Relationships to permission objects.",
+ "items": {
+ "description": "Relationship to permission object.",
+ "properties": {
+ "id": {
+ "description": "ID of the permission.",
+ "type": "string"
+ },
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object"
+ },
"type": {
- "default": "apm_retention_filter",
- "description": "The type of the resource.",
+ "default": "roles",
+ "description": "Roles type.",
"enum": [
- "apm_retention_filter"
+ "roles"
],
- "example": "apm_retention_filter",
+ "example": "roles",
"type": "string",
"x-enum-varnames": [
- "apm_retention_filter"
+ "ROLES"
]
}
},
"required": [
- "id",
"attributes",
- "type"
+ "type",
+ "id"
],
- "type": "object"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
"required": [
@@ -143800,152 +152571,110 @@
],
"type": "object"
},
- "RetentionFilterWithoutAttributes": {
- "description": "The retention filter object .",
- "properties": {
- "id": {
- "description": "The ID of the retention filter.",
- "example": "7RBOb7dLSYWI01yc3pIH8w",
- "type": "string"
- },
- "type": {
- "default": "apm_retention_filter",
- "description": "The type of the resource.",
- "enum": [
- "apm_retention_filter"
- ],
- "example": "apm_retention_filter",
- "type": "string",
- "x-enum-varnames": [
- "apm_retention_filter"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- },
- "RetentionFiltersResponse": {
- "description": "An ordered list of retention filters.",
+ "RoleUpdateResponse": {
+ "description": "Response containing information about an updated role.",
"properties": {
"data": {
- "description": "A list of retention filters objects.",
- "items": {
- "description": "The definition of the retention filter.",
- "properties": {
- "attributes": {
- "description": "The attributes of the retention filter.",
- "properties": {
- "created_at": {
- "description": "The creation timestamp of the retention filter.",
- "format": "int64",
- "type": "integer"
- },
- "created_by": {
- "description": "The creator of the retention filter.",
- "type": "string"
- },
- "editable": {
- "description": "Shows whether the filter can be edited.",
- "example": true,
- "type": "boolean"
- },
- "enabled": {
- "description": "The status of the retention filter (Enabled/Disabled).",
- "example": true,
- "type": "boolean"
- },
- "execution_order": {
- "description": "The execution order of the retention filter.",
- "format": "int64",
- "type": "integer"
- },
- "filter": {
- "description": "The spans filter used to index spans.",
- "properties": {
- "query": {
- "description": "The search query - following the [span search syntax](https://docs.datadoghq.com/tracing/trace_explorer/query_syntax/).",
- "example": "@http.status_code:200 service:my-service",
- "type": "string"
- }
- },
- "type": "object"
- },
- "filter_type": {
- "default": "spans-sampling-processor",
- "description": "The type of retention filter.",
- "enum": [
- "spans-sampling-processor",
- "spans-errors-sampling-processor",
- "spans-appsec-sampling-processor"
- ],
- "example": "spans-sampling-processor",
- "type": "string",
- "x-enum-varnames": [
- "SPANS_SAMPLING_PROCESSOR",
- "SPANS_ERRORS_SAMPLING_PROCESSOR",
- "SPANS_APPSEC_SAMPLING_PROCESSOR"
- ]
- },
- "modified_at": {
- "description": "The modification timestamp of the retention filter.",
- "format": "int64",
- "type": "integer"
- },
- "modified_by": {
- "description": "The modifier of the retention filter.",
- "type": "string"
- },
- "name": {
- "description": "The name of the retention filter.",
- "example": "my retention filter",
- "type": "string"
- },
- "rate": {
- "description": "Sample rate to apply to spans going through this retention filter,\na value of 1.0 keeps all spans matching the query.",
- "example": 1,
- "format": "double",
- "type": "number"
- }
+ "description": "Role object returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of the role.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the role.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
},
- "type": "object"
+ "modified_at": {
+ "description": "Time of last role modification.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the role.",
+ "type": "string"
+ },
+ "user_count": {
+ "description": "The user count.",
+ "format": "int32",
+ "maximum": 2147483647,
+ "type": "integer"
+ }
},
- "id": {
- "description": "The ID of the retention filter.",
- "example": "7RBOb7dLSYWI01yc3pIH8w",
- "type": "string"
+ "type": "object"
+ },
+ "id": {
+ "description": "The unique identifier of the role.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships of the role object returned by the API.",
+ "properties": {
+ "permissions": {
+ "description": "Relationship to multiple permissions objects.",
+ "properties": {
+ "data": {
+ "description": "Relationships to permission objects.",
+ "items": {
+ "description": "Relationship to permission object.",
+ "properties": {
+ "id": {
+ "description": "ID of the permission.",
+ "type": "string"
+ },
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
},
- "type": {
- "default": "apm_retention_filter",
- "description": "The type of the resource.",
- "enum": [
- "apm_retention_filter"
- ],
- "example": "apm_retention_filter",
- "type": "string",
- "x-enum-varnames": [
- "apm_retention_filter"
- ]
- }
+ "type": "object"
},
- "required": [
- "id",
- "type",
- "attributes"
- ],
- "type": "object"
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
},
- "type": "array"
+ "required": [
+ "type"
+ ],
+ "type": "object"
}
},
- "required": [
- "data"
- ],
"type": "object"
},
- "Role": {
+ "RoleUpdateResponseData": {
"description": "Role object returned by the API.",
"properties": {
"attributes": {
@@ -143964,13 +152693,13 @@
"type": "string"
},
"name": {
- "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
+ "description": "Name of the role.",
"type": "string"
},
"user_count": {
- "description": "Number of users with that role.",
- "format": "int64",
- "readOnly": true,
+ "description": "The user count.",
+ "format": "int32",
+ "maximum": 2147483647,
"type": "integer"
}
},
@@ -144040,1572 +152769,3134 @@
"required": [
"type"
],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "RoleAttributes": {
- "description": "Attributes of the role.",
- "properties": {
- "created_at": {
- "description": "Creation time of the role.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified_at": {
- "description": "Time of last role modification.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "name": {
- "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
- "type": "string"
- },
- "user_count": {
- "description": "Number of users with that role.",
- "format": "int64",
- "readOnly": true,
- "type": "integer"
- }
- },
"type": "object"
},
- "RoleClone": {
- "description": "Data for the clone role request.",
+ "RolesResponse": {
+ "description": "Response containing information about multiple roles.",
"properties": {
- "attributes": {
- "description": "Attributes required to create a new role by cloning an existing one.",
- "properties": {
- "name": {
- "description": "Name of the new role that is cloned.",
- "example": "cloned-role",
- "type": "string"
+ "data": {
+ "description": "Array of returned roles.",
+ "items": {
+ "description": "Role object returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of the role.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the role.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "modified_at": {
+ "description": "Time of last role modification.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
+ "type": "string"
+ },
+ "user_count": {
+ "description": "Number of users with that role.",
+ "format": "int64",
+ "readOnly": true,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The unique identifier of the role.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships of the role object returned by the API.",
+ "properties": {
+ "permissions": {
+ "description": "Relationship to multiple permissions objects.",
+ "properties": {
+ "data": {
+ "description": "Relationships to permission objects.",
+ "items": {
+ "description": "Relationship to permission object.",
+ "properties": {
+ "id": {
+ "description": "ID of the permission.",
+ "type": "string"
+ },
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
}
},
- "required": [
- "name"
- ],
- "type": "object"
+ "type": "array"
},
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
+ "meta": {
+ "description": "Object describing meta attributes of response.",
+ "properties": {
+ "page": {
+ "description": "Pagination object.",
+ "properties": {
+ "total_count": {
+ "description": "Total count.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "total_filtered_count": {
+ "description": "Total count of elements matched by the filter.",
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "properties": false
+ }
}
},
- "required": [
- "type",
- "attributes"
+ "type": "object"
+ },
+ "RolesSort": {
+ "default": "name",
+ "description": "Sorting options for roles.",
+ "enum": [
+ "name",
+ "-name",
+ "modified_at",
+ "-modified_at",
+ "user_count",
+ "-user_count"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "NAME_ASCENDING",
+ "NAME_DESCENDING",
+ "MODIFIED_AT_ASCENDING",
+ "MODIFIED_AT_DESCENDING",
+ "USER_COUNT_ASCENDING",
+ "USER_COUNT_DESCENDING"
+ ]
+ },
+ "RolesType": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
],
- "type": "object"
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
},
- "RoleCloneAttributes": {
- "description": "Attributes required to create a new role by cloning an existing one.",
+ "RuleAttributes": {
+ "description": "Details of a rule.",
"properties": {
+ "category": {
+ "deprecated": true,
+ "description": "The scorecard name to which this rule must belong.",
+ "type": "string"
+ },
+ "created_at": {
+ "description": "Creation time of the rule outcome.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "custom": {
+ "description": "Defines if the rule is a custom rule.",
+ "type": "boolean"
+ },
+ "description": {
+ "description": "Explanation of the rule.",
+ "type": "string"
+ },
+ "enabled": {
+ "description": "If enabled, the rule is calculated as part of the score.",
+ "example": true,
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time of the last rule outcome modification.",
+ "format": "date-time",
+ "type": "string"
+ },
"name": {
- "description": "Name of the new role that is cloned.",
- "example": "cloned-role",
+ "description": "Name of the rule.",
+ "example": "Team Defined",
+ "type": "string"
+ },
+ "owner": {
+ "description": "Owner of the rule.",
+ "type": "string"
+ },
+ "scorecard_name": {
+ "description": "The scorecard name to which this rule must belong.",
+ "example": "Deployments automated via Deployment Trains",
"type": "string"
}
},
- "required": [
- "name"
- ],
"type": "object"
},
- "RoleCloneRequest": {
- "description": "Request to create a role by cloning an existing role.",
+ "RuleId": {
+ "description": "The unique ID for a scorecard rule.",
+ "example": "q8MQxk8TCqrHnWkx",
+ "type": "string"
+ },
+ "RuleName": {
+ "description": "Name of the notification rule.",
+ "example": "Rule 1",
+ "type": "string"
+ },
+ "RuleOutcomeRelationships": {
+ "description": "The JSON:API relationship to a scorecard rule.",
"properties": {
- "data": {
- "description": "Data for the clone role request.",
+ "rule": {
+ "description": "The JSON:API relationship to a scorecard outcome.",
"properties": {
- "attributes": {
- "description": "Attributes required to create a new role by cloning an existing one.",
+ "data": {
+ "description": "The JSON:API relationship to an outcome, which returns the related rule id.",
"properties": {
- "name": {
- "description": "Name of the new role that is cloned.",
- "example": "cloned-role",
+ "id": {
+ "description": "The unique ID for a scorecard rule.",
+ "example": "q8MQxk8TCqrHnWkx",
"type": "string"
+ },
+ "type": {
+ "default": "rule",
+ "description": "The JSON:API type for scorecard rules.",
+ "enum": [
+ "rule"
+ ],
+ "example": "rule",
+ "type": "string",
+ "x-enum-varnames": [
+ "RULE"
+ ]
}
},
- "required": [
- "name"
- ],
"type": "object"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
}
},
- "required": [
- "type",
- "attributes"
- ],
"type": "object"
}
},
- "required": [
- "data"
- ],
"type": "object"
},
- "RoleCreateAttributes": {
- "description": "Attributes of the created role.",
+ "RuleSeverity": {
+ "description": "Severity of a security rule.",
+ "enum": [
+ "critical",
+ "high",
+ "medium",
+ "low",
+ "unknown",
+ "info"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "CRITICAL",
+ "HIGH",
+ "MEDIUM",
+ "LOW",
+ "UNKNOWN",
+ "INFO"
+ ]
+ },
+ "RuleType": {
+ "default": "rule",
+ "description": "The JSON:API type for scorecard rules.",
+ "enum": [
+ "rule"
+ ],
+ "example": "rule",
+ "type": "string",
+ "x-enum-varnames": [
+ "RULE"
+ ]
+ },
+ "RuleTypes": {
+ "description": "Security rule types used as filters in security rules.",
+ "example": [
+ "misconfiguration",
+ "attack_path"
+ ],
+ "items": {
+ "description": "Security rule type which can be used in security rules.\nSignal-based notification rules can filter signals based on rule types application_security, log_detection,\nworkload_security, signal_correlation, cloud_configuration and infrastructure_configuration.\nVulnerability-based notification rules can filter vulnerabilities based on rule types application_code_vulnerability,\napplication_library_vulnerability, attack_path, container_image_vulnerability, identity_risk, misconfiguration, and api_security.",
+ "enum": [
+ "application_security",
+ "log_detection",
+ "workload_security",
+ "signal_correlation",
+ "cloud_configuration",
+ "infrastructure_configuration",
+ "application_code_vulnerability",
+ "application_library_vulnerability",
+ "attack_path",
+ "container_image_vulnerability",
+ "identity_risk",
+ "misconfiguration",
+ "api_security"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "APPLICATION_SECURITY",
+ "LOG_DETECTION",
+ "WORKLOAD_SECURITY",
+ "SIGNAL_CORRELATION",
+ "CLOUD_CONFIGURATION",
+ "INFRASTRUCTURE_CONFIGURATION",
+ "APPLICATION_CODE_VULNERABILITY",
+ "APPLICATION_LIBRARY_VULNERABILITY",
+ "ATTACK_PATH",
+ "CONTAINER_IMAGE_VULNERABILITY",
+ "IDENTITY_RISK",
+ "MISCONFIGURATION",
+ "API_SECURITY"
+ ]
+ },
+ "type": "array"
+ },
+ "RuleTypesItems": {
+ "description": "Security rule type which can be used in security rules.\nSignal-based notification rules can filter signals based on rule types application_security, log_detection,\nworkload_security, signal_correlation, cloud_configuration and infrastructure_configuration.\nVulnerability-based notification rules can filter vulnerabilities based on rule types application_code_vulnerability,\napplication_library_vulnerability, attack_path, container_image_vulnerability, identity_risk, misconfiguration, and api_security.",
+ "enum": [
+ "application_security",
+ "log_detection",
+ "workload_security",
+ "signal_correlation",
+ "cloud_configuration",
+ "infrastructure_configuration",
+ "application_code_vulnerability",
+ "application_library_vulnerability",
+ "attack_path",
+ "container_image_vulnerability",
+ "identity_risk",
+ "misconfiguration",
+ "api_security"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "APPLICATION_SECURITY",
+ "LOG_DETECTION",
+ "WORKLOAD_SECURITY",
+ "SIGNAL_CORRELATION",
+ "CLOUD_CONFIGURATION",
+ "INFRASTRUCTURE_CONFIGURATION",
+ "APPLICATION_CODE_VULNERABILITY",
+ "APPLICATION_LIBRARY_VULNERABILITY",
+ "ATTACK_PATH",
+ "CONTAINER_IMAGE_VULNERABILITY",
+ "IDENTITY_RISK",
+ "MISCONFIGURATION",
+ "API_SECURITY"
+ ]
+ },
+ "RuleUser": {
+ "description": "User creating or modifying a rule.",
"properties": {
- "created_at": {
- "description": "Creation time of the role.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified_at": {
- "description": "Time of last role modification.",
- "format": "date-time",
- "readOnly": true,
+ "handle": {
+ "description": "The user handle.",
+ "example": "john.doe@domain.com",
"type": "string"
},
"name": {
- "description": "Name of the role.",
- "example": "developers",
+ "description": "The user name.",
+ "example": "John Doe",
"type": "string"
}
},
- "required": [
- "name"
- ],
"type": "object"
},
- "RoleCreateData": {
- "description": "Data related to the creation of a role.",
+ "RuleVersionHistory": {
+ "description": "Response object containing the version history of a rule.",
"properties": {
- "attributes": {
- "description": "Attributes of the created role.",
- "properties": {
- "created_at": {
- "description": "Creation time of the role.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified_at": {
- "description": "Time of last role modification.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "name": {
- "description": "Name of the role.",
- "example": "developers",
- "type": "string"
- }
- },
- "required": [
- "name"
- ],
- "type": "object"
+ "count": {
+ "description": "The number of rule versions.",
+ "format": "int32",
+ "maximum": 2147483647,
+ "type": "integer"
},
- "relationships": {
- "description": "Relationships of the role object.",
- "properties": {
- "permissions": {
- "description": "Relationship to multiple permissions objects.",
- "properties": {
- "data": {
- "description": "Relationships to permission objects.",
- "items": {
- "description": "Relationship to permission object.",
- "properties": {
- "id": {
- "description": "ID of the permission.",
- "type": "string"
- },
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
- "enum": [
- "permissions"
- ],
- "example": "permissions",
- "type": "string",
- "x-enum-varnames": [
- "PERMISSIONS"
- ]
- }
+ "data": {
+ "additionalProperties": {
+ "description": "A rule version with a list of updates.",
+ "properties": {
+ "changes": {
+ "description": "A list of changes.",
+ "items": {
+ "description": "A change in a rule version.",
+ "properties": {
+ "change": {
+ "description": "The new value of the field.",
+ "example": "cloud_provider:aws",
+ "type": "string"
},
- "type": "object",
- "x-merge-override": {
- "required": false
+ "field": {
+ "description": "The field that was changed.",
+ "example": "Tags",
+ "type": "string"
+ },
+ "type": {
+ "description": "The type of change.",
+ "enum": [
+ "create",
+ "update",
+ "delete"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "CREATE",
+ "UPDATE",
+ "DELETE"
+ ]
}
},
- "type": "array"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "required": [
- "attributes"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "RoleCreateRequest": {
- "description": "Create a role.",
- "properties": {
- "data": {
- "description": "Data related to the creation of a role.",
- "properties": {
- "attributes": {
- "description": "Attributes of the created role.",
- "properties": {
- "created_at": {
- "description": "Creation time of the role.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified_at": {
- "description": "Time of last role modification.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
+ "type": "object"
},
- "name": {
- "description": "Name of the role.",
- "example": "developers",
- "type": "string"
- }
+ "type": "array"
},
- "required": [
- "name"
- ],
- "type": "object"
- },
- "relationships": {
- "description": "Relationships of the role object.",
- "properties": {
- "permissions": {
- "description": "Relationship to multiple permissions objects.",
- "properties": {
- "data": {
- "description": "Relationships to permission objects.",
- "items": {
- "description": "Relationship to permission object.",
+ "rule": {
+ "description": "Create a new rule.",
+ "oneOf": [
+ {
+ "description": "Rule.",
+ "properties": {
+ "cases": {
+ "description": "Cases for generating signals.",
+ "items": {
+ "description": "Case when signal is generated.",
+ "properties": {
+ "actions": {
+ "description": "Action to perform for each rule case.",
+ "items": {
+ "description": "Action to perform when a signal is triggered. Only available for Application Security rule type.",
+ "properties": {
+ "options": {
+ "description": "Options for the rule action",
+ "properties": {
+ "duration": {
+ "description": "Duration of the action in seconds. 0 indicates no expiration.",
+ "example": 0,
+ "format": "int64",
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "description": "The action type.",
+ "enum": [
+ "block_ip",
+ "block_user"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "BLOCK_IP",
+ "BLOCK_USER"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "condition": {
+ "description": "A rule case contains logical operations (`>`,`>=`, `&&`, `||`) to determine if a signal should be generated\nbased on the event counts in the previously defined queries.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the case.",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notification targets for each rule case.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "status": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "complianceSignalOptions": {
+ "description": "How to generate compliance signals. Useful for cloud_configuration rules only.",
"properties": {
- "id": {
- "description": "ID of the permission.",
- "type": "string"
+ "defaultActivationStatus": {
+ "description": "The default activation status.",
+ "nullable": true,
+ "type": "boolean"
},
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
+ "defaultGroupByFields": {
+ "description": "The default group by fields.",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true,
+ "type": "array"
+ },
+ "userActivationStatus": {
+ "description": "Whether signals will be sent.",
+ "nullable": true,
+ "type": "boolean"
+ },
+ "userGroupByFields": {
+ "description": "Fields to use to group findings by when sending signals.",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true,
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "createdAt": {
+ "description": "When the rule was created, timestamp in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "creationAuthorId": {
+ "description": "User ID of the user who created the rule.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "defaultTags": {
+ "description": "Default Tags for default rules (included in tags)",
+ "example": [
+ "security:attacks"
+ ],
+ "items": {
+ "description": "Default Tag.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "deprecationDate": {
+ "description": "When the rule will be deprecated, timestamp in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "filters": {
+ "description": "Additional queries to filter matched events before they are processed. This field is deprecated for log detection, signal correlation, and workload security rules.",
+ "items": {
+ "description": "The rule's suppression filter.",
+ "properties": {
+ "action": {
+ "description": "The type of filtering action.",
+ "enum": [
+ "require",
+ "suppress"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "REQUIRE",
+ "SUPPRESS"
+ ]
+ },
+ "query": {
+ "description": "Query for selecting logs to apply the filtering action.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "groupSignalsBy": {
+ "description": "Additional grouping to perform on top of the existing groups in the query section. Must be a subset of the existing groups.",
+ "example": [
+ "service"
+ ],
+ "items": {
+ "description": "Field to group by.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "hasExtendedTitle": {
+ "description": "Whether the notifications include the triggering group-by values in their title.",
+ "type": "boolean"
+ },
+ "id": {
+ "description": "The ID of the rule.",
+ "type": "string"
+ },
+ "isDefault": {
+ "description": "Whether the rule is included by default.",
+ "type": "boolean"
+ },
+ "isDeleted": {
+ "description": "Whether the rule has been deleted.",
+ "type": "boolean"
+ },
+ "isEnabled": {
+ "description": "Whether the rule is enabled.",
+ "type": "boolean"
+ },
+ "message": {
+ "description": "Message for generated signals.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the rule.",
+ "type": "string"
+ },
+ "options": {
+ "description": "Options.",
+ "properties": {
+ "complianceRuleOptions": {
+ "additionalProperties": {},
+ "description": "Options for cloud_configuration rules.\nFields `resourceType` and `regoRule` are mandatory when managing custom `cloud_configuration` rules.\n",
+ "properties": {
+ "complexRule": {
+ "description": "Whether the rule is a complex one.\nMust be set to true if `regoRule.resourceTypes` contains more than one item. Defaults to false.\n",
+ "type": "boolean"
+ },
+ "regoRule": {
+ "description": "Rule details.",
+ "properties": {
+ "policy": {
+ "description": "The policy written in `rego`, see: https://www.openpolicyagent.org/docs/latest/policy-language/",
+ "example": "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}\n",
+ "type": "string"
+ },
+ "resourceTypes": {
+ "description": "List of resource types that will be evaluated upon. Must have at least one element.",
+ "example": [
+ "gcp_iam_service_account",
+ "gcp_iam_policy"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "policy",
+ "resourceTypes"
+ ],
+ "type": "object"
+ },
+ "resourceType": {
+ "description": "Main resource type to be checked by the rule. It should be specified again in `regoRule.resourceTypes`.\n",
+ "example": "aws_acm",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "decreaseCriticalityBasedOnEnv": {
+ "description": "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`.",
+ "example": false,
+ "type": "boolean"
+ },
+ "detectionMethod": {
+ "description": "The detection method.",
"enum": [
- "permissions"
+ "threshold",
+ "new_value",
+ "anomaly_detection",
+ "impossible_travel",
+ "hardcoded",
+ "third_party",
+ "anomaly_threshold"
],
- "example": "permissions",
"type": "string",
"x-enum-varnames": [
- "PERMISSIONS"
+ "THRESHOLD",
+ "NEW_VALUE",
+ "ANOMALY_DETECTION",
+ "IMPOSSIBLE_TRAVEL",
+ "HARDCODED",
+ "THIRD_PARTY",
+ "ANOMALY_THRESHOLD"
+ ]
+ },
+ "evaluationWindow": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS"
+ ]
+ },
+ "hardcodedEvaluatorType": {
+ "description": "Hardcoded evaluator type.",
+ "enum": [
+ "log4shell"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "LOG4SHELL"
+ ]
+ },
+ "impossibleTravelOptions": {
+ "description": "Options on impossible travel detection method.",
+ "properties": {
+ "baselineUserLocations": {
+ "description": "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.",
+ "example": true,
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "keepAlive": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS"
+ ]
+ },
+ "maxSignalDuration": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600,
+ 43200,
+ 86400
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS",
+ "TWELVE_HOURS",
+ "ONE_DAY"
]
+ },
+ "newValueOptions": {
+ "description": "Options on new value detection method.",
+ "properties": {
+ "forgetAfter": {
+ "description": "The duration in days after which a learned value is forgotten.",
+ "enum": [
+ 1,
+ 2,
+ 7,
+ 14,
+ 21,
+ 28
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ONE_DAY",
+ "TWO_DAYS",
+ "ONE_WEEK",
+ "TWO_WEEKS",
+ "THREE_WEEKS",
+ "FOUR_WEEKS"
+ ]
+ },
+ "learningDuration": {
+ "default": 0,
+ "description": "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.",
+ "enum": [
+ 0,
+ 1,
+ 7
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_DAYS",
+ "ONE_DAY",
+ "SEVEN_DAYS"
+ ]
+ },
+ "learningMethod": {
+ "default": "duration",
+ "description": "The learning method used to determine when signals should be generated for values that weren't learned.",
+ "enum": [
+ "duration",
+ "threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "DURATION",
+ "THRESHOLD"
+ ]
+ },
+ "learningThreshold": {
+ "default": 0,
+ "description": "A number of occurrences after which signals will be generated for values that weren't learned.",
+ "enum": [
+ 0,
+ 1
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_OCCURRENCES",
+ "ONE_OCCURRENCE"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "thirdPartyRuleOptions": {
+ "description": "Options on third party detection method.",
+ "properties": {
+ "defaultNotifications": {
+ "description": "Notification targets for the logs that do not correspond to any of the cases.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "defaultStatus": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ },
+ "rootQueries": {
+ "description": "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.",
+ "items": {
+ "description": "A query to be combined with the third party case query.",
+ "properties": {
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "query": {
+ "description": "Query to run on logs.",
+ "example": "source:cloudtrail",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "signalTitleTemplate": {
+ "description": "A template for the signal title; if omitted, the title is generated based on the case name.",
+ "type": "string"
+ }
+ },
+ "type": "object"
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "object"
+ },
+ "queries": {
+ "description": "Queries for selecting logs which are part of the rule.",
+ "items": {
+ "description": "Query for matching rule.",
+ "properties": {
+ "aggregation": {
+ "description": "The aggregation type.",
+ "enum": [
+ "count",
+ "cardinality",
+ "sum",
+ "max",
+ "new_value",
+ "geo_data",
+ "event_count",
+ "none"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "COUNT",
+ "CARDINALITY",
+ "SUM",
+ "MAX",
+ "NEW_VALUE",
+ "GEO_DATA",
+ "EVENT_COUNT",
+ "NONE"
+ ]
+ },
+ "distinctFields": {
+ "description": "Field for which the cardinality is measured. Sent as an array.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "hasOptionalGroupByFields": {
+ "description": "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.",
+ "example": false,
+ "readOnly": true,
+ "type": "boolean"
+ },
+ "metric": {
+ "deprecated": true,
+ "description": "(Deprecated) The target field to aggregate over when using the sum or max\naggregations. `metrics` field should be used instead.",
+ "type": "string"
+ },
+ "metrics": {
+ "description": "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.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the query.",
+ "type": "string"
+ },
+ "query": {
+ "description": "Query to run on logs.",
+ "example": "a > 3",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "referenceTables": {
+ "description": "Reference tables for the rule.",
+ "items": {
+ "description": "Reference tables used in the queries.",
+ "properties": {
+ "checkPresence": {
+ "description": "Whether to include or exclude the matched values.",
+ "type": "boolean"
+ },
+ "columnName": {
+ "description": "The name of the column in the reference table.",
+ "type": "string"
+ },
+ "logFieldPath": {
+ "description": "The field in the log to match against the reference table.",
+ "type": "string"
+ },
+ "ruleQueryName": {
+ "description": "The name of the query to apply the reference table to.",
+ "type": "string"
+ },
+ "tableName": {
+ "description": "The name of the reference table.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
},
- "type": "array"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "required": [
- "attributes"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "RoleCreateResponse": {
- "description": "Response containing information about a created role.",
- "properties": {
- "data": {
- "description": "Role object returned by the API.",
- "properties": {
- "attributes": {
- "description": "Attributes of the created role.",
- "properties": {
- "created_at": {
- "description": "Creation time of the role.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified_at": {
- "description": "Time of last role modification.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "name": {
- "description": "Name of the role.",
- "example": "developers",
- "type": "string"
- }
- },
- "required": [
- "name"
- ],
- "type": "object"
- },
- "id": {
- "description": "The unique identifier of the role.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the role object returned by the API.",
- "properties": {
- "permissions": {
- "description": "Relationship to multiple permissions objects.",
- "properties": {
- "data": {
- "description": "Relationships to permission objects.",
- "items": {
- "description": "Relationship to permission object.",
- "properties": {
- "id": {
- "description": "ID of the permission.",
- "type": "string"
- },
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
- "enum": [
- "permissions"
- ],
- "example": "permissions",
- "type": "string",
- "x-enum-varnames": [
- "PERMISSIONS"
- ]
- }
+ "tags": {
+ "description": "Tags for generated signals.",
+ "items": {
+ "description": "Tag.",
+ "type": "string"
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "array"
},
- "type": "array"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object"
- }
- },
- "type": "object"
- },
- "RoleCreateResponseData": {
- "description": "Role object returned by the API.",
- "properties": {
- "attributes": {
- "description": "Attributes of the created role.",
- "properties": {
- "created_at": {
- "description": "Creation time of the role.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified_at": {
- "description": "Time of last role modification.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "name": {
- "description": "Name of the role.",
- "example": "developers",
- "type": "string"
- }
- },
- "required": [
- "name"
- ],
- "type": "object"
- },
- "id": {
- "description": "The unique identifier of the role.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the role object returned by the API.",
- "properties": {
- "permissions": {
- "description": "Relationship to multiple permissions objects.",
- "properties": {
- "data": {
- "description": "Relationships to permission objects.",
- "items": {
- "description": "Relationship to permission object.",
- "properties": {
- "id": {
- "description": "ID of the permission.",
- "type": "string"
+ "thirdPartyCases": {
+ "description": "Cases for generating signals from third-party rules. Only available for third-party rules.",
+ "example": [],
+ "items": {
+ "description": "Case when signal is generated by a third party rule.",
+ "properties": {
+ "name": {
+ "description": "Name of the case.",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notification targets for each rule case.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "query": {
+ "description": "A query to map a third party event to this case.",
+ "type": "string"
+ },
+ "status": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
},
"type": {
- "default": "permissions",
- "description": "Permissions resource type.",
+ "description": "The rule type.",
"enum": [
- "permissions"
+ "log_detection",
+ "infrastructure_configuration",
+ "workload_security",
+ "cloud_configuration",
+ "application_security"
],
- "example": "permissions",
"type": "string",
"x-enum-varnames": [
- "PERMISSIONS"
+ "LOG_DETECTION",
+ "INFRASTRUCTURE_CONFIGURATION",
+ "WORKLOAD_SECURITY",
+ "CLOUD_CONFIGURATION",
+ "APPLICATION_SECURITY"
]
+ },
+ "updateAuthorId": {
+ "description": "User ID of the user who updated the rule.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "updatedAt": {
+ "description": "The date the rule was last updated, in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "version": {
+ "description": "The version of the rule.",
+ "format": "int64",
+ "type": "integer"
}
- },
- "type": "object",
- "x-merge-override": {
- "required": false
}
},
- "type": "array"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object"
- },
- "RoleRelationships": {
- "description": "Relationships of the role object.",
- "properties": {
- "permissions": {
- "description": "Relationship to multiple permissions objects.",
- "properties": {
- "data": {
- "description": "Relationships to permission objects.",
- "items": {
- "description": "Relationship to permission object.",
- "properties": {
- "id": {
- "description": "ID of the permission.",
- "type": "string"
- },
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
- "enum": [
- "permissions"
- ],
- "example": "permissions",
- "type": "string",
- "x-enum-varnames": [
- "PERMISSIONS"
- ]
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
- },
- "RoleResponse": {
- "description": "Response containing information about a single role.",
- "properties": {
- "data": {
- "description": "Role object returned by the API.",
- "properties": {
- "attributes": {
- "description": "Attributes of the role.",
- "properties": {
- "created_at": {
- "description": "Creation time of the role.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified_at": {
- "description": "Time of last role modification.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "name": {
- "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
- "type": "string"
- },
- "user_count": {
- "description": "Number of users with that role.",
- "format": "int64",
- "readOnly": true,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "The unique identifier of the role.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the role object returned by the API.",
- "properties": {
- "permissions": {
- "description": "Relationship to multiple permissions objects.",
- "properties": {
- "data": {
- "description": "Relationships to permission objects.",
- "items": {
- "description": "Relationship to permission object.",
+ {
+ "description": "Rule.",
+ "properties": {
+ "cases": {
+ "description": "Cases for generating signals.",
+ "items": {
+ "description": "Case when signal is generated.",
+ "properties": {
+ "actions": {
+ "description": "Action to perform for each rule case.",
+ "items": {
+ "description": "Action to perform when a signal is triggered. Only available for Application Security rule type.",
+ "properties": {
+ "options": {
+ "description": "Options for the rule action",
+ "properties": {
+ "duration": {
+ "description": "Duration of the action in seconds. 0 indicates no expiration.",
+ "example": 0,
+ "format": "int64",
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "description": "The action type.",
+ "enum": [
+ "block_ip",
+ "block_user"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "BLOCK_IP",
+ "BLOCK_USER"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "condition": {
+ "description": "A rule case contains logical operations (`>`,`>=`, `&&`, `||`) to determine if a signal should be generated\nbased on the event counts in the previously defined queries.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the case.",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notification targets for each rule case.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "status": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "createdAt": {
+ "description": "When the rule was created, timestamp in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "creationAuthorId": {
+ "description": "User ID of the user who created the rule.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "deprecationDate": {
+ "description": "When the rule will be deprecated, timestamp in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "filters": {
+ "description": "Additional queries to filter matched events before they are processed. This field is deprecated for log detection, signal correlation, and workload security rules.",
+ "items": {
+ "description": "The rule's suppression filter.",
+ "properties": {
+ "action": {
+ "description": "The type of filtering action.",
+ "enum": [
+ "require",
+ "suppress"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "REQUIRE",
+ "SUPPRESS"
+ ]
+ },
+ "query": {
+ "description": "Query for selecting logs to apply the filtering action.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "hasExtendedTitle": {
+ "description": "Whether the notifications include the triggering group-by values in their title.",
+ "type": "boolean"
+ },
+ "id": {
+ "description": "The ID of the rule.",
+ "type": "string"
+ },
+ "isDefault": {
+ "description": "Whether the rule is included by default.",
+ "type": "boolean"
+ },
+ "isDeleted": {
+ "description": "Whether the rule has been deleted.",
+ "type": "boolean"
+ },
+ "isEnabled": {
+ "description": "Whether the rule is enabled.",
+ "type": "boolean"
+ },
+ "message": {
+ "description": "Message for generated signals.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the rule.",
+ "type": "string"
+ },
+ "options": {
+ "description": "Options.",
"properties": {
- "id": {
- "description": "ID of the permission.",
- "type": "string"
+ "complianceRuleOptions": {
+ "additionalProperties": {},
+ "description": "Options for cloud_configuration rules.\nFields `resourceType` and `regoRule` are mandatory when managing custom `cloud_configuration` rules.\n",
+ "properties": {
+ "complexRule": {
+ "description": "Whether the rule is a complex one.\nMust be set to true if `regoRule.resourceTypes` contains more than one item. Defaults to false.\n",
+ "type": "boolean"
+ },
+ "regoRule": {
+ "description": "Rule details.",
+ "properties": {
+ "policy": {
+ "description": "The policy written in `rego`, see: https://www.openpolicyagent.org/docs/latest/policy-language/",
+ "example": "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}\n",
+ "type": "string"
+ },
+ "resourceTypes": {
+ "description": "List of resource types that will be evaluated upon. Must have at least one element.",
+ "example": [
+ "gcp_iam_service_account",
+ "gcp_iam_policy"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "policy",
+ "resourceTypes"
+ ],
+ "type": "object"
+ },
+ "resourceType": {
+ "description": "Main resource type to be checked by the rule. It should be specified again in `regoRule.resourceTypes`.\n",
+ "example": "aws_acm",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
+ "decreaseCriticalityBasedOnEnv": {
+ "description": "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`.",
+ "example": false,
+ "type": "boolean"
+ },
+ "detectionMethod": {
+ "description": "The detection method.",
"enum": [
- "permissions"
+ "threshold",
+ "new_value",
+ "anomaly_detection",
+ "impossible_travel",
+ "hardcoded",
+ "third_party",
+ "anomaly_threshold"
],
- "example": "permissions",
"type": "string",
"x-enum-varnames": [
- "PERMISSIONS"
+ "THRESHOLD",
+ "NEW_VALUE",
+ "ANOMALY_DETECTION",
+ "IMPOSSIBLE_TRAVEL",
+ "HARDCODED",
+ "THIRD_PARTY",
+ "ANOMALY_THRESHOLD"
+ ]
+ },
+ "evaluationWindow": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS"
+ ]
+ },
+ "hardcodedEvaluatorType": {
+ "description": "Hardcoded evaluator type.",
+ "enum": [
+ "log4shell"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "LOG4SHELL"
+ ]
+ },
+ "impossibleTravelOptions": {
+ "description": "Options on impossible travel detection method.",
+ "properties": {
+ "baselineUserLocations": {
+ "description": "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.",
+ "example": true,
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "keepAlive": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS"
+ ]
+ },
+ "maxSignalDuration": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600,
+ 43200,
+ 86400
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS",
+ "TWELVE_HOURS",
+ "ONE_DAY"
]
+ },
+ "newValueOptions": {
+ "description": "Options on new value detection method.",
+ "properties": {
+ "forgetAfter": {
+ "description": "The duration in days after which a learned value is forgotten.",
+ "enum": [
+ 1,
+ 2,
+ 7,
+ 14,
+ 21,
+ 28
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ONE_DAY",
+ "TWO_DAYS",
+ "ONE_WEEK",
+ "TWO_WEEKS",
+ "THREE_WEEKS",
+ "FOUR_WEEKS"
+ ]
+ },
+ "learningDuration": {
+ "default": 0,
+ "description": "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.",
+ "enum": [
+ 0,
+ 1,
+ 7
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_DAYS",
+ "ONE_DAY",
+ "SEVEN_DAYS"
+ ]
+ },
+ "learningMethod": {
+ "default": "duration",
+ "description": "The learning method used to determine when signals should be generated for values that weren't learned.",
+ "enum": [
+ "duration",
+ "threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "DURATION",
+ "THRESHOLD"
+ ]
+ },
+ "learningThreshold": {
+ "default": 0,
+ "description": "A number of occurrences after which signals will be generated for values that weren't learned.",
+ "enum": [
+ 0,
+ 1
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_OCCURRENCES",
+ "ONE_OCCURRENCE"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "thirdPartyRuleOptions": {
+ "description": "Options on third party detection method.",
+ "properties": {
+ "defaultNotifications": {
+ "description": "Notification targets for the logs that do not correspond to any of the cases.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "defaultStatus": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ },
+ "rootQueries": {
+ "description": "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.",
+ "items": {
+ "description": "A query to be combined with the third party case query.",
+ "properties": {
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "query": {
+ "description": "Query to run on logs.",
+ "example": "source:cloudtrail",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "signalTitleTemplate": {
+ "description": "A template for the signal title; if omitted, the title is generated based on the case name.",
+ "type": "string"
+ }
+ },
+ "type": "object"
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "object"
},
- "type": "array"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
- },
- "RoleResponseRelationships": {
- "description": "Relationships of the role object returned by the API.",
- "properties": {
- "permissions": {
- "description": "Relationship to multiple permissions objects.",
- "properties": {
- "data": {
- "description": "Relationships to permission objects.",
- "items": {
- "description": "Relationship to permission object.",
- "properties": {
- "id": {
- "description": "ID of the permission.",
- "type": "string"
- },
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
- "enum": [
- "permissions"
- ],
- "example": "permissions",
- "type": "string",
- "x-enum-varnames": [
- "PERMISSIONS"
- ]
+ "queries": {
+ "description": "Queries for selecting logs which are part of the rule.",
+ "items": {
+ "description": "Query for matching rule on signals.",
+ "properties": {
+ "aggregation": {
+ "description": "The aggregation type.",
+ "enum": [
+ "count",
+ "cardinality",
+ "sum",
+ "max",
+ "new_value",
+ "geo_data",
+ "event_count",
+ "none"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "COUNT",
+ "CARDINALITY",
+ "SUM",
+ "MAX",
+ "NEW_VALUE",
+ "GEO_DATA",
+ "EVENT_COUNT",
+ "NONE"
+ ]
+ },
+ "correlatedByFields": {
+ "description": "Fields to correlate by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "correlatedQueryIndex": {
+ "description": "Index of the rule query used to retrieve the correlated field.",
+ "format": "int32",
+ "maximum": 9,
+ "type": "integer"
+ },
+ "defaultRuleId": {
+ "description": "Default Rule ID to match on signals.",
+ "example": "d3f-ru1-e1d",
+ "type": "string"
+ },
+ "distinctFields": {
+ "description": "Field for which the cardinality is measured. Sent as an array.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "metrics": {
+ "description": "Group of target fields to aggregate over.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the query.",
+ "type": "string"
+ },
+ "ruleId": {
+ "description": "Rule ID to match on signals.",
+ "example": "org-ru1-e1d",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "tags": {
+ "description": "Tags for generated signals.",
+ "items": {
+ "description": "Tag.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "type": {
+ "description": "The rule type.",
+ "enum": [
+ "signal_correlation"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "SIGNAL_CORRELATION"
+ ]
+ },
+ "updateAuthorId": {
+ "description": "User ID of the user who updated the rule.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "version": {
+ "description": "The version of the rule.",
+ "format": "int64",
+ "type": "integer"
+ }
+ }
}
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
+ ]
+ }
+ },
+ "type": "object"
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "description": "The `RuleVersionHistory` `data`.",
+ "type": "object"
}
},
"type": "object"
},
- "RoleUpdateAttributes": {
- "description": "Attributes of the role.",
+ "RuleVersionUpdate": {
+ "description": "A change in a rule version.",
"properties": {
- "created_at": {
- "description": "Creation time of the role.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified_at": {
- "description": "Time of last role modification.",
- "format": "date-time",
- "readOnly": true,
+ "change": {
+ "description": "The new value of the field.",
+ "example": "cloud_provider:aws",
"type": "string"
},
- "name": {
- "description": "Name of the role.",
+ "field": {
+ "description": "The field that was changed.",
+ "example": "Tags",
"type": "string"
},
- "user_count": {
- "description": "The user count.",
- "format": "int32",
- "maximum": 2147483647,
- "type": "integer"
+ "type": {
+ "description": "The type of change.",
+ "enum": [
+ "create",
+ "update",
+ "delete"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "CREATE",
+ "UPDATE",
+ "DELETE"
+ ]
}
},
"type": "object"
},
- "RoleUpdateData": {
- "description": "Data related to the update of a role.",
+ "RuleVersionUpdateType": {
+ "description": "The type of change.",
+ "enum": [
+ "create",
+ "update",
+ "delete"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "CREATE",
+ "UPDATE",
+ "DELETE"
+ ]
+ },
+ "RuleVersions": {
+ "description": "A rule version with a list of updates.",
"properties": {
- "attributes": {
- "description": "Attributes of the role.",
- "properties": {
- "created_at": {
- "description": "Creation time of the role.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified_at": {
- "description": "Time of last role modification.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "name": {
- "description": "Name of the role.",
- "type": "string"
+ "changes": {
+ "description": "A list of changes.",
+ "items": {
+ "description": "A change in a rule version.",
+ "properties": {
+ "change": {
+ "description": "The new value of the field.",
+ "example": "cloud_provider:aws",
+ "type": "string"
+ },
+ "field": {
+ "description": "The field that was changed.",
+ "example": "Tags",
+ "type": "string"
+ },
+ "type": {
+ "description": "The type of change.",
+ "enum": [
+ "create",
+ "update",
+ "delete"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "CREATE",
+ "UPDATE",
+ "DELETE"
+ ]
+ }
},
- "user_count": {
- "description": "The user count.",
- "format": "int32",
- "maximum": 2147483647,
- "type": "integer"
- }
+ "type": "object"
},
- "type": "object"
- },
- "id": {
- "description": "The unique identifier of the role.",
- "example": "00000000-0000-1111-0000-000000000000",
- "type": "string"
+ "type": "array"
},
- "relationships": {
- "description": "Relationships of the role object.",
- "properties": {
- "permissions": {
- "description": "Relationship to multiple permissions objects.",
+ "rule": {
+ "description": "Create a new rule.",
+ "oneOf": [
+ {
+ "description": "Rule.",
"properties": {
- "data": {
- "description": "Relationships to permission objects.",
+ "cases": {
+ "description": "Cases for generating signals.",
"items": {
- "description": "Relationship to permission object.",
+ "description": "Case when signal is generated.",
"properties": {
- "id": {
- "description": "ID of the permission.",
+ "actions": {
+ "description": "Action to perform for each rule case.",
+ "items": {
+ "description": "Action to perform when a signal is triggered. Only available for Application Security rule type.",
+ "properties": {
+ "options": {
+ "description": "Options for the rule action",
+ "properties": {
+ "duration": {
+ "description": "Duration of the action in seconds. 0 indicates no expiration.",
+ "example": 0,
+ "format": "int64",
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "description": "The action type.",
+ "enum": [
+ "block_ip",
+ "block_user"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "BLOCK_IP",
+ "BLOCK_USER"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "condition": {
+ "description": "A rule case contains logical operations (`>`,`>=`, `&&`, `||`) to determine if a signal should be generated\nbased on the event counts in the previously defined queries.",
"type": "string"
},
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
+ "name": {
+ "description": "Name of the case.",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notification targets for each rule case.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "status": {
+ "description": "Severity of the Security Signal.",
"enum": [
- "permissions"
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
],
- "example": "permissions",
+ "example": "critical",
"type": "string",
"x-enum-varnames": [
- "PERMISSIONS"
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
]
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "object"
},
"type": "array"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "required": [
- "attributes",
- "type",
- "id"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "RoleUpdateRequest": {
- "description": "Update a role.",
- "properties": {
- "data": {
- "description": "Data related to the update of a role.",
- "properties": {
- "attributes": {
- "description": "Attributes of the role.",
- "properties": {
- "created_at": {
- "description": "Creation time of the role.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified_at": {
- "description": "Time of last role modification.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "name": {
- "description": "Name of the role.",
- "type": "string"
},
- "user_count": {
- "description": "The user count.",
- "format": "int32",
- "maximum": 2147483647,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "The unique identifier of the role.",
- "example": "00000000-0000-1111-0000-000000000000",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the role object.",
- "properties": {
- "permissions": {
- "description": "Relationship to multiple permissions objects.",
+ "complianceSignalOptions": {
+ "description": "How to generate compliance signals. Useful for cloud_configuration rules only.",
"properties": {
- "data": {
- "description": "Relationships to permission objects.",
+ "defaultActivationStatus": {
+ "description": "The default activation status.",
+ "nullable": true,
+ "type": "boolean"
+ },
+ "defaultGroupByFields": {
+ "description": "The default group by fields.",
"items": {
- "description": "Relationship to permission object.",
- "properties": {
- "id": {
- "description": "ID of the permission.",
- "type": "string"
- },
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
- "enum": [
- "permissions"
- ],
- "example": "permissions",
- "type": "string",
- "x-enum-varnames": [
- "PERMISSIONS"
- ]
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "string"
+ },
+ "nullable": true,
+ "type": "array"
+ },
+ "userActivationStatus": {
+ "description": "Whether signals will be sent.",
+ "nullable": true,
+ "type": "boolean"
+ },
+ "userGroupByFields": {
+ "description": "Fields to use to group findings by when sending signals.",
+ "items": {
+ "type": "string"
},
+ "nullable": true,
"type": "array"
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "required": [
- "attributes",
- "type",
- "id"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "RoleUpdateResponse": {
- "description": "Response containing information about an updated role.",
- "properties": {
- "data": {
- "description": "Role object returned by the API.",
- "properties": {
- "attributes": {
- "description": "Attributes of the role.",
- "properties": {
- "created_at": {
- "description": "Creation time of the role.",
- "format": "date-time",
- "readOnly": true,
+ "type": "object"
+ },
+ "createdAt": {
+ "description": "When the rule was created, timestamp in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "creationAuthorId": {
+ "description": "User ID of the user who created the rule.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "defaultTags": {
+ "description": "Default Tags for default rules (included in tags)",
+ "example": [
+ "security:attacks"
+ ],
+ "items": {
+ "description": "Default Tag.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "deprecationDate": {
+ "description": "When the rule will be deprecated, timestamp in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "filters": {
+ "description": "Additional queries to filter matched events before they are processed. This field is deprecated for log detection, signal correlation, and workload security rules.",
+ "items": {
+ "description": "The rule's suppression filter.",
+ "properties": {
+ "action": {
+ "description": "The type of filtering action.",
+ "enum": [
+ "require",
+ "suppress"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "REQUIRE",
+ "SUPPRESS"
+ ]
+ },
+ "query": {
+ "description": "Query for selecting logs to apply the filtering action.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "groupSignalsBy": {
+ "description": "Additional grouping to perform on top of the existing groups in the query section. Must be a subset of the existing groups.",
+ "example": [
+ "service"
+ ],
+ "items": {
+ "description": "Field to group by.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "hasExtendedTitle": {
+ "description": "Whether the notifications include the triggering group-by values in their title.",
+ "type": "boolean"
+ },
+ "id": {
+ "description": "The ID of the rule.",
"type": "string"
},
- "modified_at": {
- "description": "Time of last role modification.",
- "format": "date-time",
- "readOnly": true,
+ "isDefault": {
+ "description": "Whether the rule is included by default.",
+ "type": "boolean"
+ },
+ "isDeleted": {
+ "description": "Whether the rule has been deleted.",
+ "type": "boolean"
+ },
+ "isEnabled": {
+ "description": "Whether the rule is enabled.",
+ "type": "boolean"
+ },
+ "message": {
+ "description": "Message for generated signals.",
"type": "string"
},
"name": {
- "description": "Name of the role.",
+ "description": "The name of the rule.",
"type": "string"
},
- "user_count": {
- "description": "The user count.",
- "format": "int32",
- "maximum": 2147483647,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "The unique identifier of the role.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the role object returned by the API.",
- "properties": {
- "permissions": {
- "description": "Relationship to multiple permissions objects.",
+ "options": {
+ "description": "Options.",
"properties": {
- "data": {
- "description": "Relationships to permission objects.",
- "items": {
- "description": "Relationship to permission object.",
- "properties": {
- "id": {
- "description": "ID of the permission.",
+ "complianceRuleOptions": {
+ "additionalProperties": {},
+ "description": "Options for cloud_configuration rules.\nFields `resourceType` and `regoRule` are mandatory when managing custom `cloud_configuration` rules.\n",
+ "properties": {
+ "complexRule": {
+ "description": "Whether the rule is a complex one.\nMust be set to true if `regoRule.resourceTypes` contains more than one item. Defaults to false.\n",
+ "type": "boolean"
+ },
+ "regoRule": {
+ "description": "Rule details.",
+ "properties": {
+ "policy": {
+ "description": "The policy written in `rego`, see: https://www.openpolicyagent.org/docs/latest/policy-language/",
+ "example": "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}\n",
+ "type": "string"
+ },
+ "resourceTypes": {
+ "description": "List of resource types that will be evaluated upon. Must have at least one element.",
+ "example": [
+ "gcp_iam_service_account",
+ "gcp_iam_policy"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "policy",
+ "resourceTypes"
+ ],
+ "type": "object"
+ },
+ "resourceType": {
+ "description": "Main resource type to be checked by the rule. It should be specified again in `regoRule.resourceTypes`.\n",
+ "example": "aws_acm",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "decreaseCriticalityBasedOnEnv": {
+ "description": "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`.",
+ "example": false,
+ "type": "boolean"
+ },
+ "detectionMethod": {
+ "description": "The detection method.",
+ "enum": [
+ "threshold",
+ "new_value",
+ "anomaly_detection",
+ "impossible_travel",
+ "hardcoded",
+ "third_party",
+ "anomaly_threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "THRESHOLD",
+ "NEW_VALUE",
+ "ANOMALY_DETECTION",
+ "IMPOSSIBLE_TRAVEL",
+ "HARDCODED",
+ "THIRD_PARTY",
+ "ANOMALY_THRESHOLD"
+ ]
+ },
+ "evaluationWindow": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS"
+ ]
+ },
+ "hardcodedEvaluatorType": {
+ "description": "Hardcoded evaluator type.",
+ "enum": [
+ "log4shell"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "LOG4SHELL"
+ ]
+ },
+ "impossibleTravelOptions": {
+ "description": "Options on impossible travel detection method.",
+ "properties": {
+ "baselineUserLocations": {
+ "description": "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.",
+ "example": true,
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "keepAlive": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS"
+ ]
+ },
+ "maxSignalDuration": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600,
+ 43200,
+ 86400
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS",
+ "TWELVE_HOURS",
+ "ONE_DAY"
+ ]
+ },
+ "newValueOptions": {
+ "description": "Options on new value detection method.",
+ "properties": {
+ "forgetAfter": {
+ "description": "The duration in days after which a learned value is forgotten.",
+ "enum": [
+ 1,
+ 2,
+ 7,
+ 14,
+ 21,
+ 28
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ONE_DAY",
+ "TWO_DAYS",
+ "ONE_WEEK",
+ "TWO_WEEKS",
+ "THREE_WEEKS",
+ "FOUR_WEEKS"
+ ]
+ },
+ "learningDuration": {
+ "default": 0,
+ "description": "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.",
+ "enum": [
+ 0,
+ 1,
+ 7
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_DAYS",
+ "ONE_DAY",
+ "SEVEN_DAYS"
+ ]
+ },
+ "learningMethod": {
+ "default": "duration",
+ "description": "The learning method used to determine when signals should be generated for values that weren't learned.",
+ "enum": [
+ "duration",
+ "threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "DURATION",
+ "THRESHOLD"
+ ]
+ },
+ "learningThreshold": {
+ "default": 0,
+ "description": "A number of occurrences after which signals will be generated for values that weren't learned.",
+ "enum": [
+ 0,
+ 1
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_OCCURRENCES",
+ "ONE_OCCURRENCE"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "thirdPartyRuleOptions": {
+ "description": "Options on third party detection method.",
+ "properties": {
+ "defaultNotifications": {
+ "description": "Notification targets for the logs that do not correspond to any of the cases.",
+ "items": {
+ "description": "Notification.",
"type": "string"
},
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
- "enum": [
- "permissions"
- ],
- "example": "permissions",
- "type": "string",
- "x-enum-varnames": [
- "PERMISSIONS"
- ]
- }
+ "type": "array"
},
- "type": "object",
- "x-merge-override": {
- "required": false
+ "defaultStatus": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ },
+ "rootQueries": {
+ "description": "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.",
+ "items": {
+ "description": "A query to be combined with the third party case query.",
+ "properties": {
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "query": {
+ "description": "Query to run on logs.",
+ "example": "source:cloudtrail",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "signalTitleTemplate": {
+ "description": "A template for the signal title; if omitted, the title is generated based on the case name.",
+ "type": "string"
}
},
- "type": "array"
+ "type": "object"
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object"
- }
- },
- "type": "object"
- },
- "RoleUpdateResponseData": {
- "description": "Role object returned by the API.",
- "properties": {
- "attributes": {
- "description": "Attributes of the role.",
- "properties": {
- "created_at": {
- "description": "Creation time of the role.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified_at": {
- "description": "Time of last role modification.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "name": {
- "description": "Name of the role.",
- "type": "string"
- },
- "user_count": {
- "description": "The user count.",
- "format": "int32",
- "maximum": 2147483647,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "The unique identifier of the role.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the role object returned by the API.",
- "properties": {
- "permissions": {
- "description": "Relationship to multiple permissions objects.",
- "properties": {
- "data": {
- "description": "Relationships to permission objects.",
+ "type": "object"
+ },
+ "queries": {
+ "description": "Queries for selecting logs which are part of the rule.",
"items": {
- "description": "Relationship to permission object.",
+ "description": "Query for matching rule.",
"properties": {
- "id": {
- "description": "ID of the permission.",
+ "aggregation": {
+ "description": "The aggregation type.",
+ "enum": [
+ "count",
+ "cardinality",
+ "sum",
+ "max",
+ "new_value",
+ "geo_data",
+ "event_count",
+ "none"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "COUNT",
+ "CARDINALITY",
+ "SUM",
+ "MAX",
+ "NEW_VALUE",
+ "GEO_DATA",
+ "EVENT_COUNT",
+ "NONE"
+ ]
+ },
+ "distinctFields": {
+ "description": "Field for which the cardinality is measured. Sent as an array.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "hasOptionalGroupByFields": {
+ "description": "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.",
+ "example": false,
+ "readOnly": true,
+ "type": "boolean"
+ },
+ "metric": {
+ "deprecated": true,
+ "description": "(Deprecated) The target field to aggregate over when using the sum or max\naggregations. `metrics` field should be used instead.",
"type": "string"
},
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
+ "metrics": {
+ "description": "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.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the query.",
+ "type": "string"
+ },
+ "query": {
+ "description": "Query to run on logs.",
+ "example": "a > 3",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "referenceTables": {
+ "description": "Reference tables for the rule.",
+ "items": {
+ "description": "Reference tables used in the queries.",
+ "properties": {
+ "checkPresence": {
+ "description": "Whether to include or exclude the matched values.",
+ "type": "boolean"
+ },
+ "columnName": {
+ "description": "The name of the column in the reference table.",
+ "type": "string"
+ },
+ "logFieldPath": {
+ "description": "The field in the log to match against the reference table.",
+ "type": "string"
+ },
+ "ruleQueryName": {
+ "description": "The name of the query to apply the reference table to.",
+ "type": "string"
+ },
+ "tableName": {
+ "description": "The name of the reference table.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "tags": {
+ "description": "Tags for generated signals.",
+ "items": {
+ "description": "Tag.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "thirdPartyCases": {
+ "description": "Cases for generating signals from third-party rules. Only available for third-party rules.",
+ "example": [],
+ "items": {
+ "description": "Case when signal is generated by a third party rule.",
+ "properties": {
+ "name": {
+ "description": "Name of the case.",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notification targets for each rule case.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "query": {
+ "description": "A query to map a third party event to this case.",
+ "type": "string"
+ },
+ "status": {
+ "description": "Severity of the Security Signal.",
"enum": [
- "permissions"
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
],
- "example": "permissions",
+ "example": "critical",
"type": "string",
"x-enum-varnames": [
- "PERMISSIONS"
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
]
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "object"
},
"type": "array"
+ },
+ "type": {
+ "description": "The rule type.",
+ "enum": [
+ "log_detection",
+ "infrastructure_configuration",
+ "workload_security",
+ "cloud_configuration",
+ "application_security"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "LOG_DETECTION",
+ "INFRASTRUCTURE_CONFIGURATION",
+ "WORKLOAD_SECURITY",
+ "CLOUD_CONFIGURATION",
+ "APPLICATION_SECURITY"
+ ]
+ },
+ "updateAuthorId": {
+ "description": "User ID of the user who updated the rule.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "updatedAt": {
+ "description": "The date the rule was last updated, in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "version": {
+ "description": "The version of the rule.",
+ "format": "int64",
+ "type": "integer"
}
- },
- "type": "object",
- "x-merge-override": {
- "required": false
}
- }
- },
- "type": "object"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object"
- },
- "RolesResponse": {
- "description": "Response containing information about multiple roles.",
- "properties": {
- "data": {
- "description": "Array of returned roles.",
- "items": {
- "description": "Role object returned by the API.",
- "properties": {
- "attributes": {
- "description": "Attributes of the role.",
- "properties": {
- "created_at": {
- "description": "Creation time of the role.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified_at": {
- "description": "Time of last role modification.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "name": {
- "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
- "type": "string"
- },
- "user_count": {
- "description": "Number of users with that role.",
- "format": "int64",
- "readOnly": true,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "The unique identifier of the role.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the role object returned by the API.",
- "properties": {
- "permissions": {
- "description": "Relationship to multiple permissions objects.",
+ },
+ {
+ "description": "Rule.",
+ "properties": {
+ "cases": {
+ "description": "Cases for generating signals.",
+ "items": {
+ "description": "Case when signal is generated.",
"properties": {
- "data": {
- "description": "Relationships to permission objects.",
+ "actions": {
+ "description": "Action to perform for each rule case.",
"items": {
- "description": "Relationship to permission object.",
+ "description": "Action to perform when a signal is triggered. Only available for Application Security rule type.",
"properties": {
- "id": {
- "description": "ID of the permission.",
- "type": "string"
+ "options": {
+ "description": "Options for the rule action",
+ "properties": {
+ "duration": {
+ "description": "Duration of the action in seconds. 0 indicates no expiration.",
+ "example": 0,
+ "format": "int64",
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "type": "object"
},
"type": {
- "default": "permissions",
- "description": "Permissions resource type.",
+ "description": "The action type.",
"enum": [
- "permissions"
+ "block_ip",
+ "block_user"
],
- "example": "permissions",
"type": "string",
"x-enum-varnames": [
- "PERMISSIONS"
+ "BLOCK_IP",
+ "BLOCK_USER"
]
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "condition": {
+ "description": "A rule case contains logical operations (`>`,`>=`, `&&`, `||`) to determine if a signal should be generated\nbased on the event counts in the previously defined queries.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the case.",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notification targets for each rule case.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
},
"type": "array"
+ },
+ "status": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
+ "type": "object"
+ },
+ "type": "array"
},
- "type": "object"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- },
- "meta": {
- "description": "Object describing meta attributes of response.",
- "properties": {
- "page": {
- "description": "Pagination object.",
- "properties": {
- "total_count": {
- "description": "Total count.",
+ "createdAt": {
+ "description": "When the rule was created, timestamp in milliseconds.",
"format": "int64",
"type": "integer"
},
- "total_filtered_count": {
- "description": "Total count of elements matched by the filter.",
+ "creationAuthorId": {
+ "description": "User ID of the user who created the rule.",
"format": "int64",
"type": "integer"
- }
- },
- "type": "object"
- }
- },
- "type": "object",
- "x-merge-override": {
- "properties": false
- }
- }
- },
- "type": "object"
- },
- "RolesSort": {
- "default": "name",
- "description": "Sorting options for roles.",
- "enum": [
- "name",
- "-name",
- "modified_at",
- "-modified_at",
- "user_count",
- "-user_count"
- ],
- "type": "string",
- "x-enum-varnames": [
- "NAME_ASCENDING",
- "NAME_DESCENDING",
- "MODIFIED_AT_ASCENDING",
- "MODIFIED_AT_DESCENDING",
- "USER_COUNT_ASCENDING",
- "USER_COUNT_DESCENDING"
- ]
- },
- "RolesType": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- },
- "RuleAttributes": {
- "description": "Details of a rule.",
- "properties": {
- "category": {
- "deprecated": true,
- "description": "The scorecard name to which this rule must belong.",
- "type": "string"
- },
- "created_at": {
- "description": "Creation time of the rule outcome.",
- "format": "date-time",
- "type": "string"
- },
- "custom": {
- "description": "Defines if the rule is a custom rule.",
- "type": "boolean"
- },
- "description": {
- "description": "Explanation of the rule.",
- "type": "string"
- },
- "enabled": {
- "description": "If enabled, the rule is calculated as part of the score.",
- "example": true,
- "type": "boolean"
- },
- "modified_at": {
- "description": "Time of the last rule outcome modification.",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "Name of the rule.",
- "example": "Team Defined",
- "type": "string"
- },
- "owner": {
- "description": "Owner of the rule.",
- "type": "string"
- },
- "scorecard_name": {
- "description": "The scorecard name to which this rule must belong.",
- "example": "Deployments automated via Deployment Trains",
- "type": "string"
- }
- },
- "type": "object"
- },
- "RuleId": {
- "description": "The unique ID for a scorecard rule.",
- "example": "q8MQxk8TCqrHnWkx",
- "type": "string"
- },
- "RuleName": {
- "description": "Name of the notification rule.",
- "example": "Rule 1",
- "type": "string"
- },
- "RuleOutcomeRelationships": {
- "description": "The JSON:API relationship to a scorecard rule.",
- "properties": {
- "rule": {
- "description": "The JSON:API relationship to a scorecard outcome.",
- "properties": {
- "data": {
- "description": "The JSON:API relationship to an outcome, which returns the related rule id.",
- "properties": {
+ },
+ "deprecationDate": {
+ "description": "When the rule will be deprecated, timestamp in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "filters": {
+ "description": "Additional queries to filter matched events before they are processed. This field is deprecated for log detection, signal correlation, and workload security rules.",
+ "items": {
+ "description": "The rule's suppression filter.",
+ "properties": {
+ "action": {
+ "description": "The type of filtering action.",
+ "enum": [
+ "require",
+ "suppress"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "REQUIRE",
+ "SUPPRESS"
+ ]
+ },
+ "query": {
+ "description": "Query for selecting logs to apply the filtering action.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "hasExtendedTitle": {
+ "description": "Whether the notifications include the triggering group-by values in their title.",
+ "type": "boolean"
+ },
"id": {
- "description": "The unique ID for a scorecard rule.",
- "example": "q8MQxk8TCqrHnWkx",
+ "description": "The ID of the rule.",
+ "type": "string"
+ },
+ "isDefault": {
+ "description": "Whether the rule is included by default.",
+ "type": "boolean"
+ },
+ "isDeleted": {
+ "description": "Whether the rule has been deleted.",
+ "type": "boolean"
+ },
+ "isEnabled": {
+ "description": "Whether the rule is enabled.",
+ "type": "boolean"
+ },
+ "message": {
+ "description": "Message for generated signals.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the rule.",
"type": "string"
},
+ "options": {
+ "description": "Options.",
+ "properties": {
+ "complianceRuleOptions": {
+ "additionalProperties": {},
+ "description": "Options for cloud_configuration rules.\nFields `resourceType` and `regoRule` are mandatory when managing custom `cloud_configuration` rules.\n",
+ "properties": {
+ "complexRule": {
+ "description": "Whether the rule is a complex one.\nMust be set to true if `regoRule.resourceTypes` contains more than one item. Defaults to false.\n",
+ "type": "boolean"
+ },
+ "regoRule": {
+ "description": "Rule details.",
+ "properties": {
+ "policy": {
+ "description": "The policy written in `rego`, see: https://www.openpolicyagent.org/docs/latest/policy-language/",
+ "example": "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}\n",
+ "type": "string"
+ },
+ "resourceTypes": {
+ "description": "List of resource types that will be evaluated upon. Must have at least one element.",
+ "example": [
+ "gcp_iam_service_account",
+ "gcp_iam_policy"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "policy",
+ "resourceTypes"
+ ],
+ "type": "object"
+ },
+ "resourceType": {
+ "description": "Main resource type to be checked by the rule. It should be specified again in `regoRule.resourceTypes`.\n",
+ "example": "aws_acm",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "decreaseCriticalityBasedOnEnv": {
+ "description": "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`.",
+ "example": false,
+ "type": "boolean"
+ },
+ "detectionMethod": {
+ "description": "The detection method.",
+ "enum": [
+ "threshold",
+ "new_value",
+ "anomaly_detection",
+ "impossible_travel",
+ "hardcoded",
+ "third_party",
+ "anomaly_threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "THRESHOLD",
+ "NEW_VALUE",
+ "ANOMALY_DETECTION",
+ "IMPOSSIBLE_TRAVEL",
+ "HARDCODED",
+ "THIRD_PARTY",
+ "ANOMALY_THRESHOLD"
+ ]
+ },
+ "evaluationWindow": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS"
+ ]
+ },
+ "hardcodedEvaluatorType": {
+ "description": "Hardcoded evaluator type.",
+ "enum": [
+ "log4shell"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "LOG4SHELL"
+ ]
+ },
+ "impossibleTravelOptions": {
+ "description": "Options on impossible travel detection method.",
+ "properties": {
+ "baselineUserLocations": {
+ "description": "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.",
+ "example": true,
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "keepAlive": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS"
+ ]
+ },
+ "maxSignalDuration": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600,
+ 43200,
+ 86400
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS",
+ "TWELVE_HOURS",
+ "ONE_DAY"
+ ]
+ },
+ "newValueOptions": {
+ "description": "Options on new value detection method.",
+ "properties": {
+ "forgetAfter": {
+ "description": "The duration in days after which a learned value is forgotten.",
+ "enum": [
+ 1,
+ 2,
+ 7,
+ 14,
+ 21,
+ 28
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ONE_DAY",
+ "TWO_DAYS",
+ "ONE_WEEK",
+ "TWO_WEEKS",
+ "THREE_WEEKS",
+ "FOUR_WEEKS"
+ ]
+ },
+ "learningDuration": {
+ "default": 0,
+ "description": "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.",
+ "enum": [
+ 0,
+ 1,
+ 7
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_DAYS",
+ "ONE_DAY",
+ "SEVEN_DAYS"
+ ]
+ },
+ "learningMethod": {
+ "default": "duration",
+ "description": "The learning method used to determine when signals should be generated for values that weren't learned.",
+ "enum": [
+ "duration",
+ "threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "DURATION",
+ "THRESHOLD"
+ ]
+ },
+ "learningThreshold": {
+ "default": 0,
+ "description": "A number of occurrences after which signals will be generated for values that weren't learned.",
+ "enum": [
+ 0,
+ 1
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_OCCURRENCES",
+ "ONE_OCCURRENCE"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "thirdPartyRuleOptions": {
+ "description": "Options on third party detection method.",
+ "properties": {
+ "defaultNotifications": {
+ "description": "Notification targets for the logs that do not correspond to any of the cases.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "defaultStatus": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ },
+ "rootQueries": {
+ "description": "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.",
+ "items": {
+ "description": "A query to be combined with the third party case query.",
+ "properties": {
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "query": {
+ "description": "Query to run on logs.",
+ "example": "source:cloudtrail",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "signalTitleTemplate": {
+ "description": "A template for the signal title; if omitted, the title is generated based on the case name.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "queries": {
+ "description": "Queries for selecting logs which are part of the rule.",
+ "items": {
+ "description": "Query for matching rule on signals.",
+ "properties": {
+ "aggregation": {
+ "description": "The aggregation type.",
+ "enum": [
+ "count",
+ "cardinality",
+ "sum",
+ "max",
+ "new_value",
+ "geo_data",
+ "event_count",
+ "none"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "COUNT",
+ "CARDINALITY",
+ "SUM",
+ "MAX",
+ "NEW_VALUE",
+ "GEO_DATA",
+ "EVENT_COUNT",
+ "NONE"
+ ]
+ },
+ "correlatedByFields": {
+ "description": "Fields to correlate by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "correlatedQueryIndex": {
+ "description": "Index of the rule query used to retrieve the correlated field.",
+ "format": "int32",
+ "maximum": 9,
+ "type": "integer"
+ },
+ "defaultRuleId": {
+ "description": "Default Rule ID to match on signals.",
+ "example": "d3f-ru1-e1d",
+ "type": "string"
+ },
+ "distinctFields": {
+ "description": "Field for which the cardinality is measured. Sent as an array.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "metrics": {
+ "description": "Group of target fields to aggregate over.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the query.",
+ "type": "string"
+ },
+ "ruleId": {
+ "description": "Rule ID to match on signals.",
+ "example": "org-ru1-e1d",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "tags": {
+ "description": "Tags for generated signals.",
+ "items": {
+ "description": "Tag.",
+ "type": "string"
+ },
+ "type": "array"
+ },
"type": {
- "default": "rule",
- "description": "The JSON:API type for scorecard rules.",
+ "description": "The rule type.",
"enum": [
- "rule"
+ "signal_correlation"
],
- "example": "rule",
"type": "string",
"x-enum-varnames": [
- "RULE"
+ "SIGNAL_CORRELATION"
]
+ },
+ "updateAuthorId": {
+ "description": "User ID of the user who updated the rule.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "version": {
+ "description": "The version of the rule.",
+ "format": "int64",
+ "type": "integer"
}
- },
- "type": "object"
+ }
}
- },
- "type": "object"
- }
- },
- "type": "object"
- },
- "RuleSeverity": {
- "description": "Severity of a security rule.",
- "enum": [
- "critical",
- "high",
- "medium",
- "low",
- "unknown",
- "info"
- ],
- "example": "critical",
- "type": "string",
- "x-enum-varnames": [
- "CRITICAL",
- "HIGH",
- "MEDIUM",
- "LOW",
- "UNKNOWN",
- "INFO"
- ]
- },
- "RuleType": {
- "default": "rule",
- "description": "The JSON:API type for scorecard rules.",
- "enum": [
- "rule"
- ],
- "example": "rule",
- "type": "string",
- "x-enum-varnames": [
- "RULE"
- ]
- },
- "RuleTypes": {
- "description": "Security rule types used as filters in security rules.",
- "example": [
- "misconfiguration",
- "attack_path"
- ],
- "items": {
- "description": "Security rule type which can be used in security rules.\nSignal-based notification rules can filter signals based on rule types application_security, log_detection,\nworkload_security, signal_correlation, cloud_configuration and infrastructure_configuration.\nVulnerability-based notification rules can filter vulnerabilities based on rule types application_code_vulnerability,\napplication_library_vulnerability, attack_path, container_image_vulnerability, identity_risk, misconfiguration, and api_security.",
- "enum": [
- "application_security",
- "log_detection",
- "workload_security",
- "signal_correlation",
- "cloud_configuration",
- "infrastructure_configuration",
- "application_code_vulnerability",
- "application_library_vulnerability",
- "attack_path",
- "container_image_vulnerability",
- "identity_risk",
- "misconfiguration",
- "api_security"
- ],
- "type": "string",
- "x-enum-varnames": [
- "APPLICATION_SECURITY",
- "LOG_DETECTION",
- "WORKLOAD_SECURITY",
- "SIGNAL_CORRELATION",
- "CLOUD_CONFIGURATION",
- "INFRASTRUCTURE_CONFIGURATION",
- "APPLICATION_CODE_VULNERABILITY",
- "APPLICATION_LIBRARY_VULNERABILITY",
- "ATTACK_PATH",
- "CONTAINER_IMAGE_VULNERABILITY",
- "IDENTITY_RISK",
- "MISCONFIGURATION",
- "API_SECURITY"
- ]
- },
- "type": "array"
- },
- "RuleTypesItems": {
- "description": "Security rule type which can be used in security rules.\nSignal-based notification rules can filter signals based on rule types application_security, log_detection,\nworkload_security, signal_correlation, cloud_configuration and infrastructure_configuration.\nVulnerability-based notification rules can filter vulnerabilities based on rule types application_code_vulnerability,\napplication_library_vulnerability, attack_path, container_image_vulnerability, identity_risk, misconfiguration, and api_security.",
- "enum": [
- "application_security",
- "log_detection",
- "workload_security",
- "signal_correlation",
- "cloud_configuration",
- "infrastructure_configuration",
- "application_code_vulnerability",
- "application_library_vulnerability",
- "attack_path",
- "container_image_vulnerability",
- "identity_risk",
- "misconfiguration",
- "api_security"
- ],
- "type": "string",
- "x-enum-varnames": [
- "APPLICATION_SECURITY",
- "LOG_DETECTION",
- "WORKLOAD_SECURITY",
- "SIGNAL_CORRELATION",
- "CLOUD_CONFIGURATION",
- "INFRASTRUCTURE_CONFIGURATION",
- "APPLICATION_CODE_VULNERABILITY",
- "APPLICATION_LIBRARY_VULNERABILITY",
- "ATTACK_PATH",
- "CONTAINER_IMAGE_VULNERABILITY",
- "IDENTITY_RISK",
- "MISCONFIGURATION",
- "API_SECURITY"
- ]
- },
- "RuleUser": {
- "description": "User creating or modifying a rule.",
- "properties": {
- "handle": {
- "description": "The user handle.",
- "example": "john.doe@domain.com",
- "type": "string"
- },
- "name": {
- "description": "The user name.",
- "example": "John Doe",
- "type": "string"
+ ]
}
},
"type": "object"
@@ -152053,6 +162344,54 @@
},
"type": "object"
},
+ "ScheduleTrigger": {
+ "description": "Trigger a workflow VIA a Schedule. The workflow must be published.",
+ "properties": {
+ "rruleExpression": {
+ "description": "Recurrence rule expression for scheduling.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "rruleExpression"
+ ],
+ "type": "object"
+ },
+ "ScheduleTriggerWrapper": {
+ "description": "Schema for a Schedule-based trigger.",
+ "properties": {
+ "scheduleTrigger": {
+ "description": "Trigger a workflow VIA a Schedule. The workflow must be published.",
+ "properties": {
+ "rruleExpression": {
+ "description": "Recurrence rule expression for scheduling.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "rruleExpression"
+ ],
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "scheduleTrigger"
+ ],
+ "type": "object"
+ },
"ScorecardType": {
"default": "scorecard",
"description": "The JSON:API type for scorecard.",
@@ -170307,6 +180646,68 @@
},
"type": "object"
},
+ "SecurityTrigger": {
+ "description": "Trigger a workflow VIA a Security Signal or Finding. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "SecurityTriggerWrapper": {
+ "description": "Schema for a Security-based trigger.",
+ "properties": {
+ "securityTrigger": {
+ "description": "Trigger a workflow VIA a Security Signal or Finding. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "securityTrigger"
+ ],
+ "type": "object"
+ },
"Selectors": {
"description": "Selectors are used to filter security issues for which notifications should be generated.\nUsers can specify rule severities, rule types, a query to filter security issues on tags and attributes, and the trigger source.\nOnly the trigger_source field is required.",
"properties": {
@@ -185171,6 +195572,30 @@
],
"type": "object"
},
+ "SlackTriggerWrapper": {
+ "description": "Schema for a Slack-based trigger.",
+ "properties": {
+ "slackTrigger": {
+ "description": "Trigger a workflow VIA Slack. The workflow must be published.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "slackTrigger"
+ ],
+ "type": "object"
+ },
"SloReportCreateRequest": {
"description": "The SLO report request body.",
"properties": {
@@ -189105,6 +199530,973 @@
},
"type": "object"
},
+ "Spec": {
+ "description": "The spec defines what the workflow does.",
+ "properties": {
+ "annotations": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "items": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "properties": {
+ "display": {
+ "description": "The definition of `AnnotationDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `AnnotationDisplayBounds` object.",
+ "properties": {
+ "height": {
+ "description": "The `bounds` `height`.",
+ "format": "double",
+ "type": "number"
+ },
+ "width": {
+ "description": "The `bounds` `width`.",
+ "format": "double",
+ "type": "number"
+ },
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The `Annotation` `id`.",
+ "example": "",
+ "type": "string"
+ },
+ "markdownTextAnnotation": {
+ "description": "The definition of `AnnotationMarkdownTextAnnotation` object.",
+ "properties": {
+ "text": {
+ "description": "The `markdownTextAnnotation` `text`.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "required": [
+ "id",
+ "display",
+ "markdownTextAnnotation"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "connectionEnvs": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "items": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "properties": {
+ "connectionGroups": {
+ "description": "The `ConnectionEnv` `connectionGroups`.",
+ "items": {
+ "description": "The definition of `ConnectionGroup` object.",
+ "properties": {
+ "connectionGroupId": {
+ "description": "The `ConnectionGroup` `connectionGroupId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `ConnectionGroup` `label`.",
+ "example": "",
+ "type": "string"
+ },
+ "tags": {
+ "description": "The `ConnectionGroup` `tags`.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "connectionGroupId",
+ "label",
+ "tags"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "connections": {
+ "description": "The `ConnectionEnv` `connections`.",
+ "items": {
+ "description": "The definition of `Connection` object.",
+ "properties": {
+ "connectionId": {
+ "description": "The `Connection` `connectionId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `Connection` `label`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "connectionId",
+ "label"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "env": {
+ "description": "The definition of `ConnectionEnvEnv` object.",
+ "enum": [
+ "default"
+ ],
+ "example": "default",
+ "type": "string",
+ "x-enum-varnames": [
+ "DEFAULT"
+ ]
+ }
+ },
+ "required": [
+ "env"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "handle": {
+ "description": "Unique identifier used to trigger workflows automatically in Datadog.",
+ "type": "string"
+ },
+ "inputSchema": {
+ "description": "A list of input parameters for the workflow. These can be used as dynamic runtime values in your workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `InputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `InputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `InputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `InputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `InputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `InputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `InputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "outputSchema": {
+ "description": "A list of output parameters for the workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `OutputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `OutputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `OutputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `OutputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `OutputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `OutputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `OutputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ },
+ "value": {
+ "description": "The `OutputSchemaParameters` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "steps": {
+ "description": "A `Step` is a sub-component of a workflow. Each `Step` performs an action.",
+ "items": {
+ "description": "A Step is a sub-component of a workflow. Each Step performs an action.",
+ "properties": {
+ "actionId": {
+ "description": "The unique identifier of an action.",
+ "example": "",
+ "type": "string"
+ },
+ "completionGate": {
+ "description": "Used to create conditions before running subsequent actions.",
+ "properties": {
+ "completionCondition": {
+ "description": "The definition of `CompletionCondition` object.",
+ "properties": {
+ "operand1": {
+ "description": "The `CompletionCondition` `operand1`."
+ },
+ "operand2": {
+ "description": "The `CompletionCondition` `operand2`."
+ },
+ "operator": {
+ "description": "The definition of `CompletionConditionOperator` object.",
+ "enum": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ],
+ "example": "OPERATOR_EQUAL",
+ "type": "string",
+ "x-enum-varnames": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ]
+ }
+ },
+ "required": [
+ "operand1",
+ "operator"
+ ],
+ "type": "object"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "completionCondition",
+ "retryStrategy"
+ ],
+ "type": "object"
+ },
+ "connectionLabel": {
+ "description": "The unique identifier of a connection defined in the spec.",
+ "type": "string"
+ },
+ "display": {
+ "description": "The definition of `StepDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `StepDisplayBounds` object.",
+ "properties": {
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "errorHandlers": {
+ "description": "The `Step` `errorHandlers`.",
+ "items": {
+ "description": "Used to handle errors in an action.",
+ "properties": {
+ "fallbackStepName": {
+ "description": "The `ErrorHandler` `fallbackStepName`.",
+ "example": "",
+ "type": "string"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "retryStrategy",
+ "fallbackStepName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the step.",
+ "example": "",
+ "type": "string"
+ },
+ "outboundEdges": {
+ "description": "A list of subsequent actions to run.",
+ "items": {
+ "description": "The definition of `OutboundEdge` object.",
+ "properties": {
+ "branchName": {
+ "description": "The `OutboundEdge` `branchName`.",
+ "example": "",
+ "type": "string"
+ },
+ "nextStepName": {
+ "description": "The `OutboundEdge` `nextStepName`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "nextStepName",
+ "branchName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "parameters": {
+ "description": "A list of inputs for an action.",
+ "items": {
+ "description": "The definition of `Parameter` object.",
+ "properties": {
+ "name": {
+ "description": "The `Parameter` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "value": {
+ "description": "The `Parameter` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "value"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "readinessGate": {
+ "description": "Used to merge multiple branches into a single branch.",
+ "properties": {
+ "thresholdType": {
+ "description": "The definition of `ReadinessGateThresholdType` object.",
+ "enum": [
+ "ANY",
+ "ALL"
+ ],
+ "example": "ANY",
+ "type": "string",
+ "x-enum-varnames": [
+ "ANY",
+ "ALL"
+ ]
+ }
+ },
+ "required": [
+ "thresholdType"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "name",
+ "actionId"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "triggers": {
+ "description": "The list of triggers that activate this workflow. At least one trigger is required, and each trigger type may appear at most once.",
+ "items": {
+ "description": "One of the triggers that can start the execution of a workflow.",
+ "oneOf": [
+ {
+ "description": "Schema for an API-based trigger.",
+ "properties": {
+ "apiTrigger": {
+ "description": "Trigger a workflow VIA an API. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "apiTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an App-based trigger.",
+ "properties": {
+ "appTrigger": {
+ "description": "Trigger a workflow VIA an App.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "appTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Case-based trigger.",
+ "properties": {
+ "caseTrigger": {
+ "description": "Trigger a workflow VIA a Case. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "caseTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Change Event-based trigger.",
+ "properties": {
+ "changeEventTrigger": {
+ "description": "Trigger a workflow VIA a Change Event.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "changeEventTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Dashboard-based trigger.",
+ "properties": {
+ "dashboardTrigger": {
+ "description": "Trigger a workflow VIA a Dashboard.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "dashboardTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a GitHub webhook-based trigger.",
+ "properties": {
+ "githubWebhookTrigger": {
+ "description": "Trigger a workflow VIA GitHub webhook. To trigger a workflow from GitHub, you must set a `webhookSecret`. In your GitHub Webhook Settings, set the Payload URL to \"base_url\"/api/v2/workflows/\"workflow_id\"/webhook?orgId=\"org_id\", select application/json for the content type, and be highly recommend enabling SSL verification for security. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "githubWebhookTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an Incident-based trigger.",
+ "properties": {
+ "incidentTrigger": {
+ "description": "Trigger a workflow VIA an Incident. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "incidentTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Monitor-based trigger.",
+ "properties": {
+ "monitorTrigger": {
+ "description": "Trigger a workflow VIA a Monitor. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "monitorTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Schedule-based trigger.",
+ "properties": {
+ "scheduleTrigger": {
+ "description": "Trigger a workflow VIA a Schedule. The workflow must be published.",
+ "properties": {
+ "rruleExpression": {
+ "description": "Recurrence rule expression for scheduling.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "rruleExpression"
+ ],
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "scheduleTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Security-based trigger.",
+ "properties": {
+ "securityTrigger": {
+ "description": "Trigger a workflow VIA a Security Signal or Finding. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "securityTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Slack-based trigger.",
+ "properties": {
+ "slackTrigger": {
+ "description": "Trigger a workflow VIA Slack. The workflow must be published.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "slackTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Workflow-based trigger.",
+ "properties": {
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "workflowTrigger": {
+ "description": "Trigger a workflow VIA the Datadog UI. Only required if no other trigger exists.",
+ "type": "object"
+ }
+ },
+ "required": [
+ "workflowTrigger"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
"SpecVersion": {
"description": "The version of the CycloneDX specification a BOM conforms to.",
"enum": [
@@ -189126,6 +200518,17 @@
"ONE_FIVE"
]
},
+ "StartStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ },
"State": {
"description": "The state of the rule evaluation.",
"enum": [
@@ -189141,6 +200544,318 @@
"SKIP"
]
},
+ "Step": {
+ "description": "A Step is a sub-component of a workflow. Each Step performs an action.",
+ "properties": {
+ "actionId": {
+ "description": "The unique identifier of an action.",
+ "example": "",
+ "type": "string"
+ },
+ "completionGate": {
+ "description": "Used to create conditions before running subsequent actions.",
+ "properties": {
+ "completionCondition": {
+ "description": "The definition of `CompletionCondition` object.",
+ "properties": {
+ "operand1": {
+ "description": "The `CompletionCondition` `operand1`."
+ },
+ "operand2": {
+ "description": "The `CompletionCondition` `operand2`."
+ },
+ "operator": {
+ "description": "The definition of `CompletionConditionOperator` object.",
+ "enum": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ],
+ "example": "OPERATOR_EQUAL",
+ "type": "string",
+ "x-enum-varnames": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ]
+ }
+ },
+ "required": [
+ "operand1",
+ "operator"
+ ],
+ "type": "object"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "completionCondition",
+ "retryStrategy"
+ ],
+ "type": "object"
+ },
+ "connectionLabel": {
+ "description": "The unique identifier of a connection defined in the spec.",
+ "type": "string"
+ },
+ "display": {
+ "description": "The definition of `StepDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `StepDisplayBounds` object.",
+ "properties": {
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "errorHandlers": {
+ "description": "The `Step` `errorHandlers`.",
+ "items": {
+ "description": "Used to handle errors in an action.",
+ "properties": {
+ "fallbackStepName": {
+ "description": "The `ErrorHandler` `fallbackStepName`.",
+ "example": "",
+ "type": "string"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "retryStrategy",
+ "fallbackStepName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the step.",
+ "example": "",
+ "type": "string"
+ },
+ "outboundEdges": {
+ "description": "A list of subsequent actions to run.",
+ "items": {
+ "description": "The definition of `OutboundEdge` object.",
+ "properties": {
+ "branchName": {
+ "description": "The `OutboundEdge` `branchName`.",
+ "example": "",
+ "type": "string"
+ },
+ "nextStepName": {
+ "description": "The `OutboundEdge` `nextStepName`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "nextStepName",
+ "branchName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "parameters": {
+ "description": "A list of inputs for an action.",
+ "items": {
+ "description": "The definition of `Parameter` object.",
+ "properties": {
+ "name": {
+ "description": "The `Parameter` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "value": {
+ "description": "The `Parameter` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "value"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "readinessGate": {
+ "description": "Used to merge multiple branches into a single branch.",
+ "properties": {
+ "thresholdType": {
+ "description": "The definition of `ReadinessGateThresholdType` object.",
+ "enum": [
+ "ANY",
+ "ALL"
+ ],
+ "example": "ANY",
+ "type": "string",
+ "x-enum-varnames": [
+ "ANY",
+ "ALL"
+ ]
+ }
+ },
+ "required": [
+ "thresholdType"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "name",
+ "actionId"
+ ],
+ "type": "object"
+ },
+ "StepDisplay": {
+ "description": "The definition of `StepDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `StepDisplayBounds` object.",
+ "properties": {
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "StepDisplayBounds": {
+ "description": "The definition of `StepDisplayBounds` object.",
+ "properties": {
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
"TagsEventAttribute": {
"description": "Array of tags associated with your event.",
"example": [
@@ -194815,6 +206530,426 @@
"SECRET"
]
},
+ "Trigger": {
+ "description": "One of the triggers that can start the execution of a workflow.",
+ "oneOf": [
+ {
+ "description": "Schema for an API-based trigger.",
+ "properties": {
+ "apiTrigger": {
+ "description": "Trigger a workflow VIA an API. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "apiTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an App-based trigger.",
+ "properties": {
+ "appTrigger": {
+ "description": "Trigger a workflow VIA an App.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "appTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Case-based trigger.",
+ "properties": {
+ "caseTrigger": {
+ "description": "Trigger a workflow VIA a Case. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "caseTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Change Event-based trigger.",
+ "properties": {
+ "changeEventTrigger": {
+ "description": "Trigger a workflow VIA a Change Event.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "changeEventTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Dashboard-based trigger.",
+ "properties": {
+ "dashboardTrigger": {
+ "description": "Trigger a workflow VIA a Dashboard.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "dashboardTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a GitHub webhook-based trigger.",
+ "properties": {
+ "githubWebhookTrigger": {
+ "description": "Trigger a workflow VIA GitHub webhook. To trigger a workflow from GitHub, you must set a `webhookSecret`. In your GitHub Webhook Settings, set the Payload URL to \"base_url\"/api/v2/workflows/\"workflow_id\"/webhook?orgId=\"org_id\", select application/json for the content type, and be highly recommend enabling SSL verification for security. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "githubWebhookTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an Incident-based trigger.",
+ "properties": {
+ "incidentTrigger": {
+ "description": "Trigger a workflow VIA an Incident. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "incidentTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Monitor-based trigger.",
+ "properties": {
+ "monitorTrigger": {
+ "description": "Trigger a workflow VIA a Monitor. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "monitorTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Schedule-based trigger.",
+ "properties": {
+ "scheduleTrigger": {
+ "description": "Trigger a workflow VIA a Schedule. The workflow must be published.",
+ "properties": {
+ "rruleExpression": {
+ "description": "Recurrence rule expression for scheduling.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "rruleExpression"
+ ],
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "scheduleTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Security-based trigger.",
+ "properties": {
+ "securityTrigger": {
+ "description": "Trigger a workflow VIA a Security Signal or Finding. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "securityTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Slack-based trigger.",
+ "properties": {
+ "slackTrigger": {
+ "description": "Trigger a workflow VIA Slack. The workflow must be published.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "slackTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Workflow-based trigger.",
+ "properties": {
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "workflowTrigger": {
+ "description": "Trigger a workflow VIA the Datadog UI. Only required if no other trigger exists.",
+ "type": "object"
+ }
+ },
+ "required": [
+ "workflowTrigger"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "TriggerRateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
"TriggerSource": {
"description": "The type of security issues on which the rule applies. Notification rules based on security signals need to use the trigger source \"security_signals\",\nwhile notification rules based on security vulnerabilities need to use the trigger source \"security_findings\".",
"enum": [
@@ -198591,331 +210726,2662 @@
"description": "Explanation of the rule.",
"type": "string"
},
- "enabled": {
- "description": "If enabled, the rule is calculated as part of the score.",
- "example": true,
- "type": "boolean"
+ "enabled": {
+ "description": "If enabled, the rule is calculated as part of the score.",
+ "example": true,
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time of the last rule outcome modification.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the rule.",
+ "example": "Team Defined",
+ "type": "string"
+ },
+ "owner": {
+ "description": "Owner of the rule.",
+ "type": "string"
+ },
+ "scorecard_name": {
+ "description": "The scorecard name to which this rule must belong.",
+ "example": "Deployments automated via Deployment Trains",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "default": "rule",
+ "description": "The JSON:API type for scorecard rules.",
+ "enum": [
+ "rule"
+ ],
+ "example": "rule",
+ "type": "string",
+ "x-enum-varnames": [
+ "RULE"
+ ]
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "UpdateRuleRequestData": {
+ "description": "Data for the request to update a scorecard rule.",
+ "properties": {
+ "attributes": {
+ "description": "Details of a rule.",
+ "properties": {
+ "category": {
+ "deprecated": true,
+ "description": "The scorecard name to which this rule must belong.",
+ "type": "string"
+ },
+ "created_at": {
+ "description": "Creation time of the rule outcome.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "custom": {
+ "description": "Defines if the rule is a custom rule.",
+ "type": "boolean"
+ },
+ "description": {
+ "description": "Explanation of the rule.",
+ "type": "string"
+ },
+ "enabled": {
+ "description": "If enabled, the rule is calculated as part of the score.",
+ "example": true,
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time of the last rule outcome modification.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the rule.",
+ "example": "Team Defined",
+ "type": "string"
+ },
+ "owner": {
+ "description": "Owner of the rule.",
+ "type": "string"
+ },
+ "scorecard_name": {
+ "description": "The scorecard name to which this rule must belong.",
+ "example": "Deployments automated via Deployment Trains",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "default": "rule",
+ "description": "The JSON:API type for scorecard rules.",
+ "enum": [
+ "rule"
+ ],
+ "example": "rule",
+ "type": "string",
+ "x-enum-varnames": [
+ "RULE"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "UpdateRuleResponse": {
+ "description": "The response from a rule update request.",
+ "properties": {
+ "data": {
+ "description": "The data for a rule update response.",
+ "properties": {
+ "attributes": {
+ "description": "Details of a rule.",
+ "properties": {
+ "category": {
+ "deprecated": true,
+ "description": "The scorecard name to which this rule must belong.",
+ "type": "string"
+ },
+ "created_at": {
+ "description": "Creation time of the rule outcome.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "custom": {
+ "description": "Defines if the rule is a custom rule.",
+ "type": "boolean"
+ },
+ "description": {
+ "description": "Explanation of the rule.",
+ "type": "string"
+ },
+ "enabled": {
+ "description": "If enabled, the rule is calculated as part of the score.",
+ "example": true,
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time of the last rule outcome modification.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the rule.",
+ "example": "Team Defined",
+ "type": "string"
+ },
+ "owner": {
+ "description": "Owner of the rule.",
+ "type": "string"
+ },
+ "scorecard_name": {
+ "description": "The scorecard name to which this rule must belong.",
+ "example": "Deployments automated via Deployment Trains",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The unique ID for a scorecard rule.",
+ "example": "q8MQxk8TCqrHnWkx",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Scorecard create rule response relationship.",
+ "properties": {
+ "scorecard": {
+ "description": "Relationship data for a rule.",
+ "properties": {
+ "data": {
+ "description": "Rule relationship data.",
+ "properties": {
+ "id": {
+ "description": "The unique ID for a scorecard.",
+ "example": "q8MQxk8TCqrHnWkp",
+ "type": "string"
+ },
+ "type": {
+ "default": "scorecard",
+ "description": "The JSON:API type for scorecard.",
+ "enum": [
+ "scorecard"
+ ],
+ "example": "scorecard",
+ "type": "string",
+ "x-enum-varnames": [
+ "SCORECARD"
+ ]
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "default": "rule",
+ "description": "The JSON:API type for scorecard rules.",
+ "enum": [
+ "rule"
+ ],
+ "example": "rule",
+ "type": "string",
+ "x-enum-varnames": [
+ "RULE"
+ ]
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "UpdateRuleResponseData": {
+ "description": "The data for a rule update response.",
+ "properties": {
+ "attributes": {
+ "description": "Details of a rule.",
+ "properties": {
+ "category": {
+ "deprecated": true,
+ "description": "The scorecard name to which this rule must belong.",
+ "type": "string"
+ },
+ "created_at": {
+ "description": "Creation time of the rule outcome.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "custom": {
+ "description": "Defines if the rule is a custom rule.",
+ "type": "boolean"
+ },
+ "description": {
+ "description": "Explanation of the rule.",
+ "type": "string"
+ },
+ "enabled": {
+ "description": "If enabled, the rule is calculated as part of the score.",
+ "example": true,
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time of the last rule outcome modification.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the rule.",
+ "example": "Team Defined",
+ "type": "string"
+ },
+ "owner": {
+ "description": "Owner of the rule.",
+ "type": "string"
+ },
+ "scorecard_name": {
+ "description": "The scorecard name to which this rule must belong.",
+ "example": "Deployments automated via Deployment Trains",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The unique ID for a scorecard rule.",
+ "example": "q8MQxk8TCqrHnWkx",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Scorecard create rule response relationship.",
+ "properties": {
+ "scorecard": {
+ "description": "Relationship data for a rule.",
+ "properties": {
+ "data": {
+ "description": "Rule relationship data.",
+ "properties": {
+ "id": {
+ "description": "The unique ID for a scorecard.",
+ "example": "q8MQxk8TCqrHnWkp",
+ "type": "string"
+ },
+ "type": {
+ "default": "scorecard",
+ "description": "The JSON:API type for scorecard.",
+ "enum": [
+ "scorecard"
+ ],
+ "example": "scorecard",
+ "type": "string",
+ "x-enum-varnames": [
+ "SCORECARD"
+ ]
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "default": "rule",
+ "description": "The JSON:API type for scorecard rules.",
+ "enum": [
+ "rule"
+ ],
+ "example": "rule",
+ "type": "string",
+ "x-enum-varnames": [
+ "RULE"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "UpdateWorkflowRequest": {
+ "description": "A request object for updating an existing workflow.",
+ "example": {
+ "data": {
+ "attributes": {
+ "description": "A sample workflow.",
+ "name": "Example Workflow",
+ "published": true,
+ "spec": {
+ "annotations": [
+ {
+ "display": {
+ "bounds": {
+ "height": 150,
+ "width": 300,
+ "x": -375,
+ "y": -0.5
+ }
+ },
+ "id": "99999999-9999-9999-9999-999999999999",
+ "markdownTextAnnotation": {
+ "text": "Example annotation."
+ }
+ }
+ ],
+ "connectionEnvs": [
+ {
+ "connections": [
+ {
+ "connectionId": "11111111-1111-1111-1111-111111111111",
+ "label": "INTEGRATION_DATADOG"
+ }
+ ],
+ "env": "default"
+ }
+ ],
+ "handle": "my-handle",
+ "inputSchema": {
+ "parameters": [
+ {
+ "defaultValue": "default",
+ "name": "input",
+ "type": "STRING"
+ }
+ ]
+ },
+ "outputSchema": {
+ "parameters": [
+ {
+ "name": "output",
+ "type": "ARRAY_OBJECT",
+ "value": "{{ Steps.Step1 }}"
+ }
+ ]
+ },
+ "steps": [
+ {
+ "actionId": "com.datadoghq.dd.monitor.listMonitors",
+ "connectionLabel": "INTEGRATION_DATADOG",
+ "name": "Step1",
+ "outboundEdges": [
+ {
+ "branchName": "main",
+ "nextStepName": "Step2"
+ }
+ ],
+ "parameters": [
+ {
+ "name": "tags",
+ "value": "service:monitoring"
+ }
+ ]
+ },
+ {
+ "actionId": "com.datadoghq.core.noop",
+ "name": "Step2"
+ }
+ ],
+ "triggers": [
+ {
+ "monitorTrigger": {
+ "rateLimit": {
+ "count": 1,
+ "interval": "3600s"
+ }
+ },
+ "startStepNames": [
+ "Step1"
+ ]
+ },
+ {
+ "githubWebhookTrigger": {},
+ "startStepNames": [
+ "Step1"
+ ]
+ }
+ ]
+ },
+ "tags": [
+ "team:infra",
+ "service:monitoring",
+ "foo:bar"
+ ]
+ },
+ "id": "22222222-2222-2222-2222-222222222222",
+ "type": "workflows"
+ }
+ },
+ "properties": {
+ "data": {
+ "description": "Data related to the workflow being updated.",
+ "properties": {
+ "attributes": {
+ "description": "The definition of `WorkflowDataUpdateAttributes` object.",
+ "properties": {
+ "createdAt": {
+ "description": "When the workflow was created.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of the workflow.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the workflow.",
+ "type": "string"
+ },
+ "published": {
+ "description": "Set the workflow to published or unpublished. Workflows in an unpublished state will only be executable via manual runs. Automatic triggers such as Schedule will not execute the workflow until it is published.",
+ "type": "boolean"
+ },
+ "spec": {
+ "description": "The spec defines what the workflow does.",
+ "properties": {
+ "annotations": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "items": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "properties": {
+ "display": {
+ "description": "The definition of `AnnotationDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `AnnotationDisplayBounds` object.",
+ "properties": {
+ "height": {
+ "description": "The `bounds` `height`.",
+ "format": "double",
+ "type": "number"
+ },
+ "width": {
+ "description": "The `bounds` `width`.",
+ "format": "double",
+ "type": "number"
+ },
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The `Annotation` `id`.",
+ "example": "",
+ "type": "string"
+ },
+ "markdownTextAnnotation": {
+ "description": "The definition of `AnnotationMarkdownTextAnnotation` object.",
+ "properties": {
+ "text": {
+ "description": "The `markdownTextAnnotation` `text`.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "required": [
+ "id",
+ "display",
+ "markdownTextAnnotation"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "connectionEnvs": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "items": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "properties": {
+ "connectionGroups": {
+ "description": "The `ConnectionEnv` `connectionGroups`.",
+ "items": {
+ "description": "The definition of `ConnectionGroup` object.",
+ "properties": {
+ "connectionGroupId": {
+ "description": "The `ConnectionGroup` `connectionGroupId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `ConnectionGroup` `label`.",
+ "example": "",
+ "type": "string"
+ },
+ "tags": {
+ "description": "The `ConnectionGroup` `tags`.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "connectionGroupId",
+ "label",
+ "tags"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "connections": {
+ "description": "The `ConnectionEnv` `connections`.",
+ "items": {
+ "description": "The definition of `Connection` object.",
+ "properties": {
+ "connectionId": {
+ "description": "The `Connection` `connectionId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `Connection` `label`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "connectionId",
+ "label"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "env": {
+ "description": "The definition of `ConnectionEnvEnv` object.",
+ "enum": [
+ "default"
+ ],
+ "example": "default",
+ "type": "string",
+ "x-enum-varnames": [
+ "DEFAULT"
+ ]
+ }
+ },
+ "required": [
+ "env"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "handle": {
+ "description": "Unique identifier used to trigger workflows automatically in Datadog.",
+ "type": "string"
+ },
+ "inputSchema": {
+ "description": "A list of input parameters for the workflow. These can be used as dynamic runtime values in your workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `InputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `InputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `InputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `InputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `InputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `InputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `InputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "outputSchema": {
+ "description": "A list of output parameters for the workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `OutputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `OutputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `OutputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `OutputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `OutputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `OutputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `OutputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ },
+ "value": {
+ "description": "The `OutputSchemaParameters` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "steps": {
+ "description": "A `Step` is a sub-component of a workflow. Each `Step` performs an action.",
+ "items": {
+ "description": "A Step is a sub-component of a workflow. Each Step performs an action.",
+ "properties": {
+ "actionId": {
+ "description": "The unique identifier of an action.",
+ "example": "",
+ "type": "string"
+ },
+ "completionGate": {
+ "description": "Used to create conditions before running subsequent actions.",
+ "properties": {
+ "completionCondition": {
+ "description": "The definition of `CompletionCondition` object.",
+ "properties": {
+ "operand1": {
+ "description": "The `CompletionCondition` `operand1`."
+ },
+ "operand2": {
+ "description": "The `CompletionCondition` `operand2`."
+ },
+ "operator": {
+ "description": "The definition of `CompletionConditionOperator` object.",
+ "enum": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ],
+ "example": "OPERATOR_EQUAL",
+ "type": "string",
+ "x-enum-varnames": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ]
+ }
+ },
+ "required": [
+ "operand1",
+ "operator"
+ ],
+ "type": "object"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "completionCondition",
+ "retryStrategy"
+ ],
+ "type": "object"
+ },
+ "connectionLabel": {
+ "description": "The unique identifier of a connection defined in the spec.",
+ "type": "string"
+ },
+ "display": {
+ "description": "The definition of `StepDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `StepDisplayBounds` object.",
+ "properties": {
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "errorHandlers": {
+ "description": "The `Step` `errorHandlers`.",
+ "items": {
+ "description": "Used to handle errors in an action.",
+ "properties": {
+ "fallbackStepName": {
+ "description": "The `ErrorHandler` `fallbackStepName`.",
+ "example": "",
+ "type": "string"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "retryStrategy",
+ "fallbackStepName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the step.",
+ "example": "",
+ "type": "string"
+ },
+ "outboundEdges": {
+ "description": "A list of subsequent actions to run.",
+ "items": {
+ "description": "The definition of `OutboundEdge` object.",
+ "properties": {
+ "branchName": {
+ "description": "The `OutboundEdge` `branchName`.",
+ "example": "",
+ "type": "string"
+ },
+ "nextStepName": {
+ "description": "The `OutboundEdge` `nextStepName`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "nextStepName",
+ "branchName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "parameters": {
+ "description": "A list of inputs for an action.",
+ "items": {
+ "description": "The definition of `Parameter` object.",
+ "properties": {
+ "name": {
+ "description": "The `Parameter` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "value": {
+ "description": "The `Parameter` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "value"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "readinessGate": {
+ "description": "Used to merge multiple branches into a single branch.",
+ "properties": {
+ "thresholdType": {
+ "description": "The definition of `ReadinessGateThresholdType` object.",
+ "enum": [
+ "ANY",
+ "ALL"
+ ],
+ "example": "ANY",
+ "type": "string",
+ "x-enum-varnames": [
+ "ANY",
+ "ALL"
+ ]
+ }
+ },
+ "required": [
+ "thresholdType"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "name",
+ "actionId"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "triggers": {
+ "description": "The list of triggers that activate this workflow. At least one trigger is required, and each trigger type may appear at most once.",
+ "items": {
+ "description": "One of the triggers that can start the execution of a workflow.",
+ "oneOf": [
+ {
+ "description": "Schema for an API-based trigger.",
+ "properties": {
+ "apiTrigger": {
+ "description": "Trigger a workflow VIA an API. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "apiTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an App-based trigger.",
+ "properties": {
+ "appTrigger": {
+ "description": "Trigger a workflow VIA an App.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "appTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Case-based trigger.",
+ "properties": {
+ "caseTrigger": {
+ "description": "Trigger a workflow VIA a Case. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "caseTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Change Event-based trigger.",
+ "properties": {
+ "changeEventTrigger": {
+ "description": "Trigger a workflow VIA a Change Event.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "changeEventTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Dashboard-based trigger.",
+ "properties": {
+ "dashboardTrigger": {
+ "description": "Trigger a workflow VIA a Dashboard.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "dashboardTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a GitHub webhook-based trigger.",
+ "properties": {
+ "githubWebhookTrigger": {
+ "description": "Trigger a workflow VIA GitHub webhook. To trigger a workflow from GitHub, you must set a `webhookSecret`. In your GitHub Webhook Settings, set the Payload URL to \"base_url\"/api/v2/workflows/\"workflow_id\"/webhook?orgId=\"org_id\", select application/json for the content type, and be highly recommend enabling SSL verification for security. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "githubWebhookTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an Incident-based trigger.",
+ "properties": {
+ "incidentTrigger": {
+ "description": "Trigger a workflow VIA an Incident. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "incidentTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Monitor-based trigger.",
+ "properties": {
+ "monitorTrigger": {
+ "description": "Trigger a workflow VIA a Monitor. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "monitorTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Schedule-based trigger.",
+ "properties": {
+ "scheduleTrigger": {
+ "description": "Trigger a workflow VIA a Schedule. The workflow must be published.",
+ "properties": {
+ "rruleExpression": {
+ "description": "Recurrence rule expression for scheduling.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "rruleExpression"
+ ],
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "scheduleTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Security-based trigger.",
+ "properties": {
+ "securityTrigger": {
+ "description": "Trigger a workflow VIA a Security Signal or Finding. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "securityTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Slack-based trigger.",
+ "properties": {
+ "slackTrigger": {
+ "description": "Trigger a workflow VIA Slack. The workflow must be published.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "slackTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Workflow-based trigger.",
+ "properties": {
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "workflowTrigger": {
+ "description": "Trigger a workflow VIA the Datadog UI. Only required if no other trigger exists.",
+ "type": "object"
+ }
+ },
+ "required": [
+ "workflowTrigger"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "tags": {
+ "description": "Tags of the workflow.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
},
- "modified_at": {
- "description": "Time of the last rule outcome modification.",
+ "updatedAt": {
+ "description": "When the workflow was last updated.",
"format": "date-time",
+ "readOnly": true,
"type": "string"
},
- "name": {
- "description": "Name of the rule.",
- "example": "Team Defined",
- "type": "string"
+ "webhookSecret": {
+ "description": "If a Webhook trigger is defined on this workflow, a webhookSecret is required and should be provided here.",
+ "type": "string",
+ "writeOnly": true
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The workflow identifier",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "The definition of `WorkflowDataRelationships` object.",
+ "properties": {
+ "creator": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
+ "properties": {
+ "data": {
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
+ "properties": {
+ "id": {
+ "description": "The user identifier",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "id"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object"
},
"owner": {
- "description": "Owner of the rule.",
- "type": "string"
- },
- "scorecard_name": {
- "description": "The scorecard name to which this rule must belong.",
- "example": "Deployments automated via Deployment Trains",
- "type": "string"
+ "description": "The definition of `WorkflowUserRelationship` object.",
+ "properties": {
+ "data": {
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
+ "properties": {
+ "id": {
+ "description": "The user identifier",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "id"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object"
}
},
+ "readOnly": true,
"type": "object"
},
"type": {
- "default": "rule",
- "description": "The JSON:API type for scorecard rules.",
+ "description": "The definition of `WorkflowDataType` object.",
"enum": [
- "rule"
+ "workflows"
],
- "example": "rule",
+ "example": "workflows",
"type": "string",
"x-enum-varnames": [
- "RULE"
+ "WORKFLOWS"
]
}
},
- "type": "object"
- }
- },
- "type": "object"
- },
- "UpdateRuleRequestData": {
- "description": "Data for the request to update a scorecard rule.",
- "properties": {
- "attributes": {
- "description": "Details of a rule.",
- "properties": {
- "category": {
- "deprecated": true,
- "description": "The scorecard name to which this rule must belong.",
- "type": "string"
- },
- "created_at": {
- "description": "Creation time of the rule outcome.",
- "format": "date-time",
- "type": "string"
- },
- "custom": {
- "description": "Defines if the rule is a custom rule.",
- "type": "boolean"
- },
- "description": {
- "description": "Explanation of the rule.",
- "type": "string"
- },
- "enabled": {
- "description": "If enabled, the rule is calculated as part of the score.",
- "example": true,
- "type": "boolean"
- },
- "modified_at": {
- "description": "Time of the last rule outcome modification.",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "Name of the rule.",
- "example": "Team Defined",
- "type": "string"
- },
- "owner": {
- "description": "Owner of the rule.",
- "type": "string"
- },
- "scorecard_name": {
- "description": "The scorecard name to which this rule must belong.",
- "example": "Deployments automated via Deployment Trains",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": {
- "default": "rule",
- "description": "The JSON:API type for scorecard rules.",
- "enum": [
- "rule"
+ "required": [
+ "type",
+ "attributes"
],
- "example": "rule",
- "type": "string",
- "x-enum-varnames": [
- "RULE"
- ]
+ "type": "object"
}
},
+ "required": [
+ "data"
+ ],
"type": "object"
},
- "UpdateRuleResponse": {
- "description": "The response from a rule update request.",
+ "UpdateWorkflowResponse": {
+ "description": "The response object after updating a workflow.",
"properties": {
"data": {
- "description": "The data for a rule update response.",
+ "description": "Data related to the workflow being updated.",
"properties": {
"attributes": {
- "description": "Details of a rule.",
+ "description": "The definition of `WorkflowDataUpdateAttributes` object.",
"properties": {
- "category": {
- "deprecated": true,
- "description": "The scorecard name to which this rule must belong.",
- "type": "string"
- },
- "created_at": {
- "description": "Creation time of the rule outcome.",
+ "createdAt": {
+ "description": "When the workflow was created.",
"format": "date-time",
+ "readOnly": true,
"type": "string"
},
- "custom": {
- "description": "Defines if the rule is a custom rule.",
- "type": "boolean"
- },
"description": {
- "description": "Explanation of the rule.",
+ "description": "Description of the workflow.",
"type": "string"
},
- "enabled": {
- "description": "If enabled, the rule is calculated as part of the score.",
- "example": true,
+ "name": {
+ "description": "Name of the workflow.",
+ "type": "string"
+ },
+ "published": {
+ "description": "Set the workflow to published or unpublished. Workflows in an unpublished state will only be executable via manual runs. Automatic triggers such as Schedule will not execute the workflow until it is published.",
"type": "boolean"
},
- "modified_at": {
- "description": "Time of the last rule outcome modification.",
- "format": "date-time",
- "type": "string"
+ "spec": {
+ "description": "The spec defines what the workflow does.",
+ "properties": {
+ "annotations": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "items": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "properties": {
+ "display": {
+ "description": "The definition of `AnnotationDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `AnnotationDisplayBounds` object.",
+ "properties": {
+ "height": {
+ "description": "The `bounds` `height`.",
+ "format": "double",
+ "type": "number"
+ },
+ "width": {
+ "description": "The `bounds` `width`.",
+ "format": "double",
+ "type": "number"
+ },
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The `Annotation` `id`.",
+ "example": "",
+ "type": "string"
+ },
+ "markdownTextAnnotation": {
+ "description": "The definition of `AnnotationMarkdownTextAnnotation` object.",
+ "properties": {
+ "text": {
+ "description": "The `markdownTextAnnotation` `text`.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "required": [
+ "id",
+ "display",
+ "markdownTextAnnotation"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "connectionEnvs": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "items": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "properties": {
+ "connectionGroups": {
+ "description": "The `ConnectionEnv` `connectionGroups`.",
+ "items": {
+ "description": "The definition of `ConnectionGroup` object.",
+ "properties": {
+ "connectionGroupId": {
+ "description": "The `ConnectionGroup` `connectionGroupId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `ConnectionGroup` `label`.",
+ "example": "",
+ "type": "string"
+ },
+ "tags": {
+ "description": "The `ConnectionGroup` `tags`.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "connectionGroupId",
+ "label",
+ "tags"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "connections": {
+ "description": "The `ConnectionEnv` `connections`.",
+ "items": {
+ "description": "The definition of `Connection` object.",
+ "properties": {
+ "connectionId": {
+ "description": "The `Connection` `connectionId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `Connection` `label`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "connectionId",
+ "label"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "env": {
+ "description": "The definition of `ConnectionEnvEnv` object.",
+ "enum": [
+ "default"
+ ],
+ "example": "default",
+ "type": "string",
+ "x-enum-varnames": [
+ "DEFAULT"
+ ]
+ }
+ },
+ "required": [
+ "env"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "handle": {
+ "description": "Unique identifier used to trigger workflows automatically in Datadog.",
+ "type": "string"
+ },
+ "inputSchema": {
+ "description": "A list of input parameters for the workflow. These can be used as dynamic runtime values in your workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `InputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `InputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `InputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `InputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `InputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `InputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `InputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "outputSchema": {
+ "description": "A list of output parameters for the workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `OutputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `OutputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `OutputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `OutputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `OutputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `OutputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `OutputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ },
+ "value": {
+ "description": "The `OutputSchemaParameters` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "steps": {
+ "description": "A `Step` is a sub-component of a workflow. Each `Step` performs an action.",
+ "items": {
+ "description": "A Step is a sub-component of a workflow. Each Step performs an action.",
+ "properties": {
+ "actionId": {
+ "description": "The unique identifier of an action.",
+ "example": "",
+ "type": "string"
+ },
+ "completionGate": {
+ "description": "Used to create conditions before running subsequent actions.",
+ "properties": {
+ "completionCondition": {
+ "description": "The definition of `CompletionCondition` object.",
+ "properties": {
+ "operand1": {
+ "description": "The `CompletionCondition` `operand1`."
+ },
+ "operand2": {
+ "description": "The `CompletionCondition` `operand2`."
+ },
+ "operator": {
+ "description": "The definition of `CompletionConditionOperator` object.",
+ "enum": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ],
+ "example": "OPERATOR_EQUAL",
+ "type": "string",
+ "x-enum-varnames": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ]
+ }
+ },
+ "required": [
+ "operand1",
+ "operator"
+ ],
+ "type": "object"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "completionCondition",
+ "retryStrategy"
+ ],
+ "type": "object"
+ },
+ "connectionLabel": {
+ "description": "The unique identifier of a connection defined in the spec.",
+ "type": "string"
+ },
+ "display": {
+ "description": "The definition of `StepDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `StepDisplayBounds` object.",
+ "properties": {
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "errorHandlers": {
+ "description": "The `Step` `errorHandlers`.",
+ "items": {
+ "description": "Used to handle errors in an action.",
+ "properties": {
+ "fallbackStepName": {
+ "description": "The `ErrorHandler` `fallbackStepName`.",
+ "example": "",
+ "type": "string"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "retryStrategy",
+ "fallbackStepName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the step.",
+ "example": "",
+ "type": "string"
+ },
+ "outboundEdges": {
+ "description": "A list of subsequent actions to run.",
+ "items": {
+ "description": "The definition of `OutboundEdge` object.",
+ "properties": {
+ "branchName": {
+ "description": "The `OutboundEdge` `branchName`.",
+ "example": "",
+ "type": "string"
+ },
+ "nextStepName": {
+ "description": "The `OutboundEdge` `nextStepName`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "nextStepName",
+ "branchName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "parameters": {
+ "description": "A list of inputs for an action.",
+ "items": {
+ "description": "The definition of `Parameter` object.",
+ "properties": {
+ "name": {
+ "description": "The `Parameter` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "value": {
+ "description": "The `Parameter` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "value"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "readinessGate": {
+ "description": "Used to merge multiple branches into a single branch.",
+ "properties": {
+ "thresholdType": {
+ "description": "The definition of `ReadinessGateThresholdType` object.",
+ "enum": [
+ "ANY",
+ "ALL"
+ ],
+ "example": "ANY",
+ "type": "string",
+ "x-enum-varnames": [
+ "ANY",
+ "ALL"
+ ]
+ }
+ },
+ "required": [
+ "thresholdType"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "name",
+ "actionId"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "triggers": {
+ "description": "The list of triggers that activate this workflow. At least one trigger is required, and each trigger type may appear at most once.",
+ "items": {
+ "description": "One of the triggers that can start the execution of a workflow.",
+ "oneOf": [
+ {
+ "description": "Schema for an API-based trigger.",
+ "properties": {
+ "apiTrigger": {
+ "description": "Trigger a workflow VIA an API. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "apiTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an App-based trigger.",
+ "properties": {
+ "appTrigger": {
+ "description": "Trigger a workflow VIA an App.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "appTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Case-based trigger.",
+ "properties": {
+ "caseTrigger": {
+ "description": "Trigger a workflow VIA a Case. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "caseTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Change Event-based trigger.",
+ "properties": {
+ "changeEventTrigger": {
+ "description": "Trigger a workflow VIA a Change Event.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "changeEventTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Dashboard-based trigger.",
+ "properties": {
+ "dashboardTrigger": {
+ "description": "Trigger a workflow VIA a Dashboard.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "dashboardTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a GitHub webhook-based trigger.",
+ "properties": {
+ "githubWebhookTrigger": {
+ "description": "Trigger a workflow VIA GitHub webhook. To trigger a workflow from GitHub, you must set a `webhookSecret`. In your GitHub Webhook Settings, set the Payload URL to \"base_url\"/api/v2/workflows/\"workflow_id\"/webhook?orgId=\"org_id\", select application/json for the content type, and be highly recommend enabling SSL verification for security. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "githubWebhookTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an Incident-based trigger.",
+ "properties": {
+ "incidentTrigger": {
+ "description": "Trigger a workflow VIA an Incident. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "incidentTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Monitor-based trigger.",
+ "properties": {
+ "monitorTrigger": {
+ "description": "Trigger a workflow VIA a Monitor. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "monitorTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Schedule-based trigger.",
+ "properties": {
+ "scheduleTrigger": {
+ "description": "Trigger a workflow VIA a Schedule. The workflow must be published.",
+ "properties": {
+ "rruleExpression": {
+ "description": "Recurrence rule expression for scheduling.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "rruleExpression"
+ ],
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "scheduleTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Security-based trigger.",
+ "properties": {
+ "securityTrigger": {
+ "description": "Trigger a workflow VIA a Security Signal or Finding. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "securityTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Slack-based trigger.",
+ "properties": {
+ "slackTrigger": {
+ "description": "Trigger a workflow VIA Slack. The workflow must be published.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "slackTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Workflow-based trigger.",
+ "properties": {
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "workflowTrigger": {
+ "description": "Trigger a workflow VIA the Datadog UI. Only required if no other trigger exists.",
+ "type": "object"
+ }
+ },
+ "required": [
+ "workflowTrigger"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
},
- "name": {
- "description": "Name of the rule.",
- "example": "Team Defined",
- "type": "string"
+ "tags": {
+ "description": "Tags of the workflow.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
},
- "owner": {
- "description": "Owner of the rule.",
+ "updatedAt": {
+ "description": "When the workflow was last updated.",
+ "format": "date-time",
+ "readOnly": true,
"type": "string"
},
- "scorecard_name": {
- "description": "The scorecard name to which this rule must belong.",
- "example": "Deployments automated via Deployment Trains",
- "type": "string"
+ "webhookSecret": {
+ "description": "If a Webhook trigger is defined on this workflow, a webhookSecret is required and should be provided here.",
+ "type": "string",
+ "writeOnly": true
}
},
"type": "object"
},
"id": {
- "description": "The unique ID for a scorecard rule.",
- "example": "q8MQxk8TCqrHnWkx",
+ "description": "The workflow identifier",
"type": "string"
},
"relationships": {
- "description": "Scorecard create rule response relationship.",
+ "description": "The definition of `WorkflowDataRelationships` object.",
"properties": {
- "scorecard": {
- "description": "Relationship data for a rule.",
+ "creator": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
"properties": {
"data": {
- "description": "Rule relationship data.",
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
"properties": {
"id": {
- "description": "The unique ID for a scorecard.",
- "example": "q8MQxk8TCqrHnWkp",
+ "description": "The user identifier",
+ "example": "",
"type": "string"
},
"type": {
- "default": "scorecard",
- "description": "The JSON:API type for scorecard.",
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
"enum": [
- "scorecard"
+ "users"
],
- "example": "scorecard",
+ "example": "users",
"type": "string",
"x-enum-varnames": [
- "SCORECARD"
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "id"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "owner": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
+ "properties": {
+ "data": {
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
+ "properties": {
+ "id": {
+ "description": "The user identifier",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
]
}
},
+ "required": [
+ "type",
+ "id"
+ ],
"type": "object"
}
},
"type": "object"
}
},
+ "readOnly": true,
"type": "object"
},
"type": {
- "default": "rule",
- "description": "The JSON:API type for scorecard rules.",
+ "description": "The definition of `WorkflowDataType` object.",
"enum": [
- "rule"
+ "workflows"
],
- "example": "rule",
+ "example": "workflows",
"type": "string",
"x-enum-varnames": [
- "RULE"
+ "WORKFLOWS"
]
}
},
- "type": "object"
- }
- },
- "type": "object"
- },
- "UpdateRuleResponseData": {
- "description": "The data for a rule update response.",
- "properties": {
- "attributes": {
- "description": "Details of a rule.",
- "properties": {
- "category": {
- "deprecated": true,
- "description": "The scorecard name to which this rule must belong.",
- "type": "string"
- },
- "created_at": {
- "description": "Creation time of the rule outcome.",
- "format": "date-time",
- "type": "string"
- },
- "custom": {
- "description": "Defines if the rule is a custom rule.",
- "type": "boolean"
- },
- "description": {
- "description": "Explanation of the rule.",
- "type": "string"
- },
- "enabled": {
- "description": "If enabled, the rule is calculated as part of the score.",
- "example": true,
- "type": "boolean"
- },
- "modified_at": {
- "description": "Time of the last rule outcome modification.",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "Name of the rule.",
- "example": "Team Defined",
- "type": "string"
- },
- "owner": {
- "description": "Owner of the rule.",
- "type": "string"
- },
- "scorecard_name": {
- "description": "The scorecard name to which this rule must belong.",
- "example": "Deployments automated via Deployment Trains",
- "type": "string"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "The unique ID for a scorecard rule.",
- "example": "q8MQxk8TCqrHnWkx",
- "type": "string"
- },
- "relationships": {
- "description": "Scorecard create rule response relationship.",
- "properties": {
- "scorecard": {
- "description": "Relationship data for a rule.",
- "properties": {
- "data": {
- "description": "Rule relationship data.",
- "properties": {
- "id": {
- "description": "The unique ID for a scorecard.",
- "example": "q8MQxk8TCqrHnWkp",
- "type": "string"
- },
- "type": {
- "default": "scorecard",
- "description": "The JSON:API type for scorecard.",
- "enum": [
- "scorecard"
- ],
- "example": "scorecard",
- "type": "string",
- "x-enum-varnames": [
- "SCORECARD"
- ]
- }
- },
- "type": "object"
- }
- },
- "type": "object"
- }
- },
- "type": "object"
- },
- "type": {
- "default": "rule",
- "description": "The JSON:API type for scorecard rules.",
- "enum": [
- "rule"
+ "required": [
+ "type",
+ "attributes"
],
- "example": "rule",
- "type": "string",
- "x-enum-varnames": [
- "RULE"
- ]
+ "type": "object"
}
},
"type": "object"
@@ -213068,1118 +227534,5439 @@
}
},
"required": [
- "file_name",
- "line_start",
- "line_end",
- "column_start",
- "column_end"
+ "file_name",
+ "line_start",
+ "line_end",
+ "column_start",
+ "column_end"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "block"
+ ],
+ "type": "object"
+ },
+ "description": {
+ "description": "Vulnerability description.",
+ "example": "LDAP Injection is a security vulnerability that occurs when untrusted user input is improperly handled and directly incorporated into LDAP queries without appropriate sanitization or validation. This vulnerability enables attackers to manipulate LDAP queries and potentially gain unauthorized access, modify data, or extract sensitive information from the directory server. By exploiting the LDAP injection vulnerability, attackers can execute malicious commands, bypass authentication mechanisms, and perform unauthorized actions within the directory service.",
+ "type": "string"
+ },
+ "ecosystem": {
+ "description": "The related vulnerability asset ecosystem.",
+ "enum": [
+ "PyPI",
+ "Maven",
+ "NuGet",
+ "Npm",
+ "RubyGems",
+ "Go",
+ "Packagist",
+ "Ddeb",
+ "Rpm",
+ "Apk",
+ "Windows"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "PYPI",
+ "MAVEN",
+ "NUGET",
+ "NPM",
+ "RUBY_GEMS",
+ "GO",
+ "PACKAGIST",
+ "D_DEB",
+ "RPM",
+ "APK",
+ "WINDOWS"
+ ]
+ },
+ "exposure_time": {
+ "description": "Vulnerability exposure time in seconds.",
+ "example": 5618604,
+ "format": "int64",
+ "type": "integer"
+ },
+ "first_detection": {
+ "description": "First detection of the vulnerability in [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339) format",
+ "example": "2024-09-19T21:23:08.000Z",
+ "type": "string"
+ },
+ "fix_available": {
+ "description": "Whether the vulnerability has a remediation or not.",
+ "example": false,
+ "type": "boolean"
+ },
+ "language": {
+ "description": "Vulnerability language.",
+ "example": "ubuntu",
+ "type": "string"
+ },
+ "last_detection": {
+ "description": "Last detection of the vulnerability in [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339) format",
+ "example": "2024-09-01T21:23:08.000Z",
+ "type": "string"
+ },
+ "library": {
+ "description": "Vulnerability library.",
+ "properties": {
+ "name": {
+ "description": "Vulnerability library name.",
+ "example": "linux-aws-5.15",
+ "type": "string"
+ },
+ "version": {
+ "description": "Vulnerability library version.",
+ "example": "5.15.0",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "type": "object"
+ },
+ "remediations": {
+ "description": "List of remediations.",
+ "items": {
+ "description": "Vulnerability remediation.",
+ "properties": {
+ "auto_solvable": {
+ "description": "Whether the vulnerability can be resolved when recompiling the package or not.",
+ "example": false,
+ "type": "boolean"
+ },
+ "avoided_advisories": {
+ "description": "Avoided advisories.",
+ "items": {
+ "description": "Advisory.",
+ "properties": {
+ "base_severity": {
+ "description": "Advisory base severity.",
+ "example": "Critical",
+ "type": "string"
+ },
+ "id": {
+ "description": "Advisory id.",
+ "example": "GHSA-4wrc-f8pq-fpqp",
+ "type": "string"
+ },
+ "severity": {
+ "description": "Advisory Datadog severity.",
+ "example": "Medium",
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "base_severity"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "fixed_advisories": {
+ "description": "Remediation fixed advisories.",
+ "items": {
+ "description": "Advisory.",
+ "properties": {
+ "base_severity": {
+ "description": "Advisory base severity.",
+ "example": "Critical",
+ "type": "string"
+ },
+ "id": {
+ "description": "Advisory id.",
+ "example": "GHSA-4wrc-f8pq-fpqp",
+ "type": "string"
+ },
+ "severity": {
+ "description": "Advisory Datadog severity.",
+ "example": "Medium",
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "base_severity"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "library_name": {
+ "description": "Library name remediating the vulnerability.",
+ "example": "stdlib",
+ "type": "string"
+ },
+ "library_version": {
+ "description": "Library version remediating the vulnerability.",
+ "example": "Upgrade to a version >= 1.20.0",
+ "type": "string"
+ },
+ "new_advisories": {
+ "description": "New advisories.",
+ "items": {
+ "description": "Advisory.",
+ "properties": {
+ "base_severity": {
+ "description": "Advisory base severity.",
+ "example": "Critical",
+ "type": "string"
+ },
+ "id": {
+ "description": "Advisory id.",
+ "example": "GHSA-4wrc-f8pq-fpqp",
+ "type": "string"
+ },
+ "severity": {
+ "description": "Advisory Datadog severity.",
+ "example": "Medium",
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "base_severity"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "remaining_advisories": {
+ "description": "Remaining advisories.",
+ "items": {
+ "description": "Advisory.",
+ "properties": {
+ "base_severity": {
+ "description": "Advisory base severity.",
+ "example": "Critical",
+ "type": "string"
+ },
+ "id": {
+ "description": "Advisory id.",
+ "example": "GHSA-4wrc-f8pq-fpqp",
+ "type": "string"
+ },
+ "severity": {
+ "description": "Advisory Datadog severity.",
+ "example": "Medium",
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "base_severity"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "type": {
+ "description": "Remediation type.",
+ "example": "text",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "library_name",
+ "library_version",
+ "auto_solvable",
+ "fixed_advisories",
+ "remaining_advisories",
+ "new_advisories",
+ "avoided_advisories"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "repo_digests": {
+ "description": "Vulnerability `repo_digest` list (when the vulnerability is related to `Image` asset).",
+ "items": {
+ "example": "sha256:0ae7da091191787229d321e3638e39c319a97d6e20f927d465b519d699215bf7",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "risks": {
+ "description": "Vulnerability risks.",
+ "properties": {
+ "epss": {
+ "description": "Vulnerability EPSS severity.",
+ "properties": {
+ "score": {
+ "description": "Vulnerability EPSS severity score.",
+ "example": 0.2,
+ "format": "double",
+ "type": "number"
+ },
+ "severity": {
+ "description": "The vulnerability severity.",
+ "enum": [
+ "Unknown",
+ "None",
+ "Low",
+ "Medium",
+ "High",
+ "Critical"
+ ],
+ "example": "Medium",
+ "type": "string",
+ "x-enum-varnames": [
+ "UNKNOWN",
+ "NONE",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ }
+ },
+ "required": [
+ "score",
+ "severity"
+ ],
+ "type": "object"
+ },
+ "exploit_available": {
+ "description": "Vulnerability public exploit availability.",
+ "example": false,
+ "type": "boolean"
+ },
+ "exploit_sources": {
+ "description": "Vulnerability exploit sources.",
+ "example": [
+ "NIST"
+ ],
+ "items": {
+ "example": "NIST",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "exploitation_probability": {
+ "description": "Vulnerability exploitation probability.",
+ "example": false,
+ "type": "boolean"
+ },
+ "poc_exploit_available": {
+ "description": "Vulnerability POC exploit availability.",
+ "example": false,
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "exploitation_probability",
+ "poc_exploit_available",
+ "exploit_available",
+ "exploit_sources"
+ ],
+ "type": "object"
+ },
+ "status": {
+ "description": "The vulnerability status.",
+ "enum": [
+ "Open",
+ "Muted",
+ "Remediated",
+ "InProgress",
+ "AutoClosed"
+ ],
+ "example": "Open",
+ "type": "string",
+ "x-enum-varnames": [
+ "OPEN",
+ "MUTED",
+ "REMEDIATED",
+ "INPROGRESS",
+ "AUTOCLOSED"
+ ]
+ },
+ "title": {
+ "description": "Vulnerability title.",
+ "example": "LDAP Injection",
+ "type": "string"
+ },
+ "tool": {
+ "description": "The vulnerability tool.",
+ "enum": [
+ "IAST",
+ "SCA",
+ "Infra"
+ ],
+ "example": "SCA",
+ "type": "string",
+ "x-enum-varnames": [
+ "IAST",
+ "SCA",
+ "INFRA"
+ ]
+ },
+ "type": {
+ "description": "The vulnerability type.",
+ "enum": [
+ "AdminConsoleActive",
+ "CodeInjection",
+ "CommandInjection",
+ "ComponentWithKnownVulnerability",
+ "DangerousWorkflows",
+ "DefaultAppDeployed",
+ "DefaultHtmlEscapeInvalid",
+ "DirectoryListingLeak",
+ "EmailHtmlInjection",
+ "EndOfLife",
+ "HardcodedPassword",
+ "HardcodedSecret",
+ "HeaderInjection",
+ "HstsHeaderMissing",
+ "InsecureAuthProtocol",
+ "InsecureCookie",
+ "InsecureJspLayout",
+ "LdapInjection",
+ "MaliciousPackage",
+ "MandatoryRemediation",
+ "NoHttpOnlyCookie",
+ "NoSameSiteCookie",
+ "NoSqlMongoDbInjection",
+ "PathTraversal",
+ "ReflectionInjection",
+ "RiskyLicense",
+ "SessionRewriting",
+ "SessionTimeout",
+ "SqlInjection",
+ "Ssrf",
+ "StackTraceLeak",
+ "TrustBoundaryViolation",
+ "Unmaintained",
+ "UntrustedDeserialization",
+ "UnvalidatedRedirect",
+ "VerbTampering",
+ "WeakCipher",
+ "WeakHash",
+ "WeakRandomness",
+ "XContentTypeHeaderMissing",
+ "XPathInjection",
+ "Xss"
+ ],
+ "example": "WeakCipher",
+ "type": "string",
+ "x-enum-varnames": [
+ "ADMIN_CONSOLE_ACTIVE",
+ "CODE_INJECTION",
+ "COMMAND_INJECTION",
+ "COMPONENT_WITH_KNOWN_VULNERABILITY",
+ "DANGEROUS_WORKFLOWS",
+ "DEFAULT_APP_DEPLOYED",
+ "DEFAULT_HTML_ESCAPE_INVALID",
+ "DIRECTORY_LISTING_LEAK",
+ "EMAIL_HTML_INJECTION",
+ "END_OF_LIFE",
+ "HARDCODED_PASSWORD",
+ "HARDCODED_SECRET",
+ "HEADER_INJECTION",
+ "HSTS_HEADER_MISSING",
+ "INSECURE_AUTH_PROTOCOL",
+ "INSECURE_COOKIE",
+ "INSECURE_JSP_LAYOUT",
+ "LDAP_INJECTION",
+ "MALICIOUS_PACKAGE",
+ "MANDATORY_REMEDIATION",
+ "NO_HTTP_ONLY_COOKIE",
+ "NO_SAME_SITE_COOKIE",
+ "NO_SQL_MONGO_DB_INJECTION",
+ "PATH_TRAVERSAL",
+ "REFLECTION_INJECTION",
+ "RISKY_LICENSE",
+ "SESSION_REWRITING",
+ "SESSION_TIMEOUT",
+ "SQL_INJECTION",
+ "SSRF",
+ "STACK_TRACE_LEAK",
+ "TRUST_BOUNDARY_VIOLATION",
+ "UNMAINTAINED",
+ "UNTRUSTED_DESERIALIZATION",
+ "UNVALIDATED_REDIRECT",
+ "VERB_TAMPERING",
+ "WEAK_CIPHER",
+ "WEAK_HASH",
+ "WEAK_RANDOMNESS",
+ "X_CONTENT_TYPE_HEADER_MISSING",
+ "X_PATH_INJECTION",
+ "XSS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "cvss",
+ "status",
+ "tool",
+ "title",
+ "description",
+ "cve_list",
+ "risks",
+ "language",
+ "first_detection",
+ "last_detection",
+ "exposure_time",
+ "remediations",
+ "fix_available"
+ ],
+ "type": "object"
+ },
+ "VulnerabilityCvss": {
+ "description": "Vulnerability severities.",
+ "properties": {
+ "base": {
+ "description": "Vulnerability severity.",
+ "properties": {
+ "score": {
+ "description": "Vulnerability severity score.",
+ "example": 4.5,
+ "format": "double",
+ "type": "number"
+ },
+ "severity": {
+ "description": "The vulnerability severity.",
+ "enum": [
+ "Unknown",
+ "None",
+ "Low",
+ "Medium",
+ "High",
+ "Critical"
+ ],
+ "example": "Medium",
+ "type": "string",
+ "x-enum-varnames": [
+ "UNKNOWN",
+ "NONE",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ },
+ "vector": {
+ "description": "Vulnerability CVSS vector.",
+ "example": "CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H",
+ "type": "string"
+ }
+ },
+ "required": [
+ "score",
+ "severity",
+ "vector"
+ ],
+ "type": "object"
+ },
+ "datadog": {
+ "description": "Vulnerability severity.",
+ "properties": {
+ "score": {
+ "description": "Vulnerability severity score.",
+ "example": 4.5,
+ "format": "double",
+ "type": "number"
+ },
+ "severity": {
+ "description": "The vulnerability severity.",
+ "enum": [
+ "Unknown",
+ "None",
+ "Low",
+ "Medium",
+ "High",
+ "Critical"
+ ],
+ "example": "Medium",
+ "type": "string",
+ "x-enum-varnames": [
+ "UNKNOWN",
+ "NONE",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ },
+ "vector": {
+ "description": "Vulnerability CVSS vector.",
+ "example": "CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H",
+ "type": "string"
+ }
+ },
+ "required": [
+ "score",
+ "severity",
+ "vector"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "base",
+ "datadog"
+ ],
+ "type": "object"
+ },
+ "VulnerabilityDependencyLocations": {
+ "description": "Static library vulnerability location.",
+ "properties": {
+ "block": {
+ "description": "Static library vulnerability location.",
+ "properties": {
+ "column_end": {
+ "description": "Location column end.",
+ "example": 140,
+ "format": "int64",
+ "type": "integer"
+ },
+ "column_start": {
+ "description": "Location column start.",
+ "example": 5,
+ "format": "int64",
+ "type": "integer"
+ },
+ "file_name": {
+ "description": "Location file name.",
+ "example": "src/go.mod",
+ "type": "string"
+ },
+ "line_end": {
+ "description": "Location line end.",
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ },
+ "line_start": {
+ "description": "Location line start.",
+ "example": 1,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ "required": [
+ "file_name",
+ "line_start",
+ "line_end",
+ "column_start",
+ "column_end"
+ ],
+ "type": "object"
+ },
+ "name": {
+ "description": "Static library vulnerability location.",
+ "properties": {
+ "column_end": {
+ "description": "Location column end.",
+ "example": 140,
+ "format": "int64",
+ "type": "integer"
+ },
+ "column_start": {
+ "description": "Location column start.",
+ "example": 5,
+ "format": "int64",
+ "type": "integer"
+ },
+ "file_name": {
+ "description": "Location file name.",
+ "example": "src/go.mod",
+ "type": "string"
+ },
+ "line_end": {
+ "description": "Location line end.",
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ },
+ "line_start": {
+ "description": "Location line start.",
+ "example": 1,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ "required": [
+ "file_name",
+ "line_start",
+ "line_end",
+ "column_start",
+ "column_end"
+ ],
+ "type": "object"
+ },
+ "version": {
+ "description": "Static library vulnerability location.",
+ "properties": {
+ "column_end": {
+ "description": "Location column end.",
+ "example": 140,
+ "format": "int64",
+ "type": "integer"
+ },
+ "column_start": {
+ "description": "Location column start.",
+ "example": 5,
+ "format": "int64",
+ "type": "integer"
+ },
+ "file_name": {
+ "description": "Location file name.",
+ "example": "src/go.mod",
+ "type": "string"
+ },
+ "line_end": {
+ "description": "Location line end.",
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ },
+ "line_start": {
+ "description": "Location line start.",
+ "example": 1,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ "required": [
+ "file_name",
+ "line_start",
+ "line_end",
+ "column_start",
+ "column_end"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "block"
+ ],
+ "type": "object"
+ },
+ "VulnerabilityEcosystem": {
+ "description": "The related vulnerability asset ecosystem.",
+ "enum": [
+ "PyPI",
+ "Maven",
+ "NuGet",
+ "Npm",
+ "RubyGems",
+ "Go",
+ "Packagist",
+ "Ddeb",
+ "Rpm",
+ "Apk",
+ "Windows"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "PYPI",
+ "MAVEN",
+ "NUGET",
+ "NPM",
+ "RUBY_GEMS",
+ "GO",
+ "PACKAGIST",
+ "D_DEB",
+ "RPM",
+ "APK",
+ "WINDOWS"
+ ]
+ },
+ "VulnerabilityRelationships": {
+ "description": "Related entities object.",
+ "properties": {
+ "affects": {
+ "description": "Relationship type.",
+ "properties": {
+ "data": {
+ "description": "Asset affected by this vulnerability.",
+ "properties": {
+ "id": {
+ "description": "The unique ID for this related asset.",
+ "example": "Repository|github.com/DataDog/datadog-agent.git",
+ "type": "string"
+ },
+ "type": {
+ "description": "The JSON:API type.",
+ "enum": [
+ "assets"
+ ],
+ "example": "assets",
+ "type": "string",
+ "x-enum-varnames": [
+ "ASSETS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
],
"type": "object"
}
},
"required": [
- "block"
+ "data"
],
"type": "object"
- },
- "description": {
- "description": "Vulnerability description.",
- "example": "LDAP Injection is a security vulnerability that occurs when untrusted user input is improperly handled and directly incorporated into LDAP queries without appropriate sanitization or validation. This vulnerability enables attackers to manipulate LDAP queries and potentially gain unauthorized access, modify data, or extract sensitive information from the directory server. By exploiting the LDAP injection vulnerability, attackers can execute malicious commands, bypass authentication mechanisms, and perform unauthorized actions within the directory service.",
+ }
+ },
+ "required": [
+ "affects"
+ ],
+ "type": "object"
+ },
+ "VulnerabilityRelationshipsAffects": {
+ "description": "Relationship type.",
+ "properties": {
+ "data": {
+ "description": "Asset affected by this vulnerability.",
+ "properties": {
+ "id": {
+ "description": "The unique ID for this related asset.",
+ "example": "Repository|github.com/DataDog/datadog-agent.git",
+ "type": "string"
+ },
+ "type": {
+ "description": "The JSON:API type.",
+ "enum": [
+ "assets"
+ ],
+ "example": "assets",
+ "type": "string",
+ "x-enum-varnames": [
+ "ASSETS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "VulnerabilityRelationshipsAffectsData": {
+ "description": "Asset affected by this vulnerability.",
+ "properties": {
+ "id": {
+ "description": "The unique ID for this related asset.",
+ "example": "Repository|github.com/DataDog/datadog-agent.git",
"type": "string"
},
- "ecosystem": {
- "description": "The related vulnerability asset ecosystem.",
+ "type": {
+ "description": "The JSON:API type.",
"enum": [
- "PyPI",
- "Maven",
- "NuGet",
- "Npm",
- "RubyGems",
- "Go",
- "Packagist",
- "Ddeb",
- "Rpm",
- "Apk",
- "Windows"
+ "assets"
],
+ "example": "assets",
"type": "string",
"x-enum-varnames": [
- "PYPI",
- "MAVEN",
- "NUGET",
- "NPM",
- "RUBY_GEMS",
- "GO",
- "PACKAGIST",
- "D_DEB",
- "RPM",
- "APK",
- "WINDOWS"
+ "ASSETS"
]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ },
+ "VulnerabilityRisks": {
+ "description": "Vulnerability risks.",
+ "properties": {
+ "epss": {
+ "description": "Vulnerability EPSS severity.",
+ "properties": {
+ "score": {
+ "description": "Vulnerability EPSS severity score.",
+ "example": 0.2,
+ "format": "double",
+ "type": "number"
+ },
+ "severity": {
+ "description": "The vulnerability severity.",
+ "enum": [
+ "Unknown",
+ "None",
+ "Low",
+ "Medium",
+ "High",
+ "Critical"
+ ],
+ "example": "Medium",
+ "type": "string",
+ "x-enum-varnames": [
+ "UNKNOWN",
+ "NONE",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ }
+ },
+ "required": [
+ "score",
+ "severity"
+ ],
+ "type": "object"
},
- "exposure_time": {
- "description": "Vulnerability exposure time in seconds.",
- "example": 5618604,
- "format": "int64",
- "type": "integer"
- },
- "first_detection": {
- "description": "First detection of the vulnerability in [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339) format",
- "example": "2024-09-19T21:23:08.000Z",
- "type": "string"
- },
- "fix_available": {
- "description": "Whether the vulnerability has a remediation or not.",
+ "exploit_available": {
+ "description": "Vulnerability public exploit availability.",
"example": false,
"type": "boolean"
},
- "language": {
- "description": "Vulnerability language.",
- "example": "ubuntu",
- "type": "string"
+ "exploit_sources": {
+ "description": "Vulnerability exploit sources.",
+ "example": [
+ "NIST"
+ ],
+ "items": {
+ "example": "NIST",
+ "type": "string"
+ },
+ "type": "array"
},
- "last_detection": {
- "description": "Last detection of the vulnerability in [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339) format",
- "example": "2024-09-01T21:23:08.000Z",
- "type": "string"
+ "exploitation_probability": {
+ "description": "Vulnerability exploitation probability.",
+ "example": false,
+ "type": "boolean"
},
- "library": {
- "description": "Vulnerability library.",
+ "poc_exploit_available": {
+ "description": "Vulnerability POC exploit availability.",
+ "example": false,
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "exploitation_probability",
+ "poc_exploit_available",
+ "exploit_available",
+ "exploit_sources"
+ ],
+ "type": "object"
+ },
+ "VulnerabilitySeverity": {
+ "description": "The vulnerability severity.",
+ "enum": [
+ "Unknown",
+ "None",
+ "Low",
+ "Medium",
+ "High",
+ "Critical"
+ ],
+ "example": "Medium",
+ "type": "string",
+ "x-enum-varnames": [
+ "UNKNOWN",
+ "NONE",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ },
+ "VulnerabilityStatus": {
+ "description": "The vulnerability status.",
+ "enum": [
+ "Open",
+ "Muted",
+ "Remediated",
+ "InProgress",
+ "AutoClosed"
+ ],
+ "example": "Open",
+ "type": "string",
+ "x-enum-varnames": [
+ "OPEN",
+ "MUTED",
+ "REMEDIATED",
+ "INPROGRESS",
+ "AUTOCLOSED"
+ ]
+ },
+ "VulnerabilityTool": {
+ "description": "The vulnerability tool.",
+ "enum": [
+ "IAST",
+ "SCA",
+ "Infra"
+ ],
+ "example": "SCA",
+ "type": "string",
+ "x-enum-varnames": [
+ "IAST",
+ "SCA",
+ "INFRA"
+ ]
+ },
+ "VulnerabilityType": {
+ "description": "The vulnerability type.",
+ "enum": [
+ "AdminConsoleActive",
+ "CodeInjection",
+ "CommandInjection",
+ "ComponentWithKnownVulnerability",
+ "DangerousWorkflows",
+ "DefaultAppDeployed",
+ "DefaultHtmlEscapeInvalid",
+ "DirectoryListingLeak",
+ "EmailHtmlInjection",
+ "EndOfLife",
+ "HardcodedPassword",
+ "HardcodedSecret",
+ "HeaderInjection",
+ "HstsHeaderMissing",
+ "InsecureAuthProtocol",
+ "InsecureCookie",
+ "InsecureJspLayout",
+ "LdapInjection",
+ "MaliciousPackage",
+ "MandatoryRemediation",
+ "NoHttpOnlyCookie",
+ "NoSameSiteCookie",
+ "NoSqlMongoDbInjection",
+ "PathTraversal",
+ "ReflectionInjection",
+ "RiskyLicense",
+ "SessionRewriting",
+ "SessionTimeout",
+ "SqlInjection",
+ "Ssrf",
+ "StackTraceLeak",
+ "TrustBoundaryViolation",
+ "Unmaintained",
+ "UntrustedDeserialization",
+ "UnvalidatedRedirect",
+ "VerbTampering",
+ "WeakCipher",
+ "WeakHash",
+ "WeakRandomness",
+ "XContentTypeHeaderMissing",
+ "XPathInjection",
+ "Xss"
+ ],
+ "example": "WeakCipher",
+ "type": "string",
+ "x-enum-varnames": [
+ "ADMIN_CONSOLE_ACTIVE",
+ "CODE_INJECTION",
+ "COMMAND_INJECTION",
+ "COMPONENT_WITH_KNOWN_VULNERABILITY",
+ "DANGEROUS_WORKFLOWS",
+ "DEFAULT_APP_DEPLOYED",
+ "DEFAULT_HTML_ESCAPE_INVALID",
+ "DIRECTORY_LISTING_LEAK",
+ "EMAIL_HTML_INJECTION",
+ "END_OF_LIFE",
+ "HARDCODED_PASSWORD",
+ "HARDCODED_SECRET",
+ "HEADER_INJECTION",
+ "HSTS_HEADER_MISSING",
+ "INSECURE_AUTH_PROTOCOL",
+ "INSECURE_COOKIE",
+ "INSECURE_JSP_LAYOUT",
+ "LDAP_INJECTION",
+ "MALICIOUS_PACKAGE",
+ "MANDATORY_REMEDIATION",
+ "NO_HTTP_ONLY_COOKIE",
+ "NO_SAME_SITE_COOKIE",
+ "NO_SQL_MONGO_DB_INJECTION",
+ "PATH_TRAVERSAL",
+ "REFLECTION_INJECTION",
+ "RISKY_LICENSE",
+ "SESSION_REWRITING",
+ "SESSION_TIMEOUT",
+ "SQL_INJECTION",
+ "SSRF",
+ "STACK_TRACE_LEAK",
+ "TRUST_BOUNDARY_VIOLATION",
+ "UNMAINTAINED",
+ "UNTRUSTED_DESERIALIZATION",
+ "UNVALIDATED_REDIRECT",
+ "VERB_TAMPERING",
+ "WEAK_CIPHER",
+ "WEAK_HASH",
+ "WEAK_RANDOMNESS",
+ "X_CONTENT_TYPE_HEADER_MISSING",
+ "X_PATH_INJECTION",
+ "XSS"
+ ]
+ },
+ "WidgetLiveSpan": {
+ "description": "The available timeframes depend on the widget you are using.",
+ "enum": [
+ "1m",
+ "5m",
+ "10m",
+ "15m",
+ "30m",
+ "1h",
+ "4h",
+ "1d",
+ "2d",
+ "1w",
+ "1mo",
+ "3mo",
+ "6mo",
+ "1y",
+ "alert"
+ ],
+ "example": "5m",
+ "type": "string",
+ "x-enum-varnames": [
+ "PAST_ONE_MINUTE",
+ "PAST_FIVE_MINUTES",
+ "PAST_TEN_MINUTES",
+ "PAST_FIFTEEN_MINUTES",
+ "PAST_THIRTY_MINUTES",
+ "PAST_ONE_HOUR",
+ "PAST_FOUR_HOURS",
+ "PAST_ONE_DAY",
+ "PAST_TWO_DAYS",
+ "PAST_ONE_WEEK",
+ "PAST_ONE_MONTH",
+ "PAST_THREE_MONTHS",
+ "PAST_SIX_MONTHS",
+ "PAST_ONE_YEAR",
+ "ALERT"
+ ]
+ },
+ "WorkflowData": {
+ "description": "Data related to the workflow.",
+ "properties": {
+ "attributes": {
+ "description": "The definition of `WorkflowDataAttributes` object.",
"properties": {
+ "createdAt": {
+ "description": "When the workflow was created.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of the workflow.",
+ "type": "string"
+ },
"name": {
- "description": "Vulnerability library name.",
- "example": "linux-aws-5.15",
+ "description": "Name of the workflow.",
+ "example": "",
"type": "string"
},
- "version": {
- "description": "Vulnerability library version.",
- "example": "5.15.0",
+ "published": {
+ "description": "Set the workflow to published or unpublished. Workflows in an unpublished state will only be executable via manual runs. Automatic triggers such as Schedule will not execute the workflow until it is published.",
+ "type": "boolean"
+ },
+ "spec": {
+ "description": "The spec defines what the workflow does.",
+ "properties": {
+ "annotations": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "items": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "properties": {
+ "display": {
+ "description": "The definition of `AnnotationDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `AnnotationDisplayBounds` object.",
+ "properties": {
+ "height": {
+ "description": "The `bounds` `height`.",
+ "format": "double",
+ "type": "number"
+ },
+ "width": {
+ "description": "The `bounds` `width`.",
+ "format": "double",
+ "type": "number"
+ },
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The `Annotation` `id`.",
+ "example": "",
+ "type": "string"
+ },
+ "markdownTextAnnotation": {
+ "description": "The definition of `AnnotationMarkdownTextAnnotation` object.",
+ "properties": {
+ "text": {
+ "description": "The `markdownTextAnnotation` `text`.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "required": [
+ "id",
+ "display",
+ "markdownTextAnnotation"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "connectionEnvs": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "items": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "properties": {
+ "connectionGroups": {
+ "description": "The `ConnectionEnv` `connectionGroups`.",
+ "items": {
+ "description": "The definition of `ConnectionGroup` object.",
+ "properties": {
+ "connectionGroupId": {
+ "description": "The `ConnectionGroup` `connectionGroupId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `ConnectionGroup` `label`.",
+ "example": "",
+ "type": "string"
+ },
+ "tags": {
+ "description": "The `ConnectionGroup` `tags`.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "connectionGroupId",
+ "label",
+ "tags"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "connections": {
+ "description": "The `ConnectionEnv` `connections`.",
+ "items": {
+ "description": "The definition of `Connection` object.",
+ "properties": {
+ "connectionId": {
+ "description": "The `Connection` `connectionId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `Connection` `label`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "connectionId",
+ "label"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "env": {
+ "description": "The definition of `ConnectionEnvEnv` object.",
+ "enum": [
+ "default"
+ ],
+ "example": "default",
+ "type": "string",
+ "x-enum-varnames": [
+ "DEFAULT"
+ ]
+ }
+ },
+ "required": [
+ "env"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "handle": {
+ "description": "Unique identifier used to trigger workflows automatically in Datadog.",
+ "type": "string"
+ },
+ "inputSchema": {
+ "description": "A list of input parameters for the workflow. These can be used as dynamic runtime values in your workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `InputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `InputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `InputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `InputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `InputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `InputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `InputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "outputSchema": {
+ "description": "A list of output parameters for the workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `OutputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `OutputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `OutputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `OutputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `OutputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `OutputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `OutputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ },
+ "value": {
+ "description": "The `OutputSchemaParameters` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "steps": {
+ "description": "A `Step` is a sub-component of a workflow. Each `Step` performs an action.",
+ "items": {
+ "description": "A Step is a sub-component of a workflow. Each Step performs an action.",
+ "properties": {
+ "actionId": {
+ "description": "The unique identifier of an action.",
+ "example": "",
+ "type": "string"
+ },
+ "completionGate": {
+ "description": "Used to create conditions before running subsequent actions.",
+ "properties": {
+ "completionCondition": {
+ "description": "The definition of `CompletionCondition` object.",
+ "properties": {
+ "operand1": {
+ "description": "The `CompletionCondition` `operand1`."
+ },
+ "operand2": {
+ "description": "The `CompletionCondition` `operand2`."
+ },
+ "operator": {
+ "description": "The definition of `CompletionConditionOperator` object.",
+ "enum": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ],
+ "example": "OPERATOR_EQUAL",
+ "type": "string",
+ "x-enum-varnames": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ]
+ }
+ },
+ "required": [
+ "operand1",
+ "operator"
+ ],
+ "type": "object"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "completionCondition",
+ "retryStrategy"
+ ],
+ "type": "object"
+ },
+ "connectionLabel": {
+ "description": "The unique identifier of a connection defined in the spec.",
+ "type": "string"
+ },
+ "display": {
+ "description": "The definition of `StepDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `StepDisplayBounds` object.",
+ "properties": {
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "errorHandlers": {
+ "description": "The `Step` `errorHandlers`.",
+ "items": {
+ "description": "Used to handle errors in an action.",
+ "properties": {
+ "fallbackStepName": {
+ "description": "The `ErrorHandler` `fallbackStepName`.",
+ "example": "",
+ "type": "string"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "retryStrategy",
+ "fallbackStepName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the step.",
+ "example": "",
+ "type": "string"
+ },
+ "outboundEdges": {
+ "description": "A list of subsequent actions to run.",
+ "items": {
+ "description": "The definition of `OutboundEdge` object.",
+ "properties": {
+ "branchName": {
+ "description": "The `OutboundEdge` `branchName`.",
+ "example": "",
+ "type": "string"
+ },
+ "nextStepName": {
+ "description": "The `OutboundEdge` `nextStepName`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "nextStepName",
+ "branchName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "parameters": {
+ "description": "A list of inputs for an action.",
+ "items": {
+ "description": "The definition of `Parameter` object.",
+ "properties": {
+ "name": {
+ "description": "The `Parameter` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "value": {
+ "description": "The `Parameter` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "value"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "readinessGate": {
+ "description": "Used to merge multiple branches into a single branch.",
+ "properties": {
+ "thresholdType": {
+ "description": "The definition of `ReadinessGateThresholdType` object.",
+ "enum": [
+ "ANY",
+ "ALL"
+ ],
+ "example": "ANY",
+ "type": "string",
+ "x-enum-varnames": [
+ "ANY",
+ "ALL"
+ ]
+ }
+ },
+ "required": [
+ "thresholdType"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "name",
+ "actionId"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "triggers": {
+ "description": "The list of triggers that activate this workflow. At least one trigger is required, and each trigger type may appear at most once.",
+ "items": {
+ "description": "One of the triggers that can start the execution of a workflow.",
+ "oneOf": [
+ {
+ "description": "Schema for an API-based trigger.",
+ "properties": {
+ "apiTrigger": {
+ "description": "Trigger a workflow VIA an API. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "apiTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an App-based trigger.",
+ "properties": {
+ "appTrigger": {
+ "description": "Trigger a workflow VIA an App.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "appTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Case-based trigger.",
+ "properties": {
+ "caseTrigger": {
+ "description": "Trigger a workflow VIA a Case. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "caseTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Change Event-based trigger.",
+ "properties": {
+ "changeEventTrigger": {
+ "description": "Trigger a workflow VIA a Change Event.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "changeEventTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Dashboard-based trigger.",
+ "properties": {
+ "dashboardTrigger": {
+ "description": "Trigger a workflow VIA a Dashboard.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "dashboardTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a GitHub webhook-based trigger.",
+ "properties": {
+ "githubWebhookTrigger": {
+ "description": "Trigger a workflow VIA GitHub webhook. To trigger a workflow from GitHub, you must set a `webhookSecret`. In your GitHub Webhook Settings, set the Payload URL to \"base_url\"/api/v2/workflows/\"workflow_id\"/webhook?orgId=\"org_id\", select application/json for the content type, and be highly recommend enabling SSL verification for security. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "githubWebhookTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an Incident-based trigger.",
+ "properties": {
+ "incidentTrigger": {
+ "description": "Trigger a workflow VIA an Incident. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "incidentTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Monitor-based trigger.",
+ "properties": {
+ "monitorTrigger": {
+ "description": "Trigger a workflow VIA a Monitor. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "monitorTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Schedule-based trigger.",
+ "properties": {
+ "scheduleTrigger": {
+ "description": "Trigger a workflow VIA a Schedule. The workflow must be published.",
+ "properties": {
+ "rruleExpression": {
+ "description": "Recurrence rule expression for scheduling.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "rruleExpression"
+ ],
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "scheduleTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Security-based trigger.",
+ "properties": {
+ "securityTrigger": {
+ "description": "Trigger a workflow VIA a Security Signal or Finding. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "securityTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Slack-based trigger.",
+ "properties": {
+ "slackTrigger": {
+ "description": "Trigger a workflow VIA Slack. The workflow must be published.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "slackTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Workflow-based trigger.",
+ "properties": {
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "workflowTrigger": {
+ "description": "Trigger a workflow VIA the Datadog UI. Only required if no other trigger exists.",
+ "type": "object"
+ }
+ },
+ "required": [
+ "workflowTrigger"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "tags": {
+ "description": "Tags of the workflow.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "updatedAt": {
+ "description": "When the workflow was last updated.",
+ "format": "date-time",
+ "readOnly": true,
"type": "string"
+ },
+ "webhookSecret": {
+ "description": "If a Webhook trigger is defined on this workflow, a webhookSecret is required and should be provided here.",
+ "type": "string",
+ "writeOnly": true
}
},
"required": [
- "name"
+ "name",
+ "spec"
],
"type": "object"
},
- "remediations": {
- "description": "List of remediations.",
- "items": {
- "description": "Vulnerability remediation.",
- "properties": {
- "auto_solvable": {
- "description": "Whether the vulnerability can be resolved when recompiling the package or not.",
- "example": false,
- "type": "boolean"
- },
- "avoided_advisories": {
- "description": "Avoided advisories.",
- "items": {
- "description": "Advisory.",
+ "id": {
+ "description": "The workflow identifier",
+ "readOnly": true,
+ "type": "string"
+ },
+ "relationships": {
+ "description": "The definition of `WorkflowDataRelationships` object.",
+ "properties": {
+ "creator": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
+ "properties": {
+ "data": {
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
"properties": {
- "base_severity": {
- "description": "Advisory base severity.",
- "example": "Critical",
- "type": "string"
- },
"id": {
- "description": "Advisory id.",
- "example": "GHSA-4wrc-f8pq-fpqp",
+ "description": "The user identifier",
+ "example": "",
"type": "string"
},
- "severity": {
- "description": "Advisory Datadog severity.",
- "example": "Medium",
- "type": "string"
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
}
},
"required": [
- "id",
- "base_severity"
+ "type",
+ "id"
],
"type": "object"
- },
- "type": "array"
+ }
},
- "fixed_advisories": {
- "description": "Remediation fixed advisories.",
- "items": {
- "description": "Advisory.",
+ "type": "object"
+ },
+ "owner": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
+ "properties": {
+ "data": {
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
"properties": {
- "base_severity": {
- "description": "Advisory base severity.",
- "example": "Critical",
- "type": "string"
- },
"id": {
- "description": "Advisory id.",
- "example": "GHSA-4wrc-f8pq-fpqp",
+ "description": "The user identifier",
+ "example": "",
"type": "string"
},
- "severity": {
- "description": "Advisory Datadog severity.",
- "example": "Medium",
- "type": "string"
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
}
},
"required": [
- "id",
- "base_severity"
+ "type",
+ "id"
],
"type": "object"
- },
- "type": "array"
- },
- "library_name": {
- "description": "Library name remediating the vulnerability.",
- "example": "stdlib",
- "type": "string"
- },
- "library_version": {
- "description": "Library version remediating the vulnerability.",
- "example": "Upgrade to a version >= 1.20.0",
- "type": "string"
+ }
},
- "new_advisories": {
- "description": "New advisories.",
- "items": {
- "description": "Advisory.",
- "properties": {
- "base_severity": {
- "description": "Advisory base severity.",
- "example": "Critical",
- "type": "string"
- },
- "id": {
- "description": "Advisory id.",
- "example": "GHSA-4wrc-f8pq-fpqp",
- "type": "string"
+ "type": "object"
+ }
+ },
+ "readOnly": true,
+ "type": "object"
+ },
+ "type": {
+ "description": "The definition of `WorkflowDataType` object.",
+ "enum": [
+ "workflows"
+ ],
+ "example": "workflows",
+ "type": "string",
+ "x-enum-varnames": [
+ "WORKFLOWS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "attributes"
+ ],
+ "type": "object"
+ },
+ "WorkflowDataAttributes": {
+ "description": "The definition of `WorkflowDataAttributes` object.",
+ "properties": {
+ "createdAt": {
+ "description": "When the workflow was created.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of the workflow.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the workflow.",
+ "example": "",
+ "type": "string"
+ },
+ "published": {
+ "description": "Set the workflow to published or unpublished. Workflows in an unpublished state will only be executable via manual runs. Automatic triggers such as Schedule will not execute the workflow until it is published.",
+ "type": "boolean"
+ },
+ "spec": {
+ "description": "The spec defines what the workflow does.",
+ "properties": {
+ "annotations": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "items": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "properties": {
+ "display": {
+ "description": "The definition of `AnnotationDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `AnnotationDisplayBounds` object.",
+ "properties": {
+ "height": {
+ "description": "The `bounds` `height`.",
+ "format": "double",
+ "type": "number"
+ },
+ "width": {
+ "description": "The `bounds` `width`.",
+ "format": "double",
+ "type": "number"
+ },
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
},
- "severity": {
- "description": "Advisory Datadog severity.",
- "example": "Medium",
- "type": "string"
- }
+ "type": "object"
},
- "required": [
- "id",
- "base_severity"
- ],
- "type": "object"
+ "id": {
+ "description": "The `Annotation` `id`.",
+ "example": "",
+ "type": "string"
+ },
+ "markdownTextAnnotation": {
+ "description": "The definition of `AnnotationMarkdownTextAnnotation` object.",
+ "properties": {
+ "text": {
+ "description": "The `markdownTextAnnotation` `text`.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
},
- "type": "array"
+ "required": [
+ "id",
+ "display",
+ "markdownTextAnnotation"
+ ],
+ "type": "object"
},
- "remaining_advisories": {
- "description": "Remaining advisories.",
- "items": {
- "description": "Advisory.",
- "properties": {
- "base_severity": {
- "description": "Advisory base severity.",
- "example": "Critical",
- "type": "string"
+ "type": "array"
+ },
+ "connectionEnvs": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "items": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "properties": {
+ "connectionGroups": {
+ "description": "The `ConnectionEnv` `connectionGroups`.",
+ "items": {
+ "description": "The definition of `ConnectionGroup` object.",
+ "properties": {
+ "connectionGroupId": {
+ "description": "The `ConnectionGroup` `connectionGroupId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `ConnectionGroup` `label`.",
+ "example": "",
+ "type": "string"
+ },
+ "tags": {
+ "description": "The `ConnectionGroup` `tags`.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "connectionGroupId",
+ "label",
+ "tags"
+ ],
+ "type": "object"
},
- "id": {
- "description": "Advisory id.",
- "example": "GHSA-4wrc-f8pq-fpqp",
- "type": "string"
+ "type": "array"
+ },
+ "connections": {
+ "description": "The `ConnectionEnv` `connections`.",
+ "items": {
+ "description": "The definition of `Connection` object.",
+ "properties": {
+ "connectionId": {
+ "description": "The `Connection` `connectionId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `Connection` `label`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "connectionId",
+ "label"
+ ],
+ "type": "object"
},
- "severity": {
- "description": "Advisory Datadog severity.",
- "example": "Medium",
- "type": "string"
- }
+ "type": "array"
},
- "required": [
- "id",
- "base_severity"
- ],
- "type": "object"
+ "env": {
+ "description": "The definition of `ConnectionEnvEnv` object.",
+ "enum": [
+ "default"
+ ],
+ "example": "default",
+ "type": "string",
+ "x-enum-varnames": [
+ "DEFAULT"
+ ]
+ }
},
- "type": "array"
+ "required": [
+ "env"
+ ],
+ "type": "object"
},
- "type": {
- "description": "Remediation type.",
- "example": "text",
- "type": "string"
- }
+ "type": "array"
},
- "required": [
- "type",
- "library_name",
- "library_version",
- "auto_solvable",
- "fixed_advisories",
- "remaining_advisories",
- "new_advisories",
- "avoided_advisories"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "repo_digests": {
- "description": "Vulnerability `repo_digest` list (when the vulnerability is related to `Image` asset).",
- "items": {
- "example": "sha256:0ae7da091191787229d321e3638e39c319a97d6e20f927d465b519d699215bf7",
- "type": "string"
- },
- "type": "array"
- },
- "risks": {
- "description": "Vulnerability risks.",
- "properties": {
- "epss": {
- "description": "Vulnerability EPSS severity.",
+ "handle": {
+ "description": "Unique identifier used to trigger workflows automatically in Datadog.",
+ "type": "string"
+ },
+ "inputSchema": {
+ "description": "A list of input parameters for the workflow. These can be used as dynamic runtime values in your workflow.",
"properties": {
- "score": {
- "description": "Vulnerability EPSS severity score.",
- "example": 0.2,
- "format": "double",
- "type": "number"
- },
- "severity": {
- "description": "The vulnerability severity.",
- "enum": [
- "Unknown",
- "None",
- "Low",
- "Medium",
- "High",
- "Critical"
- ],
- "example": "Medium",
- "type": "string",
- "x-enum-varnames": [
- "UNKNOWN",
- "NONE",
- "LOW",
- "MEDIUM",
- "HIGH",
- "CRITICAL"
- ]
+ "parameters": {
+ "description": "The `InputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `InputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `InputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `InputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `InputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `InputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `InputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
}
},
- "required": [
- "score",
- "severity"
- ],
"type": "object"
},
- "exploit_available": {
- "description": "Vulnerability public exploit availability.",
- "example": false,
- "type": "boolean"
+ "outputSchema": {
+ "description": "A list of output parameters for the workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `OutputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `OutputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `OutputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `OutputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `OutputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `OutputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `OutputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ },
+ "value": {
+ "description": "The `OutputSchemaParameters` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
},
- "exploit_sources": {
- "description": "Vulnerability exploit sources.",
- "example": [
- "NIST"
- ],
+ "steps": {
+ "description": "A `Step` is a sub-component of a workflow. Each `Step` performs an action.",
"items": {
- "example": "NIST",
- "type": "string"
+ "description": "A Step is a sub-component of a workflow. Each Step performs an action.",
+ "properties": {
+ "actionId": {
+ "description": "The unique identifier of an action.",
+ "example": "",
+ "type": "string"
+ },
+ "completionGate": {
+ "description": "Used to create conditions before running subsequent actions.",
+ "properties": {
+ "completionCondition": {
+ "description": "The definition of `CompletionCondition` object.",
+ "properties": {
+ "operand1": {
+ "description": "The `CompletionCondition` `operand1`."
+ },
+ "operand2": {
+ "description": "The `CompletionCondition` `operand2`."
+ },
+ "operator": {
+ "description": "The definition of `CompletionConditionOperator` object.",
+ "enum": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ],
+ "example": "OPERATOR_EQUAL",
+ "type": "string",
+ "x-enum-varnames": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ]
+ }
+ },
+ "required": [
+ "operand1",
+ "operator"
+ ],
+ "type": "object"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "completionCondition",
+ "retryStrategy"
+ ],
+ "type": "object"
+ },
+ "connectionLabel": {
+ "description": "The unique identifier of a connection defined in the spec.",
+ "type": "string"
+ },
+ "display": {
+ "description": "The definition of `StepDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `StepDisplayBounds` object.",
+ "properties": {
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "errorHandlers": {
+ "description": "The `Step` `errorHandlers`.",
+ "items": {
+ "description": "Used to handle errors in an action.",
+ "properties": {
+ "fallbackStepName": {
+ "description": "The `ErrorHandler` `fallbackStepName`.",
+ "example": "",
+ "type": "string"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "retryStrategy",
+ "fallbackStepName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the step.",
+ "example": "",
+ "type": "string"
+ },
+ "outboundEdges": {
+ "description": "A list of subsequent actions to run.",
+ "items": {
+ "description": "The definition of `OutboundEdge` object.",
+ "properties": {
+ "branchName": {
+ "description": "The `OutboundEdge` `branchName`.",
+ "example": "",
+ "type": "string"
+ },
+ "nextStepName": {
+ "description": "The `OutboundEdge` `nextStepName`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "nextStepName",
+ "branchName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "parameters": {
+ "description": "A list of inputs for an action.",
+ "items": {
+ "description": "The definition of `Parameter` object.",
+ "properties": {
+ "name": {
+ "description": "The `Parameter` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "value": {
+ "description": "The `Parameter` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "value"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "readinessGate": {
+ "description": "Used to merge multiple branches into a single branch.",
+ "properties": {
+ "thresholdType": {
+ "description": "The definition of `ReadinessGateThresholdType` object.",
+ "enum": [
+ "ANY",
+ "ALL"
+ ],
+ "example": "ANY",
+ "type": "string",
+ "x-enum-varnames": [
+ "ANY",
+ "ALL"
+ ]
+ }
+ },
+ "required": [
+ "thresholdType"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "name",
+ "actionId"
+ ],
+ "type": "object"
},
"type": "array"
},
- "exploitation_probability": {
- "description": "Vulnerability exploitation probability.",
- "example": false,
- "type": "boolean"
- },
- "poc_exploit_available": {
- "description": "Vulnerability POC exploit availability.",
- "example": false,
- "type": "boolean"
+ "triggers": {
+ "description": "The list of triggers that activate this workflow. At least one trigger is required, and each trigger type may appear at most once.",
+ "items": {
+ "description": "One of the triggers that can start the execution of a workflow.",
+ "oneOf": [
+ {
+ "description": "Schema for an API-based trigger.",
+ "properties": {
+ "apiTrigger": {
+ "description": "Trigger a workflow VIA an API. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "apiTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an App-based trigger.",
+ "properties": {
+ "appTrigger": {
+ "description": "Trigger a workflow VIA an App.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "appTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Case-based trigger.",
+ "properties": {
+ "caseTrigger": {
+ "description": "Trigger a workflow VIA a Case. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "caseTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Change Event-based trigger.",
+ "properties": {
+ "changeEventTrigger": {
+ "description": "Trigger a workflow VIA a Change Event.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "changeEventTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Dashboard-based trigger.",
+ "properties": {
+ "dashboardTrigger": {
+ "description": "Trigger a workflow VIA a Dashboard.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "dashboardTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a GitHub webhook-based trigger.",
+ "properties": {
+ "githubWebhookTrigger": {
+ "description": "Trigger a workflow VIA GitHub webhook. To trigger a workflow from GitHub, you must set a `webhookSecret`. In your GitHub Webhook Settings, set the Payload URL to \"base_url\"/api/v2/workflows/\"workflow_id\"/webhook?orgId=\"org_id\", select application/json for the content type, and be highly recommend enabling SSL verification for security. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "githubWebhookTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an Incident-based trigger.",
+ "properties": {
+ "incidentTrigger": {
+ "description": "Trigger a workflow VIA an Incident. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "incidentTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Monitor-based trigger.",
+ "properties": {
+ "monitorTrigger": {
+ "description": "Trigger a workflow VIA a Monitor. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "monitorTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Schedule-based trigger.",
+ "properties": {
+ "scheduleTrigger": {
+ "description": "Trigger a workflow VIA a Schedule. The workflow must be published.",
+ "properties": {
+ "rruleExpression": {
+ "description": "Recurrence rule expression for scheduling.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "rruleExpression"
+ ],
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "scheduleTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Security-based trigger.",
+ "properties": {
+ "securityTrigger": {
+ "description": "Trigger a workflow VIA a Security Signal or Finding. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "securityTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Slack-based trigger.",
+ "properties": {
+ "slackTrigger": {
+ "description": "Trigger a workflow VIA Slack. The workflow must be published.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "slackTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Workflow-based trigger.",
+ "properties": {
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "workflowTrigger": {
+ "description": "Trigger a workflow VIA the Datadog UI. Only required if no other trigger exists.",
+ "type": "object"
+ }
+ },
+ "required": [
+ "workflowTrigger"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "type": "array"
}
},
- "required": [
- "exploitation_probability",
- "poc_exploit_available",
- "exploit_available",
- "exploit_sources"
- ],
"type": "object"
},
- "status": {
- "description": "The vulnerability status.",
- "enum": [
- "Open",
- "Muted",
- "Remediated",
- "InProgress",
- "AutoClosed"
- ],
- "example": "Open",
- "type": "string",
- "x-enum-varnames": [
- "OPEN",
- "MUTED",
- "REMEDIATED",
- "INPROGRESS",
- "AUTOCLOSED"
- ]
- },
- "title": {
- "description": "Vulnerability title.",
- "example": "LDAP Injection",
- "type": "string"
- },
- "tool": {
- "description": "The vulnerability tool.",
- "enum": [
- "IAST",
- "SCA",
- "Infra"
- ],
- "example": "SCA",
- "type": "string",
- "x-enum-varnames": [
- "IAST",
- "SCA",
- "INFRA"
- ]
- },
- "type": {
- "description": "The vulnerability type.",
- "enum": [
- "AdminConsoleActive",
- "CodeInjection",
- "CommandInjection",
- "ComponentWithKnownVulnerability",
- "DangerousWorkflows",
- "DefaultAppDeployed",
- "DefaultHtmlEscapeInvalid",
- "DirectoryListingLeak",
- "EmailHtmlInjection",
- "EndOfLife",
- "HardcodedPassword",
- "HardcodedSecret",
- "HeaderInjection",
- "HstsHeaderMissing",
- "InsecureAuthProtocol",
- "InsecureCookie",
- "InsecureJspLayout",
- "LdapInjection",
- "MaliciousPackage",
- "MandatoryRemediation",
- "NoHttpOnlyCookie",
- "NoSameSiteCookie",
- "NoSqlMongoDbInjection",
- "PathTraversal",
- "ReflectionInjection",
- "RiskyLicense",
- "SessionRewriting",
- "SessionTimeout",
- "SqlInjection",
- "Ssrf",
- "StackTraceLeak",
- "TrustBoundaryViolation",
- "Unmaintained",
- "UntrustedDeserialization",
- "UnvalidatedRedirect",
- "VerbTampering",
- "WeakCipher",
- "WeakHash",
- "WeakRandomness",
- "XContentTypeHeaderMissing",
- "XPathInjection",
- "Xss"
- ],
- "example": "WeakCipher",
- "type": "string",
- "x-enum-varnames": [
- "ADMIN_CONSOLE_ACTIVE",
- "CODE_INJECTION",
- "COMMAND_INJECTION",
- "COMPONENT_WITH_KNOWN_VULNERABILITY",
- "DANGEROUS_WORKFLOWS",
- "DEFAULT_APP_DEPLOYED",
- "DEFAULT_HTML_ESCAPE_INVALID",
- "DIRECTORY_LISTING_LEAK",
- "EMAIL_HTML_INJECTION",
- "END_OF_LIFE",
- "HARDCODED_PASSWORD",
- "HARDCODED_SECRET",
- "HEADER_INJECTION",
- "HSTS_HEADER_MISSING",
- "INSECURE_AUTH_PROTOCOL",
- "INSECURE_COOKIE",
- "INSECURE_JSP_LAYOUT",
- "LDAP_INJECTION",
- "MALICIOUS_PACKAGE",
- "MANDATORY_REMEDIATION",
- "NO_HTTP_ONLY_COOKIE",
- "NO_SAME_SITE_COOKIE",
- "NO_SQL_MONGO_DB_INJECTION",
- "PATH_TRAVERSAL",
- "REFLECTION_INJECTION",
- "RISKY_LICENSE",
- "SESSION_REWRITING",
- "SESSION_TIMEOUT",
- "SQL_INJECTION",
- "SSRF",
- "STACK_TRACE_LEAK",
- "TRUST_BOUNDARY_VIOLATION",
- "UNMAINTAINED",
- "UNTRUSTED_DESERIALIZATION",
- "UNVALIDATED_REDIRECT",
- "VERB_TAMPERING",
- "WEAK_CIPHER",
- "WEAK_HASH",
- "WEAK_RANDOMNESS",
- "X_CONTENT_TYPE_HEADER_MISSING",
- "X_PATH_INJECTION",
- "XSS"
- ]
+ "tags": {
+ "description": "Tags of the workflow.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "updatedAt": {
+ "description": "When the workflow was last updated.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "webhookSecret": {
+ "description": "If a Webhook trigger is defined on this workflow, a webhookSecret is required and should be provided here.",
+ "type": "string",
+ "writeOnly": true
}
},
"required": [
- "type",
- "cvss",
- "status",
- "tool",
- "title",
- "description",
- "cve_list",
- "risks",
- "language",
- "first_detection",
- "last_detection",
- "exposure_time",
- "remediations",
- "fix_available"
+ "name",
+ "spec"
],
"type": "object"
},
- "VulnerabilityCvss": {
- "description": "Vulnerability severities.",
+ "WorkflowDataRelationships": {
+ "description": "The definition of `WorkflowDataRelationships` object.",
"properties": {
- "base": {
- "description": "Vulnerability severity.",
+ "creator": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
"properties": {
- "score": {
- "description": "Vulnerability severity score.",
- "example": 4.5,
- "format": "double",
- "type": "number"
- },
- "severity": {
- "description": "The vulnerability severity.",
- "enum": [
- "Unknown",
- "None",
- "Low",
- "Medium",
- "High",
- "Critical"
+ "data": {
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
+ "properties": {
+ "id": {
+ "description": "The user identifier",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "id"
],
- "example": "Medium",
- "type": "string",
- "x-enum-varnames": [
- "UNKNOWN",
- "NONE",
- "LOW",
- "MEDIUM",
- "HIGH",
- "CRITICAL"
- ]
- },
- "vector": {
- "description": "Vulnerability CVSS vector.",
- "example": "CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H",
- "type": "string"
+ "type": "object"
}
},
- "required": [
- "score",
- "severity",
- "vector"
- ],
"type": "object"
},
- "datadog": {
- "description": "Vulnerability severity.",
+ "owner": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
"properties": {
- "score": {
- "description": "Vulnerability severity score.",
- "example": 4.5,
- "format": "double",
- "type": "number"
- },
- "severity": {
- "description": "The vulnerability severity.",
- "enum": [
- "Unknown",
- "None",
- "Low",
- "Medium",
- "High",
- "Critical"
+ "data": {
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
+ "properties": {
+ "id": {
+ "description": "The user identifier",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "id"
],
- "example": "Medium",
- "type": "string",
- "x-enum-varnames": [
- "UNKNOWN",
- "NONE",
- "LOW",
- "MEDIUM",
- "HIGH",
- "CRITICAL"
- ]
- },
- "vector": {
- "description": "Vulnerability CVSS vector.",
- "example": "CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H",
- "type": "string"
+ "type": "object"
}
},
- "required": [
- "score",
- "severity",
- "vector"
- ],
"type": "object"
}
},
- "required": [
- "base",
- "datadog"
- ],
+ "readOnly": true,
"type": "object"
},
- "VulnerabilityDependencyLocations": {
- "description": "Static library vulnerability location.",
+ "WorkflowDataType": {
+ "description": "The definition of `WorkflowDataType` object.",
+ "enum": [
+ "workflows"
+ ],
+ "example": "workflows",
+ "type": "string",
+ "x-enum-varnames": [
+ "WORKFLOWS"
+ ]
+ },
+ "WorkflowDataUpdate": {
+ "description": "Data related to the workflow being updated.",
"properties": {
- "block": {
- "description": "Static library vulnerability location.",
+ "attributes": {
+ "description": "The definition of `WorkflowDataUpdateAttributes` object.",
"properties": {
- "column_end": {
- "description": "Location column end.",
- "example": 140,
- "format": "int64",
- "type": "integer"
- },
- "column_start": {
- "description": "Location column start.",
- "example": 5,
- "format": "int64",
- "type": "integer"
- },
- "file_name": {
- "description": "Location file name.",
- "example": "src/go.mod",
+ "createdAt": {
+ "description": "When the workflow was created.",
+ "format": "date-time",
+ "readOnly": true,
"type": "string"
},
- "line_end": {
- "description": "Location line end.",
- "example": 10,
- "format": "int64",
- "type": "integer"
- },
- "line_start": {
- "description": "Location line start.",
- "example": 1,
- "format": "int64",
- "type": "integer"
- }
- },
- "required": [
- "file_name",
- "line_start",
- "line_end",
- "column_start",
- "column_end"
- ],
- "type": "object"
- },
- "name": {
- "description": "Static library vulnerability location.",
- "properties": {
- "column_end": {
- "description": "Location column end.",
- "example": 140,
- "format": "int64",
- "type": "integer"
- },
- "column_start": {
- "description": "Location column start.",
- "example": 5,
- "format": "int64",
- "type": "integer"
+ "description": {
+ "description": "Description of the workflow.",
+ "type": "string"
},
- "file_name": {
- "description": "Location file name.",
- "example": "src/go.mod",
+ "name": {
+ "description": "Name of the workflow.",
"type": "string"
},
- "line_end": {
- "description": "Location line end.",
- "example": 10,
- "format": "int64",
- "type": "integer"
+ "published": {
+ "description": "Set the workflow to published or unpublished. Workflows in an unpublished state will only be executable via manual runs. Automatic triggers such as Schedule will not execute the workflow until it is published.",
+ "type": "boolean"
},
- "line_start": {
- "description": "Location line start.",
- "example": 1,
- "format": "int64",
- "type": "integer"
- }
- },
- "required": [
- "file_name",
- "line_start",
- "line_end",
- "column_start",
- "column_end"
- ],
- "type": "object"
- },
- "version": {
- "description": "Static library vulnerability location.",
- "properties": {
- "column_end": {
- "description": "Location column end.",
- "example": 140,
- "format": "int64",
- "type": "integer"
+ "spec": {
+ "description": "The spec defines what the workflow does.",
+ "properties": {
+ "annotations": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "items": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "properties": {
+ "display": {
+ "description": "The definition of `AnnotationDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `AnnotationDisplayBounds` object.",
+ "properties": {
+ "height": {
+ "description": "The `bounds` `height`.",
+ "format": "double",
+ "type": "number"
+ },
+ "width": {
+ "description": "The `bounds` `width`.",
+ "format": "double",
+ "type": "number"
+ },
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The `Annotation` `id`.",
+ "example": "",
+ "type": "string"
+ },
+ "markdownTextAnnotation": {
+ "description": "The definition of `AnnotationMarkdownTextAnnotation` object.",
+ "properties": {
+ "text": {
+ "description": "The `markdownTextAnnotation` `text`.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "required": [
+ "id",
+ "display",
+ "markdownTextAnnotation"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "connectionEnvs": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "items": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "properties": {
+ "connectionGroups": {
+ "description": "The `ConnectionEnv` `connectionGroups`.",
+ "items": {
+ "description": "The definition of `ConnectionGroup` object.",
+ "properties": {
+ "connectionGroupId": {
+ "description": "The `ConnectionGroup` `connectionGroupId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `ConnectionGroup` `label`.",
+ "example": "",
+ "type": "string"
+ },
+ "tags": {
+ "description": "The `ConnectionGroup` `tags`.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "connectionGroupId",
+ "label",
+ "tags"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "connections": {
+ "description": "The `ConnectionEnv` `connections`.",
+ "items": {
+ "description": "The definition of `Connection` object.",
+ "properties": {
+ "connectionId": {
+ "description": "The `Connection` `connectionId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `Connection` `label`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "connectionId",
+ "label"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "env": {
+ "description": "The definition of `ConnectionEnvEnv` object.",
+ "enum": [
+ "default"
+ ],
+ "example": "default",
+ "type": "string",
+ "x-enum-varnames": [
+ "DEFAULT"
+ ]
+ }
+ },
+ "required": [
+ "env"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "handle": {
+ "description": "Unique identifier used to trigger workflows automatically in Datadog.",
+ "type": "string"
+ },
+ "inputSchema": {
+ "description": "A list of input parameters for the workflow. These can be used as dynamic runtime values in your workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `InputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `InputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `InputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `InputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `InputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `InputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `InputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "outputSchema": {
+ "description": "A list of output parameters for the workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `OutputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `OutputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `OutputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `OutputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `OutputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `OutputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `OutputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ },
+ "value": {
+ "description": "The `OutputSchemaParameters` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "steps": {
+ "description": "A `Step` is a sub-component of a workflow. Each `Step` performs an action.",
+ "items": {
+ "description": "A Step is a sub-component of a workflow. Each Step performs an action.",
+ "properties": {
+ "actionId": {
+ "description": "The unique identifier of an action.",
+ "example": "",
+ "type": "string"
+ },
+ "completionGate": {
+ "description": "Used to create conditions before running subsequent actions.",
+ "properties": {
+ "completionCondition": {
+ "description": "The definition of `CompletionCondition` object.",
+ "properties": {
+ "operand1": {
+ "description": "The `CompletionCondition` `operand1`."
+ },
+ "operand2": {
+ "description": "The `CompletionCondition` `operand2`."
+ },
+ "operator": {
+ "description": "The definition of `CompletionConditionOperator` object.",
+ "enum": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ],
+ "example": "OPERATOR_EQUAL",
+ "type": "string",
+ "x-enum-varnames": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ]
+ }
+ },
+ "required": [
+ "operand1",
+ "operator"
+ ],
+ "type": "object"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "completionCondition",
+ "retryStrategy"
+ ],
+ "type": "object"
+ },
+ "connectionLabel": {
+ "description": "The unique identifier of a connection defined in the spec.",
+ "type": "string"
+ },
+ "display": {
+ "description": "The definition of `StepDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `StepDisplayBounds` object.",
+ "properties": {
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "errorHandlers": {
+ "description": "The `Step` `errorHandlers`.",
+ "items": {
+ "description": "Used to handle errors in an action.",
+ "properties": {
+ "fallbackStepName": {
+ "description": "The `ErrorHandler` `fallbackStepName`.",
+ "example": "",
+ "type": "string"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "retryStrategy",
+ "fallbackStepName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the step.",
+ "example": "",
+ "type": "string"
+ },
+ "outboundEdges": {
+ "description": "A list of subsequent actions to run.",
+ "items": {
+ "description": "The definition of `OutboundEdge` object.",
+ "properties": {
+ "branchName": {
+ "description": "The `OutboundEdge` `branchName`.",
+ "example": "",
+ "type": "string"
+ },
+ "nextStepName": {
+ "description": "The `OutboundEdge` `nextStepName`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "nextStepName",
+ "branchName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "parameters": {
+ "description": "A list of inputs for an action.",
+ "items": {
+ "description": "The definition of `Parameter` object.",
+ "properties": {
+ "name": {
+ "description": "The `Parameter` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "value": {
+ "description": "The `Parameter` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "value"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "readinessGate": {
+ "description": "Used to merge multiple branches into a single branch.",
+ "properties": {
+ "thresholdType": {
+ "description": "The definition of `ReadinessGateThresholdType` object.",
+ "enum": [
+ "ANY",
+ "ALL"
+ ],
+ "example": "ANY",
+ "type": "string",
+ "x-enum-varnames": [
+ "ANY",
+ "ALL"
+ ]
+ }
+ },
+ "required": [
+ "thresholdType"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "name",
+ "actionId"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "triggers": {
+ "description": "The list of triggers that activate this workflow. At least one trigger is required, and each trigger type may appear at most once.",
+ "items": {
+ "description": "One of the triggers that can start the execution of a workflow.",
+ "oneOf": [
+ {
+ "description": "Schema for an API-based trigger.",
+ "properties": {
+ "apiTrigger": {
+ "description": "Trigger a workflow VIA an API. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "apiTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an App-based trigger.",
+ "properties": {
+ "appTrigger": {
+ "description": "Trigger a workflow VIA an App.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "appTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Case-based trigger.",
+ "properties": {
+ "caseTrigger": {
+ "description": "Trigger a workflow VIA a Case. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "caseTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Change Event-based trigger.",
+ "properties": {
+ "changeEventTrigger": {
+ "description": "Trigger a workflow VIA a Change Event.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "changeEventTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Dashboard-based trigger.",
+ "properties": {
+ "dashboardTrigger": {
+ "description": "Trigger a workflow VIA a Dashboard.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "dashboardTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a GitHub webhook-based trigger.",
+ "properties": {
+ "githubWebhookTrigger": {
+ "description": "Trigger a workflow VIA GitHub webhook. To trigger a workflow from GitHub, you must set a `webhookSecret`. In your GitHub Webhook Settings, set the Payload URL to \"base_url\"/api/v2/workflows/\"workflow_id\"/webhook?orgId=\"org_id\", select application/json for the content type, and be highly recommend enabling SSL verification for security. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "githubWebhookTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an Incident-based trigger.",
+ "properties": {
+ "incidentTrigger": {
+ "description": "Trigger a workflow VIA an Incident. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "incidentTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Monitor-based trigger.",
+ "properties": {
+ "monitorTrigger": {
+ "description": "Trigger a workflow VIA a Monitor. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "monitorTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Schedule-based trigger.",
+ "properties": {
+ "scheduleTrigger": {
+ "description": "Trigger a workflow VIA a Schedule. The workflow must be published.",
+ "properties": {
+ "rruleExpression": {
+ "description": "Recurrence rule expression for scheduling.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "rruleExpression"
+ ],
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "scheduleTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Security-based trigger.",
+ "properties": {
+ "securityTrigger": {
+ "description": "Trigger a workflow VIA a Security Signal or Finding. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "securityTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Slack-based trigger.",
+ "properties": {
+ "slackTrigger": {
+ "description": "Trigger a workflow VIA Slack. The workflow must be published.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "slackTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Workflow-based trigger.",
+ "properties": {
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "workflowTrigger": {
+ "description": "Trigger a workflow VIA the Datadog UI. Only required if no other trigger exists.",
+ "type": "object"
+ }
+ },
+ "required": [
+ "workflowTrigger"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
},
- "column_start": {
- "description": "Location column start.",
- "example": 5,
- "format": "int64",
- "type": "integer"
+ "tags": {
+ "description": "Tags of the workflow.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
},
- "file_name": {
- "description": "Location file name.",
- "example": "src/go.mod",
+ "updatedAt": {
+ "description": "When the workflow was last updated.",
+ "format": "date-time",
+ "readOnly": true,
"type": "string"
},
- "line_end": {
- "description": "Location line end.",
- "example": 10,
- "format": "int64",
- "type": "integer"
- },
- "line_start": {
- "description": "Location line start.",
- "example": 1,
- "format": "int64",
- "type": "integer"
+ "webhookSecret": {
+ "description": "If a Webhook trigger is defined on this workflow, a webhookSecret is required and should be provided here.",
+ "type": "string",
+ "writeOnly": true
}
},
- "required": [
- "file_name",
- "line_start",
- "line_end",
- "column_start",
- "column_end"
- ],
"type": "object"
- }
- },
- "required": [
- "block"
- ],
- "type": "object"
- },
- "VulnerabilityEcosystem": {
- "description": "The related vulnerability asset ecosystem.",
- "enum": [
- "PyPI",
- "Maven",
- "NuGet",
- "Npm",
- "RubyGems",
- "Go",
- "Packagist",
- "Ddeb",
- "Rpm",
- "Apk",
- "Windows"
- ],
- "type": "string",
- "x-enum-varnames": [
- "PYPI",
- "MAVEN",
- "NUGET",
- "NPM",
- "RUBY_GEMS",
- "GO",
- "PACKAGIST",
- "D_DEB",
- "RPM",
- "APK",
- "WINDOWS"
- ]
- },
- "VulnerabilityRelationships": {
- "description": "Related entities object.",
- "properties": {
- "affects": {
- "description": "Relationship type.",
+ },
+ "id": {
+ "description": "The workflow identifier",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "The definition of `WorkflowDataRelationships` object.",
"properties": {
- "data": {
- "description": "Asset affected by this vulnerability.",
+ "creator": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
"properties": {
- "id": {
- "description": "The unique ID for this related asset.",
- "example": "Repository|github.com/DataDog/datadog-agent.git",
- "type": "string"
- },
- "type": {
- "description": "The JSON:API type.",
- "enum": [
- "assets"
+ "data": {
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
+ "properties": {
+ "id": {
+ "description": "The user identifier",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "id"
],
- "example": "assets",
- "type": "string",
- "x-enum-varnames": [
- "ASSETS"
- ]
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "owner": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
+ "properties": {
+ "data": {
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
+ "properties": {
+ "id": {
+ "description": "The user identifier",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "id"
+ ],
+ "type": "object"
}
},
- "required": [
- "id",
- "type"
- ],
"type": "object"
}
},
- "required": [
- "data"
- ],
- "type": "object"
- }
- },
- "required": [
- "affects"
- ],
- "type": "object"
- },
- "VulnerabilityRelationshipsAffects": {
- "description": "Relationship type.",
- "properties": {
- "data": {
- "description": "Asset affected by this vulnerability.",
- "properties": {
- "id": {
- "description": "The unique ID for this related asset.",
- "example": "Repository|github.com/DataDog/datadog-agent.git",
- "type": "string"
- },
- "type": {
- "description": "The JSON:API type.",
- "enum": [
- "assets"
- ],
- "example": "assets",
- "type": "string",
- "x-enum-varnames": [
- "ASSETS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
+ "readOnly": true,
"type": "object"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "VulnerabilityRelationshipsAffectsData": {
- "description": "Asset affected by this vulnerability.",
- "properties": {
- "id": {
- "description": "The unique ID for this related asset.",
- "example": "Repository|github.com/DataDog/datadog-agent.git",
- "type": "string"
},
"type": {
- "description": "The JSON:API type.",
+ "description": "The definition of `WorkflowDataType` object.",
"enum": [
- "assets"
+ "workflows"
],
- "example": "assets",
+ "example": "workflows",
"type": "string",
"x-enum-varnames": [
- "ASSETS"
+ "WORKFLOWS"
]
}
},
"required": [
- "id",
- "type"
+ "type",
+ "attributes"
],
"type": "object"
},
- "VulnerabilityRisks": {
- "description": "Vulnerability risks.",
+ "WorkflowDataUpdateAttributes": {
+ "description": "The definition of `WorkflowDataUpdateAttributes` object.",
"properties": {
- "epss": {
- "description": "Vulnerability EPSS severity.",
+ "createdAt": {
+ "description": "When the workflow was created.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of the workflow.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the workflow.",
+ "type": "string"
+ },
+ "published": {
+ "description": "Set the workflow to published or unpublished. Workflows in an unpublished state will only be executable via manual runs. Automatic triggers such as Schedule will not execute the workflow until it is published.",
+ "type": "boolean"
+ },
+ "spec": {
+ "description": "The spec defines what the workflow does.",
"properties": {
- "score": {
- "description": "Vulnerability EPSS severity score.",
- "example": 0.2,
- "format": "double",
- "type": "number"
+ "annotations": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "items": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "properties": {
+ "display": {
+ "description": "The definition of `AnnotationDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `AnnotationDisplayBounds` object.",
+ "properties": {
+ "height": {
+ "description": "The `bounds` `height`.",
+ "format": "double",
+ "type": "number"
+ },
+ "width": {
+ "description": "The `bounds` `width`.",
+ "format": "double",
+ "type": "number"
+ },
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The `Annotation` `id`.",
+ "example": "",
+ "type": "string"
+ },
+ "markdownTextAnnotation": {
+ "description": "The definition of `AnnotationMarkdownTextAnnotation` object.",
+ "properties": {
+ "text": {
+ "description": "The `markdownTextAnnotation` `text`.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "required": [
+ "id",
+ "display",
+ "markdownTextAnnotation"
+ ],
+ "type": "object"
+ },
+ "type": "array"
},
- "severity": {
- "description": "The vulnerability severity.",
- "enum": [
- "Unknown",
- "None",
- "Low",
- "Medium",
- "High",
- "Critical"
- ],
- "example": "Medium",
- "type": "string",
- "x-enum-varnames": [
- "UNKNOWN",
- "NONE",
- "LOW",
- "MEDIUM",
- "HIGH",
- "CRITICAL"
- ]
+ "connectionEnvs": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "items": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "properties": {
+ "connectionGroups": {
+ "description": "The `ConnectionEnv` `connectionGroups`.",
+ "items": {
+ "description": "The definition of `ConnectionGroup` object.",
+ "properties": {
+ "connectionGroupId": {
+ "description": "The `ConnectionGroup` `connectionGroupId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `ConnectionGroup` `label`.",
+ "example": "",
+ "type": "string"
+ },
+ "tags": {
+ "description": "The `ConnectionGroup` `tags`.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "connectionGroupId",
+ "label",
+ "tags"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "connections": {
+ "description": "The `ConnectionEnv` `connections`.",
+ "items": {
+ "description": "The definition of `Connection` object.",
+ "properties": {
+ "connectionId": {
+ "description": "The `Connection` `connectionId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `Connection` `label`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "connectionId",
+ "label"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "env": {
+ "description": "The definition of `ConnectionEnvEnv` object.",
+ "enum": [
+ "default"
+ ],
+ "example": "default",
+ "type": "string",
+ "x-enum-varnames": [
+ "DEFAULT"
+ ]
+ }
+ },
+ "required": [
+ "env"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "handle": {
+ "description": "Unique identifier used to trigger workflows automatically in Datadog.",
+ "type": "string"
+ },
+ "inputSchema": {
+ "description": "A list of input parameters for the workflow. These can be used as dynamic runtime values in your workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `InputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `InputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `InputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `InputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `InputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `InputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `InputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "outputSchema": {
+ "description": "A list of output parameters for the workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `OutputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `OutputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `OutputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `OutputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `OutputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `OutputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `OutputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ },
+ "value": {
+ "description": "The `OutputSchemaParameters` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "steps": {
+ "description": "A `Step` is a sub-component of a workflow. Each `Step` performs an action.",
+ "items": {
+ "description": "A Step is a sub-component of a workflow. Each Step performs an action.",
+ "properties": {
+ "actionId": {
+ "description": "The unique identifier of an action.",
+ "example": "",
+ "type": "string"
+ },
+ "completionGate": {
+ "description": "Used to create conditions before running subsequent actions.",
+ "properties": {
+ "completionCondition": {
+ "description": "The definition of `CompletionCondition` object.",
+ "properties": {
+ "operand1": {
+ "description": "The `CompletionCondition` `operand1`."
+ },
+ "operand2": {
+ "description": "The `CompletionCondition` `operand2`."
+ },
+ "operator": {
+ "description": "The definition of `CompletionConditionOperator` object.",
+ "enum": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ],
+ "example": "OPERATOR_EQUAL",
+ "type": "string",
+ "x-enum-varnames": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ]
+ }
+ },
+ "required": [
+ "operand1",
+ "operator"
+ ],
+ "type": "object"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "completionCondition",
+ "retryStrategy"
+ ],
+ "type": "object"
+ },
+ "connectionLabel": {
+ "description": "The unique identifier of a connection defined in the spec.",
+ "type": "string"
+ },
+ "display": {
+ "description": "The definition of `StepDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `StepDisplayBounds` object.",
+ "properties": {
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "errorHandlers": {
+ "description": "The `Step` `errorHandlers`.",
+ "items": {
+ "description": "Used to handle errors in an action.",
+ "properties": {
+ "fallbackStepName": {
+ "description": "The `ErrorHandler` `fallbackStepName`.",
+ "example": "",
+ "type": "string"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "retryStrategy",
+ "fallbackStepName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the step.",
+ "example": "",
+ "type": "string"
+ },
+ "outboundEdges": {
+ "description": "A list of subsequent actions to run.",
+ "items": {
+ "description": "The definition of `OutboundEdge` object.",
+ "properties": {
+ "branchName": {
+ "description": "The `OutboundEdge` `branchName`.",
+ "example": "",
+ "type": "string"
+ },
+ "nextStepName": {
+ "description": "The `OutboundEdge` `nextStepName`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "nextStepName",
+ "branchName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "parameters": {
+ "description": "A list of inputs for an action.",
+ "items": {
+ "description": "The definition of `Parameter` object.",
+ "properties": {
+ "name": {
+ "description": "The `Parameter` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "value": {
+ "description": "The `Parameter` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "value"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "readinessGate": {
+ "description": "Used to merge multiple branches into a single branch.",
+ "properties": {
+ "thresholdType": {
+ "description": "The definition of `ReadinessGateThresholdType` object.",
+ "enum": [
+ "ANY",
+ "ALL"
+ ],
+ "example": "ANY",
+ "type": "string",
+ "x-enum-varnames": [
+ "ANY",
+ "ALL"
+ ]
+ }
+ },
+ "required": [
+ "thresholdType"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "name",
+ "actionId"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "triggers": {
+ "description": "The list of triggers that activate this workflow. At least one trigger is required, and each trigger type may appear at most once.",
+ "items": {
+ "description": "One of the triggers that can start the execution of a workflow.",
+ "oneOf": [
+ {
+ "description": "Schema for an API-based trigger.",
+ "properties": {
+ "apiTrigger": {
+ "description": "Trigger a workflow VIA an API. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "apiTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an App-based trigger.",
+ "properties": {
+ "appTrigger": {
+ "description": "Trigger a workflow VIA an App.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "appTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Case-based trigger.",
+ "properties": {
+ "caseTrigger": {
+ "description": "Trigger a workflow VIA a Case. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "caseTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Change Event-based trigger.",
+ "properties": {
+ "changeEventTrigger": {
+ "description": "Trigger a workflow VIA a Change Event.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "changeEventTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Dashboard-based trigger.",
+ "properties": {
+ "dashboardTrigger": {
+ "description": "Trigger a workflow VIA a Dashboard.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "dashboardTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a GitHub webhook-based trigger.",
+ "properties": {
+ "githubWebhookTrigger": {
+ "description": "Trigger a workflow VIA GitHub webhook. To trigger a workflow from GitHub, you must set a `webhookSecret`. In your GitHub Webhook Settings, set the Payload URL to \"base_url\"/api/v2/workflows/\"workflow_id\"/webhook?orgId=\"org_id\", select application/json for the content type, and be highly recommend enabling SSL verification for security. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "githubWebhookTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an Incident-based trigger.",
+ "properties": {
+ "incidentTrigger": {
+ "description": "Trigger a workflow VIA an Incident. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "incidentTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Monitor-based trigger.",
+ "properties": {
+ "monitorTrigger": {
+ "description": "Trigger a workflow VIA a Monitor. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "monitorTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Schedule-based trigger.",
+ "properties": {
+ "scheduleTrigger": {
+ "description": "Trigger a workflow VIA a Schedule. The workflow must be published.",
+ "properties": {
+ "rruleExpression": {
+ "description": "Recurrence rule expression for scheduling.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "rruleExpression"
+ ],
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "scheduleTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Security-based trigger.",
+ "properties": {
+ "securityTrigger": {
+ "description": "Trigger a workflow VIA a Security Signal or Finding. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "securityTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Slack-based trigger.",
+ "properties": {
+ "slackTrigger": {
+ "description": "Trigger a workflow VIA Slack. The workflow must be published.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "slackTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Workflow-based trigger.",
+ "properties": {
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "workflowTrigger": {
+ "description": "Trigger a workflow VIA the Datadog UI. Only required if no other trigger exists.",
+ "type": "object"
+ }
+ },
+ "required": [
+ "workflowTrigger"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "type": "array"
}
},
- "required": [
- "score",
- "severity"
- ],
"type": "object"
},
- "exploit_available": {
- "description": "Vulnerability public exploit availability.",
- "example": false,
- "type": "boolean"
- },
- "exploit_sources": {
- "description": "Vulnerability exploit sources.",
- "example": [
- "NIST"
- ],
+ "tags": {
+ "description": "Tags of the workflow.",
"items": {
- "example": "NIST",
"type": "string"
},
"type": "array"
},
- "exploitation_probability": {
- "description": "Vulnerability exploitation probability.",
- "example": false,
- "type": "boolean"
+ "updatedAt": {
+ "description": "When the workflow was last updated.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
},
- "poc_exploit_available": {
- "description": "Vulnerability POC exploit availability.",
- "example": false,
- "type": "boolean"
+ "webhookSecret": {
+ "description": "If a Webhook trigger is defined on this workflow, a webhookSecret is required and should be provided here.",
+ "type": "string",
+ "writeOnly": true
}
},
- "required": [
- "exploitation_probability",
- "poc_exploit_available",
- "exploit_available",
- "exploit_sources"
- ],
"type": "object"
},
- "VulnerabilitySeverity": {
- "description": "The vulnerability severity.",
- "enum": [
- "Unknown",
- "None",
- "Low",
- "Medium",
- "High",
- "Critical"
- ],
- "example": "Medium",
- "type": "string",
- "x-enum-varnames": [
- "UNKNOWN",
- "NONE",
- "LOW",
- "MEDIUM",
- "HIGH",
- "CRITICAL"
- ]
- },
- "VulnerabilityStatus": {
- "description": "The vulnerability status.",
- "enum": [
- "Open",
- "Muted",
- "Remediated",
- "InProgress",
- "AutoClosed"
- ],
- "example": "Open",
- "type": "string",
- "x-enum-varnames": [
- "OPEN",
- "MUTED",
- "REMEDIATED",
- "INPROGRESS",
- "AUTOCLOSED"
- ]
- },
- "VulnerabilityTool": {
- "description": "The vulnerability tool.",
- "enum": [
- "IAST",
- "SCA",
- "Infra"
- ],
- "example": "SCA",
- "type": "string",
- "x-enum-varnames": [
- "IAST",
- "SCA",
- "INFRA"
- ]
- },
- "VulnerabilityType": {
- "description": "The vulnerability type.",
- "enum": [
- "AdminConsoleActive",
- "CodeInjection",
- "CommandInjection",
- "ComponentWithKnownVulnerability",
- "DangerousWorkflows",
- "DefaultAppDeployed",
- "DefaultHtmlEscapeInvalid",
- "DirectoryListingLeak",
- "EmailHtmlInjection",
- "EndOfLife",
- "HardcodedPassword",
- "HardcodedSecret",
- "HeaderInjection",
- "HstsHeaderMissing",
- "InsecureAuthProtocol",
- "InsecureCookie",
- "InsecureJspLayout",
- "LdapInjection",
- "MaliciousPackage",
- "MandatoryRemediation",
- "NoHttpOnlyCookie",
- "NoSameSiteCookie",
- "NoSqlMongoDbInjection",
- "PathTraversal",
- "ReflectionInjection",
- "RiskyLicense",
- "SessionRewriting",
- "SessionTimeout",
- "SqlInjection",
- "Ssrf",
- "StackTraceLeak",
- "TrustBoundaryViolation",
- "Unmaintained",
- "UntrustedDeserialization",
- "UnvalidatedRedirect",
- "VerbTampering",
- "WeakCipher",
- "WeakHash",
- "WeakRandomness",
- "XContentTypeHeaderMissing",
- "XPathInjection",
- "Xss"
- ],
- "example": "WeakCipher",
- "type": "string",
- "x-enum-varnames": [
- "ADMIN_CONSOLE_ACTIVE",
- "CODE_INJECTION",
- "COMMAND_INJECTION",
- "COMPONENT_WITH_KNOWN_VULNERABILITY",
- "DANGEROUS_WORKFLOWS",
- "DEFAULT_APP_DEPLOYED",
- "DEFAULT_HTML_ESCAPE_INVALID",
- "DIRECTORY_LISTING_LEAK",
- "EMAIL_HTML_INJECTION",
- "END_OF_LIFE",
- "HARDCODED_PASSWORD",
- "HARDCODED_SECRET",
- "HEADER_INJECTION",
- "HSTS_HEADER_MISSING",
- "INSECURE_AUTH_PROTOCOL",
- "INSECURE_COOKIE",
- "INSECURE_JSP_LAYOUT",
- "LDAP_INJECTION",
- "MALICIOUS_PACKAGE",
- "MANDATORY_REMEDIATION",
- "NO_HTTP_ONLY_COOKIE",
- "NO_SAME_SITE_COOKIE",
- "NO_SQL_MONGO_DB_INJECTION",
- "PATH_TRAVERSAL",
- "REFLECTION_INJECTION",
- "RISKY_LICENSE",
- "SESSION_REWRITING",
- "SESSION_TIMEOUT",
- "SQL_INJECTION",
- "SSRF",
- "STACK_TRACE_LEAK",
- "TRUST_BOUNDARY_VIOLATION",
- "UNMAINTAINED",
- "UNTRUSTED_DESERIALIZATION",
- "UNVALIDATED_REDIRECT",
- "VERB_TAMPERING",
- "WEAK_CIPHER",
- "WEAK_HASH",
- "WEAK_RANDOMNESS",
- "X_CONTENT_TYPE_HEADER_MISSING",
- "X_PATH_INJECTION",
- "XSS"
- ]
- },
- "WidgetLiveSpan": {
- "description": "The available timeframes depend on the widget you are using.",
- "enum": [
- "1m",
- "5m",
- "10m",
- "15m",
- "30m",
- "1h",
- "4h",
- "1d",
- "2d",
- "1w",
- "1mo",
- "3mo",
- "6mo",
- "1y",
- "alert"
- ],
- "example": "5m",
- "type": "string",
- "x-enum-varnames": [
- "PAST_ONE_MINUTE",
- "PAST_FIVE_MINUTES",
- "PAST_TEN_MINUTES",
- "PAST_FIFTEEN_MINUTES",
- "PAST_THIRTY_MINUTES",
- "PAST_ONE_HOUR",
- "PAST_FOUR_HOURS",
- "PAST_ONE_DAY",
- "PAST_TWO_DAYS",
- "PAST_ONE_WEEK",
- "PAST_ONE_MONTH",
- "PAST_THREE_MONTHS",
- "PAST_SIX_MONTHS",
- "PAST_ONE_YEAR",
- "ALERT"
- ]
- },
"WorkflowInstanceCreateMeta": {
"description": "Additional information for creating a workflow instance.",
"properties": {
@@ -214320,6 +233107,99 @@
},
"type": "object"
},
+ "WorkflowTriggerWrapper": {
+ "description": "Schema for a Workflow-based trigger.",
+ "properties": {
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "workflowTrigger": {
+ "description": "Trigger a workflow VIA the Datadog UI. Only required if no other trigger exists.",
+ "type": "object"
+ }
+ },
+ "required": [
+ "workflowTrigger"
+ ],
+ "type": "object"
+ },
+ "WorkflowUserRelationship": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
+ "properties": {
+ "data": {
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
+ "properties": {
+ "id": {
+ "description": "The user identifier",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "id"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "WorkflowUserRelationshipData": {
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
+ "properties": {
+ "id": {
+ "description": "The user identifier",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "id"
+ ],
+ "type": "object"
+ },
+ "WorkflowUserRelationshipType": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ },
"WorklflowCancelInstanceResponse": {
"description": "Information about the canceled instance.",
"properties": {
@@ -369147,6 +388027,1578 @@
}
}
},
+ "/api/v2/security_monitoring/rules/{rule_id}/version_history": {
+ "get": {
+ "description": "Get a rule's version history.",
+ "operationId": "GetRuleVersionHistory",
+ "parameters": [
+ {
+ "description": "The ID of the rule.",
+ "in": "path",
+ "name": "rule_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "Size for a given page. The maximum allowed value is 100.",
+ "in": "query",
+ "name": "page[size]",
+ "required": false,
+ "schema": {
+ "default": 10,
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ {
+ "description": "Specific page number to return.",
+ "in": "query",
+ "name": "page[number]",
+ "required": false,
+ "schema": {
+ "default": 0,
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Response for getting the rule version history.",
+ "properties": {
+ "data": {
+ "description": "Data for the rule version history.",
+ "properties": {
+ "attributes": {
+ "description": "Response object containing the version history of a rule.",
+ "properties": {
+ "count": {
+ "description": "The number of rule versions.",
+ "format": "int32",
+ "maximum": 2147483647,
+ "type": "integer"
+ },
+ "data": {
+ "additionalProperties": {
+ "description": "A rule version with a list of updates.",
+ "properties": {
+ "changes": {
+ "description": "A list of changes.",
+ "items": {
+ "description": "A change in a rule version.",
+ "properties": {
+ "change": {
+ "description": "The new value of the field.",
+ "example": "cloud_provider:aws",
+ "type": "string"
+ },
+ "field": {
+ "description": "The field that was changed.",
+ "example": "Tags",
+ "type": "string"
+ },
+ "type": {
+ "description": "The type of change.",
+ "enum": [
+ "create",
+ "update",
+ "delete"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "CREATE",
+ "UPDATE",
+ "DELETE"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "rule": {
+ "description": "Create a new rule.",
+ "oneOf": [
+ {
+ "description": "Rule.",
+ "properties": {
+ "cases": {
+ "description": "Cases for generating signals.",
+ "items": {
+ "description": "Case when signal is generated.",
+ "properties": {
+ "actions": {
+ "description": "Action to perform for each rule case.",
+ "items": {
+ "description": "Action to perform when a signal is triggered. Only available for Application Security rule type.",
+ "properties": {
+ "options": {
+ "description": "Options for the rule action",
+ "properties": {
+ "duration": {
+ "description": "Duration of the action in seconds. 0 indicates no expiration.",
+ "example": 0,
+ "format": "int64",
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "description": "The action type.",
+ "enum": [
+ "block_ip",
+ "block_user"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "BLOCK_IP",
+ "BLOCK_USER"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "condition": {
+ "description": "A rule case contains logical operations (`>`,`>=`, `&&`, `||`) to determine if a signal should be generated\nbased on the event counts in the previously defined queries.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the case.",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notification targets for each rule case.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "status": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "complianceSignalOptions": {
+ "description": "How to generate compliance signals. Useful for cloud_configuration rules only.",
+ "properties": {
+ "defaultActivationStatus": {
+ "description": "The default activation status.",
+ "nullable": true,
+ "type": "boolean"
+ },
+ "defaultGroupByFields": {
+ "description": "The default group by fields.",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true,
+ "type": "array"
+ },
+ "userActivationStatus": {
+ "description": "Whether signals will be sent.",
+ "nullable": true,
+ "type": "boolean"
+ },
+ "userGroupByFields": {
+ "description": "Fields to use to group findings by when sending signals.",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true,
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "createdAt": {
+ "description": "When the rule was created, timestamp in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "creationAuthorId": {
+ "description": "User ID of the user who created the rule.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "defaultTags": {
+ "description": "Default Tags for default rules (included in tags)",
+ "example": [
+ "security:attacks"
+ ],
+ "items": {
+ "description": "Default Tag.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "deprecationDate": {
+ "description": "When the rule will be deprecated, timestamp in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "filters": {
+ "description": "Additional queries to filter matched events before they are processed. This field is deprecated for log detection, signal correlation, and workload security rules.",
+ "items": {
+ "description": "The rule's suppression filter.",
+ "properties": {
+ "action": {
+ "description": "The type of filtering action.",
+ "enum": [
+ "require",
+ "suppress"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "REQUIRE",
+ "SUPPRESS"
+ ]
+ },
+ "query": {
+ "description": "Query for selecting logs to apply the filtering action.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "groupSignalsBy": {
+ "description": "Additional grouping to perform on top of the existing groups in the query section. Must be a subset of the existing groups.",
+ "example": [
+ "service"
+ ],
+ "items": {
+ "description": "Field to group by.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "hasExtendedTitle": {
+ "description": "Whether the notifications include the triggering group-by values in their title.",
+ "type": "boolean"
+ },
+ "id": {
+ "description": "The ID of the rule.",
+ "type": "string"
+ },
+ "isDefault": {
+ "description": "Whether the rule is included by default.",
+ "type": "boolean"
+ },
+ "isDeleted": {
+ "description": "Whether the rule has been deleted.",
+ "type": "boolean"
+ },
+ "isEnabled": {
+ "description": "Whether the rule is enabled.",
+ "type": "boolean"
+ },
+ "message": {
+ "description": "Message for generated signals.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the rule.",
+ "type": "string"
+ },
+ "options": {
+ "description": "Options.",
+ "properties": {
+ "complianceRuleOptions": {
+ "additionalProperties": {},
+ "description": "Options for cloud_configuration rules.\nFields `resourceType` and `regoRule` are mandatory when managing custom `cloud_configuration` rules.\n",
+ "properties": {
+ "complexRule": {
+ "description": "Whether the rule is a complex one.\nMust be set to true if `regoRule.resourceTypes` contains more than one item. Defaults to false.\n",
+ "type": "boolean"
+ },
+ "regoRule": {
+ "description": "Rule details.",
+ "properties": {
+ "policy": {
+ "description": "The policy written in `rego`, see: https://www.openpolicyagent.org/docs/latest/policy-language/",
+ "example": "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}\n",
+ "type": "string"
+ },
+ "resourceTypes": {
+ "description": "List of resource types that will be evaluated upon. Must have at least one element.",
+ "example": [
+ "gcp_iam_service_account",
+ "gcp_iam_policy"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "policy",
+ "resourceTypes"
+ ],
+ "type": "object"
+ },
+ "resourceType": {
+ "description": "Main resource type to be checked by the rule. It should be specified again in `regoRule.resourceTypes`.\n",
+ "example": "aws_acm",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "decreaseCriticalityBasedOnEnv": {
+ "description": "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`.",
+ "example": false,
+ "type": "boolean"
+ },
+ "detectionMethod": {
+ "description": "The detection method.",
+ "enum": [
+ "threshold",
+ "new_value",
+ "anomaly_detection",
+ "impossible_travel",
+ "hardcoded",
+ "third_party",
+ "anomaly_threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "THRESHOLD",
+ "NEW_VALUE",
+ "ANOMALY_DETECTION",
+ "IMPOSSIBLE_TRAVEL",
+ "HARDCODED",
+ "THIRD_PARTY",
+ "ANOMALY_THRESHOLD"
+ ]
+ },
+ "evaluationWindow": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS"
+ ]
+ },
+ "hardcodedEvaluatorType": {
+ "description": "Hardcoded evaluator type.",
+ "enum": [
+ "log4shell"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "LOG4SHELL"
+ ]
+ },
+ "impossibleTravelOptions": {
+ "description": "Options on impossible travel detection method.",
+ "properties": {
+ "baselineUserLocations": {
+ "description": "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.",
+ "example": true,
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "keepAlive": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS"
+ ]
+ },
+ "maxSignalDuration": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600,
+ 43200,
+ 86400
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS",
+ "TWELVE_HOURS",
+ "ONE_DAY"
+ ]
+ },
+ "newValueOptions": {
+ "description": "Options on new value detection method.",
+ "properties": {
+ "forgetAfter": {
+ "description": "The duration in days after which a learned value is forgotten.",
+ "enum": [
+ 1,
+ 2,
+ 7,
+ 14,
+ 21,
+ 28
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ONE_DAY",
+ "TWO_DAYS",
+ "ONE_WEEK",
+ "TWO_WEEKS",
+ "THREE_WEEKS",
+ "FOUR_WEEKS"
+ ]
+ },
+ "learningDuration": {
+ "default": 0,
+ "description": "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.",
+ "enum": [
+ 0,
+ 1,
+ 7
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_DAYS",
+ "ONE_DAY",
+ "SEVEN_DAYS"
+ ]
+ },
+ "learningMethod": {
+ "default": "duration",
+ "description": "The learning method used to determine when signals should be generated for values that weren't learned.",
+ "enum": [
+ "duration",
+ "threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "DURATION",
+ "THRESHOLD"
+ ]
+ },
+ "learningThreshold": {
+ "default": 0,
+ "description": "A number of occurrences after which signals will be generated for values that weren't learned.",
+ "enum": [
+ 0,
+ 1
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_OCCURRENCES",
+ "ONE_OCCURRENCE"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "thirdPartyRuleOptions": {
+ "description": "Options on third party detection method.",
+ "properties": {
+ "defaultNotifications": {
+ "description": "Notification targets for the logs that do not correspond to any of the cases.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "defaultStatus": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ },
+ "rootQueries": {
+ "description": "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.",
+ "items": {
+ "description": "A query to be combined with the third party case query.",
+ "properties": {
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "query": {
+ "description": "Query to run on logs.",
+ "example": "source:cloudtrail",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "signalTitleTemplate": {
+ "description": "A template for the signal title; if omitted, the title is generated based on the case name.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "queries": {
+ "description": "Queries for selecting logs which are part of the rule.",
+ "items": {
+ "description": "Query for matching rule.",
+ "properties": {
+ "aggregation": {
+ "description": "The aggregation type.",
+ "enum": [
+ "count",
+ "cardinality",
+ "sum",
+ "max",
+ "new_value",
+ "geo_data",
+ "event_count",
+ "none"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "COUNT",
+ "CARDINALITY",
+ "SUM",
+ "MAX",
+ "NEW_VALUE",
+ "GEO_DATA",
+ "EVENT_COUNT",
+ "NONE"
+ ]
+ },
+ "distinctFields": {
+ "description": "Field for which the cardinality is measured. Sent as an array.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "hasOptionalGroupByFields": {
+ "description": "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.",
+ "example": false,
+ "readOnly": true,
+ "type": "boolean"
+ },
+ "metric": {
+ "deprecated": true,
+ "description": "(Deprecated) The target field to aggregate over when using the sum or max\naggregations. `metrics` field should be used instead.",
+ "type": "string"
+ },
+ "metrics": {
+ "description": "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.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the query.",
+ "type": "string"
+ },
+ "query": {
+ "description": "Query to run on logs.",
+ "example": "a > 3",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "referenceTables": {
+ "description": "Reference tables for the rule.",
+ "items": {
+ "description": "Reference tables used in the queries.",
+ "properties": {
+ "checkPresence": {
+ "description": "Whether to include or exclude the matched values.",
+ "type": "boolean"
+ },
+ "columnName": {
+ "description": "The name of the column in the reference table.",
+ "type": "string"
+ },
+ "logFieldPath": {
+ "description": "The field in the log to match against the reference table.",
+ "type": "string"
+ },
+ "ruleQueryName": {
+ "description": "The name of the query to apply the reference table to.",
+ "type": "string"
+ },
+ "tableName": {
+ "description": "The name of the reference table.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "tags": {
+ "description": "Tags for generated signals.",
+ "items": {
+ "description": "Tag.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "thirdPartyCases": {
+ "description": "Cases for generating signals from third-party rules. Only available for third-party rules.",
+ "example": [],
+ "items": {
+ "description": "Case when signal is generated by a third party rule.",
+ "properties": {
+ "name": {
+ "description": "Name of the case.",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notification targets for each rule case.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "query": {
+ "description": "A query to map a third party event to this case.",
+ "type": "string"
+ },
+ "status": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "type": {
+ "description": "The rule type.",
+ "enum": [
+ "log_detection",
+ "infrastructure_configuration",
+ "workload_security",
+ "cloud_configuration",
+ "application_security"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "LOG_DETECTION",
+ "INFRASTRUCTURE_CONFIGURATION",
+ "WORKLOAD_SECURITY",
+ "CLOUD_CONFIGURATION",
+ "APPLICATION_SECURITY"
+ ]
+ },
+ "updateAuthorId": {
+ "description": "User ID of the user who updated the rule.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "updatedAt": {
+ "description": "The date the rule was last updated, in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "version": {
+ "description": "The version of the rule.",
+ "format": "int64",
+ "type": "integer"
+ }
+ }
+ },
+ {
+ "description": "Rule.",
+ "properties": {
+ "cases": {
+ "description": "Cases for generating signals.",
+ "items": {
+ "description": "Case when signal is generated.",
+ "properties": {
+ "actions": {
+ "description": "Action to perform for each rule case.",
+ "items": {
+ "description": "Action to perform when a signal is triggered. Only available for Application Security rule type.",
+ "properties": {
+ "options": {
+ "description": "Options for the rule action",
+ "properties": {
+ "duration": {
+ "description": "Duration of the action in seconds. 0 indicates no expiration.",
+ "example": 0,
+ "format": "int64",
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "description": "The action type.",
+ "enum": [
+ "block_ip",
+ "block_user"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "BLOCK_IP",
+ "BLOCK_USER"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "condition": {
+ "description": "A rule case contains logical operations (`>`,`>=`, `&&`, `||`) to determine if a signal should be generated\nbased on the event counts in the previously defined queries.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the case.",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notification targets for each rule case.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "status": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "createdAt": {
+ "description": "When the rule was created, timestamp in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "creationAuthorId": {
+ "description": "User ID of the user who created the rule.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "deprecationDate": {
+ "description": "When the rule will be deprecated, timestamp in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "filters": {
+ "description": "Additional queries to filter matched events before they are processed. This field is deprecated for log detection, signal correlation, and workload security rules.",
+ "items": {
+ "description": "The rule's suppression filter.",
+ "properties": {
+ "action": {
+ "description": "The type of filtering action.",
+ "enum": [
+ "require",
+ "suppress"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "REQUIRE",
+ "SUPPRESS"
+ ]
+ },
+ "query": {
+ "description": "Query for selecting logs to apply the filtering action.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "hasExtendedTitle": {
+ "description": "Whether the notifications include the triggering group-by values in their title.",
+ "type": "boolean"
+ },
+ "id": {
+ "description": "The ID of the rule.",
+ "type": "string"
+ },
+ "isDefault": {
+ "description": "Whether the rule is included by default.",
+ "type": "boolean"
+ },
+ "isDeleted": {
+ "description": "Whether the rule has been deleted.",
+ "type": "boolean"
+ },
+ "isEnabled": {
+ "description": "Whether the rule is enabled.",
+ "type": "boolean"
+ },
+ "message": {
+ "description": "Message for generated signals.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the rule.",
+ "type": "string"
+ },
+ "options": {
+ "description": "Options.",
+ "properties": {
+ "complianceRuleOptions": {
+ "additionalProperties": {},
+ "description": "Options for cloud_configuration rules.\nFields `resourceType` and `regoRule` are mandatory when managing custom `cloud_configuration` rules.\n",
+ "properties": {
+ "complexRule": {
+ "description": "Whether the rule is a complex one.\nMust be set to true if `regoRule.resourceTypes` contains more than one item. Defaults to false.\n",
+ "type": "boolean"
+ },
+ "regoRule": {
+ "description": "Rule details.",
+ "properties": {
+ "policy": {
+ "description": "The policy written in `rego`, see: https://www.openpolicyagent.org/docs/latest/policy-language/",
+ "example": "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}\n",
+ "type": "string"
+ },
+ "resourceTypes": {
+ "description": "List of resource types that will be evaluated upon. Must have at least one element.",
+ "example": [
+ "gcp_iam_service_account",
+ "gcp_iam_policy"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "policy",
+ "resourceTypes"
+ ],
+ "type": "object"
+ },
+ "resourceType": {
+ "description": "Main resource type to be checked by the rule. It should be specified again in `regoRule.resourceTypes`.\n",
+ "example": "aws_acm",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "decreaseCriticalityBasedOnEnv": {
+ "description": "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`.",
+ "example": false,
+ "type": "boolean"
+ },
+ "detectionMethod": {
+ "description": "The detection method.",
+ "enum": [
+ "threshold",
+ "new_value",
+ "anomaly_detection",
+ "impossible_travel",
+ "hardcoded",
+ "third_party",
+ "anomaly_threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "THRESHOLD",
+ "NEW_VALUE",
+ "ANOMALY_DETECTION",
+ "IMPOSSIBLE_TRAVEL",
+ "HARDCODED",
+ "THIRD_PARTY",
+ "ANOMALY_THRESHOLD"
+ ]
+ },
+ "evaluationWindow": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS"
+ ]
+ },
+ "hardcodedEvaluatorType": {
+ "description": "Hardcoded evaluator type.",
+ "enum": [
+ "log4shell"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "LOG4SHELL"
+ ]
+ },
+ "impossibleTravelOptions": {
+ "description": "Options on impossible travel detection method.",
+ "properties": {
+ "baselineUserLocations": {
+ "description": "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.",
+ "example": true,
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "keepAlive": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS"
+ ]
+ },
+ "maxSignalDuration": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600,
+ 43200,
+ 86400
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS",
+ "TWELVE_HOURS",
+ "ONE_DAY"
+ ]
+ },
+ "newValueOptions": {
+ "description": "Options on new value detection method.",
+ "properties": {
+ "forgetAfter": {
+ "description": "The duration in days after which a learned value is forgotten.",
+ "enum": [
+ 1,
+ 2,
+ 7,
+ 14,
+ 21,
+ 28
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ONE_DAY",
+ "TWO_DAYS",
+ "ONE_WEEK",
+ "TWO_WEEKS",
+ "THREE_WEEKS",
+ "FOUR_WEEKS"
+ ]
+ },
+ "learningDuration": {
+ "default": 0,
+ "description": "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.",
+ "enum": [
+ 0,
+ 1,
+ 7
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_DAYS",
+ "ONE_DAY",
+ "SEVEN_DAYS"
+ ]
+ },
+ "learningMethod": {
+ "default": "duration",
+ "description": "The learning method used to determine when signals should be generated for values that weren't learned.",
+ "enum": [
+ "duration",
+ "threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "DURATION",
+ "THRESHOLD"
+ ]
+ },
+ "learningThreshold": {
+ "default": 0,
+ "description": "A number of occurrences after which signals will be generated for values that weren't learned.",
+ "enum": [
+ 0,
+ 1
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_OCCURRENCES",
+ "ONE_OCCURRENCE"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "thirdPartyRuleOptions": {
+ "description": "Options on third party detection method.",
+ "properties": {
+ "defaultNotifications": {
+ "description": "Notification targets for the logs that do not correspond to any of the cases.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "defaultStatus": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ },
+ "rootQueries": {
+ "description": "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.",
+ "items": {
+ "description": "A query to be combined with the third party case query.",
+ "properties": {
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "query": {
+ "description": "Query to run on logs.",
+ "example": "source:cloudtrail",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "signalTitleTemplate": {
+ "description": "A template for the signal title; if omitted, the title is generated based on the case name.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "queries": {
+ "description": "Queries for selecting logs which are part of the rule.",
+ "items": {
+ "description": "Query for matching rule on signals.",
+ "properties": {
+ "aggregation": {
+ "description": "The aggregation type.",
+ "enum": [
+ "count",
+ "cardinality",
+ "sum",
+ "max",
+ "new_value",
+ "geo_data",
+ "event_count",
+ "none"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "COUNT",
+ "CARDINALITY",
+ "SUM",
+ "MAX",
+ "NEW_VALUE",
+ "GEO_DATA",
+ "EVENT_COUNT",
+ "NONE"
+ ]
+ },
+ "correlatedByFields": {
+ "description": "Fields to correlate by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "correlatedQueryIndex": {
+ "description": "Index of the rule query used to retrieve the correlated field.",
+ "format": "int32",
+ "maximum": 9,
+ "type": "integer"
+ },
+ "defaultRuleId": {
+ "description": "Default Rule ID to match on signals.",
+ "example": "d3f-ru1-e1d",
+ "type": "string"
+ },
+ "distinctFields": {
+ "description": "Field for which the cardinality is measured. Sent as an array.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "metrics": {
+ "description": "Group of target fields to aggregate over.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the query.",
+ "type": "string"
+ },
+ "ruleId": {
+ "description": "Rule ID to match on signals.",
+ "example": "org-ru1-e1d",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "tags": {
+ "description": "Tags for generated signals.",
+ "items": {
+ "description": "Tag.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "type": {
+ "description": "The rule type.",
+ "enum": [
+ "signal_correlation"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "SIGNAL_CORRELATION"
+ ]
+ },
+ "updateAuthorId": {
+ "description": "User ID of the user who updated the rule.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "version": {
+ "description": "The version of the rule.",
+ "format": "int64",
+ "type": "integer"
+ }
+ }
+ }
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "description": "The `RuleVersionHistory` `data`.",
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the rule.",
+ "type": "string"
+ },
+ "type": {
+ "description": "Type of data.",
+ "enum": [
+ "GetRuleVersionHistoryResponse"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "GETRULEVERSIONHISTORYRESPONSE"
+ ]
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "OK"
+ },
+ "400": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Bad Request"
+ },
+ "403": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Not Authorized"
+ },
+ "404": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Not Found"
+ },
+ "429": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Too many requests"
+ }
+ },
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
+ },
+ {
+ "AuthZ": [
+ "security_monitoring_rules_read"
+ ]
+ }
+ ],
+ "summary": "Get a rule's version history",
+ "tags": [
+ "Security Monitoring"
+ ],
+ "x-menu-order": 25,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "security_monitoring_rules_read"
+ ]
+ },
+ "x-undo": {
+ "type": "safe"
+ },
+ "x-unstable": "**Note**: This endpoint is in beta and may be subject to changes."
+ }
+ },
"/api/v2/security_monitoring/signals": {
"get": {
"description": "The list endpoint returns security signals that match a search query.\nBoth this endpoint and the POST endpoint can be used interchangeably when listing\nsecurity signals.",
@@ -373503,35 +393955,852 @@
"type": "object"
}
},
- "type": "object"
+ "type": "object"
+ },
+ "type": {
+ "default": "sensitive_data_scanner_rule",
+ "description": "Sensitive Data Scanner rule type.",
+ "enum": [
+ "sensitive_data_scanner_rule"
+ ],
+ "example": "sensitive_data_scanner_rule",
+ "type": "string",
+ "x-enum-varnames": [
+ "SENSITIVE_DATA_SCANNER_RULE"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "meta": {
+ "description": "Meta payload containing information about the API.",
+ "properties": {
+ "version": {
+ "description": "Version of the API (optional).",
+ "example": 0,
+ "format": "int64",
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "OK"
+ },
+ "400": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Bad Request"
+ },
+ "403": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Authentication Error"
+ },
+ "429": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Too many requests"
+ }
+ },
+ "summary": "Create Scanning Rule",
+ "tags": [
+ "Sensitive Data Scanner"
+ ],
+ "x-codegen-request-body-name": "body",
+ "x-given": {
+ "rule": {
+ "parameters": [
+ {
+ "name": "body",
+ "value": "{\n \"data\": {\n \"type\": \"sensitive_data_scanner_rule\",\n \"attributes\": {\n \"name\": \"{{ unique }}\",\n \"pattern\": \"pattern\",\n \"namespaces\": [\"admin.email\"],\n \"text_replacement\": {\n \"type\": \"none\"\n },\n \"tags\":[\n \"sensitive_data:true\"\n ],\n \"is_enabled\":true\n },\n \"relationships\": {\n \"group\": {\n \"data\": {\n \"id\": \"{{ group.data.id }}\",\n \"type\": \"{{ group.data.type }}\"\n }\n }\n }\n },\n \"meta\": {}\n}"
+ }
+ ],
+ "step": "the \"scanning_group\" has a \"scanning_rule\""
+ }
+ },
+ "x-menu-order": 7,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "data_scanner_write"
+ ]
+ },
+ "x-undo": {
+ "operationId": "DeleteScanningRule",
+ "parameters": [
+ {
+ "name": "rule_id",
+ "source": "data.id"
+ },
+ {
+ "name": "body",
+ "template": "{\n \"meta\": {}\n}"
+ }
+ ],
+ "type": "unsafe"
+ }
+ }
+ },
+ "/api/v2/sensitive-data-scanner/config/rules/{rule_id}": {
+ "delete": {
+ "description": "Delete a given rule.",
+ "operationId": "DeleteScanningRule",
+ "parameters": [
+ {
+ "description": "The ID of the rule.",
+ "in": "path",
+ "name": "rule_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Delete rule request.",
+ "properties": {
+ "meta": {
+ "description": "Meta payload containing information about the API.",
+ "properties": {
+ "version": {
+ "description": "Version of the API (optional).",
+ "example": 0,
+ "format": "int64",
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "required": [
+ "meta"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Delete rule response.",
+ "properties": {
+ "meta": {
+ "description": "Meta payload containing information about the API.",
+ "properties": {
+ "version": {
+ "description": "Version of the API (optional).",
+ "example": 0,
+ "format": "int64",
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "OK"
+ },
+ "400": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Bad Request"
+ },
+ "403": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Authentication Error"
+ },
+ "404": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Not Found"
+ },
+ "429": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Too many requests"
+ }
+ },
+ "summary": "Delete Scanning Rule",
+ "tags": [
+ "Sensitive Data Scanner"
+ ],
+ "x-codegen-request-body-name": "body",
+ "x-menu-order": 9,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "data_scanner_write"
+ ]
+ },
+ "x-undo": {
+ "type": "idempotent"
+ }
+ },
+ "patch": {
+ "description": "Update a scanning rule.\nThe request body MUST NOT include a standard_pattern relationship, as that relationship\nis non-editable. Trying to edit the regex attribute of a rule with a standard_pattern\nrelationship will also result in an error.",
+ "operationId": "UpdateScanningRule",
+ "parameters": [
+ {
+ "description": "The ID of the rule.",
+ "in": "path",
+ "name": "rule_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Update rule request.",
+ "properties": {
+ "data": {
+ "description": "Data related to the update of a rule.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of the Sensitive Data Scanner rule.",
+ "properties": {
+ "description": {
+ "description": "Description of the rule.",
+ "type": "string"
+ },
+ "excluded_namespaces": {
+ "description": "Attributes excluded from the scan. If namespaces is provided, it has to be a sub-path of the namespaces array.",
+ "example": [
+ "admin.name"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "included_keyword_configuration": {
+ "description": "Object defining a set of keywords and a number of characters that help reduce noise.\nYou can provide a list of keywords you would like to check within a defined proximity of the matching pattern.\nIf any of the keywords are found within the proximity check, the match is kept.\nIf none are found, the match is discarded.",
+ "properties": {
+ "character_count": {
+ "description": "The number of characters behind a match detected by Sensitive Data Scanner to look for the keywords defined.\n`character_count` should be greater than the maximum length of a keyword defined for a rule.",
+ "example": 30,
+ "format": "int64",
+ "maximum": 50,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "keywords": {
+ "description": "Keyword list that will be checked during scanning in order to validate a match.\nThe number of keywords in the list must be less than or equal to 30.",
+ "example": [
+ "credit card",
+ "cc"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "use_recommended_keywords": {
+ "description": "Should the rule use the underlying standard pattern keyword configuration. If set to `true`, the rule must be tied\nto a standard pattern. If set to `false`, the specified keywords and `character_count` are applied.",
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "keywords",
+ "character_count"
+ ],
+ "type": "object"
+ },
+ "is_enabled": {
+ "description": "Whether or not the rule is enabled.",
+ "type": "boolean"
+ },
+ "name": {
+ "description": "Name of the rule.",
+ "type": "string"
+ },
+ "namespaces": {
+ "description": "Attributes included in the scan. If namespaces is empty or missing, all attributes except excluded_namespaces are scanned.\nIf both are missing the whole event is scanned.",
+ "example": [
+ "admin"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "pattern": {
+ "description": "Not included if there is a relationship to a standard pattern.",
+ "type": "string"
+ },
+ "priority": {
+ "description": "Integer from 1 (high) to 5 (low) indicating rule issue severity.",
+ "format": "int64",
+ "maximum": 5,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "tags": {
+ "description": "List of tags.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "text_replacement": {
+ "description": "Object describing how the scanned event will be replaced.",
+ "properties": {
+ "number_of_chars": {
+ "description": "Required if type == 'partial_replacement_from_beginning'\nor 'partial_replacement_from_end'. It must be > 0.",
+ "format": "int64",
+ "minimum": 0,
+ "type": "integer"
+ },
+ "replacement_string": {
+ "description": "Required if type == 'replacement_string'.",
+ "type": "string"
+ },
+ "type": {
+ "default": "none",
+ "description": "Type of the replacement text. None means no replacement.\nhash means the data will be stubbed. replacement_string means that\none can chose a text to replace the data. partial_replacement_from_beginning\nallows a user to partially replace the data from the beginning, and\npartial_replacement_from_end on the other hand, allows to replace data from\nthe end.",
+ "enum": [
+ "none",
+ "hash",
+ "replacement_string",
+ "partial_replacement_from_beginning",
+ "partial_replacement_from_end"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "NONE",
+ "HASH",
+ "REPLACEMENT_STRING",
+ "PARTIAL_REPLACEMENT_FROM_BEGINNING",
+ "PARTIAL_REPLACEMENT_FROM_END"
+ ]
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the rule.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships of a scanning rule.",
+ "properties": {
+ "group": {
+ "description": "A scanning group data.",
+ "properties": {
+ "data": {
+ "description": "A scanning group.",
+ "properties": {
+ "id": {
+ "description": "ID of the group.",
+ "type": "string"
+ },
+ "type": {
+ "default": "sensitive_data_scanner_group",
+ "description": "Sensitive Data Scanner group type.",
+ "enum": [
+ "sensitive_data_scanner_group"
+ ],
+ "example": "sensitive_data_scanner_group",
+ "type": "string",
+ "x-enum-varnames": [
+ "SENSITIVE_DATA_SCANNER_GROUP"
+ ]
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "standard_pattern": {
+ "description": "A standard pattern.",
+ "properties": {
+ "data": {
+ "description": "Data containing the standard pattern id.",
+ "properties": {
+ "id": {
+ "description": "ID of the standard pattern.",
+ "type": "string"
+ },
+ "type": {
+ "default": "sensitive_data_scanner_standard_pattern",
+ "description": "Sensitive Data Scanner standard pattern type.",
+ "enum": [
+ "sensitive_data_scanner_standard_pattern"
+ ],
+ "example": "sensitive_data_scanner_standard_pattern",
+ "type": "string",
+ "x-enum-varnames": [
+ "SENSITIVE_DATA_SCANNER_STANDARD_PATTERN"
+ ]
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "default": "sensitive_data_scanner_rule",
+ "description": "Sensitive Data Scanner rule type.",
+ "enum": [
+ "sensitive_data_scanner_rule"
+ ],
+ "example": "sensitive_data_scanner_rule",
+ "type": "string",
+ "x-enum-varnames": [
+ "SENSITIVE_DATA_SCANNER_RULE"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "meta": {
+ "description": "Meta payload containing information about the API.",
+ "properties": {
+ "version": {
+ "description": "Version of the API (optional).",
+ "example": 0,
+ "format": "int64",
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "required": [
+ "data",
+ "meta"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Update rule response.",
+ "properties": {
+ "meta": {
+ "description": "Meta payload containing information about the API.",
+ "properties": {
+ "version": {
+ "description": "Version of the API (optional).",
+ "example": 0,
+ "format": "int64",
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "OK"
+ },
+ "400": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Bad Request"
+ },
+ "403": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Authentication Error"
+ },
+ "404": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Not Found"
+ },
+ "429": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Too many requests"
+ }
+ },
+ "summary": "Update Scanning Rule",
+ "tags": [
+ "Sensitive Data Scanner"
+ ],
+ "x-codegen-request-body-name": "body",
+ "x-menu-order": 8,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "data_scanner_write"
+ ]
+ },
+ "x-undo": {
+ "type": "idempotent"
+ }
+ }
+ },
+ "/api/v2/sensitive-data-scanner/config/standard-patterns": {
+ "get": {
+ "description": "Returns all standard patterns.",
+ "operationId": "ListStandardPatterns",
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "List Standard patterns response data.",
+ "properties": {
+ "data": {
+ "description": "List Standard patterns response.",
+ "items": {
+ "description": "Standard pattern item.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of the Sensitive Data Scanner standard pattern.",
+ "properties": {
+ "description": {
+ "description": "Description of the standard pattern.",
+ "type": "string"
+ },
+ "included_keywords": {
+ "description": "List of included keywords.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the standard pattern.",
+ "type": "string"
+ },
+ "pattern": {
+ "deprecated": true,
+ "description": "(Deprecated) Regex to match, optionally documented for older standard rules. Refer to the `description` field to understand what the rule does.",
+ "type": "string"
+ },
+ "priority": {
+ "description": "Integer from 1 (high) to 5 (low) indicating standard pattern issue severity.",
+ "format": "int64",
+ "maximum": 5,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "tags": {
+ "description": "List of tags.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the standard pattern.",
+ "type": "string"
+ },
+ "type": {
+ "default": "sensitive_data_scanner_standard_pattern",
+ "description": "Sensitive Data Scanner standard pattern type.",
+ "enum": [
+ "sensitive_data_scanner_standard_pattern"
+ ],
+ "example": "sensitive_data_scanner_standard_pattern",
+ "type": "string",
+ "x-enum-varnames": [
+ "SENSITIVE_DATA_SCANNER_STANDARD_PATTERN"
+ ]
+ }
},
- "type": {
- "default": "sensitive_data_scanner_rule",
- "description": "Sensitive Data Scanner rule type.",
- "enum": [
- "sensitive_data_scanner_rule"
- ],
- "example": "sensitive_data_scanner_rule",
- "type": "string",
- "x-enum-varnames": [
- "SENSITIVE_DATA_SCANNER_RULE"
- ]
- }
- },
- "type": "object"
- },
- "meta": {
- "description": "Meta payload containing information about the API.",
- "properties": {
- "version": {
- "description": "Version of the API (optional).",
- "example": 0,
- "format": "int64",
- "minimum": 0,
- "type": "integer"
- }
+ "type": "object"
},
- "type": "object"
+ "type": "array"
}
},
"type": "object"
@@ -373625,82 +394894,234 @@
"description": "Too many requests"
}
},
- "summary": "Create Scanning Rule",
+ "summary": "List standard patterns",
"tags": [
"Sensitive Data Scanner"
],
- "x-codegen-request-body-name": "body",
- "x-given": {
- "rule": {
- "parameters": [
- {
- "name": "body",
- "value": "{\n \"data\": {\n \"type\": \"sensitive_data_scanner_rule\",\n \"attributes\": {\n \"name\": \"{{ unique }}\",\n \"pattern\": \"pattern\",\n \"namespaces\": [\"admin.email\"],\n \"text_replacement\": {\n \"type\": \"none\"\n },\n \"tags\":[\n \"sensitive_data:true\"\n ],\n \"is_enabled\":true\n },\n \"relationships\": {\n \"group\": {\n \"data\": {\n \"id\": \"{{ group.data.id }}\",\n \"type\": \"{{ group.data.type }}\"\n }\n }\n }\n },\n \"meta\": {}\n}"
- }
- ],
- "step": "the \"scanning_group\" has a \"scanning_rule\""
- }
- },
- "x-menu-order": 7,
+ "x-menu-order": 3,
"x-permission": {
"operator": "OR",
"permissions": [
- "data_scanner_write"
+ "data_scanner_read"
]
},
"x-undo": {
- "operationId": "DeleteScanningRule",
- "parameters": [
- {
- "name": "rule_id",
- "source": "data.id"
- },
- {
- "name": "body",
- "template": "{\n \"meta\": {}\n}"
- }
- ],
- "type": "unsafe"
+ "type": "safe"
}
}
},
- "/api/v2/sensitive-data-scanner/config/rules/{rule_id}": {
- "delete": {
- "description": "Delete a given rule.",
- "operationId": "DeleteScanningRule",
+ "/api/v2/series": {
+ "post": {
+ "description": "The metrics end-point allows you to post time-series data that can be graphed on Datadog’s dashboards.\nThe maximum payload size is 500 kilobytes (512000 bytes). Compressed payloads must have a decompressed size of less than 5 megabytes (5242880 bytes).\n\nIf you’re submitting metrics directly to the Datadog API without using DogStatsD, expect:\n\n- 64 bits for the timestamp\n- 64 bits for the value\n- 20 bytes for the metric names\n- 50 bytes for the timeseries\n- The full payload is approximately 100 bytes.\n\nHost name is one of the resources in the Resources field.",
+ "operationId": "SubmitMetrics",
"parameters": [
{
- "description": "The ID of the rule.",
- "in": "path",
- "name": "rule_id",
- "required": true,
+ "description": "HTTP header used to compress the media-type.",
+ "in": "header",
+ "name": "Content-Encoding",
+ "required": false,
"schema": {
- "type": "string"
+ "default": "deflate",
+ "description": "HTTP header used to compress the media-type.",
+ "enum": [
+ "deflate",
+ "zstd1",
+ "gzip"
+ ],
+ "example": "deflate",
+ "type": "string",
+ "x-enum-varnames": [
+ "DEFLATE",
+ "ZSTD1",
+ "GZIP"
+ ]
}
}
],
"requestBody": {
"content": {
"application/json": {
+ "examples": {
+ "dynamic-points": {
+ "description": "Post time-series data that can be graphed on Datadog’s dashboards.",
+ "externalValue": "examples/metrics/dynamic-points.json.sh",
+ "summary": "Dynamic Points",
+ "x-variables": {
+ "NOW": "$(date +%s)"
+ }
+ }
+ },
"schema": {
- "description": "Delete rule request.",
+ "description": "The metrics' payload.",
"properties": {
- "meta": {
- "description": "Meta payload containing information about the API.",
- "properties": {
- "version": {
- "description": "Version of the API (optional).",
- "example": 0,
- "format": "int64",
- "minimum": 0,
- "type": "integer"
+ "series": {
+ "description": "A list of timeseries to submit to Datadog.",
+ "example": [
+ {
+ "metric": "system.load.1",
+ "points": [
+ {
+ "timestamp": 1475317847,
+ "value": 0.7
+ }
+ ],
+ "resources": [
+ {
+ "name": "dummyhost",
+ "type": "host"
+ }
+ ]
}
+ ],
+ "items": {
+ "description": "A metric to submit to Datadog.\nSee [Datadog metrics](https://docs.datadoghq.com/developers/metrics/#custom-metrics-properties).",
+ "properties": {
+ "interval": {
+ "description": "If the type of the metric is rate or count, define the corresponding interval in seconds.",
+ "example": 20,
+ "format": "int64",
+ "type": "integer"
+ },
+ "metadata": {
+ "description": "Metadata for the metric.",
+ "properties": {
+ "origin": {
+ "description": "Metric origin information.",
+ "properties": {
+ "metric_type": {
+ "default": 0,
+ "description": "The origin metric type code",
+ "format": "int32",
+ "maximum": 1000,
+ "type": "integer"
+ },
+ "product": {
+ "default": 0,
+ "description": "The origin product code",
+ "format": "int32",
+ "maximum": 1000,
+ "type": "integer"
+ },
+ "service": {
+ "default": 0,
+ "description": "The origin service code",
+ "format": "int32",
+ "maximum": 1000,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "metric": {
+ "description": "The name of the timeseries.",
+ "example": "system.load.1",
+ "type": "string"
+ },
+ "points": {
+ "description": "Points relating to a metric. All points must be objects with timestamp and a scalar value (cannot be a string). Timestamps should be in POSIX time in seconds, and cannot be more than ten minutes in the future or more than one hour in the past.",
+ "example": [
+ {
+ "timestamp": 1575317847,
+ "value": 0.5
+ }
+ ],
+ "items": {
+ "description": "A point object is of the form `{POSIX_timestamp, numeric_value}`.",
+ "example": {
+ "timestamp": 1575317847,
+ "value": 0.5
+ },
+ "properties": {
+ "timestamp": {
+ "description": "The timestamp should be in seconds and current.\nCurrent is defined as not more than 10 minutes in the future or more than 1 hour in the past.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "value": {
+ "description": "The numeric value format should be a 64bit float gauge-type value.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "resources": {
+ "description": "A list of resources to associate with this metric.",
+ "items": {
+ "description": "Metric resource.",
+ "example": {
+ "name": "dummyhost",
+ "type": "host"
+ },
+ "properties": {
+ "name": {
+ "description": "The name of the resource.",
+ "type": "string"
+ },
+ "type": {
+ "description": "The type of the resource.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "source_type_name": {
+ "description": "The source type name.",
+ "example": "datadog",
+ "type": "string"
+ },
+ "tags": {
+ "description": "A list of tags associated with the metric.",
+ "example": [
+ "environment:test"
+ ],
+ "items": {
+ "description": "Individual tags.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "type": {
+ "description": "The type of metric. The available types are `0` (unspecified), `1` (count), `2` (rate), and `3` (gauge).",
+ "enum": [
+ 0,
+ 1,
+ 2,
+ 3
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "UNSPECIFIED",
+ "COUNT",
+ "RATE",
+ "GAUGE"
+ ]
+ },
+ "unit": {
+ "description": "The unit of point value.",
+ "example": "second",
+ "type": "string"
+ }
+ },
+ "required": [
+ "metric",
+ "points"
+ ],
+ "type": "object"
},
- "type": "object"
+ "type": "array"
}
},
"required": [
- "meta"
+ "series"
],
"type": "object"
}
@@ -373709,31 +395130,26 @@
"required": true
},
"responses": {
- "200": {
+ "202": {
"content": {
"application/json": {
"schema": {
- "description": "Delete rule response.",
+ "description": "The payload accepted for intake.",
"properties": {
- "meta": {
- "description": "Meta payload containing information about the API.",
- "properties": {
- "version": {
- "description": "Version of the API (optional).",
- "example": 0,
- "format": "int64",
- "minimum": 0,
- "type": "integer"
- }
+ "errors": {
+ "description": "A list of errors.",
+ "items": {
+ "description": "An empty error list.",
+ "type": "string"
},
- "type": "object"
+ "type": "array"
}
},
"type": "object"
}
}
},
- "description": "OK"
+ "description": "Payload accepted"
},
"400": {
"content": {
@@ -373789,9 +395205,9 @@
}
}
},
- "description": "Authentication Error"
+ "description": "Authentication error"
},
- "404": {
+ "408": {
"content": {
"application/json": {
"schema": {
@@ -373817,7 +395233,35 @@
}
}
},
- "description": "Not Found"
+ "description": "Request timeout"
+ },
+ "413": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Payload too large"
},
"429": {
"content": {
@@ -373848,293 +395292,630 @@
"description": "Too many requests"
}
},
- "summary": "Delete Scanning Rule",
+ "security": [
+ {
+ "apiKeyAuth": []
+ }
+ ],
+ "summary": "Submit metrics",
"tags": [
- "Sensitive Data Scanner"
+ "Metrics"
],
"x-codegen-request-body-name": "body",
- "x-menu-order": 9,
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "data_scanner_write"
- ]
- },
+ "x-menu-order": 1,
"x-undo": {
- "type": "idempotent"
+ "type": "safe"
}
- },
- "patch": {
- "description": "Update a scanning rule.\nThe request body MUST NOT include a standard_pattern relationship, as that relationship\nis non-editable. Trying to edit the regex attribute of a rule with a standard_pattern\nrelationship will also result in an error.",
- "operationId": "UpdateScanningRule",
- "parameters": [
- {
- "description": "The ID of the rule.",
- "in": "path",
- "name": "rule_id",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
+ }
+ },
+ "/api/v2/service_accounts": {
+ "post": {
+ "description": "Create a service account for your organization.",
+ "operationId": "CreateServiceAccount",
"requestBody": {
"content": {
"application/json": {
"schema": {
- "description": "Update rule request.",
+ "description": "Create a service account.",
"properties": {
"data": {
- "description": "Data related to the update of a rule.",
+ "description": "Object to create a service account User.",
"properties": {
"attributes": {
- "description": "Attributes of the Sensitive Data Scanner rule.",
+ "description": "Attributes of the created user.",
"properties": {
- "description": {
- "description": "Description of the rule.",
+ "email": {
+ "description": "The email of the user.",
+ "example": "jane.doe@example.com",
"type": "string"
},
- "excluded_namespaces": {
- "description": "Attributes excluded from the scan. If namespaces is provided, it has to be a sub-path of the namespaces array.",
- "example": [
- "admin.name"
- ],
- "items": {
- "type": "string"
- },
- "type": "array"
+ "name": {
+ "description": "The name of the user.",
+ "type": "string"
},
- "included_keyword_configuration": {
- "description": "Object defining a set of keywords and a number of characters that help reduce noise.\nYou can provide a list of keywords you would like to check within a defined proximity of the matching pattern.\nIf any of the keywords are found within the proximity check, the match is kept.\nIf none are found, the match is discarded.",
+ "service_account": {
+ "description": "Whether the user is a service account. Must be true.",
+ "example": true,
+ "type": "boolean"
+ },
+ "title": {
+ "description": "The title of the user.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "email",
+ "service_account"
+ ],
+ "type": "object"
+ },
+ "relationships": {
+ "description": "Relationships of the user object.",
+ "properties": {
+ "roles": {
+ "description": "Relationship to roles.",
"properties": {
- "character_count": {
- "description": "The number of characters behind a match detected by Sensitive Data Scanner to look for the keywords defined.\n`character_count` should be greater than the maximum length of a keyword defined for a rule.",
- "example": 30,
- "format": "int64",
- "maximum": 50,
- "minimum": 1,
- "type": "integer"
- },
- "keywords": {
- "description": "Keyword list that will be checked during scanning in order to validate a match.\nThe number of keywords in the list must be less than or equal to 30.",
- "example": [
- "credit card",
- "cc"
- ],
+ "data": {
+ "description": "An array containing type and the unique identifier of a role.",
"items": {
- "type": "string"
+ "description": "Relationship to role object.",
+ "properties": {
+ "id": {
+ "description": "The unique identifier of the role.",
+ "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "type": "string"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
},
"type": "array"
- },
- "use_recommended_keywords": {
- "description": "Should the rule use the underlying standard pattern keyword configuration. If set to `true`, the rule must be tied\nto a standard pattern. If set to `false`, the specified keywords and `character_count` are applied.",
- "type": "boolean"
}
},
- "required": [
- "keywords",
- "character_count"
- ],
- "type": "object"
- },
- "is_enabled": {
- "description": "Whether or not the rule is enabled.",
- "type": "boolean"
- },
- "name": {
- "description": "Name of the rule.",
- "type": "string"
- },
- "namespaces": {
- "description": "Attributes included in the scan. If namespaces is empty or missing, all attributes except excluded_namespaces are scanned.\nIf both are missing the whole event is scanned.",
- "example": [
- "admin"
- ],
- "items": {
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "attributes",
+ "type"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Response containing information about a single user.",
+ "properties": {
+ "data": {
+ "description": "User object returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of user object returned by the API.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the user.",
+ "format": "date-time",
"type": "string"
},
- "type": "array"
- },
- "pattern": {
- "description": "Not included if there is a relationship to a standard pattern.",
- "type": "string"
- },
- "priority": {
- "description": "Integer from 1 (high) to 5 (low) indicating rule issue severity.",
- "format": "int64",
- "maximum": 5,
- "minimum": 1,
- "type": "integer"
- },
- "tags": {
- "description": "List of tags.",
- "items": {
+ "disabled": {
+ "description": "Whether the user is disabled.",
+ "type": "boolean"
+ },
+ "email": {
+ "description": "Email of the user.",
"type": "string"
},
- "type": "array"
+ "handle": {
+ "description": "Handle of the user.",
+ "type": "string"
+ },
+ "icon": {
+ "description": "URL of the user's icon.",
+ "type": "string"
+ },
+ "mfa_enabled": {
+ "description": "If user has MFA enabled.",
+ "readOnly": true,
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time that the user was last modified.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "service_account": {
+ "description": "Whether the user is a service account.",
+ "type": "boolean"
+ },
+ "status": {
+ "description": "Status of the user.",
+ "type": "string"
+ },
+ "title": {
+ "description": "Title of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "verified": {
+ "description": "Whether the user is verified.",
+ "type": "boolean"
+ }
},
- "text_replacement": {
- "description": "Object describing how the scanned event will be replaced.",
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the user.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships of the user object returned by the API.",
+ "properties": {
+ "org": {
+ "description": "Relationship to an organization.",
+ "properties": {
+ "data": {
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_orgs": {
+ "description": "Relationship to organizations.",
+ "properties": {
+ "data": {
+ "description": "Relationships to organization objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_users": {
+ "description": "Relationship to users.",
+ "properties": {
+ "data": {
+ "description": "Relationships to user objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "roles": {
+ "description": "Relationship to roles.",
+ "properties": {
+ "data": {
+ "description": "An array containing type and the unique identifier of a role.",
+ "items": {
+ "description": "Relationship to role object.",
+ "properties": {
+ "id": {
+ "description": "The unique identifier of the role.",
+ "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "type": "string"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "properties": false
+ }
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "included": {
+ "description": "Array of objects related to the user.",
+ "items": {
+ "description": "An object related to a user.",
+ "oneOf": [
+ {
+ "description": "Organization object.",
"properties": {
- "number_of_chars": {
- "description": "Required if type == 'partial_replacement_from_beginning'\nor 'partial_replacement_from_end'. It must be > 0.",
- "format": "int64",
- "minimum": 0,
- "type": "integer"
+ "attributes": {
+ "description": "Attributes of the organization.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the organization.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of the organization.",
+ "type": "string"
+ },
+ "disabled": {
+ "description": "Whether or not the organization is disabled.",
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time of last organization modification.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the organization.",
+ "type": "string"
+ },
+ "public_id": {
+ "description": "Public ID of the organization.",
+ "type": "string"
+ },
+ "sharing": {
+ "description": "Sharing type of the organization.",
+ "type": "string"
+ },
+ "url": {
+ "description": "URL of the site that this organization exists at.",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
- "replacement_string": {
- "description": "Required if type == 'replacement_string'.",
+ "id": {
+ "description": "ID of the organization.",
"type": "string"
},
"type": {
- "default": "none",
- "description": "Type of the replacement text. None means no replacement.\nhash means the data will be stubbed. replacement_string means that\none can chose a text to replace the data. partial_replacement_from_beginning\nallows a user to partially replace the data from the beginning, and\npartial_replacement_from_end on the other hand, allows to replace data from\nthe end.",
+ "default": "orgs",
+ "description": "Organizations resource type.",
"enum": [
- "none",
- "hash",
- "replacement_string",
- "partial_replacement_from_beginning",
- "partial_replacement_from_end"
+ "orgs"
],
+ "example": "orgs",
"type": "string",
"x-enum-varnames": [
- "NONE",
- "HASH",
- "REPLACEMENT_STRING",
- "PARTIAL_REPLACEMENT_FROM_BEGINNING",
- "PARTIAL_REPLACEMENT_FROM_END"
+ "ORGS"
]
}
},
+ "required": [
+ "type"
+ ],
"type": "object"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "ID of the rule.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of a scanning rule.",
- "properties": {
- "group": {
- "description": "A scanning group data.",
+ },
+ {
+ "description": "Permission object.",
"properties": {
- "data": {
- "description": "A scanning group.",
+ "attributes": {
+ "description": "Attributes of a permission.",
"properties": {
- "id": {
- "description": "ID of the group.",
+ "created": {
+ "description": "Creation time of the permission.",
+ "format": "date-time",
"type": "string"
},
- "type": {
- "default": "sensitive_data_scanner_group",
- "description": "Sensitive Data Scanner group type.",
- "enum": [
- "sensitive_data_scanner_group"
- ],
- "example": "sensitive_data_scanner_group",
- "type": "string",
- "x-enum-varnames": [
- "SENSITIVE_DATA_SCANNER_GROUP"
- ]
+ "description": {
+ "description": "Description of the permission.",
+ "type": "string"
+ },
+ "display_name": {
+ "description": "Displayed name for the permission.",
+ "type": "string"
+ },
+ "display_type": {
+ "description": "Display type.",
+ "type": "string"
+ },
+ "group_name": {
+ "description": "Name of the permission group.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the permission.",
+ "type": "string"
+ },
+ "restricted": {
+ "description": "Whether or not the permission is restricted.",
+ "type": "boolean"
}
},
"type": "object"
+ },
+ "id": {
+ "description": "ID of the permission.",
+ "type": "string"
+ },
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
}
},
+ "required": [
+ "type"
+ ],
"type": "object"
},
- "standard_pattern": {
- "description": "A standard pattern.",
+ {
+ "description": "Role object returned by the API.",
"properties": {
- "data": {
- "description": "Data containing the standard pattern id.",
+ "attributes": {
+ "description": "Attributes of the role.",
"properties": {
- "id": {
- "description": "ID of the standard pattern.",
+ "created_at": {
+ "description": "Creation time of the role.",
+ "format": "date-time",
+ "readOnly": true,
"type": "string"
},
- "type": {
- "default": "sensitive_data_scanner_standard_pattern",
- "description": "Sensitive Data Scanner standard pattern type.",
- "enum": [
- "sensitive_data_scanner_standard_pattern"
- ],
- "example": "sensitive_data_scanner_standard_pattern",
- "type": "string",
- "x-enum-varnames": [
- "SENSITIVE_DATA_SCANNER_STANDARD_PATTERN"
- ]
+ "modified_at": {
+ "description": "Time of last role modification.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
+ "type": "string"
+ },
+ "user_count": {
+ "description": "Number of users with that role.",
+ "format": "int64",
+ "readOnly": true,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The unique identifier of the role.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships of the role object returned by the API.",
+ "properties": {
+ "permissions": {
+ "description": "Relationship to multiple permissions objects.",
+ "properties": {
+ "data": {
+ "description": "Relationships to permission objects.",
+ "items": {
+ "description": "Relationship to permission object.",
+ "properties": {
+ "id": {
+ "description": "ID of the permission.",
+ "type": "string"
+ },
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
"type": "object"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
}
},
- "type": "object"
+ "required": [
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
- },
- "type": "object"
- },
- "type": {
- "default": "sensitive_data_scanner_rule",
- "description": "Sensitive Data Scanner rule type.",
- "enum": [
- "sensitive_data_scanner_rule"
- ],
- "example": "sensitive_data_scanner_rule",
- "type": "string",
- "x-enum-varnames": [
- "SENSITIVE_DATA_SCANNER_RULE"
]
- }
- },
- "type": "object"
- },
- "meta": {
- "description": "Meta payload containing information about the API.",
- "properties": {
- "version": {
- "description": "Version of the API (optional).",
- "example": 0,
- "format": "int64",
- "minimum": 0,
- "type": "integer"
- }
- },
- "type": "object"
- }
- },
- "required": [
- "data",
- "meta"
- ],
- "type": "object"
- }
- }
- },
- "required": true
- },
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Update rule response.",
- "properties": {
- "meta": {
- "description": "Meta payload containing information about the API.",
- "properties": {
- "version": {
- "description": "Version of the API (optional).",
- "example": 0,
- "format": "int64",
- "minimum": 0,
- "type": "integer"
- }
},
- "type": "object"
+ "type": "array"
}
},
"type": "object"
@@ -374197,35 +395978,7 @@
}
}
},
- "description": "Authentication Error"
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Not Found"
+ "description": "Authentication error"
},
"429": {
"content": {
@@ -374256,448 +396009,708 @@
"description": "Too many requests"
}
},
- "summary": "Update Scanning Rule",
+ "summary": "Create a service account",
"tags": [
- "Sensitive Data Scanner"
+ "Service Accounts"
],
"x-codegen-request-body-name": "body",
- "x-menu-order": 8,
+ "x-given": {
+ "service_account_user": {
+ "parameters": [
+ {
+ "name": "body",
+ "value": "{\n \"data\": {\n \"attributes\": {\n \"email\": \"{{ unique }}@datadoghq.com\",\n \"title\": \"user title\",\n \"service_account\": true\n },\n \"type\": \"users\"\n }\n}"
+ }
+ ],
+ "step": "there is a valid \"service_account_user\" in the system"
+ }
+ },
+ "x-menu-order": 1,
"x-permission": {
"operator": "OR",
"permissions": [
- "data_scanner_write"
+ "service_account_write"
]
},
"x-undo": {
- "type": "idempotent"
+ "operationId": "DisableUser",
+ "parameters": [
+ {
+ "name": "user_id",
+ "source": "data.id"
+ }
+ ],
+ "tag": "Users",
+ "type": "unsafe"
}
}
},
- "/api/v2/sensitive-data-scanner/config/standard-patterns": {
+ "/api/v2/service_accounts/{service_account_id}/application_keys": {
"get": {
- "description": "Returns all standard patterns.",
- "operationId": "ListStandardPatterns",
+ "description": "List all application keys available for this service account.",
+ "operationId": "ListServiceAccountApplicationKeys",
+ "parameters": [
+ {
+ "description": "The ID of the service account.",
+ "in": "path",
+ "name": "service_account_id",
+ "required": true,
+ "schema": {
+ "example": "00000000-0000-1234-0000-000000000000",
+ "type": "string"
+ }
+ },
+ {
+ "description": "Size for a given page. The maximum allowed value is 100.",
+ "in": "query",
+ "name": "page[size]",
+ "required": false,
+ "schema": {
+ "default": 10,
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ {
+ "description": "Specific page number to return.",
+ "in": "query",
+ "name": "page[number]",
+ "required": false,
+ "schema": {
+ "default": 0,
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ {
+ "description": "Application key attribute used to sort results. Sort order is ascending\nby default. In order to specify a descending sort, prefix the\nattribute with a minus sign.",
+ "in": "query",
+ "name": "sort",
+ "required": false,
+ "schema": {
+ "default": "name",
+ "description": "Sorting options",
+ "enum": [
+ "created_at",
+ "-created_at",
+ "last4",
+ "-last4",
+ "name",
+ "-name"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "CREATED_AT_ASCENDING",
+ "CREATED_AT_DESCENDING",
+ "LAST4_ASCENDING",
+ "LAST4_DESCENDING",
+ "NAME_ASCENDING",
+ "NAME_DESCENDING"
+ ]
+ }
+ },
+ {
+ "description": "Filter application keys by the specified string.",
+ "in": "query",
+ "name": "filter",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "Only include application keys created on or after the specified date.",
+ "in": "query",
+ "name": "filter[created_at][start]",
+ "required": false,
+ "schema": {
+ "example": "2020-11-24T18:46:21+00:00",
+ "type": "string",
+ "x-merge-override": {
+ "format": false
+ }
+ }
+ },
+ {
+ "description": "Only include application keys created on or before the specified date.",
+ "in": "query",
+ "name": "filter[created_at][end]",
+ "required": false,
+ "schema": {
+ "example": "2020-11-24T18:46:21+00:00",
+ "type": "string",
+ "x-merge-override": {
+ "format": false
+ }
+ }
+ }
+ ],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
- "description": "List Standard patterns response data.",
+ "description": "Response for a list of application keys.",
"properties": {
"data": {
- "description": "List Standard patterns response.",
+ "description": "Array of application keys.",
"items": {
- "description": "Standard pattern item.",
+ "description": "Partial Datadog application key.",
"properties": {
"attributes": {
- "description": "Attributes of the Sensitive Data Scanner standard pattern.",
+ "description": "Attributes of a partial application key.",
"properties": {
- "description": {
- "description": "Description of the standard pattern.",
- "type": "string"
+ "created_at": {
+ "description": "Creation date of the application key.",
+ "example": "2020-11-23T10:00:00.000Z",
+ "readOnly": true,
+ "type": "string",
+ "x-merge-override": {
+ "format": false
+ }
},
- "included_keywords": {
- "description": "List of included keywords.",
- "items": {
- "type": "string"
- },
- "type": "array"
+ "last4": {
+ "description": "The last four characters of the application key.",
+ "example": "abcd",
+ "maxLength": 4,
+ "minLength": 4,
+ "readOnly": true,
+ "type": "string",
+ "x-secret": true
},
"name": {
- "description": "Name of the standard pattern.",
- "type": "string"
- },
- "pattern": {
- "deprecated": true,
- "description": "(Deprecated) Regex to match, optionally documented for older standard rules. Refer to the `description` field to understand what the rule does.",
+ "description": "Name of the application key.",
+ "example": "Application Key for managing dashboards",
"type": "string"
},
- "priority": {
- "description": "Integer from 1 (high) to 5 (low) indicating standard pattern issue severity.",
- "format": "int64",
- "maximum": 5,
- "minimum": 1,
- "type": "integer"
- },
- "tags": {
- "description": "List of tags.",
+ "scopes": {
+ "description": "Array of scopes to grant the application key.",
+ "example": [
+ "dashboards_read",
+ "dashboards_write",
+ "dashboards_public_share"
+ ],
"items": {
+ "description": "Name of scope.",
"type": "string"
},
+ "nullable": true,
"type": "array"
}
},
"type": "object"
},
"id": {
- "description": "ID of the standard pattern.",
+ "description": "ID of the application key.",
"type": "string"
},
+ "relationships": {
+ "description": "Resources related to the application key.",
+ "properties": {
+ "owned_by": {
+ "description": "Relationship to user.",
+ "properties": {
+ "data": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "properties": false
+ }
+ },
"type": {
- "default": "sensitive_data_scanner_standard_pattern",
- "description": "Sensitive Data Scanner standard pattern type.",
+ "default": "application_keys",
+ "description": "Application Keys resource type.",
"enum": [
- "sensitive_data_scanner_standard_pattern"
+ "application_keys"
],
- "example": "sensitive_data_scanner_standard_pattern",
+ "example": "application_keys",
"type": "string",
"x-enum-varnames": [
- "SENSITIVE_DATA_SCANNER_STANDARD_PATTERN"
+ "APPLICATION_KEYS"
]
}
},
- "type": "object"
- },
- "type": "array"
- }
- },
- "type": "object"
- }
- }
- },
- "description": "OK"
- },
- "400": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Bad Request"
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
},
"type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Authentication Error"
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
+ },
+ "included": {
+ "description": "Array of objects related to the application key.",
"items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Too many requests"
- }
- },
- "summary": "List standard patterns",
- "tags": [
- "Sensitive Data Scanner"
- ],
- "x-menu-order": 3,
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "data_scanner_read"
- ]
- },
- "x-undo": {
- "type": "safe"
- }
- }
- },
- "/api/v2/series": {
- "post": {
- "description": "The metrics end-point allows you to post time-series data that can be graphed on Datadog’s dashboards.\nThe maximum payload size is 500 kilobytes (512000 bytes). Compressed payloads must have a decompressed size of less than 5 megabytes (5242880 bytes).\n\nIf you’re submitting metrics directly to the Datadog API without using DogStatsD, expect:\n\n- 64 bits for the timestamp\n- 64 bits for the value\n- 20 bytes for the metric names\n- 50 bytes for the timeseries\n- The full payload is approximately 100 bytes.\n\nHost name is one of the resources in the Resources field.",
- "operationId": "SubmitMetrics",
- "parameters": [
- {
- "description": "HTTP header used to compress the media-type.",
- "in": "header",
- "name": "Content-Encoding",
- "required": false,
- "schema": {
- "default": "deflate",
- "description": "HTTP header used to compress the media-type.",
- "enum": [
- "deflate",
- "zstd1",
- "gzip"
- ],
- "example": "deflate",
- "type": "string",
- "x-enum-varnames": [
- "DEFLATE",
- "ZSTD1",
- "GZIP"
- ]
- }
- }
- ],
- "requestBody": {
- "content": {
- "application/json": {
- "examples": {
- "dynamic-points": {
- "description": "Post time-series data that can be graphed on Datadog’s dashboards.",
- "externalValue": "examples/metrics/dynamic-points.json.sh",
- "summary": "Dynamic Points",
- "x-variables": {
- "NOW": "$(date +%s)"
- }
- }
- },
- "schema": {
- "description": "The metrics' payload.",
- "properties": {
- "series": {
- "description": "A list of timeseries to submit to Datadog.",
- "example": [
- {
- "metric": "system.load.1",
- "points": [
- {
- "timestamp": 1475317847,
- "value": 0.7
- }
- ],
- "resources": [
+ "description": "An object related to an application key.",
+ "oneOf": [
{
- "name": "dummyhost",
- "type": "host"
- }
- ]
- }
- ],
- "items": {
- "description": "A metric to submit to Datadog.\nSee [Datadog metrics](https://docs.datadoghq.com/developers/metrics/#custom-metrics-properties).",
- "properties": {
- "interval": {
- "description": "If the type of the metric is rate or count, define the corresponding interval in seconds.",
- "example": 20,
- "format": "int64",
- "type": "integer"
- },
- "metadata": {
- "description": "Metadata for the metric.",
- "properties": {
- "origin": {
- "description": "Metric origin information.",
- "properties": {
- "metric_type": {
- "default": 0,
- "description": "The origin metric type code",
- "format": "int32",
- "maximum": 1000,
- "type": "integer"
+ "description": "User object returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of user object returned by the API.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the user.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "disabled": {
+ "description": "Whether the user is disabled.",
+ "type": "boolean"
+ },
+ "email": {
+ "description": "Email of the user.",
+ "type": "string"
+ },
+ "handle": {
+ "description": "Handle of the user.",
+ "type": "string"
+ },
+ "icon": {
+ "description": "URL of the user's icon.",
+ "type": "string"
+ },
+ "mfa_enabled": {
+ "description": "If user has MFA enabled.",
+ "readOnly": true,
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time that the user was last modified.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "service_account": {
+ "description": "Whether the user is a service account.",
+ "type": "boolean"
+ },
+ "status": {
+ "description": "Status of the user.",
+ "type": "string"
+ },
+ "title": {
+ "description": "Title of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "verified": {
+ "description": "Whether the user is verified.",
+ "type": "boolean"
+ }
},
- "product": {
- "default": 0,
- "description": "The origin product code",
- "format": "int32",
- "maximum": 1000,
- "type": "integer"
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the user.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships of the user object returned by the API.",
+ "properties": {
+ "org": {
+ "description": "Relationship to an organization.",
+ "properties": {
+ "data": {
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_orgs": {
+ "description": "Relationship to organizations.",
+ "properties": {
+ "data": {
+ "description": "Relationships to organization objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_users": {
+ "description": "Relationship to users.",
+ "properties": {
+ "data": {
+ "description": "Relationships to user objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "roles": {
+ "description": "Relationship to roles.",
+ "properties": {
+ "data": {
+ "description": "An array containing type and the unique identifier of a role.",
+ "items": {
+ "description": "Relationship to role object.",
+ "properties": {
+ "id": {
+ "description": "The unique identifier of the role.",
+ "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "type": "string"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
},
- "service": {
- "default": 0,
- "description": "The origin service code",
- "format": "int32",
- "maximum": 1000,
- "type": "integer"
+ "type": "object",
+ "x-merge-override": {
+ "properties": false
}
},
- "type": "object"
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
}
},
- "type": "object"
- },
- "metric": {
- "description": "The name of the timeseries.",
- "example": "system.load.1",
- "type": "string"
- },
- "points": {
- "description": "Points relating to a metric. All points must be objects with timestamp and a scalar value (cannot be a string). Timestamps should be in POSIX time in seconds, and cannot be more than ten minutes in the future or more than one hour in the past.",
- "example": [
- {
- "timestamp": 1575317847,
- "value": 0.5
- }
- ],
- "items": {
- "description": "A point object is of the form `{POSIX_timestamp, numeric_value}`.",
- "example": {
- "timestamp": 1575317847,
- "value": 0.5
- },
+ {
+ "description": "Role object returned by the API.",
"properties": {
- "timestamp": {
- "description": "The timestamp should be in seconds and current.\nCurrent is defined as not more than 10 minutes in the future or more than 1 hour in the past.",
- "format": "int64",
- "type": "integer"
+ "attributes": {
+ "description": "Attributes of the role.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the role.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "modified_at": {
+ "description": "Time of last role modification.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
+ "type": "string"
+ },
+ "user_count": {
+ "description": "Number of users with that role.",
+ "format": "int64",
+ "readOnly": true,
+ "type": "integer"
+ }
+ },
+ "type": "object"
},
- "value": {
- "description": "The numeric value format should be a 64bit float gauge-type value.",
- "format": "double",
- "type": "number"
+ "id": {
+ "description": "The unique identifier of the role.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships of the role object returned by the API.",
+ "properties": {
+ "permissions": {
+ "description": "Relationship to multiple permissions objects.",
+ "properties": {
+ "data": {
+ "description": "Relationships to permission objects.",
+ "items": {
+ "description": "Relationship to permission object.",
+ "properties": {
+ "id": {
+ "description": "ID of the permission.",
+ "type": "string"
+ },
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
}
},
- "type": "object"
+ "required": [
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
},
- "type": "array"
- },
- "resources": {
- "description": "A list of resources to associate with this metric.",
- "items": {
- "description": "Metric resource.",
- "example": {
- "name": "dummyhost",
- "type": "host"
- },
+ {
+ "description": "The definition of LeakedKey object.",
"properties": {
- "name": {
- "description": "The name of the resource.",
+ "attributes": {
+ "description": "The definition of LeakedKeyAttributes object.",
+ "properties": {
+ "date": {
+ "description": "The LeakedKeyAttributes date.",
+ "example": "2017-07-21T17:32:28Z",
+ "format": "date-time",
+ "type": "string"
+ },
+ "leak_source": {
+ "description": "The LeakedKeyAttributes leak_source.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "date"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "description": "The LeakedKey id.",
+ "example": "id",
"type": "string"
},
"type": {
- "description": "The type of the resource.",
- "type": "string"
+ "default": "leaked_keys",
+ "description": "The definition of LeakedKeyType object.",
+ "enum": [
+ "leaked_keys"
+ ],
+ "example": "leaked_keys",
+ "type": "string",
+ "x-enum-varnames": [
+ "LEAKED_KEYS"
+ ]
}
},
+ "required": [
+ "attributes",
+ "id",
+ "type"
+ ],
"type": "object"
- },
- "type": "array"
- },
- "source_type_name": {
- "description": "The source type name.",
- "example": "datadog",
- "type": "string"
+ }
+ ]
+ },
+ "type": "array"
+ },
+ "meta": {
+ "description": "Additional information related to the application key response.",
+ "properties": {
+ "max_allowed_per_user": {
+ "description": "Max allowed number of application keys per user.",
+ "format": "int64",
+ "type": "integer"
},
- "tags": {
- "description": "A list of tags associated with the metric.",
- "example": [
- "environment:test"
- ],
- "items": {
- "description": "Individual tags.",
- "type": "string"
+ "page": {
+ "description": "Additional information related to the application key response.",
+ "properties": {
+ "total_filtered_count": {
+ "description": "Total filtered application key count.",
+ "format": "int64",
+ "type": "integer"
+ }
},
- "type": "array"
- },
- "type": {
- "description": "The type of metric. The available types are `0` (unspecified), `1` (count), `2` (rate), and `3` (gauge).",
- "enum": [
- 0,
- 1,
- 2,
- 3
- ],
- "format": "int32",
- "type": "integer",
- "x-enum-varnames": [
- "UNSPECIFIED",
- "COUNT",
- "RATE",
- "GAUGE"
- ]
- },
- "unit": {
- "description": "The unit of point value.",
- "example": "second",
- "type": "string"
+ "type": "object"
}
},
- "required": [
- "metric",
- "points"
- ],
"type": "object"
- },
- "type": "array"
- }
- },
- "required": [
- "series"
- ],
- "type": "object"
- }
- }
- },
- "required": true
- },
- "responses": {
- "202": {
- "content": {
- "application/json": {
- "schema": {
- "description": "The payload accepted for intake.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "items": {
- "description": "An empty error list.",
- "type": "string"
- },
- "type": "array"
}
},
"type": "object"
}
}
},
- "description": "Payload accepted"
+ "description": "OK"
},
"400": {
"content": {
@@ -374753,37 +396766,9 @@
}
}
},
- "description": "Authentication error"
- },
- "408": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Request timeout"
+ "description": "Forbidden"
},
- "413": {
+ "404": {
"content": {
"application/json": {
"schema": {
@@ -374809,7 +396794,7 @@
}
}
},
- "description": "Payload too large"
+ "description": "Not Found"
},
"429": {
"content": {
@@ -374840,118 +396825,86 @@
"description": "Too many requests"
}
},
- "security": [
- {
- "apiKeyAuth": []
- }
- ],
- "summary": "Submit metrics",
+ "summary": "List application keys for this service account",
"tags": [
- "Metrics"
+ "Service Accounts"
],
- "x-codegen-request-body-name": "body",
- "x-menu-order": 1,
+ "x-menu-order": 6,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "service_account_write"
+ ]
+ },
"x-undo": {
"type": "safe"
}
- }
- },
- "/api/v2/service_accounts": {
+ },
"post": {
- "description": "Create a service account for your organization.",
- "operationId": "CreateServiceAccount",
+ "description": "Create an application key for this service account.",
+ "operationId": "CreateServiceAccountApplicationKey",
+ "parameters": [
+ {
+ "description": "The ID of the service account.",
+ "in": "path",
+ "name": "service_account_id",
+ "required": true,
+ "schema": {
+ "example": "00000000-0000-1234-0000-000000000000",
+ "type": "string"
+ }
+ }
+ ],
"requestBody": {
"content": {
"application/json": {
"schema": {
- "description": "Create a service account.",
+ "description": "Request used to create an application key.",
"properties": {
"data": {
- "description": "Object to create a service account User.",
+ "description": "Object used to create an application key.",
"properties": {
"attributes": {
- "description": "Attributes of the created user.",
+ "description": "Attributes used to create an application Key.",
"properties": {
- "email": {
- "description": "The email of the user.",
- "example": "jane.doe@example.com",
- "type": "string"
- },
"name": {
- "description": "The name of the user.",
+ "description": "Name of the application key.",
+ "example": "Application Key for managing dashboards",
"type": "string"
},
- "service_account": {
- "description": "Whether the user is a service account. Must be true.",
- "example": true,
- "type": "boolean"
- },
- "title": {
- "description": "The title of the user.",
- "type": "string"
+ "scopes": {
+ "description": "Array of scopes to grant the application key.",
+ "example": [
+ "dashboards_read",
+ "dashboards_write",
+ "dashboards_public_share"
+ ],
+ "items": {
+ "description": "Name of scope.",
+ "type": "string"
+ },
+ "nullable": true,
+ "type": "array"
}
},
"required": [
- "email",
- "service_account"
+ "name"
],
- "type": "object"
- },
- "relationships": {
- "description": "Relationships of the user object.",
- "properties": {
- "roles": {
- "description": "Relationship to roles.",
- "properties": {
- "data": {
- "description": "An array containing type and the unique identifier of a role.",
- "items": {
- "description": "Relationship to role object.",
- "properties": {
- "id": {
- "description": "The unique identifier of the role.",
- "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
- "type": "string"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
+ "type": "object",
+ "x-merge-override": {
+ "properties": false
+ }
},
"type": {
- "default": "users",
- "description": "Users resource type.",
+ "default": "application_keys",
+ "description": "Application Keys resource type.",
"enum": [
- "users"
+ "application_keys"
],
- "example": "users",
+ "example": "application_keys",
"type": "string",
"x-enum-varnames": [
- "USERS"
+ "APPLICATION_KEYS"
]
}
},
@@ -374959,7 +396912,10 @@
"attributes",
"type"
],
- "type": "object"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
"required": [
@@ -374976,98 +396932,89 @@
"content": {
"application/json": {
"schema": {
- "description": "Response containing information about a single user.",
+ "description": "Response for retrieving an application key.",
"properties": {
"data": {
- "description": "User object returned by the API.",
+ "description": "Datadog application key.",
"properties": {
"attributes": {
- "description": "Attributes of user object returned by the API.",
+ "description": "Attributes of a full application key.",
"properties": {
"created_at": {
- "description": "Creation time of the user.",
+ "description": "Creation date of the application key.",
+ "example": "2020-11-23T10:00:00.000Z",
"format": "date-time",
+ "readOnly": true,
"type": "string"
},
- "disabled": {
- "description": "Whether the user is disabled.",
- "type": "boolean"
- },
- "email": {
- "description": "Email of the user.",
- "type": "string"
- },
- "handle": {
- "description": "Handle of the user.",
- "type": "string"
- },
- "icon": {
- "description": "URL of the user's icon.",
- "type": "string"
- },
- "mfa_enabled": {
- "description": "If user has MFA enabled.",
+ "key": {
+ "description": "The application key.",
"readOnly": true,
- "type": "boolean"
+ "type": "string",
+ "x-secret": true
},
- "modified_at": {
- "description": "Time that the user was last modified.",
- "format": "date-time",
- "type": "string"
+ "last4": {
+ "description": "The last four characters of the application key.",
+ "example": "abcd",
+ "maxLength": 4,
+ "minLength": 4,
+ "readOnly": true,
+ "type": "string",
+ "x-secret": true
},
"name": {
- "description": "Name of the user.",
- "nullable": true,
- "type": "string"
- },
- "service_account": {
- "description": "Whether the user is a service account.",
- "type": "boolean"
- },
- "status": {
- "description": "Status of the user.",
+ "description": "Name of the application key.",
+ "example": "Application Key for managing dashboards",
"type": "string"
},
- "title": {
- "description": "Title of the user.",
+ "scopes": {
+ "description": "Array of scopes to grant the application key.",
+ "example": [
+ "dashboards_read",
+ "dashboards_write",
+ "dashboards_public_share"
+ ],
+ "items": {
+ "description": "Name of scope.",
+ "type": "string"
+ },
"nullable": true,
- "type": "string"
- },
- "verified": {
- "description": "Whether the user is verified.",
- "type": "boolean"
+ "type": "array"
}
},
- "type": "object"
+ "type": "object",
+ "x-merge-override": {
+ "properties": false
+ }
},
"id": {
- "description": "ID of the user.",
+ "description": "ID of the application key.",
"type": "string"
},
"relationships": {
- "description": "Relationships of the user object returned by the API.",
+ "description": "Resources related to the application key.",
"properties": {
- "org": {
- "description": "Relationship to an organization.",
+ "owned_by": {
+ "description": "Relationship to user.",
"properties": {
"data": {
- "description": "Relationship to organization object.",
+ "description": "Relationship to user object.",
"properties": {
"id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
"type": "string"
},
"type": {
- "default": "orgs",
- "description": "Organizations resource type.",
+ "default": "users",
+ "description": "Users resource type.",
"enum": [
- "orgs"
+ "users"
],
- "example": "orgs",
+ "example": "users",
"type": "string",
"x-enum-varnames": [
- "ORGS"
+ "USERS"
]
}
},
@@ -375075,137 +397022,16 @@
"id",
"type"
],
- "type": "object"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "other_orgs": {
- "description": "Relationship to organizations.",
- "properties": {
- "data": {
- "description": "Relationships to organization objects.",
- "example": [],
- "items": {
- "description": "Relationship to organization object.",
- "properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
- "type": "string"
- },
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- },
- "type": "array"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "other_users": {
- "description": "Relationship to users.",
- "properties": {
- "data": {
- "description": "Relationships to user objects.",
- "example": [],
- "items": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
"required": [
"data"
],
"type": "object"
- },
- "roles": {
- "description": "Relationship to roles.",
- "properties": {
- "data": {
- "description": "An array containing type and the unique identifier of a role.",
- "items": {
- "description": "Relationship to role object.",
- "properties": {
- "id": {
- "description": "The unique identifier of the role.",
- "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
- "type": "string"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
}
},
"type": "object",
@@ -375214,15 +397040,15 @@
}
},
"type": {
- "default": "users",
- "description": "Users resource type.",
+ "default": "application_keys",
+ "description": "Application Keys resource type.",
"enum": [
- "users"
+ "application_keys"
],
- "example": "users",
+ "example": "application_keys",
"type": "string",
"x-enum-varnames": [
- "USERS"
+ "APPLICATION_KEYS"
]
}
},
@@ -375232,134 +397058,262 @@
}
},
"included": {
- "description": "Array of objects related to the user.",
+ "description": "Array of objects related to the application key.",
"items": {
- "description": "An object related to a user.",
+ "description": "An object related to an application key.",
"oneOf": [
{
- "description": "Organization object.",
+ "description": "User object returned by the API.",
"properties": {
"attributes": {
- "description": "Attributes of the organization.",
+ "description": "Attributes of user object returned by the API.",
"properties": {
"created_at": {
- "description": "Creation time of the organization.",
+ "description": "Creation time of the user.",
"format": "date-time",
"type": "string"
},
- "description": {
- "description": "Description of the organization.",
+ "disabled": {
+ "description": "Whether the user is disabled.",
+ "type": "boolean"
+ },
+ "email": {
+ "description": "Email of the user.",
"type": "string"
},
- "disabled": {
- "description": "Whether or not the organization is disabled.",
+ "handle": {
+ "description": "Handle of the user.",
+ "type": "string"
+ },
+ "icon": {
+ "description": "URL of the user's icon.",
+ "type": "string"
+ },
+ "mfa_enabled": {
+ "description": "If user has MFA enabled.",
+ "readOnly": true,
"type": "boolean"
},
"modified_at": {
- "description": "Time of last organization modification.",
+ "description": "Time that the user was last modified.",
"format": "date-time",
"type": "string"
},
"name": {
- "description": "Name of the organization.",
+ "description": "Name of the user.",
+ "nullable": true,
"type": "string"
},
- "public_id": {
- "description": "Public ID of the organization.",
- "type": "string"
+ "service_account": {
+ "description": "Whether the user is a service account.",
+ "type": "boolean"
},
- "sharing": {
- "description": "Sharing type of the organization.",
+ "status": {
+ "description": "Status of the user.",
"type": "string"
},
- "url": {
- "description": "URL of the site that this organization exists at.",
+ "title": {
+ "description": "Title of the user.",
+ "nullable": true,
"type": "string"
+ },
+ "verified": {
+ "description": "Whether the user is verified.",
+ "type": "boolean"
}
},
"type": "object"
},
"id": {
- "description": "ID of the organization.",
+ "description": "ID of the user.",
"type": "string"
},
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object"
- },
- {
- "description": "Permission object.",
- "properties": {
- "attributes": {
- "description": "Attributes of a permission.",
+ "relationships": {
+ "description": "Relationships of the user object returned by the API.",
"properties": {
- "created": {
- "description": "Creation time of the permission.",
- "format": "date-time",
- "type": "string"
- },
- "description": {
- "description": "Description of the permission.",
- "type": "string"
- },
- "display_name": {
- "description": "Displayed name for the permission.",
- "type": "string"
- },
- "display_type": {
- "description": "Display type.",
- "type": "string"
+ "org": {
+ "description": "Relationship to an organization.",
+ "properties": {
+ "data": {
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
},
- "group_name": {
- "description": "Name of the permission group.",
- "type": "string"
+ "other_orgs": {
+ "description": "Relationship to organizations.",
+ "properties": {
+ "data": {
+ "description": "Relationships to organization objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
},
- "name": {
- "description": "Name of the permission.",
- "type": "string"
+ "other_users": {
+ "description": "Relationship to users.",
+ "properties": {
+ "data": {
+ "description": "Relationships to user objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
},
- "restricted": {
- "description": "Whether or not the permission is restricted.",
- "type": "boolean"
+ "roles": {
+ "description": "Relationship to roles.",
+ "properties": {
+ "data": {
+ "description": "An array containing type and the unique identifier of a role.",
+ "items": {
+ "description": "Relationship to role object.",
+ "properties": {
+ "id": {
+ "description": "The unique identifier of the role.",
+ "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "type": "string"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
- "type": "object"
- },
- "id": {
- "description": "ID of the permission.",
- "type": "string"
+ "type": "object",
+ "x-merge-override": {
+ "properties": false
+ }
},
"type": {
- "default": "permissions",
- "description": "Permissions resource type.",
+ "default": "users",
+ "description": "Users resource type.",
"enum": [
- "permissions"
+ "users"
],
- "example": "permissions",
+ "example": "users",
"type": "string",
"x-enum-varnames": [
- "PERMISSIONS"
+ "USERS"
]
}
},
- "required": [
- "type"
- ],
- "type": "object"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
},
{
"description": "Role object returned by the API.",
@@ -375460,6 +397414,53 @@
"x-merge-override": {
"required": false
}
+ },
+ {
+ "description": "The definition of LeakedKey object.",
+ "properties": {
+ "attributes": {
+ "description": "The definition of LeakedKeyAttributes object.",
+ "properties": {
+ "date": {
+ "description": "The LeakedKeyAttributes date.",
+ "example": "2017-07-21T17:32:28Z",
+ "format": "date-time",
+ "type": "string"
+ },
+ "leak_source": {
+ "description": "The LeakedKeyAttributes leak_source.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "date"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "description": "The LeakedKey id.",
+ "example": "id",
+ "type": "string"
+ },
+ "type": {
+ "default": "leaked_keys",
+ "description": "The definition of LeakedKeyType object.",
+ "enum": [
+ "leaked_keys"
+ ],
+ "example": "leaked_keys",
+ "type": "string",
+ "x-enum-varnames": [
+ "LEAKED_KEYS"
+ ]
+ }
+ },
+ "required": [
+ "attributes",
+ "id",
+ "type"
+ ],
+ "type": "object"
}
]
},
@@ -375470,7 +397471,7 @@
}
}
},
- "description": "OK"
+ "description": "Created"
},
"400": {
"content": {
@@ -375526,7 +397527,167 @@
}
}
},
- "description": "Authentication error"
+ "description": "Forbidden"
+ },
+ "429": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Too many requests"
+ }
+ },
+ "summary": "Create an application key for this service account",
+ "tags": [
+ "Service Accounts"
+ ],
+ "x-codegen-request-body-name": "body",
+ "x-given": {
+ "service_account_application_key": {
+ "parameters": [
+ {
+ "name": "service_account_id",
+ "value": "\"{{ service_account_user.data.id }}\""
+ },
+ {
+ "name": "body",
+ "value": "{\n \"data\": {\n \"attributes\": {\n \"name\": \"{{ unique }}\"\n },\n \"type\": \"application_keys\"\n }\n}"
+ }
+ ],
+ "step": "there is a valid \"service_account_application_key\" for \"service_account_user\""
+ }
+ },
+ "x-menu-order": 5,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "service_account_write"
+ ]
+ },
+ "x-undo": {
+ "operationId": "DeleteServiceAccountApplicationKey",
+ "parameters": [
+ {
+ "name": "app_key_id",
+ "source": "data.id"
+ },
+ {
+ "name": "service_account_id",
+ "source": "data.relationships.owned_by.data.id"
+ }
+ ],
+ "type": "unsafe"
+ }
+ },
+ "x-merge-override": {
+ "get": false
+ }
+ },
+ "/api/v2/service_accounts/{service_account_id}/application_keys/{app_key_id}": {
+ "delete": {
+ "description": "Delete an application key owned by this service account.",
+ "operationId": "DeleteServiceAccountApplicationKey",
+ "parameters": [
+ {
+ "description": "The ID of the service account.",
+ "in": "path",
+ "name": "service_account_id",
+ "required": true,
+ "schema": {
+ "example": "00000000-0000-1234-0000-000000000000",
+ "type": "string"
+ }
+ },
+ {
+ "description": "The ID of the application key.",
+ "in": "path",
+ "name": "app_key_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "No Content"
+ },
+ "403": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Forbidden"
+ },
+ "404": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Not Found"
},
"429": {
"content": {
@@ -375557,23 +397718,11 @@
"description": "Too many requests"
}
},
- "summary": "Create a service account",
+ "summary": "Delete an application key for this service account",
"tags": [
"Service Accounts"
],
- "x-codegen-request-body-name": "body",
- "x-given": {
- "service_account_user": {
- "parameters": [
- {
- "name": "body",
- "value": "{\n \"data\": {\n \"attributes\": {\n \"email\": \"{{ unique }}@datadoghq.com\",\n \"title\": \"user title\",\n \"service_account\": true\n },\n \"type\": \"users\"\n }\n}"
- }
- ],
- "step": "there is a valid \"service_account_user\" in the system"
- }
- },
- "x-menu-order": 1,
+ "x-menu-order": 3,
"x-permission": {
"operator": "OR",
"permissions": [
@@ -375581,22 +397730,12 @@
]
},
"x-undo": {
- "operationId": "DisableUser",
- "parameters": [
- {
- "name": "user_id",
- "source": "data.id"
- }
- ],
- "tag": "Users",
- "type": "unsafe"
+ "type": "idempotent"
}
- }
- },
- "/api/v2/service_accounts/{service_account_id}/application_keys": {
+ },
"get": {
- "description": "List all application keys available for this service account.",
- "operationId": "ListServiceAccountApplicationKeys",
+ "description": "Get an application key owned by this service account.",
+ "operationId": "GetServiceAccountApplicationKey",
"parameters": [
{
"description": "The ID of the service account.",
@@ -375609,90 +397748,13 @@
}
},
{
- "description": "Size for a given page. The maximum allowed value is 100.",
- "in": "query",
- "name": "page[size]",
- "required": false,
- "schema": {
- "default": 10,
- "example": 10,
- "format": "int64",
- "type": "integer"
- }
- },
- {
- "description": "Specific page number to return.",
- "in": "query",
- "name": "page[number]",
- "required": false,
- "schema": {
- "default": 0,
- "example": 0,
- "format": "int64",
- "type": "integer"
- }
- },
- {
- "description": "Application key attribute used to sort results. Sort order is ascending\nby default. In order to specify a descending sort, prefix the\nattribute with a minus sign.",
- "in": "query",
- "name": "sort",
- "required": false,
- "schema": {
- "default": "name",
- "description": "Sorting options",
- "enum": [
- "created_at",
- "-created_at",
- "last4",
- "-last4",
- "name",
- "-name"
- ],
- "type": "string",
- "x-enum-varnames": [
- "CREATED_AT_ASCENDING",
- "CREATED_AT_DESCENDING",
- "LAST4_ASCENDING",
- "LAST4_DESCENDING",
- "NAME_ASCENDING",
- "NAME_DESCENDING"
- ]
- }
- },
- {
- "description": "Filter application keys by the specified string.",
- "in": "query",
- "name": "filter",
- "required": false,
+ "description": "The ID of the application key.",
+ "in": "path",
+ "name": "app_key_id",
+ "required": true,
"schema": {
"type": "string"
}
- },
- {
- "description": "Only include application keys created on or after the specified date.",
- "in": "query",
- "name": "filter[created_at][start]",
- "required": false,
- "schema": {
- "example": "2020-11-24T18:46:21+00:00",
- "type": "string",
- "x-merge-override": {
- "format": false
- }
- }
- },
- {
- "description": "Only include application keys created on or before the specified date.",
- "in": "query",
- "name": "filter[created_at][end]",
- "required": false,
- "schema": {
- "example": "2020-11-24T18:46:21+00:00",
- "type": "string",
- "x-merge-override": {
- "format": false
- }
- }
}
],
"responses": {
@@ -375700,127 +397762,123 @@
"content": {
"application/json": {
"schema": {
- "description": "Response for a list of application keys.",
+ "description": "Response for retrieving a partial application key.",
"properties": {
"data": {
- "description": "Array of application keys.",
- "items": {
- "description": "Partial Datadog application key.",
- "properties": {
- "attributes": {
- "description": "Attributes of a partial application key.",
- "properties": {
- "created_at": {
- "description": "Creation date of the application key.",
- "example": "2020-11-23T10:00:00.000Z",
- "readOnly": true,
- "type": "string",
- "x-merge-override": {
- "format": false
- }
- },
- "last4": {
- "description": "The last four characters of the application key.",
- "example": "abcd",
- "maxLength": 4,
- "minLength": 4,
- "readOnly": true,
- "type": "string",
- "x-secret": true
- },
- "name": {
- "description": "Name of the application key.",
- "example": "Application Key for managing dashboards",
- "type": "string"
- },
- "scopes": {
- "description": "Array of scopes to grant the application key.",
- "example": [
- "dashboards_read",
- "dashboards_write",
- "dashboards_public_share"
- ],
- "items": {
- "description": "Name of scope.",
- "type": "string"
- },
- "nullable": true,
- "type": "array"
+ "description": "Partial Datadog application key.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of a partial application key.",
+ "properties": {
+ "created_at": {
+ "description": "Creation date of the application key.",
+ "example": "2020-11-23T10:00:00.000Z",
+ "readOnly": true,
+ "type": "string",
+ "x-merge-override": {
+ "format": false
}
},
- "type": "object"
- },
- "id": {
- "description": "ID of the application key.",
- "type": "string"
+ "last4": {
+ "description": "The last four characters of the application key.",
+ "example": "abcd",
+ "maxLength": 4,
+ "minLength": 4,
+ "readOnly": true,
+ "type": "string",
+ "x-secret": true
+ },
+ "name": {
+ "description": "Name of the application key.",
+ "example": "Application Key for managing dashboards",
+ "type": "string"
+ },
+ "scopes": {
+ "description": "Array of scopes to grant the application key.",
+ "example": [
+ "dashboards_read",
+ "dashboards_write",
+ "dashboards_public_share"
+ ],
+ "items": {
+ "description": "Name of scope.",
+ "type": "string"
+ },
+ "nullable": true,
+ "type": "array"
+ }
},
- "relationships": {
- "description": "Resources related to the application key.",
- "properties": {
- "owned_by": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the application key.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Resources related to the application key.",
+ "properties": {
+ "owned_by": {
+ "description": "Relationship to user.",
+ "properties": {
+ "data": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
},
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
}
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
}
- },
- "required": [
- "data"
- ],
- "type": "object"
- }
- },
- "type": "object",
- "x-merge-override": {
- "properties": false
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
}
},
- "type": {
- "default": "application_keys",
- "description": "Application Keys resource type.",
- "enum": [
- "application_keys"
- ],
- "example": "application_keys",
- "type": "string",
- "x-enum-varnames": [
- "APPLICATION_KEYS"
- ]
+ "type": "object",
+ "x-merge-override": {
+ "properties": false
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
+ "type": {
+ "default": "application_keys",
+ "description": "Application Keys resource type.",
+ "enum": [
+ "application_keys"
+ ],
+ "example": "application_keys",
+ "type": "string",
+ "x-enum-varnames": [
+ "APPLICATION_KEYS"
+ ]
}
},
- "type": "array"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
},
"included": {
"description": "Array of objects related to the application key.",
@@ -376230,28 +398288,6 @@
]
},
"type": "array"
- },
- "meta": {
- "description": "Additional information related to the application key response.",
- "properties": {
- "max_allowed_per_user": {
- "description": "Max allowed number of application keys per user.",
- "format": "int64",
- "type": "integer"
- },
- "page": {
- "description": "Additional information related to the application key response.",
- "properties": {
- "total_filtered_count": {
- "description": "Total filtered application key count.",
- "format": "int64",
- "type": "integer"
- }
- },
- "type": "object"
- }
- },
- "type": "object"
}
},
"type": "object"
@@ -376260,34 +398296,6 @@
},
"description": "OK"
},
- "400": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Bad Request"
- },
"403": {
"content": {
"application/json": {
@@ -376373,11 +398381,11 @@
"description": "Too many requests"
}
},
- "summary": "List application keys for this service account",
+ "summary": "Get one application key for this service account",
"tags": [
"Service Accounts"
],
- "x-menu-order": 6,
+ "x-menu-order": 1,
"x-permission": {
"operator": "OR",
"permissions": [
@@ -376388,9 +398396,9 @@
"type": "safe"
}
},
- "post": {
- "description": "Create an application key for this service account.",
- "operationId": "CreateServiceAccountApplicationKey",
+ "patch": {
+ "description": "Edit an application key owned by this service account.",
+ "operationId": "UpdateServiceAccountApplicationKey",
"parameters": [
{
"description": "The ID of the service account.",
@@ -376401,19 +398409,28 @@
"example": "00000000-0000-1234-0000-000000000000",
"type": "string"
}
+ },
+ {
+ "description": "The ID of the application key.",
+ "in": "path",
+ "name": "app_key_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
- "description": "Request used to create an application key.",
+ "description": "Request used to update an application key.",
"properties": {
"data": {
- "description": "Object used to create an application key.",
+ "description": "Object used to update an application key.",
"properties": {
"attributes": {
- "description": "Attributes used to create an application Key.",
+ "description": "Attributes used to update an application Key.",
"properties": {
"name": {
"description": "Name of the application key.",
@@ -376435,14 +398452,16 @@
"type": "array"
}
},
- "required": [
- "name"
- ],
"type": "object",
"x-merge-override": {
"properties": false
}
},
+ "id": {
+ "description": "ID of the application key.",
+ "example": "00112233-4455-6677-8899-aabbccddeeff",
+ "type": "string"
+ },
"type": {
"default": "application_keys",
"description": "Application Keys resource type.",
@@ -376458,6 +398477,7 @@
},
"required": [
"attributes",
+ "id",
"type"
],
"type": "object",
@@ -376476,30 +398496,26 @@
"required": true
},
"responses": {
- "201": {
+ "200": {
"content": {
"application/json": {
"schema": {
- "description": "Response for retrieving an application key.",
+ "description": "Response for retrieving a partial application key.",
"properties": {
"data": {
- "description": "Datadog application key.",
+ "description": "Partial Datadog application key.",
"properties": {
"attributes": {
- "description": "Attributes of a full application key.",
+ "description": "Attributes of a partial application key.",
"properties": {
"created_at": {
"description": "Creation date of the application key.",
"example": "2020-11-23T10:00:00.000Z",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "key": {
- "description": "The application key.",
"readOnly": true,
"type": "string",
- "x-secret": true
+ "x-merge-override": {
+ "format": false
+ }
},
"last4": {
"description": "The last four characters of the application key.",
@@ -376530,10 +398546,7 @@
"type": "array"
}
},
- "type": "object",
- "x-merge-override": {
- "properties": false
- }
+ "type": "object"
},
"id": {
"description": "ID of the application key.",
@@ -377019,7 +399032,7 @@
}
}
},
- "description": "Created"
+ "description": "OK"
},
"400": {
"content": {
@@ -377077,138 +399090,6 @@
},
"description": "Forbidden"
},
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Too many requests"
- }
- },
- "summary": "Create an application key for this service account",
- "tags": [
- "Service Accounts"
- ],
- "x-codegen-request-body-name": "body",
- "x-given": {
- "service_account_application_key": {
- "parameters": [
- {
- "name": "service_account_id",
- "value": "\"{{ service_account_user.data.id }}\""
- },
- {
- "name": "body",
- "value": "{\n \"data\": {\n \"attributes\": {\n \"name\": \"{{ unique }}\"\n },\n \"type\": \"application_keys\"\n }\n}"
- }
- ],
- "step": "there is a valid \"service_account_application_key\" for \"service_account_user\""
- }
- },
- "x-menu-order": 5,
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "service_account_write"
- ]
- },
- "x-undo": {
- "operationId": "DeleteServiceAccountApplicationKey",
- "parameters": [
- {
- "name": "app_key_id",
- "source": "data.id"
- },
- {
- "name": "service_account_id",
- "source": "data.relationships.owned_by.data.id"
- }
- ],
- "type": "unsafe"
- }
- },
- "x-merge-override": {
- "get": false
- }
- },
- "/api/v2/service_accounts/{service_account_id}/application_keys/{app_key_id}": {
- "delete": {
- "description": "Delete an application key owned by this service account.",
- "operationId": "DeleteServiceAccountApplicationKey",
- "parameters": [
- {
- "description": "The ID of the service account.",
- "in": "path",
- "name": "service_account_id",
- "required": true,
- "schema": {
- "example": "00000000-0000-1234-0000-000000000000",
- "type": "string"
- }
- },
- {
- "description": "The ID of the application key.",
- "in": "path",
- "name": "app_key_id",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "204": {
- "description": "No Content"
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Forbidden"
- },
"404": {
"content": {
"application/json": {
@@ -377266,11 +399147,12 @@
"description": "Too many requests"
}
},
- "summary": "Delete an application key for this service account",
+ "summary": "Edit an application key for this service account",
"tags": [
"Service Accounts"
],
- "x-menu-order": 3,
+ "x-codegen-request-body-name": "body",
+ "x-menu-order": 2,
"x-permission": {
"operator": "OR",
"permissions": [
@@ -377281,26 +399163,65 @@
"type": "idempotent"
}
},
+ "x-merge-override": {
+ "delete": true
+ }
+ },
+ "/api/v2/services": {
"get": {
- "description": "Get an application key owned by this service account.",
- "operationId": "GetServiceAccountApplicationKey",
+ "deprecated": true,
+ "description": "Get all incident services uploaded for the requesting user's organization. If the `include[users]` query parameter is provided, the included attribute will contain the users related to these incident services.",
+ "operationId": "ListIncidentServices",
"parameters": [
{
- "description": "The ID of the service account.",
- "in": "path",
- "name": "service_account_id",
- "required": true,
+ "description": "Specifies which types of related objects should be included in the response.",
+ "in": "query",
+ "name": "include",
+ "required": false,
"schema": {
- "example": "00000000-0000-1234-0000-000000000000",
- "type": "string"
+ "description": "Object related to an incident.",
+ "enum": [
+ "users",
+ "attachments"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS",
+ "ATTACHMENTS"
+ ]
}
},
{
- "description": "The ID of the application key.",
- "in": "path",
- "name": "app_key_id",
- "required": true,
+ "description": "Size for a given page. The maximum allowed value is 100.",
+ "in": "query",
+ "name": "page[size]",
+ "required": false,
+ "schema": {
+ "default": 10,
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ {
+ "description": "Specific offset to use as the beginning of the returned page.",
+ "in": "query",
+ "name": "page[offset]",
+ "required": false,
"schema": {
+ "default": 0,
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ {
+ "description": "A search query that filters services by name.",
+ "in": "query",
+ "name": "filter",
+ "required": false,
+ "schema": {
+ "example": "ExampleServiceName",
"type": "string"
}
}
@@ -377310,128 +399231,157 @@
"content": {
"application/json": {
"schema": {
- "description": "Response for retrieving a partial application key.",
+ "description": "Response with a list of incident service payloads.",
"properties": {
"data": {
- "description": "Partial Datadog application key.",
- "properties": {
- "attributes": {
- "description": "Attributes of a partial application key.",
- "properties": {
- "created_at": {
- "description": "Creation date of the application key.",
- "example": "2020-11-23T10:00:00.000Z",
- "readOnly": true,
- "type": "string",
- "x-merge-override": {
- "format": false
- }
- },
- "last4": {
- "description": "The last four characters of the application key.",
- "example": "abcd",
- "maxLength": 4,
- "minLength": 4,
- "readOnly": true,
- "type": "string",
- "x-secret": true
- },
- "name": {
- "description": "Name of the application key.",
- "example": "Application Key for managing dashboards",
- "type": "string"
- },
- "scopes": {
- "description": "Array of scopes to grant the application key.",
- "example": [
- "dashboards_read",
- "dashboards_write",
- "dashboards_public_share"
- ],
- "items": {
- "description": "Name of scope.",
+ "description": "An array of incident services.",
+ "example": [
+ {
+ "id": "00000000-0000-0000-0000-000000000000",
+ "type": "services"
+ }
+ ],
+ "items": {
+ "description": "Incident Service data from responses.",
+ "properties": {
+ "attributes": {
+ "description": "The incident service's attributes from a response.",
+ "properties": {
+ "created": {
+ "description": "Timestamp of when the incident service was created.",
+ "format": "date-time",
+ "readOnly": true,
"type": "string"
},
- "nullable": true,
- "type": "array"
- }
+ "modified": {
+ "description": "Timestamp of when the incident service was modified.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the incident service.",
+ "example": "service name",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
- "type": "object"
- },
- "id": {
- "description": "ID of the application key.",
- "type": "string"
- },
- "relationships": {
- "description": "Resources related to the application key.",
- "properties": {
- "owned_by": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
+ "id": {
+ "description": "The incident service's ID.",
+ "example": "00000000-0000-0000-0000-000000000000",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "The incident service's relationships.",
+ "properties": {
+ "created_by": {
+ "description": "Relationship to user.",
+ "properties": {
+ "data": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
},
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
}
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
}
- }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
},
- "required": [
- "data"
- ],
- "type": "object"
- }
+ "last_modified_by": {
+ "description": "Relationship to user.",
+ "properties": {
+ "data": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
+ },
+ "readOnly": true,
+ "type": "object"
},
- "type": "object",
- "x-merge-override": {
- "properties": false
+ "type": {
+ "default": "services",
+ "description": "Incident service resource type.",
+ "enum": [
+ "services"
+ ],
+ "example": "services",
+ "type": "string",
+ "x-enum-varnames": [
+ "SERVICES"
+ ]
}
},
- "type": {
- "default": "application_keys",
- "description": "Application Keys resource type.",
- "enum": [
- "application_keys"
- ],
- "example": "application_keys",
- "type": "string",
- "x-enum-varnames": [
- "APPLICATION_KEYS"
- ]
- }
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "array"
},
"included": {
- "description": "Array of objects related to the application key.",
+ "description": "Included related resources which the user requested.",
"items": {
- "description": "An object related to an application key.",
+ "description": "An object related to an incident service which is present in the included payload.",
"oneOf": [
{
"description": "User object returned by the API.",
@@ -377685,165 +399635,109 @@
"x-merge-override": {
"required": false
}
- },
- {
- "description": "Role object returned by the API.",
- "properties": {
- "attributes": {
- "description": "Attributes of the role.",
- "properties": {
- "created_at": {
- "description": "Creation time of the role.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified_at": {
- "description": "Time of last role modification.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "name": {
- "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
- "type": "string"
- },
- "user_count": {
- "description": "Number of users with that role.",
- "format": "int64",
- "readOnly": true,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "The unique identifier of the role.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the role object returned by the API.",
- "properties": {
- "permissions": {
- "description": "Relationship to multiple permissions objects.",
- "properties": {
- "data": {
- "description": "Relationships to permission objects.",
- "items": {
- "description": "Relationship to permission object.",
- "properties": {
- "id": {
- "description": "ID of the permission.",
- "type": "string"
- },
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
- "enum": [
- "permissions"
- ],
- "example": "permissions",
- "type": "string",
- "x-enum-varnames": [
- "PERMISSIONS"
- ]
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- {
- "description": "The definition of LeakedKey object.",
- "properties": {
- "attributes": {
- "description": "The definition of LeakedKeyAttributes object.",
- "properties": {
- "date": {
- "description": "The LeakedKeyAttributes date.",
- "example": "2017-07-21T17:32:28Z",
- "format": "date-time",
- "type": "string"
- },
- "leak_source": {
- "description": "The LeakedKeyAttributes leak_source.",
- "type": "string"
- }
- },
- "required": [
- "date"
- ],
- "type": "object"
- },
- "id": {
- "description": "The LeakedKey id.",
- "example": "id",
- "type": "string"
- },
- "type": {
- "default": "leaked_keys",
- "description": "The definition of LeakedKeyType object.",
- "enum": [
- "leaked_keys"
- ],
- "example": "leaked_keys",
- "type": "string",
- "x-enum-varnames": [
- "LEAKED_KEYS"
- ]
- }
- },
- "required": [
- "attributes",
- "id",
- "type"
- ],
- "type": "object"
}
]
},
+ "readOnly": true,
"type": "array"
+ },
+ "meta": {
+ "description": "The metadata object containing pagination metadata.",
+ "properties": {
+ "pagination": {
+ "description": "Pagination properties.",
+ "properties": {
+ "next_offset": {
+ "description": "The index of the first element in the next page of results. Equal to page size added to the current offset.",
+ "example": 1000,
+ "format": "int64",
+ "type": "integer"
+ },
+ "offset": {
+ "description": "The index of the first element in the results.",
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ },
+ "size": {
+ "description": "Maximum size of pages to return.",
+ "example": 1000,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "readOnly": true,
+ "type": "object"
}
},
+ "required": [
+ "data"
+ ],
"type": "object"
}
}
},
"description": "OK"
},
+ "400": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Bad Request"
+ },
+ "401": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Unauthorized"
+ },
"403": {
"content": {
"application/json": {
@@ -377929,109 +399823,162 @@
"description": "Too many requests"
}
},
- "summary": "Get one application key for this service account",
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
+ },
+ {
+ "AuthZ": [
+ "incident_read"
+ ]
+ }
+ ],
+ "summary": "Get a list of all incident services",
"tags": [
- "Service Accounts"
+ "Incident Services"
],
- "x-menu-order": 1,
+ "x-menu-order": 4,
"x-permission": {
"operator": "OR",
"permissions": [
- "service_account_write"
+ "incident_read"
]
},
"x-undo": {
"type": "safe"
- }
+ },
+ "x-unstable": "**Note**: This endpoint is deprecated."
},
- "patch": {
- "description": "Edit an application key owned by this service account.",
- "operationId": "UpdateServiceAccountApplicationKey",
- "parameters": [
- {
- "description": "The ID of the service account.",
- "in": "path",
- "name": "service_account_id",
- "required": true,
- "schema": {
- "example": "00000000-0000-1234-0000-000000000000",
- "type": "string"
- }
- },
- {
- "description": "The ID of the application key.",
- "in": "path",
- "name": "app_key_id",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
+ "post": {
+ "deprecated": true,
+ "description": "Creates a new incident service.",
+ "operationId": "CreateIncidentService",
"requestBody": {
"content": {
"application/json": {
"schema": {
- "description": "Request used to update an application key.",
+ "description": "Create request with an incident service payload.",
"properties": {
"data": {
- "description": "Object used to update an application key.",
+ "description": "Incident Service payload for create requests.",
"properties": {
"attributes": {
- "description": "Attributes used to update an application Key.",
+ "description": "The incident service's attributes for a create request.",
"properties": {
"name": {
- "description": "Name of the application key.",
- "example": "Application Key for managing dashboards",
+ "description": "Name of the incident service.",
+ "example": "an example service name",
"type": "string"
- },
- "scopes": {
- "description": "Array of scopes to grant the application key.",
- "example": [
- "dashboards_read",
- "dashboards_write",
- "dashboards_public_share"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "type": "object"
+ },
+ "relationships": {
+ "description": "The incident service's relationships.",
+ "properties": {
+ "created_by": {
+ "description": "Relationship to user.",
+ "properties": {
+ "data": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "required": [
+ "data"
],
- "items": {
- "description": "Name of scope.",
- "type": "string"
+ "type": "object"
+ },
+ "last_modified_by": {
+ "description": "Relationship to user.",
+ "properties": {
+ "data": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
},
- "nullable": true,
- "type": "array"
+ "required": [
+ "data"
+ ],
+ "type": "object"
}
},
- "type": "object",
- "x-merge-override": {
- "properties": false
- }
- },
- "id": {
- "description": "ID of the application key.",
- "example": "00112233-4455-6677-8899-aabbccddeeff",
- "type": "string"
+ "readOnly": true,
+ "type": "object"
},
"type": {
- "default": "application_keys",
- "description": "Application Keys resource type.",
+ "default": "services",
+ "description": "Incident service resource type.",
"enum": [
- "application_keys"
+ "services"
],
- "example": "application_keys",
+ "example": "services",
"type": "string",
"x-enum-varnames": [
- "APPLICATION_KEYS"
+ "SERVICES"
]
}
},
"required": [
- "attributes",
- "id",
"type"
],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "object"
}
},
"required": [
@@ -378041,69 +399988,90 @@
}
}
},
+ "description": "Incident Service Payload.",
"required": true
},
"responses": {
- "200": {
+ "201": {
"content": {
"application/json": {
"schema": {
- "description": "Response for retrieving a partial application key.",
+ "description": "Response with an incident service payload.",
"properties": {
"data": {
- "description": "Partial Datadog application key.",
+ "description": "Incident Service data from responses.",
"properties": {
"attributes": {
- "description": "Attributes of a partial application key.",
+ "description": "The incident service's attributes from a response.",
"properties": {
- "created_at": {
- "description": "Creation date of the application key.",
- "example": "2020-11-23T10:00:00.000Z",
+ "created": {
+ "description": "Timestamp of when the incident service was created.",
+ "format": "date-time",
"readOnly": true,
- "type": "string",
- "x-merge-override": {
- "format": false
- }
+ "type": "string"
},
- "last4": {
- "description": "The last four characters of the application key.",
- "example": "abcd",
- "maxLength": 4,
- "minLength": 4,
+ "modified": {
+ "description": "Timestamp of when the incident service was modified.",
+ "format": "date-time",
"readOnly": true,
- "type": "string",
- "x-secret": true
+ "type": "string"
},
"name": {
- "description": "Name of the application key.",
- "example": "Application Key for managing dashboards",
+ "description": "Name of the incident service.",
+ "example": "service name",
"type": "string"
- },
- "scopes": {
- "description": "Array of scopes to grant the application key.",
- "example": [
- "dashboards_read",
- "dashboards_write",
- "dashboards_public_share"
- ],
- "items": {
- "description": "Name of scope.",
- "type": "string"
- },
- "nullable": true,
- "type": "array"
}
},
"type": "object"
},
"id": {
- "description": "ID of the application key.",
+ "description": "The incident service's ID.",
+ "example": "00000000-0000-0000-0000-000000000000",
"type": "string"
},
"relationships": {
- "description": "Resources related to the application key.",
+ "description": "The incident service's relationships.",
"properties": {
- "owned_by": {
+ "created_by": {
+ "description": "Relationship to user.",
+ "properties": {
+ "data": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "last_modified_by": {
"description": "Relationship to user.",
"properties": {
"data": {
@@ -378143,33 +400111,32 @@
"type": "object"
}
},
- "type": "object",
- "x-merge-override": {
- "properties": false
- }
+ "readOnly": true,
+ "type": "object"
},
"type": {
- "default": "application_keys",
- "description": "Application Keys resource type.",
+ "default": "services",
+ "description": "Incident service resource type.",
"enum": [
- "application_keys"
+ "services"
],
- "example": "application_keys",
+ "example": "services",
"type": "string",
"x-enum-varnames": [
- "APPLICATION_KEYS"
+ "SERVICES"
]
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
},
"included": {
- "description": "Array of objects related to the application key.",
+ "description": "Included objects from relationships.",
"items": {
- "description": "An object related to an application key.",
+ "description": "An object related to an incident service which is present in the included payload.",
"oneOf": [
{
"description": "User object returned by the API.",
@@ -378423,164 +400390,21 @@
"x-merge-override": {
"required": false
}
- },
- {
- "description": "Role object returned by the API.",
- "properties": {
- "attributes": {
- "description": "Attributes of the role.",
- "properties": {
- "created_at": {
- "description": "Creation time of the role.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified_at": {
- "description": "Time of last role modification.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "name": {
- "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
- "type": "string"
- },
- "user_count": {
- "description": "Number of users with that role.",
- "format": "int64",
- "readOnly": true,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "The unique identifier of the role.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the role object returned by the API.",
- "properties": {
- "permissions": {
- "description": "Relationship to multiple permissions objects.",
- "properties": {
- "data": {
- "description": "Relationships to permission objects.",
- "items": {
- "description": "Relationship to permission object.",
- "properties": {
- "id": {
- "description": "ID of the permission.",
- "type": "string"
- },
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
- "enum": [
- "permissions"
- ],
- "example": "permissions",
- "type": "string",
- "x-enum-varnames": [
- "PERMISSIONS"
- ]
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- {
- "description": "The definition of LeakedKey object.",
- "properties": {
- "attributes": {
- "description": "The definition of LeakedKeyAttributes object.",
- "properties": {
- "date": {
- "description": "The LeakedKeyAttributes date.",
- "example": "2017-07-21T17:32:28Z",
- "format": "date-time",
- "type": "string"
- },
- "leak_source": {
- "description": "The LeakedKeyAttributes leak_source.",
- "type": "string"
- }
- },
- "required": [
- "date"
- ],
- "type": "object"
- },
- "id": {
- "description": "The LeakedKey id.",
- "example": "id",
- "type": "string"
- },
- "type": {
- "default": "leaked_keys",
- "description": "The definition of LeakedKeyType object.",
- "enum": [
- "leaked_keys"
- ],
- "example": "leaked_keys",
- "type": "string",
- "x-enum-varnames": [
- "LEAKED_KEYS"
- ]
- }
- },
- "required": [
- "attributes",
- "id",
- "type"
- ],
- "type": "object"
}
]
},
+ "readOnly": true,
"type": "array"
}
},
+ "required": [
+ "data"
+ ],
"type": "object"
}
}
},
- "description": "OK"
+ "description": "CREATED"
},
"400": {
"content": {
@@ -378610,6 +400434,34 @@
},
"description": "Bad Request"
},
+ "401": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Unauthorized"
+ },
"403": {
"content": {
"application/json": {
@@ -378695,50 +400547,58 @@
"description": "Too many requests"
}
},
- "summary": "Edit an application key for this service account",
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
+ },
+ {
+ "AuthZ": [
+ "incident_settings_write"
+ ]
+ }
+ ],
+ "summary": "Create a new incident service",
"tags": [
- "Service Accounts"
+ "Incident Services"
],
"x-codegen-request-body-name": "body",
- "x-menu-order": 2,
+ "x-given": {
+ "service": {
+ "parameters": [
+ {
+ "name": "body",
+ "value": "{\n \"data\": {\n \"attributes\": {\n \"name\": \"{{ unique }}\"\n },\n \"type\": \"services\"\n }\n}"
+ }
+ ],
+ "step": "there is a valid \"service\" in the system"
+ }
+ },
+ "x-menu-order": 5,
"x-permission": {
"operator": "OR",
"permissions": [
- "service_account_write"
+ "incident_settings_write"
]
},
"x-undo": {
- "type": "idempotent"
- }
- },
- "x-merge-override": {
- "delete": true
+ "operationId": "DeleteIncidentService",
+ "parameters": [
+ {
+ "name": "service_id",
+ "source": "data.id"
+ }
+ ],
+ "type": "unsafe"
+ },
+ "x-unstable": "**Note**: This endpoint is deprecated."
}
},
- "/api/v2/services": {
+ "/api/v2/services/definitions": {
"get": {
- "deprecated": true,
- "description": "Get all incident services uploaded for the requesting user's organization. If the `include[users]` query parameter is provided, the included attribute will contain the users related to these incident services.",
- "operationId": "ListIncidentServices",
+ "description": "Get a list of all service definitions from the Datadog Service Catalog.",
+ "operationId": "ListServiceDefinitions",
"parameters": [
- {
- "description": "Specifies which types of related objects should be included in the response.",
- "in": "query",
- "name": "include",
- "required": false,
- "schema": {
- "description": "Object related to an incident.",
- "enum": [
- "users",
- "attachments"
- ],
- "type": "string",
- "x-enum-varnames": [
- "USERS",
- "ATTACHMENTS"
- ]
- }
- },
{
"description": "Size for a given page. The maximum allowed value is 100.",
"in": "query",
@@ -378752,540 +400612,1105 @@
}
},
{
- "description": "Specific offset to use as the beginning of the returned page.",
- "in": "query",
- "name": "page[offset]",
- "required": false,
- "schema": {
- "default": 0,
- "example": 0,
- "format": "int64",
- "type": "integer"
- }
- },
- {
- "description": "A search query that filters services by name.",
- "in": "query",
- "name": "filter",
- "required": false,
- "schema": {
- "example": "ExampleServiceName",
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Response with a list of incident service payloads.",
- "properties": {
- "data": {
- "description": "An array of incident services.",
- "example": [
- {
- "id": "00000000-0000-0000-0000-000000000000",
- "type": "services"
- }
- ],
- "items": {
- "description": "Incident Service data from responses.",
- "properties": {
- "attributes": {
- "description": "The incident service's attributes from a response.",
- "properties": {
- "created": {
- "description": "Timestamp of when the incident service was created.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified": {
- "description": "Timestamp of when the incident service was modified.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "name": {
- "description": "Name of the incident service.",
- "example": "service name",
- "type": "string"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "The incident service's ID.",
- "example": "00000000-0000-0000-0000-000000000000",
- "type": "string"
- },
- "relationships": {
- "description": "The incident service's relationships.",
- "properties": {
- "created_by": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "last_modified_by": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- }
- },
- "readOnly": true,
- "type": "object"
- },
- "type": {
- "default": "services",
- "description": "Incident service resource type.",
- "enum": [
- "services"
- ],
- "example": "services",
- "type": "string",
- "x-enum-varnames": [
- "SERVICES"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "included": {
- "description": "Included related resources which the user requested.",
+ "description": "Specific page number to return.",
+ "in": "query",
+ "name": "page[number]",
+ "required": false,
+ "schema": {
+ "default": 0,
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ {
+ "description": "The schema version desired in the response.",
+ "in": "query",
+ "name": "schema_version",
+ "required": false,
+ "schema": {
+ "description": "Schema versions",
+ "enum": [
+ "v1",
+ "v2",
+ "v2.1",
+ "v2.2"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "V1",
+ "V2",
+ "V2_1",
+ "V2_2"
+ ]
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Create service definitions response.",
+ "properties": {
+ "data": {
+ "description": "Data representing service definitions.",
"items": {
- "description": "An object related to an incident service which is present in the included payload.",
- "oneOf": [
- {
- "description": "User object returned by the API.",
+ "description": "Service definition data.",
+ "properties": {
+ "attributes": {
+ "description": "Service definition attributes.",
"properties": {
- "attributes": {
- "description": "Attributes of user object returned by the API.",
+ "meta": {
+ "description": "Metadata about a service definition.",
"properties": {
- "created_at": {
- "description": "Creation time of the user.",
- "format": "date-time",
- "type": "string"
- },
- "disabled": {
- "description": "Whether the user is disabled.",
- "type": "boolean"
- },
- "email": {
- "description": "Email of the user.",
- "type": "string"
- },
- "handle": {
- "description": "Handle of the user.",
+ "github-html-url": {
+ "description": "GitHub HTML URL.",
"type": "string"
},
- "icon": {
- "description": "URL of the user's icon.",
+ "ingested-schema-version": {
+ "description": "Ingestion schema version.",
"type": "string"
},
- "mfa_enabled": {
- "description": "If user has MFA enabled.",
- "readOnly": true,
- "type": "boolean"
- },
- "modified_at": {
- "description": "Time that the user was last modified.",
- "format": "date-time",
+ "ingestion-source": {
+ "description": "Ingestion source of the service definition.",
"type": "string"
},
- "name": {
- "description": "Name of the user.",
- "nullable": true,
+ "last-modified-time": {
+ "description": "Last modified time of the service definition.",
"type": "string"
},
- "service_account": {
- "description": "Whether the user is a service account.",
- "type": "boolean"
- },
- "status": {
- "description": "Status of the user.",
+ "origin": {
+ "description": "User defined origin of the service definition.",
"type": "string"
},
- "title": {
- "description": "Title of the user.",
- "nullable": true,
+ "origin-detail": {
+ "description": "User defined origin's detail of the service definition.",
"type": "string"
},
- "verified": {
- "description": "Whether the user is verified.",
- "type": "boolean"
+ "warnings": {
+ "description": "A list of schema validation warnings.",
+ "items": {
+ "description": "Schema validation warnings.",
+ "properties": {
+ "instance-location": {
+ "description": "The warning instance location.",
+ "type": "string"
+ },
+ "keyword-location": {
+ "description": "The warning keyword location.",
+ "type": "string"
+ },
+ "message": {
+ "description": "The warning message.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
}
},
"type": "object"
},
- "id": {
- "description": "ID of the user.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the user object returned by the API.",
- "properties": {
- "org": {
- "description": "Relationship to an organization.",
+ "schema": {
+ "description": "Service definition schema.",
+ "oneOf": [
+ {
+ "deprecated": true,
+ "description": "Deprecated - Service definition V1 for providing additional service metadata and integrations.",
"properties": {
- "data": {
- "description": "Relationship to organization object.",
+ "contact": {
+ "description": "Contact information about the service.",
"properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
+ "email": {
+ "description": "Service owner’s email.",
+ "example": "contact@datadoghq.com",
"type": "string"
},
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
+ "slack": {
+ "description": "Service owner’s Slack channel.",
+ "example": "https://yourcompany.slack.com/archives/channel123",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "extensions": {
+ "additionalProperties": {},
+ "description": "Extensions to V1 schema.",
+ "example": {
+ "myorg/extension": "extensionValue"
+ },
+ "type": "object"
+ },
+ "external-resources": {
+ "description": "A list of external links related to the services.",
+ "items": {
+ "description": "Service's external links.",
+ "properties": {
+ "name": {
+ "description": "Link name.",
+ "example": "Runbook",
+ "type": "string"
+ },
+ "type": {
+ "description": "Link type.",
+ "enum": [
+ "doc",
+ "wiki",
+ "runbook",
+ "url",
+ "repo",
+ "dashboard",
+ "oncall",
+ "code",
+ "link"
+ ],
+ "example": "runbook",
+ "type": "string",
+ "x-enum-varnames": [
+ "DOC",
+ "WIKI",
+ "RUNBOOK",
+ "URL",
+ "REPO",
+ "DASHBOARD",
+ "ONCALL",
+ "CODE",
+ "LINK"
+ ]
+ },
+ "url": {
+ "description": "Link URL.",
+ "example": "https://my-runbook",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "type",
+ "url"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "info": {
+ "description": "Basic information about a service.",
+ "properties": {
+ "dd-service": {
+ "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
+ "example": "myservice",
+ "type": "string"
+ },
+ "description": {
+ "description": "A short description of the service.",
+ "example": "A shopping cart service",
+ "type": "string"
+ },
+ "display-name": {
+ "description": "A friendly name of the service.",
+ "example": "My Service",
+ "type": "string"
+ },
+ "service-tier": {
+ "description": "Service tier.",
+ "example": "Tier 1",
+ "type": "string"
}
},
"required": [
- "id",
- "type"
+ "dd-service"
],
"type": "object"
+ },
+ "integrations": {
+ "description": "Third party integrations that Datadog supports.",
+ "properties": {
+ "pagerduty": {
+ "description": "PagerDuty service URL for the service.",
+ "example": "https://my-org.pagerduty.com/service-directory/PMyService",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "org": {
+ "description": "Org related information about the service.",
+ "properties": {
+ "application": {
+ "description": "App feature this service supports.",
+ "example": "E-Commerce",
+ "type": "string"
+ },
+ "team": {
+ "description": "Team that owns the service.",
+ "example": "my-team",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "schema-version": {
+ "default": "v1",
+ "description": "Schema version being used.",
+ "enum": [
+ "v1"
+ ],
+ "example": "v1",
+ "type": "string",
+ "x-enum-varnames": [
+ "V1"
+ ]
+ },
+ "tags": {
+ "description": "A set of custom tags.",
+ "example": [
+ "my:tag",
+ "service:tag"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
}
},
"required": [
- "data"
+ "schema-version",
+ "info"
],
"type": "object"
},
- "other_orgs": {
- "description": "Relationship to organizations.",
+ {
+ "description": "Service definition V2 for providing service metadata and integrations.",
"properties": {
- "data": {
- "description": "Relationships to organization objects.",
- "example": [],
+ "contacts": {
+ "description": "A list of contacts related to the services.",
"items": {
- "description": "Relationship to organization object.",
+ "description": "Service owner's contacts information.",
+ "oneOf": [
+ {
+ "description": "Service owner's email.",
+ "properties": {
+ "contact": {
+ "description": "Contact value.",
+ "example": "contact@datadoghq.com",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact email.",
+ "example": "Team Email",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "email"
+ ],
+ "example": "email",
+ "type": "string",
+ "x-enum-varnames": [
+ "EMAIL"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Service owner's Slack channel.",
+ "properties": {
+ "contact": {
+ "description": "Slack Channel.",
+ "example": "https://yourcompany.slack.com/archives/channel123",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact Slack.",
+ "example": "Team Slack",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "slack"
+ ],
+ "example": "slack",
+ "type": "string",
+ "x-enum-varnames": [
+ "SLACK"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Service owner's Microsoft Teams.",
+ "properties": {
+ "contact": {
+ "description": "Contact value.",
+ "example": "https://teams.microsoft.com/myteam",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact Microsoft Teams.",
+ "example": "My team channel",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "microsoft-teams"
+ ],
+ "example": "microsoft-teams",
+ "type": "string",
+ "x-enum-varnames": [
+ "MICROSOFT_TEAMS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "type": "array"
+ },
+ "dd-service": {
+ "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
+ "example": "my-service",
+ "type": "string"
+ },
+ "dd-team": {
+ "description": "Experimental feature. A Team handle that matches a Team in the Datadog Teams product.",
+ "example": "my-team",
+ "type": "string"
+ },
+ "docs": {
+ "description": "A list of documentation related to the services.",
+ "items": {
+ "description": "Service documents.",
"properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
+ "name": {
+ "description": "Document name.",
+ "example": "Architecture",
+ "type": "string"
+ },
+ "provider": {
+ "description": "Document provider.",
+ "example": "google drive",
+ "type": "string"
+ },
+ "url": {
+ "description": "Document URL.",
+ "example": "https://gdrive/mydoc",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "url"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "extensions": {
+ "additionalProperties": {},
+ "description": "Extensions to V2 schema.",
+ "example": {
+ "myorg/extension": "extensionValue"
+ },
+ "type": "object"
+ },
+ "integrations": {
+ "description": "Third party integrations that Datadog supports.",
+ "properties": {
+ "opsgenie": {
+ "description": "Opsgenie integration for the service.",
+ "properties": {
+ "region": {
+ "description": "Opsgenie instance region.",
+ "enum": [
+ "US",
+ "EU"
+ ],
+ "example": "US",
+ "type": "string",
+ "x-enum-varnames": [
+ "US",
+ "EU"
+ ]
+ },
+ "service-url": {
+ "description": "Opsgenie service url.",
+ "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
+ "type": "string"
+ }
+ },
+ "required": [
+ "service-url"
+ ],
+ "type": "object"
+ },
+ "pagerduty": {
+ "description": "PagerDuty service URL for the service.",
+ "example": "https://my-org.pagerduty.com/service-directory/PMyService",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "links": {
+ "description": "A list of links related to the services.",
+ "items": {
+ "description": "Service's external links.",
+ "properties": {
+ "name": {
+ "description": "Link name.",
+ "example": "Runbook",
"type": "string"
},
"type": {
- "default": "orgs",
- "description": "Organizations resource type.",
+ "description": "Link type.",
"enum": [
- "orgs"
+ "doc",
+ "wiki",
+ "runbook",
+ "url",
+ "repo",
+ "dashboard",
+ "oncall",
+ "code",
+ "link"
],
- "example": "orgs",
+ "example": "runbook",
"type": "string",
"x-enum-varnames": [
- "ORGS"
+ "DOC",
+ "WIKI",
+ "RUNBOOK",
+ "URL",
+ "REPO",
+ "DASHBOARD",
+ "ONCALL",
+ "CODE",
+ "LINK"
]
+ },
+ "url": {
+ "description": "Link URL.",
+ "example": "https://my-runbook",
+ "type": "string"
}
},
"required": [
- "id",
- "type"
+ "name",
+ "type",
+ "url"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "repos": {
+ "description": "A list of code repositories related to the services.",
+ "items": {
+ "description": "Service code repositories.",
+ "properties": {
+ "name": {
+ "description": "Repository name.",
+ "example": "Source Code",
+ "type": "string"
+ },
+ "provider": {
+ "description": "Repository provider.",
+ "example": "GitHub",
+ "type": "string"
+ },
+ "url": {
+ "description": "Repository URL.",
+ "example": "https://github.com/DataDog/schema",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "url"
],
"type": "object"
},
"type": "array"
+ },
+ "schema-version": {
+ "default": "v2",
+ "description": "Schema version being used.",
+ "enum": [
+ "v2"
+ ],
+ "example": "v2",
+ "type": "string",
+ "x-enum-varnames": [
+ "V2"
+ ]
+ },
+ "tags": {
+ "description": "A set of custom tags.",
+ "example": [
+ "my:tag",
+ "service:tag"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "team": {
+ "description": "Team that owns the service.",
+ "example": "my-team",
+ "type": "string"
}
},
"required": [
- "data"
+ "schema-version",
+ "dd-service"
],
"type": "object"
},
- "other_users": {
- "description": "Relationship to users.",
+ {
+ "description": "Service definition v2.1 for providing service metadata and integrations.",
"properties": {
- "data": {
- "description": "Relationships to user objects.",
- "example": [],
+ "application": {
+ "description": "Identifier for a group of related services serving a product feature, which the service is a part of.",
+ "example": "my-app",
+ "type": "string"
+ },
+ "contacts": {
+ "description": "A list of contacts related to the services.",
"items": {
- "description": "Relationship to user object.",
+ "description": "Service owner's contacts information.",
+ "oneOf": [
+ {
+ "description": "Service owner's email.",
+ "properties": {
+ "contact": {
+ "description": "Contact value.",
+ "example": "contact@datadoghq.com",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact email.",
+ "example": "Team Email",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "email"
+ ],
+ "example": "email",
+ "type": "string",
+ "x-enum-varnames": [
+ "EMAIL"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Service owner's Slack channel.",
+ "properties": {
+ "contact": {
+ "description": "Slack Channel.",
+ "example": "https://yourcompany.slack.com/archives/channel123",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact Slack.",
+ "example": "Team Slack",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "slack"
+ ],
+ "example": "slack",
+ "type": "string",
+ "x-enum-varnames": [
+ "SLACK"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Service owner's Microsoft Teams.",
+ "properties": {
+ "contact": {
+ "description": "Contact value.",
+ "example": "https://teams.microsoft.com/myteam",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact Microsoft Teams.",
+ "example": "My team channel",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "microsoft-teams"
+ ],
+ "example": "microsoft-teams",
+ "type": "string",
+ "x-enum-varnames": [
+ "MICROSOFT_TEAMS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "type": "array"
+ },
+ "dd-service": {
+ "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
+ "example": "my-service",
+ "type": "string"
+ },
+ "description": {
+ "description": "A short description of the service.",
+ "example": "My service description",
+ "type": "string"
+ },
+ "extensions": {
+ "additionalProperties": {},
+ "description": "Extensions to v2.1 schema.",
+ "example": {
+ "myorg/extension": "extensionValue"
+ },
+ "type": "object"
+ },
+ "integrations": {
+ "description": "Third party integrations that Datadog supports.",
+ "properties": {
+ "opsgenie": {
+ "description": "Opsgenie integration for the service.",
+ "properties": {
+ "region": {
+ "description": "Opsgenie instance region.",
+ "enum": [
+ "US",
+ "EU"
+ ],
+ "example": "US",
+ "type": "string",
+ "x-enum-varnames": [
+ "US",
+ "EU"
+ ]
+ },
+ "service-url": {
+ "description": "Opsgenie service url.",
+ "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
+ "type": "string"
+ }
+ },
+ "required": [
+ "service-url"
+ ],
+ "type": "object"
+ },
+ "pagerduty": {
+ "description": "PagerDuty integration for the service.",
+ "properties": {
+ "service-url": {
+ "description": "PagerDuty service url.",
+ "example": "https://my-org.pagerduty.com/service-directory/PMyService",
+ "type": "string"
+ }
+ },
+ "type": "object",
+ "x-ignore-duplicate-object": true
+ }
+ },
+ "type": "object"
+ },
+ "lifecycle": {
+ "description": "The current life cycle phase of the service.",
+ "example": "sandbox",
+ "type": "string"
+ },
+ "links": {
+ "description": "A list of links related to the services.",
+ "items": {
+ "description": "Service's external links.",
"properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
+ "name": {
+ "description": "Link name.",
+ "example": "Runbook",
+ "type": "string"
+ },
+ "provider": {
+ "description": "Link provider.",
+ "example": "Github",
"type": "string"
},
"type": {
- "default": "users",
- "description": "Users resource type.",
+ "description": "Link type.",
"enum": [
- "users"
+ "doc",
+ "repo",
+ "runbook",
+ "dashboard",
+ "other"
],
- "example": "users",
+ "example": "runbook",
"type": "string",
"x-enum-varnames": [
- "USERS"
+ "DOC",
+ "REPO",
+ "RUNBOOK",
+ "DASHBOARD",
+ "OTHER"
]
+ },
+ "url": {
+ "description": "Link URL.",
+ "example": "https://my-runbook",
+ "type": "string"
}
},
"required": [
- "id",
- "type"
+ "name",
+ "type",
+ "url"
],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "schema-version": {
+ "default": "v2.1",
+ "description": "Schema version being used.",
+ "enum": [
+ "v2.1"
+ ],
+ "example": "v2.1",
+ "type": "string",
+ "x-enum-varnames": [
+ "V2_1"
+ ]
+ },
+ "tags": {
+ "description": "A set of custom tags.",
+ "example": [
+ "my:tag",
+ "service:tag"
+ ],
+ "items": {
+ "type": "string"
},
"type": "array"
+ },
+ "team": {
+ "description": "Team that owns the service. It is used to locate a team defined in Datadog Teams if it exists.",
+ "example": "my-team",
+ "type": "string"
+ },
+ "tier": {
+ "description": "Importance of the service.",
+ "example": "High",
+ "type": "string"
}
},
"required": [
- "data"
+ "schema-version",
+ "dd-service"
],
"type": "object"
},
- "roles": {
- "description": "Relationship to roles.",
+ {
+ "description": "Service definition v2.2 for providing service metadata and integrations.",
"properties": {
- "data": {
- "description": "An array containing type and the unique identifier of a role.",
+ "application": {
+ "description": "Identifier for a group of related services serving a product feature, which the service is a part of.",
+ "example": "my-app",
+ "type": "string"
+ },
+ "ci-pipeline-fingerprints": {
+ "description": "A set of CI fingerprints.",
+ "example": [
+ "j88xdEy0J5lc",
+ "eZ7LMljCk8vo"
+ ],
"items": {
- "description": "Relationship to role object.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "contacts": {
+ "description": "A list of contacts related to the services.",
+ "items": {
+ "description": "Service owner's contacts information.",
"properties": {
- "id": {
- "description": "The unique identifier of the role.",
- "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "contact": {
+ "description": "Contact value.",
+ "example": "https://teams.microsoft.com/myteam",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact Name.",
+ "example": "My team channel",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type. Datadog recognizes the following types: `email`, `slack`, and `microsoft-teams`.",
+ "example": "slack",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "dd-service": {
+ "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
+ "example": "my-service",
+ "type": "string"
+ },
+ "description": {
+ "description": "A short description of the service.",
+ "example": "My service description",
+ "type": "string"
+ },
+ "extensions": {
+ "additionalProperties": {},
+ "description": "Extensions to v2.2 schema.",
+ "example": {
+ "myorg/extension": "extensionValue"
+ },
+ "type": "object"
+ },
+ "integrations": {
+ "description": "Third party integrations that Datadog supports.",
+ "properties": {
+ "opsgenie": {
+ "description": "Opsgenie integration for the service.",
+ "properties": {
+ "region": {
+ "description": "Opsgenie instance region.",
+ "enum": [
+ "US",
+ "EU"
+ ],
+ "example": "US",
+ "type": "string",
+ "x-enum-varnames": [
+ "US",
+ "EU"
+ ]
+ },
+ "service-url": {
+ "description": "Opsgenie service url.",
+ "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
+ "type": "string"
+ }
+ },
+ "required": [
+ "service-url"
+ ],
+ "type": "object"
+ },
+ "pagerduty": {
+ "description": "PagerDuty integration for the service.",
+ "properties": {
+ "service-url": {
+ "description": "PagerDuty service url.",
+ "example": "https://my-org.pagerduty.com/service-directory/PMyService",
+ "type": "string"
+ }
+ },
+ "type": "object",
+ "x-ignore-duplicate-object": true
+ }
+ },
+ "type": "object"
+ },
+ "languages": {
+ "description": "The service's programming language. Datadog recognizes the following languages: `dotnet`, `go`, `java`, `js`, `php`, `python`, `ruby`, and `c++`.",
+ "example": [
+ "dotnet",
+ "go",
+ "java",
+ "js",
+ "php",
+ "python",
+ "ruby",
+ "c++"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "lifecycle": {
+ "description": "The current life cycle phase of the service.",
+ "example": "sandbox",
+ "type": "string"
+ },
+ "links": {
+ "description": "A list of links related to the services.",
+ "items": {
+ "description": "Service's external links.",
+ "properties": {
+ "name": {
+ "description": "Link name.",
+ "example": "Runbook",
+ "type": "string"
+ },
+ "provider": {
+ "description": "Link provider.",
+ "example": "Github",
"type": "string"
},
"type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
+ "description": "Link type. Datadog recognizes the following types: `runbook`, `doc`, `repo`, `dashboard`, and `other`.",
+ "example": "runbook",
+ "type": "string"
+ },
+ "url": {
+ "description": "Link URL.",
+ "example": "https://my-runbook",
+ "type": "string"
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "required": [
+ "name",
+ "type",
+ "url"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "schema-version": {
+ "default": "v2.2",
+ "description": "Schema version being used.",
+ "enum": [
+ "v2.2"
+ ],
+ "example": "v2.2",
+ "type": "string",
+ "x-enum-varnames": [
+ "V2_2"
+ ]
+ },
+ "tags": {
+ "description": "A set of custom tags.",
+ "example": [
+ "my:tag",
+ "service:tag"
+ ],
+ "items": {
+ "type": "string"
},
"type": "array"
+ },
+ "team": {
+ "description": "Team that owns the service. It is used to locate a team defined in Datadog Teams if it exists.",
+ "example": "my-team",
+ "type": "string"
+ },
+ "tier": {
+ "description": "Importance of the service.",
+ "example": "High",
+ "type": "string"
+ },
+ "type": {
+ "description": "The type of service.",
+ "enum": [
+ "web",
+ "db",
+ "cache",
+ "function",
+ "browser",
+ "mobile",
+ "custom"
+ ],
+ "example": "web",
+ "type": "string",
+ "x-enum-varnames": [
+ "WEB",
+ "DB",
+ "CACHE",
+ "FUNCTION",
+ "BROSWER",
+ "MOBILE",
+ "CUSTOM"
+ ]
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "required": [
+ "schema-version",
+ "dd-service"
+ ],
+ "type": "object"
}
- },
- "type": "object",
- "x-merge-override": {
- "properties": false
- }
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
]
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "object"
+ },
+ "id": {
+ "description": "Service definition id.",
+ "type": "string"
+ },
+ "type": {
+ "description": "Service definition type.",
+ "type": "string"
}
- ]
+ },
+ "type": "object"
},
- "readOnly": true,
"type": "array"
- },
- "meta": {
- "description": "The metadata object containing pagination metadata.",
- "properties": {
- "pagination": {
- "description": "Pagination properties.",
- "properties": {
- "next_offset": {
- "description": "The index of the first element in the next page of results. Equal to page size added to the current offset.",
- "example": 1000,
- "format": "int64",
- "type": "integer"
- },
- "offset": {
- "description": "The index of the first element in the results.",
- "example": 10,
- "format": "int64",
- "type": "integer"
- },
- "size": {
- "description": "Maximum size of pages to return.",
- "example": 1000,
- "format": "int64",
- "type": "integer"
- }
- },
- "type": "object"
- }
- },
- "readOnly": true,
- "type": "object"
}
},
- "required": [
- "data"
- ],
"type": "object"
}
}
},
"description": "OK"
},
- "400": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Bad Request"
- },
- "401": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Unauthorized"
- },
"403": {
"content": {
"application/json": {
@@ -379314,34 +401739,6 @@
},
"description": "Forbidden"
},
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Not Found"
- },
"429": {
"content": {
"application/json": {
@@ -379378,576 +401775,1914 @@
},
{
"AuthZ": [
- "incident_read"
+ "apm_service_catalog_read"
]
}
],
- "summary": "Get a list of all incident services",
+ "summary": "Get all service definitions",
"tags": [
- "Incident Services"
+ "Service Definition"
],
- "x-menu-order": 4,
+ "x-menu-order": 1,
+ "x-pagination": {
+ "limitParam": "page[size]",
+ "pageParam": "page[number]",
+ "resultsPath": "data"
+ },
"x-permission": {
"operator": "OR",
"permissions": [
- "incident_read"
+ "apm_service_catalog_read"
]
},
"x-undo": {
"type": "safe"
- },
- "x-unstable": "**Note**: This endpoint is deprecated."
+ }
},
"post": {
- "deprecated": true,
- "description": "Creates a new incident service.",
- "operationId": "CreateIncidentService",
+ "description": "Create or update service definition in the Datadog Service Catalog.",
+ "operationId": "CreateOrUpdateServiceDefinitions",
"requestBody": {
"content": {
"application/json": {
"schema": {
- "description": "Create request with an incident service payload.",
- "properties": {
- "data": {
- "description": "Incident Service payload for create requests.",
+ "description": "Create service definitions request.",
+ "oneOf": [
+ {
+ "description": "Service definition v2.2 for providing service metadata and integrations.",
"properties": {
- "attributes": {
- "description": "The incident service's attributes for a create request.",
+ "application": {
+ "description": "Identifier for a group of related services serving a product feature, which the service is a part of.",
+ "example": "my-app",
+ "type": "string"
+ },
+ "ci-pipeline-fingerprints": {
+ "description": "A set of CI fingerprints.",
+ "example": [
+ "j88xdEy0J5lc",
+ "eZ7LMljCk8vo"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "contacts": {
+ "description": "A list of contacts related to the services.",
+ "items": {
+ "description": "Service owner's contacts information.",
+ "properties": {
+ "contact": {
+ "description": "Contact value.",
+ "example": "https://teams.microsoft.com/myteam",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact Name.",
+ "example": "My team channel",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type. Datadog recognizes the following types: `email`, `slack`, and `microsoft-teams`.",
+ "example": "slack",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "dd-service": {
+ "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
+ "example": "my-service",
+ "type": "string"
+ },
+ "description": {
+ "description": "A short description of the service.",
+ "example": "My service description",
+ "type": "string"
+ },
+ "extensions": {
+ "additionalProperties": {},
+ "description": "Extensions to v2.2 schema.",
+ "example": {
+ "myorg/extension": "extensionValue"
+ },
+ "type": "object"
+ },
+ "integrations": {
+ "description": "Third party integrations that Datadog supports.",
"properties": {
- "name": {
- "description": "Name of the incident service.",
- "example": "an example service name",
- "type": "string"
+ "opsgenie": {
+ "description": "Opsgenie integration for the service.",
+ "properties": {
+ "region": {
+ "description": "Opsgenie instance region.",
+ "enum": [
+ "US",
+ "EU"
+ ],
+ "example": "US",
+ "type": "string",
+ "x-enum-varnames": [
+ "US",
+ "EU"
+ ]
+ },
+ "service-url": {
+ "description": "Opsgenie service url.",
+ "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
+ "type": "string"
+ }
+ },
+ "required": [
+ "service-url"
+ ],
+ "type": "object"
+ },
+ "pagerduty": {
+ "description": "PagerDuty integration for the service.",
+ "properties": {
+ "service-url": {
+ "description": "PagerDuty service url.",
+ "example": "https://my-org.pagerduty.com/service-directory/PMyService",
+ "type": "string"
+ }
+ },
+ "type": "object",
+ "x-ignore-duplicate-object": true
}
},
- "required": [
- "name"
+ "type": "object"
+ },
+ "languages": {
+ "description": "The service's programming language. Datadog recognizes the following languages: `dotnet`, `go`, `java`, `js`, `php`, `python`, `ruby`, and `c++`.",
+ "example": [
+ "dotnet",
+ "go",
+ "java",
+ "js",
+ "php",
+ "python",
+ "ruby",
+ "c++"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "lifecycle": {
+ "description": "The current life cycle phase of the service.",
+ "example": "sandbox",
+ "type": "string"
+ },
+ "links": {
+ "description": "A list of links related to the services.",
+ "items": {
+ "description": "Service's external links.",
+ "properties": {
+ "name": {
+ "description": "Link name.",
+ "example": "Runbook",
+ "type": "string"
+ },
+ "provider": {
+ "description": "Link provider.",
+ "example": "Github",
+ "type": "string"
+ },
+ "type": {
+ "description": "Link type. Datadog recognizes the following types: `runbook`, `doc`, `repo`, `dashboard`, and `other`.",
+ "example": "runbook",
+ "type": "string"
+ },
+ "url": {
+ "description": "Link URL.",
+ "example": "https://my-runbook",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "type",
+ "url"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "schema-version": {
+ "default": "v2.2",
+ "description": "Schema version being used.",
+ "enum": [
+ "v2.2"
+ ],
+ "example": "v2.2",
+ "type": "string",
+ "x-enum-varnames": [
+ "V2_2"
+ ]
+ },
+ "tags": {
+ "description": "A set of custom tags.",
+ "example": [
+ "my:tag",
+ "service:tag"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "team": {
+ "description": "Team that owns the service. It is used to locate a team defined in Datadog Teams if it exists.",
+ "example": "my-team",
+ "type": "string"
+ },
+ "tier": {
+ "description": "Importance of the service.",
+ "example": "High",
+ "type": "string"
+ },
+ "type": {
+ "description": "The type of service.",
+ "enum": [
+ "web",
+ "db",
+ "cache",
+ "function",
+ "browser",
+ "mobile",
+ "custom"
],
+ "example": "web",
+ "type": "string",
+ "x-enum-varnames": [
+ "WEB",
+ "DB",
+ "CACHE",
+ "FUNCTION",
+ "BROSWER",
+ "MOBILE",
+ "CUSTOM"
+ ]
+ }
+ },
+ "required": [
+ "schema-version",
+ "dd-service"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Service definition v2.1 for providing service metadata and integrations.",
+ "properties": {
+ "application": {
+ "description": "Identifier for a group of related services serving a product feature, which the service is a part of.",
+ "example": "my-app",
+ "type": "string"
+ },
+ "contacts": {
+ "description": "A list of contacts related to the services.",
+ "items": {
+ "description": "Service owner's contacts information.",
+ "oneOf": [
+ {
+ "description": "Service owner's email.",
+ "properties": {
+ "contact": {
+ "description": "Contact value.",
+ "example": "contact@datadoghq.com",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact email.",
+ "example": "Team Email",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "email"
+ ],
+ "example": "email",
+ "type": "string",
+ "x-enum-varnames": [
+ "EMAIL"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Service owner's Slack channel.",
+ "properties": {
+ "contact": {
+ "description": "Slack Channel.",
+ "example": "https://yourcompany.slack.com/archives/channel123",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact Slack.",
+ "example": "Team Slack",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "slack"
+ ],
+ "example": "slack",
+ "type": "string",
+ "x-enum-varnames": [
+ "SLACK"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Service owner's Microsoft Teams.",
+ "properties": {
+ "contact": {
+ "description": "Contact value.",
+ "example": "https://teams.microsoft.com/myteam",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact Microsoft Teams.",
+ "example": "My team channel",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "microsoft-teams"
+ ],
+ "example": "microsoft-teams",
+ "type": "string",
+ "x-enum-varnames": [
+ "MICROSOFT_TEAMS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "type": "array"
+ },
+ "dd-service": {
+ "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
+ "example": "my-service",
+ "type": "string"
+ },
+ "description": {
+ "description": "A short description of the service.",
+ "example": "My service description",
+ "type": "string"
+ },
+ "extensions": {
+ "additionalProperties": {},
+ "description": "Extensions to v2.1 schema.",
+ "example": {
+ "myorg/extension": "extensionValue"
+ },
"type": "object"
},
- "relationships": {
- "description": "The incident service's relationships.",
+ "integrations": {
+ "description": "Third party integrations that Datadog supports.",
"properties": {
- "created_by": {
- "description": "Relationship to user.",
+ "opsgenie": {
+ "description": "Opsgenie integration for the service.",
"properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
+ "region": {
+ "description": "Opsgenie instance region.",
+ "enum": [
+ "US",
+ "EU"
],
- "type": "object",
- "x-merge-override": {
- "required": false
+ "example": "US",
+ "type": "string",
+ "x-enum-varnames": [
+ "US",
+ "EU"
+ ]
+ },
+ "service-url": {
+ "description": "Opsgenie service url.",
+ "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
+ "type": "string"
+ }
+ },
+ "required": [
+ "service-url"
+ ],
+ "type": "object"
+ },
+ "pagerduty": {
+ "description": "PagerDuty integration for the service.",
+ "properties": {
+ "service-url": {
+ "description": "PagerDuty service url.",
+ "example": "https://my-org.pagerduty.com/service-directory/PMyService",
+ "type": "string"
+ }
+ },
+ "type": "object",
+ "x-ignore-duplicate-object": true
+ }
+ },
+ "type": "object"
+ },
+ "lifecycle": {
+ "description": "The current life cycle phase of the service.",
+ "example": "sandbox",
+ "type": "string"
+ },
+ "links": {
+ "description": "A list of links related to the services.",
+ "items": {
+ "description": "Service's external links.",
+ "properties": {
+ "name": {
+ "description": "Link name.",
+ "example": "Runbook",
+ "type": "string"
+ },
+ "provider": {
+ "description": "Link provider.",
+ "example": "Github",
+ "type": "string"
+ },
+ "type": {
+ "description": "Link type.",
+ "enum": [
+ "doc",
+ "repo",
+ "runbook",
+ "dashboard",
+ "other"
+ ],
+ "example": "runbook",
+ "type": "string",
+ "x-enum-varnames": [
+ "DOC",
+ "REPO",
+ "RUNBOOK",
+ "DASHBOARD",
+ "OTHER"
+ ]
+ },
+ "url": {
+ "description": "Link URL.",
+ "example": "https://my-runbook",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "type",
+ "url"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "schema-version": {
+ "default": "v2.1",
+ "description": "Schema version being used.",
+ "enum": [
+ "v2.1"
+ ],
+ "example": "v2.1",
+ "type": "string",
+ "x-enum-varnames": [
+ "V2_1"
+ ]
+ },
+ "tags": {
+ "description": "A set of custom tags.",
+ "example": [
+ "my:tag",
+ "service:tag"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "team": {
+ "description": "Team that owns the service. It is used to locate a team defined in Datadog Teams if it exists.",
+ "example": "my-team",
+ "type": "string"
+ },
+ "tier": {
+ "description": "Importance of the service.",
+ "example": "High",
+ "type": "string"
+ }
+ },
+ "required": [
+ "schema-version",
+ "dd-service"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Service definition V2 for providing service metadata and integrations.",
+ "properties": {
+ "contacts": {
+ "description": "A list of contacts related to the services.",
+ "items": {
+ "description": "Service owner's contacts information.",
+ "oneOf": [
+ {
+ "description": "Service owner's email.",
+ "properties": {
+ "contact": {
+ "description": "Contact value.",
+ "example": "contact@datadoghq.com",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact email.",
+ "example": "Team Email",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "email"
+ ],
+ "example": "email",
+ "type": "string",
+ "x-enum-varnames": [
+ "EMAIL"
+ ]
}
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Service owner's Slack channel.",
+ "properties": {
+ "contact": {
+ "description": "Slack Channel.",
+ "example": "https://yourcompany.slack.com/archives/channel123",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact Slack.",
+ "example": "Team Slack",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "slack"
+ ],
+ "example": "slack",
+ "type": "string",
+ "x-enum-varnames": [
+ "SLACK"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Service owner's Microsoft Teams.",
+ "properties": {
+ "contact": {
+ "description": "Contact value.",
+ "example": "https://teams.microsoft.com/myteam",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact Microsoft Teams.",
+ "example": "My team channel",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "microsoft-teams"
+ ],
+ "example": "microsoft-teams",
+ "type": "string",
+ "x-enum-varnames": [
+ "MICROSOFT_TEAMS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "type": "array"
+ },
+ "dd-service": {
+ "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
+ "example": "my-service",
+ "type": "string"
+ },
+ "dd-team": {
+ "description": "Experimental feature. A Team handle that matches a Team in the Datadog Teams product.",
+ "example": "my-team",
+ "type": "string"
+ },
+ "docs": {
+ "description": "A list of documentation related to the services.",
+ "items": {
+ "description": "Service documents.",
+ "properties": {
+ "name": {
+ "description": "Document name.",
+ "example": "Architecture",
+ "type": "string"
+ },
+ "provider": {
+ "description": "Document provider.",
+ "example": "google drive",
+ "type": "string"
+ },
+ "url": {
+ "description": "Document URL.",
+ "example": "https://gdrive/mydoc",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "url"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "extensions": {
+ "additionalProperties": {},
+ "description": "Extensions to V2 schema.",
+ "example": {
+ "myorg/extension": "extensionValue"
+ },
+ "type": "object"
+ },
+ "integrations": {
+ "description": "Third party integrations that Datadog supports.",
+ "properties": {
+ "opsgenie": {
+ "description": "Opsgenie integration for the service.",
+ "properties": {
+ "region": {
+ "description": "Opsgenie instance region.",
+ "enum": [
+ "US",
+ "EU"
+ ],
+ "example": "US",
+ "type": "string",
+ "x-enum-varnames": [
+ "US",
+ "EU"
+ ]
+ },
+ "service-url": {
+ "description": "Opsgenie service url.",
+ "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
+ "type": "string"
}
},
"required": [
- "data"
+ "service-url"
],
"type": "object"
},
- "last_modified_by": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
+ "pagerduty": {
+ "description": "PagerDuty service URL for the service.",
+ "example": "https://my-org.pagerduty.com/service-directory/PMyService",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "links": {
+ "description": "A list of links related to the services.",
+ "items": {
+ "description": "Service's external links.",
+ "properties": {
+ "name": {
+ "description": "Link name.",
+ "example": "Runbook",
+ "type": "string"
+ },
+ "type": {
+ "description": "Link type.",
+ "enum": [
+ "doc",
+ "wiki",
+ "runbook",
+ "url",
+ "repo",
+ "dashboard",
+ "oncall",
+ "code",
+ "link"
+ ],
+ "example": "runbook",
+ "type": "string",
+ "x-enum-varnames": [
+ "DOC",
+ "WIKI",
+ "RUNBOOK",
+ "URL",
+ "REPO",
+ "DASHBOARD",
+ "ONCALL",
+ "CODE",
+ "LINK"
+ ]
+ },
+ "url": {
+ "description": "Link URL.",
+ "example": "https://my-runbook",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "type",
+ "url"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "repos": {
+ "description": "A list of code repositories related to the services.",
+ "items": {
+ "description": "Service code repositories.",
+ "properties": {
+ "name": {
+ "description": "Repository name.",
+ "example": "Source Code",
+ "type": "string"
},
- "required": [
- "data"
- ],
- "type": "object"
- }
+ "provider": {
+ "description": "Repository provider.",
+ "example": "GitHub",
+ "type": "string"
+ },
+ "url": {
+ "description": "Repository URL.",
+ "example": "https://github.com/DataDog/schema",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "url"
+ ],
+ "type": "object"
},
- "readOnly": true,
- "type": "object"
+ "type": "array"
},
- "type": {
- "default": "services",
- "description": "Incident service resource type.",
+ "schema-version": {
+ "default": "v2",
+ "description": "Schema version being used.",
"enum": [
- "services"
+ "v2"
],
- "example": "services",
+ "example": "v2",
"type": "string",
"x-enum-varnames": [
- "SERVICES"
+ "V2"
]
+ },
+ "tags": {
+ "description": "A set of custom tags.",
+ "example": [
+ "my:tag",
+ "service:tag"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "team": {
+ "description": "Team that owns the service.",
+ "example": "my-team",
+ "type": "string"
}
},
"required": [
- "type"
+ "schema-version",
+ "dd-service"
],
"type": "object"
+ },
+ {
+ "description": "Service Definition in raw JSON/YAML representation.",
+ "example": "---\nschema-version: v2\ndd-service: my-service\n",
+ "type": "string"
}
- },
- "required": [
- "data"
- ],
- "type": "object"
+ ]
}
}
},
- "description": "Incident Service Payload.",
+ "description": "Service Definition YAML/JSON.",
"required": true
},
"responses": {
- "201": {
+ "200": {
"content": {
"application/json": {
"schema": {
- "description": "Response with an incident service payload.",
+ "description": "Create service definitions response.",
"properties": {
"data": {
- "description": "Incident Service data from responses.",
- "properties": {
- "attributes": {
- "description": "The incident service's attributes from a response.",
- "properties": {
- "created": {
- "description": "Timestamp of when the incident service was created.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified": {
- "description": "Timestamp of when the incident service was modified.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "name": {
- "description": "Name of the incident service.",
- "example": "service name",
- "type": "string"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "The incident service's ID.",
- "example": "00000000-0000-0000-0000-000000000000",
- "type": "string"
- },
- "relationships": {
- "description": "The incident service's relationships.",
- "properties": {
- "created_by": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "last_modified_by": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- }
- },
- "readOnly": true,
- "type": "object"
- },
- "type": {
- "default": "services",
- "description": "Incident service resource type.",
- "enum": [
- "services"
- ],
- "example": "services",
- "type": "string",
- "x-enum-varnames": [
- "SERVICES"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- },
- "included": {
- "description": "Included objects from relationships.",
+ "description": "Create service definitions response payload.",
"items": {
- "description": "An object related to an incident service which is present in the included payload.",
- "oneOf": [
- {
- "description": "User object returned by the API.",
+ "description": "Service definition data.",
+ "properties": {
+ "attributes": {
+ "description": "Service definition attributes.",
"properties": {
- "attributes": {
- "description": "Attributes of user object returned by the API.",
+ "meta": {
+ "description": "Metadata about a service definition.",
"properties": {
- "created_at": {
- "description": "Creation time of the user.",
- "format": "date-time",
- "type": "string"
- },
- "disabled": {
- "description": "Whether the user is disabled.",
- "type": "boolean"
- },
- "email": {
- "description": "Email of the user.",
- "type": "string"
- },
- "handle": {
- "description": "Handle of the user.",
+ "github-html-url": {
+ "description": "GitHub HTML URL.",
"type": "string"
},
- "icon": {
- "description": "URL of the user's icon.",
+ "ingested-schema-version": {
+ "description": "Ingestion schema version.",
"type": "string"
},
- "mfa_enabled": {
- "description": "If user has MFA enabled.",
- "readOnly": true,
- "type": "boolean"
- },
- "modified_at": {
- "description": "Time that the user was last modified.",
- "format": "date-time",
+ "ingestion-source": {
+ "description": "Ingestion source of the service definition.",
"type": "string"
},
- "name": {
- "description": "Name of the user.",
- "nullable": true,
+ "last-modified-time": {
+ "description": "Last modified time of the service definition.",
"type": "string"
},
- "service_account": {
- "description": "Whether the user is a service account.",
- "type": "boolean"
- },
- "status": {
- "description": "Status of the user.",
+ "origin": {
+ "description": "User defined origin of the service definition.",
"type": "string"
},
- "title": {
- "description": "Title of the user.",
- "nullable": true,
+ "origin-detail": {
+ "description": "User defined origin's detail of the service definition.",
"type": "string"
},
- "verified": {
- "description": "Whether the user is verified.",
- "type": "boolean"
+ "warnings": {
+ "description": "A list of schema validation warnings.",
+ "items": {
+ "description": "Schema validation warnings.",
+ "properties": {
+ "instance-location": {
+ "description": "The warning instance location.",
+ "type": "string"
+ },
+ "keyword-location": {
+ "description": "The warning keyword location.",
+ "type": "string"
+ },
+ "message": {
+ "description": "The warning message.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
}
},
"type": "object"
},
- "id": {
- "description": "ID of the user.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the user object returned by the API.",
- "properties": {
- "org": {
- "description": "Relationship to an organization.",
+ "schema": {
+ "description": "Service definition schema.",
+ "oneOf": [
+ {
+ "deprecated": true,
+ "description": "Deprecated - Service definition V1 for providing additional service metadata and integrations.",
"properties": {
- "data": {
- "description": "Relationship to organization object.",
+ "contact": {
+ "description": "Contact information about the service.",
"properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
+ "email": {
+ "description": "Service owner’s email.",
+ "example": "contact@datadoghq.com",
"type": "string"
},
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
+ "slack": {
+ "description": "Service owner’s Slack channel.",
+ "example": "https://yourcompany.slack.com/archives/channel123",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "extensions": {
+ "additionalProperties": {},
+ "description": "Extensions to V1 schema.",
+ "example": {
+ "myorg/extension": "extensionValue"
+ },
+ "type": "object"
+ },
+ "external-resources": {
+ "description": "A list of external links related to the services.",
+ "items": {
+ "description": "Service's external links.",
+ "properties": {
+ "name": {
+ "description": "Link name.",
+ "example": "Runbook",
+ "type": "string"
+ },
+ "type": {
+ "description": "Link type.",
+ "enum": [
+ "doc",
+ "wiki",
+ "runbook",
+ "url",
+ "repo",
+ "dashboard",
+ "oncall",
+ "code",
+ "link"
+ ],
+ "example": "runbook",
+ "type": "string",
+ "x-enum-varnames": [
+ "DOC",
+ "WIKI",
+ "RUNBOOK",
+ "URL",
+ "REPO",
+ "DASHBOARD",
+ "ONCALL",
+ "CODE",
+ "LINK"
+ ]
+ },
+ "url": {
+ "description": "Link URL.",
+ "example": "https://my-runbook",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "type",
+ "url"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "info": {
+ "description": "Basic information about a service.",
+ "properties": {
+ "dd-service": {
+ "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
+ "example": "myservice",
+ "type": "string"
+ },
+ "description": {
+ "description": "A short description of the service.",
+ "example": "A shopping cart service",
+ "type": "string"
+ },
+ "display-name": {
+ "description": "A friendly name of the service.",
+ "example": "My Service",
+ "type": "string"
+ },
+ "service-tier": {
+ "description": "Service tier.",
+ "example": "Tier 1",
+ "type": "string"
}
},
"required": [
- "id",
- "type"
+ "dd-service"
],
"type": "object"
+ },
+ "integrations": {
+ "description": "Third party integrations that Datadog supports.",
+ "properties": {
+ "pagerduty": {
+ "description": "PagerDuty service URL for the service.",
+ "example": "https://my-org.pagerduty.com/service-directory/PMyService",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "org": {
+ "description": "Org related information about the service.",
+ "properties": {
+ "application": {
+ "description": "App feature this service supports.",
+ "example": "E-Commerce",
+ "type": "string"
+ },
+ "team": {
+ "description": "Team that owns the service.",
+ "example": "my-team",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "schema-version": {
+ "default": "v1",
+ "description": "Schema version being used.",
+ "enum": [
+ "v1"
+ ],
+ "example": "v1",
+ "type": "string",
+ "x-enum-varnames": [
+ "V1"
+ ]
+ },
+ "tags": {
+ "description": "A set of custom tags.",
+ "example": [
+ "my:tag",
+ "service:tag"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
}
},
"required": [
- "data"
+ "schema-version",
+ "info"
],
"type": "object"
},
- "other_orgs": {
- "description": "Relationship to organizations.",
+ {
+ "description": "Service definition V2 for providing service metadata and integrations.",
"properties": {
- "data": {
- "description": "Relationships to organization objects.",
- "example": [],
+ "contacts": {
+ "description": "A list of contacts related to the services.",
"items": {
- "description": "Relationship to organization object.",
+ "description": "Service owner's contacts information.",
+ "oneOf": [
+ {
+ "description": "Service owner's email.",
+ "properties": {
+ "contact": {
+ "description": "Contact value.",
+ "example": "contact@datadoghq.com",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact email.",
+ "example": "Team Email",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "email"
+ ],
+ "example": "email",
+ "type": "string",
+ "x-enum-varnames": [
+ "EMAIL"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Service owner's Slack channel.",
+ "properties": {
+ "contact": {
+ "description": "Slack Channel.",
+ "example": "https://yourcompany.slack.com/archives/channel123",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact Slack.",
+ "example": "Team Slack",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "slack"
+ ],
+ "example": "slack",
+ "type": "string",
+ "x-enum-varnames": [
+ "SLACK"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Service owner's Microsoft Teams.",
+ "properties": {
+ "contact": {
+ "description": "Contact value.",
+ "example": "https://teams.microsoft.com/myteam",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact Microsoft Teams.",
+ "example": "My team channel",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "microsoft-teams"
+ ],
+ "example": "microsoft-teams",
+ "type": "string",
+ "x-enum-varnames": [
+ "MICROSOFT_TEAMS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "type": "array"
+ },
+ "dd-service": {
+ "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
+ "example": "my-service",
+ "type": "string"
+ },
+ "dd-team": {
+ "description": "Experimental feature. A Team handle that matches a Team in the Datadog Teams product.",
+ "example": "my-team",
+ "type": "string"
+ },
+ "docs": {
+ "description": "A list of documentation related to the services.",
+ "items": {
+ "description": "Service documents.",
"properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
+ "name": {
+ "description": "Document name.",
+ "example": "Architecture",
+ "type": "string"
+ },
+ "provider": {
+ "description": "Document provider.",
+ "example": "google drive",
+ "type": "string"
+ },
+ "url": {
+ "description": "Document URL.",
+ "example": "https://gdrive/mydoc",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "url"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "extensions": {
+ "additionalProperties": {},
+ "description": "Extensions to V2 schema.",
+ "example": {
+ "myorg/extension": "extensionValue"
+ },
+ "type": "object"
+ },
+ "integrations": {
+ "description": "Third party integrations that Datadog supports.",
+ "properties": {
+ "opsgenie": {
+ "description": "Opsgenie integration for the service.",
+ "properties": {
+ "region": {
+ "description": "Opsgenie instance region.",
+ "enum": [
+ "US",
+ "EU"
+ ],
+ "example": "US",
+ "type": "string",
+ "x-enum-varnames": [
+ "US",
+ "EU"
+ ]
+ },
+ "service-url": {
+ "description": "Opsgenie service url.",
+ "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
+ "type": "string"
+ }
+ },
+ "required": [
+ "service-url"
+ ],
+ "type": "object"
+ },
+ "pagerduty": {
+ "description": "PagerDuty service URL for the service.",
+ "example": "https://my-org.pagerduty.com/service-directory/PMyService",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "links": {
+ "description": "A list of links related to the services.",
+ "items": {
+ "description": "Service's external links.",
+ "properties": {
+ "name": {
+ "description": "Link name.",
+ "example": "Runbook",
+ "type": "string"
+ },
+ "type": {
+ "description": "Link type.",
+ "enum": [
+ "doc",
+ "wiki",
+ "runbook",
+ "url",
+ "repo",
+ "dashboard",
+ "oncall",
+ "code",
+ "link"
+ ],
+ "example": "runbook",
+ "type": "string",
+ "x-enum-varnames": [
+ "DOC",
+ "WIKI",
+ "RUNBOOK",
+ "URL",
+ "REPO",
+ "DASHBOARD",
+ "ONCALL",
+ "CODE",
+ "LINK"
+ ]
+ },
+ "url": {
+ "description": "Link URL.",
+ "example": "https://my-runbook",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "type",
+ "url"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "repos": {
+ "description": "A list of code repositories related to the services.",
+ "items": {
+ "description": "Service code repositories.",
+ "properties": {
+ "name": {
+ "description": "Repository name.",
+ "example": "Source Code",
+ "type": "string"
+ },
+ "provider": {
+ "description": "Repository provider.",
+ "example": "GitHub",
+ "type": "string"
+ },
+ "url": {
+ "description": "Repository URL.",
+ "example": "https://github.com/DataDog/schema",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "url"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "schema-version": {
+ "default": "v2",
+ "description": "Schema version being used.",
+ "enum": [
+ "v2"
+ ],
+ "example": "v2",
+ "type": "string",
+ "x-enum-varnames": [
+ "V2"
+ ]
+ },
+ "tags": {
+ "description": "A set of custom tags.",
+ "example": [
+ "my:tag",
+ "service:tag"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "team": {
+ "description": "Team that owns the service.",
+ "example": "my-team",
+ "type": "string"
+ }
+ },
+ "required": [
+ "schema-version",
+ "dd-service"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Service definition v2.1 for providing service metadata and integrations.",
+ "properties": {
+ "application": {
+ "description": "Identifier for a group of related services serving a product feature, which the service is a part of.",
+ "example": "my-app",
+ "type": "string"
+ },
+ "contacts": {
+ "description": "A list of contacts related to the services.",
+ "items": {
+ "description": "Service owner's contacts information.",
+ "oneOf": [
+ {
+ "description": "Service owner's email.",
+ "properties": {
+ "contact": {
+ "description": "Contact value.",
+ "example": "contact@datadoghq.com",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact email.",
+ "example": "Team Email",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "email"
+ ],
+ "example": "email",
+ "type": "string",
+ "x-enum-varnames": [
+ "EMAIL"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Service owner's Slack channel.",
+ "properties": {
+ "contact": {
+ "description": "Slack Channel.",
+ "example": "https://yourcompany.slack.com/archives/channel123",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact Slack.",
+ "example": "Team Slack",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "slack"
+ ],
+ "example": "slack",
+ "type": "string",
+ "x-enum-varnames": [
+ "SLACK"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Service owner's Microsoft Teams.",
+ "properties": {
+ "contact": {
+ "description": "Contact value.",
+ "example": "https://teams.microsoft.com/myteam",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact Microsoft Teams.",
+ "example": "My team channel",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "microsoft-teams"
+ ],
+ "example": "microsoft-teams",
+ "type": "string",
+ "x-enum-varnames": [
+ "MICROSOFT_TEAMS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "type": "array"
+ },
+ "dd-service": {
+ "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
+ "example": "my-service",
+ "type": "string"
+ },
+ "description": {
+ "description": "A short description of the service.",
+ "example": "My service description",
+ "type": "string"
+ },
+ "extensions": {
+ "additionalProperties": {},
+ "description": "Extensions to v2.1 schema.",
+ "example": {
+ "myorg/extension": "extensionValue"
+ },
+ "type": "object"
+ },
+ "integrations": {
+ "description": "Third party integrations that Datadog supports.",
+ "properties": {
+ "opsgenie": {
+ "description": "Opsgenie integration for the service.",
+ "properties": {
+ "region": {
+ "description": "Opsgenie instance region.",
+ "enum": [
+ "US",
+ "EU"
+ ],
+ "example": "US",
+ "type": "string",
+ "x-enum-varnames": [
+ "US",
+ "EU"
+ ]
+ },
+ "service-url": {
+ "description": "Opsgenie service url.",
+ "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
+ "type": "string"
+ }
+ },
+ "required": [
+ "service-url"
+ ],
+ "type": "object"
+ },
+ "pagerduty": {
+ "description": "PagerDuty integration for the service.",
+ "properties": {
+ "service-url": {
+ "description": "PagerDuty service url.",
+ "example": "https://my-org.pagerduty.com/service-directory/PMyService",
+ "type": "string"
+ }
+ },
+ "type": "object",
+ "x-ignore-duplicate-object": true
+ }
+ },
+ "type": "object"
+ },
+ "lifecycle": {
+ "description": "The current life cycle phase of the service.",
+ "example": "sandbox",
+ "type": "string"
+ },
+ "links": {
+ "description": "A list of links related to the services.",
+ "items": {
+ "description": "Service's external links.",
+ "properties": {
+ "name": {
+ "description": "Link name.",
+ "example": "Runbook",
+ "type": "string"
+ },
+ "provider": {
+ "description": "Link provider.",
+ "example": "Github",
"type": "string"
},
"type": {
- "default": "orgs",
- "description": "Organizations resource type.",
+ "description": "Link type.",
"enum": [
- "orgs"
+ "doc",
+ "repo",
+ "runbook",
+ "dashboard",
+ "other"
],
- "example": "orgs",
+ "example": "runbook",
"type": "string",
"x-enum-varnames": [
- "ORGS"
+ "DOC",
+ "REPO",
+ "RUNBOOK",
+ "DASHBOARD",
+ "OTHER"
]
+ },
+ "url": {
+ "description": "Link URL.",
+ "example": "https://my-runbook",
+ "type": "string"
}
},
"required": [
- "id",
- "type"
+ "name",
+ "type",
+ "url"
],
"type": "object"
},
"type": "array"
+ },
+ "schema-version": {
+ "default": "v2.1",
+ "description": "Schema version being used.",
+ "enum": [
+ "v2.1"
+ ],
+ "example": "v2.1",
+ "type": "string",
+ "x-enum-varnames": [
+ "V2_1"
+ ]
+ },
+ "tags": {
+ "description": "A set of custom tags.",
+ "example": [
+ "my:tag",
+ "service:tag"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "team": {
+ "description": "Team that owns the service. It is used to locate a team defined in Datadog Teams if it exists.",
+ "example": "my-team",
+ "type": "string"
+ },
+ "tier": {
+ "description": "Importance of the service.",
+ "example": "High",
+ "type": "string"
}
},
"required": [
- "data"
+ "schema-version",
+ "dd-service"
],
"type": "object"
},
- "other_users": {
- "description": "Relationship to users.",
+ {
+ "description": "Service definition v2.2 for providing service metadata and integrations.",
"properties": {
- "data": {
- "description": "Relationships to user objects.",
- "example": [],
+ "application": {
+ "description": "Identifier for a group of related services serving a product feature, which the service is a part of.",
+ "example": "my-app",
+ "type": "string"
+ },
+ "ci-pipeline-fingerprints": {
+ "description": "A set of CI fingerprints.",
+ "example": [
+ "j88xdEy0J5lc",
+ "eZ7LMljCk8vo"
+ ],
"items": {
- "description": "Relationship to user object.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "contacts": {
+ "description": "A list of contacts related to the services.",
+ "items": {
+ "description": "Service owner's contacts information.",
"properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
+ "contact": {
+ "description": "Contact value.",
+ "example": "https://teams.microsoft.com/myteam",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact Name.",
+ "example": "My team channel",
"type": "string"
},
"type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
+ "description": "Contact type. Datadog recognizes the following types: `email`, `slack`, and `microsoft-teams`.",
+ "example": "slack",
+ "type": "string"
}
},
"required": [
- "id",
- "type"
+ "type",
+ "contact"
],
- "type": "object",
- "x-merge-override": {
- "required": false
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "dd-service": {
+ "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
+ "example": "my-service",
+ "type": "string"
+ },
+ "description": {
+ "description": "A short description of the service.",
+ "example": "My service description",
+ "type": "string"
+ },
+ "extensions": {
+ "additionalProperties": {},
+ "description": "Extensions to v2.2 schema.",
+ "example": {
+ "myorg/extension": "extensionValue"
+ },
+ "type": "object"
+ },
+ "integrations": {
+ "description": "Third party integrations that Datadog supports.",
+ "properties": {
+ "opsgenie": {
+ "description": "Opsgenie integration for the service.",
+ "properties": {
+ "region": {
+ "description": "Opsgenie instance region.",
+ "enum": [
+ "US",
+ "EU"
+ ],
+ "example": "US",
+ "type": "string",
+ "x-enum-varnames": [
+ "US",
+ "EU"
+ ]
+ },
+ "service-url": {
+ "description": "Opsgenie service url.",
+ "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
+ "type": "string"
+ }
+ },
+ "required": [
+ "service-url"
+ ],
+ "type": "object"
+ },
+ "pagerduty": {
+ "description": "PagerDuty integration for the service.",
+ "properties": {
+ "service-url": {
+ "description": "PagerDuty service url.",
+ "example": "https://my-org.pagerduty.com/service-directory/PMyService",
+ "type": "string"
+ }
+ },
+ "type": "object",
+ "x-ignore-duplicate-object": true
}
},
+ "type": "object"
+ },
+ "languages": {
+ "description": "The service's programming language. Datadog recognizes the following languages: `dotnet`, `go`, `java`, `js`, `php`, `python`, `ruby`, and `c++`.",
+ "example": [
+ "dotnet",
+ "go",
+ "java",
+ "js",
+ "php",
+ "python",
+ "ruby",
+ "c++"
+ ],
+ "items": {
+ "type": "string"
+ },
"type": "array"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "roles": {
- "description": "Relationship to roles.",
- "properties": {
- "data": {
- "description": "An array containing type and the unique identifier of a role.",
+ },
+ "lifecycle": {
+ "description": "The current life cycle phase of the service.",
+ "example": "sandbox",
+ "type": "string"
+ },
+ "links": {
+ "description": "A list of links related to the services.",
"items": {
- "description": "Relationship to role object.",
+ "description": "Service's external links.",
"properties": {
- "id": {
- "description": "The unique identifier of the role.",
- "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "name": {
+ "description": "Link name.",
+ "example": "Runbook",
+ "type": "string"
+ },
+ "provider": {
+ "description": "Link provider.",
+ "example": "Github",
"type": "string"
},
"type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
+ "description": "Link type. Datadog recognizes the following types: `runbook`, `doc`, `repo`, `dashboard`, and `other`.",
+ "example": "runbook",
+ "type": "string"
+ },
+ "url": {
+ "description": "Link URL.",
+ "example": "https://my-runbook",
+ "type": "string"
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "required": [
+ "name",
+ "type",
+ "url"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "schema-version": {
+ "default": "v2.2",
+ "description": "Schema version being used.",
+ "enum": [
+ "v2.2"
+ ],
+ "example": "v2.2",
+ "type": "string",
+ "x-enum-varnames": [
+ "V2_2"
+ ]
+ },
+ "tags": {
+ "description": "A set of custom tags.",
+ "example": [
+ "my:tag",
+ "service:tag"
+ ],
+ "items": {
+ "type": "string"
},
"type": "array"
+ },
+ "team": {
+ "description": "Team that owns the service. It is used to locate a team defined in Datadog Teams if it exists.",
+ "example": "my-team",
+ "type": "string"
+ },
+ "tier": {
+ "description": "Importance of the service.",
+ "example": "High",
+ "type": "string"
+ },
+ "type": {
+ "description": "The type of service.",
+ "enum": [
+ "web",
+ "db",
+ "cache",
+ "function",
+ "browser",
+ "mobile",
+ "custom"
+ ],
+ "example": "web",
+ "type": "string",
+ "x-enum-varnames": [
+ "WEB",
+ "DB",
+ "CACHE",
+ "FUNCTION",
+ "BROSWER",
+ "MOBILE",
+ "CUSTOM"
+ ]
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "required": [
+ "schema-version",
+ "dd-service"
+ ],
+ "type": "object"
}
- },
- "type": "object",
- "x-merge-override": {
- "properties": false
- }
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
]
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "object"
+ },
+ "id": {
+ "description": "Service definition id.",
+ "type": "string"
+ },
+ "type": {
+ "description": "Service definition type.",
+ "type": "string"
}
- ]
+ },
+ "type": "object"
},
- "readOnly": true,
"type": "array"
}
},
- "required": [
- "data"
- ],
"type": "object"
}
}
@@ -379982,7 +403717,7 @@
},
"description": "Bad Request"
},
- "401": {
+ "403": {
"content": {
"application/json": {
"schema": {
@@ -380008,7 +403743,158 @@
}
}
},
- "description": "Unauthorized"
+ "description": "Forbidden"
+ },
+ "409": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Conflict"
+ },
+ "429": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Too many requests"
+ }
+ },
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
+ },
+ {
+ "AuthZ": [
+ "apm_service_catalog_write"
+ ]
+ }
+ ],
+ "summary": "Create or update service definition",
+ "tags": [
+ "Service Definition"
+ ],
+ "x-codegen-request-body-name": "body",
+ "x-given": {
+ "service_definition": {
+ "parameters": [
+ {
+ "name": "body",
+ "value": "{\n \"dd-service\": \"service-{{ unique_lower_alnum }}\",\n \"dd-team\": \"my-team\",\n \"docs\": [{\"name\": \"Architecture\",\n \"provider\": \"google drive\",\n \"url\": \"https://gdrive/mygivedoc\"}],\n \"extensions\": {\"frogextension\": \"extensionfrogvalue\"},\n \"integrations\": {\"opsgenie\": {\"region\": \"US\",\n \"service-url\": \"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\"},\n \"pagerduty\": \"https://my-org.pagerduty.com/service-directory/PMyService\"},\n \"links\": [{\"name\": \"Runbook\", \"type\": \"runbook\", \"url\": \"https://my-runbook\"}],\n \"repos\": [{\"name\": \"Source Code\",\n \"provider\": \"GitHub\",\n \"url\": \"https://github.com/DataDog/given\"}],\n \"schema-version\": \"v2\",\n \"tags\": [\"this:tag\", \"service:tag\"],\n \"team\": \"super-team\"\n}"
+ }
+ ],
+ "step": "there is a valid \"service_definition\" in the system"
+ }
+ },
+ "x-menu-order": 2,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "apm_service_catalog_write"
+ ]
+ },
+ "x-undo": {
+ "operationId": "DeleteServiceDefinition",
+ "parameters": [
+ {
+ "name": "service_name",
+ "source": "data[0].attributes.schema.dd-service"
+ }
+ ],
+ "type": "unsafe"
+ }
+ }
+ },
+ "/api/v2/services/definitions/{service_name}": {
+ "delete": {
+ "description": "Delete a single service definition in the Datadog Service Catalog.",
+ "operationId": "DeleteServiceDefinition",
+ "parameters": [
+ {
+ "description": "The name of the service.",
+ "in": "path",
+ "name": "service_name",
+ "required": true,
+ "schema": {
+ "example": "my-service",
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "OK"
+ },
+ "400": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Bad Request"
},
"403": {
"content": {
@@ -380102,73 +403988,37 @@
},
{
"AuthZ": [
- "incident_settings_write"
+ "apm_service_catalog_write"
]
}
],
- "summary": "Create a new incident service",
+ "summary": "Delete a single service definition",
"tags": [
- "Incident Services"
+ "Service Definition"
],
- "x-codegen-request-body-name": "body",
- "x-given": {
- "service": {
- "parameters": [
- {
- "name": "body",
- "value": "{\n \"data\": {\n \"attributes\": {\n \"name\": \"{{ unique }}\"\n },\n \"type\": \"services\"\n }\n}"
- }
- ],
- "step": "there is a valid \"service\" in the system"
- }
- },
- "x-menu-order": 5,
+ "x-menu-order": 4,
"x-permission": {
"operator": "OR",
"permissions": [
- "incident_settings_write"
+ "apm_service_catalog_write"
]
},
"x-undo": {
- "operationId": "DeleteIncidentService",
- "parameters": [
- {
- "name": "service_id",
- "source": "data.id"
- }
- ],
- "type": "unsafe"
- },
- "x-unstable": "**Note**: This endpoint is deprecated."
- }
- },
- "/api/v2/services/definitions": {
+ "type": "idempotent"
+ }
+ },
"get": {
- "description": "Get a list of all service definitions from the Datadog Service Catalog.",
- "operationId": "ListServiceDefinitions",
+ "description": "Get a single service definition from the Datadog Service Catalog.",
+ "operationId": "GetServiceDefinition",
"parameters": [
{
- "description": "Size for a given page. The maximum allowed value is 100.",
- "in": "query",
- "name": "page[size]",
- "required": false,
- "schema": {
- "default": 10,
- "example": 10,
- "format": "int64",
- "type": "integer"
- }
- },
- {
- "description": "Specific page number to return.",
- "in": "query",
- "name": "page[number]",
- "required": false,
+ "description": "The name of the service.",
+ "in": "path",
+ "name": "service_name",
+ "required": true,
"schema": {
- "default": 0,
- "example": 0,
- "format": "int64",
- "type": "integer"
+ "example": "my-service",
+ "type": "string"
}
},
{
@@ -380199,1058 +404049,1054 @@
"content": {
"application/json": {
"schema": {
- "description": "Create service definitions response.",
+ "description": "Get service definition response.",
"properties": {
"data": {
- "description": "Data representing service definitions.",
- "items": {
- "description": "Service definition data.",
- "properties": {
- "attributes": {
- "description": "Service definition attributes.",
- "properties": {
- "meta": {
- "description": "Metadata about a service definition.",
- "properties": {
- "github-html-url": {
- "description": "GitHub HTML URL.",
- "type": "string"
- },
- "ingested-schema-version": {
- "description": "Ingestion schema version.",
- "type": "string"
- },
- "ingestion-source": {
- "description": "Ingestion source of the service definition.",
- "type": "string"
- },
- "last-modified-time": {
- "description": "Last modified time of the service definition.",
- "type": "string"
- },
- "origin": {
- "description": "User defined origin of the service definition.",
- "type": "string"
- },
- "origin-detail": {
- "description": "User defined origin's detail of the service definition.",
- "type": "string"
+ "description": "Service definition data.",
+ "properties": {
+ "attributes": {
+ "description": "Service definition attributes.",
+ "properties": {
+ "meta": {
+ "description": "Metadata about a service definition.",
+ "properties": {
+ "github-html-url": {
+ "description": "GitHub HTML URL.",
+ "type": "string"
+ },
+ "ingested-schema-version": {
+ "description": "Ingestion schema version.",
+ "type": "string"
+ },
+ "ingestion-source": {
+ "description": "Ingestion source of the service definition.",
+ "type": "string"
+ },
+ "last-modified-time": {
+ "description": "Last modified time of the service definition.",
+ "type": "string"
+ },
+ "origin": {
+ "description": "User defined origin of the service definition.",
+ "type": "string"
+ },
+ "origin-detail": {
+ "description": "User defined origin's detail of the service definition.",
+ "type": "string"
+ },
+ "warnings": {
+ "description": "A list of schema validation warnings.",
+ "items": {
+ "description": "Schema validation warnings.",
+ "properties": {
+ "instance-location": {
+ "description": "The warning instance location.",
+ "type": "string"
+ },
+ "keyword-location": {
+ "description": "The warning keyword location.",
+ "type": "string"
+ },
+ "message": {
+ "description": "The warning message.",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
- "warnings": {
- "description": "A list of schema validation warnings.",
- "items": {
- "description": "Schema validation warnings.",
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "schema": {
+ "description": "Service definition schema.",
+ "oneOf": [
+ {
+ "deprecated": true,
+ "description": "Deprecated - Service definition V1 for providing additional service metadata and integrations.",
+ "properties": {
+ "contact": {
+ "description": "Contact information about the service.",
"properties": {
- "instance-location": {
- "description": "The warning instance location.",
- "type": "string"
- },
- "keyword-location": {
- "description": "The warning keyword location.",
+ "email": {
+ "description": "Service owner’s email.",
+ "example": "contact@datadoghq.com",
"type": "string"
},
- "message": {
- "description": "The warning message.",
+ "slack": {
+ "description": "Service owner’s Slack channel.",
+ "example": "https://yourcompany.slack.com/archives/channel123",
"type": "string"
}
},
"type": "object"
},
- "type": "array"
- }
- },
- "type": "object"
- },
- "schema": {
- "description": "Service definition schema.",
- "oneOf": [
- {
- "deprecated": true,
- "description": "Deprecated - Service definition V1 for providing additional service metadata and integrations.",
- "properties": {
- "contact": {
- "description": "Contact information about the service.",
- "properties": {
- "email": {
- "description": "Service owner’s email.",
- "example": "contact@datadoghq.com",
- "type": "string"
- },
- "slack": {
- "description": "Service owner’s Slack channel.",
- "example": "https://yourcompany.slack.com/archives/channel123",
- "type": "string"
- }
- },
- "type": "object"
- },
- "extensions": {
- "additionalProperties": {},
- "description": "Extensions to V1 schema.",
- "example": {
- "myorg/extension": "extensionValue"
- },
- "type": "object"
- },
- "external-resources": {
- "description": "A list of external links related to the services.",
- "items": {
- "description": "Service's external links.",
- "properties": {
- "name": {
- "description": "Link name.",
- "example": "Runbook",
- "type": "string"
- },
- "type": {
- "description": "Link type.",
- "enum": [
- "doc",
- "wiki",
- "runbook",
- "url",
- "repo",
- "dashboard",
- "oncall",
- "code",
- "link"
- ],
- "example": "runbook",
- "type": "string",
- "x-enum-varnames": [
- "DOC",
- "WIKI",
- "RUNBOOK",
- "URL",
- "REPO",
- "DASHBOARD",
- "ONCALL",
- "CODE",
- "LINK"
- ]
- },
- "url": {
- "description": "Link URL.",
- "example": "https://my-runbook",
- "type": "string"
- }
- },
- "required": [
- "name",
- "type",
- "url"
- ],
- "type": "object"
- },
- "type": "array"
+ "extensions": {
+ "additionalProperties": {},
+ "description": "Extensions to V1 schema.",
+ "example": {
+ "myorg/extension": "extensionValue"
},
- "info": {
- "description": "Basic information about a service.",
+ "type": "object"
+ },
+ "external-resources": {
+ "description": "A list of external links related to the services.",
+ "items": {
+ "description": "Service's external links.",
"properties": {
- "dd-service": {
- "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
- "example": "myservice",
- "type": "string"
- },
- "description": {
- "description": "A short description of the service.",
- "example": "A shopping cart service",
+ "name": {
+ "description": "Link name.",
+ "example": "Runbook",
"type": "string"
},
- "display-name": {
- "description": "A friendly name of the service.",
- "example": "My Service",
- "type": "string"
+ "type": {
+ "description": "Link type.",
+ "enum": [
+ "doc",
+ "wiki",
+ "runbook",
+ "url",
+ "repo",
+ "dashboard",
+ "oncall",
+ "code",
+ "link"
+ ],
+ "example": "runbook",
+ "type": "string",
+ "x-enum-varnames": [
+ "DOC",
+ "WIKI",
+ "RUNBOOK",
+ "URL",
+ "REPO",
+ "DASHBOARD",
+ "ONCALL",
+ "CODE",
+ "LINK"
+ ]
},
- "service-tier": {
- "description": "Service tier.",
- "example": "Tier 1",
+ "url": {
+ "description": "Link URL.",
+ "example": "https://my-runbook",
"type": "string"
}
},
"required": [
- "dd-service"
+ "name",
+ "type",
+ "url"
],
"type": "object"
},
- "integrations": {
- "description": "Third party integrations that Datadog supports.",
- "properties": {
- "pagerduty": {
- "description": "PagerDuty service URL for the service.",
- "example": "https://my-org.pagerduty.com/service-directory/PMyService",
- "type": "string"
- }
- },
- "type": "object"
- },
- "org": {
- "description": "Org related information about the service.",
- "properties": {
- "application": {
- "description": "App feature this service supports.",
- "example": "E-Commerce",
- "type": "string"
- },
- "team": {
- "description": "Team that owns the service.",
- "example": "my-team",
- "type": "string"
- }
- },
- "type": "object"
- },
- "schema-version": {
- "default": "v1",
- "description": "Schema version being used.",
- "enum": [
- "v1"
- ],
- "example": "v1",
- "type": "string",
- "x-enum-varnames": [
- "V1"
- ]
- },
- "tags": {
- "description": "A set of custom tags.",
- "example": [
- "my:tag",
- "service:tag"
- ],
- "items": {
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "schema-version",
- "info"
- ],
- "type": "object"
- },
- {
- "description": "Service definition V2 for providing service metadata and integrations.",
- "properties": {
- "contacts": {
- "description": "A list of contacts related to the services.",
- "items": {
- "description": "Service owner's contacts information.",
- "oneOf": [
- {
- "description": "Service owner's email.",
- "properties": {
- "contact": {
- "description": "Contact value.",
- "example": "contact@datadoghq.com",
- "type": "string"
- },
- "name": {
- "description": "Contact email.",
- "example": "Team Email",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "email"
- ],
- "example": "email",
- "type": "string",
- "x-enum-varnames": [
- "EMAIL"
- ]
- }
- },
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- },
- {
- "description": "Service owner's Slack channel.",
- "properties": {
- "contact": {
- "description": "Slack Channel.",
- "example": "https://yourcompany.slack.com/archives/channel123",
- "type": "string"
- },
- "name": {
- "description": "Contact Slack.",
- "example": "Team Slack",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "slack"
- ],
- "example": "slack",
- "type": "string",
- "x-enum-varnames": [
- "SLACK"
- ]
- }
- },
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- },
- {
- "description": "Service owner's Microsoft Teams.",
- "properties": {
- "contact": {
- "description": "Contact value.",
- "example": "https://teams.microsoft.com/myteam",
- "type": "string"
- },
- "name": {
- "description": "Contact Microsoft Teams.",
- "example": "My team channel",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "microsoft-teams"
- ],
- "example": "microsoft-teams",
- "type": "string",
- "x-enum-varnames": [
- "MICROSOFT_TEAMS"
- ]
- }
- },
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- }
- ]
+ "type": "array"
+ },
+ "info": {
+ "description": "Basic information about a service.",
+ "properties": {
+ "dd-service": {
+ "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
+ "example": "myservice",
+ "type": "string"
},
- "type": "array"
+ "description": {
+ "description": "A short description of the service.",
+ "example": "A shopping cart service",
+ "type": "string"
+ },
+ "display-name": {
+ "description": "A friendly name of the service.",
+ "example": "My Service",
+ "type": "string"
+ },
+ "service-tier": {
+ "description": "Service tier.",
+ "example": "Tier 1",
+ "type": "string"
+ }
},
- "dd-service": {
- "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
- "example": "my-service",
- "type": "string"
+ "required": [
+ "dd-service"
+ ],
+ "type": "object"
+ },
+ "integrations": {
+ "description": "Third party integrations that Datadog supports.",
+ "properties": {
+ "pagerduty": {
+ "description": "PagerDuty service URL for the service.",
+ "example": "https://my-org.pagerduty.com/service-directory/PMyService",
+ "type": "string"
+ }
},
- "dd-team": {
- "description": "Experimental feature. A Team handle that matches a Team in the Datadog Teams product.",
- "example": "my-team",
+ "type": "object"
+ },
+ "org": {
+ "description": "Org related information about the service.",
+ "properties": {
+ "application": {
+ "description": "App feature this service supports.",
+ "example": "E-Commerce",
+ "type": "string"
+ },
+ "team": {
+ "description": "Team that owns the service.",
+ "example": "my-team",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "schema-version": {
+ "default": "v1",
+ "description": "Schema version being used.",
+ "enum": [
+ "v1"
+ ],
+ "example": "v1",
+ "type": "string",
+ "x-enum-varnames": [
+ "V1"
+ ]
+ },
+ "tags": {
+ "description": "A set of custom tags.",
+ "example": [
+ "my:tag",
+ "service:tag"
+ ],
+ "items": {
"type": "string"
},
- "docs": {
- "description": "A list of documentation related to the services.",
- "items": {
- "description": "Service documents.",
- "properties": {
- "name": {
- "description": "Document name.",
- "example": "Architecture",
- "type": "string"
- },
- "provider": {
- "description": "Document provider.",
- "example": "google drive",
- "type": "string"
+ "type": "array"
+ }
+ },
+ "required": [
+ "schema-version",
+ "info"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Service definition V2 for providing service metadata and integrations.",
+ "properties": {
+ "contacts": {
+ "description": "A list of contacts related to the services.",
+ "items": {
+ "description": "Service owner's contacts information.",
+ "oneOf": [
+ {
+ "description": "Service owner's email.",
+ "properties": {
+ "contact": {
+ "description": "Contact value.",
+ "example": "contact@datadoghq.com",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact email.",
+ "example": "Team Email",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "email"
+ ],
+ "example": "email",
+ "type": "string",
+ "x-enum-varnames": [
+ "EMAIL"
+ ]
+ }
},
- "url": {
- "description": "Document URL.",
- "example": "https://gdrive/mydoc",
- "type": "string"
- }
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
},
- "required": [
- "name",
- "url"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "extensions": {
- "additionalProperties": {},
- "description": "Extensions to V2 schema.",
- "example": {
- "myorg/extension": "extensionValue"
- },
- "type": "object"
- },
- "integrations": {
- "description": "Third party integrations that Datadog supports.",
- "properties": {
- "opsgenie": {
- "description": "Opsgenie integration for the service.",
+ {
+ "description": "Service owner's Slack channel.",
"properties": {
- "region": {
- "description": "Opsgenie instance region.",
+ "contact": {
+ "description": "Slack Channel.",
+ "example": "https://yourcompany.slack.com/archives/channel123",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact Slack.",
+ "example": "Team Slack",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
"enum": [
- "US",
- "EU"
+ "slack"
],
- "example": "US",
+ "example": "slack",
"type": "string",
"x-enum-varnames": [
- "US",
- "EU"
+ "SLACK"
]
+ }
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Service owner's Microsoft Teams.",
+ "properties": {
+ "contact": {
+ "description": "Contact value.",
+ "example": "https://teams.microsoft.com/myteam",
+ "type": "string"
},
- "service-url": {
- "description": "Opsgenie service url.",
- "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
+ "name": {
+ "description": "Contact Microsoft Teams.",
+ "example": "My team channel",
"type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "microsoft-teams"
+ ],
+ "example": "microsoft-teams",
+ "type": "string",
+ "x-enum-varnames": [
+ "MICROSOFT_TEAMS"
+ ]
}
},
"required": [
- "service-url"
+ "type",
+ "contact"
],
"type": "object"
+ }
+ ]
+ },
+ "type": "array"
+ },
+ "dd-service": {
+ "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
+ "example": "my-service",
+ "type": "string"
+ },
+ "dd-team": {
+ "description": "Experimental feature. A Team handle that matches a Team in the Datadog Teams product.",
+ "example": "my-team",
+ "type": "string"
+ },
+ "docs": {
+ "description": "A list of documentation related to the services.",
+ "items": {
+ "description": "Service documents.",
+ "properties": {
+ "name": {
+ "description": "Document name.",
+ "example": "Architecture",
+ "type": "string"
},
- "pagerduty": {
- "description": "PagerDuty service URL for the service.",
- "example": "https://my-org.pagerduty.com/service-directory/PMyService",
+ "provider": {
+ "description": "Document provider.",
+ "example": "google drive",
+ "type": "string"
+ },
+ "url": {
+ "description": "Document URL.",
+ "example": "https://gdrive/mydoc",
"type": "string"
}
},
+ "required": [
+ "name",
+ "url"
+ ],
"type": "object"
},
- "links": {
- "description": "A list of links related to the services.",
- "items": {
- "description": "Service's external links.",
+ "type": "array"
+ },
+ "extensions": {
+ "additionalProperties": {},
+ "description": "Extensions to V2 schema.",
+ "example": {
+ "myorg/extension": "extensionValue"
+ },
+ "type": "object"
+ },
+ "integrations": {
+ "description": "Third party integrations that Datadog supports.",
+ "properties": {
+ "opsgenie": {
+ "description": "Opsgenie integration for the service.",
"properties": {
- "name": {
- "description": "Link name.",
- "example": "Runbook",
- "type": "string"
- },
- "type": {
- "description": "Link type.",
+ "region": {
+ "description": "Opsgenie instance region.",
"enum": [
- "doc",
- "wiki",
- "runbook",
- "url",
- "repo",
- "dashboard",
- "oncall",
- "code",
- "link"
+ "US",
+ "EU"
],
- "example": "runbook",
+ "example": "US",
"type": "string",
"x-enum-varnames": [
- "DOC",
- "WIKI",
- "RUNBOOK",
- "URL",
- "REPO",
- "DASHBOARD",
- "ONCALL",
- "CODE",
- "LINK"
+ "US",
+ "EU"
]
},
- "url": {
- "description": "Link URL.",
- "example": "https://my-runbook",
+ "service-url": {
+ "description": "Opsgenie service url.",
+ "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
"type": "string"
}
},
"required": [
- "name",
- "type",
- "url"
+ "service-url"
],
"type": "object"
},
- "type": "array"
+ "pagerduty": {
+ "description": "PagerDuty service URL for the service.",
+ "example": "https://my-org.pagerduty.com/service-directory/PMyService",
+ "type": "string"
+ }
},
- "repos": {
- "description": "A list of code repositories related to the services.",
- "items": {
- "description": "Service code repositories.",
- "properties": {
- "name": {
- "description": "Repository name.",
- "example": "Source Code",
- "type": "string"
- },
- "provider": {
- "description": "Repository provider.",
- "example": "GitHub",
- "type": "string"
- },
- "url": {
- "description": "Repository URL.",
- "example": "https://github.com/DataDog/schema",
- "type": "string"
- }
+ "type": "object"
+ },
+ "links": {
+ "description": "A list of links related to the services.",
+ "items": {
+ "description": "Service's external links.",
+ "properties": {
+ "name": {
+ "description": "Link name.",
+ "example": "Runbook",
+ "type": "string"
},
- "required": [
- "name",
- "url"
- ],
- "type": "object"
+ "type": {
+ "description": "Link type.",
+ "enum": [
+ "doc",
+ "wiki",
+ "runbook",
+ "url",
+ "repo",
+ "dashboard",
+ "oncall",
+ "code",
+ "link"
+ ],
+ "example": "runbook",
+ "type": "string",
+ "x-enum-varnames": [
+ "DOC",
+ "WIKI",
+ "RUNBOOK",
+ "URL",
+ "REPO",
+ "DASHBOARD",
+ "ONCALL",
+ "CODE",
+ "LINK"
+ ]
+ },
+ "url": {
+ "description": "Link URL.",
+ "example": "https://my-runbook",
+ "type": "string"
+ }
},
- "type": "array"
- },
- "schema-version": {
- "default": "v2",
- "description": "Schema version being used.",
- "enum": [
- "v2"
+ "required": [
+ "name",
+ "type",
+ "url"
],
- "example": "v2",
- "type": "string",
- "x-enum-varnames": [
- "V2"
- ]
+ "type": "object"
},
- "tags": {
- "description": "A set of custom tags.",
- "example": [
- "my:tag",
- "service:tag"
- ],
- "items": {
- "type": "string"
+ "type": "array"
+ },
+ "repos": {
+ "description": "A list of code repositories related to the services.",
+ "items": {
+ "description": "Service code repositories.",
+ "properties": {
+ "name": {
+ "description": "Repository name.",
+ "example": "Source Code",
+ "type": "string"
+ },
+ "provider": {
+ "description": "Repository provider.",
+ "example": "GitHub",
+ "type": "string"
+ },
+ "url": {
+ "description": "Repository URL.",
+ "example": "https://github.com/DataDog/schema",
+ "type": "string"
+ }
},
- "type": "array"
+ "required": [
+ "name",
+ "url"
+ ],
+ "type": "object"
},
- "team": {
- "description": "Team that owns the service.",
- "example": "my-team",
- "type": "string"
- }
+ "type": "array"
},
- "required": [
- "schema-version",
- "dd-service"
- ],
- "type": "object"
- },
- {
- "description": "Service definition v2.1 for providing service metadata and integrations.",
- "properties": {
- "application": {
- "description": "Identifier for a group of related services serving a product feature, which the service is a part of.",
- "example": "my-app",
+ "schema-version": {
+ "default": "v2",
+ "description": "Schema version being used.",
+ "enum": [
+ "v2"
+ ],
+ "example": "v2",
+ "type": "string",
+ "x-enum-varnames": [
+ "V2"
+ ]
+ },
+ "tags": {
+ "description": "A set of custom tags.",
+ "example": [
+ "my:tag",
+ "service:tag"
+ ],
+ "items": {
"type": "string"
},
- "contacts": {
- "description": "A list of contacts related to the services.",
- "items": {
- "description": "Service owner's contacts information.",
- "oneOf": [
- {
- "description": "Service owner's email.",
- "properties": {
- "contact": {
- "description": "Contact value.",
- "example": "contact@datadoghq.com",
- "type": "string"
- },
- "name": {
- "description": "Contact email.",
- "example": "Team Email",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "email"
- ],
- "example": "email",
- "type": "string",
- "x-enum-varnames": [
- "EMAIL"
- ]
- }
- },
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- },
- {
- "description": "Service owner's Slack channel.",
- "properties": {
- "contact": {
- "description": "Slack Channel.",
- "example": "https://yourcompany.slack.com/archives/channel123",
- "type": "string"
- },
- "name": {
- "description": "Contact Slack.",
- "example": "Team Slack",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "slack"
- ],
- "example": "slack",
- "type": "string",
- "x-enum-varnames": [
- "SLACK"
- ]
- }
+ "type": "array"
+ },
+ "team": {
+ "description": "Team that owns the service.",
+ "example": "my-team",
+ "type": "string"
+ }
+ },
+ "required": [
+ "schema-version",
+ "dd-service"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Service definition v2.1 for providing service metadata and integrations.",
+ "properties": {
+ "application": {
+ "description": "Identifier for a group of related services serving a product feature, which the service is a part of.",
+ "example": "my-app",
+ "type": "string"
+ },
+ "contacts": {
+ "description": "A list of contacts related to the services.",
+ "items": {
+ "description": "Service owner's contacts information.",
+ "oneOf": [
+ {
+ "description": "Service owner's email.",
+ "properties": {
+ "contact": {
+ "description": "Contact value.",
+ "example": "contact@datadoghq.com",
+ "type": "string"
},
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- },
- {
- "description": "Service owner's Microsoft Teams.",
- "properties": {
- "contact": {
- "description": "Contact value.",
- "example": "https://teams.microsoft.com/myteam",
- "type": "string"
- },
- "name": {
- "description": "Contact Microsoft Teams.",
- "example": "My team channel",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "microsoft-teams"
- ],
- "example": "microsoft-teams",
- "type": "string",
- "x-enum-varnames": [
- "MICROSOFT_TEAMS"
- ]
- }
+ "name": {
+ "description": "Contact email.",
+ "example": "Team Email",
+ "type": "string"
},
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- }
- ]
- },
- "type": "array"
- },
- "dd-service": {
- "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
- "example": "my-service",
- "type": "string"
- },
- "description": {
- "description": "A short description of the service.",
- "example": "My service description",
- "type": "string"
- },
- "extensions": {
- "additionalProperties": {},
- "description": "Extensions to v2.1 schema.",
- "example": {
- "myorg/extension": "extensionValue"
- },
- "type": "object"
- },
- "integrations": {
- "description": "Third party integrations that Datadog supports.",
- "properties": {
- "opsgenie": {
- "description": "Opsgenie integration for the service.",
- "properties": {
- "region": {
- "description": "Opsgenie instance region.",
+ "type": {
+ "description": "Contact type.",
"enum": [
- "US",
- "EU"
+ "email"
],
- "example": "US",
+ "example": "email",
"type": "string",
"x-enum-varnames": [
- "US",
- "EU"
+ "EMAIL"
]
+ }
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Service owner's Slack channel.",
+ "properties": {
+ "contact": {
+ "description": "Slack Channel.",
+ "example": "https://yourcompany.slack.com/archives/channel123",
+ "type": "string"
},
- "service-url": {
- "description": "Opsgenie service url.",
- "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
+ "name": {
+ "description": "Contact Slack.",
+ "example": "Team Slack",
"type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "slack"
+ ],
+ "example": "slack",
+ "type": "string",
+ "x-enum-varnames": [
+ "SLACK"
+ ]
}
},
"required": [
- "service-url"
+ "type",
+ "contact"
],
"type": "object"
},
- "pagerduty": {
- "description": "PagerDuty integration for the service.",
+ {
+ "description": "Service owner's Microsoft Teams.",
"properties": {
- "service-url": {
- "description": "PagerDuty service url.",
- "example": "https://my-org.pagerduty.com/service-directory/PMyService",
+ "contact": {
+ "description": "Contact value.",
+ "example": "https://teams.microsoft.com/myteam",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact Microsoft Teams.",
+ "example": "My team channel",
"type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "microsoft-teams"
+ ],
+ "example": "microsoft-teams",
+ "type": "string",
+ "x-enum-varnames": [
+ "MICROSOFT_TEAMS"
+ ]
}
},
- "type": "object",
- "x-ignore-duplicate-object": true
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
}
- },
- "type": "object"
+ ]
},
- "lifecycle": {
- "description": "The current life cycle phase of the service.",
- "example": "sandbox",
- "type": "string"
+ "type": "array"
+ },
+ "dd-service": {
+ "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
+ "example": "my-service",
+ "type": "string"
+ },
+ "description": {
+ "description": "A short description of the service.",
+ "example": "My service description",
+ "type": "string"
+ },
+ "extensions": {
+ "additionalProperties": {},
+ "description": "Extensions to v2.1 schema.",
+ "example": {
+ "myorg/extension": "extensionValue"
},
- "links": {
- "description": "A list of links related to the services.",
- "items": {
- "description": "Service's external links.",
+ "type": "object"
+ },
+ "integrations": {
+ "description": "Third party integrations that Datadog supports.",
+ "properties": {
+ "opsgenie": {
+ "description": "Opsgenie integration for the service.",
"properties": {
- "name": {
- "description": "Link name.",
- "example": "Runbook",
- "type": "string"
- },
- "provider": {
- "description": "Link provider.",
- "example": "Github",
- "type": "string"
- },
- "type": {
- "description": "Link type.",
+ "region": {
+ "description": "Opsgenie instance region.",
"enum": [
- "doc",
- "repo",
- "runbook",
- "dashboard",
- "other"
+ "US",
+ "EU"
],
- "example": "runbook",
+ "example": "US",
"type": "string",
"x-enum-varnames": [
- "DOC",
- "REPO",
- "RUNBOOK",
- "DASHBOARD",
- "OTHER"
+ "US",
+ "EU"
]
},
- "url": {
- "description": "Link URL.",
- "example": "https://my-runbook",
+ "service-url": {
+ "description": "Opsgenie service url.",
+ "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
"type": "string"
}
},
"required": [
- "name",
- "type",
- "url"
+ "service-url"
],
"type": "object"
},
- "type": "array"
- },
- "schema-version": {
- "default": "v2.1",
- "description": "Schema version being used.",
- "enum": [
- "v2.1"
- ],
- "example": "v2.1",
- "type": "string",
- "x-enum-varnames": [
- "V2_1"
- ]
- },
- "tags": {
- "description": "A set of custom tags.",
- "example": [
- "my:tag",
- "service:tag"
- ],
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "team": {
- "description": "Team that owns the service. It is used to locate a team defined in Datadog Teams if it exists.",
- "example": "my-team",
- "type": "string"
- },
- "tier": {
- "description": "Importance of the service.",
- "example": "High",
- "type": "string"
- }
- },
- "required": [
- "schema-version",
- "dd-service"
- ],
- "type": "object"
- },
- {
- "description": "Service definition v2.2 for providing service metadata and integrations.",
- "properties": {
- "application": {
- "description": "Identifier for a group of related services serving a product feature, which the service is a part of.",
- "example": "my-app",
- "type": "string"
- },
- "ci-pipeline-fingerprints": {
- "description": "A set of CI fingerprints.",
- "example": [
- "j88xdEy0J5lc",
- "eZ7LMljCk8vo"
- ],
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "contacts": {
- "description": "A list of contacts related to the services.",
- "items": {
- "description": "Service owner's contacts information.",
+ "pagerduty": {
+ "description": "PagerDuty integration for the service.",
"properties": {
- "contact": {
- "description": "Contact value.",
- "example": "https://teams.microsoft.com/myteam",
- "type": "string"
- },
- "name": {
- "description": "Contact Name.",
- "example": "My team channel",
- "type": "string"
- },
- "type": {
- "description": "Contact type. Datadog recognizes the following types: `email`, `slack`, and `microsoft-teams`.",
- "example": "slack",
+ "service-url": {
+ "description": "PagerDuty service url.",
+ "example": "https://my-org.pagerduty.com/service-directory/PMyService",
"type": "string"
}
},
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- },
- "type": "array"
+ "type": "object",
+ "x-ignore-duplicate-object": true
+ }
},
- "dd-service": {
- "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
- "example": "my-service",
- "type": "string"
+ "type": "object"
+ },
+ "lifecycle": {
+ "description": "The current life cycle phase of the service.",
+ "example": "sandbox",
+ "type": "string"
+ },
+ "links": {
+ "description": "A list of links related to the services.",
+ "items": {
+ "description": "Service's external links.",
+ "properties": {
+ "name": {
+ "description": "Link name.",
+ "example": "Runbook",
+ "type": "string"
+ },
+ "provider": {
+ "description": "Link provider.",
+ "example": "Github",
+ "type": "string"
+ },
+ "type": {
+ "description": "Link type.",
+ "enum": [
+ "doc",
+ "repo",
+ "runbook",
+ "dashboard",
+ "other"
+ ],
+ "example": "runbook",
+ "type": "string",
+ "x-enum-varnames": [
+ "DOC",
+ "REPO",
+ "RUNBOOK",
+ "DASHBOARD",
+ "OTHER"
+ ]
+ },
+ "url": {
+ "description": "Link URL.",
+ "example": "https://my-runbook",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "type",
+ "url"
+ ],
+ "type": "object"
},
- "description": {
- "description": "A short description of the service.",
- "example": "My service description",
+ "type": "array"
+ },
+ "schema-version": {
+ "default": "v2.1",
+ "description": "Schema version being used.",
+ "enum": [
+ "v2.1"
+ ],
+ "example": "v2.1",
+ "type": "string",
+ "x-enum-varnames": [
+ "V2_1"
+ ]
+ },
+ "tags": {
+ "description": "A set of custom tags.",
+ "example": [
+ "my:tag",
+ "service:tag"
+ ],
+ "items": {
"type": "string"
},
- "extensions": {
- "additionalProperties": {},
- "description": "Extensions to v2.2 schema.",
- "example": {
- "myorg/extension": "extensionValue"
- },
- "type": "object"
+ "type": "array"
+ },
+ "team": {
+ "description": "Team that owns the service. It is used to locate a team defined in Datadog Teams if it exists.",
+ "example": "my-team",
+ "type": "string"
+ },
+ "tier": {
+ "description": "Importance of the service.",
+ "example": "High",
+ "type": "string"
+ }
+ },
+ "required": [
+ "schema-version",
+ "dd-service"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Service definition v2.2 for providing service metadata and integrations.",
+ "properties": {
+ "application": {
+ "description": "Identifier for a group of related services serving a product feature, which the service is a part of.",
+ "example": "my-app",
+ "type": "string"
+ },
+ "ci-pipeline-fingerprints": {
+ "description": "A set of CI fingerprints.",
+ "example": [
+ "j88xdEy0J5lc",
+ "eZ7LMljCk8vo"
+ ],
+ "items": {
+ "type": "string"
},
- "integrations": {
- "description": "Third party integrations that Datadog supports.",
+ "type": "array"
+ },
+ "contacts": {
+ "description": "A list of contacts related to the services.",
+ "items": {
+ "description": "Service owner's contacts information.",
"properties": {
- "opsgenie": {
- "description": "Opsgenie integration for the service.",
- "properties": {
- "region": {
- "description": "Opsgenie instance region.",
- "enum": [
- "US",
- "EU"
- ],
- "example": "US",
- "type": "string",
- "x-enum-varnames": [
- "US",
- "EU"
- ]
- },
- "service-url": {
- "description": "Opsgenie service url.",
- "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
- "type": "string"
- }
- },
- "required": [
- "service-url"
- ],
- "type": "object"
+ "contact": {
+ "description": "Contact value.",
+ "example": "https://teams.microsoft.com/myteam",
+ "type": "string"
},
- "pagerduty": {
- "description": "PagerDuty integration for the service.",
- "properties": {
- "service-url": {
- "description": "PagerDuty service url.",
- "example": "https://my-org.pagerduty.com/service-directory/PMyService",
- "type": "string"
- }
- },
- "type": "object",
- "x-ignore-duplicate-object": true
+ "name": {
+ "description": "Contact Name.",
+ "example": "My team channel",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type. Datadog recognizes the following types: `email`, `slack`, and `microsoft-teams`.",
+ "example": "slack",
+ "type": "string"
}
},
- "type": "object"
- },
- "languages": {
- "description": "The service's programming language. Datadog recognizes the following languages: `dotnet`, `go`, `java`, `js`, `php`, `python`, `ruby`, and `c++`.",
- "example": [
- "dotnet",
- "go",
- "java",
- "js",
- "php",
- "python",
- "ruby",
- "c++"
+ "required": [
+ "type",
+ "contact"
],
- "items": {
- "type": "string"
- },
- "type": "array"
+ "type": "object"
},
- "lifecycle": {
- "description": "The current life cycle phase of the service.",
- "example": "sandbox",
- "type": "string"
+ "type": "array"
+ },
+ "dd-service": {
+ "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
+ "example": "my-service",
+ "type": "string"
+ },
+ "description": {
+ "description": "A short description of the service.",
+ "example": "My service description",
+ "type": "string"
+ },
+ "extensions": {
+ "additionalProperties": {},
+ "description": "Extensions to v2.2 schema.",
+ "example": {
+ "myorg/extension": "extensionValue"
},
- "links": {
- "description": "A list of links related to the services.",
- "items": {
- "description": "Service's external links.",
+ "type": "object"
+ },
+ "integrations": {
+ "description": "Third party integrations that Datadog supports.",
+ "properties": {
+ "opsgenie": {
+ "description": "Opsgenie integration for the service.",
"properties": {
- "name": {
- "description": "Link name.",
- "example": "Runbook",
- "type": "string"
- },
- "provider": {
- "description": "Link provider.",
- "example": "Github",
- "type": "string"
- },
- "type": {
- "description": "Link type. Datadog recognizes the following types: `runbook`, `doc`, `repo`, `dashboard`, and `other`.",
- "example": "runbook",
- "type": "string"
+ "region": {
+ "description": "Opsgenie instance region.",
+ "enum": [
+ "US",
+ "EU"
+ ],
+ "example": "US",
+ "type": "string",
+ "x-enum-varnames": [
+ "US",
+ "EU"
+ ]
},
- "url": {
- "description": "Link URL.",
- "example": "https://my-runbook",
+ "service-url": {
+ "description": "Opsgenie service url.",
+ "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
"type": "string"
}
},
"required": [
- "name",
- "type",
- "url"
+ "service-url"
],
"type": "object"
},
- "type": "array"
+ "pagerduty": {
+ "description": "PagerDuty integration for the service.",
+ "properties": {
+ "service-url": {
+ "description": "PagerDuty service url.",
+ "example": "https://my-org.pagerduty.com/service-directory/PMyService",
+ "type": "string"
+ }
+ },
+ "type": "object",
+ "x-ignore-duplicate-object": true
+ }
},
- "schema-version": {
- "default": "v2.2",
- "description": "Schema version being used.",
- "enum": [
- "v2.2"
- ],
- "example": "v2.2",
- "type": "string",
- "x-enum-varnames": [
- "V2_2"
- ]
+ "type": "object"
+ },
+ "languages": {
+ "description": "The service's programming language. Datadog recognizes the following languages: `dotnet`, `go`, `java`, `js`, `php`, `python`, `ruby`, and `c++`.",
+ "example": [
+ "dotnet",
+ "go",
+ "java",
+ "js",
+ "php",
+ "python",
+ "ruby",
+ "c++"
+ ],
+ "items": {
+ "type": "string"
},
- "tags": {
- "description": "A set of custom tags.",
- "example": [
- "my:tag",
- "service:tag"
- ],
- "items": {
- "type": "string"
+ "type": "array"
+ },
+ "lifecycle": {
+ "description": "The current life cycle phase of the service.",
+ "example": "sandbox",
+ "type": "string"
+ },
+ "links": {
+ "description": "A list of links related to the services.",
+ "items": {
+ "description": "Service's external links.",
+ "properties": {
+ "name": {
+ "description": "Link name.",
+ "example": "Runbook",
+ "type": "string"
+ },
+ "provider": {
+ "description": "Link provider.",
+ "example": "Github",
+ "type": "string"
+ },
+ "type": {
+ "description": "Link type. Datadog recognizes the following types: `runbook`, `doc`, `repo`, `dashboard`, and `other`.",
+ "example": "runbook",
+ "type": "string"
+ },
+ "url": {
+ "description": "Link URL.",
+ "example": "https://my-runbook",
+ "type": "string"
+ }
},
- "type": "array"
- },
- "team": {
- "description": "Team that owns the service. It is used to locate a team defined in Datadog Teams if it exists.",
- "example": "my-team",
- "type": "string"
+ "required": [
+ "name",
+ "type",
+ "url"
+ ],
+ "type": "object"
},
- "tier": {
- "description": "Importance of the service.",
- "example": "High",
+ "type": "array"
+ },
+ "schema-version": {
+ "default": "v2.2",
+ "description": "Schema version being used.",
+ "enum": [
+ "v2.2"
+ ],
+ "example": "v2.2",
+ "type": "string",
+ "x-enum-varnames": [
+ "V2_2"
+ ]
+ },
+ "tags": {
+ "description": "A set of custom tags.",
+ "example": [
+ "my:tag",
+ "service:tag"
+ ],
+ "items": {
"type": "string"
},
- "type": {
- "description": "The type of service.",
- "enum": [
- "web",
- "db",
- "cache",
- "function",
- "browser",
- "mobile",
- "custom"
- ],
- "example": "web",
- "type": "string",
- "x-enum-varnames": [
- "WEB",
- "DB",
- "CACHE",
- "FUNCTION",
- "BROSWER",
- "MOBILE",
- "CUSTOM"
- ]
- }
+ "type": "array"
},
- "required": [
- "schema-version",
- "dd-service"
- ],
- "type": "object"
- }
- ]
- }
- },
- "type": "object"
- },
- "id": {
- "description": "Service definition id.",
- "type": "string"
+ "team": {
+ "description": "Team that owns the service. It is used to locate a team defined in Datadog Teams if it exists.",
+ "example": "my-team",
+ "type": "string"
+ },
+ "tier": {
+ "description": "Importance of the service.",
+ "example": "High",
+ "type": "string"
+ },
+ "type": {
+ "description": "The type of service.",
+ "enum": [
+ "web",
+ "db",
+ "cache",
+ "function",
+ "browser",
+ "mobile",
+ "custom"
+ ],
+ "example": "web",
+ "type": "string",
+ "x-enum-varnames": [
+ "WEB",
+ "DB",
+ "CACHE",
+ "FUNCTION",
+ "BROSWER",
+ "MOBILE",
+ "CUSTOM"
+ ]
+ }
+ },
+ "required": [
+ "schema-version",
+ "dd-service"
+ ],
+ "type": "object"
+ }
+ ]
+ }
},
- "type": {
- "description": "Service definition type.",
- "type": "string"
- }
+ "type": "object"
},
- "type": "object"
+ "id": {
+ "description": "Service definition id.",
+ "type": "string"
+ },
+ "type": {
+ "description": "Service definition type.",
+ "type": "string"
+ }
},
- "type": "array"
+ "type": "object"
}
},
"type": "object"
@@ -381259,6 +405105,34 @@
},
"description": "OK"
},
+ "400": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Bad Request"
+ },
"403": {
"content": {
"application/json": {
@@ -381287,6 +405161,62 @@
},
"description": "Forbidden"
},
+ "404": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Not Found"
+ },
+ "409": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Conflict"
+ },
"429": {
"content": {
"application/json": {
@@ -381327,16 +405257,11 @@
]
}
],
- "summary": "Get all service definitions",
+ "summary": "Get a single service definition",
"tags": [
"Service Definition"
],
- "x-menu-order": 1,
- "x-pagination": {
- "limitParam": "page[size]",
- "pageParam": "page[number]",
- "resultsPath": "data"
- },
+ "x-menu-order": 3,
"x-permission": {
"operator": "OR",
"permissions": [
@@ -381346,1896 +405271,1383 @@
"x-undo": {
"type": "safe"
}
- },
- "post": {
- "description": "Create or update service definition in the Datadog Service Catalog.",
- "operationId": "CreateOrUpdateServiceDefinitions",
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Create service definitions request.",
- "oneOf": [
- {
- "description": "Service definition v2.2 for providing service metadata and integrations.",
- "properties": {
- "application": {
- "description": "Identifier for a group of related services serving a product feature, which the service is a part of.",
- "example": "my-app",
- "type": "string"
- },
- "ci-pipeline-fingerprints": {
- "description": "A set of CI fingerprints.",
- "example": [
- "j88xdEy0J5lc",
- "eZ7LMljCk8vo"
- ],
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "contacts": {
- "description": "A list of contacts related to the services.",
- "items": {
- "description": "Service owner's contacts information.",
- "properties": {
- "contact": {
- "description": "Contact value.",
- "example": "https://teams.microsoft.com/myteam",
- "type": "string"
- },
- "name": {
- "description": "Contact Name.",
- "example": "My team channel",
- "type": "string"
- },
- "type": {
- "description": "Contact type. Datadog recognizes the following types: `email`, `slack`, and `microsoft-teams`.",
- "example": "slack",
- "type": "string"
- }
- },
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "dd-service": {
- "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
- "example": "my-service",
- "type": "string"
- },
- "description": {
- "description": "A short description of the service.",
- "example": "My service description",
- "type": "string"
- },
- "extensions": {
- "additionalProperties": {},
- "description": "Extensions to v2.2 schema.",
- "example": {
- "myorg/extension": "extensionValue"
- },
- "type": "object"
- },
- "integrations": {
- "description": "Third party integrations that Datadog supports.",
- "properties": {
- "opsgenie": {
- "description": "Opsgenie integration for the service.",
- "properties": {
- "region": {
- "description": "Opsgenie instance region.",
- "enum": [
- "US",
- "EU"
- ],
- "example": "US",
- "type": "string",
- "x-enum-varnames": [
- "US",
- "EU"
- ]
- },
- "service-url": {
- "description": "Opsgenie service url.",
- "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
- "type": "string"
- }
- },
- "required": [
- "service-url"
- ],
- "type": "object"
- },
- "pagerduty": {
- "description": "PagerDuty integration for the service.",
- "properties": {
- "service-url": {
- "description": "PagerDuty service url.",
- "example": "https://my-org.pagerduty.com/service-directory/PMyService",
- "type": "string"
- }
- },
- "type": "object",
- "x-ignore-duplicate-object": true
- }
- },
- "type": "object"
- },
- "languages": {
- "description": "The service's programming language. Datadog recognizes the following languages: `dotnet`, `go`, `java`, `js`, `php`, `python`, `ruby`, and `c++`.",
- "example": [
- "dotnet",
- "go",
- "java",
- "js",
- "php",
- "python",
- "ruby",
- "c++"
- ],
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "lifecycle": {
- "description": "The current life cycle phase of the service.",
- "example": "sandbox",
- "type": "string"
- },
- "links": {
- "description": "A list of links related to the services.",
- "items": {
- "description": "Service's external links.",
- "properties": {
- "name": {
- "description": "Link name.",
- "example": "Runbook",
- "type": "string"
- },
- "provider": {
- "description": "Link provider.",
- "example": "Github",
- "type": "string"
- },
- "type": {
- "description": "Link type. Datadog recognizes the following types: `runbook`, `doc`, `repo`, `dashboard`, and `other`.",
- "example": "runbook",
- "type": "string"
- },
- "url": {
- "description": "Link URL.",
- "example": "https://my-runbook",
- "type": "string"
- }
- },
- "required": [
- "name",
- "type",
- "url"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "schema-version": {
- "default": "v2.2",
- "description": "Schema version being used.",
- "enum": [
- "v2.2"
- ],
- "example": "v2.2",
- "type": "string",
- "x-enum-varnames": [
- "V2_2"
- ]
- },
- "tags": {
- "description": "A set of custom tags.",
- "example": [
- "my:tag",
- "service:tag"
- ],
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "team": {
- "description": "Team that owns the service. It is used to locate a team defined in Datadog Teams if it exists.",
- "example": "my-team",
- "type": "string"
- },
- "tier": {
- "description": "Importance of the service.",
- "example": "High",
+ }
+ },
+ "/api/v2/services/{service_id}": {
+ "delete": {
+ "deprecated": true,
+ "description": "Deletes an existing incident service.",
+ "operationId": "DeleteIncidentService",
+ "parameters": [
+ {
+ "description": "The ID of the incident service.",
+ "in": "path",
+ "name": "service_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "OK"
+ },
+ "400": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
"type": "string"
},
- "type": {
- "description": "The type of service.",
- "enum": [
- "web",
- "db",
- "cache",
- "function",
- "browser",
- "mobile",
- "custom"
- ],
- "example": "web",
- "type": "string",
- "x-enum-varnames": [
- "WEB",
- "DB",
- "CACHE",
- "FUNCTION",
- "BROSWER",
- "MOBILE",
- "CUSTOM"
- ]
- }
- },
- "required": [
- "schema-version",
- "dd-service"
- ],
- "type": "object"
+ "type": "array"
+ }
},
- {
- "description": "Service definition v2.1 for providing service metadata and integrations.",
- "properties": {
- "application": {
- "description": "Identifier for a group of related services serving a product feature, which the service is a part of.",
- "example": "my-app",
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Bad Request"
+ },
+ "401": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
"type": "string"
},
- "contacts": {
- "description": "A list of contacts related to the services.",
- "items": {
- "description": "Service owner's contacts information.",
- "oneOf": [
- {
- "description": "Service owner's email.",
- "properties": {
- "contact": {
- "description": "Contact value.",
- "example": "contact@datadoghq.com",
- "type": "string"
- },
- "name": {
- "description": "Contact email.",
- "example": "Team Email",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "email"
- ],
- "example": "email",
- "type": "string",
- "x-enum-varnames": [
- "EMAIL"
- ]
- }
- },
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- },
- {
- "description": "Service owner's Slack channel.",
- "properties": {
- "contact": {
- "description": "Slack Channel.",
- "example": "https://yourcompany.slack.com/archives/channel123",
- "type": "string"
- },
- "name": {
- "description": "Contact Slack.",
- "example": "Team Slack",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "slack"
- ],
- "example": "slack",
- "type": "string",
- "x-enum-varnames": [
- "SLACK"
- ]
- }
- },
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- },
- {
- "description": "Service owner's Microsoft Teams.",
- "properties": {
- "contact": {
- "description": "Contact value.",
- "example": "https://teams.microsoft.com/myteam",
- "type": "string"
- },
- "name": {
- "description": "Contact Microsoft Teams.",
- "example": "My team channel",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "microsoft-teams"
- ],
- "example": "microsoft-teams",
- "type": "string",
- "x-enum-varnames": [
- "MICROSOFT_TEAMS"
- ]
- }
- },
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- }
- ]
- },
- "type": "array"
- },
- "dd-service": {
- "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
- "example": "my-service",
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Unauthorized"
+ },
+ "403": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
"type": "string"
},
- "description": {
- "description": "A short description of the service.",
- "example": "My service description",
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Forbidden"
+ },
+ "404": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
"type": "string"
},
- "extensions": {
- "additionalProperties": {},
- "description": "Extensions to v2.1 schema.",
- "example": {
- "myorg/extension": "extensionValue"
- },
- "type": "object"
- },
- "integrations": {
- "description": "Third party integrations that Datadog supports.",
- "properties": {
- "opsgenie": {
- "description": "Opsgenie integration for the service.",
- "properties": {
- "region": {
- "description": "Opsgenie instance region.",
- "enum": [
- "US",
- "EU"
- ],
- "example": "US",
- "type": "string",
- "x-enum-varnames": [
- "US",
- "EU"
- ]
- },
- "service-url": {
- "description": "Opsgenie service url.",
- "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
- "type": "string"
- }
- },
- "required": [
- "service-url"
- ],
- "type": "object"
- },
- "pagerduty": {
- "description": "PagerDuty integration for the service.",
- "properties": {
- "service-url": {
- "description": "PagerDuty service url.",
- "example": "https://my-org.pagerduty.com/service-directory/PMyService",
- "type": "string"
- }
- },
- "type": "object",
- "x-ignore-duplicate-object": true
- }
- },
- "type": "object"
- },
- "lifecycle": {
- "description": "The current life cycle phase of the service.",
- "example": "sandbox",
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Not Found"
+ },
+ "429": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
"type": "string"
},
- "links": {
- "description": "A list of links related to the services.",
- "items": {
- "description": "Service's external links.",
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Too many requests"
+ }
+ },
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
+ },
+ {
+ "AuthZ": [
+ "incident_settings_write"
+ ]
+ }
+ ],
+ "summary": "Delete an existing incident service",
+ "tags": [
+ "Incident Services"
+ ],
+ "x-menu-order": 2,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "incident_settings_write"
+ ]
+ },
+ "x-undo": {
+ "type": "idempotent"
+ },
+ "x-unstable": "**Note**: This endpoint is deprecated."
+ },
+ "get": {
+ "deprecated": true,
+ "description": "Get details of an incident service. If the `include[users]` query parameter is provided,\nthe included attribute will contain the users related to these incident services.",
+ "operationId": "GetIncidentService",
+ "parameters": [
+ {
+ "description": "The ID of the incident service.",
+ "in": "path",
+ "name": "service_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "Specifies which types of related objects should be included in the response.",
+ "in": "query",
+ "name": "include",
+ "required": false,
+ "schema": {
+ "description": "Object related to an incident.",
+ "enum": [
+ "users",
+ "attachments"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS",
+ "ATTACHMENTS"
+ ]
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Response with an incident service payload.",
+ "properties": {
+ "data": {
+ "description": "Incident Service data from responses.",
+ "properties": {
+ "attributes": {
+ "description": "The incident service's attributes from a response.",
"properties": {
- "name": {
- "description": "Link name.",
- "example": "Runbook",
+ "created": {
+ "description": "Timestamp of when the incident service was created.",
+ "format": "date-time",
+ "readOnly": true,
"type": "string"
},
- "provider": {
- "description": "Link provider.",
- "example": "Github",
+ "modified": {
+ "description": "Timestamp of when the incident service was modified.",
+ "format": "date-time",
+ "readOnly": true,
"type": "string"
},
- "type": {
- "description": "Link type.",
- "enum": [
- "doc",
- "repo",
- "runbook",
- "dashboard",
- "other"
- ],
- "example": "runbook",
- "type": "string",
- "x-enum-varnames": [
- "DOC",
- "REPO",
- "RUNBOOK",
- "DASHBOARD",
- "OTHER"
- ]
- },
- "url": {
- "description": "Link URL.",
- "example": "https://my-runbook",
+ "name": {
+ "description": "Name of the incident service.",
+ "example": "service name",
"type": "string"
}
},
- "required": [
- "name",
- "type",
- "url"
- ],
"type": "object"
},
- "type": "array"
- },
- "schema-version": {
- "default": "v2.1",
- "description": "Schema version being used.",
- "enum": [
- "v2.1"
- ],
- "example": "v2.1",
- "type": "string",
- "x-enum-varnames": [
- "V2_1"
- ]
- },
- "tags": {
- "description": "A set of custom tags.",
- "example": [
- "my:tag",
- "service:tag"
- ],
- "items": {
+ "id": {
+ "description": "The incident service's ID.",
+ "example": "00000000-0000-0000-0000-000000000000",
"type": "string"
},
- "type": "array"
- },
- "team": {
- "description": "Team that owns the service. It is used to locate a team defined in Datadog Teams if it exists.",
- "example": "my-team",
- "type": "string"
- },
- "tier": {
- "description": "Importance of the service.",
- "example": "High",
- "type": "string"
- }
- },
- "required": [
- "schema-version",
- "dd-service"
- ],
- "type": "object"
- },
- {
- "description": "Service definition V2 for providing service metadata and integrations.",
- "properties": {
- "contacts": {
- "description": "A list of contacts related to the services.",
- "items": {
- "description": "Service owner's contacts information.",
- "oneOf": [
- {
- "description": "Service owner's email.",
- "properties": {
- "contact": {
- "description": "Contact value.",
- "example": "contact@datadoghq.com",
- "type": "string"
- },
- "name": {
- "description": "Contact email.",
- "example": "Team Email",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "email"
- ],
- "example": "email",
- "type": "string",
- "x-enum-varnames": [
- "EMAIL"
- ]
- }
- },
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- },
- {
- "description": "Service owner's Slack channel.",
+ "relationships": {
+ "description": "The incident service's relationships.",
+ "properties": {
+ "created_by": {
+ "description": "Relationship to user.",
"properties": {
- "contact": {
- "description": "Slack Channel.",
- "example": "https://yourcompany.slack.com/archives/channel123",
- "type": "string"
- },
- "name": {
- "description": "Contact Slack.",
- "example": "Team Slack",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "slack"
+ "data": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
],
- "example": "slack",
- "type": "string",
- "x-enum-varnames": [
- "SLACK"
- ]
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
"required": [
- "type",
- "contact"
+ "data"
],
"type": "object"
},
- {
- "description": "Service owner's Microsoft Teams.",
+ "last_modified_by": {
+ "description": "Relationship to user.",
"properties": {
- "contact": {
- "description": "Contact value.",
- "example": "https://teams.microsoft.com/myteam",
- "type": "string"
- },
- "name": {
- "description": "Contact Microsoft Teams.",
- "example": "My team channel",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "microsoft-teams"
+ "data": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
],
- "example": "microsoft-teams",
- "type": "string",
- "x-enum-varnames": [
- "MICROSOFT_TEAMS"
- ]
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
"required": [
- "type",
- "contact"
+ "data"
],
"type": "object"
}
- ]
- },
- "type": "array"
- },
- "dd-service": {
- "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
- "example": "my-service",
- "type": "string"
- },
- "dd-team": {
- "description": "Experimental feature. A Team handle that matches a Team in the Datadog Teams product.",
- "example": "my-team",
- "type": "string"
- },
- "docs": {
- "description": "A list of documentation related to the services.",
- "items": {
- "description": "Service documents.",
- "properties": {
- "name": {
- "description": "Document name.",
- "example": "Architecture",
- "type": "string"
- },
- "provider": {
- "description": "Document provider.",
- "example": "google drive",
- "type": "string"
- },
- "url": {
- "description": "Document URL.",
- "example": "https://gdrive/mydoc",
- "type": "string"
- }
- },
- "required": [
- "name",
- "url"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "extensions": {
- "additionalProperties": {},
- "description": "Extensions to V2 schema.",
- "example": {
- "myorg/extension": "extensionValue"
- },
- "type": "object"
- },
- "integrations": {
- "description": "Third party integrations that Datadog supports.",
- "properties": {
- "opsgenie": {
- "description": "Opsgenie integration for the service.",
- "properties": {
- "region": {
- "description": "Opsgenie instance region.",
- "enum": [
- "US",
- "EU"
- ],
- "example": "US",
- "type": "string",
- "x-enum-varnames": [
- "US",
- "EU"
- ]
- },
- "service-url": {
- "description": "Opsgenie service url.",
- "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
- "type": "string"
- }
- },
- "required": [
- "service-url"
- ],
- "type": "object"
- },
- "pagerduty": {
- "description": "PagerDuty service URL for the service.",
- "example": "https://my-org.pagerduty.com/service-directory/PMyService",
- "type": "string"
- }
- },
- "type": "object"
- },
- "links": {
- "description": "A list of links related to the services.",
- "items": {
- "description": "Service's external links.",
- "properties": {
- "name": {
- "description": "Link name.",
- "example": "Runbook",
- "type": "string"
- },
- "type": {
- "description": "Link type.",
- "enum": [
- "doc",
- "wiki",
- "runbook",
- "url",
- "repo",
- "dashboard",
- "oncall",
- "code",
- "link"
- ],
- "example": "runbook",
- "type": "string",
- "x-enum-varnames": [
- "DOC",
- "WIKI",
- "RUNBOOK",
- "URL",
- "REPO",
- "DASHBOARD",
- "ONCALL",
- "CODE",
- "LINK"
- ]
- },
- "url": {
- "description": "Link URL.",
- "example": "https://my-runbook",
- "type": "string"
- }
},
- "required": [
- "name",
- "type",
- "url"
- ],
+ "readOnly": true,
"type": "object"
},
- "type": "array"
- },
- "repos": {
- "description": "A list of code repositories related to the services.",
- "items": {
- "description": "Service code repositories.",
- "properties": {
- "name": {
- "description": "Repository name.",
- "example": "Source Code",
- "type": "string"
- },
- "provider": {
- "description": "Repository provider.",
- "example": "GitHub",
- "type": "string"
- },
- "url": {
- "description": "Repository URL.",
- "example": "https://github.com/DataDog/schema",
- "type": "string"
- }
- },
- "required": [
- "name",
- "url"
+ "type": {
+ "default": "services",
+ "description": "Incident service resource type.",
+ "enum": [
+ "services"
],
- "type": "object"
- },
- "type": "array"
- },
- "schema-version": {
- "default": "v2",
- "description": "Schema version being used.",
- "enum": [
- "v2"
- ],
- "example": "v2",
- "type": "string",
- "x-enum-varnames": [
- "V2"
- ]
- },
- "tags": {
- "description": "A set of custom tags.",
- "example": [
- "my:tag",
- "service:tag"
- ],
- "items": {
- "type": "string"
- },
- "type": "array"
+ "example": "services",
+ "type": "string",
+ "x-enum-varnames": [
+ "SERVICES"
+ ]
+ }
},
- "team": {
- "description": "Team that owns the service.",
- "example": "my-team",
- "type": "string"
- }
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
},
- "required": [
- "schema-version",
- "dd-service"
- ],
- "type": "object"
- },
- {
- "description": "Service Definition in raw JSON/YAML representation.",
- "example": "---\nschema-version: v2\ndd-service: my-service\n",
- "type": "string"
- }
- ]
- }
- }
- },
- "description": "Service Definition YAML/JSON.",
- "required": true
- },
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Create service definitions response.",
- "properties": {
- "data": {
- "description": "Create service definitions response payload.",
+ "included": {
+ "description": "Included objects from relationships.",
"items": {
- "description": "Service definition data.",
- "properties": {
- "attributes": {
- "description": "Service definition attributes.",
+ "description": "An object related to an incident service which is present in the included payload.",
+ "oneOf": [
+ {
+ "description": "User object returned by the API.",
"properties": {
- "meta": {
- "description": "Metadata about a service definition.",
+ "attributes": {
+ "description": "Attributes of user object returned by the API.",
"properties": {
- "github-html-url": {
- "description": "GitHub HTML URL.",
+ "created_at": {
+ "description": "Creation time of the user.",
+ "format": "date-time",
"type": "string"
},
- "ingested-schema-version": {
- "description": "Ingestion schema version.",
+ "disabled": {
+ "description": "Whether the user is disabled.",
+ "type": "boolean"
+ },
+ "email": {
+ "description": "Email of the user.",
"type": "string"
},
- "ingestion-source": {
- "description": "Ingestion source of the service definition.",
+ "handle": {
+ "description": "Handle of the user.",
"type": "string"
},
- "last-modified-time": {
- "description": "Last modified time of the service definition.",
+ "icon": {
+ "description": "URL of the user's icon.",
"type": "string"
},
- "origin": {
- "description": "User defined origin of the service definition.",
+ "mfa_enabled": {
+ "description": "If user has MFA enabled.",
+ "readOnly": true,
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time that the user was last modified.",
+ "format": "date-time",
"type": "string"
},
- "origin-detail": {
- "description": "User defined origin's detail of the service definition.",
+ "name": {
+ "description": "Name of the user.",
+ "nullable": true,
"type": "string"
},
- "warnings": {
- "description": "A list of schema validation warnings.",
- "items": {
- "description": "Schema validation warnings.",
- "properties": {
- "instance-location": {
- "description": "The warning instance location.",
- "type": "string"
- },
- "keyword-location": {
- "description": "The warning keyword location.",
- "type": "string"
- },
- "message": {
- "description": "The warning message.",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
+ "service_account": {
+ "description": "Whether the user is a service account.",
+ "type": "boolean"
+ },
+ "status": {
+ "description": "Status of the user.",
+ "type": "string"
+ },
+ "title": {
+ "description": "Title of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "verified": {
+ "description": "Whether the user is verified.",
+ "type": "boolean"
}
},
"type": "object"
},
- "schema": {
- "description": "Service definition schema.",
- "oneOf": [
- {
- "deprecated": true,
- "description": "Deprecated - Service definition V1 for providing additional service metadata and integrations.",
+ "id": {
+ "description": "ID of the user.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships of the user object returned by the API.",
+ "properties": {
+ "org": {
+ "description": "Relationship to an organization.",
"properties": {
- "contact": {
- "description": "Contact information about the service.",
- "properties": {
- "email": {
- "description": "Service owner’s email.",
- "example": "contact@datadoghq.com",
- "type": "string"
- },
- "slack": {
- "description": "Service owner’s Slack channel.",
- "example": "https://yourcompany.slack.com/archives/channel123",
- "type": "string"
- }
- },
- "type": "object"
- },
- "extensions": {
- "additionalProperties": {},
- "description": "Extensions to V1 schema.",
- "example": {
- "myorg/extension": "extensionValue"
- },
- "type": "object"
- },
- "external-resources": {
- "description": "A list of external links related to the services.",
- "items": {
- "description": "Service's external links.",
- "properties": {
- "name": {
- "description": "Link name.",
- "example": "Runbook",
- "type": "string"
- },
- "type": {
- "description": "Link type.",
- "enum": [
- "doc",
- "wiki",
- "runbook",
- "url",
- "repo",
- "dashboard",
- "oncall",
- "code",
- "link"
- ],
- "example": "runbook",
- "type": "string",
- "x-enum-varnames": [
- "DOC",
- "WIKI",
- "RUNBOOK",
- "URL",
- "REPO",
- "DASHBOARD",
- "ONCALL",
- "CODE",
- "LINK"
- ]
- },
- "url": {
- "description": "Link URL.",
- "example": "https://my-runbook",
- "type": "string"
- }
- },
- "required": [
- "name",
- "type",
- "url"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "info": {
- "description": "Basic information about a service.",
+ "data": {
+ "description": "Relationship to organization object.",
"properties": {
- "dd-service": {
- "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
- "example": "myservice",
- "type": "string"
- },
- "description": {
- "description": "A short description of the service.",
- "example": "A shopping cart service",
- "type": "string"
- },
- "display-name": {
- "description": "A friendly name of the service.",
- "example": "My Service",
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
"type": "string"
},
- "service-tier": {
- "description": "Service tier.",
- "example": "Tier 1",
- "type": "string"
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
}
},
"required": [
- "dd-service"
+ "id",
+ "type"
],
"type": "object"
- },
- "integrations": {
- "description": "Third party integrations that Datadog supports.",
- "properties": {
- "pagerduty": {
- "description": "PagerDuty service URL for the service.",
- "example": "https://my-org.pagerduty.com/service-directory/PMyService",
- "type": "string"
- }
- },
- "type": "object"
- },
- "org": {
- "description": "Org related information about the service.",
- "properties": {
- "application": {
- "description": "App feature this service supports.",
- "example": "E-Commerce",
- "type": "string"
- },
- "team": {
- "description": "Team that owns the service.",
- "example": "my-team",
- "type": "string"
- }
- },
- "type": "object"
- },
- "schema-version": {
- "default": "v1",
- "description": "Schema version being used.",
- "enum": [
- "v1"
- ],
- "example": "v1",
- "type": "string",
- "x-enum-varnames": [
- "V1"
- ]
- },
- "tags": {
- "description": "A set of custom tags.",
- "example": [
- "my:tag",
- "service:tag"
- ],
- "items": {
- "type": "string"
- },
- "type": "array"
}
},
"required": [
- "schema-version",
- "info"
+ "data"
],
"type": "object"
},
- {
- "description": "Service definition V2 for providing service metadata and integrations.",
+ "other_orgs": {
+ "description": "Relationship to organizations.",
"properties": {
- "contacts": {
- "description": "A list of contacts related to the services.",
- "items": {
- "description": "Service owner's contacts information.",
- "oneOf": [
- {
- "description": "Service owner's email.",
- "properties": {
- "contact": {
- "description": "Contact value.",
- "example": "contact@datadoghq.com",
- "type": "string"
- },
- "name": {
- "description": "Contact email.",
- "example": "Team Email",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "email"
- ],
- "example": "email",
- "type": "string",
- "x-enum-varnames": [
- "EMAIL"
- ]
- }
- },
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- },
- {
- "description": "Service owner's Slack channel.",
- "properties": {
- "contact": {
- "description": "Slack Channel.",
- "example": "https://yourcompany.slack.com/archives/channel123",
- "type": "string"
- },
- "name": {
- "description": "Contact Slack.",
- "example": "Team Slack",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "slack"
- ],
- "example": "slack",
- "type": "string",
- "x-enum-varnames": [
- "SLACK"
- ]
- }
- },
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- },
- {
- "description": "Service owner's Microsoft Teams.",
- "properties": {
- "contact": {
- "description": "Contact value.",
- "example": "https://teams.microsoft.com/myteam",
- "type": "string"
- },
- "name": {
- "description": "Contact Microsoft Teams.",
- "example": "My team channel",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "microsoft-teams"
- ],
- "example": "microsoft-teams",
- "type": "string",
- "x-enum-varnames": [
- "MICROSOFT_TEAMS"
- ]
- }
- },
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- }
- ]
- },
- "type": "array"
- },
- "dd-service": {
- "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
- "example": "my-service",
- "type": "string"
- },
- "dd-team": {
- "description": "Experimental feature. A Team handle that matches a Team in the Datadog Teams product.",
- "example": "my-team",
- "type": "string"
- },
- "docs": {
- "description": "A list of documentation related to the services.",
- "items": {
- "description": "Service documents.",
- "properties": {
- "name": {
- "description": "Document name.",
- "example": "Architecture",
- "type": "string"
- },
- "provider": {
- "description": "Document provider.",
- "example": "google drive",
- "type": "string"
- },
- "url": {
- "description": "Document URL.",
- "example": "https://gdrive/mydoc",
- "type": "string"
- }
- },
- "required": [
- "name",
- "url"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "extensions": {
- "additionalProperties": {},
- "description": "Extensions to V2 schema.",
- "example": {
- "myorg/extension": "extensionValue"
- },
- "type": "object"
- },
- "integrations": {
- "description": "Third party integrations that Datadog supports.",
- "properties": {
- "opsgenie": {
- "description": "Opsgenie integration for the service.",
- "properties": {
- "region": {
- "description": "Opsgenie instance region.",
- "enum": [
- "US",
- "EU"
- ],
- "example": "US",
- "type": "string",
- "x-enum-varnames": [
- "US",
- "EU"
- ]
- },
- "service-url": {
- "description": "Opsgenie service url.",
- "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
- "type": "string"
- }
- },
- "required": [
- "service-url"
- ],
- "type": "object"
- },
- "pagerduty": {
- "description": "PagerDuty service URL for the service.",
- "example": "https://my-org.pagerduty.com/service-directory/PMyService",
- "type": "string"
- }
- },
- "type": "object"
- },
- "links": {
- "description": "A list of links related to the services.",
+ "data": {
+ "description": "Relationships to organization objects.",
+ "example": [],
"items": {
- "description": "Service's external links.",
+ "description": "Relationship to organization object.",
"properties": {
- "name": {
- "description": "Link name.",
- "example": "Runbook",
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
"type": "string"
},
- "type": {
- "description": "Link type.",
- "enum": [
- "doc",
- "wiki",
- "runbook",
- "url",
- "repo",
- "dashboard",
- "oncall",
- "code",
- "link"
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
],
- "example": "runbook",
+ "example": "orgs",
"type": "string",
"x-enum-varnames": [
- "DOC",
- "WIKI",
- "RUNBOOK",
- "URL",
- "REPO",
- "DASHBOARD",
- "ONCALL",
- "CODE",
- "LINK"
+ "ORGS"
]
- },
- "url": {
- "description": "Link URL.",
- "example": "https://my-runbook",
- "type": "string"
}
},
"required": [
- "name",
- "type",
- "url"
+ "id",
+ "type"
],
"type": "object"
},
"type": "array"
- },
- "repos": {
- "description": "A list of code repositories related to the services.",
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_users": {
+ "description": "Relationship to users.",
+ "properties": {
+ "data": {
+ "description": "Relationships to user objects.",
+ "example": [],
"items": {
- "description": "Service code repositories.",
+ "description": "Relationship to user object.",
"properties": {
- "name": {
- "description": "Repository name.",
- "example": "Source Code",
- "type": "string"
- },
- "provider": {
- "description": "Repository provider.",
- "example": "GitHub",
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
"type": "string"
},
- "url": {
- "description": "Repository URL.",
- "example": "https://github.com/DataDog/schema",
- "type": "string"
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
}
},
"required": [
- "name",
- "url"
+ "id",
+ "type"
],
- "type": "object"
- },
- "type": "array"
- },
- "schema-version": {
- "default": "v2",
- "description": "Schema version being used.",
- "enum": [
- "v2"
- ],
- "example": "v2",
- "type": "string",
- "x-enum-varnames": [
- "V2"
- ]
- },
- "tags": {
- "description": "A set of custom tags.",
- "example": [
- "my:tag",
- "service:tag"
- ],
- "items": {
- "type": "string"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
},
"type": "array"
- },
- "team": {
- "description": "Team that owns the service.",
- "example": "my-team",
- "type": "string"
}
},
"required": [
- "schema-version",
- "dd-service"
+ "data"
],
"type": "object"
},
- {
- "description": "Service definition v2.1 for providing service metadata and integrations.",
+ "roles": {
+ "description": "Relationship to roles.",
"properties": {
- "application": {
- "description": "Identifier for a group of related services serving a product feature, which the service is a part of.",
- "example": "my-app",
- "type": "string"
- },
- "contacts": {
- "description": "A list of contacts related to the services.",
- "items": {
- "description": "Service owner's contacts information.",
- "oneOf": [
- {
- "description": "Service owner's email.",
- "properties": {
- "contact": {
- "description": "Contact value.",
- "example": "contact@datadoghq.com",
- "type": "string"
- },
- "name": {
- "description": "Contact email.",
- "example": "Team Email",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "email"
- ],
- "example": "email",
- "type": "string",
- "x-enum-varnames": [
- "EMAIL"
- ]
- }
- },
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- },
- {
- "description": "Service owner's Slack channel.",
- "properties": {
- "contact": {
- "description": "Slack Channel.",
- "example": "https://yourcompany.slack.com/archives/channel123",
- "type": "string"
- },
- "name": {
- "description": "Contact Slack.",
- "example": "Team Slack",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "slack"
- ],
- "example": "slack",
- "type": "string",
- "x-enum-varnames": [
- "SLACK"
- ]
- }
- },
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- },
- {
- "description": "Service owner's Microsoft Teams.",
- "properties": {
- "contact": {
- "description": "Contact value.",
- "example": "https://teams.microsoft.com/myteam",
- "type": "string"
- },
- "name": {
- "description": "Contact Microsoft Teams.",
- "example": "My team channel",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "microsoft-teams"
- ],
- "example": "microsoft-teams",
- "type": "string",
- "x-enum-varnames": [
- "MICROSOFT_TEAMS"
- ]
- }
- },
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- }
- ]
- },
- "type": "array"
- },
- "dd-service": {
- "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
- "example": "my-service",
- "type": "string"
- },
- "description": {
- "description": "A short description of the service.",
- "example": "My service description",
- "type": "string"
- },
- "extensions": {
- "additionalProperties": {},
- "description": "Extensions to v2.1 schema.",
- "example": {
- "myorg/extension": "extensionValue"
- },
- "type": "object"
- },
- "integrations": {
- "description": "Third party integrations that Datadog supports.",
- "properties": {
- "opsgenie": {
- "description": "Opsgenie integration for the service.",
- "properties": {
- "region": {
- "description": "Opsgenie instance region.",
- "enum": [
- "US",
- "EU"
- ],
- "example": "US",
- "type": "string",
- "x-enum-varnames": [
- "US",
- "EU"
- ]
- },
- "service-url": {
- "description": "Opsgenie service url.",
- "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
- "type": "string"
- }
- },
- "required": [
- "service-url"
- ],
- "type": "object"
- },
- "pagerduty": {
- "description": "PagerDuty integration for the service.",
- "properties": {
- "service-url": {
- "description": "PagerDuty service url.",
- "example": "https://my-org.pagerduty.com/service-directory/PMyService",
- "type": "string"
- }
- },
- "type": "object",
- "x-ignore-duplicate-object": true
- }
- },
- "type": "object"
- },
- "lifecycle": {
- "description": "The current life cycle phase of the service.",
- "example": "sandbox",
- "type": "string"
- },
- "links": {
- "description": "A list of links related to the services.",
+ "data": {
+ "description": "An array containing type and the unique identifier of a role.",
"items": {
- "description": "Service's external links.",
+ "description": "Relationship to role object.",
"properties": {
- "name": {
- "description": "Link name.",
- "example": "Runbook",
- "type": "string"
- },
- "provider": {
- "description": "Link provider.",
- "example": "Github",
+ "id": {
+ "description": "The unique identifier of the role.",
+ "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
"type": "string"
},
"type": {
- "description": "Link type.",
+ "default": "roles",
+ "description": "Roles type.",
"enum": [
- "doc",
- "repo",
- "runbook",
- "dashboard",
- "other"
+ "roles"
],
- "example": "runbook",
+ "example": "roles",
"type": "string",
"x-enum-varnames": [
- "DOC",
- "REPO",
- "RUNBOOK",
- "DASHBOARD",
- "OTHER"
+ "ROLES"
]
- },
- "url": {
- "description": "Link URL.",
- "example": "https://my-runbook",
- "type": "string"
}
},
- "required": [
- "name",
- "type",
- "url"
- ],
- "type": "object"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
},
"type": "array"
- },
- "schema-version": {
- "default": "v2.1",
- "description": "Schema version being used.",
- "enum": [
- "v2.1"
- ],
- "example": "v2.1",
- "type": "string",
- "x-enum-varnames": [
- "V2_1"
- ]
- },
- "tags": {
- "description": "A set of custom tags.",
- "example": [
- "my:tag",
- "service:tag"
- ],
- "items": {
- "type": "string"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "properties": false
+ }
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ ]
+ },
+ "readOnly": true,
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "OK"
+ },
+ "400": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Bad Request"
+ },
+ "401": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Unauthorized"
+ },
+ "403": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Forbidden"
+ },
+ "404": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Not Found"
+ },
+ "429": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Too many requests"
+ }
+ },
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
+ },
+ {
+ "AuthZ": [
+ "incident_read"
+ ]
+ }
+ ],
+ "summary": "Get details of an incident service",
+ "tags": [
+ "Incident Services"
+ ],
+ "x-menu-order": 1,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "incident_read"
+ ]
+ },
+ "x-undo": {
+ "type": "safe"
+ },
+ "x-unstable": "**Note**: This endpoint is deprecated."
+ },
+ "patch": {
+ "deprecated": true,
+ "description": "Updates an existing incident service. Only provide the attributes which should be updated as this request is a partial update.",
+ "operationId": "UpdateIncidentService",
+ "parameters": [
+ {
+ "description": "The ID of the incident service.",
+ "in": "path",
+ "name": "service_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Update request with an incident service payload.",
+ "properties": {
+ "data": {
+ "description": "Incident Service payload for update requests.",
+ "properties": {
+ "attributes": {
+ "description": "The incident service's attributes for an update request.",
+ "properties": {
+ "name": {
+ "description": "Name of the incident service.",
+ "example": "an example service name",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "description": "The incident service's ID.",
+ "example": "00000000-0000-0000-0000-000000000000",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "The incident service's relationships.",
+ "properties": {
+ "created_by": {
+ "description": "Relationship to user.",
+ "properties": {
+ "data": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "last_modified_by": {
+ "description": "Relationship to user.",
+ "properties": {
+ "data": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
+ },
+ "readOnly": true,
+ "type": "object"
+ },
+ "type": {
+ "default": "services",
+ "description": "Incident service resource type.",
+ "enum": [
+ "services"
+ ],
+ "example": "services",
+ "type": "string",
+ "x-enum-varnames": [
+ "SERVICES"
+ ]
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Incident Service Payload.",
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Response with an incident service payload.",
+ "properties": {
+ "data": {
+ "description": "Incident Service data from responses.",
+ "properties": {
+ "attributes": {
+ "description": "The incident service's attributes from a response.",
+ "properties": {
+ "created": {
+ "description": "Timestamp of when the incident service was created.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "modified": {
+ "description": "Timestamp of when the incident service was modified.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the incident service.",
+ "example": "service name",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The incident service's ID.",
+ "example": "00000000-0000-0000-0000-000000000000",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "The incident service's relationships.",
+ "properties": {
+ "created_by": {
+ "description": "Relationship to user.",
+ "properties": {
+ "data": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "last_modified_by": {
+ "description": "Relationship to user.",
+ "properties": {
+ "data": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
+ },
+ "readOnly": true,
+ "type": "object"
+ },
+ "type": {
+ "default": "services",
+ "description": "Incident service resource type.",
+ "enum": [
+ "services"
+ ],
+ "example": "services",
+ "type": "string",
+ "x-enum-varnames": [
+ "SERVICES"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ },
+ "included": {
+ "description": "Included objects from relationships.",
+ "items": {
+ "description": "An object related to an incident service which is present in the included payload.",
+ "oneOf": [
+ {
+ "description": "User object returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of user object returned by the API.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the user.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "disabled": {
+ "description": "Whether the user is disabled.",
+ "type": "boolean"
+ },
+ "email": {
+ "description": "Email of the user.",
+ "type": "string"
+ },
+ "handle": {
+ "description": "Handle of the user.",
+ "type": "string"
+ },
+ "icon": {
+ "description": "URL of the user's icon.",
+ "type": "string"
+ },
+ "mfa_enabled": {
+ "description": "If user has MFA enabled.",
+ "readOnly": true,
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time that the user was last modified.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "service_account": {
+ "description": "Whether the user is a service account.",
+ "type": "boolean"
+ },
+ "status": {
+ "description": "Status of the user.",
+ "type": "string"
+ },
+ "title": {
+ "description": "Title of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "verified": {
+ "description": "Whether the user is verified.",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the user.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships of the user object returned by the API.",
+ "properties": {
+ "org": {
+ "description": "Relationship to an organization.",
+ "properties": {
+ "data": {
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
},
- "type": "array"
- },
- "team": {
- "description": "Team that owns the service. It is used to locate a team defined in Datadog Teams if it exists.",
- "example": "my-team",
- "type": "string"
- },
- "tier": {
- "description": "Importance of the service.",
- "example": "High",
- "type": "string"
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
}
},
"required": [
- "schema-version",
- "dd-service"
+ "data"
],
"type": "object"
},
- {
- "description": "Service definition v2.2 for providing service metadata and integrations.",
+ "other_orgs": {
+ "description": "Relationship to organizations.",
"properties": {
- "application": {
- "description": "Identifier for a group of related services serving a product feature, which the service is a part of.",
- "example": "my-app",
- "type": "string"
- },
- "ci-pipeline-fingerprints": {
- "description": "A set of CI fingerprints.",
- "example": [
- "j88xdEy0J5lc",
- "eZ7LMljCk8vo"
- ],
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "contacts": {
- "description": "A list of contacts related to the services.",
+ "data": {
+ "description": "Relationships to organization objects.",
+ "example": [],
"items": {
- "description": "Service owner's contacts information.",
+ "description": "Relationship to organization object.",
"properties": {
- "contact": {
- "description": "Contact value.",
- "example": "https://teams.microsoft.com/myteam",
- "type": "string"
- },
- "name": {
- "description": "Contact Name.",
- "example": "My team channel",
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
"type": "string"
},
"type": {
- "description": "Contact type. Datadog recognizes the following types: `email`, `slack`, and `microsoft-teams`.",
- "example": "slack",
- "type": "string"
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
}
},
"required": [
- "type",
- "contact"
+ "id",
+ "type"
],
"type": "object"
},
"type": "array"
- },
- "dd-service": {
- "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
- "example": "my-service",
- "type": "string"
- },
- "description": {
- "description": "A short description of the service.",
- "example": "My service description",
- "type": "string"
- },
- "extensions": {
- "additionalProperties": {},
- "description": "Extensions to v2.2 schema.",
- "example": {
- "myorg/extension": "extensionValue"
- },
- "type": "object"
- },
- "integrations": {
- "description": "Third party integrations that Datadog supports.",
- "properties": {
- "opsgenie": {
- "description": "Opsgenie integration for the service.",
- "properties": {
- "region": {
- "description": "Opsgenie instance region.",
- "enum": [
- "US",
- "EU"
- ],
- "example": "US",
- "type": "string",
- "x-enum-varnames": [
- "US",
- "EU"
- ]
- },
- "service-url": {
- "description": "Opsgenie service url.",
- "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
- "type": "string"
- }
- },
- "required": [
- "service-url"
- ],
- "type": "object"
- },
- "pagerduty": {
- "description": "PagerDuty integration for the service.",
- "properties": {
- "service-url": {
- "description": "PagerDuty service url.",
- "example": "https://my-org.pagerduty.com/service-directory/PMyService",
- "type": "string"
- }
- },
- "type": "object",
- "x-ignore-duplicate-object": true
- }
- },
- "type": "object"
- },
- "languages": {
- "description": "The service's programming language. Datadog recognizes the following languages: `dotnet`, `go`, `java`, `js`, `php`, `python`, `ruby`, and `c++`.",
- "example": [
- "dotnet",
- "go",
- "java",
- "js",
- "php",
- "python",
- "ruby",
- "c++"
- ],
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "lifecycle": {
- "description": "The current life cycle phase of the service.",
- "example": "sandbox",
- "type": "string"
- },
- "links": {
- "description": "A list of links related to the services.",
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_users": {
+ "description": "Relationship to users.",
+ "properties": {
+ "data": {
+ "description": "Relationships to user objects.",
+ "example": [],
"items": {
- "description": "Service's external links.",
+ "description": "Relationship to user object.",
"properties": {
- "name": {
- "description": "Link name.",
- "example": "Runbook",
- "type": "string"
- },
- "provider": {
- "description": "Link provider.",
- "example": "Github",
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
"type": "string"
},
"type": {
- "description": "Link type. Datadog recognizes the following types: `runbook`, `doc`, `repo`, `dashboard`, and `other`.",
- "example": "runbook",
- "type": "string"
- },
- "url": {
- "description": "Link URL.",
- "example": "https://my-runbook",
- "type": "string"
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
}
},
"required": [
- "name",
- "type",
- "url"
+ "id",
+ "type"
],
- "type": "object"
- },
- "type": "array"
- },
- "schema-version": {
- "default": "v2.2",
- "description": "Schema version being used.",
- "enum": [
- "v2.2"
- ],
- "example": "v2.2",
- "type": "string",
- "x-enum-varnames": [
- "V2_2"
- ]
- },
- "tags": {
- "description": "A set of custom tags.",
- "example": [
- "my:tag",
- "service:tag"
- ],
- "items": {
- "type": "string"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
},
"type": "array"
- },
- "team": {
- "description": "Team that owns the service. It is used to locate a team defined in Datadog Teams if it exists.",
- "example": "my-team",
- "type": "string"
- },
- "tier": {
- "description": "Importance of the service.",
- "example": "High",
- "type": "string"
- },
- "type": {
- "description": "The type of service.",
- "enum": [
- "web",
- "db",
- "cache",
- "function",
- "browser",
- "mobile",
- "custom"
- ],
- "example": "web",
- "type": "string",
- "x-enum-varnames": [
- "WEB",
- "DB",
- "CACHE",
- "FUNCTION",
- "BROSWER",
- "MOBILE",
- "CUSTOM"
- ]
}
},
"required": [
- "schema-version",
- "dd-service"
+ "data"
],
"type": "object"
+ },
+ "roles": {
+ "description": "Relationship to roles.",
+ "properties": {
+ "data": {
+ "description": "An array containing type and the unique identifier of a role.",
+ "items": {
+ "description": "Relationship to role object.",
+ "properties": {
+ "id": {
+ "description": "The unique identifier of the role.",
+ "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "type": "string"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
+ },
+ "type": "object",
+ "x-merge-override": {
+ "properties": false
+ }
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
]
}
},
- "type": "object"
- },
- "id": {
- "description": "Service definition id.",
- "type": "string"
- },
- "type": {
- "description": "Service definition type.",
- "type": "string"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
- },
- "type": "object"
+ ]
},
+ "readOnly": true,
"type": "array"
}
},
+ "required": [
+ "data"
+ ],
"type": "object"
}
}
},
- "description": "CREATED"
+ "description": "OK"
},
"400": {
"content": {
@@ -383265,6 +406677,34 @@
},
"description": "Bad Request"
},
+ "401": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Unauthorized"
+ },
"403": {
"content": {
"application/json": {
@@ -383293,7 +406733,35 @@
},
"description": "Forbidden"
},
- "409": {
+ "404": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Not Found"
+ },
+ "429": {
"content": {
"application/json": {
"schema": {
@@ -383310,110 +406778,758 @@
"type": "string"
},
"type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Conflict"
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Too many requests"
+ }
+ },
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
+ },
+ {
+ "AuthZ": [
+ "incident_settings_write"
+ ]
+ }
+ ],
+ "summary": "Update an existing incident service",
+ "tags": [
+ "Incident Services"
+ ],
+ "x-codegen-request-body-name": "body",
+ "x-menu-order": 3,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "incident_settings_write"
+ ]
+ },
+ "x-undo": {
+ "type": "idempotent"
+ },
+ "x-unstable": "**Note**: This endpoint is deprecated."
+ }
+ },
+ "/api/v2/siem-historical-detections/jobs": {
+ "get": {
+ "description": "List historical jobs.",
+ "operationId": "ListHistoricalJobs",
+ "parameters": [
+ {
+ "description": "Size for a given page. The maximum allowed value is 100.",
+ "in": "query",
+ "name": "page[size]",
+ "required": false,
+ "schema": {
+ "default": 10,
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ {
+ "description": "Specific page number to return.",
+ "in": "query",
+ "name": "page[number]",
+ "required": false,
+ "schema": {
+ "default": 0,
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ {
+ "description": "The order of the jobs in results.",
+ "example": "status",
+ "in": "query",
+ "name": "sort",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "Query used to filter items from the fetched list.",
+ "example": "security:attack status:high",
+ "in": "query",
+ "name": "filter[query]",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "List of historical jobs.",
+ "properties": {
+ "data": {
+ "description": "Array containing the list of historical jobs.",
+ "items": {
+ "description": "Historical job response data.",
+ "properties": {
+ "attributes": {
+ "description": "Historical job attributes.",
+ "properties": {
+ "createdAt": {
+ "description": "Time when the job was created.",
+ "type": "string"
+ },
+ "createdByHandle": {
+ "description": "The handle of the user who created the job.",
+ "type": "string"
+ },
+ "createdByName": {
+ "description": "The name of the user who created the job.",
+ "type": "string"
+ },
+ "createdFromRuleId": {
+ "description": "ID of the rule used to create the job (if it is created from a rule).",
+ "type": "string"
+ },
+ "jobDefinition": {
+ "description": "Definition of a historical job.",
+ "properties": {
+ "calculatedFields": {
+ "description": "Calculated fields.",
+ "items": {
+ "description": "Calculated field.",
+ "properties": {
+ "expression": {
+ "description": "Expression.",
+ "example": "@request_end_timestamp - @request_start_timestamp",
+ "type": "string"
+ },
+ "name": {
+ "description": "Field name.",
+ "example": "response_time",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "expression"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "cases": {
+ "description": "Cases used for generating job results.",
+ "items": {
+ "description": "Case when signal is generated.",
+ "properties": {
+ "actions": {
+ "description": "Action to perform for each rule case.",
+ "items": {
+ "description": "Action to perform when a signal is triggered. Only available for Application Security rule type.",
+ "properties": {
+ "options": {
+ "description": "Options for the rule action",
+ "properties": {
+ "duration": {
+ "description": "Duration of the action in seconds. 0 indicates no expiration.",
+ "example": 0,
+ "format": "int64",
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "description": "The action type.",
+ "enum": [
+ "block_ip",
+ "block_user"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "BLOCK_IP",
+ "BLOCK_USER"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "condition": {
+ "description": "A case contains logical operations (`>`,`>=`, `&&`, `||`) to determine if a signal should be generated\nbased on the event counts in the previously defined queries.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the case.",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notification targets.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "status": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ }
+ },
+ "required": [
+ "status"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "from": {
+ "description": "Starting time of data analyzed by the job.",
+ "example": 1729843470000,
+ "format": "int64",
+ "type": "integer"
+ },
+ "groupSignalsBy": {
+ "description": "Additional grouping to perform on top of the existing groups in the query section. Must be a subset of the existing groups.",
+ "example": [
+ "service"
+ ],
+ "items": {
+ "description": "Field to group by.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "index": {
+ "description": "Index used to load the data.",
+ "example": "cloud_siem",
+ "type": "string"
+ },
+ "message": {
+ "description": "Message for generated results.",
+ "example": "A large number of failed login attempts.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Job name.",
+ "example": "Excessive number of failed attempts.",
+ "type": "string"
+ },
+ "options": {
+ "description": "Job options.",
+ "properties": {
+ "detectionMethod": {
+ "description": "The detection method.",
+ "enum": [
+ "threshold",
+ "new_value",
+ "anomaly_detection",
+ "impossible_travel",
+ "hardcoded",
+ "third_party",
+ "anomaly_threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "THRESHOLD",
+ "NEW_VALUE",
+ "ANOMALY_DETECTION",
+ "IMPOSSIBLE_TRAVEL",
+ "HARDCODED",
+ "THIRD_PARTY",
+ "ANOMALY_THRESHOLD"
+ ]
+ },
+ "evaluationWindow": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS"
+ ]
+ },
+ "impossibleTravelOptions": {
+ "description": "Options on impossible travel detection method.",
+ "properties": {
+ "baselineUserLocations": {
+ "description": "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.",
+ "example": true,
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "keepAlive": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS"
+ ]
+ },
+ "maxSignalDuration": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600,
+ 43200,
+ 86400
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS",
+ "TWELVE_HOURS",
+ "ONE_DAY"
+ ]
+ },
+ "newValueOptions": {
+ "description": "Options on new value detection method.",
+ "properties": {
+ "forgetAfter": {
+ "description": "The duration in days after which a learned value is forgotten.",
+ "enum": [
+ 1,
+ 2,
+ 7,
+ 14,
+ 21,
+ 28
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ONE_DAY",
+ "TWO_DAYS",
+ "ONE_WEEK",
+ "TWO_WEEKS",
+ "THREE_WEEKS",
+ "FOUR_WEEKS"
+ ]
+ },
+ "learningDuration": {
+ "default": 0,
+ "description": "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.",
+ "enum": [
+ 0,
+ 1,
+ 7
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_DAYS",
+ "ONE_DAY",
+ "SEVEN_DAYS"
+ ]
+ },
+ "learningMethod": {
+ "default": "duration",
+ "description": "The learning method used to determine when signals should be generated for values that weren't learned.",
+ "enum": [
+ "duration",
+ "threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "DURATION",
+ "THRESHOLD"
+ ]
+ },
+ "learningThreshold": {
+ "default": 0,
+ "description": "A number of occurrences after which signals will be generated for values that weren't learned.",
+ "enum": [
+ 0,
+ 1
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_OCCURRENCES",
+ "ONE_OCCURRENCE"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "thirdPartyRuleOptions": {
+ "description": "Options on third party detection method.",
+ "properties": {
+ "defaultNotifications": {
+ "description": "Notification targets for the logs that do not correspond to any of the cases.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "defaultStatus": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ },
+ "rootQueries": {
+ "description": "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.",
+ "items": {
+ "description": "A query to be combined with the third party case query.",
+ "properties": {
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "query": {
+ "description": "Query to run on logs.",
+ "example": "source:cloudtrail",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "signalTitleTemplate": {
+ "description": "A template for the signal title; if omitted, the title is generated based on the case name.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "queries": {
+ "description": "Queries for selecting logs analyzed by the job.",
+ "items": {
+ "description": "Query for selecting logs analyzed by the historical job.",
+ "properties": {
+ "aggregation": {
+ "description": "The aggregation type.",
+ "enum": [
+ "count",
+ "cardinality",
+ "sum",
+ "max",
+ "new_value",
+ "geo_data",
+ "event_count",
+ "none"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "COUNT",
+ "CARDINALITY",
+ "SUM",
+ "MAX",
+ "NEW_VALUE",
+ "GEO_DATA",
+ "EVENT_COUNT",
+ "NONE"
+ ]
+ },
+ "distinctFields": {
+ "description": "Field for which the cardinality is measured. Sent as an array.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "hasOptionalGroupByFields": {
+ "description": "When false, events without a group-by value are ignored by the query. When true, events with missing group-by fields are processed with `N/A`, replacing the missing values.",
+ "example": false,
+ "readOnly": true,
+ "type": "boolean"
+ },
+ "metrics": {
+ "description": "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.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the query.",
+ "type": "string"
+ },
+ "query": {
+ "description": "Query to run on logs.",
+ "example": "a > 3",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "referenceTables": {
+ "description": "Reference tables used in the queries.",
+ "items": {
+ "description": "Reference tables used in the queries.",
+ "properties": {
+ "checkPresence": {
+ "description": "Whether to include or exclude the matched values.",
+ "type": "boolean"
+ },
+ "columnName": {
+ "description": "The name of the column in the reference table.",
+ "type": "string"
+ },
+ "logFieldPath": {
+ "description": "The field in the log to match against the reference table.",
+ "type": "string"
+ },
+ "ruleQueryName": {
+ "description": "The name of the query to apply the reference table to.",
+ "type": "string"
+ },
+ "tableName": {
+ "description": "The name of the reference table.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "tags": {
+ "description": "Tags for generated signals.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "thirdPartyCases": {
+ "description": "Cases for generating results from third-party detection method. Only available for third-party detection method.",
+ "example": [],
+ "items": {
+ "description": "Case when a signal is generated by a third party rule.",
+ "properties": {
+ "name": {
+ "description": "Name of the case.",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notification targets for each case.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "query": {
+ "description": "A query to map a third party event to this case.",
+ "type": "string"
+ },
+ "status": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ }
+ },
+ "required": [
+ "status"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "to": {
+ "description": "Ending time of data analyzed by the job.",
+ "example": 1729847070000,
+ "format": "int64",
+ "type": "integer"
+ },
+ "type": {
+ "description": "Job type.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "from",
+ "to",
+ "index",
+ "name",
+ "cases",
+ "queries",
+ "message"
+ ],
+ "type": "object"
+ },
+ "jobName": {
+ "description": "Job name.",
+ "type": "string"
+ },
+ "jobStatus": {
+ "description": "Job status.",
+ "type": "string"
+ },
+ "modifiedAt": {
+ "description": "Last modification time of the job.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the job.",
+ "type": "string"
+ },
+ "type": {
+ "description": "Type of payload.",
+ "enum": [
+ "historicalDetectionsJob"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "HISTORICALDETECTIONSJOB"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "meta": {
+ "description": "Metadata about the list of jobs.",
+ "properties": {
+ "totalCount": {
+ "description": "Number of jobs in the list.",
+ "format": "int32",
+ "maximum": 2147483647,
+ "type": "integer"
+ }
},
- "type": "array"
+ "type": "object"
}
},
- "required": [
- "errors"
- ],
"type": "object"
}
}
},
- "description": "Too many requests"
- }
- },
- "security": [
- {
- "apiKeyAuth": [],
- "appKeyAuth": []
- },
- {
- "AuthZ": [
- "apm_service_catalog_write"
- ]
- }
- ],
- "summary": "Create or update service definition",
- "tags": [
- "Service Definition"
- ],
- "x-codegen-request-body-name": "body",
- "x-given": {
- "service_definition": {
- "parameters": [
- {
- "name": "body",
- "value": "{\n \"dd-service\": \"service-{{ unique_lower_alnum }}\",\n \"dd-team\": \"my-team\",\n \"docs\": [{\"name\": \"Architecture\",\n \"provider\": \"google drive\",\n \"url\": \"https://gdrive/mygivedoc\"}],\n \"extensions\": {\"frogextension\": \"extensionfrogvalue\"},\n \"integrations\": {\"opsgenie\": {\"region\": \"US\",\n \"service-url\": \"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\"},\n \"pagerduty\": \"https://my-org.pagerduty.com/service-directory/PMyService\"},\n \"links\": [{\"name\": \"Runbook\", \"type\": \"runbook\", \"url\": \"https://my-runbook\"}],\n \"repos\": [{\"name\": \"Source Code\",\n \"provider\": \"GitHub\",\n \"url\": \"https://github.com/DataDog/given\"}],\n \"schema-version\": \"v2\",\n \"tags\": [\"this:tag\", \"service:tag\"],\n \"team\": \"super-team\"\n}"
- }
- ],
- "step": "there is a valid \"service_definition\" in the system"
- }
- },
- "x-menu-order": 2,
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "apm_service_catalog_write"
- ]
- },
- "x-undo": {
- "operationId": "DeleteServiceDefinition",
- "parameters": [
- {
- "name": "service_name",
- "source": "data[0].attributes.schema.dd-service"
- }
- ],
- "type": "unsafe"
- }
- }
- },
- "/api/v2/services/definitions/{service_name}": {
- "delete": {
- "description": "Delete a single service definition in the Datadog Service Catalog.",
- "operationId": "DeleteServiceDefinition",
- "parameters": [
- {
- "description": "The name of the service.",
- "in": "path",
- "name": "service_name",
- "required": true,
- "schema": {
- "example": "my-service",
- "type": "string"
- }
- }
- ],
- "responses": {
- "204": {
"description": "OK"
},
"400": {
@@ -383470,35 +407586,7 @@
}
}
},
- "description": "Forbidden"
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Not Found"
+ "description": "Not Authorized"
},
"429": {
"content": {
@@ -383535,1122 +407623,1002 @@
"appKeyAuth": []
},
{
- "AuthZ": [
- "apm_service_catalog_write"
- ]
+ "AuthZ": []
}
],
- "summary": "Delete a single service definition",
+ "summary": "List historical jobs",
"tags": [
- "Service Definition"
+ "Security Monitoring"
],
- "x-menu-order": 4,
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "apm_service_catalog_write"
- ]
- },
+ "x-menu-order": 20,
"x-undo": {
- "type": "idempotent"
- }
+ "type": "safe"
+ },
+ "x-unstable": "**Note**: This endpoint is in beta and may be subject to changes.\nPlease check the documentation regularly for updates."
},
- "get": {
- "description": "Get a single service definition from the Datadog Service Catalog.",
- "operationId": "GetServiceDefinition",
- "parameters": [
- {
- "description": "The name of the service.",
- "in": "path",
- "name": "service_name",
- "required": true,
- "schema": {
- "example": "my-service",
- "type": "string"
- }
- },
- {
- "description": "The schema version desired in the response.",
- "in": "query",
- "name": "schema_version",
- "required": false,
- "schema": {
- "description": "Schema versions",
- "enum": [
- "v1",
- "v2",
- "v2.1",
- "v2.2"
- ],
- "type": "string",
- "x-enum-varnames": [
- "V1",
- "V2",
- "V2_1",
- "V2_2"
- ]
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Get service definition response.",
- "properties": {
- "data": {
- "description": "Service definition data.",
- "properties": {
- "attributes": {
- "description": "Service definition attributes.",
- "properties": {
- "meta": {
- "description": "Metadata about a service definition.",
- "properties": {
- "github-html-url": {
- "description": "GitHub HTML URL.",
- "type": "string"
- },
- "ingested-schema-version": {
- "description": "Ingestion schema version.",
- "type": "string"
- },
- "ingestion-source": {
- "description": "Ingestion source of the service definition.",
- "type": "string"
- },
- "last-modified-time": {
- "description": "Last modified time of the service definition.",
- "type": "string"
- },
- "origin": {
- "description": "User defined origin of the service definition.",
- "type": "string"
- },
- "origin-detail": {
- "description": "User defined origin's detail of the service definition.",
+ "post": {
+ "description": "Run a historical job.",
+ "operationId": "RunHistoricalJob",
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Run a historical job request.",
+ "properties": {
+ "data": {
+ "description": "Data for running a historical job request.",
+ "properties": {
+ "attributes": {
+ "description": "Run a historical job request.",
+ "properties": {
+ "fromRule": {
+ "description": "Definition of a historical job based on a security monitoring rule.",
+ "properties": {
+ "caseIndex": {
+ "description": "Index of the rule case applied by the job.",
+ "example": 0,
+ "format": "int32",
+ "maximum": 9,
+ "type": "integer"
+ },
+ "from": {
+ "description": "Starting time of data analyzed by the job.",
+ "example": 1729843470000,
+ "format": "int64",
+ "type": "integer"
+ },
+ "id": {
+ "description": "ID of the detection rule used to create the job.",
+ "example": "abc-def-ghi",
+ "type": "string"
+ },
+ "index": {
+ "description": "Index used to load the data.",
+ "example": "cloud_siem",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notifications sent when the job is completed.",
+ "example": [
+ "@sns-cloudtrail-results"
+ ],
+ "items": {
"type": "string"
},
- "warnings": {
- "description": "A list of schema validation warnings.",
- "items": {
- "description": "Schema validation warnings.",
- "properties": {
- "instance-location": {
- "description": "The warning instance location.",
- "type": "string"
- },
- "keyword-location": {
- "description": "The warning keyword location.",
- "type": "string"
- },
- "message": {
- "description": "The warning message.",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
- }
+ "type": "array"
},
- "type": "object"
- },
- "schema": {
- "description": "Service definition schema.",
- "oneOf": [
- {
- "deprecated": true,
- "description": "Deprecated - Service definition V1 for providing additional service metadata and integrations.",
- "properties": {
- "contact": {
- "description": "Contact information about the service.",
- "properties": {
- "email": {
- "description": "Service owner’s email.",
- "example": "contact@datadoghq.com",
- "type": "string"
- },
- "slack": {
- "description": "Service owner’s Slack channel.",
- "example": "https://yourcompany.slack.com/archives/channel123",
- "type": "string"
- }
- },
- "type": "object"
- },
- "extensions": {
- "additionalProperties": {},
- "description": "Extensions to V1 schema.",
- "example": {
- "myorg/extension": "extensionValue"
- },
- "type": "object"
- },
- "external-resources": {
- "description": "A list of external links related to the services.",
- "items": {
- "description": "Service's external links.",
- "properties": {
- "name": {
- "description": "Link name.",
- "example": "Runbook",
- "type": "string"
- },
- "type": {
- "description": "Link type.",
- "enum": [
- "doc",
- "wiki",
- "runbook",
- "url",
- "repo",
- "dashboard",
- "oncall",
- "code",
- "link"
- ],
- "example": "runbook",
- "type": "string",
- "x-enum-varnames": [
- "DOC",
- "WIKI",
- "RUNBOOK",
- "URL",
- "REPO",
- "DASHBOARD",
- "ONCALL",
- "CODE",
- "LINK"
- ]
- },
- "url": {
- "description": "Link URL.",
- "example": "https://my-runbook",
- "type": "string"
- }
- },
- "required": [
- "name",
- "type",
- "url"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "info": {
- "description": "Basic information about a service.",
- "properties": {
- "dd-service": {
- "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
- "example": "myservice",
- "type": "string"
- },
- "description": {
- "description": "A short description of the service.",
- "example": "A shopping cart service",
- "type": "string"
- },
- "display-name": {
- "description": "A friendly name of the service.",
- "example": "My Service",
- "type": "string"
- },
- "service-tier": {
- "description": "Service tier.",
- "example": "Tier 1",
- "type": "string"
- }
- },
- "required": [
- "dd-service"
- ],
- "type": "object"
- },
- "integrations": {
- "description": "Third party integrations that Datadog supports.",
- "properties": {
- "pagerduty": {
- "description": "PagerDuty service URL for the service.",
- "example": "https://my-org.pagerduty.com/service-directory/PMyService",
- "type": "string"
- }
- },
- "type": "object"
- },
- "org": {
- "description": "Org related information about the service.",
- "properties": {
- "application": {
- "description": "App feature this service supports.",
- "example": "E-Commerce",
- "type": "string"
- },
- "team": {
- "description": "Team that owns the service.",
- "example": "my-team",
- "type": "string"
- }
- },
- "type": "object"
- },
- "schema-version": {
- "default": "v1",
- "description": "Schema version being used.",
- "enum": [
- "v1"
- ],
- "example": "v1",
- "type": "string",
- "x-enum-varnames": [
- "V1"
- ]
- },
- "tags": {
- "description": "A set of custom tags.",
- "example": [
- "my:tag",
- "service:tag"
- ],
- "items": {
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "schema-version",
- "info"
- ],
- "type": "object"
- },
- {
- "description": "Service definition V2 for providing service metadata and integrations.",
- "properties": {
- "contacts": {
- "description": "A list of contacts related to the services.",
- "items": {
- "description": "Service owner's contacts information.",
- "oneOf": [
- {
- "description": "Service owner's email.",
- "properties": {
- "contact": {
- "description": "Contact value.",
- "example": "contact@datadoghq.com",
- "type": "string"
- },
- "name": {
- "description": "Contact email.",
- "example": "Team Email",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "email"
- ],
- "example": "email",
- "type": "string",
- "x-enum-varnames": [
- "EMAIL"
- ]
- }
- },
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- },
- {
- "description": "Service owner's Slack channel.",
- "properties": {
- "contact": {
- "description": "Slack Channel.",
- "example": "https://yourcompany.slack.com/archives/channel123",
- "type": "string"
- },
- "name": {
- "description": "Contact Slack.",
- "example": "Team Slack",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "slack"
- ],
- "example": "slack",
- "type": "string",
- "x-enum-varnames": [
- "SLACK"
- ]
- }
- },
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- },
- {
- "description": "Service owner's Microsoft Teams.",
- "properties": {
- "contact": {
- "description": "Contact value.",
- "example": "https://teams.microsoft.com/myteam",
- "type": "string"
- },
- "name": {
- "description": "Contact Microsoft Teams.",
- "example": "My team channel",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "microsoft-teams"
- ],
- "example": "microsoft-teams",
- "type": "string",
- "x-enum-varnames": [
- "MICROSOFT_TEAMS"
- ]
- }
- },
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- }
- ]
- },
- "type": "array"
- },
- "dd-service": {
- "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
- "example": "my-service",
- "type": "string"
- },
- "dd-team": {
- "description": "Experimental feature. A Team handle that matches a Team in the Datadog Teams product.",
- "example": "my-team",
- "type": "string"
- },
- "docs": {
- "description": "A list of documentation related to the services.",
- "items": {
- "description": "Service documents.",
- "properties": {
- "name": {
- "description": "Document name.",
- "example": "Architecture",
- "type": "string"
- },
- "provider": {
- "description": "Document provider.",
- "example": "google drive",
- "type": "string"
- },
- "url": {
- "description": "Document URL.",
- "example": "https://gdrive/mydoc",
- "type": "string"
- }
- },
- "required": [
- "name",
- "url"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "extensions": {
- "additionalProperties": {},
- "description": "Extensions to V2 schema.",
- "example": {
- "myorg/extension": "extensionValue"
- },
- "type": "object"
- },
- "integrations": {
- "description": "Third party integrations that Datadog supports.",
- "properties": {
- "opsgenie": {
- "description": "Opsgenie integration for the service.",
- "properties": {
- "region": {
- "description": "Opsgenie instance region.",
- "enum": [
- "US",
- "EU"
- ],
- "example": "US",
- "type": "string",
- "x-enum-varnames": [
- "US",
- "EU"
- ]
- },
- "service-url": {
- "description": "Opsgenie service url.",
- "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
- "type": "string"
- }
- },
- "required": [
- "service-url"
- ],
- "type": "object"
- },
- "pagerduty": {
- "description": "PagerDuty service URL for the service.",
- "example": "https://my-org.pagerduty.com/service-directory/PMyService",
- "type": "string"
- }
- },
- "type": "object"
- },
- "links": {
- "description": "A list of links related to the services.",
- "items": {
- "description": "Service's external links.",
- "properties": {
- "name": {
- "description": "Link name.",
- "example": "Runbook",
- "type": "string"
- },
- "type": {
- "description": "Link type.",
- "enum": [
- "doc",
- "wiki",
- "runbook",
- "url",
- "repo",
- "dashboard",
- "oncall",
- "code",
- "link"
- ],
- "example": "runbook",
- "type": "string",
- "x-enum-varnames": [
- "DOC",
- "WIKI",
- "RUNBOOK",
- "URL",
- "REPO",
- "DASHBOARD",
- "ONCALL",
- "CODE",
- "LINK"
- ]
- },
- "url": {
- "description": "Link URL.",
- "example": "https://my-runbook",
- "type": "string"
- }
- },
- "required": [
- "name",
- "type",
- "url"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "repos": {
- "description": "A list of code repositories related to the services.",
- "items": {
- "description": "Service code repositories.",
- "properties": {
- "name": {
- "description": "Repository name.",
- "example": "Source Code",
- "type": "string"
- },
- "provider": {
- "description": "Repository provider.",
- "example": "GitHub",
- "type": "string"
- },
- "url": {
- "description": "Repository URL.",
- "example": "https://github.com/DataDog/schema",
- "type": "string"
- }
- },
- "required": [
- "name",
- "url"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "schema-version": {
- "default": "v2",
- "description": "Schema version being used.",
- "enum": [
- "v2"
- ],
- "example": "v2",
- "type": "string",
- "x-enum-varnames": [
- "V2"
- ]
- },
- "tags": {
- "description": "A set of custom tags.",
- "example": [
- "my:tag",
- "service:tag"
- ],
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "team": {
- "description": "Team that owns the service.",
- "example": "my-team",
- "type": "string"
- }
- },
- "required": [
- "schema-version",
- "dd-service"
- ],
- "type": "object"
- },
- {
- "description": "Service definition v2.1 for providing service metadata and integrations.",
- "properties": {
- "application": {
- "description": "Identifier for a group of related services serving a product feature, which the service is a part of.",
- "example": "my-app",
- "type": "string"
- },
- "contacts": {
- "description": "A list of contacts related to the services.",
- "items": {
- "description": "Service owner's contacts information.",
- "oneOf": [
- {
- "description": "Service owner's email.",
- "properties": {
- "contact": {
- "description": "Contact value.",
- "example": "contact@datadoghq.com",
- "type": "string"
- },
- "name": {
- "description": "Contact email.",
- "example": "Team Email",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "email"
- ],
- "example": "email",
- "type": "string",
- "x-enum-varnames": [
- "EMAIL"
- ]
- }
- },
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- },
- {
- "description": "Service owner's Slack channel.",
- "properties": {
- "contact": {
- "description": "Slack Channel.",
- "example": "https://yourcompany.slack.com/archives/channel123",
- "type": "string"
- },
- "name": {
- "description": "Contact Slack.",
- "example": "Team Slack",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "slack"
- ],
- "example": "slack",
- "type": "string",
- "x-enum-varnames": [
- "SLACK"
- ]
- }
- },
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- },
- {
- "description": "Service owner's Microsoft Teams.",
- "properties": {
- "contact": {
- "description": "Contact value.",
- "example": "https://teams.microsoft.com/myteam",
- "type": "string"
- },
- "name": {
- "description": "Contact Microsoft Teams.",
- "example": "My team channel",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "microsoft-teams"
- ],
- "example": "microsoft-teams",
- "type": "string",
- "x-enum-varnames": [
- "MICROSOFT_TEAMS"
- ]
- }
- },
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- }
- ]
- },
- "type": "array"
- },
- "dd-service": {
- "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
- "example": "my-service",
- "type": "string"
- },
- "description": {
- "description": "A short description of the service.",
- "example": "My service description",
- "type": "string"
- },
- "extensions": {
- "additionalProperties": {},
- "description": "Extensions to v2.1 schema.",
- "example": {
- "myorg/extension": "extensionValue"
- },
- "type": "object"
- },
- "integrations": {
- "description": "Third party integrations that Datadog supports.",
- "properties": {
- "opsgenie": {
- "description": "Opsgenie integration for the service.",
- "properties": {
- "region": {
- "description": "Opsgenie instance region.",
- "enum": [
- "US",
- "EU"
- ],
- "example": "US",
- "type": "string",
- "x-enum-varnames": [
- "US",
- "EU"
- ]
- },
- "service-url": {
- "description": "Opsgenie service url.",
- "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
- "type": "string"
- }
- },
- "required": [
- "service-url"
- ],
- "type": "object"
- },
- "pagerduty": {
- "description": "PagerDuty integration for the service.",
- "properties": {
- "service-url": {
- "description": "PagerDuty service url.",
- "example": "https://my-org.pagerduty.com/service-directory/PMyService",
- "type": "string"
- }
- },
- "type": "object",
- "x-ignore-duplicate-object": true
- }
- },
- "type": "object"
- },
- "lifecycle": {
- "description": "The current life cycle phase of the service.",
- "example": "sandbox",
+ "to": {
+ "description": "Ending time of data analyzed by the job.",
+ "example": 1729847070000,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ "required": [
+ "id",
+ "from",
+ "to",
+ "index",
+ "caseIndex"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "description": "Request ID.",
+ "type": "string"
+ },
+ "jobDefinition": {
+ "description": "Definition of a historical job.",
+ "properties": {
+ "calculatedFields": {
+ "description": "Calculated fields.",
+ "items": {
+ "description": "Calculated field.",
+ "properties": {
+ "expression": {
+ "description": "Expression.",
+ "example": "@request_end_timestamp - @request_start_timestamp",
"type": "string"
},
- "links": {
- "description": "A list of links related to the services.",
+ "name": {
+ "description": "Field name.",
+ "example": "response_time",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "expression"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "cases": {
+ "description": "Cases used for generating job results.",
+ "items": {
+ "description": "Case when signal is generated.",
+ "properties": {
+ "actions": {
+ "description": "Action to perform for each rule case.",
"items": {
- "description": "Service's external links.",
+ "description": "Action to perform when a signal is triggered. Only available for Application Security rule type.",
"properties": {
- "name": {
- "description": "Link name.",
- "example": "Runbook",
- "type": "string"
- },
- "provider": {
- "description": "Link provider.",
- "example": "Github",
- "type": "string"
+ "options": {
+ "description": "Options for the rule action",
+ "properties": {
+ "duration": {
+ "description": "Duration of the action in seconds. 0 indicates no expiration.",
+ "example": 0,
+ "format": "int64",
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "type": "object"
},
"type": {
- "description": "Link type.",
+ "description": "The action type.",
"enum": [
- "doc",
- "repo",
- "runbook",
- "dashboard",
- "other"
+ "block_ip",
+ "block_user"
],
- "example": "runbook",
"type": "string",
"x-enum-varnames": [
- "DOC",
- "REPO",
- "RUNBOOK",
- "DASHBOARD",
- "OTHER"
+ "BLOCK_IP",
+ "BLOCK_USER"
]
- },
- "url": {
- "description": "Link URL.",
- "example": "https://my-runbook",
- "type": "string"
}
},
- "required": [
- "name",
- "type",
- "url"
- ],
"type": "object"
},
"type": "array"
},
- "schema-version": {
- "default": "v2.1",
- "description": "Schema version being used.",
- "enum": [
- "v2.1"
- ],
- "example": "v2.1",
- "type": "string",
- "x-enum-varnames": [
- "V2_1"
- ]
+ "condition": {
+ "description": "A case contains logical operations (`>`,`>=`, `&&`, `||`) to determine if a signal should be generated\nbased on the event counts in the previously defined queries.",
+ "type": "string"
},
- "tags": {
- "description": "A set of custom tags.",
- "example": [
- "my:tag",
- "service:tag"
- ],
+ "name": {
+ "description": "Name of the case.",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notification targets.",
"items": {
+ "description": "Notification.",
"type": "string"
},
"type": "array"
},
- "team": {
- "description": "Team that owns the service. It is used to locate a team defined in Datadog Teams if it exists.",
- "example": "my-team",
- "type": "string"
- },
- "tier": {
- "description": "Importance of the service.",
- "example": "High",
- "type": "string"
+ "status": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
}
},
"required": [
- "schema-version",
- "dd-service"
+ "status"
],
"type": "object"
},
- {
- "description": "Service definition v2.2 for providing service metadata and integrations.",
- "properties": {
- "application": {
- "description": "Identifier for a group of related services serving a product feature, which the service is a part of.",
- "example": "my-app",
- "type": "string"
+ "type": "array"
+ },
+ "from": {
+ "description": "Starting time of data analyzed by the job.",
+ "example": 1729843470000,
+ "format": "int64",
+ "type": "integer"
+ },
+ "groupSignalsBy": {
+ "description": "Additional grouping to perform on top of the existing groups in the query section. Must be a subset of the existing groups.",
+ "example": [
+ "service"
+ ],
+ "items": {
+ "description": "Field to group by.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "index": {
+ "description": "Index used to load the data.",
+ "example": "cloud_siem",
+ "type": "string"
+ },
+ "message": {
+ "description": "Message for generated results.",
+ "example": "A large number of failed login attempts.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Job name.",
+ "example": "Excessive number of failed attempts.",
+ "type": "string"
+ },
+ "options": {
+ "description": "Job options.",
+ "properties": {
+ "detectionMethod": {
+ "description": "The detection method.",
+ "enum": [
+ "threshold",
+ "new_value",
+ "anomaly_detection",
+ "impossible_travel",
+ "hardcoded",
+ "third_party",
+ "anomaly_threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "THRESHOLD",
+ "NEW_VALUE",
+ "ANOMALY_DETECTION",
+ "IMPOSSIBLE_TRAVEL",
+ "HARDCODED",
+ "THIRD_PARTY",
+ "ANOMALY_THRESHOLD"
+ ]
+ },
+ "evaluationWindow": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS"
+ ]
+ },
+ "impossibleTravelOptions": {
+ "description": "Options on impossible travel detection method.",
+ "properties": {
+ "baselineUserLocations": {
+ "description": "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.",
+ "example": true,
+ "type": "boolean"
+ }
},
- "ci-pipeline-fingerprints": {
- "description": "A set of CI fingerprints.",
- "example": [
- "j88xdEy0J5lc",
- "eZ7LMljCk8vo"
- ],
- "items": {
- "type": "string"
+ "type": "object"
+ },
+ "keepAlive": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS"
+ ]
+ },
+ "maxSignalDuration": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600,
+ 43200,
+ 86400
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS",
+ "TWELVE_HOURS",
+ "ONE_DAY"
+ ]
+ },
+ "newValueOptions": {
+ "description": "Options on new value detection method.",
+ "properties": {
+ "forgetAfter": {
+ "description": "The duration in days after which a learned value is forgotten.",
+ "enum": [
+ 1,
+ 2,
+ 7,
+ 14,
+ 21,
+ 28
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ONE_DAY",
+ "TWO_DAYS",
+ "ONE_WEEK",
+ "TWO_WEEKS",
+ "THREE_WEEKS",
+ "FOUR_WEEKS"
+ ]
},
- "type": "array"
- },
- "contacts": {
- "description": "A list of contacts related to the services.",
- "items": {
- "description": "Service owner's contacts information.",
- "properties": {
- "contact": {
- "description": "Contact value.",
- "example": "https://teams.microsoft.com/myteam",
- "type": "string"
- },
- "name": {
- "description": "Contact Name.",
- "example": "My team channel",
- "type": "string"
- },
- "type": {
- "description": "Contact type. Datadog recognizes the following types: `email`, `slack`, and `microsoft-teams`.",
- "example": "slack",
- "type": "string"
- }
- },
- "required": [
- "type",
- "contact"
+ "learningDuration": {
+ "default": 0,
+ "description": "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.",
+ "enum": [
+ 0,
+ 1,
+ 7
],
- "type": "object"
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_DAYS",
+ "ONE_DAY",
+ "SEVEN_DAYS"
+ ]
},
- "type": "array"
- },
- "dd-service": {
- "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
- "example": "my-service",
- "type": "string"
- },
- "description": {
- "description": "A short description of the service.",
- "example": "My service description",
- "type": "string"
- },
- "extensions": {
- "additionalProperties": {},
- "description": "Extensions to v2.2 schema.",
- "example": {
- "myorg/extension": "extensionValue"
+ "learningMethod": {
+ "default": "duration",
+ "description": "The learning method used to determine when signals should be generated for values that weren't learned.",
+ "enum": [
+ "duration",
+ "threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "DURATION",
+ "THRESHOLD"
+ ]
},
- "type": "object"
+ "learningThreshold": {
+ "default": 0,
+ "description": "A number of occurrences after which signals will be generated for values that weren't learned.",
+ "enum": [
+ 0,
+ 1
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_OCCURRENCES",
+ "ONE_OCCURRENCE"
+ ]
+ }
},
- "integrations": {
- "description": "Third party integrations that Datadog supports.",
- "properties": {
- "opsgenie": {
- "description": "Opsgenie integration for the service.",
+ "type": "object"
+ },
+ "thirdPartyRuleOptions": {
+ "description": "Options on third party detection method.",
+ "properties": {
+ "defaultNotifications": {
+ "description": "Notification targets for the logs that do not correspond to any of the cases.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "defaultStatus": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ },
+ "rootQueries": {
+ "description": "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.",
+ "items": {
+ "description": "A query to be combined with the third party case query.",
"properties": {
- "region": {
- "description": "Opsgenie instance region.",
- "enum": [
- "US",
- "EU"
- ],
- "example": "US",
- "type": "string",
- "x-enum-varnames": [
- "US",
- "EU"
- ]
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
},
- "service-url": {
- "description": "Opsgenie service url.",
- "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
+ "query": {
+ "description": "Query to run on logs.",
+ "example": "source:cloudtrail",
"type": "string"
}
},
- "required": [
- "service-url"
- ],
"type": "object"
},
- "pagerduty": {
- "description": "PagerDuty integration for the service.",
- "properties": {
- "service-url": {
- "description": "PagerDuty service url.",
- "example": "https://my-org.pagerduty.com/service-directory/PMyService",
- "type": "string"
- }
- },
- "type": "object",
- "x-ignore-duplicate-object": true
- }
+ "type": "array"
},
- "type": "object"
+ "signalTitleTemplate": {
+ "description": "A template for the signal title; if omitted, the title is generated based on the case name.",
+ "type": "string"
+ }
},
- "languages": {
- "description": "The service's programming language. Datadog recognizes the following languages: `dotnet`, `go`, `java`, `js`, `php`, `python`, `ruby`, and `c++`.",
- "example": [
- "dotnet",
- "go",
- "java",
- "js",
- "php",
- "python",
- "ruby",
- "c++"
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "queries": {
+ "description": "Queries for selecting logs analyzed by the job.",
+ "items": {
+ "description": "Query for selecting logs analyzed by the historical job.",
+ "properties": {
+ "aggregation": {
+ "description": "The aggregation type.",
+ "enum": [
+ "count",
+ "cardinality",
+ "sum",
+ "max",
+ "new_value",
+ "geo_data",
+ "event_count",
+ "none"
],
+ "type": "string",
+ "x-enum-varnames": [
+ "COUNT",
+ "CARDINALITY",
+ "SUM",
+ "MAX",
+ "NEW_VALUE",
+ "GEO_DATA",
+ "EVENT_COUNT",
+ "NONE"
+ ]
+ },
+ "distinctFields": {
+ "description": "Field for which the cardinality is measured. Sent as an array.",
"items": {
+ "description": "Field.",
"type": "string"
},
"type": "array"
},
- "lifecycle": {
- "description": "The current life cycle phase of the service.",
- "example": "sandbox",
- "type": "string"
- },
- "links": {
- "description": "A list of links related to the services.",
+ "groupByFields": {
+ "description": "Fields to group by.",
"items": {
- "description": "Service's external links.",
- "properties": {
- "name": {
- "description": "Link name.",
- "example": "Runbook",
- "type": "string"
- },
- "provider": {
- "description": "Link provider.",
- "example": "Github",
- "type": "string"
- },
- "type": {
- "description": "Link type. Datadog recognizes the following types: `runbook`, `doc`, `repo`, `dashboard`, and `other`.",
- "example": "runbook",
- "type": "string"
- },
- "url": {
- "description": "Link URL.",
- "example": "https://my-runbook",
- "type": "string"
- }
- },
- "required": [
- "name",
- "type",
- "url"
- ],
- "type": "object"
+ "description": "Field.",
+ "type": "string"
},
"type": "array"
},
- "schema-version": {
- "default": "v2.2",
- "description": "Schema version being used.",
- "enum": [
- "v2.2"
- ],
- "example": "v2.2",
- "type": "string",
- "x-enum-varnames": [
- "V2_2"
- ]
+ "hasOptionalGroupByFields": {
+ "description": "When false, events without a group-by value are ignored by the query. When true, events with missing group-by fields are processed with `N/A`, replacing the missing values.",
+ "example": false,
+ "readOnly": true,
+ "type": "boolean"
},
- "tags": {
- "description": "A set of custom tags.",
- "example": [
- "my:tag",
- "service:tag"
- ],
+ "metrics": {
+ "description": "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.",
"items": {
+ "description": "Field.",
"type": "string"
},
"type": "array"
},
- "team": {
- "description": "Team that owns the service. It is used to locate a team defined in Datadog Teams if it exists.",
- "example": "my-team",
+ "name": {
+ "description": "Name of the query.",
"type": "string"
},
- "tier": {
- "description": "Importance of the service.",
- "example": "High",
+ "query": {
+ "description": "Query to run on logs.",
+ "example": "a > 3",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "referenceTables": {
+ "description": "Reference tables used in the queries.",
+ "items": {
+ "description": "Reference tables used in the queries.",
+ "properties": {
+ "checkPresence": {
+ "description": "Whether to include or exclude the matched values.",
+ "type": "boolean"
+ },
+ "columnName": {
+ "description": "The name of the column in the reference table.",
"type": "string"
},
- "type": {
- "description": "The type of service.",
+ "logFieldPath": {
+ "description": "The field in the log to match against the reference table.",
+ "type": "string"
+ },
+ "ruleQueryName": {
+ "description": "The name of the query to apply the reference table to.",
+ "type": "string"
+ },
+ "tableName": {
+ "description": "The name of the reference table.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "tags": {
+ "description": "Tags for generated signals.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "thirdPartyCases": {
+ "description": "Cases for generating results from third-party detection method. Only available for third-party detection method.",
+ "example": [],
+ "items": {
+ "description": "Case when a signal is generated by a third party rule.",
+ "properties": {
+ "name": {
+ "description": "Name of the case.",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notification targets for each case.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "query": {
+ "description": "A query to map a third party event to this case.",
+ "type": "string"
+ },
+ "status": {
+ "description": "Severity of the Security Signal.",
"enum": [
- "web",
- "db",
- "cache",
- "function",
- "browser",
- "mobile",
- "custom"
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
],
- "example": "web",
+ "example": "critical",
"type": "string",
"x-enum-varnames": [
- "WEB",
- "DB",
- "CACHE",
- "FUNCTION",
- "BROSWER",
- "MOBILE",
- "CUSTOM"
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
]
}
},
"required": [
- "schema-version",
- "dd-service"
+ "status"
],
"type": "object"
- }
- ]
- }
+ },
+ "type": "array"
+ },
+ "to": {
+ "description": "Ending time of data analyzed by the job.",
+ "example": 1729847070000,
+ "format": "int64",
+ "type": "integer"
+ },
+ "type": {
+ "description": "Job type.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "from",
+ "to",
+ "index",
+ "name",
+ "cases",
+ "queries",
+ "message"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "description": "Type of data.",
+ "enum": [
+ "historicalDetectionsJobCreate"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "HISTORICALDETECTIONSJOBCREATE"
+ ]
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Run a historical job response.",
+ "properties": {
+ "data": {
+ "description": "The definition of `JobCreateResponseData` object.",
+ "properties": {
+ "id": {
+ "description": "ID of the created job.",
+ "type": "string"
+ },
+ "type": {
+ "description": "Type of payload.",
+ "enum": [
+ "historicalDetectionsJob"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "HISTORICALDETECTIONSJOB"
+ ]
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "Status created"
+ },
+ "400": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Bad Request"
+ },
+ "401": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Concurrent Modification"
+ },
+ "403": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Not Authorized"
+ },
+ "404": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Not Found"
+ },
+ "429": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Too many requests"
+ }
+ },
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
+ },
+ {
+ "AuthZ": [
+ "security_monitoring_rules_write"
+ ]
+ }
+ ],
+ "summary": "Run a historical job",
+ "tags": [
+ "Security Monitoring"
+ ],
+ "x-codegen-request-body-name": "body",
+ "x-given": {
+ "historical_job": {
+ "parameters": [
+ {
+ "name": "body",
+ "value": "{\n \"data\": {\n \"type\": \"historicalDetectionsJobCreate\",\n \"attributes\": {\n \"jobDefinition\": {\n \"type\": \"log_detection\",\n \"name\": \"Excessive number of failed attempts.\",\n \"queries\": [\n {\n \"query\": \"source:non_existing_src_weekend\",\n \"aggregation\": \"count\",\n \"groupByFields\": [],\n \"distinctFields\": []\n }\n ],\n \"cases\": [\n {\n \"name\": \"Condition 1\",\n \"status\": \"info\",\n \"notifications\": [],\n \"condition\": \"a > 1\"\n }\n ],\n \"options\": {\n \"keepAlive\": 3600,\n \"maxSignalDuration\": 86400,\n \"evaluationWindow\": 900\n },\n \"message\": \"A large number of failed login attempts.\",\n \"tags\": [],\n \"from\": 1730387522611,\n \"to\": 1730387532611,\n \"index\": \"main\"\n }\n }\n }\n}"
+ }
+ ],
+ "step": "there is a valid \"historical_job\" in the system"
+ }
+ },
+ "x-menu-order": 19,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "security_monitoring_rules_write"
+ ]
+ },
+ "x-undo": {
+ "type": "idempotent"
+ },
+ "x-unstable": "**Note**: This endpoint is in beta and may be subject to changes.\nPlease check the documentation regularly for updates."
+ }
+ },
+ "/api/v2/siem-historical-detections/jobs/signal_convert": {
+ "post": {
+ "description": "Convert a job result to a signal.",
+ "operationId": "ConvertJobResultToSignal",
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Request for converting historical job results to signals.",
+ "properties": {
+ "data": {
+ "description": "Data for converting historical job results to signals.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes for converting historical job results to signals.",
+ "properties": {
+ "id": {
+ "description": "Request ID.",
+ "type": "string"
},
- "type": "object"
- },
- "id": {
- "description": "Service definition id.",
- "type": "string"
+ "jobResultIds": {
+ "description": "Job result IDs.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "notifications": {
+ "description": "Notifications sent.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "signalMessage": {
+ "description": "Message of generated signals.",
+ "example": "A large number of failed login attempts.",
+ "type": "string"
+ },
+ "signalSeverity": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ }
},
- "type": {
- "description": "Service definition type.",
- "type": "string"
- }
+ "required": [
+ "jobResultIds",
+ "signalSeverity",
+ "signalMessage",
+ "notifications"
+ ],
+ "type": "object"
},
- "type": "object"
- }
- },
- "type": "object"
- }
+ "type": {
+ "description": "Type of payload.",
+ "enum": [
+ "historicalDetectionsJobResultSignalConversion"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "HISTORICALDETECTIONSJOBRESULTSIGNALCONVERSION"
+ ]
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
}
- },
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "204": {
"description": "OK"
},
"400": {
@@ -384681,7 +408649,7 @@
},
"description": "Bad Request"
},
- "403": {
+ "401": {
"content": {
"application/json": {
"schema": {
@@ -384707,9 +408675,9 @@
}
}
},
- "description": "Forbidden"
+ "description": "Concurrent Modification"
},
- "404": {
+ "403": {
"content": {
"application/json": {
"schema": {
@@ -384735,9 +408703,9 @@
}
}
},
- "description": "Not Found"
+ "description": "Not Authorized"
},
- "409": {
+ "404": {
"content": {
"application/json": {
"schema": {
@@ -384763,7 +408731,7 @@
}
}
},
- "description": "Conflict"
+ "description": "Not Found"
},
"429": {
"content": {
@@ -384794,43 +408762,33 @@
"description": "Too many requests"
}
},
- "security": [
- {
- "apiKeyAuth": [],
- "appKeyAuth": []
- },
- {
- "AuthZ": [
- "apm_service_catalog_read"
- ]
- }
- ],
- "summary": "Get a single service definition",
+ "summary": "Convert a job result to a signal",
"tags": [
- "Service Definition"
+ "Security Monitoring"
],
- "x-menu-order": 3,
+ "x-codegen-request-body-name": "body",
+ "x-menu-order": 24,
"x-permission": {
"operator": "OR",
"permissions": [
- "apm_service_catalog_read"
+ "security_monitoring_signals_write"
]
},
"x-undo": {
- "type": "safe"
- }
+ "type": "idempotent"
+ },
+ "x-unstable": "**Note**: This endpoint is in beta and may be subject to changes.\nPlease check the documentation regularly for updates."
}
},
- "/api/v2/services/{service_id}": {
+ "/api/v2/siem-historical-detections/jobs/{job_id}": {
"delete": {
- "deprecated": true,
- "description": "Deletes an existing incident service.",
- "operationId": "DeleteIncidentService",
+ "description": "Delete an existing job.",
+ "operationId": "DeleteHistoricalJob",
"parameters": [
{
- "description": "The ID of the incident service.",
+ "description": "The ID of the job.",
"in": "path",
- "name": "service_id",
+ "name": "job_id",
"required": true,
"schema": {
"type": "string"
@@ -384895,7 +408853,7 @@
}
}
},
- "description": "Unauthorized"
+ "description": "Concurrent Modification"
},
"403": {
"content": {
@@ -384923,7 +408881,7 @@
}
}
},
- "description": "Forbidden"
+ "description": "Not Authorized"
},
"404": {
"content": {
@@ -384953,6 +408911,34 @@
},
"description": "Not Found"
},
+ "409": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Conflict"
+ },
"429": {
"content": {
"application/json": {
@@ -384988,58 +408974,31 @@
"appKeyAuth": []
},
{
- "AuthZ": [
- "incident_settings_write"
- ]
+ "AuthZ": []
}
],
- "summary": "Delete an existing incident service",
+ "summary": "Delete an existing job",
"tags": [
- "Incident Services"
+ "Security Monitoring"
],
- "x-menu-order": 2,
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "incident_settings_write"
- ]
- },
+ "x-menu-order": 23,
"x-undo": {
"type": "idempotent"
},
- "x-unstable": "**Note**: This endpoint is deprecated."
+ "x-unstable": "**Note**: This endpoint is in beta and may be subject to changes.\nPlease check the documentation regularly for updates."
},
"get": {
- "deprecated": true,
- "description": "Get details of an incident service. If the `include[users]` query parameter is provided,\nthe included attribute will contain the users related to these incident services.",
- "operationId": "GetIncidentService",
+ "description": "Get a job's details.",
+ "operationId": "GetHistoricalJob",
"parameters": [
{
- "description": "The ID of the incident service.",
+ "description": "The ID of the job.",
"in": "path",
- "name": "service_id",
+ "name": "job_id",
"required": true,
"schema": {
"type": "string"
}
- },
- {
- "description": "Specifies which types of related objects should be included in the response.",
- "in": "query",
- "name": "include",
- "required": false,
- "schema": {
- "description": "Object related to an incident.",
- "enum": [
- "users",
- "attachments"
- ],
- "type": "string",
- "x-enum-varnames": [
- "USERS",
- "ATTACHMENTS"
- ]
- }
}
],
"responses": {
@@ -385047,414 +409006,806 @@
"content": {
"application/json": {
"schema": {
- "description": "Response with an incident service payload.",
+ "description": "Historical job response.",
"properties": {
"data": {
- "description": "Incident Service data from responses.",
+ "description": "Historical job response data.",
"properties": {
"attributes": {
- "description": "The incident service's attributes from a response.",
+ "description": "Historical job attributes.",
"properties": {
- "created": {
- "description": "Timestamp of when the incident service was created.",
- "format": "date-time",
- "readOnly": true,
+ "createdAt": {
+ "description": "Time when the job was created.",
"type": "string"
},
- "modified": {
- "description": "Timestamp of when the incident service was modified.",
- "format": "date-time",
- "readOnly": true,
+ "createdByHandle": {
+ "description": "The handle of the user who created the job.",
"type": "string"
},
- "name": {
- "description": "Name of the incident service.",
- "example": "service name",
+ "createdByName": {
+ "description": "The name of the user who created the job.",
"type": "string"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "The incident service's ID.",
- "example": "00000000-0000-0000-0000-000000000000",
- "type": "string"
- },
- "relationships": {
- "description": "The incident service's relationships.",
- "properties": {
- "created_by": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
},
- "last_modified_by": {
- "description": "Relationship to user.",
+ "createdFromRuleId": {
+ "description": "ID of the rule used to create the job (if it is created from a rule).",
+ "type": "string"
+ },
+ "jobDefinition": {
+ "description": "Definition of a historical job.",
"properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- }
- },
- "readOnly": true,
- "type": "object"
- },
- "type": {
- "default": "services",
- "description": "Incident service resource type.",
- "enum": [
- "services"
- ],
- "example": "services",
- "type": "string",
- "x-enum-varnames": [
- "SERVICES"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- },
- "included": {
- "description": "Included objects from relationships.",
- "items": {
- "description": "An object related to an incident service which is present in the included payload.",
- "oneOf": [
- {
- "description": "User object returned by the API.",
- "properties": {
- "attributes": {
- "description": "Attributes of user object returned by the API.",
- "properties": {
- "created_at": {
- "description": "Creation time of the user.",
- "format": "date-time",
- "type": "string"
- },
- "disabled": {
- "description": "Whether the user is disabled.",
- "type": "boolean"
- },
- "email": {
- "description": "Email of the user.",
- "type": "string"
- },
- "handle": {
- "description": "Handle of the user.",
- "type": "string"
- },
- "icon": {
- "description": "URL of the user's icon.",
- "type": "string"
- },
- "mfa_enabled": {
- "description": "If user has MFA enabled.",
- "readOnly": true,
- "type": "boolean"
- },
- "modified_at": {
- "description": "Time that the user was last modified.",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "Name of the user.",
- "nullable": true,
- "type": "string"
- },
- "service_account": {
- "description": "Whether the user is a service account.",
- "type": "boolean"
- },
- "status": {
- "description": "Status of the user.",
- "type": "string"
- },
- "title": {
- "description": "Title of the user.",
- "nullable": true,
- "type": "string"
- },
- "verified": {
- "description": "Whether the user is verified.",
- "type": "boolean"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "ID of the user.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the user object returned by the API.",
- "properties": {
- "org": {
- "description": "Relationship to an organization.",
+ "calculatedFields": {
+ "description": "Calculated fields.",
+ "items": {
+ "description": "Calculated field.",
"properties": {
- "data": {
- "description": "Relationship to organization object.",
- "properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
- "type": "string"
- },
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object"
+ "expression": {
+ "description": "Expression.",
+ "example": "@request_end_timestamp - @request_start_timestamp",
+ "type": "string"
+ },
+ "name": {
+ "description": "Field name.",
+ "example": "response_time",
+ "type": "string"
}
},
"required": [
- "data"
+ "name",
+ "expression"
],
"type": "object"
},
- "other_orgs": {
- "description": "Relationship to organizations.",
+ "type": "array"
+ },
+ "cases": {
+ "description": "Cases used for generating job results.",
+ "items": {
+ "description": "Case when signal is generated.",
"properties": {
- "data": {
- "description": "Relationships to organization objects.",
- "example": [],
+ "actions": {
+ "description": "Action to perform for each rule case.",
"items": {
- "description": "Relationship to organization object.",
+ "description": "Action to perform when a signal is triggered. Only available for Application Security rule type.",
"properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
- "type": "string"
+ "options": {
+ "description": "Options for the rule action",
+ "properties": {
+ "duration": {
+ "description": "Duration of the action in seconds. 0 indicates no expiration.",
+ "example": 0,
+ "format": "int64",
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "type": "object"
},
"type": {
- "default": "orgs",
- "description": "Organizations resource type.",
+ "description": "The action type.",
"enum": [
- "orgs"
+ "block_ip",
+ "block_user"
],
- "example": "orgs",
"type": "string",
"x-enum-varnames": [
- "ORGS"
+ "BLOCK_IP",
+ "BLOCK_USER"
]
}
},
- "required": [
- "id",
- "type"
- ],
"type": "object"
},
"type": "array"
+ },
+ "condition": {
+ "description": "A case contains logical operations (`>`,`>=`, `&&`, `||`) to determine if a signal should be generated\nbased on the event counts in the previously defined queries.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the case.",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notification targets.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "status": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
}
},
"required": [
- "data"
+ "status"
],
"type": "object"
},
- "other_users": {
- "description": "Relationship to users.",
- "properties": {
- "data": {
- "description": "Relationships to user objects.",
- "example": [],
- "items": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
+ "type": "array"
+ },
+ "from": {
+ "description": "Starting time of data analyzed by the job.",
+ "example": 1729843470000,
+ "format": "int64",
+ "type": "integer"
+ },
+ "groupSignalsBy": {
+ "description": "Additional grouping to perform on top of the existing groups in the query section. Must be a subset of the existing groups.",
+ "example": [
+ "service"
+ ],
+ "items": {
+ "description": "Field to group by.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "index": {
+ "description": "Index used to load the data.",
+ "example": "cloud_siem",
+ "type": "string"
+ },
+ "message": {
+ "description": "Message for generated results.",
+ "example": "A large number of failed login attempts.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Job name.",
+ "example": "Excessive number of failed attempts.",
+ "type": "string"
+ },
+ "options": {
+ "description": "Job options.",
+ "properties": {
+ "detectionMethod": {
+ "description": "The detection method.",
+ "enum": [
+ "threshold",
+ "new_value",
+ "anomaly_detection",
+ "impossible_travel",
+ "hardcoded",
+ "third_party",
+ "anomaly_threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "THRESHOLD",
+ "NEW_VALUE",
+ "ANOMALY_DETECTION",
+ "IMPOSSIBLE_TRAVEL",
+ "HARDCODED",
+ "THIRD_PARTY",
+ "ANOMALY_THRESHOLD"
+ ]
+ },
+ "evaluationWindow": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS"
+ ]
+ },
+ "impossibleTravelOptions": {
+ "description": "Options on impossible travel detection method.",
+ "properties": {
+ "baselineUserLocations": {
+ "description": "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.",
+ "example": true,
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "keepAlive": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS"
+ ]
+ },
+ "maxSignalDuration": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600,
+ 43200,
+ 86400
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS",
+ "TWELVE_HOURS",
+ "ONE_DAY"
+ ]
+ },
+ "newValueOptions": {
+ "description": "Options on new value detection method.",
+ "properties": {
+ "forgetAfter": {
+ "description": "The duration in days after which a learned value is forgotten.",
+ "enum": [
+ 1,
+ 2,
+ 7,
+ 14,
+ 21,
+ 28
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ONE_DAY",
+ "TWO_DAYS",
+ "ONE_WEEK",
+ "TWO_WEEKS",
+ "THREE_WEEKS",
+ "FOUR_WEEKS"
+ ]
+ },
+ "learningDuration": {
+ "default": 0,
+ "description": "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.",
+ "enum": [
+ 0,
+ 1,
+ 7
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_DAYS",
+ "ONE_DAY",
+ "SEVEN_DAYS"
+ ]
+ },
+ "learningMethod": {
+ "default": "duration",
+ "description": "The learning method used to determine when signals should be generated for values that weren't learned.",
+ "enum": [
+ "duration",
+ "threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "DURATION",
+ "THRESHOLD"
+ ]
+ },
+ "learningThreshold": {
+ "default": 0,
+ "description": "A number of occurrences after which signals will be generated for values that weren't learned.",
+ "enum": [
+ 0,
+ 1
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_OCCURRENCES",
+ "ONE_OCCURRENCE"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "thirdPartyRuleOptions": {
+ "description": "Options on third party detection method.",
+ "properties": {
+ "defaultNotifications": {
+ "description": "Notification targets for the logs that do not correspond to any of the cases.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
},
- "required": [
- "id",
- "type"
+ "type": "array"
+ },
+ "defaultStatus": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ },
+ "rootQueries": {
+ "description": "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.",
+ "items": {
+ "description": "A query to be combined with the third party case query.",
+ "properties": {
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "query": {
+ "description": "Query to run on logs.",
+ "example": "source:cloudtrail",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "signalTitleTemplate": {
+ "description": "A template for the signal title; if omitted, the title is generated based on the case name.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "queries": {
+ "description": "Queries for selecting logs analyzed by the job.",
+ "items": {
+ "description": "Query for selecting logs analyzed by the historical job.",
+ "properties": {
+ "aggregation": {
+ "description": "The aggregation type.",
+ "enum": [
+ "count",
+ "cardinality",
+ "sum",
+ "max",
+ "new_value",
+ "geo_data",
+ "event_count",
+ "none"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "COUNT",
+ "CARDINALITY",
+ "SUM",
+ "MAX",
+ "NEW_VALUE",
+ "GEO_DATA",
+ "EVENT_COUNT",
+ "NONE"
+ ]
+ },
+ "distinctFields": {
+ "description": "Field for which the cardinality is measured. Sent as an array.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "hasOptionalGroupByFields": {
+ "description": "When false, events without a group-by value are ignored by the query. When true, events with missing group-by fields are processed with `N/A`, replacing the missing values.",
+ "example": false,
+ "readOnly": true,
+ "type": "boolean"
+ },
+ "metrics": {
+ "description": "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.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
},
"type": "array"
+ },
+ "name": {
+ "description": "Name of the query.",
+ "type": "string"
+ },
+ "query": {
+ "description": "Query to run on logs.",
+ "example": "a > 3",
+ "type": "string"
}
},
- "required": [
- "data"
- ],
"type": "object"
},
- "roles": {
- "description": "Relationship to roles.",
+ "type": "array"
+ },
+ "referenceTables": {
+ "description": "Reference tables used in the queries.",
+ "items": {
+ "description": "Reference tables used in the queries.",
"properties": {
- "data": {
- "description": "An array containing type and the unique identifier of a role.",
- "items": {
- "description": "Relationship to role object.",
- "properties": {
- "id": {
- "description": "The unique identifier of the role.",
- "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
- "type": "string"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "checkPresence": {
+ "description": "Whether to include or exclude the matched values.",
+ "type": "boolean"
+ },
+ "columnName": {
+ "description": "The name of the column in the reference table.",
+ "type": "string"
+ },
+ "logFieldPath": {
+ "description": "The field in the log to match against the reference table.",
+ "type": "string"
+ },
+ "ruleQueryName": {
+ "description": "The name of the query to apply the reference table to.",
+ "type": "string"
+ },
+ "tableName": {
+ "description": "The name of the reference table.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "tags": {
+ "description": "Tags for generated signals.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "thirdPartyCases": {
+ "description": "Cases for generating results from third-party detection method. Only available for third-party detection method.",
+ "example": [],
+ "items": {
+ "description": "Case when a signal is generated by a third party rule.",
+ "properties": {
+ "name": {
+ "description": "Name of the case.",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notification targets for each case.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
},
"type": "array"
+ },
+ "query": {
+ "description": "A query to map a third party event to this case.",
+ "type": "string"
+ },
+ "status": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
+ "required": [
+ "status"
+ ],
+ "type": "object"
+ },
+ "type": "array"
},
- "type": "object",
- "x-merge-override": {
- "properties": false
+ "to": {
+ "description": "Ending time of data analyzed by the job.",
+ "example": 1729847070000,
+ "format": "int64",
+ "type": "integer"
+ },
+ "type": {
+ "description": "Job type.",
+ "type": "string"
}
},
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
+ "required": [
+ "from",
+ "to",
+ "index",
+ "name",
+ "cases",
+ "queries",
+ "message"
+ ],
+ "type": "object"
},
- "type": "object",
- "x-merge-override": {
- "required": false
+ "jobName": {
+ "description": "Job name.",
+ "type": "string"
+ },
+ "jobStatus": {
+ "description": "Job status.",
+ "type": "string"
+ },
+ "modifiedAt": {
+ "description": "Last modification time of the job.",
+ "type": "string"
}
- }
- ]
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the job.",
+ "type": "string"
+ },
+ "type": {
+ "description": "Type of payload.",
+ "enum": [
+ "historicalDetectionsJob"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "HISTORICALDETECTIONSJOB"
+ ]
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "OK"
+ },
+ "400": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
},
- "readOnly": true,
"type": "array"
}
},
"required": [
- "data"
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Bad Request"
+ },
+ "403": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Not Authorized"
+ },
+ "404": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Not Found"
+ },
+ "429": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
],
"type": "object"
}
}
},
+ "description": "Too many requests"
+ }
+ },
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
+ },
+ {
+ "AuthZ": [
+ "security_monitoring_rules_read"
+ ]
+ }
+ ],
+ "summary": "Get a job's details",
+ "tags": [
+ "Security Monitoring"
+ ],
+ "x-menu-order": 21,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "security_monitoring_rules_read"
+ ]
+ },
+ "x-undo": {
+ "type": "safe"
+ },
+ "x-unstable": "**Note**: This endpoint is in beta and may be subject to changes.\nPlease check the documentation regularly for updates."
+ }
+ },
+ "/api/v2/siem-historical-detections/jobs/{job_id}/cancel": {
+ "patch": {
+ "description": "Cancel a historical job.",
+ "operationId": "CancelHistoricalJob",
+ "parameters": [
+ {
+ "description": "The ID of the job.",
+ "in": "path",
+ "name": "job_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "204": {
"description": "OK"
},
"400": {
@@ -385511,7 +409862,7 @@
}
}
},
- "description": "Unauthorized"
+ "description": "Concurrent Modification"
},
"403": {
"content": {
@@ -385539,7 +409890,7 @@
}
}
},
- "description": "Forbidden"
+ "description": "Not Authorized"
},
"404": {
"content": {
@@ -385569,6 +409920,34 @@
},
"description": "Not Found"
},
+ "409": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Conflict"
+ },
"429": {
"content": {
"application/json": {
@@ -385605,169 +409984,91 @@
},
{
"AuthZ": [
- "incident_read"
+ "security_monitoring_rules_write"
]
}
],
- "summary": "Get details of an incident service",
+ "summary": "Cancel a historical job",
"tags": [
- "Incident Services"
+ "Security Monitoring"
],
- "x-menu-order": 1,
+ "x-menu-order": 22,
"x-permission": {
"operator": "OR",
"permissions": [
- "incident_read"
+ "security_monitoring_rules_write"
]
},
"x-undo": {
- "type": "safe"
+ "type": "idempotent"
},
- "x-unstable": "**Note**: This endpoint is deprecated."
- },
- "patch": {
- "deprecated": true,
- "description": "Updates an existing incident service. Only provide the attributes which should be updated as this request is a partial update.",
- "operationId": "UpdateIncidentService",
- "parameters": [
- {
- "description": "The ID of the incident service.",
- "in": "path",
- "name": "service_id",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
+ "x-unstable": "**Note**: This endpoint is in beta and may be subject to changes.\nPlease check the documentation regularly for updates."
+ }
+ },
+ "/api/v2/slo/report": {
+ "post": {
+ "description": "Create a job to generate an SLO report. The report job is processed asynchronously and eventually results in a CSV report being available for download.\n\nCheck the status of the job and download the CSV report using the returned `report_id`.",
+ "operationId": "CreateSLOReportJob",
"requestBody": {
"content": {
"application/json": {
"schema": {
- "description": "Update request with an incident service payload.",
+ "description": "The SLO report request body.",
"properties": {
"data": {
- "description": "Incident Service payload for update requests.",
+ "description": "The data portion of the SLO report request.",
"properties": {
"attributes": {
- "description": "The incident service's attributes for an update request.",
+ "description": "The attributes portion of the SLO report request.",
"properties": {
- "name": {
- "description": "Name of the incident service.",
- "example": "an example service name",
+ "from_ts": {
+ "description": "The `from` timestamp for the report in epoch seconds.",
+ "example": 1690901870,
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The frequency at which report data is to be generated.",
+ "enum": [
+ "daily",
+ "weekly",
+ "monthly"
+ ],
+ "example": "weekly",
+ "type": "string",
+ "x-enum-varnames": [
+ "DAILY",
+ "WEEKLY",
+ "MONTHLY"
+ ]
+ },
+ "query": {
+ "description": "The query string used to filter SLO results. Some examples of queries include `service:` and `slo-name`.",
+ "example": "slo_type:metric",
"type": "string"
+ },
+ "timezone": {
+ "description": "The timezone used to determine the start and end of each interval. For example, weekly intervals start at 12am on Sunday in the specified timezone.",
+ "example": "America/New_York",
+ "type": "string"
+ },
+ "to_ts": {
+ "description": "The `to` timestamp for the report in epoch seconds.",
+ "example": 1706803070,
+ "format": "int64",
+ "type": "integer"
}
},
"required": [
- "name"
+ "query",
+ "from_ts",
+ "to_ts"
],
"type": "object"
- },
- "id": {
- "description": "The incident service's ID.",
- "example": "00000000-0000-0000-0000-000000000000",
- "type": "string"
- },
- "relationships": {
- "description": "The incident service's relationships.",
- "properties": {
- "created_by": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "last_modified_by": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- }
- },
- "readOnly": true,
- "type": "object"
- },
- "type": {
- "default": "services",
- "description": "Incident service resource type.",
- "enum": [
- "services"
- ],
- "example": "services",
- "type": "string",
- "x-enum-varnames": [
- "SERVICES"
- ]
}
},
"required": [
- "type"
+ "attributes"
],
"type": "object"
}
@@ -385779,7 +410080,7 @@
}
}
},
- "description": "Incident Service Payload.",
+ "description": "Create SLO report job request body.",
"required": true
},
"responses": {
@@ -385787,417 +410088,211 @@
"content": {
"application/json": {
"schema": {
- "description": "Response with an incident service payload.",
+ "description": "The SLO report response.",
"properties": {
"data": {
- "description": "Incident Service data from responses.",
+ "description": "The data portion of the SLO report response.",
"properties": {
- "attributes": {
- "description": "The incident service's attributes from a response.",
- "properties": {
- "created": {
- "description": "Timestamp of when the incident service was created.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified": {
- "description": "Timestamp of when the incident service was modified.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "name": {
- "description": "Name of the incident service.",
- "example": "service name",
- "type": "string"
- }
- },
- "type": "object"
- },
"id": {
- "description": "The incident service's ID.",
- "example": "00000000-0000-0000-0000-000000000000",
+ "description": "The ID of the report job.",
+ "example": "dc8d92aa-e0af-11ee-af21-1feeaccaa3a3",
"type": "string"
},
- "relationships": {
- "description": "The incident service's relationships.",
- "properties": {
- "created_by": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "last_modified_by": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- }
- },
- "readOnly": true,
- "type": "object"
- },
"type": {
- "default": "services",
- "description": "Incident service resource type.",
- "enum": [
- "services"
- ],
- "example": "services",
- "type": "string",
- "x-enum-varnames": [
- "SERVICES"
- ]
+ "description": "The type of ID.",
+ "example": "report_id",
+ "type": "string"
}
},
- "required": [
- "id",
- "type"
- ],
"type": "object"
- },
- "included": {
- "description": "Included objects from relationships.",
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "OK"
+ },
+ "400": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
"items": {
- "description": "An object related to an incident service which is present in the included payload.",
- "oneOf": [
- {
- "description": "User object returned by the API.",
- "properties": {
- "attributes": {
- "description": "Attributes of user object returned by the API.",
- "properties": {
- "created_at": {
- "description": "Creation time of the user.",
- "format": "date-time",
- "type": "string"
- },
- "disabled": {
- "description": "Whether the user is disabled.",
- "type": "boolean"
- },
- "email": {
- "description": "Email of the user.",
- "type": "string"
- },
- "handle": {
- "description": "Handle of the user.",
- "type": "string"
- },
- "icon": {
- "description": "URL of the user's icon.",
- "type": "string"
- },
- "mfa_enabled": {
- "description": "If user has MFA enabled.",
- "readOnly": true,
- "type": "boolean"
- },
- "modified_at": {
- "description": "Time that the user was last modified.",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "Name of the user.",
- "nullable": true,
- "type": "string"
- },
- "service_account": {
- "description": "Whether the user is a service account.",
- "type": "boolean"
- },
- "status": {
- "description": "Status of the user.",
- "type": "string"
- },
- "title": {
- "description": "Title of the user.",
- "nullable": true,
- "type": "string"
- },
- "verified": {
- "description": "Whether the user is verified.",
- "type": "boolean"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "ID of the user.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the user object returned by the API.",
- "properties": {
- "org": {
- "description": "Relationship to an organization.",
- "properties": {
- "data": {
- "description": "Relationship to organization object.",
- "properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
- "type": "string"
- },
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "other_orgs": {
- "description": "Relationship to organizations.",
- "properties": {
- "data": {
- "description": "Relationships to organization objects.",
- "example": [],
- "items": {
- "description": "Relationship to organization object.",
- "properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
- "type": "string"
- },
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- },
- "type": "array"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "other_users": {
- "description": "Relationship to users.",
- "properties": {
- "data": {
- "description": "Relationships to user objects.",
- "example": [],
- "items": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "roles": {
- "description": "Relationship to roles.",
- "properties": {
- "data": {
- "description": "An array containing type and the unique identifier of a role.",
- "items": {
- "description": "Relationship to role object.",
- "properties": {
- "id": {
- "description": "The unique identifier of the role.",
- "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
- "type": "string"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object",
- "x-merge-override": {
- "properties": false
- }
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- ]
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Bad Request"
+ },
+ "403": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Forbidden"
+ },
+ "429": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Too many requests"
+ }
+ },
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
+ },
+ {
+ "AuthZ": [
+ "slos_read"
+ ]
+ }
+ ],
+ "summary": "Create a new SLO report",
+ "tags": [
+ "Service Level Objectives"
+ ],
+ "x-codegen-request-body-name": "body",
+ "x-given": {
+ "report": {
+ "parameters": [
+ {
+ "name": "body",
+ "value": "{\n \"data\": {\n \"attributes\": {\n \"query\": \"slo_type:metric \\\"SLO Reporting Test\\\"\",\n \"interval\": \"monthly\",\n \"from_ts\": {{ timestamp(\"now - 21d\") }},\n \"to_ts\": {{ timestamp(\"now\") }}\n }\n }\n}"
+ }
+ ],
+ "step": "there is a valid \"report\" in the system"
+ }
+ },
+ "x-menu-order": 101,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "slos_read"
+ ]
+ },
+ "x-undo": {
+ "type": "safe"
+ },
+ "x-unstable": "**Note**: This feature is in private beta. To request access, use the request access form in the [Service Level Objectives](https://docs.datadoghq.com/service_management/service_level_objectives/#slo-csv-export) docs."
+ }
+ },
+ "/api/v2/slo/report/{report_id}/download": {
+ "get": {
+ "description": "Download an SLO report. This can only be performed after the report job has completed.\n\nReports are not guaranteed to exist indefinitely. Datadog recommends that you download the report as soon as it is available.",
+ "operationId": "GetSLOReport",
+ "parameters": [
+ {
+ "description": "The ID of the report job.",
+ "in": "path",
+ "name": "report_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "text/csv": {
+ "schema": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "OK"
+ },
+ "400": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
},
- "readOnly": true,
"type": "array"
}
},
"required": [
- "data"
+ "errors"
],
"type": "object"
}
}
},
- "description": "OK"
+ "description": "Bad Request"
},
- "400": {
+ "403": {
"content": {
"application/json": {
"schema": {
@@ -386223,9 +410318,9 @@
}
}
},
- "description": "Bad Request"
+ "description": "Forbidden"
},
- "401": {
+ "404": {
"content": {
"application/json": {
"schema": {
@@ -386251,7 +410346,154 @@
}
}
},
- "description": "Unauthorized"
+ "description": "Not Found"
+ },
+ "429": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Too many requests"
+ }
+ },
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
+ },
+ {
+ "AuthZ": [
+ "slos_read"
+ ]
+ }
+ ],
+ "summary": "Get SLO report",
+ "tags": [
+ "Service Level Objectives"
+ ],
+ "x-menu-order": 103,
+ "x-undo": {
+ "type": "safe"
+ },
+ "x-unstable": "**Note**: This feature is in private beta. To request access, use the request access form in the [Service Level Objectives](https://docs.datadoghq.com/service_management/service_level_objectives/#slo-csv-export) docs."
+ }
+ },
+ "/api/v2/slo/report/{report_id}/status": {
+ "get": {
+ "description": "Get the status of the SLO report job.",
+ "operationId": "GetSLOReportJobStatus",
+ "parameters": [
+ {
+ "description": "The ID of the report job.",
+ "in": "path",
+ "name": "report_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "The SLO report status response.",
+ "properties": {
+ "data": {
+ "description": "The data portion of the SLO report status response.",
+ "properties": {
+ "attributes": {
+ "description": "The attributes portion of the SLO report status response.",
+ "properties": {
+ "status": {
+ "description": "The status of the SLO report job.",
+ "enum": [
+ "in_progress",
+ "completed",
+ "completed_with_errors",
+ "failed"
+ ],
+ "example": "completed",
+ "type": "string",
+ "x-enum-varnames": [
+ "IN_PROGRESS",
+ "COMPLETED",
+ "COMPLETED_WITH_ERRORS",
+ "FAILED"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The ID of the report job.",
+ "example": "dc8d92aa-e0af-11ee-af21-1feeaccaa3a3",
+ "type": "string"
+ },
+ "type": {
+ "description": "The type of ID.",
+ "example": "report_id",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "OK"
+ },
+ "400": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Bad Request"
},
"403": {
"content": {
@@ -386345,715 +410587,418 @@
},
{
"AuthZ": [
- "incident_settings_write"
+ "slos_read"
]
}
],
- "summary": "Update an existing incident service",
+ "summary": "Get SLO report status",
"tags": [
- "Incident Services"
+ "Service Level Objectives"
],
- "x-codegen-request-body-name": "body",
- "x-menu-order": 3,
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "incident_settings_write"
- ]
- },
+ "x-menu-order": 102,
"x-undo": {
- "type": "idempotent"
+ "type": "safe"
},
- "x-unstable": "**Note**: This endpoint is deprecated."
+ "x-unstable": "**Note**: This feature is in private beta. To request access, use the request access form in the [Service Level Objectives](https://docs.datadoghq.com/service_management/service_level_objectives/#slo-csv-export) docs."
}
},
- "/api/v2/siem-historical-detections/jobs": {
- "get": {
- "description": "List historical jobs.",
- "operationId": "ListHistoricalJobs",
- "parameters": [
- {
- "description": "Size for a given page. The maximum allowed value is 100.",
- "in": "query",
- "name": "page[size]",
- "required": false,
- "schema": {
- "default": 10,
- "example": 10,
- "format": "int64",
- "type": "integer"
- }
- },
- {
- "description": "Specific page number to return.",
- "in": "query",
- "name": "page[number]",
- "required": false,
- "schema": {
- "default": 0,
- "example": 0,
- "format": "int64",
- "type": "integer"
- }
- },
- {
- "description": "The order of the jobs in results.",
- "example": "status",
- "in": "query",
- "name": "sort",
- "required": false,
- "schema": {
- "type": "string"
- }
- },
- {
- "description": "Query used to filter items from the fetched list.",
- "example": "security:attack status:high",
- "in": "query",
- "name": "filter[query]",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "description": "List of historical jobs.",
- "properties": {
- "data": {
- "description": "Array containing the list of historical jobs.",
- "items": {
- "description": "Historical job response data.",
+ "/api/v2/spans/analytics/aggregate": {
+ "post": {
+ "description": "The API endpoint to aggregate spans into buckets and compute metrics and timeseries.\nThis endpoint is rate limited to `300` requests per hour.",
+ "operationId": "AggregateSpans",
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "The object sent with the request to retrieve a list of aggregated spans from your organization.",
+ "properties": {
+ "data": {
+ "description": "The object containing the query content.",
+ "properties": {
+ "attributes": {
+ "description": "The object containing all the query parameters.",
"properties": {
- "attributes": {
- "description": "Historical job attributes.",
- "properties": {
- "createdAt": {
- "description": "Time when the job was created.",
- "type": "string"
+ "compute": {
+ "description": "The list of metrics or timeseries to compute for the retrieved buckets.",
+ "items": {
+ "description": "A compute rule to compute metrics or timeseries.",
+ "properties": {
+ "aggregation": {
+ "description": "An aggregation function.",
+ "enum": [
+ "count",
+ "cardinality",
+ "pc75",
+ "pc90",
+ "pc95",
+ "pc98",
+ "pc99",
+ "sum",
+ "min",
+ "max",
+ "avg",
+ "median"
+ ],
+ "example": "pc90",
+ "type": "string",
+ "x-enum-varnames": [
+ "COUNT",
+ "CARDINALITY",
+ "PERCENTILE_75",
+ "PERCENTILE_90",
+ "PERCENTILE_95",
+ "PERCENTILE_98",
+ "PERCENTILE_99",
+ "SUM",
+ "MIN",
+ "MAX",
+ "AVG",
+ "MEDIAN"
+ ]
+ },
+ "interval": {
+ "description": "The time buckets' size (only used for type=timeseries)\nDefaults to a resolution of 150 points.",
+ "example": "5m",
+ "type": "string"
+ },
+ "metric": {
+ "description": "The metric to use.",
+ "example": "@duration",
+ "type": "string"
+ },
+ "type": {
+ "default": "total",
+ "description": "The type of compute.",
+ "enum": [
+ "timeseries",
+ "total"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "TIMESERIES",
+ "TOTAL"
+ ]
+ }
},
- "createdByHandle": {
- "description": "The handle of the user who created the job.",
+ "required": [
+ "aggregation"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "filter": {
+ "description": "The search and filter query settings.",
+ "properties": {
+ "from": {
+ "default": "now-15m",
+ "description": "The minimum time for the requested spans, supports date-time ISO8601, date math, and regular timestamps (milliseconds).",
+ "example": "now-15m",
"type": "string"
},
- "createdByName": {
- "description": "The name of the user who created the job.",
+ "query": {
+ "default": "*",
+ "description": "The search query - following the span search syntax.",
+ "example": "service:web* AND @http.status_code:[200 TO 299]",
"type": "string"
},
- "createdFromRuleId": {
- "description": "ID of the rule used to create the job (if it is created from a rule).",
+ "to": {
+ "default": "now",
+ "description": "The maximum time for the requested spans, supports date-time ISO8601, date math, and regular timestamps (milliseconds).",
+ "example": "now",
"type": "string"
- },
- "jobDefinition": {
- "description": "Definition of a historical job.",
- "properties": {
- "calculatedFields": {
- "description": "Calculated fields.",
- "items": {
- "description": "Calculated field.",
- "properties": {
- "expression": {
- "description": "Expression.",
- "example": "@request_end_timestamp - @request_start_timestamp",
- "type": "string"
- },
- "name": {
- "description": "Field name.",
- "example": "response_time",
- "type": "string"
- }
- },
- "required": [
- "name",
- "expression"
- ],
- "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "group_by": {
+ "description": "The rules for the group by.",
+ "items": {
+ "description": "A group by rule.",
+ "properties": {
+ "facet": {
+ "description": "The name of the facet to use (required).",
+ "example": "host",
+ "type": "string"
+ },
+ "histogram": {
+ "description": "Used to perform a histogram computation (only for measure facets).\nNote: At most 100 buckets are allowed, the number of buckets is (max - min)/interval.",
+ "properties": {
+ "interval": {
+ "description": "The bin size of the histogram buckets.",
+ "example": 10,
+ "format": "double",
+ "type": "number"
},
- "type": "array"
- },
- "cases": {
- "description": "Cases used for generating job results.",
- "items": {
- "description": "Case when signal is generated.",
- "properties": {
- "actions": {
- "description": "Action to perform for each rule case.",
- "items": {
- "description": "Action to perform when a signal is triggered. Only available for Application Security rule type.",
- "properties": {
- "options": {
- "description": "Options for the rule action",
- "properties": {
- "duration": {
- "description": "Duration of the action in seconds. 0 indicates no expiration.",
- "example": 0,
- "format": "int64",
- "minimum": 0,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "type": {
- "description": "The action type.",
- "enum": [
- "block_ip",
- "block_user"
- ],
- "type": "string",
- "x-enum-varnames": [
- "BLOCK_IP",
- "BLOCK_USER"
- ]
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "condition": {
- "description": "A case contains logical operations (`>`,`>=`, `&&`, `||`) to determine if a signal should be generated\nbased on the event counts in the previously defined queries.",
- "type": "string"
- },
- "name": {
- "description": "Name of the case.",
- "type": "string"
- },
- "notifications": {
- "description": "Notification targets.",
- "items": {
- "description": "Notification.",
- "type": "string"
- },
- "type": "array"
- },
- "status": {
- "description": "Severity of the Security Signal.",
- "enum": [
- "info",
- "low",
- "medium",
- "high",
- "critical"
- ],
- "example": "critical",
- "type": "string",
- "x-enum-varnames": [
- "INFO",
- "LOW",
- "MEDIUM",
- "HIGH",
- "CRITICAL"
- ]
- }
- },
- "required": [
- "status"
- ],
- "type": "object"
+ "max": {
+ "description": "The maximum value for the measure used in the histogram\n(values greater than this one are filtered out).",
+ "example": 100,
+ "format": "double",
+ "type": "number"
},
- "type": "array"
- },
- "from": {
- "description": "Starting time of data analyzed by the job.",
- "example": 1729843470000,
- "format": "int64",
- "type": "integer"
+ "min": {
+ "description": "The minimum value for the measure used in the histogram\n(values smaller than this one are filtered out).",
+ "example": 50,
+ "format": "double",
+ "type": "number"
+ }
},
- "groupSignalsBy": {
- "description": "Additional grouping to perform on top of the existing groups in the query section. Must be a subset of the existing groups.",
- "example": [
- "service"
- ],
- "items": {
- "description": "Field to group by.",
+ "required": [
+ "interval",
+ "min",
+ "max"
+ ],
+ "type": "object"
+ },
+ "limit": {
+ "default": 10,
+ "description": "The maximum buckets to return for this group by.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "missing": {
+ "description": "The value to use for spans that don't have the facet used to group by.",
+ "oneOf": [
+ {
+ "description": "The missing value to use if there is string valued facet.",
"type": "string"
},
- "type": "array"
- },
- "index": {
- "description": "Index used to load the data.",
- "example": "cloud_siem",
- "type": "string"
- },
- "message": {
- "description": "Message for generated results.",
- "example": "A large number of failed login attempts.",
- "type": "string"
- },
- "name": {
- "description": "Job name.",
- "example": "Excessive number of failed attempts.",
- "type": "string"
- },
- "options": {
- "description": "Job options.",
- "properties": {
- "detectionMethod": {
- "description": "The detection method.",
- "enum": [
- "threshold",
- "new_value",
- "anomaly_detection",
- "impossible_travel",
- "hardcoded",
- "third_party",
- "anomaly_threshold"
- ],
- "type": "string",
- "x-enum-varnames": [
- "THRESHOLD",
- "NEW_VALUE",
- "ANOMALY_DETECTION",
- "IMPOSSIBLE_TRAVEL",
- "HARDCODED",
- "THIRD_PARTY",
- "ANOMALY_THRESHOLD"
- ]
- },
- "evaluationWindow": {
- "description": "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.",
- "enum": [
- 0,
- 60,
- 300,
- 600,
- 900,
- 1800,
- 3600,
- 7200
- ],
- "format": "int32",
- "type": "integer",
- "x-enum-varnames": [
- "ZERO_MINUTES",
- "ONE_MINUTE",
- "FIVE_MINUTES",
- "TEN_MINUTES",
- "FIFTEEN_MINUTES",
- "THIRTY_MINUTES",
- "ONE_HOUR",
- "TWO_HOURS"
- ]
- },
- "impossibleTravelOptions": {
- "description": "Options on impossible travel detection method.",
- "properties": {
- "baselineUserLocations": {
- "description": "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.",
- "example": true,
- "type": "boolean"
- }
- },
- "type": "object"
- },
- "keepAlive": {
- "description": "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.",
- "enum": [
- 0,
- 60,
- 300,
- 600,
- 900,
- 1800,
- 3600,
- 7200,
- 10800,
- 21600
- ],
- "format": "int32",
- "type": "integer",
- "x-enum-varnames": [
- "ZERO_MINUTES",
- "ONE_MINUTE",
- "FIVE_MINUTES",
- "TEN_MINUTES",
- "FIFTEEN_MINUTES",
- "THIRTY_MINUTES",
- "ONE_HOUR",
- "TWO_HOURS",
- "THREE_HOURS",
- "SIX_HOURS"
- ]
- },
- "maxSignalDuration": {
- "description": "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.",
- "enum": [
- 0,
- 60,
- 300,
- 600,
- 900,
- 1800,
- 3600,
- 7200,
- 10800,
- 21600,
- 43200,
- 86400
- ],
- "format": "int32",
- "type": "integer",
- "x-enum-varnames": [
- "ZERO_MINUTES",
- "ONE_MINUTE",
- "FIVE_MINUTES",
- "TEN_MINUTES",
- "FIFTEEN_MINUTES",
- "THIRTY_MINUTES",
- "ONE_HOUR",
- "TWO_HOURS",
- "THREE_HOURS",
- "SIX_HOURS",
- "TWELVE_HOURS",
- "ONE_DAY"
- ]
- },
- "newValueOptions": {
- "description": "Options on new value detection method.",
- "properties": {
- "forgetAfter": {
- "description": "The duration in days after which a learned value is forgotten.",
- "enum": [
- 1,
- 2,
- 7,
- 14,
- 21,
- 28
- ],
- "format": "int32",
- "type": "integer",
- "x-enum-varnames": [
- "ONE_DAY",
- "TWO_DAYS",
- "ONE_WEEK",
- "TWO_WEEKS",
- "THREE_WEEKS",
- "FOUR_WEEKS"
- ]
- },
- "learningDuration": {
- "default": 0,
- "description": "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.",
- "enum": [
- 0,
- 1,
- 7
- ],
- "format": "int32",
- "type": "integer",
- "x-enum-varnames": [
- "ZERO_DAYS",
- "ONE_DAY",
- "SEVEN_DAYS"
- ]
- },
- "learningMethod": {
- "default": "duration",
- "description": "The learning method used to determine when signals should be generated for values that weren't learned.",
- "enum": [
- "duration",
- "threshold"
- ],
- "type": "string",
- "x-enum-varnames": [
- "DURATION",
- "THRESHOLD"
- ]
- },
- "learningThreshold": {
- "default": 0,
- "description": "A number of occurrences after which signals will be generated for values that weren't learned.",
- "enum": [
- 0,
- 1
- ],
- "format": "int32",
- "type": "integer",
- "x-enum-varnames": [
- "ZERO_OCCURRENCES",
- "ONE_OCCURRENCE"
- ]
- }
- },
- "type": "object"
- },
- "thirdPartyRuleOptions": {
- "description": "Options on third party detection method.",
- "properties": {
- "defaultNotifications": {
- "description": "Notification targets for the logs that do not correspond to any of the cases.",
- "items": {
- "description": "Notification.",
- "type": "string"
- },
- "type": "array"
- },
- "defaultStatus": {
- "description": "Severity of the Security Signal.",
- "enum": [
- "info",
- "low",
- "medium",
- "high",
- "critical"
- ],
- "example": "critical",
- "type": "string",
- "x-enum-varnames": [
- "INFO",
- "LOW",
- "MEDIUM",
- "HIGH",
- "CRITICAL"
- ]
- },
- "rootQueries": {
- "description": "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.",
- "items": {
- "description": "A query to be combined with the third party case query.",
- "properties": {
- "groupByFields": {
- "description": "Fields to group by.",
- "items": {
- "description": "Field.",
- "type": "string"
- },
- "type": "array"
- },
- "query": {
- "description": "Query to run on logs.",
- "example": "source:cloudtrail",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "signalTitleTemplate": {
- "description": "A template for the signal title; if omitted, the title is generated based on the case name.",
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "type": "object"
- },
- "queries": {
- "description": "Queries for selecting logs analyzed by the job.",
- "items": {
- "description": "Query for selecting logs analyzed by the historical job.",
- "properties": {
- "aggregation": {
- "description": "The aggregation type.",
- "enum": [
- "count",
- "cardinality",
- "sum",
- "max",
- "new_value",
- "geo_data",
- "event_count",
- "none"
- ],
- "type": "string",
- "x-enum-varnames": [
- "COUNT",
- "CARDINALITY",
- "SUM",
- "MAX",
- "NEW_VALUE",
- "GEO_DATA",
- "EVENT_COUNT",
- "NONE"
- ]
- },
- "distinctFields": {
- "description": "Field for which the cardinality is measured. Sent as an array.",
- "items": {
- "description": "Field.",
- "type": "string"
- },
- "type": "array"
- },
- "groupByFields": {
- "description": "Fields to group by.",
- "items": {
- "description": "Field.",
- "type": "string"
- },
- "type": "array"
- },
- "hasOptionalGroupByFields": {
- "description": "When false, events without a group-by value are ignored by the query. When true, events with missing group-by fields are processed with `N/A`, replacing the missing values.",
- "example": false,
- "readOnly": true,
- "type": "boolean"
- },
- "metrics": {
- "description": "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.",
- "items": {
- "description": "Field.",
- "type": "string"
- },
- "type": "array"
- },
- "name": {
- "description": "Name of the query.",
- "type": "string"
- },
- "query": {
- "description": "Query to run on logs.",
- "example": "a > 3",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
+ {
+ "description": "The missing value to use if there is a number valued facet.",
+ "format": "double",
+ "type": "number"
+ }
+ ]
+ },
+ "sort": {
+ "description": "A sort rule.",
+ "example": {
+ "aggregation": "count",
+ "order": "asc"
},
- "referenceTables": {
- "description": "Reference tables used in the queries.",
- "items": {
- "description": "Reference tables used in the queries.",
- "properties": {
- "checkPresence": {
- "description": "Whether to include or exclude the matched values.",
- "type": "boolean"
- },
- "columnName": {
- "description": "The name of the column in the reference table.",
- "type": "string"
- },
- "logFieldPath": {
- "description": "The field in the log to match against the reference table.",
- "type": "string"
- },
- "ruleQueryName": {
- "description": "The name of the query to apply the reference table to.",
- "type": "string"
- },
- "tableName": {
- "description": "The name of the reference table.",
- "type": "string"
- }
- },
- "type": "object"
+ "properties": {
+ "aggregation": {
+ "description": "An aggregation function.",
+ "enum": [
+ "count",
+ "cardinality",
+ "pc75",
+ "pc90",
+ "pc95",
+ "pc98",
+ "pc99",
+ "sum",
+ "min",
+ "max",
+ "avg",
+ "median"
+ ],
+ "example": "pc90",
+ "type": "string",
+ "x-enum-varnames": [
+ "COUNT",
+ "CARDINALITY",
+ "PERCENTILE_75",
+ "PERCENTILE_90",
+ "PERCENTILE_95",
+ "PERCENTILE_98",
+ "PERCENTILE_99",
+ "SUM",
+ "MIN",
+ "MAX",
+ "AVG",
+ "MEDIAN"
+ ]
},
- "type": "array"
- },
- "tags": {
- "description": "Tags for generated signals.",
- "items": {
+ "metric": {
+ "description": "The metric to sort by (only used for `type=measure`).",
+ "example": "@duration",
"type": "string"
- },
- "type": "array"
- },
- "thirdPartyCases": {
- "description": "Cases for generating results from third-party detection method. Only available for third-party detection method.",
- "example": [],
- "items": {
- "description": "Case when a signal is generated by a third party rule.",
- "properties": {
- "name": {
- "description": "Name of the case.",
- "type": "string"
- },
- "notifications": {
- "description": "Notification targets for each case.",
- "items": {
- "description": "Notification.",
- "type": "string"
- },
- "type": "array"
- },
- "query": {
- "description": "A query to map a third party event to this case.",
- "type": "string"
- },
- "status": {
- "description": "Severity of the Security Signal.",
- "enum": [
- "info",
- "low",
- "medium",
- "high",
- "critical"
- ],
- "example": "critical",
- "type": "string",
- "x-enum-varnames": [
- "INFO",
- "LOW",
- "MEDIUM",
- "HIGH",
- "CRITICAL"
- ]
- }
- },
- "required": [
- "status"
+ },
+ "order": {
+ "description": "The order to use, ascending or descending.",
+ "enum": [
+ "asc",
+ "desc"
],
- "type": "object"
+ "example": "asc",
+ "type": "string",
+ "x-enum-varnames": [
+ "ASCENDING",
+ "DESCENDING"
+ ]
},
- "type": "array"
- },
- "to": {
- "description": "Ending time of data analyzed by the job.",
- "example": 1729847070000,
- "format": "int64",
- "type": "integer"
+ "type": {
+ "default": "alphabetical",
+ "description": "The type of sorting algorithm.",
+ "enum": [
+ "alphabetical",
+ "measure"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "ALPHABETICAL",
+ "MEASURE"
+ ]
+ }
},
- "type": {
- "description": "Job type.",
- "type": "string"
- }
+ "type": "object"
},
- "required": [
- "from",
- "to",
- "index",
- "name",
- "cases",
- "queries",
- "message"
- ],
- "type": "object"
+ "total": {
+ "default": false,
+ "description": "A resulting object to put the given computes in over all the matching records.",
+ "oneOf": [
+ {
+ "description": "If set to true, creates an additional bucket labeled \"$facet_total\".",
+ "type": "boolean"
+ },
+ {
+ "description": "A string to use as the key value for the total bucket.",
+ "type": "string"
+ },
+ {
+ "description": "A number to use as the key value for the total bucket.",
+ "format": "double",
+ "type": "number"
+ }
+ ]
+ }
},
- "jobName": {
- "description": "Job name.",
- "type": "string"
+ "required": [
+ "facet"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "options": {
+ "description": "Global query options that are used during the query.\nNote: You should only supply timezone or time offset but not both otherwise the query will fail.",
+ "properties": {
+ "timeOffset": {
+ "description": "The time offset (in seconds) to apply to the query.",
+ "format": "int64",
+ "type": "integer"
},
- "jobStatus": {
- "description": "Job status.",
+ "timezone": {
+ "default": "UTC",
+ "description": "The timezone can be specified as GMT, UTC, an offset from UTC (like UTC+1), or as a Timezone Database identifier (like America/New_York).",
+ "example": "GMT",
"type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "default": "aggregate_request",
+ "description": "The type of resource. The value should always be aggregate_request.",
+ "enum": [
+ "aggregate_request"
+ ],
+ "example": "aggregate_request",
+ "type": "string",
+ "x-enum-varnames": [
+ "AGGREGATE_REQUEST"
+ ]
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "The response object for the spans aggregate API endpoint.",
+ "properties": {
+ "data": {
+ "description": "The list of matching buckets, one item per bucket.",
+ "items": {
+ "description": "Spans aggregate.",
+ "properties": {
+ "attributes": {
+ "description": "A bucket values.",
+ "properties": {
+ "by": {
+ "additionalProperties": {
+ "description": "The values for each group by."
+ },
+ "description": "The key, value pairs for each group by.",
+ "example": {
+ "@state": "success",
+ "@version": "abc"
+ },
+ "type": "object"
},
- "modifiedAt": {
- "description": "Last modification time of the job.",
- "type": "string"
+ "compute": {
+ "description": "The compute data.",
+ "type": "object"
+ },
+ "computes": {
+ "additionalProperties": {
+ "description": "A bucket value, can be either a timeseries or a single value.",
+ "oneOf": [
+ {
+ "description": "A single string value.",
+ "type": "string"
+ },
+ {
+ "description": "A single number value.",
+ "format": "double",
+ "type": "number"
+ },
+ {
+ "description": "A timeseries array.",
+ "items": {
+ "description": "A timeseries point.",
+ "properties": {
+ "time": {
+ "description": "The time value for this point.",
+ "example": "2023-06-08T11:55:00Z",
+ "type": "string"
+ },
+ "value": {
+ "description": "The value for this point.",
+ "example": 19,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array",
+ "x-generate-alias-as-model": true
+ }
+ ]
+ },
+ "description": "A map of the metric name -> value for regular compute or list of values for a timeseries.",
+ "type": "object"
}
},
"type": "object"
},
"id": {
- "description": "ID of the job.",
+ "description": "ID of the spans aggregate.",
"type": "string"
},
"type": {
- "description": "Type of payload.",
+ "description": "The spans aggregate bucket type.",
"enum": [
- "historicalDetectionsJob"
+ "bucket"
],
+ "example": "bucket",
"type": "string",
"x-enum-varnames": [
- "HISTORICALDETECTIONSJOB"
+ "BUCKET"
]
}
},
@@ -387062,13 +411007,56 @@
"type": "array"
},
"meta": {
- "description": "Metadata about the list of jobs.",
+ "description": "The metadata associated with a request.",
"properties": {
- "totalCount": {
- "description": "Number of jobs in the list.",
- "format": "int32",
- "maximum": 2147483647,
+ "elapsed": {
+ "description": "The time elapsed in milliseconds.",
+ "example": 132,
+ "format": "int64",
"type": "integer"
+ },
+ "request_id": {
+ "description": "The identifier of the request.",
+ "example": "MWlFUjVaWGZTTTZPYzM0VXp1OXU2d3xLSVpEMjZKQ0VKUTI0dEYtM3RSOFVR",
+ "type": "string"
+ },
+ "status": {
+ "description": "The status of the response.",
+ "enum": [
+ "done",
+ "timeout"
+ ],
+ "example": "done",
+ "type": "string",
+ "x-enum-varnames": [
+ "DONE",
+ "TIMEOUT"
+ ]
+ },
+ "warnings": {
+ "description": "A list of warnings (non fatal errors) encountered, partial results might be returned if\nwarnings are present in the response.",
+ "items": {
+ "description": "A warning message indicating something that went wrong with the query.",
+ "properties": {
+ "code": {
+ "description": "A unique code for this type of warning.",
+ "example": "unknown_index",
+ "type": "string"
+ },
+ "detail": {
+ "description": "A detailed explanation of this specific warning.",
+ "example": "indexes: foo, bar",
+ "type": "string"
+ },
+ "title": {
+ "description": "A short human-readable summary of the warning.",
+ "example": "One or several indexes are missing or invalid, results hold data from the other indexes",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
}
},
"type": "object"
@@ -387134,7 +411122,7 @@
}
}
},
- "description": "Not Authorized"
+ "description": "Forbidden"
},
"429": {
"content": {
@@ -387171,715 +411159,315 @@
"appKeyAuth": []
},
{
- "AuthZ": []
+ "AuthZ": [
+ "apm_read"
+ ]
}
],
- "summary": "List historical jobs",
+ "summary": "Aggregate spans",
"tags": [
- "Security Monitoring"
+ "Spans"
],
- "x-menu-order": 20,
+ "x-codegen-request-body-name": "body",
+ "x-menu-order": 3,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "apm_read"
+ ]
+ },
"x-undo": {
"type": "safe"
- },
- "x-unstable": "**Note**: This endpoint is in beta and may be subject to changes.\nPlease check the documentation regularly for updates."
- },
- "post": {
- "description": "Run a historical job.",
- "operationId": "RunHistoricalJob",
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Run a historical job request.",
- "properties": {
- "data": {
- "description": "Data for running a historical job request.",
- "properties": {
- "attributes": {
- "description": "Run a historical job request.",
+ }
+ }
+ },
+ "/api/v2/spans/events": {
+ "get": {
+ "description": "List endpoint returns spans that match a span search query.\n[Results are paginated][1].\n\nUse this endpoint to see your latest spans.\nThis endpoint is rate limited to `300` requests per hour.\n\n[1]: /logs/guide/collect-multiple-logs-with-pagination?tab=v2api",
+ "operationId": "ListSpansGet",
+ "parameters": [
+ {
+ "description": "Search query following spans syntax.",
+ "example": "@datacenter:us @role:db",
+ "in": "query",
+ "name": "filter[query]",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "Minimum timestamp for requested spans. Supports date-time ISO8601, date math, and regular timestamps (milliseconds).",
+ "example": "2023-01-02T09:42:36.320Z",
+ "in": "query",
+ "name": "filter[from]",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "Maximum timestamp for requested spans. Supports date-time ISO8601, date math, and regular timestamps (milliseconds).",
+ "example": "2023-01-03T09:42:36.320Z",
+ "in": "query",
+ "name": "filter[to]",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "Order of spans in results.",
+ "in": "query",
+ "name": "sort",
+ "required": false,
+ "schema": {
+ "description": "Sort parameters when querying spans.",
+ "enum": [
+ "timestamp",
+ "-timestamp"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "TIMESTAMP_ASCENDING",
+ "TIMESTAMP_DESCENDING"
+ ]
+ }
+ },
+ {
+ "description": "List following results with a cursor provided in the previous query.",
+ "example": "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==",
+ "in": "query",
+ "name": "page[cursor]",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "Maximum number of spans in the response.",
+ "example": 25,
+ "in": "query",
+ "name": "page[limit]",
+ "required": false,
+ "schema": {
+ "default": 10,
+ "format": "int32",
+ "maximum": 1000,
+ "type": "integer"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Response object with all spans matching the request and pagination information.",
+ "properties": {
+ "data": {
+ "description": "Array of spans matching the request.",
+ "items": {
+ "description": "Object description of a spans after being processed and stored by Datadog.",
"properties": {
- "fromRule": {
- "description": "Definition of a historical job based on a security monitoring rule.",
+ "attributes": {
+ "description": "JSON object containing all span attributes and their associated values.",
"properties": {
- "caseIndex": {
- "description": "Index of the rule case applied by the job.",
- "example": 0,
- "format": "int32",
- "maximum": 9,
- "type": "integer"
+ "attributes": {
+ "additionalProperties": {},
+ "description": "JSON object of attributes from your span.",
+ "example": {
+ "customAttribute": 123,
+ "duration": 2345
+ },
+ "type": "object"
},
- "from": {
- "description": "Starting time of data analyzed by the job.",
- "example": 1729843470000,
- "format": "int64",
- "type": "integer"
+ "custom": {
+ "additionalProperties": {},
+ "description": "JSON object of custom spans data.",
+ "type": "object"
},
- "id": {
- "description": "ID of the detection rule used to create the job.",
- "example": "abc-def-ghi",
+ "end_timestamp": {
+ "description": "End timestamp of your span.",
+ "example": "2023-01-02T09:42:36.420Z",
+ "format": "date-time",
"type": "string"
},
- "index": {
- "description": "Index used to load the data.",
- "example": "cloud_siem",
+ "env": {
+ "description": "Name of the environment from where the spans are being sent.",
+ "example": "prod",
"type": "string"
},
- "notifications": {
- "description": "Notifications sent when the job is completed.",
- "example": [
- "@sns-cloudtrail-results"
- ],
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "to": {
- "description": "Ending time of data analyzed by the job.",
- "example": 1729847070000,
- "format": "int64",
- "type": "integer"
- }
- },
- "required": [
- "id",
- "from",
- "to",
- "index",
- "caseIndex"
- ],
- "type": "object"
- },
- "id": {
- "description": "Request ID.",
- "type": "string"
- },
- "jobDefinition": {
- "description": "Definition of a historical job.",
- "properties": {
- "calculatedFields": {
- "description": "Calculated fields.",
- "items": {
- "description": "Calculated field.",
- "properties": {
- "expression": {
- "description": "Expression.",
- "example": "@request_end_timestamp - @request_start_timestamp",
- "type": "string"
- },
- "name": {
- "description": "Field name.",
- "example": "response_time",
- "type": "string"
- }
- },
- "required": [
- "name",
- "expression"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "cases": {
- "description": "Cases used for generating job results.",
- "items": {
- "description": "Case when signal is generated.",
- "properties": {
- "actions": {
- "description": "Action to perform for each rule case.",
- "items": {
- "description": "Action to perform when a signal is triggered. Only available for Application Security rule type.",
- "properties": {
- "options": {
- "description": "Options for the rule action",
- "properties": {
- "duration": {
- "description": "Duration of the action in seconds. 0 indicates no expiration.",
- "example": 0,
- "format": "int64",
- "minimum": 0,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "type": {
- "description": "The action type.",
- "enum": [
- "block_ip",
- "block_user"
- ],
- "type": "string",
- "x-enum-varnames": [
- "BLOCK_IP",
- "BLOCK_USER"
- ]
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "condition": {
- "description": "A case contains logical operations (`>`,`>=`, `&&`, `||`) to determine if a signal should be generated\nbased on the event counts in the previously defined queries.",
- "type": "string"
- },
- "name": {
- "description": "Name of the case.",
- "type": "string"
- },
- "notifications": {
- "description": "Notification targets.",
- "items": {
- "description": "Notification.",
- "type": "string"
- },
- "type": "array"
- },
- "status": {
- "description": "Severity of the Security Signal.",
- "enum": [
- "info",
- "low",
- "medium",
- "high",
- "critical"
- ],
- "example": "critical",
- "type": "string",
- "x-enum-varnames": [
- "INFO",
- "LOW",
- "MEDIUM",
- "HIGH",
- "CRITICAL"
- ]
- }
- },
- "required": [
- "status"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "from": {
- "description": "Starting time of data analyzed by the job.",
- "example": 1729843470000,
- "format": "int64",
- "type": "integer"
+ "host": {
+ "description": "Name of the machine from where the spans are being sent.",
+ "example": "i-0123",
+ "type": "string"
},
- "groupSignalsBy": {
- "description": "Additional grouping to perform on top of the existing groups in the query section. Must be a subset of the existing groups.",
- "example": [
- "service"
- ],
- "items": {
- "description": "Field to group by.",
- "type": "string"
- },
- "type": "array"
+ "ingestion_reason": {
+ "description": "The reason why the span was ingested.",
+ "example": "rule",
+ "type": "string"
},
- "index": {
- "description": "Index used to load the data.",
- "example": "cloud_siem",
+ "parent_id": {
+ "description": "Id of the span that's parent of this span.",
+ "example": "0",
"type": "string"
},
- "message": {
- "description": "Message for generated results.",
- "example": "A large number of failed login attempts.",
+ "resource_hash": {
+ "description": "Unique identifier of the resource.",
+ "example": "a12345678b91c23d",
"type": "string"
},
- "name": {
- "description": "Job name.",
- "example": "Excessive number of failed attempts.",
+ "resource_name": {
+ "description": "The name of the resource.",
+ "example": "agent",
"type": "string"
},
- "options": {
- "description": "Job options.",
- "properties": {
- "detectionMethod": {
- "description": "The detection method.",
- "enum": [
- "threshold",
- "new_value",
- "anomaly_detection",
- "impossible_travel",
- "hardcoded",
- "third_party",
- "anomaly_threshold"
- ],
- "type": "string",
- "x-enum-varnames": [
- "THRESHOLD",
- "NEW_VALUE",
- "ANOMALY_DETECTION",
- "IMPOSSIBLE_TRAVEL",
- "HARDCODED",
- "THIRD_PARTY",
- "ANOMALY_THRESHOLD"
- ]
- },
- "evaluationWindow": {
- "description": "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.",
- "enum": [
- 0,
- 60,
- 300,
- 600,
- 900,
- 1800,
- 3600,
- 7200
- ],
- "format": "int32",
- "type": "integer",
- "x-enum-varnames": [
- "ZERO_MINUTES",
- "ONE_MINUTE",
- "FIVE_MINUTES",
- "TEN_MINUTES",
- "FIFTEEN_MINUTES",
- "THIRTY_MINUTES",
- "ONE_HOUR",
- "TWO_HOURS"
- ]
- },
- "impossibleTravelOptions": {
- "description": "Options on impossible travel detection method.",
- "properties": {
- "baselineUserLocations": {
- "description": "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.",
- "example": true,
- "type": "boolean"
- }
- },
- "type": "object"
- },
- "keepAlive": {
- "description": "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.",
- "enum": [
- 0,
- 60,
- 300,
- 600,
- 900,
- 1800,
- 3600,
- 7200,
- 10800,
- 21600
- ],
- "format": "int32",
- "type": "integer",
- "x-enum-varnames": [
- "ZERO_MINUTES",
- "ONE_MINUTE",
- "FIVE_MINUTES",
- "TEN_MINUTES",
- "FIFTEEN_MINUTES",
- "THIRTY_MINUTES",
- "ONE_HOUR",
- "TWO_HOURS",
- "THREE_HOURS",
- "SIX_HOURS"
- ]
- },
- "maxSignalDuration": {
- "description": "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.",
- "enum": [
- 0,
- 60,
- 300,
- 600,
- 900,
- 1800,
- 3600,
- 7200,
- 10800,
- 21600,
- 43200,
- 86400
- ],
- "format": "int32",
- "type": "integer",
- "x-enum-varnames": [
- "ZERO_MINUTES",
- "ONE_MINUTE",
- "FIVE_MINUTES",
- "TEN_MINUTES",
- "FIFTEEN_MINUTES",
- "THIRTY_MINUTES",
- "ONE_HOUR",
- "TWO_HOURS",
- "THREE_HOURS",
- "SIX_HOURS",
- "TWELVE_HOURS",
- "ONE_DAY"
- ]
- },
- "newValueOptions": {
- "description": "Options on new value detection method.",
- "properties": {
- "forgetAfter": {
- "description": "The duration in days after which a learned value is forgotten.",
- "enum": [
- 1,
- 2,
- 7,
- 14,
- 21,
- 28
- ],
- "format": "int32",
- "type": "integer",
- "x-enum-varnames": [
- "ONE_DAY",
- "TWO_DAYS",
- "ONE_WEEK",
- "TWO_WEEKS",
- "THREE_WEEKS",
- "FOUR_WEEKS"
- ]
- },
- "learningDuration": {
- "default": 0,
- "description": "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.",
- "enum": [
- 0,
- 1,
- 7
- ],
- "format": "int32",
- "type": "integer",
- "x-enum-varnames": [
- "ZERO_DAYS",
- "ONE_DAY",
- "SEVEN_DAYS"
- ]
- },
- "learningMethod": {
- "default": "duration",
- "description": "The learning method used to determine when signals should be generated for values that weren't learned.",
- "enum": [
- "duration",
- "threshold"
- ],
- "type": "string",
- "x-enum-varnames": [
- "DURATION",
- "THRESHOLD"
- ]
- },
- "learningThreshold": {
- "default": 0,
- "description": "A number of occurrences after which signals will be generated for values that weren't learned.",
- "enum": [
- 0,
- 1
- ],
- "format": "int32",
- "type": "integer",
- "x-enum-varnames": [
- "ZERO_OCCURRENCES",
- "ONE_OCCURRENCE"
- ]
- }
- },
- "type": "object"
- },
- "thirdPartyRuleOptions": {
- "description": "Options on third party detection method.",
- "properties": {
- "defaultNotifications": {
- "description": "Notification targets for the logs that do not correspond to any of the cases.",
- "items": {
- "description": "Notification.",
- "type": "string"
- },
- "type": "array"
- },
- "defaultStatus": {
- "description": "Severity of the Security Signal.",
- "enum": [
- "info",
- "low",
- "medium",
- "high",
- "critical"
- ],
- "example": "critical",
- "type": "string",
- "x-enum-varnames": [
- "INFO",
- "LOW",
- "MEDIUM",
- "HIGH",
- "CRITICAL"
- ]
- },
- "rootQueries": {
- "description": "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.",
- "items": {
- "description": "A query to be combined with the third party case query.",
- "properties": {
- "groupByFields": {
- "description": "Fields to group by.",
- "items": {
- "description": "Field.",
- "type": "string"
- },
- "type": "array"
- },
- "query": {
- "description": "Query to run on logs.",
- "example": "source:cloudtrail",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "signalTitleTemplate": {
- "description": "A template for the signal title; if omitted, the title is generated based on the case name.",
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "type": "object"
+ "retained_by": {
+ "description": "The reason why the span was indexed.",
+ "example": "retention_filter",
+ "type": "string"
},
- "queries": {
- "description": "Queries for selecting logs analyzed by the job.",
- "items": {
- "description": "Query for selecting logs analyzed by the historical job.",
- "properties": {
- "aggregation": {
- "description": "The aggregation type.",
- "enum": [
- "count",
- "cardinality",
- "sum",
- "max",
- "new_value",
- "geo_data",
- "event_count",
- "none"
- ],
- "type": "string",
- "x-enum-varnames": [
- "COUNT",
- "CARDINALITY",
- "SUM",
- "MAX",
- "NEW_VALUE",
- "GEO_DATA",
- "EVENT_COUNT",
- "NONE"
- ]
- },
- "distinctFields": {
- "description": "Field for which the cardinality is measured. Sent as an array.",
- "items": {
- "description": "Field.",
- "type": "string"
- },
- "type": "array"
- },
- "groupByFields": {
- "description": "Fields to group by.",
- "items": {
- "description": "Field.",
- "type": "string"
- },
- "type": "array"
- },
- "hasOptionalGroupByFields": {
- "description": "When false, events without a group-by value are ignored by the query. When true, events with missing group-by fields are processed with `N/A`, replacing the missing values.",
- "example": false,
- "readOnly": true,
- "type": "boolean"
- },
- "metrics": {
- "description": "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.",
- "items": {
- "description": "Field.",
- "type": "string"
- },
- "type": "array"
- },
- "name": {
- "description": "Name of the query.",
- "type": "string"
- },
- "query": {
- "description": "Query to run on logs.",
- "example": "a > 3",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
+ "service": {
+ "description": "The name of the application or service generating the span events.\nIt is used to switch from APM to Logs, so make sure you define the same\nvalue when you use both products.",
+ "example": "agent",
+ "type": "string"
},
- "referenceTables": {
- "description": "Reference tables used in the queries.",
- "items": {
- "description": "Reference tables used in the queries.",
- "properties": {
- "checkPresence": {
- "description": "Whether to include or exclude the matched values.",
- "type": "boolean"
- },
- "columnName": {
- "description": "The name of the column in the reference table.",
- "type": "string"
- },
- "logFieldPath": {
- "description": "The field in the log to match against the reference table.",
- "type": "string"
- },
- "ruleQueryName": {
- "description": "The name of the query to apply the reference table to.",
- "type": "string"
- },
- "tableName": {
- "description": "The name of the reference table.",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
+ "single_span": {
+ "description": "Whether or not the span was collected as a stand-alone span. Always associated to \"single_span\" ingestion_reason if true.",
+ "example": true,
+ "type": "boolean"
},
- "tags": {
- "description": "Tags for generated signals.",
- "items": {
- "type": "string"
- },
- "type": "array"
+ "span_id": {
+ "description": "Id of the span.",
+ "example": "1234567890987654321",
+ "type": "string"
},
- "thirdPartyCases": {
- "description": "Cases for generating results from third-party detection method. Only available for third-party detection method.",
- "example": [],
- "items": {
- "description": "Case when a signal is generated by a third party rule.",
- "properties": {
- "name": {
- "description": "Name of the case.",
- "type": "string"
- },
- "notifications": {
- "description": "Notification targets for each case.",
- "items": {
- "description": "Notification.",
- "type": "string"
- },
- "type": "array"
- },
- "query": {
- "description": "A query to map a third party event to this case.",
- "type": "string"
- },
- "status": {
- "description": "Severity of the Security Signal.",
- "enum": [
- "info",
- "low",
- "medium",
- "high",
- "critical"
- ],
- "example": "critical",
- "type": "string",
- "x-enum-varnames": [
- "INFO",
- "LOW",
- "MEDIUM",
- "HIGH",
- "CRITICAL"
- ]
- }
- },
- "required": [
- "status"
- ],
- "type": "object"
+ "start_timestamp": {
+ "description": "Start timestamp of your span.",
+ "example": "2023-01-02T09:42:36.320Z",
+ "format": "date-time",
+ "type": "string"
+ },
+ "tags": {
+ "description": "Array of tags associated with your span.",
+ "example": [
+ "team:A"
+ ],
+ "items": {
+ "description": "Tag associated with your span.",
+ "type": "string"
},
"type": "array"
},
- "to": {
- "description": "Ending time of data analyzed by the job.",
- "example": 1729847070000,
- "format": "int64",
- "type": "integer"
+ "trace_id": {
+ "description": "Id of the trace to which the span belongs.",
+ "example": "1234567890987654321",
+ "type": "string"
},
"type": {
- "description": "Job type.",
+ "description": "The type of the span.",
+ "example": "web",
"type": "string"
}
},
- "required": [
- "from",
- "to",
- "index",
- "name",
- "cases",
- "queries",
- "message"
- ],
"type": "object"
+ },
+ "id": {
+ "description": "Unique ID of the Span.",
+ "example": "AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA",
+ "type": "string"
+ },
+ "type": {
+ "default": "spans",
+ "description": "Type of the span.",
+ "enum": [
+ "spans"
+ ],
+ "example": "spans",
+ "type": "string",
+ "x-enum-varnames": [
+ "SPANS"
+ ]
}
},
"type": "object"
},
- "type": {
- "description": "Type of data.",
- "enum": [
- "historicalDetectionsJobCreate"
- ],
- "type": "string",
- "x-enum-varnames": [
- "HISTORICALDETECTIONSJOBCREATE"
- ]
- }
+ "type": "array"
},
- "type": "object"
- }
- },
- "type": "object"
- }
- }
- },
- "required": true
- },
- "responses": {
- "201": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Run a historical job response.",
- "properties": {
- "data": {
- "description": "The definition of `JobCreateResponseData` object.",
+ "links": {
+ "description": "Links attributes.",
"properties": {
- "id": {
- "description": "ID of the created job.",
+ "next": {
+ "description": "Link for the next set of results. Note that the request can also be made using the\nPOST endpoint.",
+ "example": "https://app.datadoghq.com/api/v2/spans/event?filter[query]=foo&page[cursor]=eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "meta": {
+ "description": "The metadata associated with a request.",
+ "properties": {
+ "elapsed": {
+ "description": "The time elapsed in milliseconds.",
+ "example": 132,
+ "format": "int64",
+ "type": "integer"
+ },
+ "page": {
+ "description": "Paging attributes.",
+ "properties": {
+ "after": {
+ "description": "The cursor to use to get the next results, if any. To make the next request, use the same\nparameters with the addition of the `page[cursor]`.",
+ "example": "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "request_id": {
+ "description": "The identifier of the request.",
+ "example": "MWlFUjVaWGZTTTZPYzM0VXp1OXU2d3xLSVpEMjZKQ0VKUTI0dEYtM3RSOFVR",
"type": "string"
},
- "type": {
- "description": "Type of payload.",
+ "status": {
+ "description": "The status of the response.",
"enum": [
- "historicalDetectionsJob"
+ "done",
+ "timeout"
],
+ "example": "done",
"type": "string",
"x-enum-varnames": [
- "HISTORICALDETECTIONSJOB"
+ "DONE",
+ "TIMEOUT"
]
+ },
+ "warnings": {
+ "description": "A list of warnings (non fatal errors) encountered, partial results might be returned if\nwarnings are present in the response.",
+ "items": {
+ "description": "A warning message indicating something that went wrong with the query.",
+ "properties": {
+ "code": {
+ "description": "A unique code for this type of warning.",
+ "example": "unknown_index",
+ "type": "string"
+ },
+ "detail": {
+ "description": "A detailed explanation of this specific warning.",
+ "example": "indexes: foo, bar",
+ "type": "string"
+ },
+ "title": {
+ "description": "A short human-readable summary of the warning.",
+ "example": "One or several indexes are missing or invalid, results hold data from the other indexes",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
}
},
"type": "object"
@@ -387889,7 +411477,7 @@
}
}
},
- "description": "Status created"
+ "description": "OK"
},
"400": {
"content": {
@@ -387899,41 +411487,52 @@
"properties": {
"errors": {
"description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Bad Request"
- },
- "401": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
"items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
"type": "array"
}
@@ -387945,7 +411544,7 @@
}
}
},
- "description": "Concurrent Modification"
+ "description": "Bad Request."
},
"403": {
"content": {
@@ -387955,13 +411554,52 @@
"properties": {
"errors": {
"description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
"items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
"type": "array"
}
@@ -387973,9 +411611,9 @@
}
}
},
- "description": "Not Authorized"
+ "description": "Forbidden: Access denied."
},
- "404": {
+ "422": {
"content": {
"application/json": {
"schema": {
@@ -387983,13 +411621,52 @@
"properties": {
"errors": {
"description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
"items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
"type": "array"
}
@@ -388001,7 +411678,7 @@
}
}
},
- "description": "Not Found"
+ "description": "Unprocessable Entity."
},
"429": {
"content": {
@@ -388011,13 +411688,52 @@
"properties": {
"errors": {
"description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
"items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
"type": "array"
}
@@ -388029,7 +411745,7 @@
}
}
},
- "description": "Too many requests"
+ "description": "Too many requests: The rate limit set by the API has been exceeded."
}
},
"security": [
@@ -388039,120 +411755,127 @@
},
{
"AuthZ": [
- "security_monitoring_rules_write"
+ "apm_read"
]
}
],
- "summary": "Run a historical job",
+ "summary": "Get a list of spans",
"tags": [
- "Security Monitoring"
+ "Spans"
],
- "x-codegen-request-body-name": "body",
- "x-given": {
- "historical_job": {
- "parameters": [
- {
- "name": "body",
- "value": "{\n \"data\": {\n \"type\": \"historicalDetectionsJobCreate\",\n \"attributes\": {\n \"jobDefinition\": {\n \"type\": \"log_detection\",\n \"name\": \"Excessive number of failed attempts.\",\n \"queries\": [\n {\n \"query\": \"source:non_existing_src_weekend\",\n \"aggregation\": \"count\",\n \"groupByFields\": [],\n \"distinctFields\": []\n }\n ],\n \"cases\": [\n {\n \"name\": \"Condition 1\",\n \"status\": \"info\",\n \"notifications\": [],\n \"condition\": \"a > 1\"\n }\n ],\n \"options\": {\n \"keepAlive\": 3600,\n \"maxSignalDuration\": 86400,\n \"evaluationWindow\": 900\n },\n \"message\": \"A large number of failed login attempts.\",\n \"tags\": [],\n \"from\": 1730387522611,\n \"to\": 1730387532611,\n \"index\": \"main\"\n }\n }\n }\n}"
- }
- ],
- "step": "there is a valid \"historical_job\" in the system"
- }
- },
- "x-menu-order": 19,
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "security_monitoring_rules_write"
- ]
+ "x-menu-order": 1,
+ "x-pagination": {
+ "cursorParam": "page[cursor]",
+ "cursorPath": "meta.page.after",
+ "limitParam": "page[limit]",
+ "resultsPath": "data"
},
"x-undo": {
- "type": "idempotent"
- },
- "x-unstable": "**Note**: This endpoint is in beta and may be subject to changes.\nPlease check the documentation regularly for updates."
+ "type": "safe"
+ }
}
},
- "/api/v2/siem-historical-detections/jobs/signal_convert": {
+ "/api/v2/spans/events/search": {
"post": {
- "description": "Convert a job result to a signal.",
- "operationId": "ConvertJobResultToSignal",
+ "description": "List endpoint returns spans that match a span search query.\n[Results are paginated][1].\n\nUse this endpoint to build complex spans filtering and search.\nThis endpoint is rate limited to `300` requests per hour.\n\n[1]: /logs/guide/collect-multiple-logs-with-pagination?tab=v2api",
+ "operationId": "ListSpans",
"requestBody": {
"content": {
"application/json": {
"schema": {
- "description": "Request for converting historical job results to signals.",
+ "description": "The request for a spans list.",
"properties": {
"data": {
- "description": "Data for converting historical job results to signals.",
+ "description": "The object containing the query content.",
"properties": {
"attributes": {
- "description": "Attributes for converting historical job results to signals.",
+ "description": "The object containing all the query parameters.",
"properties": {
- "id": {
- "description": "Request ID.",
- "type": "string"
- },
- "jobResultIds": {
- "description": "Job result IDs.",
- "example": [
- ""
- ],
- "items": {
- "type": "string"
+ "filter": {
+ "description": "The search and filter query settings.",
+ "properties": {
+ "from": {
+ "default": "now-15m",
+ "description": "The minimum time for the requested spans, supports date-time ISO8601, date math, and regular timestamps (milliseconds).",
+ "example": "now-15m",
+ "type": "string"
+ },
+ "query": {
+ "default": "*",
+ "description": "The search query - following the span search syntax.",
+ "example": "service:web* AND @http.status_code:[200 TO 299]",
+ "type": "string"
+ },
+ "to": {
+ "default": "now",
+ "description": "The maximum time for the requested spans, supports date-time ISO8601, date math, and regular timestamps (milliseconds).",
+ "example": "now",
+ "type": "string"
+ }
},
- "type": "array"
+ "type": "object"
},
- "notifications": {
- "description": "Notifications sent.",
- "example": [
- ""
- ],
- "items": {
- "type": "string"
+ "options": {
+ "description": "Global query options that are used during the query.\nNote: You should only supply timezone or time offset but not both otherwise the query will fail.",
+ "properties": {
+ "timeOffset": {
+ "description": "The time offset (in seconds) to apply to the query.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "timezone": {
+ "default": "UTC",
+ "description": "The timezone can be specified as GMT, UTC, an offset from UTC (like UTC+1), or as a Timezone Database identifier (like America/New_York).",
+ "example": "GMT",
+ "type": "string"
+ }
},
- "type": "array"
+ "type": "object"
},
- "signalMessage": {
- "description": "Message of generated signals.",
- "example": "A large number of failed login attempts.",
- "type": "string"
+ "page": {
+ "description": "Paging attributes for listing spans.",
+ "properties": {
+ "cursor": {
+ "description": "List following results with a cursor provided in the previous query.",
+ "example": "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==",
+ "type": "string"
+ },
+ "limit": {
+ "default": 10,
+ "description": "Maximum number of spans in the response.",
+ "example": 25,
+ "format": "int32",
+ "maximum": 1000,
+ "type": "integer"
+ }
+ },
+ "type": "object"
},
- "signalSeverity": {
- "description": "Severity of the Security Signal.",
+ "sort": {
+ "description": "Sort parameters when querying spans.",
"enum": [
- "info",
- "low",
- "medium",
- "high",
- "critical"
+ "timestamp",
+ "-timestamp"
],
- "example": "critical",
"type": "string",
"x-enum-varnames": [
- "INFO",
- "LOW",
- "MEDIUM",
- "HIGH",
- "CRITICAL"
+ "TIMESTAMP_ASCENDING",
+ "TIMESTAMP_DESCENDING"
]
}
},
- "required": [
- "jobResultIds",
- "signalSeverity",
- "signalMessage",
- "notifications"
- ],
"type": "object"
},
"type": {
- "description": "Type of payload.",
+ "default": "search_request",
+ "description": "The type of resource. The value should always be search_request.",
"enum": [
- "historicalDetectionsJobResultSignalConversion"
+ "search_request"
],
+ "example": "search_request",
"type": "string",
"x-enum-varnames": [
- "HISTORICALDETECTIONSJOBRESULTSIGNALCONVERSION"
+ "SEARCH_REQUEST"
]
}
},
@@ -388166,7 +411889,224 @@
"required": true
},
"responses": {
- "204": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Response object with all spans matching the request and pagination information.",
+ "properties": {
+ "data": {
+ "description": "Array of spans matching the request.",
+ "items": {
+ "description": "Object description of a spans after being processed and stored by Datadog.",
+ "properties": {
+ "attributes": {
+ "description": "JSON object containing all span attributes and their associated values.",
+ "properties": {
+ "attributes": {
+ "additionalProperties": {},
+ "description": "JSON object of attributes from your span.",
+ "example": {
+ "customAttribute": 123,
+ "duration": 2345
+ },
+ "type": "object"
+ },
+ "custom": {
+ "additionalProperties": {},
+ "description": "JSON object of custom spans data.",
+ "type": "object"
+ },
+ "end_timestamp": {
+ "description": "End timestamp of your span.",
+ "example": "2023-01-02T09:42:36.420Z",
+ "format": "date-time",
+ "type": "string"
+ },
+ "env": {
+ "description": "Name of the environment from where the spans are being sent.",
+ "example": "prod",
+ "type": "string"
+ },
+ "host": {
+ "description": "Name of the machine from where the spans are being sent.",
+ "example": "i-0123",
+ "type": "string"
+ },
+ "ingestion_reason": {
+ "description": "The reason why the span was ingested.",
+ "example": "rule",
+ "type": "string"
+ },
+ "parent_id": {
+ "description": "Id of the span that's parent of this span.",
+ "example": "0",
+ "type": "string"
+ },
+ "resource_hash": {
+ "description": "Unique identifier of the resource.",
+ "example": "a12345678b91c23d",
+ "type": "string"
+ },
+ "resource_name": {
+ "description": "The name of the resource.",
+ "example": "agent",
+ "type": "string"
+ },
+ "retained_by": {
+ "description": "The reason why the span was indexed.",
+ "example": "retention_filter",
+ "type": "string"
+ },
+ "service": {
+ "description": "The name of the application or service generating the span events.\nIt is used to switch from APM to Logs, so make sure you define the same\nvalue when you use both products.",
+ "example": "agent",
+ "type": "string"
+ },
+ "single_span": {
+ "description": "Whether or not the span was collected as a stand-alone span. Always associated to \"single_span\" ingestion_reason if true.",
+ "example": true,
+ "type": "boolean"
+ },
+ "span_id": {
+ "description": "Id of the span.",
+ "example": "1234567890987654321",
+ "type": "string"
+ },
+ "start_timestamp": {
+ "description": "Start timestamp of your span.",
+ "example": "2023-01-02T09:42:36.320Z",
+ "format": "date-time",
+ "type": "string"
+ },
+ "tags": {
+ "description": "Array of tags associated with your span.",
+ "example": [
+ "team:A"
+ ],
+ "items": {
+ "description": "Tag associated with your span.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "trace_id": {
+ "description": "Id of the trace to which the span belongs.",
+ "example": "1234567890987654321",
+ "type": "string"
+ },
+ "type": {
+ "description": "The type of the span.",
+ "example": "web",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "Unique ID of the Span.",
+ "example": "AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA",
+ "type": "string"
+ },
+ "type": {
+ "default": "spans",
+ "description": "Type of the span.",
+ "enum": [
+ "spans"
+ ],
+ "example": "spans",
+ "type": "string",
+ "x-enum-varnames": [
+ "SPANS"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "links": {
+ "description": "Links attributes.",
+ "properties": {
+ "next": {
+ "description": "Link for the next set of results. Note that the request can also be made using the\nPOST endpoint.",
+ "example": "https://app.datadoghq.com/api/v2/spans/event?filter[query]=foo&page[cursor]=eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "meta": {
+ "description": "The metadata associated with a request.",
+ "properties": {
+ "elapsed": {
+ "description": "The time elapsed in milliseconds.",
+ "example": 132,
+ "format": "int64",
+ "type": "integer"
+ },
+ "page": {
+ "description": "Paging attributes.",
+ "properties": {
+ "after": {
+ "description": "The cursor to use to get the next results, if any. To make the next request, use the same\nparameters with the addition of the `page[cursor]`.",
+ "example": "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "request_id": {
+ "description": "The identifier of the request.",
+ "example": "MWlFUjVaWGZTTTZPYzM0VXp1OXU2d3xLSVpEMjZKQ0VKUTI0dEYtM3RSOFVR",
+ "type": "string"
+ },
+ "status": {
+ "description": "The status of the response.",
+ "enum": [
+ "done",
+ "timeout"
+ ],
+ "example": "done",
+ "type": "string",
+ "x-enum-varnames": [
+ "DONE",
+ "TIMEOUT"
+ ]
+ },
+ "warnings": {
+ "description": "A list of warnings (non fatal errors) encountered, partial results might be returned if\nwarnings are present in the response.",
+ "items": {
+ "description": "A warning message indicating something that went wrong with the query.",
+ "properties": {
+ "code": {
+ "description": "A unique code for this type of warning.",
+ "example": "unknown_index",
+ "type": "string"
+ },
+ "detail": {
+ "description": "A detailed explanation of this specific warning.",
+ "example": "indexes: foo, bar",
+ "type": "string"
+ },
+ "title": {
+ "description": "A short human-readable summary of the warning.",
+ "example": "One or several indexes are missing or invalid, results hold data from the other indexes",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
"description": "OK"
},
"400": {
@@ -388177,13 +412117,253 @@
"properties": {
"errors": {
"description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
"items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Bad Request."
+ },
+ "403": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "items": {
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Forbidden: Access denied."
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "items": {
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Unprocessable Entity."
+ },
+ "429": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "items": {
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
"type": "array"
}
@@ -388195,37 +412375,83 @@
}
}
},
- "description": "Bad Request"
+ "description": "Too many requests: The rate limit set by the API has been exceeded."
+ }
+ },
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
},
- "401": {
+ {
+ "AuthZ": [
+ "apm_read"
+ ]
+ }
+ ],
+ "summary": "Search spans",
+ "tags": [
+ "Spans"
+ ],
+ "x-codegen-request-body-name": "body",
+ "x-menu-order": 2,
+ "x-pagination": {
+ "cursorParam": "body.data.attributes.page.cursor",
+ "cursorPath": "meta.page.after",
+ "limitParam": "body.data.attributes.page.limit",
+ "resultsPath": "data"
+ },
+ "x-undo": {
+ "type": "safe"
+ }
+ }
+ },
+ "/api/v2/synthetics/settings/on_demand_concurrency_cap": {
+ "get": {
+ "description": "Get the on-demand concurrency cap.",
+ "operationId": "GetOnDemandConcurrencyCap",
+ "responses": {
+ "200": {
"content": {
"application/json": {
"schema": {
- "description": "API error response.",
+ "description": "On-demand concurrency cap response.",
"properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "data": {
+ "description": "On-demand concurrency cap.",
+ "properties": {
+ "attributes": {
+ "description": "On-demand concurrency cap attributes.",
+ "properties": {
+ "on_demand_concurrency_cap": {
+ "description": "Value of the on-demand concurrency cap.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "description": "On-demand concurrency cap type.",
+ "enum": [
+ "on_demand_concurrency_cap"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "ON_DEMAND_CONCURRENCY_CAP"
+ ]
+ }
},
- "type": "array"
+ "type": "object"
}
},
- "required": [
- "errors"
- ],
"type": "object"
}
}
},
- "description": "Concurrent Modification"
+ "description": "OK"
},
- "403": {
+ "429": {
"content": {
"application/json": {
"schema": {
@@ -388251,35 +412477,86 @@
}
}
},
- "description": "Not Authorized"
+ "description": "Too many requests"
+ }
+ },
+ "summary": "Get the on-demand concurrency cap",
+ "tags": [
+ "Synthetics"
+ ],
+ "x-menu-order": 10,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "billing_read"
+ ]
+ },
+ "x-undo": {
+ "type": "safe"
+ }
+ },
+ "post": {
+ "description": "Save new value for on-demand concurrency cap.",
+ "operationId": "SetOnDemandConcurrencyCap",
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "On-demand concurrency cap attributes.",
+ "properties": {
+ "on_demand_concurrency_cap": {
+ "description": "Value of the on-demand concurrency cap.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ }
},
- "404": {
+ "description": ".",
+ "required": true
+ },
+ "responses": {
+ "200": {
"content": {
"application/json": {
"schema": {
- "description": "API error response.",
+ "description": "On-demand concurrency cap response.",
"properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "data": {
+ "description": "On-demand concurrency cap.",
+ "properties": {
+ "attributes": {
+ "description": "On-demand concurrency cap attributes.",
+ "properties": {
+ "on_demand_concurrency_cap": {
+ "description": "Value of the on-demand concurrency cap.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "description": "On-demand concurrency cap type.",
+ "enum": [
+ "on_demand_concurrency_cap"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "ON_DEMAND_CONCURRENCY_CAP"
+ ]
+ }
},
- "type": "array"
+ "type": "object"
}
},
- "required": [
- "errors"
- ],
"type": "object"
}
}
},
- "description": "Not Found"
+ "description": "OK"
},
"429": {
"content": {
@@ -388310,98 +412587,850 @@
"description": "Too many requests"
}
},
- "summary": "Convert a job result to a signal",
+ "summary": "Save new value for on-demand concurrency cap",
"tags": [
- "Security Monitoring"
+ "Synthetics"
],
"x-codegen-request-body-name": "body",
- "x-menu-order": 24,
+ "x-menu-order": 11,
"x-permission": {
"operator": "OR",
"permissions": [
- "security_monitoring_signals_write"
+ "billing_edit"
]
},
"x-undo": {
- "type": "idempotent"
- },
- "x-unstable": "**Note**: This endpoint is in beta and may be subject to changes.\nPlease check the documentation regularly for updates."
+ "type": "safe"
+ }
}
},
- "/api/v2/siem-historical-detections/jobs/{job_id}": {
- "delete": {
- "description": "Delete an existing job.",
- "operationId": "DeleteHistoricalJob",
+ "/api/v2/team": {
+ "get": {
+ "description": "Get all teams.\nCan be used to search for teams using the `filter[keyword]` and `filter[me]` query parameters.",
+ "operationId": "ListTeams",
"parameters": [
{
- "description": "The ID of the job.",
- "in": "path",
- "name": "job_id",
- "required": true,
+ "description": "Specific page number to return.",
+ "in": "query",
+ "name": "page[number]",
+ "required": false,
+ "schema": {
+ "default": 0,
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ {
+ "description": "Size for a given page. The maximum allowed value is 100.",
+ "in": "query",
+ "name": "page[size]",
+ "required": false,
+ "schema": {
+ "default": 10,
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ {
+ "description": "Specifies the order of the returned teams",
+ "in": "query",
+ "name": "sort",
+ "required": false,
+ "schema": {
+ "description": "Specifies the order of the returned teams",
+ "enum": [
+ "name",
+ "-name",
+ "user_count",
+ "-user_count"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "NAME",
+ "_NAME",
+ "USER_COUNT",
+ "_USER_COUNT"
+ ]
+ }
+ },
+ {
+ "description": "Included related resources optionally requested. Allowed enum values: `team_links, user_team_permissions`",
+ "in": "query",
+ "name": "include",
+ "required": false,
+ "schema": {
+ "items": {
+ "description": "Included related resources optionally requested.",
+ "enum": [
+ "team_links",
+ "user_team_permissions"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM_LINKS",
+ "USER_TEAM_PERMISSIONS"
+ ]
+ },
+ "type": "array"
+ }
+ },
+ {
+ "description": "Search query. Can be team name, team handle, or email of team member",
+ "in": "query",
+ "name": "filter[keyword]",
+ "required": false,
"schema": {
"type": "string"
}
+ },
+ {
+ "description": "When true, only returns teams the current user belongs to",
+ "in": "query",
+ "name": "filter[me]",
+ "required": false,
+ "schema": {
+ "type": "boolean"
+ }
+ },
+ {
+ "description": "List of fields that need to be fetched.",
+ "explode": false,
+ "in": "query",
+ "name": "fields[team]",
+ "required": false,
+ "schema": {
+ "items": {
+ "description": "Supported teams field.",
+ "enum": [
+ "id",
+ "name",
+ "handle",
+ "summary",
+ "description",
+ "avatar",
+ "banner",
+ "visible_modules",
+ "hidden_modules",
+ "created_at",
+ "modified_at",
+ "user_count",
+ "link_count",
+ "team_links",
+ "user_team_permissions"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "ID",
+ "NAME",
+ "HANDLE",
+ "SUMMARY",
+ "DESCRIPTION",
+ "AVATAR",
+ "BANNER",
+ "VISIBLE_MODULES",
+ "HIDDEN_MODULES",
+ "CREATED_AT",
+ "MODIFIED_AT",
+ "USER_COUNT",
+ "LINK_COUNT",
+ "TEAM_LINKS",
+ "USER_TEAM_PERMISSIONS"
+ ]
+ },
+ "type": "array"
+ }
}
],
"responses": {
- "204": {
- "description": "OK"
- },
- "400": {
+ "200": {
"content": {
"application/json": {
"schema": {
- "description": "API error response.",
+ "description": "Response with multiple teams",
"properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
+ "data": {
+ "description": "Teams response data",
"items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "description": "A team",
+ "properties": {
+ "attributes": {
+ "description": "Team attributes",
+ "properties": {
+ "avatar": {
+ "description": "Unicode representation of the avatar for the team, limited to a single grapheme",
+ "example": "🥑",
+ "nullable": true,
+ "type": "string"
+ },
+ "banner": {
+ "description": "Banner selection for the team",
+ "format": "int64",
+ "nullable": true,
+ "type": "integer"
+ },
+ "created_at": {
+ "description": "Creation date of the team",
+ "format": "date-time",
+ "type": "string"
+ },
+ "description": {
+ "description": "Free-form markdown description/content for the team's homepage",
+ "nullable": true,
+ "type": "string"
+ },
+ "handle": {
+ "description": "The team's identifier",
+ "example": "example-team",
+ "maxLength": 195,
+ "type": "string"
+ },
+ "hidden_modules": {
+ "description": "Collection of hidden modules for the team",
+ "items": {
+ "description": "String identifier of the module",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "link_count": {
+ "description": "The number of links belonging to the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "readOnly": true,
+ "type": "integer"
+ },
+ "modified_at": {
+ "description": "Modification date of the team",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the team",
+ "example": "Example Team",
+ "maxLength": 200,
+ "type": "string"
+ },
+ "summary": {
+ "description": "A brief summary of the team, derived from the `description`",
+ "maxLength": 120,
+ "nullable": true,
+ "type": "string"
+ },
+ "user_count": {
+ "description": "The number of users belonging to the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "readOnly": true,
+ "type": "integer"
+ },
+ "visible_modules": {
+ "description": "Collection of visible modules for the team",
+ "items": {
+ "description": "String identifier of the module",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "handle",
+ "name"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "description": "The team's identifier",
+ "example": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Resources related to a team",
+ "properties": {
+ "team_links": {
+ "description": "Relationship between a team and a team link",
+ "properties": {
+ "data": {
+ "description": "Related team links",
+ "items": {
+ "description": "Relationship between a link and a team",
+ "properties": {
+ "id": {
+ "description": "The team link's identifier",
+ "example": "f9bb8444-af7f-11ec-ac2c-da7ad0900001",
+ "type": "string"
+ },
+ "type": {
+ "default": "team_links",
+ "description": "Team link type",
+ "enum": [
+ "team_links"
+ ],
+ "example": "team_links",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM_LINKS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ },
+ "links": {
+ "description": "Links attributes.",
+ "properties": {
+ "related": {
+ "description": "Related link.",
+ "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "user_team_permissions": {
+ "description": "Relationship between a user team permission and a team",
+ "properties": {
+ "data": {
+ "description": "Related user team permission data",
+ "properties": {
+ "id": {
+ "description": "The ID of the user team permission",
+ "example": "UserTeamPermissions-aeadc05e-98a8-11ec-ac2c-da7ad0900001-416595",
+ "type": "string"
+ },
+ "type": {
+ "default": "user_team_permissions",
+ "description": "User team permission type",
+ "enum": [
+ "user_team_permissions"
+ ],
+ "example": "user_team_permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "USER_TEAM_PERMISSIONS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "links": {
+ "description": "Links attributes.",
+ "properties": {
+ "related": {
+ "description": "Related link.",
+ "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "default": "team",
+ "description": "Team type",
+ "enum": [
+ "team"
+ ],
+ "example": "team",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM"
+ ]
+ }
+ },
+ "required": [
+ "attributes",
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
},
"type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Bad Request"
- },
- "401": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
+ },
+ "included": {
+ "description": "Resources related to the team",
"items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "description": "Included resources related to the team",
+ "oneOf": [
+ {
+ "description": "User object returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of user object returned by the API.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the user.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "disabled": {
+ "description": "Whether the user is disabled.",
+ "type": "boolean"
+ },
+ "email": {
+ "description": "Email of the user.",
+ "type": "string"
+ },
+ "handle": {
+ "description": "Handle of the user.",
+ "type": "string"
+ },
+ "icon": {
+ "description": "URL of the user's icon.",
+ "type": "string"
+ },
+ "mfa_enabled": {
+ "description": "If user has MFA enabled.",
+ "readOnly": true,
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time that the user was last modified.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "service_account": {
+ "description": "Whether the user is a service account.",
+ "type": "boolean"
+ },
+ "status": {
+ "description": "Status of the user.",
+ "type": "string"
+ },
+ "title": {
+ "description": "Title of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "verified": {
+ "description": "Whether the user is verified.",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the user.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships of the user object returned by the API.",
+ "properties": {
+ "org": {
+ "description": "Relationship to an organization.",
+ "properties": {
+ "data": {
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_orgs": {
+ "description": "Relationship to organizations.",
+ "properties": {
+ "data": {
+ "description": "Relationships to organization objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_users": {
+ "description": "Relationship to users.",
+ "properties": {
+ "data": {
+ "description": "Relationships to user objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "roles": {
+ "description": "Relationship to roles.",
+ "properties": {
+ "data": {
+ "description": "An array containing type and the unique identifier of a role.",
+ "items": {
+ "description": "Relationship to role object.",
+ "properties": {
+ "id": {
+ "description": "The unique identifier of the role.",
+ "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "type": "string"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "properties": false
+ }
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ {
+ "description": "Team link",
+ "properties": {
+ "attributes": {
+ "description": "Team link attributes",
+ "properties": {
+ "label": {
+ "description": "The link's label",
+ "example": "Link label",
+ "maxLength": 256,
+ "type": "string"
+ },
+ "position": {
+ "description": "The link's position, used to sort links for the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "type": "integer"
+ },
+ "team_id": {
+ "description": "ID of the team the link is associated with",
+ "readOnly": true,
+ "type": "string"
+ },
+ "url": {
+ "description": "The URL for the link",
+ "example": "https://example.com",
+ "type": "string"
+ }
+ },
+ "required": [
+ "label",
+ "url"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "description": "The team link's identifier",
+ "example": "b8626d7e-cedd-11eb-abf5-da7ad0900001",
+ "type": "string"
+ },
+ "type": {
+ "default": "team_links",
+ "description": "Team link type",
+ "enum": [
+ "team_links"
+ ],
+ "example": "team_links",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM_LINKS"
+ ]
+ }
+ },
+ "required": [
+ "attributes",
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ {
+ "description": "A user's permissions for a given team",
+ "properties": {
+ "attributes": {
+ "description": "User team permission attributes",
+ "properties": {
+ "permissions": {
+ "description": "Object of team permission actions and boolean values that a logged in user can perform on this team.",
+ "readOnly": true,
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The user team permission's identifier",
+ "example": "UserTeamPermissions-aeadc05e-98a8-11ec-ac2c-da7ad0900001-416595",
+ "type": "string"
+ },
+ "type": {
+ "default": "user_team_permissions",
+ "description": "User team permission type",
+ "enum": [
+ "user_team_permissions"
+ ],
+ "example": "user_team_permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "USER_TEAM_PERMISSIONS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ ]
+ },
+ "type": "array"
+ },
+ "links": {
+ "description": "Teams response links.",
+ "properties": {
+ "first": {
+ "description": "First link.",
+ "type": "string"
+ },
+ "last": {
+ "description": "Last link.",
+ "nullable": true,
+ "type": "string"
+ },
+ "next": {
+ "description": "Next link.",
+ "type": "string"
+ },
+ "prev": {
+ "description": "Previous link.",
+ "nullable": true,
+ "type": "string"
+ },
+ "self": {
+ "description": "Current link.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "meta": {
+ "description": "Teams response metadata.",
+ "properties": {
+ "pagination": {
+ "description": "Teams response metadata.",
+ "properties": {
+ "first_offset": {
+ "description": "The first offset.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "last_offset": {
+ "description": "The last offset.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "limit": {
+ "description": "Pagination limit.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "next_offset": {
+ "description": "The next offset.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "offset": {
+ "description": "The offset.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "prev_offset": {
+ "description": "The previous offset.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "total": {
+ "description": "Total results.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "type": {
+ "description": "Offset type.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
},
- "type": "array"
+ "type": "object"
}
},
- "required": [
- "errors"
- ],
"type": "object"
}
}
},
- "description": "Concurrent Modification"
+ "description": "OK"
},
"403": {
"content": {
@@ -388429,63 +413458,7 @@
}
}
},
- "description": "Not Authorized"
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Not Found"
- },
- "409": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Conflict"
+ "description": "Forbidden"
},
"429": {
"content": {
@@ -388522,707 +413495,415 @@
"appKeyAuth": []
},
{
- "AuthZ": []
+ "AuthZ": [
+ "teams_read"
+ ]
}
],
- "summary": "Delete an existing job",
+ "summary": "Get all teams",
"tags": [
- "Security Monitoring"
+ "Teams"
],
- "x-menu-order": 23,
- "x-undo": {
- "type": "idempotent"
+ "x-menu-order": 1,
+ "x-pagination": {
+ "limitParam": "page[size]",
+ "pageParam": "page[number]",
+ "resultsPath": "data"
},
- "x-unstable": "**Note**: This endpoint is in beta and may be subject to changes.\nPlease check the documentation regularly for updates."
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "teams_read"
+ ]
+ },
+ "x-undo": {
+ "type": "safe"
+ }
},
- "get": {
- "description": "Get a job's details.",
- "operationId": "GetHistoricalJob",
- "parameters": [
- {
- "description": "The ID of the job.",
- "in": "path",
- "name": "job_id",
- "required": true,
- "schema": {
- "type": "string"
+ "post": {
+ "description": "Create a new team.\nUser IDs passed through the `users` relationship field are added to the team.",
+ "operationId": "CreateTeam",
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Request to create a team",
+ "properties": {
+ "data": {
+ "description": "Team create",
+ "properties": {
+ "attributes": {
+ "description": "Team creation attributes",
+ "properties": {
+ "avatar": {
+ "description": "Unicode representation of the avatar for the team, limited to a single grapheme",
+ "example": "🥑",
+ "nullable": true,
+ "type": "string"
+ },
+ "banner": {
+ "description": "Banner selection for the team",
+ "format": "int64",
+ "nullable": true,
+ "type": "integer"
+ },
+ "description": {
+ "description": "Free-form markdown description/content for the team's homepage",
+ "type": "string"
+ },
+ "handle": {
+ "description": "The team's identifier",
+ "example": "example-team",
+ "maxLength": 195,
+ "type": "string"
+ },
+ "hidden_modules": {
+ "description": "Collection of hidden modules for the team",
+ "items": {
+ "description": "String identifier of the module",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "The name of the team",
+ "example": "Example Team",
+ "maxLength": 200,
+ "type": "string"
+ },
+ "visible_modules": {
+ "description": "Collection of visible modules for the team",
+ "items": {
+ "description": "String identifier of the module",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "handle",
+ "name"
+ ],
+ "type": "object"
+ },
+ "relationships": {
+ "description": "Relationships formed with the team on creation",
+ "properties": {
+ "users": {
+ "description": "Relationship to users.",
+ "properties": {
+ "data": {
+ "description": "Relationships to user objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "default": "team",
+ "description": "Team type",
+ "enum": [
+ "team"
+ ],
+ "example": "team",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM"
+ ]
+ }
+ },
+ "required": [
+ "attributes",
+ "type"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
}
- }
- ],
+ },
+ "required": true
+ },
"responses": {
- "200": {
+ "201": {
"content": {
"application/json": {
"schema": {
- "description": "Historical job response.",
+ "description": "Response with a team",
"properties": {
"data": {
- "description": "Historical job response data.",
+ "description": "A team",
"properties": {
"attributes": {
- "description": "Historical job attributes.",
+ "description": "Team attributes",
"properties": {
- "createdAt": {
- "description": "Time when the job was created.",
+ "avatar": {
+ "description": "Unicode representation of the avatar for the team, limited to a single grapheme",
+ "example": "🥑",
+ "nullable": true,
"type": "string"
},
- "createdByHandle": {
- "description": "The handle of the user who created the job.",
+ "banner": {
+ "description": "Banner selection for the team",
+ "format": "int64",
+ "nullable": true,
+ "type": "integer"
+ },
+ "created_at": {
+ "description": "Creation date of the team",
+ "format": "date-time",
"type": "string"
},
- "createdByName": {
- "description": "The name of the user who created the job.",
+ "description": {
+ "description": "Free-form markdown description/content for the team's homepage",
+ "nullable": true,
"type": "string"
},
- "createdFromRuleId": {
- "description": "ID of the rule used to create the job (if it is created from a rule).",
+ "handle": {
+ "description": "The team's identifier",
+ "example": "example-team",
+ "maxLength": 195,
"type": "string"
},
- "jobDefinition": {
- "description": "Definition of a historical job.",
+ "hidden_modules": {
+ "description": "Collection of hidden modules for the team",
+ "items": {
+ "description": "String identifier of the module",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "link_count": {
+ "description": "The number of links belonging to the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "readOnly": true,
+ "type": "integer"
+ },
+ "modified_at": {
+ "description": "Modification date of the team",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the team",
+ "example": "Example Team",
+ "maxLength": 200,
+ "type": "string"
+ },
+ "summary": {
+ "description": "A brief summary of the team, derived from the `description`",
+ "maxLength": 120,
+ "nullable": true,
+ "type": "string"
+ },
+ "user_count": {
+ "description": "The number of users belonging to the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "readOnly": true,
+ "type": "integer"
+ },
+ "visible_modules": {
+ "description": "Collection of visible modules for the team",
+ "items": {
+ "description": "String identifier of the module",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "handle",
+ "name"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "description": "The team's identifier",
+ "example": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Resources related to a team",
+ "properties": {
+ "team_links": {
+ "description": "Relationship between a team and a team link",
"properties": {
- "calculatedFields": {
- "description": "Calculated fields.",
- "items": {
- "description": "Calculated field.",
- "properties": {
- "expression": {
- "description": "Expression.",
- "example": "@request_end_timestamp - @request_start_timestamp",
- "type": "string"
- },
- "name": {
- "description": "Field name.",
- "example": "response_time",
- "type": "string"
- }
- },
- "required": [
- "name",
- "expression"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "cases": {
- "description": "Cases used for generating job results.",
+ "data": {
+ "description": "Related team links",
"items": {
- "description": "Case when signal is generated.",
+ "description": "Relationship between a link and a team",
"properties": {
- "actions": {
- "description": "Action to perform for each rule case.",
- "items": {
- "description": "Action to perform when a signal is triggered. Only available for Application Security rule type.",
- "properties": {
- "options": {
- "description": "Options for the rule action",
- "properties": {
- "duration": {
- "description": "Duration of the action in seconds. 0 indicates no expiration.",
- "example": 0,
- "format": "int64",
- "minimum": 0,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "type": {
- "description": "The action type.",
- "enum": [
- "block_ip",
- "block_user"
- ],
- "type": "string",
- "x-enum-varnames": [
- "BLOCK_IP",
- "BLOCK_USER"
- ]
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "condition": {
- "description": "A case contains logical operations (`>`,`>=`, `&&`, `||`) to determine if a signal should be generated\nbased on the event counts in the previously defined queries.",
- "type": "string"
- },
- "name": {
- "description": "Name of the case.",
+ "id": {
+ "description": "The team link's identifier",
+ "example": "f9bb8444-af7f-11ec-ac2c-da7ad0900001",
"type": "string"
},
- "notifications": {
- "description": "Notification targets.",
- "items": {
- "description": "Notification.",
- "type": "string"
- },
- "type": "array"
- },
- "status": {
- "description": "Severity of the Security Signal.",
+ "type": {
+ "default": "team_links",
+ "description": "Team link type",
"enum": [
- "info",
- "low",
- "medium",
- "high",
- "critical"
+ "team_links"
],
- "example": "critical",
+ "example": "team_links",
"type": "string",
"x-enum-varnames": [
- "INFO",
- "LOW",
- "MEDIUM",
- "HIGH",
- "CRITICAL"
+ "TEAM_LINKS"
]
}
},
"required": [
- "status"
+ "id",
+ "type"
],
- "type": "object"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
},
"type": "array"
},
- "from": {
- "description": "Starting time of data analyzed by the job.",
- "example": 1729843470000,
- "format": "int64",
- "type": "integer"
- },
- "groupSignalsBy": {
- "description": "Additional grouping to perform on top of the existing groups in the query section. Must be a subset of the existing groups.",
- "example": [
- "service"
- ],
- "items": {
- "description": "Field to group by.",
- "type": "string"
+ "links": {
+ "description": "Links attributes.",
+ "properties": {
+ "related": {
+ "description": "Related link.",
+ "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
+ "type": "string"
+ }
},
- "type": "array"
- },
- "index": {
- "description": "Index used to load the data.",
- "example": "cloud_siem",
- "type": "string"
- },
- "message": {
- "description": "Message for generated results.",
- "example": "A large number of failed login attempts.",
- "type": "string"
- },
- "name": {
- "description": "Job name.",
- "example": "Excessive number of failed attempts.",
- "type": "string"
- },
- "options": {
- "description": "Job options.",
+ "type": "object"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "user_team_permissions": {
+ "description": "Relationship between a user team permission and a team",
+ "properties": {
+ "data": {
+ "description": "Related user team permission data",
"properties": {
- "detectionMethod": {
- "description": "The detection method.",
- "enum": [
- "threshold",
- "new_value",
- "anomaly_detection",
- "impossible_travel",
- "hardcoded",
- "third_party",
- "anomaly_threshold"
- ],
- "type": "string",
- "x-enum-varnames": [
- "THRESHOLD",
- "NEW_VALUE",
- "ANOMALY_DETECTION",
- "IMPOSSIBLE_TRAVEL",
- "HARDCODED",
- "THIRD_PARTY",
- "ANOMALY_THRESHOLD"
- ]
- },
- "evaluationWindow": {
- "description": "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.",
- "enum": [
- 0,
- 60,
- 300,
- 600,
- 900,
- 1800,
- 3600,
- 7200
- ],
- "format": "int32",
- "type": "integer",
- "x-enum-varnames": [
- "ZERO_MINUTES",
- "ONE_MINUTE",
- "FIVE_MINUTES",
- "TEN_MINUTES",
- "FIFTEEN_MINUTES",
- "THIRTY_MINUTES",
- "ONE_HOUR",
- "TWO_HOURS"
- ]
- },
- "impossibleTravelOptions": {
- "description": "Options on impossible travel detection method.",
- "properties": {
- "baselineUserLocations": {
- "description": "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.",
- "example": true,
- "type": "boolean"
- }
- },
- "type": "object"
- },
- "keepAlive": {
- "description": "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.",
- "enum": [
- 0,
- 60,
- 300,
- 600,
- 900,
- 1800,
- 3600,
- 7200,
- 10800,
- 21600
- ],
- "format": "int32",
- "type": "integer",
- "x-enum-varnames": [
- "ZERO_MINUTES",
- "ONE_MINUTE",
- "FIVE_MINUTES",
- "TEN_MINUTES",
- "FIFTEEN_MINUTES",
- "THIRTY_MINUTES",
- "ONE_HOUR",
- "TWO_HOURS",
- "THREE_HOURS",
- "SIX_HOURS"
- ]
+ "id": {
+ "description": "The ID of the user team permission",
+ "example": "UserTeamPermissions-aeadc05e-98a8-11ec-ac2c-da7ad0900001-416595",
+ "type": "string"
},
- "maxSignalDuration": {
- "description": "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.",
+ "type": {
+ "default": "user_team_permissions",
+ "description": "User team permission type",
"enum": [
- 0,
- 60,
- 300,
- 600,
- 900,
- 1800,
- 3600,
- 7200,
- 10800,
- 21600,
- 43200,
- 86400
+ "user_team_permissions"
],
- "format": "int32",
- "type": "integer",
+ "example": "user_team_permissions",
+ "type": "string",
"x-enum-varnames": [
- "ZERO_MINUTES",
- "ONE_MINUTE",
- "FIVE_MINUTES",
- "TEN_MINUTES",
- "FIFTEEN_MINUTES",
- "THIRTY_MINUTES",
- "ONE_HOUR",
- "TWO_HOURS",
- "THREE_HOURS",
- "SIX_HOURS",
- "TWELVE_HOURS",
- "ONE_DAY"
+ "USER_TEAM_PERMISSIONS"
]
- },
- "newValueOptions": {
- "description": "Options on new value detection method.",
- "properties": {
- "forgetAfter": {
- "description": "The duration in days after which a learned value is forgotten.",
- "enum": [
- 1,
- 2,
- 7,
- 14,
- 21,
- 28
- ],
- "format": "int32",
- "type": "integer",
- "x-enum-varnames": [
- "ONE_DAY",
- "TWO_DAYS",
- "ONE_WEEK",
- "TWO_WEEKS",
- "THREE_WEEKS",
- "FOUR_WEEKS"
- ]
- },
- "learningDuration": {
- "default": 0,
- "description": "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.",
- "enum": [
- 0,
- 1,
- 7
- ],
- "format": "int32",
- "type": "integer",
- "x-enum-varnames": [
- "ZERO_DAYS",
- "ONE_DAY",
- "SEVEN_DAYS"
- ]
- },
- "learningMethod": {
- "default": "duration",
- "description": "The learning method used to determine when signals should be generated for values that weren't learned.",
- "enum": [
- "duration",
- "threshold"
- ],
- "type": "string",
- "x-enum-varnames": [
- "DURATION",
- "THRESHOLD"
- ]
- },
- "learningThreshold": {
- "default": 0,
- "description": "A number of occurrences after which signals will be generated for values that weren't learned.",
- "enum": [
- 0,
- 1
- ],
- "format": "int32",
- "type": "integer",
- "x-enum-varnames": [
- "ZERO_OCCURRENCES",
- "ONE_OCCURRENCE"
- ]
- }
- },
- "type": "object"
- },
- "thirdPartyRuleOptions": {
- "description": "Options on third party detection method.",
- "properties": {
- "defaultNotifications": {
- "description": "Notification targets for the logs that do not correspond to any of the cases.",
- "items": {
- "description": "Notification.",
- "type": "string"
- },
- "type": "array"
- },
- "defaultStatus": {
- "description": "Severity of the Security Signal.",
- "enum": [
- "info",
- "low",
- "medium",
- "high",
- "critical"
- ],
- "example": "critical",
- "type": "string",
- "x-enum-varnames": [
- "INFO",
- "LOW",
- "MEDIUM",
- "HIGH",
- "CRITICAL"
- ]
- },
- "rootQueries": {
- "description": "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.",
- "items": {
- "description": "A query to be combined with the third party case query.",
- "properties": {
- "groupByFields": {
- "description": "Fields to group by.",
- "items": {
- "description": "Field.",
- "type": "string"
- },
- "type": "array"
- },
- "query": {
- "description": "Query to run on logs.",
- "example": "source:cloudtrail",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "signalTitleTemplate": {
- "description": "A template for the signal title; if omitted, the title is generated based on the case name.",
- "type": "string"
- }
- },
- "type": "object"
}
},
- "type": "object"
- },
- "queries": {
- "description": "Queries for selecting logs analyzed by the job.",
- "items": {
- "description": "Query for selecting logs analyzed by the historical job.",
- "properties": {
- "aggregation": {
- "description": "The aggregation type.",
- "enum": [
- "count",
- "cardinality",
- "sum",
- "max",
- "new_value",
- "geo_data",
- "event_count",
- "none"
- ],
- "type": "string",
- "x-enum-varnames": [
- "COUNT",
- "CARDINALITY",
- "SUM",
- "MAX",
- "NEW_VALUE",
- "GEO_DATA",
- "EVENT_COUNT",
- "NONE"
- ]
- },
- "distinctFields": {
- "description": "Field for which the cardinality is measured. Sent as an array.",
- "items": {
- "description": "Field.",
- "type": "string"
- },
- "type": "array"
- },
- "groupByFields": {
- "description": "Fields to group by.",
- "items": {
- "description": "Field.",
- "type": "string"
- },
- "type": "array"
- },
- "hasOptionalGroupByFields": {
- "description": "When false, events without a group-by value are ignored by the query. When true, events with missing group-by fields are processed with `N/A`, replacing the missing values.",
- "example": false,
- "readOnly": true,
- "type": "boolean"
- },
- "metrics": {
- "description": "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.",
- "items": {
- "description": "Field.",
- "type": "string"
- },
- "type": "array"
- },
- "name": {
- "description": "Name of the query.",
- "type": "string"
- },
- "query": {
- "description": "Query to run on logs.",
- "example": "a > 3",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "referenceTables": {
- "description": "Reference tables used in the queries.",
- "items": {
- "description": "Reference tables used in the queries.",
- "properties": {
- "checkPresence": {
- "description": "Whether to include or exclude the matched values.",
- "type": "boolean"
- },
- "columnName": {
- "description": "The name of the column in the reference table.",
- "type": "string"
- },
- "logFieldPath": {
- "description": "The field in the log to match against the reference table.",
- "type": "string"
- },
- "ruleQueryName": {
- "description": "The name of the query to apply the reference table to.",
- "type": "string"
- },
- "tableName": {
- "description": "The name of the reference table.",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "tags": {
- "description": "Tags for generated signals.",
- "items": {
- "type": "string"
- },
- "type": "array"
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
},
- "thirdPartyCases": {
- "description": "Cases for generating results from third-party detection method. Only available for third-party detection method.",
- "example": [],
- "items": {
- "description": "Case when a signal is generated by a third party rule.",
- "properties": {
- "name": {
- "description": "Name of the case.",
- "type": "string"
- },
- "notifications": {
- "description": "Notification targets for each case.",
- "items": {
- "description": "Notification.",
- "type": "string"
- },
- "type": "array"
- },
- "query": {
- "description": "A query to map a third party event to this case.",
- "type": "string"
- },
- "status": {
- "description": "Severity of the Security Signal.",
- "enum": [
- "info",
- "low",
- "medium",
- "high",
- "critical"
- ],
- "example": "critical",
- "type": "string",
- "x-enum-varnames": [
- "INFO",
- "LOW",
- "MEDIUM",
- "HIGH",
- "CRITICAL"
- ]
- }
- },
- "required": [
- "status"
- ],
- "type": "object"
+ "links": {
+ "description": "Links attributes.",
+ "properties": {
+ "related": {
+ "description": "Related link.",
+ "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
+ "type": "string"
+ }
},
- "type": "array"
- },
- "to": {
- "description": "Ending time of data analyzed by the job.",
- "example": 1729847070000,
- "format": "int64",
- "type": "integer"
- },
- "type": {
- "description": "Job type.",
- "type": "string"
+ "type": "object"
}
},
- "required": [
- "from",
- "to",
- "index",
- "name",
- "cases",
- "queries",
- "message"
- ],
- "type": "object"
- },
- "jobName": {
- "description": "Job name.",
- "type": "string"
- },
- "jobStatus": {
- "description": "Job status.",
- "type": "string"
- },
- "modifiedAt": {
- "description": "Last modification time of the job.",
- "type": "string"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
"type": "object"
},
- "id": {
- "description": "ID of the job.",
- "type": "string"
- },
"type": {
- "description": "Type of payload.",
+ "default": "team",
+ "description": "Team type",
"enum": [
- "historicalDetectionsJob"
+ "team"
],
+ "example": "team",
"type": "string",
"x-enum-varnames": [
- "HISTORICALDETECTIONSJOB"
+ "TEAM"
]
}
},
- "type": "object"
- }
- },
- "type": "object"
- }
- }
- },
- "description": "OK"
- },
- "400": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
+ "required": [
+ "attributes",
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
- "required": [
- "errors"
- ],
"type": "object"
}
}
},
- "description": "Bad Request"
+ "description": "CREATED"
},
"403": {
"content": {
@@ -389250,9 +413931,9 @@
}
}
},
- "description": "Not Authorized"
+ "description": "Forbidden"
},
- "404": {
+ "409": {
"content": {
"application/json": {
"schema": {
@@ -389278,7 +413959,7 @@
}
}
},
- "description": "Not Found"
+ "description": "API error response."
},
"429": {
"content": {
@@ -389316,36 +413997,60 @@
},
{
"AuthZ": [
- "security_monitoring_rules_read"
+ "teams_read",
+ "teams_manage"
]
}
],
- "summary": "Get a job's details",
+ "summary": "Create a team",
"tags": [
- "Security Monitoring"
+ "Teams"
],
- "x-menu-order": 21,
+ "x-codegen-request-body-name": "body",
+ "x-given": {
+ "dd_team": {
+ "parameters": [
+ {
+ "name": "body",
+ "value": "{\n \"data\": {\n \"attributes\": {\n \"handle\": \"test-handle-{{ unique_hash }}\",\n \"name\": \"test-name-{{ unique_hash }}\"\n },\n \"type\": \"team\"\n }\n}"
+ }
+ ],
+ "step": "there is a valid \"dd_team\" in the system"
+ }
+ },
+ "x-menu-order": 2,
"x-permission": {
- "operator": "OR",
+ "operator": "AND",
"permissions": [
- "security_monitoring_rules_read"
+ "teams_read",
+ "teams_manage"
]
},
"x-undo": {
- "type": "safe"
- },
- "x-unstable": "**Note**: This endpoint is in beta and may be subject to changes.\nPlease check the documentation regularly for updates."
+ "operationId": "DeleteTeam",
+ "parameters": [
+ {
+ "name": "team_id",
+ "source": "data.id"
+ }
+ ],
+ "type": "unsafe"
+ }
+ },
+ "x-merge-override": {
+ "get": false,
+ "post": false
}
},
- "/api/v2/siem-historical-detections/jobs/{job_id}/cancel": {
- "patch": {
- "description": "Cancel a historical job.",
- "operationId": "CancelHistoricalJob",
+ "/api/v2/team/{team_id}": {
+ "delete": {
+ "description": "Remove a team using the team's `id`.",
+ "operationId": "DeleteTeam",
"parameters": [
{
- "description": "The ID of the job.",
+ "description": "None",
"in": "path",
- "name": "job_id",
+ "name": "team_id",
"required": true,
"schema": {
"type": "string"
@@ -389354,9 +414059,9 @@
],
"responses": {
"204": {
- "description": "OK"
+ "description": "No Content"
},
- "400": {
+ "403": {
"content": {
"application/json": {
"schema": {
@@ -389382,9 +414087,9 @@
}
}
},
- "description": "Bad Request"
+ "description": "Forbidden"
},
- "401": {
+ "404": {
"content": {
"application/json": {
"schema": {
@@ -389410,9 +414115,9 @@
}
}
},
- "description": "Concurrent Modification"
+ "description": "API error response."
},
- "403": {
+ "429": {
"content": {
"application/json": {
"schema": {
@@ -389438,9 +414143,292 @@
}
}
},
- "description": "Not Authorized"
+ "description": "Too many requests"
+ }
+ },
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
},
- "404": {
+ {
+ "AuthZ": [
+ "teams_read",
+ "teams_manage"
+ ]
+ }
+ ],
+ "summary": "Remove a team",
+ "tags": [
+ "Teams"
+ ],
+ "x-menu-order": 5,
+ "x-permission": {
+ "operator": "AND",
+ "permissions": [
+ "teams_read",
+ "teams_manage"
+ ]
+ },
+ "x-undo": {
+ "type": "idempotent"
+ }
+ },
+ "get": {
+ "description": "Get a single team using the team's `id`.",
+ "operationId": "GetTeam",
+ "parameters": [
+ {
+ "description": "None",
+ "in": "path",
+ "name": "team_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Response with a team",
+ "properties": {
+ "data": {
+ "description": "A team",
+ "properties": {
+ "attributes": {
+ "description": "Team attributes",
+ "properties": {
+ "avatar": {
+ "description": "Unicode representation of the avatar for the team, limited to a single grapheme",
+ "example": "🥑",
+ "nullable": true,
+ "type": "string"
+ },
+ "banner": {
+ "description": "Banner selection for the team",
+ "format": "int64",
+ "nullable": true,
+ "type": "integer"
+ },
+ "created_at": {
+ "description": "Creation date of the team",
+ "format": "date-time",
+ "type": "string"
+ },
+ "description": {
+ "description": "Free-form markdown description/content for the team's homepage",
+ "nullable": true,
+ "type": "string"
+ },
+ "handle": {
+ "description": "The team's identifier",
+ "example": "example-team",
+ "maxLength": 195,
+ "type": "string"
+ },
+ "hidden_modules": {
+ "description": "Collection of hidden modules for the team",
+ "items": {
+ "description": "String identifier of the module",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "link_count": {
+ "description": "The number of links belonging to the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "readOnly": true,
+ "type": "integer"
+ },
+ "modified_at": {
+ "description": "Modification date of the team",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the team",
+ "example": "Example Team",
+ "maxLength": 200,
+ "type": "string"
+ },
+ "summary": {
+ "description": "A brief summary of the team, derived from the `description`",
+ "maxLength": 120,
+ "nullable": true,
+ "type": "string"
+ },
+ "user_count": {
+ "description": "The number of users belonging to the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "readOnly": true,
+ "type": "integer"
+ },
+ "visible_modules": {
+ "description": "Collection of visible modules for the team",
+ "items": {
+ "description": "String identifier of the module",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "handle",
+ "name"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "description": "The team's identifier",
+ "example": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Resources related to a team",
+ "properties": {
+ "team_links": {
+ "description": "Relationship between a team and a team link",
+ "properties": {
+ "data": {
+ "description": "Related team links",
+ "items": {
+ "description": "Relationship between a link and a team",
+ "properties": {
+ "id": {
+ "description": "The team link's identifier",
+ "example": "f9bb8444-af7f-11ec-ac2c-da7ad0900001",
+ "type": "string"
+ },
+ "type": {
+ "default": "team_links",
+ "description": "Team link type",
+ "enum": [
+ "team_links"
+ ],
+ "example": "team_links",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM_LINKS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ },
+ "links": {
+ "description": "Links attributes.",
+ "properties": {
+ "related": {
+ "description": "Related link.",
+ "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "user_team_permissions": {
+ "description": "Relationship between a user team permission and a team",
+ "properties": {
+ "data": {
+ "description": "Related user team permission data",
+ "properties": {
+ "id": {
+ "description": "The ID of the user team permission",
+ "example": "UserTeamPermissions-aeadc05e-98a8-11ec-ac2c-da7ad0900001-416595",
+ "type": "string"
+ },
+ "type": {
+ "default": "user_team_permissions",
+ "description": "User team permission type",
+ "enum": [
+ "user_team_permissions"
+ ],
+ "example": "user_team_permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "USER_TEAM_PERMISSIONS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "links": {
+ "description": "Links attributes.",
+ "properties": {
+ "related": {
+ "description": "Related link.",
+ "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "default": "team",
+ "description": "Team type",
+ "enum": [
+ "team"
+ ],
+ "example": "team",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM"
+ ]
+ }
+ },
+ "required": [
+ "attributes",
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "OK"
+ },
+ "403": {
"content": {
"application/json": {
"schema": {
@@ -389466,9 +414454,9 @@
}
}
},
- "description": "Not Found"
+ "description": "Forbidden"
},
- "409": {
+ "404": {
"content": {
"application/json": {
"schema": {
@@ -389494,7 +414482,7 @@
}
}
},
- "description": "Conflict"
+ "description": "API error response."
},
"429": {
"content": {
@@ -389532,91 +414520,178 @@
},
{
"AuthZ": [
- "security_monitoring_rules_write"
+ "teams_read"
]
}
],
- "summary": "Cancel a historical job",
+ "summary": "Get a team",
"tags": [
- "Security Monitoring"
+ "Teams"
],
- "x-menu-order": 22,
+ "x-menu-order": 3,
"x-permission": {
"operator": "OR",
"permissions": [
- "security_monitoring_rules_write"
+ "teams_read"
]
},
"x-undo": {
- "type": "idempotent"
- },
- "x-unstable": "**Note**: This endpoint is in beta and may be subject to changes.\nPlease check the documentation regularly for updates."
- }
- },
- "/api/v2/slo/report": {
- "post": {
- "description": "Create a job to generate an SLO report. The report job is processed asynchronously and eventually results in a CSV report being available for download.\n\nCheck the status of the job and download the CSV report using the returned `report_id`.",
- "operationId": "CreateSLOReportJob",
+ "type": "safe"
+ }
+ },
+ "patch": {
+ "description": "Update a team using the team's `id`.\nIf the `team_links` relationship is present, the associated links are updated to be in the order they appear in the array, and any existing team links not present are removed.",
+ "operationId": "UpdateTeam",
+ "parameters": [
+ {
+ "description": "None",
+ "in": "path",
+ "name": "team_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
"requestBody": {
"content": {
"application/json": {
"schema": {
- "description": "The SLO report request body.",
+ "description": "Team update request",
"properties": {
"data": {
- "description": "The data portion of the SLO report request.",
+ "description": "Team update request",
"properties": {
"attributes": {
- "description": "The attributes portion of the SLO report request.",
+ "description": "Team update attributes",
"properties": {
- "from_ts": {
- "description": "The `from` timestamp for the report in epoch seconds.",
- "example": 1690901870,
+ "avatar": {
+ "description": "Unicode representation of the avatar for the team, limited to a single grapheme",
+ "example": "🥑",
+ "nullable": true,
+ "type": "string"
+ },
+ "banner": {
+ "description": "Banner selection for the team",
"format": "int64",
+ "nullable": true,
"type": "integer"
},
- "interval": {
- "description": "The frequency at which report data is to be generated.",
- "enum": [
- "daily",
- "weekly",
- "monthly"
- ],
- "example": "weekly",
- "type": "string",
- "x-enum-varnames": [
- "DAILY",
- "WEEKLY",
- "MONTHLY"
- ]
+ "description": {
+ "description": "Free-form markdown description/content for the team's homepage",
+ "type": "string"
},
- "query": {
- "description": "The query string used to filter SLO results. Some examples of queries include `service:` and `slo-name`.",
- "example": "slo_type:metric",
+ "handle": {
+ "description": "The team's identifier",
+ "example": "example-team",
+ "maxLength": 195,
"type": "string"
},
- "timezone": {
- "description": "The timezone used to determine the start and end of each interval. For example, weekly intervals start at 12am on Sunday in the specified timezone.",
- "example": "America/New_York",
+ "hidden_modules": {
+ "description": "Collection of hidden modules for the team",
+ "items": {
+ "description": "String identifier of the module",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "The name of the team",
+ "example": "Example Team",
+ "maxLength": 200,
"type": "string"
},
- "to_ts": {
- "description": "The `to` timestamp for the report in epoch seconds.",
- "example": 1706803070,
- "format": "int64",
- "type": "integer"
+ "visible_modules": {
+ "description": "Collection of visible modules for the team",
+ "items": {
+ "description": "String identifier of the module",
+ "type": "string"
+ },
+ "type": "array"
}
},
"required": [
- "query",
- "from_ts",
- "to_ts"
+ "handle",
+ "name"
],
"type": "object"
+ },
+ "relationships": {
+ "description": "Team update relationships",
+ "properties": {
+ "team_links": {
+ "description": "Relationship between a team and a team link",
+ "properties": {
+ "data": {
+ "description": "Related team links",
+ "items": {
+ "description": "Relationship between a link and a team",
+ "properties": {
+ "id": {
+ "description": "The team link's identifier",
+ "example": "f9bb8444-af7f-11ec-ac2c-da7ad0900001",
+ "type": "string"
+ },
+ "type": {
+ "default": "team_links",
+ "description": "Team link type",
+ "enum": [
+ "team_links"
+ ],
+ "example": "team_links",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM_LINKS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ },
+ "links": {
+ "description": "Links attributes.",
+ "properties": {
+ "related": {
+ "description": "Related link.",
+ "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "default": "team",
+ "description": "Team type",
+ "enum": [
+ "team"
+ ],
+ "example": "team",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM"
+ ]
}
},
"required": [
- "attributes"
+ "attributes",
+ "type"
],
"type": "object"
}
@@ -389628,7 +414703,6 @@
}
}
},
- "description": "Create SLO report job request body.",
"required": true
},
"responses": {
@@ -389636,23 +414710,233 @@
"content": {
"application/json": {
"schema": {
- "description": "The SLO report response.",
+ "description": "Response with a team",
"properties": {
"data": {
- "description": "The data portion of the SLO report response.",
+ "description": "A team",
"properties": {
+ "attributes": {
+ "description": "Team attributes",
+ "properties": {
+ "avatar": {
+ "description": "Unicode representation of the avatar for the team, limited to a single grapheme",
+ "example": "🥑",
+ "nullable": true,
+ "type": "string"
+ },
+ "banner": {
+ "description": "Banner selection for the team",
+ "format": "int64",
+ "nullable": true,
+ "type": "integer"
+ },
+ "created_at": {
+ "description": "Creation date of the team",
+ "format": "date-time",
+ "type": "string"
+ },
+ "description": {
+ "description": "Free-form markdown description/content for the team's homepage",
+ "nullable": true,
+ "type": "string"
+ },
+ "handle": {
+ "description": "The team's identifier",
+ "example": "example-team",
+ "maxLength": 195,
+ "type": "string"
+ },
+ "hidden_modules": {
+ "description": "Collection of hidden modules for the team",
+ "items": {
+ "description": "String identifier of the module",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "link_count": {
+ "description": "The number of links belonging to the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "readOnly": true,
+ "type": "integer"
+ },
+ "modified_at": {
+ "description": "Modification date of the team",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the team",
+ "example": "Example Team",
+ "maxLength": 200,
+ "type": "string"
+ },
+ "summary": {
+ "description": "A brief summary of the team, derived from the `description`",
+ "maxLength": 120,
+ "nullable": true,
+ "type": "string"
+ },
+ "user_count": {
+ "description": "The number of users belonging to the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "readOnly": true,
+ "type": "integer"
+ },
+ "visible_modules": {
+ "description": "Collection of visible modules for the team",
+ "items": {
+ "description": "String identifier of the module",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "handle",
+ "name"
+ ],
+ "type": "object"
+ },
"id": {
- "description": "The ID of the report job.",
- "example": "dc8d92aa-e0af-11ee-af21-1feeaccaa3a3",
+ "description": "The team's identifier",
+ "example": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
"type": "string"
},
+ "relationships": {
+ "description": "Resources related to a team",
+ "properties": {
+ "team_links": {
+ "description": "Relationship between a team and a team link",
+ "properties": {
+ "data": {
+ "description": "Related team links",
+ "items": {
+ "description": "Relationship between a link and a team",
+ "properties": {
+ "id": {
+ "description": "The team link's identifier",
+ "example": "f9bb8444-af7f-11ec-ac2c-da7ad0900001",
+ "type": "string"
+ },
+ "type": {
+ "default": "team_links",
+ "description": "Team link type",
+ "enum": [
+ "team_links"
+ ],
+ "example": "team_links",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM_LINKS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ },
+ "links": {
+ "description": "Links attributes.",
+ "properties": {
+ "related": {
+ "description": "Related link.",
+ "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "user_team_permissions": {
+ "description": "Relationship between a user team permission and a team",
+ "properties": {
+ "data": {
+ "description": "Related user team permission data",
+ "properties": {
+ "id": {
+ "description": "The ID of the user team permission",
+ "example": "UserTeamPermissions-aeadc05e-98a8-11ec-ac2c-da7ad0900001-416595",
+ "type": "string"
+ },
+ "type": {
+ "default": "user_team_permissions",
+ "description": "User team permission type",
+ "enum": [
+ "user_team_permissions"
+ ],
+ "example": "user_team_permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "USER_TEAM_PERMISSIONS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "links": {
+ "description": "Links attributes.",
+ "properties": {
+ "related": {
+ "description": "Related link.",
+ "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object"
+ },
"type": {
- "description": "The type of ID.",
- "example": "report_id",
- "type": "string"
+ "default": "team",
+ "description": "Team type",
+ "enum": [
+ "team"
+ ],
+ "example": "team",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM"
+ ]
}
},
- "type": "object"
+ "required": [
+ "attributes",
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
"type": "object"
@@ -389687,7 +414971,7 @@
}
}
},
- "description": "Bad Request"
+ "description": "API error response."
},
"403": {
"content": {
@@ -389717,130 +415001,7 @@
},
"description": "Forbidden"
},
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Too many requests"
- }
- },
- "security": [
- {
- "apiKeyAuth": [],
- "appKeyAuth": []
- },
- {
- "AuthZ": [
- "slos_read"
- ]
- }
- ],
- "summary": "Create a new SLO report",
- "tags": [
- "Service Level Objectives"
- ],
- "x-codegen-request-body-name": "body",
- "x-given": {
- "report": {
- "parameters": [
- {
- "name": "body",
- "value": "{\n \"data\": {\n \"attributes\": {\n \"query\": \"slo_type:metric \\\"SLO Reporting Test\\\"\",\n \"interval\": \"monthly\",\n \"from_ts\": {{ timestamp(\"now - 21d\") }},\n \"to_ts\": {{ timestamp(\"now\") }}\n }\n }\n}"
- }
- ],
- "step": "there is a valid \"report\" in the system"
- }
- },
- "x-menu-order": 101,
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "slos_read"
- ]
- },
- "x-undo": {
- "type": "safe"
- },
- "x-unstable": "**Note**: This feature is in private beta. To request access, use the request access form in the [Service Level Objectives](https://docs.datadoghq.com/service_management/service_level_objectives/#slo-csv-export) docs."
- }
- },
- "/api/v2/slo/report/{report_id}/download": {
- "get": {
- "description": "Download an SLO report. This can only be performed after the report job has completed.\n\nReports are not guaranteed to exist indefinitely. Datadog recommends that you download the report as soon as it is available.",
- "operationId": "GetSLOReport",
- "parameters": [
- {
- "description": "The ID of the report job.",
- "in": "path",
- "name": "report_id",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "text/csv": {
- "schema": {
- "type": "string"
- }
- }
- },
- "description": "OK"
- },
- "400": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Bad Request"
- },
- "403": {
+ "404": {
"content": {
"application/json": {
"schema": {
@@ -389866,9 +415027,9 @@
}
}
},
- "description": "Forbidden"
+ "description": "API error response."
},
- "404": {
+ "409": {
"content": {
"application/json": {
"schema": {
@@ -389894,7 +415055,7 @@
}
}
},
- "description": "Not Found"
+ "description": "API error response."
},
"429": {
"content": {
@@ -389932,30 +415093,41 @@
},
{
"AuthZ": [
- "slos_read"
+ "teams_read"
]
}
],
- "summary": "Get SLO report",
+ "summary": "Update a team",
"tags": [
- "Service Level Objectives"
+ "Teams"
],
- "x-menu-order": 103,
- "x-undo": {
- "type": "safe"
+ "x-codegen-request-body-name": "body",
+ "x-menu-order": 4,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "teams_read"
+ ]
},
- "x-unstable": "**Note**: This feature is in private beta. To request access, use the request access form in the [Service Level Objectives](https://docs.datadoghq.com/service_management/service_level_objectives/#slo-csv-export) docs."
+ "x-undo": {
+ "type": "idempotent"
+ }
+ },
+ "x-merge-override": {
+ "delete": true,
+ "get": false,
+ "patch": false
}
},
- "/api/v2/slo/report/{report_id}/status": {
+ "/api/v2/team/{team_id}/links": {
"get": {
- "description": "Get the status of the SLO report job.",
- "operationId": "GetSLOReportJobStatus",
+ "description": "Get all links for a given team.",
+ "operationId": "GetTeamLinks",
"parameters": [
{
- "description": "The ID of the report job.",
+ "description": "None",
"in": "path",
- "name": "report_id",
+ "name": "team_id",
"required": true,
"schema": {
"type": "string"
@@ -389967,81 +415139,81 @@
"content": {
"application/json": {
"schema": {
- "description": "The SLO report status response.",
+ "description": "Team links response",
"properties": {
"data": {
- "description": "The data portion of the SLO report status response.",
- "properties": {
- "attributes": {
- "description": "The attributes portion of the SLO report status response.",
- "properties": {
- "status": {
- "description": "The status of the SLO report job.",
- "enum": [
- "in_progress",
- "completed",
- "completed_with_errors",
- "failed"
- ],
- "example": "completed",
- "type": "string",
- "x-enum-varnames": [
- "IN_PROGRESS",
- "COMPLETED",
- "COMPLETED_WITH_ERRORS",
- "FAILED"
- ]
- }
+ "description": "Team links response data",
+ "items": {
+ "description": "Team link",
+ "properties": {
+ "attributes": {
+ "description": "Team link attributes",
+ "properties": {
+ "label": {
+ "description": "The link's label",
+ "example": "Link label",
+ "maxLength": 256,
+ "type": "string"
+ },
+ "position": {
+ "description": "The link's position, used to sort links for the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "type": "integer"
+ },
+ "team_id": {
+ "description": "ID of the team the link is associated with",
+ "readOnly": true,
+ "type": "string"
+ },
+ "url": {
+ "description": "The URL for the link",
+ "example": "https://example.com",
+ "type": "string"
+ }
+ },
+ "required": [
+ "label",
+ "url"
+ ],
+ "type": "object"
},
- "type": "object"
- },
- "id": {
- "description": "The ID of the report job.",
- "example": "dc8d92aa-e0af-11ee-af21-1feeaccaa3a3",
- "type": "string"
+ "id": {
+ "description": "The team link's identifier",
+ "example": "b8626d7e-cedd-11eb-abf5-da7ad0900001",
+ "type": "string"
+ },
+ "type": {
+ "default": "team_links",
+ "description": "Team link type",
+ "enum": [
+ "team_links"
+ ],
+ "example": "team_links",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM_LINKS"
+ ]
+ }
},
- "type": {
- "description": "The type of ID.",
- "example": "report_id",
- "type": "string"
+ "required": [
+ "attributes",
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
}
},
- "type": "object"
- }
- },
- "type": "object"
- }
- }
- },
- "description": "OK"
- },
- "400": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
"type": "array"
}
},
- "required": [
- "errors"
- ],
"type": "object"
}
}
},
- "description": "Bad Request"
+ "description": "OK"
},
"403": {
"content": {
@@ -390097,7 +415269,7 @@
}
}
},
- "description": "Not Found"
+ "description": "API error response."
},
"429": {
"content": {
@@ -390135,326 +415307,103 @@
},
{
"AuthZ": [
- "slos_read"
+ "teams_read"
]
}
],
- "summary": "Get SLO report status",
+ "summary": "Get links for a team",
"tags": [
- "Service Level Objectives"
+ "Teams"
],
- "x-menu-order": 102,
+ "x-menu-order": 10,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "teams_read"
+ ]
+ },
"x-undo": {
"type": "safe"
- },
- "x-unstable": "**Note**: This feature is in private beta. To request access, use the request access form in the [Service Level Objectives](https://docs.datadoghq.com/service_management/service_level_objectives/#slo-csv-export) docs."
- }
- },
- "/api/v2/spans/analytics/aggregate": {
+ }
+ },
"post": {
- "description": "The API endpoint to aggregate spans into buckets and compute metrics and timeseries.\nThis endpoint is rate limited to `300` requests per hour.",
- "operationId": "AggregateSpans",
+ "description": "Add a new link to a team.",
+ "operationId": "CreateTeamLink",
+ "parameters": [
+ {
+ "description": "None",
+ "in": "path",
+ "name": "team_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
"requestBody": {
"content": {
"application/json": {
"schema": {
- "description": "The object sent with the request to retrieve a list of aggregated spans from your organization.",
+ "description": "Team link create request",
"properties": {
"data": {
- "description": "The object containing the query content.",
+ "description": "Team link create",
"properties": {
"attributes": {
- "description": "The object containing all the query parameters.",
+ "description": "Team link attributes",
"properties": {
- "compute": {
- "description": "The list of metrics or timeseries to compute for the retrieved buckets.",
- "items": {
- "description": "A compute rule to compute metrics or timeseries.",
- "properties": {
- "aggregation": {
- "description": "An aggregation function.",
- "enum": [
- "count",
- "cardinality",
- "pc75",
- "pc90",
- "pc95",
- "pc98",
- "pc99",
- "sum",
- "min",
- "max",
- "avg",
- "median"
- ],
- "example": "pc90",
- "type": "string",
- "x-enum-varnames": [
- "COUNT",
- "CARDINALITY",
- "PERCENTILE_75",
- "PERCENTILE_90",
- "PERCENTILE_95",
- "PERCENTILE_98",
- "PERCENTILE_99",
- "SUM",
- "MIN",
- "MAX",
- "AVG",
- "MEDIAN"
- ]
- },
- "interval": {
- "description": "The time buckets' size (only used for type=timeseries)\nDefaults to a resolution of 150 points.",
- "example": "5m",
- "type": "string"
- },
- "metric": {
- "description": "The metric to use.",
- "example": "@duration",
- "type": "string"
- },
- "type": {
- "default": "total",
- "description": "The type of compute.",
- "enum": [
- "timeseries",
- "total"
- ],
- "type": "string",
- "x-enum-varnames": [
- "TIMESERIES",
- "TOTAL"
- ]
- }
- },
- "required": [
- "aggregation"
- ],
- "type": "object"
- },
- "type": "array"
+ "label": {
+ "description": "The link's label",
+ "example": "Link label",
+ "maxLength": 256,
+ "type": "string"
},
- "filter": {
- "description": "The search and filter query settings.",
- "properties": {
- "from": {
- "default": "now-15m",
- "description": "The minimum time for the requested spans, supports date-time ISO8601, date math, and regular timestamps (milliseconds).",
- "example": "now-15m",
- "type": "string"
- },
- "query": {
- "default": "*",
- "description": "The search query - following the span search syntax.",
- "example": "service:web* AND @http.status_code:[200 TO 299]",
- "type": "string"
- },
- "to": {
- "default": "now",
- "description": "The maximum time for the requested spans, supports date-time ISO8601, date math, and regular timestamps (milliseconds).",
- "example": "now",
- "type": "string"
- }
- },
- "type": "object"
+ "position": {
+ "description": "The link's position, used to sort links for the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "type": "integer"
},
- "group_by": {
- "description": "The rules for the group by.",
- "items": {
- "description": "A group by rule.",
- "properties": {
- "facet": {
- "description": "The name of the facet to use (required).",
- "example": "host",
- "type": "string"
- },
- "histogram": {
- "description": "Used to perform a histogram computation (only for measure facets).\nNote: At most 100 buckets are allowed, the number of buckets is (max - min)/interval.",
- "properties": {
- "interval": {
- "description": "The bin size of the histogram buckets.",
- "example": 10,
- "format": "double",
- "type": "number"
- },
- "max": {
- "description": "The maximum value for the measure used in the histogram\n(values greater than this one are filtered out).",
- "example": 100,
- "format": "double",
- "type": "number"
- },
- "min": {
- "description": "The minimum value for the measure used in the histogram\n(values smaller than this one are filtered out).",
- "example": 50,
- "format": "double",
- "type": "number"
- }
- },
- "required": [
- "interval",
- "min",
- "max"
- ],
- "type": "object"
- },
- "limit": {
- "default": 10,
- "description": "The maximum buckets to return for this group by.",
- "format": "int64",
- "type": "integer"
- },
- "missing": {
- "description": "The value to use for spans that don't have the facet used to group by.",
- "oneOf": [
- {
- "description": "The missing value to use if there is string valued facet.",
- "type": "string"
- },
- {
- "description": "The missing value to use if there is a number valued facet.",
- "format": "double",
- "type": "number"
- }
- ]
- },
- "sort": {
- "description": "A sort rule.",
- "example": {
- "aggregation": "count",
- "order": "asc"
- },
- "properties": {
- "aggregation": {
- "description": "An aggregation function.",
- "enum": [
- "count",
- "cardinality",
- "pc75",
- "pc90",
- "pc95",
- "pc98",
- "pc99",
- "sum",
- "min",
- "max",
- "avg",
- "median"
- ],
- "example": "pc90",
- "type": "string",
- "x-enum-varnames": [
- "COUNT",
- "CARDINALITY",
- "PERCENTILE_75",
- "PERCENTILE_90",
- "PERCENTILE_95",
- "PERCENTILE_98",
- "PERCENTILE_99",
- "SUM",
- "MIN",
- "MAX",
- "AVG",
- "MEDIAN"
- ]
- },
- "metric": {
- "description": "The metric to sort by (only used for `type=measure`).",
- "example": "@duration",
- "type": "string"
- },
- "order": {
- "description": "The order to use, ascending or descending.",
- "enum": [
- "asc",
- "desc"
- ],
- "example": "asc",
- "type": "string",
- "x-enum-varnames": [
- "ASCENDING",
- "DESCENDING"
- ]
- },
- "type": {
- "default": "alphabetical",
- "description": "The type of sorting algorithm.",
- "enum": [
- "alphabetical",
- "measure"
- ],
- "type": "string",
- "x-enum-varnames": [
- "ALPHABETICAL",
- "MEASURE"
- ]
- }
- },
- "type": "object"
- },
- "total": {
- "default": false,
- "description": "A resulting object to put the given computes in over all the matching records.",
- "oneOf": [
- {
- "description": "If set to true, creates an additional bucket labeled \"$facet_total\".",
- "type": "boolean"
- },
- {
- "description": "A string to use as the key value for the total bucket.",
- "type": "string"
- },
- {
- "description": "A number to use as the key value for the total bucket.",
- "format": "double",
- "type": "number"
- }
- ]
- }
- },
- "required": [
- "facet"
- ],
- "type": "object"
- },
- "type": "array"
+ "team_id": {
+ "description": "ID of the team the link is associated with",
+ "readOnly": true,
+ "type": "string"
},
- "options": {
- "description": "Global query options that are used during the query.\nNote: You should only supply timezone or time offset but not both otherwise the query will fail.",
- "properties": {
- "timeOffset": {
- "description": "The time offset (in seconds) to apply to the query.",
- "format": "int64",
- "type": "integer"
- },
- "timezone": {
- "default": "UTC",
- "description": "The timezone can be specified as GMT, UTC, an offset from UTC (like UTC+1), or as a Timezone Database identifier (like America/New_York).",
- "example": "GMT",
- "type": "string"
- }
- },
- "type": "object"
+ "url": {
+ "description": "The URL for the link",
+ "example": "https://example.com",
+ "type": "string"
}
},
+ "required": [
+ "label",
+ "url"
+ ],
"type": "object"
},
"type": {
- "default": "aggregate_request",
- "description": "The type of resource. The value should always be aggregate_request.",
+ "default": "team_links",
+ "description": "Team link type",
"enum": [
- "aggregate_request"
+ "team_links"
],
- "example": "aggregate_request",
+ "example": "team_links",
"type": "string",
"x-enum-varnames": [
- "AGGREGATE_REQUEST"
+ "TEAM_LINKS"
]
}
},
+ "required": [
+ "attributes",
+ "type"
+ ],
"type": "object"
}
},
+ "required": [
+ "data"
+ ],
"type": "object"
}
}
@@ -390466,148 +415415,70 @@
"content": {
"application/json": {
"schema": {
- "description": "The response object for the spans aggregate API endpoint.",
+ "description": "Team link response",
"properties": {
"data": {
- "description": "The list of matching buckets, one item per bucket.",
- "items": {
- "description": "Spans aggregate.",
- "properties": {
- "attributes": {
- "description": "A bucket values.",
- "properties": {
- "by": {
- "additionalProperties": {
- "description": "The values for each group by."
- },
- "description": "The key, value pairs for each group by.",
- "example": {
- "@state": "success",
- "@version": "abc"
- },
- "type": "object"
- },
- "compute": {
- "description": "The compute data.",
- "type": "object"
- },
- "computes": {
- "additionalProperties": {
- "description": "A bucket value, can be either a timeseries or a single value.",
- "oneOf": [
- {
- "description": "A single string value.",
- "type": "string"
- },
- {
- "description": "A single number value.",
- "format": "double",
- "type": "number"
- },
- {
- "description": "A timeseries array.",
- "items": {
- "description": "A timeseries point.",
- "properties": {
- "time": {
- "description": "The time value for this point.",
- "example": "2023-06-08T11:55:00Z",
- "type": "string"
- },
- "value": {
- "description": "The value for this point.",
- "example": 19,
- "format": "double",
- "type": "number"
- }
- },
- "type": "object"
- },
- "type": "array",
- "x-generate-alias-as-model": true
- }
- ]
- },
- "description": "A map of the metric name -> value for regular compute or list of values for a timeseries.",
- "type": "object"
- }
+ "description": "Team link",
+ "properties": {
+ "attributes": {
+ "description": "Team link attributes",
+ "properties": {
+ "label": {
+ "description": "The link's label",
+ "example": "Link label",
+ "maxLength": 256,
+ "type": "string"
},
- "type": "object"
- },
- "id": {
- "description": "ID of the spans aggregate.",
- "type": "string"
+ "position": {
+ "description": "The link's position, used to sort links for the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "type": "integer"
+ },
+ "team_id": {
+ "description": "ID of the team the link is associated with",
+ "readOnly": true,
+ "type": "string"
+ },
+ "url": {
+ "description": "The URL for the link",
+ "example": "https://example.com",
+ "type": "string"
+ }
},
- "type": {
- "description": "The spans aggregate bucket type.",
- "enum": [
- "bucket"
- ],
- "example": "bucket",
- "type": "string",
- "x-enum-varnames": [
- "BUCKET"
- ]
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "meta": {
- "description": "The metadata associated with a request.",
- "properties": {
- "elapsed": {
- "description": "The time elapsed in milliseconds.",
- "example": 132,
- "format": "int64",
- "type": "integer"
+ "required": [
+ "label",
+ "url"
+ ],
+ "type": "object"
},
- "request_id": {
- "description": "The identifier of the request.",
- "example": "MWlFUjVaWGZTTTZPYzM0VXp1OXU2d3xLSVpEMjZKQ0VKUTI0dEYtM3RSOFVR",
+ "id": {
+ "description": "The team link's identifier",
+ "example": "b8626d7e-cedd-11eb-abf5-da7ad0900001",
"type": "string"
},
- "status": {
- "description": "The status of the response.",
+ "type": {
+ "default": "team_links",
+ "description": "Team link type",
"enum": [
- "done",
- "timeout"
+ "team_links"
],
- "example": "done",
+ "example": "team_links",
"type": "string",
"x-enum-varnames": [
- "DONE",
- "TIMEOUT"
+ "TEAM_LINKS"
]
- },
- "warnings": {
- "description": "A list of warnings (non fatal errors) encountered, partial results might be returned if\nwarnings are present in the response.",
- "items": {
- "description": "A warning message indicating something that went wrong with the query.",
- "properties": {
- "code": {
- "description": "A unique code for this type of warning.",
- "example": "unknown_index",
- "type": "string"
- },
- "detail": {
- "description": "A detailed explanation of this specific warning.",
- "example": "indexes: foo, bar",
- "type": "string"
- },
- "title": {
- "description": "A short human-readable summary of the warning.",
- "example": "One or several indexes are missing or invalid, results hold data from the other indexes",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
}
},
- "type": "object"
+ "required": [
+ "attributes",
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
"type": "object"
@@ -390616,7 +415487,7 @@
},
"description": "OK"
},
- "400": {
+ "403": {
"content": {
"application/json": {
"schema": {
@@ -390642,9 +415513,9 @@
}
}
},
- "description": "Bad Request"
+ "description": "Forbidden"
},
- "403": {
+ "404": {
"content": {
"application/json": {
"schema": {
@@ -390670,7 +415541,35 @@
}
}
},
- "description": "Forbidden"
+ "description": "API error response."
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "API error response."
},
"429": {
"content": {
@@ -390708,391 +415607,80 @@
},
{
"AuthZ": [
- "apm_read"
+ "teams_read"
]
}
],
- "summary": "Aggregate spans",
+ "summary": "Create a team link",
"tags": [
- "Spans"
+ "Teams"
],
"x-codegen-request-body-name": "body",
- "x-menu-order": 3,
+ "x-given": {
+ "team_link": {
+ "parameters": [
+ {
+ "name": "team_id",
+ "source": "dd_team.data.id"
+ },
+ {
+ "name": "body",
+ "value": "{\n \"data\": {\n \"attributes\": {\n \"label\": \"{{unique}}\",\n \"url\": \"https://example.com\",\n \"position\": 0\n },\n \"type\": \"team_links\"\n }\n}"
+ }
+ ],
+ "step": "there is a valid \"team_link\" in the system"
+ }
+ },
+ "x-menu-order": 11,
"x-permission": {
"operator": "OR",
"permissions": [
- "apm_read"
+ "teams_read"
]
},
"x-undo": {
- "type": "safe"
+ "operationId": "DeleteTeamLink",
+ "parameters": [
+ {
+ "name": "team_id",
+ "source": "data.attributes.team_id"
+ },
+ {
+ "name": "link_id",
+ "source": "data.id"
+ }
+ ],
+ "type": "unsafe"
}
}
- },
- "/api/v2/spans/events": {
- "get": {
- "description": "List endpoint returns spans that match a span search query.\n[Results are paginated][1].\n\nUse this endpoint to see your latest spans.\nThis endpoint is rate limited to `300` requests per hour.\n\n[1]: /logs/guide/collect-multiple-logs-with-pagination?tab=v2api",
- "operationId": "ListSpansGet",
- "parameters": [
- {
- "description": "Search query following spans syntax.",
- "example": "@datacenter:us @role:db",
- "in": "query",
- "name": "filter[query]",
- "required": false,
- "schema": {
- "type": "string"
- }
- },
- {
- "description": "Minimum timestamp for requested spans. Supports date-time ISO8601, date math, and regular timestamps (milliseconds).",
- "example": "2023-01-02T09:42:36.320Z",
- "in": "query",
- "name": "filter[from]",
- "required": false,
- "schema": {
- "type": "string"
- }
- },
- {
- "description": "Maximum timestamp for requested spans. Supports date-time ISO8601, date math, and regular timestamps (milliseconds).",
- "example": "2023-01-03T09:42:36.320Z",
- "in": "query",
- "name": "filter[to]",
- "required": false,
- "schema": {
- "type": "string"
- }
- },
- {
- "description": "Order of spans in results.",
- "in": "query",
- "name": "sort",
- "required": false,
- "schema": {
- "description": "Sort parameters when querying spans.",
- "enum": [
- "timestamp",
- "-timestamp"
- ],
- "type": "string",
- "x-enum-varnames": [
- "TIMESTAMP_ASCENDING",
- "TIMESTAMP_DESCENDING"
- ]
- }
- },
- {
- "description": "List following results with a cursor provided in the previous query.",
- "example": "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==",
- "in": "query",
- "name": "page[cursor]",
- "required": false,
- "schema": {
- "type": "string"
- }
- },
- {
- "description": "Maximum number of spans in the response.",
- "example": 25,
- "in": "query",
- "name": "page[limit]",
- "required": false,
- "schema": {
- "default": 10,
- "format": "int32",
- "maximum": 1000,
- "type": "integer"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Response object with all spans matching the request and pagination information.",
- "properties": {
- "data": {
- "description": "Array of spans matching the request.",
- "items": {
- "description": "Object description of a spans after being processed and stored by Datadog.",
- "properties": {
- "attributes": {
- "description": "JSON object containing all span attributes and their associated values.",
- "properties": {
- "attributes": {
- "additionalProperties": {},
- "description": "JSON object of attributes from your span.",
- "example": {
- "customAttribute": 123,
- "duration": 2345
- },
- "type": "object"
- },
- "custom": {
- "additionalProperties": {},
- "description": "JSON object of custom spans data.",
- "type": "object"
- },
- "end_timestamp": {
- "description": "End timestamp of your span.",
- "example": "2023-01-02T09:42:36.420Z",
- "format": "date-time",
- "type": "string"
- },
- "env": {
- "description": "Name of the environment from where the spans are being sent.",
- "example": "prod",
- "type": "string"
- },
- "host": {
- "description": "Name of the machine from where the spans are being sent.",
- "example": "i-0123",
- "type": "string"
- },
- "ingestion_reason": {
- "description": "The reason why the span was ingested.",
- "example": "rule",
- "type": "string"
- },
- "parent_id": {
- "description": "Id of the span that's parent of this span.",
- "example": "0",
- "type": "string"
- },
- "resource_hash": {
- "description": "Unique identifier of the resource.",
- "example": "a12345678b91c23d",
- "type": "string"
- },
- "resource_name": {
- "description": "The name of the resource.",
- "example": "agent",
- "type": "string"
- },
- "retained_by": {
- "description": "The reason why the span was indexed.",
- "example": "retention_filter",
- "type": "string"
- },
- "service": {
- "description": "The name of the application or service generating the span events.\nIt is used to switch from APM to Logs, so make sure you define the same\nvalue when you use both products.",
- "example": "agent",
- "type": "string"
- },
- "single_span": {
- "description": "Whether or not the span was collected as a stand-alone span. Always associated to \"single_span\" ingestion_reason if true.",
- "example": true,
- "type": "boolean"
- },
- "span_id": {
- "description": "Id of the span.",
- "example": "1234567890987654321",
- "type": "string"
- },
- "start_timestamp": {
- "description": "Start timestamp of your span.",
- "example": "2023-01-02T09:42:36.320Z",
- "format": "date-time",
- "type": "string"
- },
- "tags": {
- "description": "Array of tags associated with your span.",
- "example": [
- "team:A"
- ],
- "items": {
- "description": "Tag associated with your span.",
- "type": "string"
- },
- "type": "array"
- },
- "trace_id": {
- "description": "Id of the trace to which the span belongs.",
- "example": "1234567890987654321",
- "type": "string"
- },
- "type": {
- "description": "The type of the span.",
- "example": "web",
- "type": "string"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "Unique ID of the Span.",
- "example": "AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA",
- "type": "string"
- },
- "type": {
- "default": "spans",
- "description": "Type of the span.",
- "enum": [
- "spans"
- ],
- "example": "spans",
- "type": "string",
- "x-enum-varnames": [
- "SPANS"
- ]
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "links": {
- "description": "Links attributes.",
- "properties": {
- "next": {
- "description": "Link for the next set of results. Note that the request can also be made using the\nPOST endpoint.",
- "example": "https://app.datadoghq.com/api/v2/spans/event?filter[query]=foo&page[cursor]=eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==",
- "type": "string"
- }
- },
- "type": "object"
- },
- "meta": {
- "description": "The metadata associated with a request.",
- "properties": {
- "elapsed": {
- "description": "The time elapsed in milliseconds.",
- "example": 132,
- "format": "int64",
- "type": "integer"
- },
- "page": {
- "description": "Paging attributes.",
- "properties": {
- "after": {
- "description": "The cursor to use to get the next results, if any. To make the next request, use the same\nparameters with the addition of the `page[cursor]`.",
- "example": "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==",
- "type": "string"
- }
- },
- "type": "object"
- },
- "request_id": {
- "description": "The identifier of the request.",
- "example": "MWlFUjVaWGZTTTZPYzM0VXp1OXU2d3xLSVpEMjZKQ0VKUTI0dEYtM3RSOFVR",
- "type": "string"
- },
- "status": {
- "description": "The status of the response.",
- "enum": [
- "done",
- "timeout"
- ],
- "example": "done",
- "type": "string",
- "x-enum-varnames": [
- "DONE",
- "TIMEOUT"
- ]
- },
- "warnings": {
- "description": "A list of warnings (non fatal errors) encountered, partial results might be returned if\nwarnings are present in the response.",
- "items": {
- "description": "A warning message indicating something that went wrong with the query.",
- "properties": {
- "code": {
- "description": "A unique code for this type of warning.",
- "example": "unknown_index",
- "type": "string"
- },
- "detail": {
- "description": "A detailed explanation of this specific warning.",
- "example": "indexes: foo, bar",
- "type": "string"
- },
- "title": {
- "description": "A short human-readable summary of the warning.",
- "example": "One or several indexes are missing or invalid, results hold data from the other indexes",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
- }
- },
- "type": "object"
- }
- },
- "type": "object"
- }
- }
- },
- "description": "OK"
- },
- "400": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "items": {
- "description": "API error response body",
- "properties": {
- "detail": {
- "description": "A human-readable explanation specific to this occurrence of the error.",
- "example": "Missing required attribute in body",
- "type": "string"
- },
- "meta": {
- "additionalProperties": {},
- "description": "Non-standard meta-information about the error",
- "type": "object"
- },
- "source": {
- "description": "References to the source of the error.",
- "properties": {
- "header": {
- "description": "A string indicating the name of a single request header which caused the error.",
- "example": "Authorization",
- "type": "string"
- },
- "parameter": {
- "description": "A string indicating which URI query parameter caused the error.",
- "example": "limit",
- "type": "string"
- },
- "pointer": {
- "description": "A JSON pointer to the value in the request document that caused the error.",
- "example": "/data/attributes/title",
- "type": "string"
- }
- },
- "type": "object"
- },
- "status": {
- "description": "Status code of the response.",
- "example": "400",
- "type": "string"
- },
- "title": {
- "description": "Short human-readable summary of the error.",
- "example": "Bad Request",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Bad Request."
+ },
+ "/api/v2/team/{team_id}/links/{link_id}": {
+ "delete": {
+ "description": "Remove a link from a team.",
+ "operationId": "DeleteTeamLink",
+ "parameters": [
+ {
+ "description": "None",
+ "in": "path",
+ "name": "team_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "None",
+ "in": "path",
+ "name": "link_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "No Content"
},
"403": {
"content": {
@@ -391102,52 +415690,13 @@
"properties": {
"errors": {
"description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
"items": {
- "description": "API error response body",
- "properties": {
- "detail": {
- "description": "A human-readable explanation specific to this occurrence of the error.",
- "example": "Missing required attribute in body",
- "type": "string"
- },
- "meta": {
- "additionalProperties": {},
- "description": "Non-standard meta-information about the error",
- "type": "object"
- },
- "source": {
- "description": "References to the source of the error.",
- "properties": {
- "header": {
- "description": "A string indicating the name of a single request header which caused the error.",
- "example": "Authorization",
- "type": "string"
- },
- "parameter": {
- "description": "A string indicating which URI query parameter caused the error.",
- "example": "limit",
- "type": "string"
- },
- "pointer": {
- "description": "A JSON pointer to the value in the request document that caused the error.",
- "example": "/data/attributes/title",
- "type": "string"
- }
- },
- "type": "object"
- },
- "status": {
- "description": "Status code of the response.",
- "example": "400",
- "type": "string"
- },
- "title": {
- "description": "Short human-readable summary of the error.",
- "example": "Bad Request",
- "type": "string"
- }
- },
- "type": "object"
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
},
"type": "array"
}
@@ -391159,9 +415708,9 @@
}
}
},
- "description": "Forbidden: Access denied."
+ "description": "Forbidden"
},
- "422": {
+ "404": {
"content": {
"application/json": {
"schema": {
@@ -391169,52 +415718,13 @@
"properties": {
"errors": {
"description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
"items": {
- "description": "API error response body",
- "properties": {
- "detail": {
- "description": "A human-readable explanation specific to this occurrence of the error.",
- "example": "Missing required attribute in body",
- "type": "string"
- },
- "meta": {
- "additionalProperties": {},
- "description": "Non-standard meta-information about the error",
- "type": "object"
- },
- "source": {
- "description": "References to the source of the error.",
- "properties": {
- "header": {
- "description": "A string indicating the name of a single request header which caused the error.",
- "example": "Authorization",
- "type": "string"
- },
- "parameter": {
- "description": "A string indicating which URI query parameter caused the error.",
- "example": "limit",
- "type": "string"
- },
- "pointer": {
- "description": "A JSON pointer to the value in the request document that caused the error.",
- "example": "/data/attributes/title",
- "type": "string"
- }
- },
- "type": "object"
- },
- "status": {
- "description": "Status code of the response.",
- "example": "400",
- "type": "string"
- },
- "title": {
- "description": "Short human-readable summary of the error.",
- "example": "Bad Request",
- "type": "string"
- }
- },
- "type": "object"
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
},
"type": "array"
}
@@ -391226,7 +415736,7 @@
}
}
},
- "description": "Unprocessable Entity."
+ "description": "API error response."
},
"429": {
"content": {
@@ -391236,52 +415746,13 @@
"properties": {
"errors": {
"description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
"items": {
- "description": "API error response body",
- "properties": {
- "detail": {
- "description": "A human-readable explanation specific to this occurrence of the error.",
- "example": "Missing required attribute in body",
- "type": "string"
- },
- "meta": {
- "additionalProperties": {},
- "description": "Non-standard meta-information about the error",
- "type": "object"
- },
- "source": {
- "description": "References to the source of the error.",
- "properties": {
- "header": {
- "description": "A string indicating the name of a single request header which caused the error.",
- "example": "Authorization",
- "type": "string"
- },
- "parameter": {
- "description": "A string indicating which URI query parameter caused the error.",
- "example": "limit",
- "type": "string"
- },
- "pointer": {
- "description": "A JSON pointer to the value in the request document that caused the error.",
- "example": "/data/attributes/title",
- "type": "string"
- }
- },
- "type": "object"
- },
- "status": {
- "description": "Status code of the response.",
- "example": "400",
- "type": "string"
- },
- "title": {
- "description": "Short human-readable summary of the error.",
- "example": "Bad Request",
- "type": "string"
- }
- },
- "type": "object"
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
},
"type": "array"
}
@@ -391293,7 +415764,7 @@
}
}
},
- "description": "Too many requests: The rate limit set by the API has been exceeded."
+ "description": "Too many requests"
}
},
"security": [
@@ -391303,352 +415774,117 @@
},
{
"AuthZ": [
- "apm_read"
+ "teams_read"
]
}
],
- "summary": "Get a list of spans",
+ "summary": "Remove a team link",
"tags": [
- "Spans"
+ "Teams"
],
- "x-menu-order": 1,
- "x-pagination": {
- "cursorParam": "page[cursor]",
- "cursorPath": "meta.page.after",
- "limitParam": "page[limit]",
- "resultsPath": "data"
+ "x-menu-order": 14,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "teams_read"
+ ]
},
"x-undo": {
- "type": "safe"
+ "type": "idempotent"
}
- }
- },
- "/api/v2/spans/events/search": {
- "post": {
- "description": "List endpoint returns spans that match a span search query.\n[Results are paginated][1].\n\nUse this endpoint to build complex spans filtering and search.\nThis endpoint is rate limited to `300` requests per hour.\n\n[1]: /logs/guide/collect-multiple-logs-with-pagination?tab=v2api",
- "operationId": "ListSpans",
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "description": "The request for a spans list.",
- "properties": {
- "data": {
- "description": "The object containing the query content.",
- "properties": {
- "attributes": {
- "description": "The object containing all the query parameters.",
- "properties": {
- "filter": {
- "description": "The search and filter query settings.",
- "properties": {
- "from": {
- "default": "now-15m",
- "description": "The minimum time for the requested spans, supports date-time ISO8601, date math, and regular timestamps (milliseconds).",
- "example": "now-15m",
- "type": "string"
- },
- "query": {
- "default": "*",
- "description": "The search query - following the span search syntax.",
- "example": "service:web* AND @http.status_code:[200 TO 299]",
- "type": "string"
- },
- "to": {
- "default": "now",
- "description": "The maximum time for the requested spans, supports date-time ISO8601, date math, and regular timestamps (milliseconds).",
- "example": "now",
- "type": "string"
- }
- },
- "type": "object"
- },
- "options": {
- "description": "Global query options that are used during the query.\nNote: You should only supply timezone or time offset but not both otherwise the query will fail.",
- "properties": {
- "timeOffset": {
- "description": "The time offset (in seconds) to apply to the query.",
- "format": "int64",
- "type": "integer"
- },
- "timezone": {
- "default": "UTC",
- "description": "The timezone can be specified as GMT, UTC, an offset from UTC (like UTC+1), or as a Timezone Database identifier (like America/New_York).",
- "example": "GMT",
- "type": "string"
- }
- },
- "type": "object"
- },
- "page": {
- "description": "Paging attributes for listing spans.",
- "properties": {
- "cursor": {
- "description": "List following results with a cursor provided in the previous query.",
- "example": "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==",
- "type": "string"
- },
- "limit": {
- "default": 10,
- "description": "Maximum number of spans in the response.",
- "example": 25,
- "format": "int32",
- "maximum": 1000,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "sort": {
- "description": "Sort parameters when querying spans.",
- "enum": [
- "timestamp",
- "-timestamp"
- ],
- "type": "string",
- "x-enum-varnames": [
- "TIMESTAMP_ASCENDING",
- "TIMESTAMP_DESCENDING"
- ]
- }
- },
- "type": "object"
- },
- "type": {
- "default": "search_request",
- "description": "The type of resource. The value should always be search_request.",
- "enum": [
- "search_request"
- ],
- "example": "search_request",
- "type": "string",
- "x-enum-varnames": [
- "SEARCH_REQUEST"
- ]
- }
- },
- "type": "object"
- }
- },
- "type": "object"
- }
+ },
+ "get": {
+ "description": "Get a single link for a team.",
+ "operationId": "GetTeamLink",
+ "parameters": [
+ {
+ "description": "None",
+ "in": "path",
+ "name": "team_id",
+ "required": true,
+ "schema": {
+ "type": "string"
}
},
- "required": true
- },
+ {
+ "description": "None",
+ "in": "path",
+ "name": "link_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
- "description": "Response object with all spans matching the request and pagination information.",
+ "description": "Team link response",
"properties": {
"data": {
- "description": "Array of spans matching the request.",
- "items": {
- "description": "Object description of a spans after being processed and stored by Datadog.",
- "properties": {
- "attributes": {
- "description": "JSON object containing all span attributes and their associated values.",
- "properties": {
- "attributes": {
- "additionalProperties": {},
- "description": "JSON object of attributes from your span.",
- "example": {
- "customAttribute": 123,
- "duration": 2345
- },
- "type": "object"
- },
- "custom": {
- "additionalProperties": {},
- "description": "JSON object of custom spans data.",
- "type": "object"
- },
- "end_timestamp": {
- "description": "End timestamp of your span.",
- "example": "2023-01-02T09:42:36.420Z",
- "format": "date-time",
- "type": "string"
- },
- "env": {
- "description": "Name of the environment from where the spans are being sent.",
- "example": "prod",
- "type": "string"
- },
- "host": {
- "description": "Name of the machine from where the spans are being sent.",
- "example": "i-0123",
- "type": "string"
- },
- "ingestion_reason": {
- "description": "The reason why the span was ingested.",
- "example": "rule",
- "type": "string"
- },
- "parent_id": {
- "description": "Id of the span that's parent of this span.",
- "example": "0",
- "type": "string"
- },
- "resource_hash": {
- "description": "Unique identifier of the resource.",
- "example": "a12345678b91c23d",
- "type": "string"
- },
- "resource_name": {
- "description": "The name of the resource.",
- "example": "agent",
- "type": "string"
- },
- "retained_by": {
- "description": "The reason why the span was indexed.",
- "example": "retention_filter",
- "type": "string"
- },
- "service": {
- "description": "The name of the application or service generating the span events.\nIt is used to switch from APM to Logs, so make sure you define the same\nvalue when you use both products.",
- "example": "agent",
- "type": "string"
- },
- "single_span": {
- "description": "Whether or not the span was collected as a stand-alone span. Always associated to \"single_span\" ingestion_reason if true.",
- "example": true,
- "type": "boolean"
- },
- "span_id": {
- "description": "Id of the span.",
- "example": "1234567890987654321",
- "type": "string"
- },
- "start_timestamp": {
- "description": "Start timestamp of your span.",
- "example": "2023-01-02T09:42:36.320Z",
- "format": "date-time",
- "type": "string"
- },
- "tags": {
- "description": "Array of tags associated with your span.",
- "example": [
- "team:A"
- ],
- "items": {
- "description": "Tag associated with your span.",
- "type": "string"
- },
- "type": "array"
- },
- "trace_id": {
- "description": "Id of the trace to which the span belongs.",
- "example": "1234567890987654321",
- "type": "string"
- },
- "type": {
- "description": "The type of the span.",
- "example": "web",
- "type": "string"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "Unique ID of the Span.",
- "example": "AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA",
- "type": "string"
- },
- "type": {
- "default": "spans",
- "description": "Type of the span.",
- "enum": [
- "spans"
- ],
- "example": "spans",
- "type": "string",
- "x-enum-varnames": [
- "SPANS"
- ]
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "links": {
- "description": "Links attributes.",
- "properties": {
- "next": {
- "description": "Link for the next set of results. Note that the request can also be made using the\nPOST endpoint.",
- "example": "https://app.datadoghq.com/api/v2/spans/event?filter[query]=foo&page[cursor]=eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==",
- "type": "string"
- }
- },
- "type": "object"
- },
- "meta": {
- "description": "The metadata associated with a request.",
+ "description": "Team link",
"properties": {
- "elapsed": {
- "description": "The time elapsed in milliseconds.",
- "example": 132,
- "format": "int64",
- "type": "integer"
- },
- "page": {
- "description": "Paging attributes.",
+ "attributes": {
+ "description": "Team link attributes",
"properties": {
- "after": {
- "description": "The cursor to use to get the next results, if any. To make the next request, use the same\nparameters with the addition of the `page[cursor]`.",
- "example": "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==",
+ "label": {
+ "description": "The link's label",
+ "example": "Link label",
+ "maxLength": 256,
+ "type": "string"
+ },
+ "position": {
+ "description": "The link's position, used to sort links for the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "type": "integer"
+ },
+ "team_id": {
+ "description": "ID of the team the link is associated with",
+ "readOnly": true,
+ "type": "string"
+ },
+ "url": {
+ "description": "The URL for the link",
+ "example": "https://example.com",
"type": "string"
}
},
+ "required": [
+ "label",
+ "url"
+ ],
"type": "object"
},
- "request_id": {
- "description": "The identifier of the request.",
- "example": "MWlFUjVaWGZTTTZPYzM0VXp1OXU2d3xLSVpEMjZKQ0VKUTI0dEYtM3RSOFVR",
+ "id": {
+ "description": "The team link's identifier",
+ "example": "b8626d7e-cedd-11eb-abf5-da7ad0900001",
"type": "string"
},
- "status": {
- "description": "The status of the response.",
+ "type": {
+ "default": "team_links",
+ "description": "Team link type",
"enum": [
- "done",
- "timeout"
+ "team_links"
],
- "example": "done",
+ "example": "team_links",
"type": "string",
"x-enum-varnames": [
- "DONE",
- "TIMEOUT"
+ "TEAM_LINKS"
]
- },
- "warnings": {
- "description": "A list of warnings (non fatal errors) encountered, partial results might be returned if\nwarnings are present in the response.",
- "items": {
- "description": "A warning message indicating something that went wrong with the query.",
- "properties": {
- "code": {
- "description": "A unique code for this type of warning.",
- "example": "unknown_index",
- "type": "string"
- },
- "detail": {
- "description": "A detailed explanation of this specific warning.",
- "example": "indexes: foo, bar",
- "type": "string"
- },
- "title": {
- "description": "A short human-readable summary of the warning.",
- "example": "One or several indexes are missing or invalid, results hold data from the other indexes",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
}
},
- "type": "object"
+ "required": [
+ "attributes",
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
"type": "object"
@@ -391657,73 +415893,6 @@
},
"description": "OK"
},
- "400": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "items": {
- "description": "API error response body",
- "properties": {
- "detail": {
- "description": "A human-readable explanation specific to this occurrence of the error.",
- "example": "Missing required attribute in body",
- "type": "string"
- },
- "meta": {
- "additionalProperties": {},
- "description": "Non-standard meta-information about the error",
- "type": "object"
- },
- "source": {
- "description": "References to the source of the error.",
- "properties": {
- "header": {
- "description": "A string indicating the name of a single request header which caused the error.",
- "example": "Authorization",
- "type": "string"
- },
- "parameter": {
- "description": "A string indicating which URI query parameter caused the error.",
- "example": "limit",
- "type": "string"
- },
- "pointer": {
- "description": "A JSON pointer to the value in the request document that caused the error.",
- "example": "/data/attributes/title",
- "type": "string"
- }
- },
- "type": "object"
- },
- "status": {
- "description": "Status code of the response.",
- "example": "400",
- "type": "string"
- },
- "title": {
- "description": "Short human-readable summary of the error.",
- "example": "Bad Request",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Bad Request."
- },
"403": {
"content": {
"application/json": {
@@ -391732,52 +415901,13 @@
"properties": {
"errors": {
"description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
"items": {
- "description": "API error response body",
- "properties": {
- "detail": {
- "description": "A human-readable explanation specific to this occurrence of the error.",
- "example": "Missing required attribute in body",
- "type": "string"
- },
- "meta": {
- "additionalProperties": {},
- "description": "Non-standard meta-information about the error",
- "type": "object"
- },
- "source": {
- "description": "References to the source of the error.",
- "properties": {
- "header": {
- "description": "A string indicating the name of a single request header which caused the error.",
- "example": "Authorization",
- "type": "string"
- },
- "parameter": {
- "description": "A string indicating which URI query parameter caused the error.",
- "example": "limit",
- "type": "string"
- },
- "pointer": {
- "description": "A JSON pointer to the value in the request document that caused the error.",
- "example": "/data/attributes/title",
- "type": "string"
- }
- },
- "type": "object"
- },
- "status": {
- "description": "Status code of the response.",
- "example": "400",
- "type": "string"
- },
- "title": {
- "description": "Short human-readable summary of the error.",
- "example": "Bad Request",
- "type": "string"
- }
- },
- "type": "object"
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
},
"type": "array"
}
@@ -391789,9 +415919,9 @@
}
}
},
- "description": "Forbidden: Access denied."
+ "description": "Forbidden"
},
- "422": {
+ "404": {
"content": {
"application/json": {
"schema": {
@@ -391799,52 +415929,13 @@
"properties": {
"errors": {
"description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
"items": {
- "description": "API error response body",
- "properties": {
- "detail": {
- "description": "A human-readable explanation specific to this occurrence of the error.",
- "example": "Missing required attribute in body",
- "type": "string"
- },
- "meta": {
- "additionalProperties": {},
- "description": "Non-standard meta-information about the error",
- "type": "object"
- },
- "source": {
- "description": "References to the source of the error.",
- "properties": {
- "header": {
- "description": "A string indicating the name of a single request header which caused the error.",
- "example": "Authorization",
- "type": "string"
- },
- "parameter": {
- "description": "A string indicating which URI query parameter caused the error.",
- "example": "limit",
- "type": "string"
- },
- "pointer": {
- "description": "A JSON pointer to the value in the request document that caused the error.",
- "example": "/data/attributes/title",
- "type": "string"
- }
- },
- "type": "object"
- },
- "status": {
- "description": "Status code of the response.",
- "example": "400",
- "type": "string"
- },
- "title": {
- "description": "Short human-readable summary of the error.",
- "example": "Bad Request",
- "type": "string"
- }
- },
- "type": "object"
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
},
"type": "array"
}
@@ -391856,7 +415947,7 @@
}
}
},
- "description": "Unprocessable Entity."
+ "description": "API error response."
},
"429": {
"content": {
@@ -391866,52 +415957,13 @@
"properties": {
"errors": {
"description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
"items": {
- "description": "API error response body",
- "properties": {
- "detail": {
- "description": "A human-readable explanation specific to this occurrence of the error.",
- "example": "Missing required attribute in body",
- "type": "string"
- },
- "meta": {
- "additionalProperties": {},
- "description": "Non-standard meta-information about the error",
- "type": "object"
- },
- "source": {
- "description": "References to the source of the error.",
- "properties": {
- "header": {
- "description": "A string indicating the name of a single request header which caused the error.",
- "example": "Authorization",
- "type": "string"
- },
- "parameter": {
- "description": "A string indicating which URI query parameter caused the error.",
- "example": "limit",
- "type": "string"
- },
- "pointer": {
- "description": "A JSON pointer to the value in the request document that caused the error.",
- "example": "/data/attributes/title",
- "type": "string"
- }
- },
- "type": "object"
- },
- "status": {
- "description": "Status code of the response.",
- "example": "400",
- "type": "string"
- },
- "title": {
- "description": "Short human-readable summary of the error.",
- "example": "Bad Request",
- "type": "string"
- }
- },
- "type": "object"
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
},
"type": "array"
}
@@ -391923,7 +415975,7 @@
}
}
},
- "description": "Too many requests: The rate limit set by the API has been exceeded."
+ "description": "Too many requests"
}
},
"security": [
@@ -391933,64 +415985,187 @@
},
{
"AuthZ": [
- "apm_read"
+ "teams_read"
]
}
],
- "summary": "Search spans",
+ "summary": "Get a team link",
"tags": [
- "Spans"
+ "Teams"
],
- "x-codegen-request-body-name": "body",
- "x-menu-order": 2,
- "x-pagination": {
- "cursorParam": "body.data.attributes.page.cursor",
- "cursorPath": "meta.page.after",
- "limitParam": "body.data.attributes.page.limit",
- "resultsPath": "data"
+ "x-menu-order": 12,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "teams_read"
+ ]
},
"x-undo": {
"type": "safe"
}
- }
- },
- "/api/v2/synthetics/settings/on_demand_concurrency_cap": {
- "get": {
- "description": "Get the on-demand concurrency cap.",
- "operationId": "GetOnDemandConcurrencyCap",
+ },
+ "patch": {
+ "description": "Update a team link.",
+ "operationId": "UpdateTeamLink",
+ "parameters": [
+ {
+ "description": "None",
+ "in": "path",
+ "name": "team_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "None",
+ "in": "path",
+ "name": "link_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Team link create request",
+ "properties": {
+ "data": {
+ "description": "Team link create",
+ "properties": {
+ "attributes": {
+ "description": "Team link attributes",
+ "properties": {
+ "label": {
+ "description": "The link's label",
+ "example": "Link label",
+ "maxLength": 256,
+ "type": "string"
+ },
+ "position": {
+ "description": "The link's position, used to sort links for the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "type": "integer"
+ },
+ "team_id": {
+ "description": "ID of the team the link is associated with",
+ "readOnly": true,
+ "type": "string"
+ },
+ "url": {
+ "description": "The URL for the link",
+ "example": "https://example.com",
+ "type": "string"
+ }
+ },
+ "required": [
+ "label",
+ "url"
+ ],
+ "type": "object"
+ },
+ "type": {
+ "default": "team_links",
+ "description": "Team link type",
+ "enum": [
+ "team_links"
+ ],
+ "example": "team_links",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM_LINKS"
+ ]
+ }
+ },
+ "required": [
+ "attributes",
+ "type"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "required": true
+ },
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
- "description": "On-demand concurrency cap response.",
+ "description": "Team link response",
"properties": {
"data": {
- "description": "On-demand concurrency cap.",
+ "description": "Team link",
"properties": {
"attributes": {
- "description": "On-demand concurrency cap attributes.",
+ "description": "Team link attributes",
"properties": {
- "on_demand_concurrency_cap": {
- "description": "Value of the on-demand concurrency cap.",
- "format": "double",
- "type": "number"
+ "label": {
+ "description": "The link's label",
+ "example": "Link label",
+ "maxLength": 256,
+ "type": "string"
+ },
+ "position": {
+ "description": "The link's position, used to sort links for the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "type": "integer"
+ },
+ "team_id": {
+ "description": "ID of the team the link is associated with",
+ "readOnly": true,
+ "type": "string"
+ },
+ "url": {
+ "description": "The URL for the link",
+ "example": "https://example.com",
+ "type": "string"
}
},
+ "required": [
+ "label",
+ "url"
+ ],
"type": "object"
},
+ "id": {
+ "description": "The team link's identifier",
+ "example": "b8626d7e-cedd-11eb-abf5-da7ad0900001",
+ "type": "string"
+ },
"type": {
- "description": "On-demand concurrency cap type.",
+ "default": "team_links",
+ "description": "Team link type",
"enum": [
- "on_demand_concurrency_cap"
+ "team_links"
],
+ "example": "team_links",
"type": "string",
"x-enum-varnames": [
- "ON_DEMAND_CONCURRENCY_CAP"
+ "TEAM_LINKS"
]
}
},
- "type": "object"
+ "required": [
+ "attributes",
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
"type": "object"
@@ -391999,7 +416174,7 @@
},
"description": "OK"
},
- "429": {
+ "403": {
"content": {
"application/json": {
"schema": {
@@ -392022,89 +416197,38 @@
"errors"
],
"type": "object"
- }
- }
- },
- "description": "Too many requests"
- }
- },
- "summary": "Get the on-demand concurrency cap",
- "tags": [
- "Synthetics"
- ],
- "x-menu-order": 10,
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "billing_read"
- ]
- },
- "x-undo": {
- "type": "safe"
- }
- },
- "post": {
- "description": "Save new value for on-demand concurrency cap.",
- "operationId": "SetOnDemandConcurrencyCap",
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "description": "On-demand concurrency cap attributes.",
- "properties": {
- "on_demand_concurrency_cap": {
- "description": "Value of the on-demand concurrency cap.",
- "format": "double",
- "type": "number"
- }
- },
- "type": "object"
+ }
}
- }
+ },
+ "description": "Forbidden"
},
- "description": ".",
- "required": true
- },
- "responses": {
- "200": {
+ "404": {
"content": {
"application/json": {
"schema": {
- "description": "On-demand concurrency cap response.",
+ "description": "API error response.",
"properties": {
- "data": {
- "description": "On-demand concurrency cap.",
- "properties": {
- "attributes": {
- "description": "On-demand concurrency cap attributes.",
- "properties": {
- "on_demand_concurrency_cap": {
- "description": "Value of the on-demand concurrency cap.",
- "format": "double",
- "type": "number"
- }
- },
- "type": "object"
- },
- "type": {
- "description": "On-demand concurrency cap type.",
- "enum": [
- "on_demand_concurrency_cap"
- ],
- "type": "string",
- "x-enum-varnames": [
- "ON_DEMAND_CONCURRENCY_CAP"
- ]
- }
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
},
- "type": "object"
+ "type": "array"
}
},
+ "required": [
+ "errors"
+ ],
"type": "object"
}
}
},
- "description": "OK"
+ "description": "API error response."
},
"429": {
"content": {
@@ -392135,38 +416259,46 @@
"description": "Too many requests"
}
},
- "summary": "Save new value for on-demand concurrency cap",
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
+ },
+ {
+ "AuthZ": [
+ "teams_read"
+ ]
+ }
+ ],
+ "summary": "Update a team link",
"tags": [
- "Synthetics"
+ "Teams"
],
"x-codegen-request-body-name": "body",
- "x-menu-order": 11,
+ "x-menu-order": 13,
"x-permission": {
"operator": "OR",
"permissions": [
- "billing_edit"
+ "teams_read"
]
},
"x-undo": {
- "type": "safe"
+ "type": "idempotent"
}
}
},
- "/api/v2/team": {
+ "/api/v2/team/{team_id}/memberships": {
"get": {
- "description": "Get all teams.\nCan be used to search for teams using the `filter[keyword]` and `filter[me]` query parameters.",
- "operationId": "ListTeams",
+ "description": "Get a paginated list of members for a team",
+ "operationId": "GetTeamMemberships",
"parameters": [
{
- "description": "Specific page number to return.",
- "in": "query",
- "name": "page[number]",
- "required": false,
+ "description": "None",
+ "in": "path",
+ "name": "team_id",
+ "required": true,
"schema": {
- "default": 0,
- "example": 0,
- "format": "int64",
- "type": "integer"
+ "type": "string"
}
},
{
@@ -392182,113 +416314,55 @@
}
},
{
- "description": "Specifies the order of the returned teams",
+ "description": "Specific page number to return.",
+ "in": "query",
+ "name": "page[number]",
+ "required": false,
+ "schema": {
+ "default": 0,
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ {
+ "description": "Specifies the order of returned team memberships",
"in": "query",
"name": "sort",
"required": false,
"schema": {
- "description": "Specifies the order of the returned teams",
+ "description": "Specifies the order of returned team memberships",
"enum": [
+ "manager_name",
+ "-manager_name",
"name",
"-name",
- "user_count",
- "-user_count"
+ "handle",
+ "-handle",
+ "email",
+ "-email"
],
"type": "string",
"x-enum-varnames": [
+ "MANAGER_NAME",
+ "_MANAGER_NAME",
"NAME",
"_NAME",
- "USER_COUNT",
- "_USER_COUNT"
+ "HANDLE",
+ "_HANDLE",
+ "EMAIL",
+ "_EMAIL"
]
}
},
{
- "description": "Included related resources optionally requested. Allowed enum values: `team_links, user_team_permissions`",
- "in": "query",
- "name": "include",
- "required": false,
- "schema": {
- "items": {
- "description": "Included related resources optionally requested.",
- "enum": [
- "team_links",
- "user_team_permissions"
- ],
- "type": "string",
- "x-enum-varnames": [
- "TEAM_LINKS",
- "USER_TEAM_PERMISSIONS"
- ]
- },
- "type": "array"
- }
- },
- {
- "description": "Search query. Can be team name, team handle, or email of team member",
+ "description": "Search query, can be user email or name",
"in": "query",
"name": "filter[keyword]",
"required": false,
"schema": {
"type": "string"
}
- },
- {
- "description": "When true, only returns teams the current user belongs to",
- "in": "query",
- "name": "filter[me]",
- "required": false,
- "schema": {
- "type": "boolean"
- }
- },
- {
- "description": "List of fields that need to be fetched.",
- "explode": false,
- "in": "query",
- "name": "fields[team]",
- "required": false,
- "schema": {
- "items": {
- "description": "Supported teams field.",
- "enum": [
- "id",
- "name",
- "handle",
- "summary",
- "description",
- "avatar",
- "banner",
- "visible_modules",
- "hidden_modules",
- "created_at",
- "modified_at",
- "user_count",
- "link_count",
- "team_links",
- "user_team_permissions"
- ],
- "type": "string",
- "x-enum-varnames": [
- "ID",
- "NAME",
- "HANDLE",
- "SUMMARY",
- "DESCRIPTION",
- "AVATAR",
- "BANNER",
- "VISIBLE_MODULES",
- "HIDDEN_MODULES",
- "CREATED_AT",
- "MODIFIED_AT",
- "USER_COUNT",
- "LINK_COUNT",
- "TEAM_LINKS",
- "USER_TEAM_PERMISSIONS"
- ]
- },
- "type": "array"
- }
}
],
"responses": {
@@ -392296,181 +416370,107 @@
"content": {
"application/json": {
"schema": {
- "description": "Response with multiple teams",
+ "description": "Team memberships response",
"properties": {
"data": {
- "description": "Teams response data",
+ "description": "Team memberships response data",
"items": {
- "description": "A team",
+ "description": "A user's relationship with a team",
"properties": {
"attributes": {
- "description": "Team attributes",
+ "description": "Team membership attributes",
"properties": {
- "avatar": {
- "description": "Unicode representation of the avatar for the team, limited to a single grapheme",
- "example": "🥑",
- "nullable": true,
- "type": "string"
- },
- "banner": {
- "description": "Banner selection for the team",
- "format": "int64",
+ "provisioned_by": {
+ "description": "The mechanism responsible for provisioning the team relationship.\nPossible values: null for added by a user, \"service_account\" if added by a service account, and \"saml_mapping\" if provisioned via SAML mapping.",
"nullable": true,
- "type": "integer"
- },
- "created_at": {
- "description": "Creation date of the team",
- "format": "date-time",
+ "readOnly": true,
"type": "string"
},
- "description": {
- "description": "Free-form markdown description/content for the team's homepage",
+ "provisioned_by_id": {
+ "description": "UUID of the User or Service Account who provisioned this team membership, or null if provisioned via SAML mapping.",
"nullable": true,
- "type": "string"
- },
- "handle": {
- "description": "The team's identifier",
- "example": "example-team",
- "maxLength": 195,
- "type": "string"
- },
- "hidden_modules": {
- "description": "Collection of hidden modules for the team",
- "items": {
- "description": "String identifier of the module",
- "type": "string"
- },
- "type": "array"
- },
- "link_count": {
- "description": "The number of links belonging to the team",
- "format": "int32",
- "maximum": 2147483647,
"readOnly": true,
- "type": "integer"
- },
- "modified_at": {
- "description": "Modification date of the team",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "The name of the team",
- "example": "Example Team",
- "maxLength": 200,
"type": "string"
},
- "summary": {
- "description": "A brief summary of the team, derived from the `description`",
- "maxLength": 120,
+ "role": {
+ "description": "The user's role within the team",
+ "enum": [
+ "admin"
+ ],
"nullable": true,
- "type": "string"
- },
- "user_count": {
- "description": "The number of users belonging to the team",
- "format": "int32",
- "maximum": 2147483647,
- "readOnly": true,
- "type": "integer"
- },
- "visible_modules": {
- "description": "Collection of visible modules for the team",
- "items": {
- "description": "String identifier of the module",
- "type": "string"
- },
- "type": "array"
+ "type": "string",
+ "x-enum-varnames": [
+ "ADMIN"
+ ]
}
},
- "required": [
- "handle",
- "name"
- ],
"type": "object"
},
"id": {
- "description": "The team's identifier",
- "example": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
+ "description": "The ID of a user's relationship with a team",
+ "example": "TeamMembership-aeadc05e-98a8-11ec-ac2c-da7ad0900001-38835",
"type": "string"
},
"relationships": {
- "description": "Resources related to a team",
+ "description": "Relationship between membership and a user",
"properties": {
- "team_links": {
- "description": "Relationship between a team and a team link",
+ "team": {
+ "description": "Relationship between team membership and team",
"properties": {
"data": {
- "description": "Related team links",
- "items": {
- "description": "Relationship between a link and a team",
- "properties": {
- "id": {
- "description": "The team link's identifier",
- "example": "f9bb8444-af7f-11ec-ac2c-da7ad0900001",
- "type": "string"
- },
- "type": {
- "default": "team_links",
- "description": "Team link type",
- "enum": [
- "team_links"
- ],
- "example": "team_links",
- "type": "string",
- "x-enum-varnames": [
- "TEAM_LINKS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- },
- "links": {
- "description": "Links attributes.",
+ "description": "The team associated with the membership",
"properties": {
- "related": {
- "description": "Related link.",
- "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
+ "id": {
+ "description": "The ID of the team associated with the membership",
+ "example": "d7e15d9d-d346-43da-81d8-3d9e71d9a5e9",
"type": "string"
+ },
+ "type": {
+ "default": "team",
+ "description": "User team team type",
+ "enum": [
+ "team"
+ ],
+ "example": "team",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM"
+ ]
}
},
+ "required": [
+ "id",
+ "type"
+ ],
"type": "object"
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "required": [
+ "data"
+ ],
+ "type": "object"
},
- "user_team_permissions": {
- "description": "Relationship between a user team permission and a team",
+ "user": {
+ "description": "Relationship between team membership and user",
"properties": {
"data": {
- "description": "Related user team permission data",
+ "description": "A user's relationship with a team",
"properties": {
"id": {
- "description": "The ID of the user team permission",
- "example": "UserTeamPermissions-aeadc05e-98a8-11ec-ac2c-da7ad0900001-416595",
+ "description": "The ID of the user associated with the team",
+ "example": "b8626d7e-cedd-11eb-abf5-da7ad0900001",
"type": "string"
},
"type": {
- "default": "user_team_permissions",
- "description": "User team permission type",
+ "default": "users",
+ "description": "User team user type",
"enum": [
- "user_team_permissions"
+ "users"
],
- "example": "user_team_permissions",
+ "example": "users",
"type": "string",
"x-enum-varnames": [
- "USER_TEAM_PERMISSIONS"
+ "USERS"
]
}
},
@@ -392482,42 +416482,30 @@
"x-merge-override": {
"required": false
}
- },
- "links": {
- "description": "Links attributes.",
- "properties": {
- "related": {
- "description": "Related link.",
- "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
- "type": "string"
- }
- },
- "type": "object"
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "required": [
+ "data"
+ ],
+ "type": "object"
}
},
"type": "object"
},
"type": {
- "default": "team",
- "description": "Team type",
+ "default": "team_memberships",
+ "description": "Team membership type",
"enum": [
- "team"
+ "team_memberships"
],
- "example": "team",
+ "example": "team_memberships",
"type": "string",
"x-enum-varnames": [
- "TEAM"
+ "TEAM_MEMBERSHIPS"
]
}
},
"required": [
- "attributes",
"id",
"type"
],
@@ -392529,9 +416517,9 @@
"type": "array"
},
"included": {
- "description": "Resources related to the team",
+ "description": "Resources related to the team memberships",
"items": {
- "description": "Included resources related to the team",
+ "description": "Included resources related to the team membership",
"oneOf": [
{
"description": "User object returned by the API.",
@@ -392787,101 +416775,223 @@
}
},
{
- "description": "Team link",
+ "description": "A team",
"properties": {
"attributes": {
- "description": "Team link attributes",
+ "description": "Team attributes",
"properties": {
- "label": {
- "description": "The link's label",
- "example": "Link label",
- "maxLength": 256,
+ "avatar": {
+ "description": "Unicode representation of the avatar for the team, limited to a single grapheme",
+ "example": "🥑",
+ "nullable": true,
"type": "string"
},
- "position": {
- "description": "The link's position, used to sort links for the team",
+ "banner": {
+ "description": "Banner selection for the team",
+ "format": "int64",
+ "nullable": true,
+ "type": "integer"
+ },
+ "created_at": {
+ "description": "Creation date of the team",
+ "format": "date-time",
+ "type": "string"
+ },
+ "description": {
+ "description": "Free-form markdown description/content for the team's homepage",
+ "nullable": true,
+ "type": "string"
+ },
+ "handle": {
+ "description": "The team's identifier",
+ "example": "example-team",
+ "maxLength": 195,
+ "type": "string"
+ },
+ "hidden_modules": {
+ "description": "Collection of hidden modules for the team",
+ "items": {
+ "description": "String identifier of the module",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "link_count": {
+ "description": "The number of links belonging to the team",
"format": "int32",
"maximum": 2147483647,
+ "readOnly": true,
"type": "integer"
},
- "team_id": {
- "description": "ID of the team the link is associated with",
- "readOnly": true,
+ "modified_at": {
+ "description": "Modification date of the team",
+ "format": "date-time",
"type": "string"
},
- "url": {
- "description": "The URL for the link",
- "example": "https://example.com",
+ "name": {
+ "description": "The name of the team",
+ "example": "Example Team",
+ "maxLength": 200,
+ "type": "string"
+ },
+ "summary": {
+ "description": "A brief summary of the team, derived from the `description`",
+ "maxLength": 120,
+ "nullable": true,
"type": "string"
+ },
+ "user_count": {
+ "description": "The number of users belonging to the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "readOnly": true,
+ "type": "integer"
+ },
+ "visible_modules": {
+ "description": "Collection of visible modules for the team",
+ "items": {
+ "description": "String identifier of the module",
+ "type": "string"
+ },
+ "type": "array"
}
},
"required": [
- "label",
- "url"
+ "handle",
+ "name"
],
"type": "object"
},
"id": {
- "description": "The team link's identifier",
- "example": "b8626d7e-cedd-11eb-abf5-da7ad0900001",
+ "description": "The team's identifier",
+ "example": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
"type": "string"
},
- "type": {
- "default": "team_links",
- "description": "Team link type",
- "enum": [
- "team_links"
- ],
- "example": "team_links",
- "type": "string",
- "x-enum-varnames": [
- "TEAM_LINKS"
- ]
- }
- },
- "required": [
- "attributes",
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- {
- "description": "A user's permissions for a given team",
- "properties": {
- "attributes": {
- "description": "User team permission attributes",
+ "relationships": {
+ "description": "Resources related to a team",
"properties": {
- "permissions": {
- "description": "Object of team permission actions and boolean values that a logged in user can perform on this team.",
- "readOnly": true,
- "type": "object"
+ "team_links": {
+ "description": "Relationship between a team and a team link",
+ "properties": {
+ "data": {
+ "description": "Related team links",
+ "items": {
+ "description": "Relationship between a link and a team",
+ "properties": {
+ "id": {
+ "description": "The team link's identifier",
+ "example": "f9bb8444-af7f-11ec-ac2c-da7ad0900001",
+ "type": "string"
+ },
+ "type": {
+ "default": "team_links",
+ "description": "Team link type",
+ "enum": [
+ "team_links"
+ ],
+ "example": "team_links",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM_LINKS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ },
+ "links": {
+ "description": "Links attributes.",
+ "properties": {
+ "related": {
+ "description": "Related link.",
+ "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "user_team_permissions": {
+ "description": "Relationship between a user team permission and a team",
+ "properties": {
+ "data": {
+ "description": "Related user team permission data",
+ "properties": {
+ "id": {
+ "description": "The ID of the user team permission",
+ "example": "UserTeamPermissions-aeadc05e-98a8-11ec-ac2c-da7ad0900001-416595",
+ "type": "string"
+ },
+ "type": {
+ "default": "user_team_permissions",
+ "description": "User team permission type",
+ "enum": [
+ "user_team_permissions"
+ ],
+ "example": "user_team_permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "USER_TEAM_PERMISSIONS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "links": {
+ "description": "Links attributes.",
+ "properties": {
+ "related": {
+ "description": "Related link.",
+ "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
"type": "object"
},
- "id": {
- "description": "The user team permission's identifier",
- "example": "UserTeamPermissions-aeadc05e-98a8-11ec-ac2c-da7ad0900001-416595",
- "type": "string"
- },
"type": {
- "default": "user_team_permissions",
- "description": "User team permission type",
+ "default": "team",
+ "description": "Team type",
"enum": [
- "user_team_permissions"
+ "team"
],
- "example": "user_team_permissions",
+ "example": "team",
"type": "string",
"x-enum-varnames": [
- "USER_TEAM_PERMISSIONS"
+ "TEAM"
]
}
},
"required": [
+ "attributes",
"id",
"type"
],
@@ -392978,7 +417088,7 @@
}
}
},
- "description": "OK"
+ "description": "Represents a user's association to a team"
},
"403": {
"content": {
@@ -393008,6 +417118,34 @@
},
"description": "Forbidden"
},
+ "404": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "API error response."
+ },
"429": {
"content": {
"application/json": {
@@ -393048,11 +417186,11 @@
]
}
],
- "summary": "Get all teams",
+ "summary": "Get team memberships",
"tags": [
"Teams"
],
- "x-menu-order": 1,
+ "x-menu-order": 6,
"x-pagination": {
"limitParam": "page[size]",
"pageParam": "page[number]",
@@ -393069,111 +417207,128 @@
}
},
"post": {
- "description": "Create a new team.\nUser IDs passed through the `users` relationship field are added to the team.",
- "operationId": "CreateTeam",
+ "description": "Add a user to a team.",
+ "operationId": "CreateTeamMembership",
+ "parameters": [
+ {
+ "description": "None",
+ "in": "path",
+ "name": "team_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
"requestBody": {
"content": {
"application/json": {
"schema": {
- "description": "Request to create a team",
+ "description": "Team membership request",
"properties": {
"data": {
- "description": "Team create",
+ "description": "A user's relationship with a team",
"properties": {
"attributes": {
- "description": "Team creation attributes",
+ "description": "Team membership attributes",
"properties": {
- "avatar": {
- "description": "Unicode representation of the avatar for the team, limited to a single grapheme",
- "example": "🥑",
+ "provisioned_by": {
+ "description": "The mechanism responsible for provisioning the team relationship.\nPossible values: null for added by a user, \"service_account\" if added by a service account, and \"saml_mapping\" if provisioned via SAML mapping.",
"nullable": true,
+ "readOnly": true,
"type": "string"
},
- "banner": {
- "description": "Banner selection for the team",
- "format": "int64",
+ "provisioned_by_id": {
+ "description": "UUID of the User or Service Account who provisioned this team membership, or null if provisioned via SAML mapping.",
"nullable": true,
- "type": "integer"
- },
- "description": {
- "description": "Free-form markdown description/content for the team's homepage",
- "type": "string"
- },
- "handle": {
- "description": "The team's identifier",
- "example": "example-team",
- "maxLength": 195,
- "type": "string"
- },
- "hidden_modules": {
- "description": "Collection of hidden modules for the team",
- "items": {
- "description": "String identifier of the module",
- "type": "string"
- },
- "type": "array"
- },
- "name": {
- "description": "The name of the team",
- "example": "Example Team",
- "maxLength": 200,
+ "readOnly": true,
"type": "string"
},
- "visible_modules": {
- "description": "Collection of visible modules for the team",
- "items": {
- "description": "String identifier of the module",
- "type": "string"
- },
- "type": "array"
+ "role": {
+ "description": "The user's role within the team",
+ "enum": [
+ "admin"
+ ],
+ "nullable": true,
+ "type": "string",
+ "x-enum-varnames": [
+ "ADMIN"
+ ]
}
},
- "required": [
- "handle",
- "name"
- ],
"type": "object"
},
"relationships": {
- "description": "Relationships formed with the team on creation",
+ "description": "Relationship between membership and a user",
"properties": {
- "users": {
- "description": "Relationship to users.",
+ "team": {
+ "description": "Relationship between team membership and team",
"properties": {
"data": {
- "description": "Relationships to user objects.",
- "example": [],
- "items": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
+ "description": "The team associated with the membership",
+ "properties": {
+ "id": {
+ "description": "The ID of the team associated with the membership",
+ "example": "d7e15d9d-d346-43da-81d8-3d9e71d9a5e9",
+ "type": "string"
},
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
+ "type": {
+ "default": "team",
+ "description": "User team team type",
+ "enum": [
+ "team"
+ ],
+ "example": "team",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM"
+ ]
}
},
- "type": "array"
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "user": {
+ "description": "Relationship between team membership and user",
+ "properties": {
+ "data": {
+ "description": "A user's relationship with a team",
+ "properties": {
+ "id": {
+ "description": "The ID of the user associated with the team",
+ "example": "b8626d7e-cedd-11eb-abf5-da7ad0900001",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "User team user type",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
"required": [
@@ -393185,20 +417340,19 @@
"type": "object"
},
"type": {
- "default": "team",
- "description": "Team type",
+ "default": "team_memberships",
+ "description": "Team membership type",
"enum": [
- "team"
+ "team_memberships"
],
- "example": "team",
+ "example": "team_memberships",
"type": "string",
"x-enum-varnames": [
- "TEAM"
+ "TEAM_MEMBERSHIPS"
]
}
},
"required": [
- "attributes",
"type"
],
"type": "object"
@@ -393214,183 +417368,109 @@
"required": true
},
"responses": {
- "201": {
+ "200": {
"content": {
"application/json": {
"schema": {
- "description": "Response with a team",
+ "description": "Team membership response",
"properties": {
"data": {
- "description": "A team",
+ "description": "A user's relationship with a team",
"properties": {
"attributes": {
- "description": "Team attributes",
+ "description": "Team membership attributes",
"properties": {
- "avatar": {
- "description": "Unicode representation of the avatar for the team, limited to a single grapheme",
- "example": "🥑",
- "nullable": true,
- "type": "string"
- },
- "banner": {
- "description": "Banner selection for the team",
- "format": "int64",
- "nullable": true,
- "type": "integer"
- },
- "created_at": {
- "description": "Creation date of the team",
- "format": "date-time",
- "type": "string"
- },
- "description": {
- "description": "Free-form markdown description/content for the team's homepage",
+ "provisioned_by": {
+ "description": "The mechanism responsible for provisioning the team relationship.\nPossible values: null for added by a user, \"service_account\" if added by a service account, and \"saml_mapping\" if provisioned via SAML mapping.",
"nullable": true,
- "type": "string"
- },
- "handle": {
- "description": "The team's identifier",
- "example": "example-team",
- "maxLength": 195,
- "type": "string"
- },
- "hidden_modules": {
- "description": "Collection of hidden modules for the team",
- "items": {
- "description": "String identifier of the module",
- "type": "string"
- },
- "type": "array"
- },
- "link_count": {
- "description": "The number of links belonging to the team",
- "format": "int32",
- "maximum": 2147483647,
"readOnly": true,
- "type": "integer"
- },
- "modified_at": {
- "description": "Modification date of the team",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "The name of the team",
- "example": "Example Team",
- "maxLength": 200,
- "type": "string"
- },
- "summary": {
- "description": "A brief summary of the team, derived from the `description`",
- "maxLength": 120,
- "nullable": true,
"type": "string"
},
- "user_count": {
- "description": "The number of users belonging to the team",
- "format": "int32",
- "maximum": 2147483647,
- "readOnly": true,
- "type": "integer"
- },
- "visible_modules": {
- "description": "Collection of visible modules for the team",
- "items": {
- "description": "String identifier of the module",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "handle",
- "name"
- ],
- "type": "object"
- },
- "id": {
- "description": "The team's identifier",
- "example": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
- "type": "string"
- },
- "relationships": {
- "description": "Resources related to a team",
- "properties": {
- "team_links": {
- "description": "Relationship between a team and a team link",
- "properties": {
- "data": {
- "description": "Related team links",
- "items": {
- "description": "Relationship between a link and a team",
- "properties": {
- "id": {
- "description": "The team link's identifier",
- "example": "f9bb8444-af7f-11ec-ac2c-da7ad0900001",
- "type": "string"
- },
- "type": {
- "default": "team_links",
- "description": "Team link type",
- "enum": [
- "team_links"
- ],
- "example": "team_links",
- "type": "string",
- "x-enum-varnames": [
- "TEAM_LINKS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- },
- "links": {
- "description": "Links attributes.",
+ "provisioned_by_id": {
+ "description": "UUID of the User or Service Account who provisioned this team membership, or null if provisioned via SAML mapping.",
+ "nullable": true,
+ "readOnly": true,
+ "type": "string"
+ },
+ "role": {
+ "description": "The user's role within the team",
+ "enum": [
+ "admin"
+ ],
+ "nullable": true,
+ "type": "string",
+ "x-enum-varnames": [
+ "ADMIN"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The ID of a user's relationship with a team",
+ "example": "TeamMembership-aeadc05e-98a8-11ec-ac2c-da7ad0900001-38835",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationship between membership and a user",
+ "properties": {
+ "team": {
+ "description": "Relationship between team membership and team",
+ "properties": {
+ "data": {
+ "description": "The team associated with the membership",
"properties": {
- "related": {
- "description": "Related link.",
- "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
+ "id": {
+ "description": "The ID of the team associated with the membership",
+ "example": "d7e15d9d-d346-43da-81d8-3d9e71d9a5e9",
"type": "string"
+ },
+ "type": {
+ "default": "team",
+ "description": "User team team type",
+ "enum": [
+ "team"
+ ],
+ "example": "team",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM"
+ ]
}
},
+ "required": [
+ "id",
+ "type"
+ ],
"type": "object"
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "required": [
+ "data"
+ ],
+ "type": "object"
},
- "user_team_permissions": {
- "description": "Relationship between a user team permission and a team",
+ "user": {
+ "description": "Relationship between team membership and user",
"properties": {
"data": {
- "description": "Related user team permission data",
+ "description": "A user's relationship with a team",
"properties": {
"id": {
- "description": "The ID of the user team permission",
- "example": "UserTeamPermissions-aeadc05e-98a8-11ec-ac2c-da7ad0900001-416595",
+ "description": "The ID of the user associated with the team",
+ "example": "b8626d7e-cedd-11eb-abf5-da7ad0900001",
"type": "string"
},
"type": {
- "default": "user_team_permissions",
- "description": "User team permission type",
+ "default": "users",
+ "description": "User team user type",
"enum": [
- "user_team_permissions"
+ "users"
],
- "example": "user_team_permissions",
+ "example": "users",
"type": "string",
"x-enum-varnames": [
- "USER_TEAM_PERMISSIONS"
+ "USERS"
]
}
},
@@ -393402,42 +417482,30 @@
"x-merge-override": {
"required": false
}
- },
- "links": {
- "description": "Links attributes.",
- "properties": {
- "related": {
- "description": "Related link.",
- "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
- "type": "string"
- }
- },
- "type": "object"
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "required": [
+ "data"
+ ],
+ "type": "object"
}
},
"type": "object"
},
"type": {
- "default": "team",
- "description": "Team type",
+ "default": "team_memberships",
+ "description": "Team membership type",
"enum": [
- "team"
+ "team_memberships"
],
- "example": "team",
+ "example": "team_memberships",
"type": "string",
"x-enum-varnames": [
- "TEAM"
+ "TEAM_MEMBERSHIPS"
]
}
},
"required": [
- "attributes",
"id",
"type"
],
@@ -393445,71 +417513,503 @@
"x-merge-override": {
"required": false
}
- }
- },
- "type": "object"
- }
- }
- },
- "description": "CREATED"
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Forbidden"
- },
- "409": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
+ },
+ "included": {
+ "description": "Resources related to the team memberships",
"items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "description": "Included resources related to the team membership",
+ "oneOf": [
+ {
+ "description": "User object returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of user object returned by the API.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the user.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "disabled": {
+ "description": "Whether the user is disabled.",
+ "type": "boolean"
+ },
+ "email": {
+ "description": "Email of the user.",
+ "type": "string"
+ },
+ "handle": {
+ "description": "Handle of the user.",
+ "type": "string"
+ },
+ "icon": {
+ "description": "URL of the user's icon.",
+ "type": "string"
+ },
+ "mfa_enabled": {
+ "description": "If user has MFA enabled.",
+ "readOnly": true,
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time that the user was last modified.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "service_account": {
+ "description": "Whether the user is a service account.",
+ "type": "boolean"
+ },
+ "status": {
+ "description": "Status of the user.",
+ "type": "string"
+ },
+ "title": {
+ "description": "Title of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "verified": {
+ "description": "Whether the user is verified.",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the user.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships of the user object returned by the API.",
+ "properties": {
+ "org": {
+ "description": "Relationship to an organization.",
+ "properties": {
+ "data": {
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_orgs": {
+ "description": "Relationship to organizations.",
+ "properties": {
+ "data": {
+ "description": "Relationships to organization objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_users": {
+ "description": "Relationship to users.",
+ "properties": {
+ "data": {
+ "description": "Relationships to user objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "roles": {
+ "description": "Relationship to roles.",
+ "properties": {
+ "data": {
+ "description": "An array containing type and the unique identifier of a role.",
+ "items": {
+ "description": "Relationship to role object.",
+ "properties": {
+ "id": {
+ "description": "The unique identifier of the role.",
+ "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "type": "string"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "properties": false
+ }
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ {
+ "description": "A team",
+ "properties": {
+ "attributes": {
+ "description": "Team attributes",
+ "properties": {
+ "avatar": {
+ "description": "Unicode representation of the avatar for the team, limited to a single grapheme",
+ "example": "🥑",
+ "nullable": true,
+ "type": "string"
+ },
+ "banner": {
+ "description": "Banner selection for the team",
+ "format": "int64",
+ "nullable": true,
+ "type": "integer"
+ },
+ "created_at": {
+ "description": "Creation date of the team",
+ "format": "date-time",
+ "type": "string"
+ },
+ "description": {
+ "description": "Free-form markdown description/content for the team's homepage",
+ "nullable": true,
+ "type": "string"
+ },
+ "handle": {
+ "description": "The team's identifier",
+ "example": "example-team",
+ "maxLength": 195,
+ "type": "string"
+ },
+ "hidden_modules": {
+ "description": "Collection of hidden modules for the team",
+ "items": {
+ "description": "String identifier of the module",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "link_count": {
+ "description": "The number of links belonging to the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "readOnly": true,
+ "type": "integer"
+ },
+ "modified_at": {
+ "description": "Modification date of the team",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the team",
+ "example": "Example Team",
+ "maxLength": 200,
+ "type": "string"
+ },
+ "summary": {
+ "description": "A brief summary of the team, derived from the `description`",
+ "maxLength": 120,
+ "nullable": true,
+ "type": "string"
+ },
+ "user_count": {
+ "description": "The number of users belonging to the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "readOnly": true,
+ "type": "integer"
+ },
+ "visible_modules": {
+ "description": "Collection of visible modules for the team",
+ "items": {
+ "description": "String identifier of the module",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "handle",
+ "name"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "description": "The team's identifier",
+ "example": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Resources related to a team",
+ "properties": {
+ "team_links": {
+ "description": "Relationship between a team and a team link",
+ "properties": {
+ "data": {
+ "description": "Related team links",
+ "items": {
+ "description": "Relationship between a link and a team",
+ "properties": {
+ "id": {
+ "description": "The team link's identifier",
+ "example": "f9bb8444-af7f-11ec-ac2c-da7ad0900001",
+ "type": "string"
+ },
+ "type": {
+ "default": "team_links",
+ "description": "Team link type",
+ "enum": [
+ "team_links"
+ ],
+ "example": "team_links",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM_LINKS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ },
+ "links": {
+ "description": "Links attributes.",
+ "properties": {
+ "related": {
+ "description": "Related link.",
+ "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "user_team_permissions": {
+ "description": "Relationship between a user team permission and a team",
+ "properties": {
+ "data": {
+ "description": "Related user team permission data",
+ "properties": {
+ "id": {
+ "description": "The ID of the user team permission",
+ "example": "UserTeamPermissions-aeadc05e-98a8-11ec-ac2c-da7ad0900001-416595",
+ "type": "string"
+ },
+ "type": {
+ "default": "user_team_permissions",
+ "description": "User team permission type",
+ "enum": [
+ "user_team_permissions"
+ ],
+ "example": "user_team_permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "USER_TEAM_PERMISSIONS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "links": {
+ "description": "Links attributes.",
+ "properties": {
+ "related": {
+ "description": "Related link.",
+ "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "default": "team",
+ "description": "Team type",
+ "enum": [
+ "team"
+ ],
+ "example": "team",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM"
+ ]
+ }
+ },
+ "required": [
+ "attributes",
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ ]
},
"type": "array"
}
},
- "required": [
- "errors"
- ],
"type": "object"
}
}
},
- "description": "API error response."
+ "description": "Represents a user's association to a team"
},
- "429": {
+ "403": {
"content": {
"application/json": {
"schema": {
@@ -393535,81 +418035,9 @@
}
}
},
- "description": "Too many requests"
- }
- },
- "security": [
- {
- "apiKeyAuth": [],
- "appKeyAuth": []
- },
- {
- "AuthZ": [
- "teams_read",
- "teams_manage"
- ]
- }
- ],
- "summary": "Create a team",
- "tags": [
- "Teams"
- ],
- "x-codegen-request-body-name": "body",
- "x-given": {
- "dd_team": {
- "parameters": [
- {
- "name": "body",
- "value": "{\n \"data\": {\n \"attributes\": {\n \"handle\": \"test-handle-{{ unique_hash }}\",\n \"name\": \"test-name-{{ unique_hash }}\"\n },\n \"type\": \"team\"\n }\n}"
- }
- ],
- "step": "there is a valid \"dd_team\" in the system"
- }
- },
- "x-menu-order": 2,
- "x-permission": {
- "operator": "AND",
- "permissions": [
- "teams_read",
- "teams_manage"
- ]
- },
- "x-undo": {
- "operationId": "DeleteTeam",
- "parameters": [
- {
- "name": "team_id",
- "source": "data.id"
- }
- ],
- "type": "unsafe"
- }
- },
- "x-merge-override": {
- "get": false,
- "post": false
- }
- },
- "/api/v2/team/{team_id}": {
- "delete": {
- "description": "Remove a team using the team's `id`.",
- "operationId": "DeleteTeam",
- "parameters": [
- {
- "description": "None",
- "in": "path",
- "name": "team_id",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "204": {
- "description": "No Content"
+ "description": "Forbidden"
},
- "403": {
+ "404": {
"content": {
"application/json": {
"schema": {
@@ -393635,9 +418063,9 @@
}
}
},
- "description": "Forbidden"
+ "description": "API error response."
},
- "404": {
+ "409": {
"content": {
"application/json": {
"schema": {
@@ -393701,30 +418129,53 @@
},
{
"AuthZ": [
- "teams_read",
- "teams_manage"
+ "teams_read"
]
}
],
- "summary": "Remove a team",
+ "summary": "Add a user to a team",
"tags": [
"Teams"
],
- "x-menu-order": 5,
+ "x-codegen-request-body-name": "body",
+ "x-given": {
+ "team_membership": {
+ "parameters": [
+ {
+ "name": "body",
+ "value": "{\n \"data\": {\n \"attributes\": {\n \"role\": \"admin\"\n },\n \"relationships\": {\n \"user\": {\n \"data\": {\n \"id\": \"{{user.data.id}}\",\n \"type\": \"users\"\n }\n }\n },\n \"type\": \"team_memberships\"\n }\n}"
+ }
+ ],
+ "step": "there is a valid \"team_membership\" in the system"
+ }
+ },
+ "x-menu-order": 7,
"x-permission": {
- "operator": "AND",
+ "operator": "OR",
"permissions": [
- "teams_read",
- "teams_manage"
+ "teams_read"
]
},
"x-undo": {
- "type": "idempotent"
+ "operationId": "DeleteTeamMembership",
+ "parameters": [
+ {
+ "name": "team_id",
+ "template": "{{team.data.id}}"
+ },
+ {
+ "name": "user_id",
+ "source": "data.relationships.user.data.id"
+ }
+ ],
+ "type": "unsafe"
}
- },
- "get": {
- "description": "Get a single team using the team's `id`.",
- "operationId": "GetTeam",
+ }
+ },
+ "/api/v2/team/{team_id}/memberships/{user_id}": {
+ "delete": {
+ "description": "Remove a user from a team.",
+ "operationId": "DeleteTeamMembership",
"parameters": [
{
"description": "None",
@@ -393734,247 +418185,20 @@
"schema": {
"type": "string"
}
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Response with a team",
- "properties": {
- "data": {
- "description": "A team",
- "properties": {
- "attributes": {
- "description": "Team attributes",
- "properties": {
- "avatar": {
- "description": "Unicode representation of the avatar for the team, limited to a single grapheme",
- "example": "🥑",
- "nullable": true,
- "type": "string"
- },
- "banner": {
- "description": "Banner selection for the team",
- "format": "int64",
- "nullable": true,
- "type": "integer"
- },
- "created_at": {
- "description": "Creation date of the team",
- "format": "date-time",
- "type": "string"
- },
- "description": {
- "description": "Free-form markdown description/content for the team's homepage",
- "nullable": true,
- "type": "string"
- },
- "handle": {
- "description": "The team's identifier",
- "example": "example-team",
- "maxLength": 195,
- "type": "string"
- },
- "hidden_modules": {
- "description": "Collection of hidden modules for the team",
- "items": {
- "description": "String identifier of the module",
- "type": "string"
- },
- "type": "array"
- },
- "link_count": {
- "description": "The number of links belonging to the team",
- "format": "int32",
- "maximum": 2147483647,
- "readOnly": true,
- "type": "integer"
- },
- "modified_at": {
- "description": "Modification date of the team",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "The name of the team",
- "example": "Example Team",
- "maxLength": 200,
- "type": "string"
- },
- "summary": {
- "description": "A brief summary of the team, derived from the `description`",
- "maxLength": 120,
- "nullable": true,
- "type": "string"
- },
- "user_count": {
- "description": "The number of users belonging to the team",
- "format": "int32",
- "maximum": 2147483647,
- "readOnly": true,
- "type": "integer"
- },
- "visible_modules": {
- "description": "Collection of visible modules for the team",
- "items": {
- "description": "String identifier of the module",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "handle",
- "name"
- ],
- "type": "object"
- },
- "id": {
- "description": "The team's identifier",
- "example": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
- "type": "string"
- },
- "relationships": {
- "description": "Resources related to a team",
- "properties": {
- "team_links": {
- "description": "Relationship between a team and a team link",
- "properties": {
- "data": {
- "description": "Related team links",
- "items": {
- "description": "Relationship between a link and a team",
- "properties": {
- "id": {
- "description": "The team link's identifier",
- "example": "f9bb8444-af7f-11ec-ac2c-da7ad0900001",
- "type": "string"
- },
- "type": {
- "default": "team_links",
- "description": "Team link type",
- "enum": [
- "team_links"
- ],
- "example": "team_links",
- "type": "string",
- "x-enum-varnames": [
- "TEAM_LINKS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- },
- "links": {
- "description": "Links attributes.",
- "properties": {
- "related": {
- "description": "Related link.",
- "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "user_team_permissions": {
- "description": "Relationship between a user team permission and a team",
- "properties": {
- "data": {
- "description": "Related user team permission data",
- "properties": {
- "id": {
- "description": "The ID of the user team permission",
- "example": "UserTeamPermissions-aeadc05e-98a8-11ec-ac2c-da7ad0900001-416595",
- "type": "string"
- },
- "type": {
- "default": "user_team_permissions",
- "description": "User team permission type",
- "enum": [
- "user_team_permissions"
- ],
- "example": "user_team_permissions",
- "type": "string",
- "x-enum-varnames": [
- "USER_TEAM_PERMISSIONS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "links": {
- "description": "Links attributes.",
- "properties": {
- "related": {
- "description": "Related link.",
- "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
- },
- "type": {
- "default": "team",
- "description": "Team type",
- "enum": [
- "team"
- ],
- "example": "team",
- "type": "string",
- "x-enum-varnames": [
- "TEAM"
- ]
- }
- },
- "required": [
- "attributes",
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
- }
- }
- },
- "description": "OK"
+ },
+ {
+ "description": "None",
+ "in": "path",
+ "name": "user_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "No Content"
},
"403": {
"content": {
@@ -394072,11 +418296,11 @@
]
}
],
- "summary": "Get a team",
+ "summary": "Remove a user from a team",
"tags": [
"Teams"
],
- "x-menu-order": 3,
+ "x-menu-order": 8,
"x-permission": {
"operator": "OR",
"permissions": [
@@ -394084,12 +418308,12 @@
]
},
"x-undo": {
- "type": "safe"
+ "type": "idempotent"
}
},
"patch": {
- "description": "Update a team using the team's `id`.\nIf the `team_links` relationship is present, the associated links are updated to be in the order they appear in the array, and any existing team links not present are removed.",
- "operationId": "UpdateTeam",
+ "description": "Update a user's membership attributes on a team.",
+ "operationId": "UpdateTeamMembership",
"parameters": [
{
"description": "None",
@@ -394099,146 +418323,69 @@
"schema": {
"type": "string"
}
+ },
+ {
+ "description": "None",
+ "in": "path",
+ "name": "user_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
- "description": "Team update request",
+ "description": "Team membership request",
"properties": {
"data": {
- "description": "Team update request",
+ "description": "A user's relationship with a team",
"properties": {
"attributes": {
- "description": "Team update attributes",
+ "description": "Team membership attributes",
"properties": {
- "avatar": {
- "description": "Unicode representation of the avatar for the team, limited to a single grapheme",
- "example": "🥑",
+ "provisioned_by": {
+ "description": "The mechanism responsible for provisioning the team relationship.\nPossible values: null for added by a user, \"service_account\" if added by a service account, and \"saml_mapping\" if provisioned via SAML mapping.",
"nullable": true,
+ "readOnly": true,
"type": "string"
},
- "banner": {
- "description": "Banner selection for the team",
- "format": "int64",
+ "provisioned_by_id": {
+ "description": "UUID of the User or Service Account who provisioned this team membership, or null if provisioned via SAML mapping.",
"nullable": true,
- "type": "integer"
- },
- "description": {
- "description": "Free-form markdown description/content for the team's homepage",
- "type": "string"
- },
- "handle": {
- "description": "The team's identifier",
- "example": "example-team",
- "maxLength": 195,
- "type": "string"
- },
- "hidden_modules": {
- "description": "Collection of hidden modules for the team",
- "items": {
- "description": "String identifier of the module",
- "type": "string"
- },
- "type": "array"
- },
- "name": {
- "description": "The name of the team",
- "example": "Example Team",
- "maxLength": 200,
+ "readOnly": true,
"type": "string"
},
- "visible_modules": {
- "description": "Collection of visible modules for the team",
- "items": {
- "description": "String identifier of the module",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "handle",
- "name"
- ],
- "type": "object"
- },
- "relationships": {
- "description": "Team update relationships",
- "properties": {
- "team_links": {
- "description": "Relationship between a team and a team link",
- "properties": {
- "data": {
- "description": "Related team links",
- "items": {
- "description": "Relationship between a link and a team",
- "properties": {
- "id": {
- "description": "The team link's identifier",
- "example": "f9bb8444-af7f-11ec-ac2c-da7ad0900001",
- "type": "string"
- },
- "type": {
- "default": "team_links",
- "description": "Team link type",
- "enum": [
- "team_links"
- ],
- "example": "team_links",
- "type": "string",
- "x-enum-varnames": [
- "TEAM_LINKS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- },
- "links": {
- "description": "Links attributes.",
- "properties": {
- "related": {
- "description": "Related link.",
- "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "role": {
+ "description": "The user's role within the team",
+ "enum": [
+ "admin"
+ ],
+ "nullable": true,
+ "type": "string",
+ "x-enum-varnames": [
+ "ADMIN"
+ ]
}
},
"type": "object"
},
"type": {
- "default": "team",
- "description": "Team type",
+ "default": "team_memberships",
+ "description": "Team membership type",
"enum": [
- "team"
+ "team_memberships"
],
- "example": "team",
+ "example": "team_memberships",
"type": "string",
"x-enum-varnames": [
- "TEAM"
+ "TEAM_MEMBERSHIPS"
]
}
},
"required": [
- "attributes",
"type"
],
"type": "object"
@@ -394258,179 +418405,105 @@
"content": {
"application/json": {
"schema": {
- "description": "Response with a team",
+ "description": "Team membership response",
"properties": {
"data": {
- "description": "A team",
+ "description": "A user's relationship with a team",
"properties": {
"attributes": {
- "description": "Team attributes",
+ "description": "Team membership attributes",
"properties": {
- "avatar": {
- "description": "Unicode representation of the avatar for the team, limited to a single grapheme",
- "example": "🥑",
- "nullable": true,
- "type": "string"
- },
- "banner": {
- "description": "Banner selection for the team",
- "format": "int64",
+ "provisioned_by": {
+ "description": "The mechanism responsible for provisioning the team relationship.\nPossible values: null for added by a user, \"service_account\" if added by a service account, and \"saml_mapping\" if provisioned via SAML mapping.",
"nullable": true,
- "type": "integer"
- },
- "created_at": {
- "description": "Creation date of the team",
- "format": "date-time",
+ "readOnly": true,
"type": "string"
},
- "description": {
- "description": "Free-form markdown description/content for the team's homepage",
+ "provisioned_by_id": {
+ "description": "UUID of the User or Service Account who provisioned this team membership, or null if provisioned via SAML mapping.",
"nullable": true,
- "type": "string"
- },
- "handle": {
- "description": "The team's identifier",
- "example": "example-team",
- "maxLength": 195,
- "type": "string"
- },
- "hidden_modules": {
- "description": "Collection of hidden modules for the team",
- "items": {
- "description": "String identifier of the module",
- "type": "string"
- },
- "type": "array"
- },
- "link_count": {
- "description": "The number of links belonging to the team",
- "format": "int32",
- "maximum": 2147483647,
"readOnly": true,
- "type": "integer"
- },
- "modified_at": {
- "description": "Modification date of the team",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "The name of the team",
- "example": "Example Team",
- "maxLength": 200,
"type": "string"
},
- "summary": {
- "description": "A brief summary of the team, derived from the `description`",
- "maxLength": 120,
+ "role": {
+ "description": "The user's role within the team",
+ "enum": [
+ "admin"
+ ],
"nullable": true,
- "type": "string"
- },
- "user_count": {
- "description": "The number of users belonging to the team",
- "format": "int32",
- "maximum": 2147483647,
- "readOnly": true,
- "type": "integer"
- },
- "visible_modules": {
- "description": "Collection of visible modules for the team",
- "items": {
- "description": "String identifier of the module",
- "type": "string"
- },
- "type": "array"
+ "type": "string",
+ "x-enum-varnames": [
+ "ADMIN"
+ ]
}
},
- "required": [
- "handle",
- "name"
- ],
"type": "object"
},
"id": {
- "description": "The team's identifier",
- "example": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
+ "description": "The ID of a user's relationship with a team",
+ "example": "TeamMembership-aeadc05e-98a8-11ec-ac2c-da7ad0900001-38835",
"type": "string"
},
"relationships": {
- "description": "Resources related to a team",
+ "description": "Relationship between membership and a user",
"properties": {
- "team_links": {
- "description": "Relationship between a team and a team link",
+ "team": {
+ "description": "Relationship between team membership and team",
"properties": {
"data": {
- "description": "Related team links",
- "items": {
- "description": "Relationship between a link and a team",
- "properties": {
- "id": {
- "description": "The team link's identifier",
- "example": "f9bb8444-af7f-11ec-ac2c-da7ad0900001",
- "type": "string"
- },
- "type": {
- "default": "team_links",
- "description": "Team link type",
- "enum": [
- "team_links"
- ],
- "example": "team_links",
- "type": "string",
- "x-enum-varnames": [
- "TEAM_LINKS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- },
- "links": {
- "description": "Links attributes.",
+ "description": "The team associated with the membership",
"properties": {
- "related": {
- "description": "Related link.",
- "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
+ "id": {
+ "description": "The ID of the team associated with the membership",
+ "example": "d7e15d9d-d346-43da-81d8-3d9e71d9a5e9",
"type": "string"
+ },
+ "type": {
+ "default": "team",
+ "description": "User team team type",
+ "enum": [
+ "team"
+ ],
+ "example": "team",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM"
+ ]
}
},
+ "required": [
+ "id",
+ "type"
+ ],
"type": "object"
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "required": [
+ "data"
+ ],
+ "type": "object"
},
- "user_team_permissions": {
- "description": "Relationship between a user team permission and a team",
+ "user": {
+ "description": "Relationship between team membership and user",
"properties": {
"data": {
- "description": "Related user team permission data",
+ "description": "A user's relationship with a team",
"properties": {
"id": {
- "description": "The ID of the user team permission",
- "example": "UserTeamPermissions-aeadc05e-98a8-11ec-ac2c-da7ad0900001-416595",
+ "description": "The ID of the user associated with the team",
+ "example": "b8626d7e-cedd-11eb-abf5-da7ad0900001",
"type": "string"
},
"type": {
- "default": "user_team_permissions",
- "description": "User team permission type",
+ "default": "users",
+ "description": "User team user type",
"enum": [
- "user_team_permissions"
+ "users"
],
- "example": "user_team_permissions",
+ "example": "users",
"type": "string",
"x-enum-varnames": [
- "USER_TEAM_PERMISSIONS"
+ "USERS"
]
}
},
@@ -394442,42 +418515,30 @@
"x-merge-override": {
"required": false
}
- },
- "links": {
- "description": "Links attributes.",
- "properties": {
- "related": {
- "description": "Related link.",
- "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
- "type": "string"
- }
- },
- "type": "object"
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "required": [
+ "data"
+ ],
+ "type": "object"
}
},
"type": "object"
},
"type": {
- "default": "team",
- "description": "Team type",
+ "default": "team_memberships",
+ "description": "Team membership type",
"enum": [
- "team"
+ "team_memberships"
],
- "example": "team",
+ "example": "team_memberships",
"type": "string",
"x-enum-varnames": [
- "TEAM"
+ "TEAM_MEMBERSHIPS"
]
}
},
"required": [
- "attributes",
"id",
"type"
],
@@ -394485,750 +418546,501 @@
"x-merge-override": {
"required": false
}
- }
- },
- "type": "object"
- }
- }
- },
- "description": "OK"
- },
- "400": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "API error response."
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Forbidden"
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "API error response."
- },
- "409": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "API error response."
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Too many requests"
- }
- },
- "security": [
- {
- "apiKeyAuth": [],
- "appKeyAuth": []
- },
- {
- "AuthZ": [
- "teams_read"
- ]
- }
- ],
- "summary": "Update a team",
- "tags": [
- "Teams"
- ],
- "x-codegen-request-body-name": "body",
- "x-menu-order": 4,
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "teams_read"
- ]
- },
- "x-undo": {
- "type": "idempotent"
- }
- },
- "x-merge-override": {
- "delete": true,
- "get": false,
- "patch": false
- }
- },
- "/api/v2/team/{team_id}/links": {
- "get": {
- "description": "Get all links for a given team.",
- "operationId": "GetTeamLinks",
- "parameters": [
- {
- "description": "None",
- "in": "path",
- "name": "team_id",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Team links response",
- "properties": {
- "data": {
- "description": "Team links response data",
+ },
+ "included": {
+ "description": "Resources related to the team memberships",
"items": {
- "description": "Team link",
- "properties": {
- "attributes": {
- "description": "Team link attributes",
+ "description": "Included resources related to the team membership",
+ "oneOf": [
+ {
+ "description": "User object returned by the API.",
"properties": {
- "label": {
- "description": "The link's label",
- "example": "Link label",
- "maxLength": 256,
+ "attributes": {
+ "description": "Attributes of user object returned by the API.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the user.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "disabled": {
+ "description": "Whether the user is disabled.",
+ "type": "boolean"
+ },
+ "email": {
+ "description": "Email of the user.",
+ "type": "string"
+ },
+ "handle": {
+ "description": "Handle of the user.",
+ "type": "string"
+ },
+ "icon": {
+ "description": "URL of the user's icon.",
+ "type": "string"
+ },
+ "mfa_enabled": {
+ "description": "If user has MFA enabled.",
+ "readOnly": true,
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time that the user was last modified.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "service_account": {
+ "description": "Whether the user is a service account.",
+ "type": "boolean"
+ },
+ "status": {
+ "description": "Status of the user.",
+ "type": "string"
+ },
+ "title": {
+ "description": "Title of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "verified": {
+ "description": "Whether the user is verified.",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the user.",
"type": "string"
},
- "position": {
- "description": "The link's position, used to sort links for the team",
- "format": "int32",
- "maximum": 2147483647,
- "type": "integer"
+ "relationships": {
+ "description": "Relationships of the user object returned by the API.",
+ "properties": {
+ "org": {
+ "description": "Relationship to an organization.",
+ "properties": {
+ "data": {
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_orgs": {
+ "description": "Relationship to organizations.",
+ "properties": {
+ "data": {
+ "description": "Relationships to organization objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_users": {
+ "description": "Relationship to users.",
+ "properties": {
+ "data": {
+ "description": "Relationships to user objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "roles": {
+ "description": "Relationship to roles.",
+ "properties": {
+ "data": {
+ "description": "An array containing type and the unique identifier of a role.",
+ "items": {
+ "description": "Relationship to role object.",
+ "properties": {
+ "id": {
+ "description": "The unique identifier of the role.",
+ "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "type": "string"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "properties": false
+ }
},
- "team_id": {
- "description": "ID of the team the link is associated with",
- "readOnly": true,
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ {
+ "description": "A team",
+ "properties": {
+ "attributes": {
+ "description": "Team attributes",
+ "properties": {
+ "avatar": {
+ "description": "Unicode representation of the avatar for the team, limited to a single grapheme",
+ "example": "🥑",
+ "nullable": true,
+ "type": "string"
+ },
+ "banner": {
+ "description": "Banner selection for the team",
+ "format": "int64",
+ "nullable": true,
+ "type": "integer"
+ },
+ "created_at": {
+ "description": "Creation date of the team",
+ "format": "date-time",
+ "type": "string"
+ },
+ "description": {
+ "description": "Free-form markdown description/content for the team's homepage",
+ "nullable": true,
+ "type": "string"
+ },
+ "handle": {
+ "description": "The team's identifier",
+ "example": "example-team",
+ "maxLength": 195,
+ "type": "string"
+ },
+ "hidden_modules": {
+ "description": "Collection of hidden modules for the team",
+ "items": {
+ "description": "String identifier of the module",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "link_count": {
+ "description": "The number of links belonging to the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "readOnly": true,
+ "type": "integer"
+ },
+ "modified_at": {
+ "description": "Modification date of the team",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the team",
+ "example": "Example Team",
+ "maxLength": 200,
+ "type": "string"
+ },
+ "summary": {
+ "description": "A brief summary of the team, derived from the `description`",
+ "maxLength": 120,
+ "nullable": true,
+ "type": "string"
+ },
+ "user_count": {
+ "description": "The number of users belonging to the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "readOnly": true,
+ "type": "integer"
+ },
+ "visible_modules": {
+ "description": "Collection of visible modules for the team",
+ "items": {
+ "description": "String identifier of the module",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "handle",
+ "name"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "description": "The team's identifier",
+ "example": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
"type": "string"
},
- "url": {
- "description": "The URL for the link",
- "example": "https://example.com",
- "type": "string"
+ "relationships": {
+ "description": "Resources related to a team",
+ "properties": {
+ "team_links": {
+ "description": "Relationship between a team and a team link",
+ "properties": {
+ "data": {
+ "description": "Related team links",
+ "items": {
+ "description": "Relationship between a link and a team",
+ "properties": {
+ "id": {
+ "description": "The team link's identifier",
+ "example": "f9bb8444-af7f-11ec-ac2c-da7ad0900001",
+ "type": "string"
+ },
+ "type": {
+ "default": "team_links",
+ "description": "Team link type",
+ "enum": [
+ "team_links"
+ ],
+ "example": "team_links",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM_LINKS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ },
+ "links": {
+ "description": "Links attributes.",
+ "properties": {
+ "related": {
+ "description": "Related link.",
+ "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "user_team_permissions": {
+ "description": "Relationship between a user team permission and a team",
+ "properties": {
+ "data": {
+ "description": "Related user team permission data",
+ "properties": {
+ "id": {
+ "description": "The ID of the user team permission",
+ "example": "UserTeamPermissions-aeadc05e-98a8-11ec-ac2c-da7ad0900001-416595",
+ "type": "string"
+ },
+ "type": {
+ "default": "user_team_permissions",
+ "description": "User team permission type",
+ "enum": [
+ "user_team_permissions"
+ ],
+ "example": "user_team_permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "USER_TEAM_PERMISSIONS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "links": {
+ "description": "Links attributes.",
+ "properties": {
+ "related": {
+ "description": "Related link.",
+ "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "default": "team",
+ "description": "Team type",
+ "enum": [
+ "team"
+ ],
+ "example": "team",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM"
+ ]
}
},
"required": [
- "label",
- "url"
- ],
- "type": "object"
- },
- "id": {
- "description": "The team link's identifier",
- "example": "b8626d7e-cedd-11eb-abf5-da7ad0900001",
- "type": "string"
- },
- "type": {
- "default": "team_links",
- "description": "Team link type",
- "enum": [
- "team_links"
+ "attributes",
+ "id",
+ "type"
],
- "example": "team_links",
- "type": "string",
- "x-enum-varnames": [
- "TEAM_LINKS"
- ]
- }
- },
- "required": [
- "attributes",
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
- },
- "type": "object"
- }
- }
- },
- "description": "OK"
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Forbidden"
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "API error response."
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Too many requests"
- }
- },
- "security": [
- {
- "apiKeyAuth": [],
- "appKeyAuth": []
- },
- {
- "AuthZ": [
- "teams_read"
- ]
- }
- ],
- "summary": "Get links for a team",
- "tags": [
- "Teams"
- ],
- "x-menu-order": 10,
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "teams_read"
- ]
- },
- "x-undo": {
- "type": "safe"
- }
- },
- "post": {
- "description": "Add a new link to a team.",
- "operationId": "CreateTeamLink",
- "parameters": [
- {
- "description": "None",
- "in": "path",
- "name": "team_id",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Team link create request",
- "properties": {
- "data": {
- "description": "Team link create",
- "properties": {
- "attributes": {
- "description": "Team link attributes",
- "properties": {
- "label": {
- "description": "The link's label",
- "example": "Link label",
- "maxLength": 256,
- "type": "string"
- },
- "position": {
- "description": "The link's position, used to sort links for the team",
- "format": "int32",
- "maximum": 2147483647,
- "type": "integer"
- },
- "team_id": {
- "description": "ID of the team the link is associated with",
- "readOnly": true,
- "type": "string"
- },
- "url": {
- "description": "The URL for the link",
- "example": "https://example.com",
- "type": "string"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
- },
- "required": [
- "label",
- "url"
- ],
- "type": "object"
- },
- "type": {
- "default": "team_links",
- "description": "Team link type",
- "enum": [
- "team_links"
- ],
- "example": "team_links",
- "type": "string",
- "x-enum-varnames": [
- "TEAM_LINKS"
]
- }
- },
- "required": [
- "attributes",
- "type"
- ],
- "type": "object"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- }
- }
- },
- "required": true
- },
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Team link response",
- "properties": {
- "data": {
- "description": "Team link",
- "properties": {
- "attributes": {
- "description": "Team link attributes",
- "properties": {
- "label": {
- "description": "The link's label",
- "example": "Link label",
- "maxLength": 256,
- "type": "string"
- },
- "position": {
- "description": "The link's position, used to sort links for the team",
- "format": "int32",
- "maximum": 2147483647,
- "type": "integer"
- },
- "team_id": {
- "description": "ID of the team the link is associated with",
- "readOnly": true,
- "type": "string"
- },
- "url": {
- "description": "The URL for the link",
- "example": "https://example.com",
- "type": "string"
- }
- },
- "required": [
- "label",
- "url"
- ],
- "type": "object"
- },
- "id": {
- "description": "The team link's identifier",
- "example": "b8626d7e-cedd-11eb-abf5-da7ad0900001",
- "type": "string"
- },
- "type": {
- "default": "team_links",
- "description": "Team link type",
- "enum": [
- "team_links"
- ],
- "example": "team_links",
- "type": "string",
- "x-enum-varnames": [
- "TEAM_LINKS"
- ]
- }
- },
- "required": [
- "attributes",
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
- }
- }
- },
- "description": "OK"
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Forbidden"
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "API error response."
- },
- "422": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "API error response."
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
},
"type": "array"
}
},
- "required": [
- "errors"
- ],
"type": "object"
}
}
},
- "description": "Too many requests"
- }
- },
- "security": [
- {
- "apiKeyAuth": [],
- "appKeyAuth": []
- },
- {
- "AuthZ": [
- "teams_read"
- ]
- }
- ],
- "summary": "Create a team link",
- "tags": [
- "Teams"
- ],
- "x-codegen-request-body-name": "body",
- "x-given": {
- "team_link": {
- "parameters": [
- {
- "name": "team_id",
- "source": "dd_team.data.id"
- },
- {
- "name": "body",
- "value": "{\n \"data\": {\n \"attributes\": {\n \"label\": \"{{unique}}\",\n \"url\": \"https://example.com\",\n \"position\": 0\n },\n \"type\": \"team_links\"\n }\n}"
- }
- ],
- "step": "there is a valid \"team_link\" in the system"
- }
- },
- "x-menu-order": 11,
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "teams_read"
- ]
- },
- "x-undo": {
- "operationId": "DeleteTeamLink",
- "parameters": [
- {
- "name": "team_id",
- "source": "data.attributes.team_id"
- },
- {
- "name": "link_id",
- "source": "data.id"
- }
- ],
- "type": "unsafe"
- }
- }
- },
- "/api/v2/team/{team_id}/links/{link_id}": {
- "delete": {
- "description": "Remove a link from a team.",
- "operationId": "DeleteTeamLink",
- "parameters": [
- {
- "description": "None",
- "in": "path",
- "name": "team_id",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "description": "None",
- "in": "path",
- "name": "link_id",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "204": {
- "description": "No Content"
+ "description": "Represents a user's association to a team"
},
"403": {
"content": {
@@ -395326,11 +419138,12 @@
]
}
],
- "summary": "Remove a team link",
+ "summary": "Update a user's membership attributes on a team",
"tags": [
"Teams"
],
- "x-menu-order": 14,
+ "x-codegen-request-body-name": "body",
+ "x-menu-order": 9,
"x-permission": {
"operator": "OR",
"permissions": [
@@ -395341,9 +419154,14 @@
"type": "idempotent"
}
},
+ "x-merge-override": {
+ "delete": true
+ }
+ },
+ "/api/v2/team/{team_id}/permission-settings": {
"get": {
- "description": "Get a single link for a team.",
- "operationId": "GetTeamLink",
+ "description": "Get all permission settings for a given team.",
+ "operationId": "GetTeamPermissionSettings",
"parameters": [
{
"description": "None",
@@ -395353,15 +419171,6 @@
"schema": {
"type": "string"
}
- },
- {
- "description": "None",
- "in": "path",
- "name": "link_id",
- "required": true,
- "schema": {
- "type": "string"
- }
}
],
"responses": {
@@ -395369,70 +419178,111 @@
"content": {
"application/json": {
"schema": {
- "description": "Team link response",
+ "description": "Team permission settings response",
"properties": {
"data": {
- "description": "Team link",
- "properties": {
- "attributes": {
- "description": "Team link attributes",
- "properties": {
- "label": {
- "description": "The link's label",
- "example": "Link label",
- "maxLength": 256,
- "type": "string"
- },
- "position": {
- "description": "The link's position, used to sort links for the team",
- "format": "int32",
- "maximum": 2147483647,
- "type": "integer"
- },
- "team_id": {
- "description": "ID of the team the link is associated with",
- "readOnly": true,
- "type": "string"
+ "description": "Team permission settings response data",
+ "items": {
+ "description": "Team permission setting",
+ "properties": {
+ "attributes": {
+ "description": "Team permission setting attributes",
+ "properties": {
+ "action": {
+ "description": "The identifier for the action",
+ "enum": [
+ "manage_membership",
+ "edit"
+ ],
+ "readOnly": true,
+ "type": "string",
+ "x-enum-varnames": [
+ "MANAGE_MEMBERSHIP",
+ "EDIT"
+ ]
+ },
+ "editable": {
+ "description": "Whether or not the permission setting is editable by the current user",
+ "readOnly": true,
+ "type": "boolean"
+ },
+ "options": {
+ "description": "Possible values for action",
+ "items": {
+ "description": "What type of user is allowed to perform the specified action",
+ "enum": [
+ "admins",
+ "members",
+ "organization",
+ "user_access_manage",
+ "teams_manage"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "ADMINS",
+ "MEMBERS",
+ "ORGANIZATION",
+ "USER_ACCESS_MANAGE",
+ "TEAMS_MANAGE"
+ ]
+ },
+ "readOnly": true,
+ "type": "array"
+ },
+ "title": {
+ "description": "The team permission name",
+ "readOnly": true,
+ "type": "string"
+ },
+ "value": {
+ "description": "What type of user is allowed to perform the specified action",
+ "enum": [
+ "admins",
+ "members",
+ "organization",
+ "user_access_manage",
+ "teams_manage"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "ADMINS",
+ "MEMBERS",
+ "ORGANIZATION",
+ "USER_ACCESS_MANAGE",
+ "TEAMS_MANAGE"
+ ]
+ }
},
- "url": {
- "description": "The URL for the link",
- "example": "https://example.com",
- "type": "string"
- }
+ "type": "object"
},
- "required": [
- "label",
- "url"
- ],
- "type": "object"
- },
- "id": {
- "description": "The team link's identifier",
- "example": "b8626d7e-cedd-11eb-abf5-da7ad0900001",
- "type": "string"
+ "id": {
+ "description": "The team permission setting's identifier",
+ "example": "TeamPermission-aeadc05e-98a8-11ec-ac2c-da7ad0900001-edit",
+ "type": "string"
+ },
+ "type": {
+ "default": "team_permission_settings",
+ "description": "Team permission setting type",
+ "enum": [
+ "team_permission_settings"
+ ],
+ "example": "team_permission_settings",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM_PERMISSION_SETTINGS"
+ ]
+ }
},
- "type": {
- "default": "team_links",
- "description": "Team link type",
- "enum": [
- "team_links"
- ],
- "example": "team_links",
- "type": "string",
- "x-enum-varnames": [
- "TEAM_LINKS"
- ]
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
}
},
- "required": [
- "attributes",
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "array"
}
},
"type": "object"
@@ -395537,11 +419387,11 @@
]
}
],
- "summary": "Get a team link",
+ "summary": "Get permission settings for a team",
"tags": [
"Teams"
],
- "x-menu-order": 12,
+ "x-menu-order": 17,
"x-permission": {
"operator": "OR",
"permissions": [
@@ -395551,10 +419401,12 @@
"x-undo": {
"type": "safe"
}
- },
- "patch": {
- "description": "Update a team link.",
- "operationId": "UpdateTeamLink",
+ }
+ },
+ "/api/v2/team/{team_id}/permission-settings/{action}": {
+ "put": {
+ "description": "Update a team permission setting for a given team.",
+ "operationId": "UpdateTeamPermissionSetting",
"parameters": [
{
"description": "None",
@@ -395568,7 +419420,7 @@
{
"description": "None",
"in": "path",
- "name": "link_id",
+ "name": "action",
"required": true,
"schema": {
"type": "string"
@@ -395579,58 +419431,49 @@
"content": {
"application/json": {
"schema": {
- "description": "Team link create request",
+ "description": "Team permission setting update request",
"properties": {
"data": {
- "description": "Team link create",
+ "description": "Team permission setting update",
"properties": {
"attributes": {
- "description": "Team link attributes",
+ "description": "Team permission setting update attributes",
"properties": {
- "label": {
- "description": "The link's label",
- "example": "Link label",
- "maxLength": 256,
- "type": "string"
- },
- "position": {
- "description": "The link's position, used to sort links for the team",
- "format": "int32",
- "maximum": 2147483647,
- "type": "integer"
- },
- "team_id": {
- "description": "ID of the team the link is associated with",
- "readOnly": true,
- "type": "string"
- },
- "url": {
- "description": "The URL for the link",
- "example": "https://example.com",
- "type": "string"
+ "value": {
+ "description": "What type of user is allowed to perform the specified action",
+ "enum": [
+ "admins",
+ "members",
+ "organization",
+ "user_access_manage",
+ "teams_manage"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "ADMINS",
+ "MEMBERS",
+ "ORGANIZATION",
+ "USER_ACCESS_MANAGE",
+ "TEAMS_MANAGE"
+ ]
}
},
- "required": [
- "label",
- "url"
- ],
"type": "object"
},
"type": {
- "default": "team_links",
- "description": "Team link type",
+ "default": "team_permission_settings",
+ "description": "Team permission setting type",
"enum": [
- "team_links"
+ "team_permission_settings"
],
- "example": "team_links",
+ "example": "team_permission_settings",
"type": "string",
"x-enum-varnames": [
- "TEAM_LINKS"
+ "TEAM_PERMISSION_SETTINGS"
]
}
},
"required": [
- "attributes",
"type"
],
"type": "object"
@@ -395650,63 +419493,100 @@
"content": {
"application/json": {
"schema": {
- "description": "Team link response",
+ "description": "Team permission setting response",
"properties": {
"data": {
- "description": "Team link",
+ "description": "Team permission setting",
"properties": {
"attributes": {
- "description": "Team link attributes",
+ "description": "Team permission setting attributes",
"properties": {
- "label": {
- "description": "The link's label",
- "example": "Link label",
- "maxLength": 256,
- "type": "string"
+ "action": {
+ "description": "The identifier for the action",
+ "enum": [
+ "manage_membership",
+ "edit"
+ ],
+ "readOnly": true,
+ "type": "string",
+ "x-enum-varnames": [
+ "MANAGE_MEMBERSHIP",
+ "EDIT"
+ ]
},
- "position": {
- "description": "The link's position, used to sort links for the team",
- "format": "int32",
- "maximum": 2147483647,
- "type": "integer"
+ "editable": {
+ "description": "Whether or not the permission setting is editable by the current user",
+ "readOnly": true,
+ "type": "boolean"
},
- "team_id": {
- "description": "ID of the team the link is associated with",
+ "options": {
+ "description": "Possible values for action",
+ "items": {
+ "description": "What type of user is allowed to perform the specified action",
+ "enum": [
+ "admins",
+ "members",
+ "organization",
+ "user_access_manage",
+ "teams_manage"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "ADMINS",
+ "MEMBERS",
+ "ORGANIZATION",
+ "USER_ACCESS_MANAGE",
+ "TEAMS_MANAGE"
+ ]
+ },
"readOnly": true,
- "type": "string"
+ "type": "array"
},
- "url": {
- "description": "The URL for the link",
- "example": "https://example.com",
+ "title": {
+ "description": "The team permission name",
+ "readOnly": true,
"type": "string"
+ },
+ "value": {
+ "description": "What type of user is allowed to perform the specified action",
+ "enum": [
+ "admins",
+ "members",
+ "organization",
+ "user_access_manage",
+ "teams_manage"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "ADMINS",
+ "MEMBERS",
+ "ORGANIZATION",
+ "USER_ACCESS_MANAGE",
+ "TEAMS_MANAGE"
+ ]
}
},
- "required": [
- "label",
- "url"
- ],
"type": "object"
},
"id": {
- "description": "The team link's identifier",
- "example": "b8626d7e-cedd-11eb-abf5-da7ad0900001",
+ "description": "The team permission setting's identifier",
+ "example": "TeamPermission-aeadc05e-98a8-11ec-ac2c-da7ad0900001-edit",
"type": "string"
},
"type": {
- "default": "team_links",
- "description": "Team link type",
+ "default": "team_permission_settings",
+ "description": "Team permission setting type",
"enum": [
- "team_links"
+ "team_permission_settings"
],
- "example": "team_links",
+ "example": "team_permission_settings",
"type": "string",
"x-enum-varnames": [
- "TEAM_LINKS"
+ "TEAM_PERMISSION_SETTINGS"
]
}
},
"required": [
- "attributes",
"id",
"type"
],
@@ -395818,12 +419698,12 @@
]
}
],
- "summary": "Update a team link",
+ "summary": "Update permission setting for team",
"tags": [
"Teams"
],
"x-codegen-request-body-name": "body",
- "x-menu-order": 13,
+ "x-menu-order": 18,
"x-permission": {
"operator": "OR",
"permissions": [
@@ -395835,18 +419715,28 @@
}
}
},
- "/api/v2/team/{team_id}/memberships": {
+ "/api/v2/teams": {
"get": {
- "description": "Get a paginated list of members for a team",
- "operationId": "GetTeamMemberships",
+ "deprecated": true,
+ "description": "Get all incident teams for the requesting user's organization. If the `include[users]` query parameter is provided, the included attribute will contain the users related to these incident teams.",
+ "operationId": "ListIncidentTeams",
"parameters": [
{
- "description": "None",
- "in": "path",
- "name": "team_id",
- "required": true,
+ "description": "Specifies which types of related objects should be included in the response.",
+ "in": "query",
+ "name": "include",
+ "required": false,
"schema": {
- "type": "string"
+ "description": "Object related to an incident.",
+ "enum": [
+ "users",
+ "attachments"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS",
+ "ATTACHMENTS"
+ ]
}
},
{
@@ -395862,9 +419752,9 @@
}
},
{
- "description": "Specific page number to return.",
+ "description": "Specific offset to use as the beginning of the returned page.",
"in": "query",
- "name": "page[number]",
+ "name": "page[offset]",
"required": false,
"schema": {
"default": 0,
@@ -395874,41 +419764,12 @@
}
},
{
- "description": "Specifies the order of returned team memberships",
- "in": "query",
- "name": "sort",
- "required": false,
- "schema": {
- "description": "Specifies the order of returned team memberships",
- "enum": [
- "manager_name",
- "-manager_name",
- "name",
- "-name",
- "handle",
- "-handle",
- "email",
- "-email"
- ],
- "type": "string",
- "x-enum-varnames": [
- "MANAGER_NAME",
- "_MANAGER_NAME",
- "NAME",
- "_NAME",
- "HANDLE",
- "_HANDLE",
- "EMAIL",
- "_EMAIL"
- ]
- }
- },
- {
- "description": "Search query, can be user email or name",
+ "description": "A search query that filters teams by name.",
"in": "query",
- "name": "filter[keyword]",
+ "name": "filter",
"required": false,
"schema": {
+ "example": "ExampleTeamName",
"type": "string"
}
}
@@ -395918,71 +419779,74 @@
"content": {
"application/json": {
"schema": {
- "description": "Team memberships response",
+ "description": "Response with a list of incident team payloads.",
"properties": {
"data": {
- "description": "Team memberships response data",
+ "description": "An array of incident teams.",
+ "example": [
+ {
+ "attributes": {
+ "name": "team name"
+ },
+ "id": "00000000-7ea3-0000-0000-000000000000",
+ "type": "teams"
+ }
+ ],
"items": {
- "description": "A user's relationship with a team",
+ "description": "Incident Team data from a response.",
"properties": {
"attributes": {
- "description": "Team membership attributes",
+ "description": "The incident team's attributes from a response.",
"properties": {
- "provisioned_by": {
- "description": "The mechanism responsible for provisioning the team relationship.\nPossible values: null for added by a user, \"service_account\" if added by a service account, and \"saml_mapping\" if provisioned via SAML mapping.",
- "nullable": true,
+ "created": {
+ "description": "Timestamp of when the incident team was created.",
+ "format": "date-time",
"readOnly": true,
"type": "string"
},
- "provisioned_by_id": {
- "description": "UUID of the User or Service Account who provisioned this team membership, or null if provisioned via SAML mapping.",
- "nullable": true,
+ "modified": {
+ "description": "Timestamp of when the incident team was modified.",
+ "format": "date-time",
"readOnly": true,
"type": "string"
},
- "role": {
- "description": "The user's role within the team",
- "enum": [
- "admin"
- ],
- "nullable": true,
- "type": "string",
- "x-enum-varnames": [
- "ADMIN"
- ]
+ "name": {
+ "description": "Name of the incident team.",
+ "example": "team name",
+ "type": "string"
}
},
"type": "object"
},
"id": {
- "description": "The ID of a user's relationship with a team",
- "example": "TeamMembership-aeadc05e-98a8-11ec-ac2c-da7ad0900001-38835",
+ "description": "The incident team's ID.",
+ "example": "00000000-7ea3-0000-000a-000000000000",
"type": "string"
},
"relationships": {
- "description": "Relationship between membership and a user",
+ "description": "The incident team's relationships.",
"properties": {
- "team": {
- "description": "Relationship between team membership and team",
+ "created_by": {
+ "description": "Relationship to user.",
"properties": {
"data": {
- "description": "The team associated with the membership",
+ "description": "Relationship to user object.",
"properties": {
"id": {
- "description": "The ID of the team associated with the membership",
- "example": "d7e15d9d-d346-43da-81d8-3d9e71d9a5e9",
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
"type": "string"
},
"type": {
- "default": "team",
- "description": "User team team type",
+ "default": "users",
+ "description": "Users resource type.",
"enum": [
- "team"
+ "users"
],
- "example": "team",
+ "example": "users",
"type": "string",
"x-enum-varnames": [
- "TEAM"
+ "USERS"
]
}
},
@@ -395990,7 +419854,10 @@
"id",
"type"
],
- "type": "object"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
"required": [
@@ -395998,20 +419865,20 @@
],
"type": "object"
},
- "user": {
- "description": "Relationship between team membership and user",
+ "last_modified_by": {
+ "description": "Relationship to user.",
"properties": {
"data": {
- "description": "A user's relationship with a team",
+ "description": "Relationship to user object.",
"properties": {
"id": {
- "description": "The ID of the user associated with the team",
- "example": "b8626d7e-cedd-11eb-abf5-da7ad0900001",
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
"type": "string"
},
"type": {
"default": "users",
- "description": "User team user type",
+ "description": "Users resource type.",
"enum": [
"users"
],
@@ -396038,36 +419905,30 @@
"type": "object"
}
},
+ "readOnly": true,
"type": "object"
},
"type": {
- "default": "team_memberships",
- "description": "Team membership type",
+ "default": "teams",
+ "description": "Incident Team resource type.",
"enum": [
- "team_memberships"
+ "teams"
],
- "example": "team_memberships",
+ "example": "teams",
"type": "string",
"x-enum-varnames": [
- "TEAM_MEMBERSHIPS"
+ "TEAMS"
]
}
},
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "object"
},
"type": "array"
},
"included": {
- "description": "Resources related to the team memberships",
+ "description": "Included related resources which the user requested.",
"items": {
- "description": "Included resources related to the team membership",
+ "description": "An object related to an incident team which is present in the included payload.",
"oneOf": [
{
"description": "User object returned by the API.",
@@ -396321,126 +420182,675 @@
"x-merge-override": {
"required": false
}
+ }
+ ]
+ },
+ "readOnly": true,
+ "type": "array"
+ },
+ "meta": {
+ "description": "The metadata object containing pagination metadata.",
+ "properties": {
+ "pagination": {
+ "description": "Pagination properties.",
+ "properties": {
+ "next_offset": {
+ "description": "The index of the first element in the next page of results. Equal to page size added to the current offset.",
+ "example": 1000,
+ "format": "int64",
+ "type": "integer"
+ },
+ "offset": {
+ "description": "The index of the first element in the results.",
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ },
+ "size": {
+ "description": "Maximum size of pages to return.",
+ "example": 1000,
+ "format": "int64",
+ "type": "integer"
+ }
},
- {
- "description": "A team",
+ "type": "object"
+ }
+ },
+ "readOnly": true,
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "OK"
+ },
+ "400": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Bad Request"
+ },
+ "401": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Unauthorized"
+ },
+ "403": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Forbidden"
+ },
+ "404": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Not Found"
+ },
+ "429": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Too many requests"
+ }
+ },
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
+ },
+ {
+ "AuthZ": [
+ "incident_read"
+ ]
+ }
+ ],
+ "summary": "Get a list of all incident teams",
+ "tags": [
+ "Incident Teams"
+ ],
+ "x-menu-order": 4,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "incident_read"
+ ]
+ },
+ "x-undo": {
+ "type": "safe"
+ },
+ "x-unstable": "**Note**: This endpoint is deprecated. See the [Teams API endpoints](https://docs.datadoghq.com/api/latest/teams/)."
+ },
+ "post": {
+ "deprecated": true,
+ "description": "Creates a new incident team.",
+ "operationId": "CreateIncidentTeam",
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Create request with an incident team payload.",
+ "properties": {
+ "data": {
+ "description": "Incident Team data for a create request.",
+ "properties": {
+ "attributes": {
+ "description": "The incident team's attributes for a create request.",
+ "properties": {
+ "name": {
+ "description": "Name of the incident team.",
+ "example": "team name",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "type": "object"
+ },
+ "relationships": {
+ "description": "The incident team's relationships.",
+ "properties": {
+ "created_by": {
+ "description": "Relationship to user.",
"properties": {
- "attributes": {
- "description": "Team attributes",
+ "data": {
+ "description": "Relationship to user object.",
"properties": {
- "avatar": {
- "description": "Unicode representation of the avatar for the team, limited to a single grapheme",
- "example": "🥑",
- "nullable": true,
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
"type": "string"
},
- "banner": {
- "description": "Banner selection for the team",
- "format": "int64",
- "nullable": true,
- "type": "integer"
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "last_modified_by": {
+ "description": "Relationship to user.",
+ "properties": {
+ "data": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
+ },
+ "readOnly": true,
+ "type": "object"
+ },
+ "type": {
+ "default": "teams",
+ "description": "Incident Team resource type.",
+ "enum": [
+ "teams"
+ ],
+ "example": "teams",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAMS"
+ ]
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Incident Team Payload.",
+ "required": true
+ },
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Response with an incident team payload.",
+ "properties": {
+ "data": {
+ "description": "Incident Team data from a response.",
+ "properties": {
+ "attributes": {
+ "description": "The incident team's attributes from a response.",
+ "properties": {
+ "created": {
+ "description": "Timestamp of when the incident team was created.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "modified": {
+ "description": "Timestamp of when the incident team was modified.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the incident team.",
+ "example": "team name",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The incident team's ID.",
+ "example": "00000000-7ea3-0000-000a-000000000000",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "The incident team's relationships.",
+ "properties": {
+ "created_by": {
+ "description": "Relationship to user.",
+ "properties": {
+ "data": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "last_modified_by": {
+ "description": "Relationship to user.",
+ "properties": {
+ "data": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
},
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
+ },
+ "readOnly": true,
+ "type": "object"
+ },
+ "type": {
+ "default": "teams",
+ "description": "Incident Team resource type.",
+ "enum": [
+ "teams"
+ ],
+ "example": "teams",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAMS"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "included": {
+ "description": "Included objects from relationships.",
+ "items": {
+ "description": "An object related to an incident team which is present in the included payload.",
+ "oneOf": [
+ {
+ "description": "User object returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of user object returned by the API.",
+ "properties": {
"created_at": {
- "description": "Creation date of the team",
+ "description": "Creation time of the user.",
"format": "date-time",
"type": "string"
},
- "description": {
- "description": "Free-form markdown description/content for the team's homepage",
- "nullable": true,
+ "disabled": {
+ "description": "Whether the user is disabled.",
+ "type": "boolean"
+ },
+ "email": {
+ "description": "Email of the user.",
"type": "string"
},
"handle": {
- "description": "The team's identifier",
- "example": "example-team",
- "maxLength": 195,
+ "description": "Handle of the user.",
"type": "string"
},
- "hidden_modules": {
- "description": "Collection of hidden modules for the team",
- "items": {
- "description": "String identifier of the module",
- "type": "string"
- },
- "type": "array"
+ "icon": {
+ "description": "URL of the user's icon.",
+ "type": "string"
},
- "link_count": {
- "description": "The number of links belonging to the team",
- "format": "int32",
- "maximum": 2147483647,
+ "mfa_enabled": {
+ "description": "If user has MFA enabled.",
"readOnly": true,
- "type": "integer"
+ "type": "boolean"
},
"modified_at": {
- "description": "Modification date of the team",
+ "description": "Time that the user was last modified.",
"format": "date-time",
"type": "string"
},
"name": {
- "description": "The name of the team",
- "example": "Example Team",
- "maxLength": 200,
+ "description": "Name of the user.",
+ "nullable": true,
"type": "string"
},
- "summary": {
- "description": "A brief summary of the team, derived from the `description`",
- "maxLength": 120,
- "nullable": true,
+ "service_account": {
+ "description": "Whether the user is a service account.",
+ "type": "boolean"
+ },
+ "status": {
+ "description": "Status of the user.",
"type": "string"
},
- "user_count": {
- "description": "The number of users belonging to the team",
- "format": "int32",
- "maximum": 2147483647,
- "readOnly": true,
- "type": "integer"
+ "title": {
+ "description": "Title of the user.",
+ "nullable": true,
+ "type": "string"
},
- "visible_modules": {
- "description": "Collection of visible modules for the team",
- "items": {
- "description": "String identifier of the module",
- "type": "string"
- },
- "type": "array"
+ "verified": {
+ "description": "Whether the user is verified.",
+ "type": "boolean"
}
},
- "required": [
- "handle",
- "name"
- ],
"type": "object"
},
"id": {
- "description": "The team's identifier",
- "example": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
+ "description": "ID of the user.",
"type": "string"
},
"relationships": {
- "description": "Resources related to a team",
+ "description": "Relationships of the user object returned by the API.",
"properties": {
- "team_links": {
- "description": "Relationship between a team and a team link",
+ "org": {
+ "description": "Relationship to an organization.",
"properties": {
"data": {
- "description": "Related team links",
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_orgs": {
+ "description": "Relationship to organizations.",
+ "properties": {
+ "data": {
+ "description": "Relationships to organization objects.",
+ "example": [],
"items": {
- "description": "Relationship between a link and a team",
+ "description": "Relationship to organization object.",
"properties": {
"id": {
- "description": "The team link's identifier",
- "example": "f9bb8444-af7f-11ec-ac2c-da7ad0900001",
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
"type": "string"
},
"type": {
- "default": "team_links",
- "description": "Team link type",
+ "default": "orgs",
+ "description": "Organizations resource type.",
"enum": [
- "team_links"
+ "orgs"
],
- "example": "team_links",
+ "example": "orgs",
"type": "string",
"x-enum-varnames": [
- "TEAM_LINKS"
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_users": {
+ "description": "Relationship to users.",
+ "properties": {
+ "data": {
+ "description": "Relationships to user objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
]
}
},
@@ -396454,67 +420864,45 @@
}
},
"type": "array"
- },
- "links": {
- "description": "Links attributes.",
- "properties": {
- "related": {
- "description": "Related link.",
- "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
- "type": "string"
- }
- },
- "type": "object"
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "required": [
+ "data"
+ ],
+ "type": "object"
},
- "user_team_permissions": {
- "description": "Relationship between a user team permission and a team",
+ "roles": {
+ "description": "Relationship to roles.",
"properties": {
"data": {
- "description": "Related user team permission data",
- "properties": {
- "id": {
- "description": "The ID of the user team permission",
- "example": "UserTeamPermissions-aeadc05e-98a8-11ec-ac2c-da7ad0900001-416595",
- "type": "string"
+ "description": "An array containing type and the unique identifier of a role.",
+ "items": {
+ "description": "Relationship to role object.",
+ "properties": {
+ "id": {
+ "description": "The unique identifier of the role.",
+ "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "type": "string"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
},
- "type": {
- "default": "user_team_permissions",
- "description": "User team permission type",
- "enum": [
- "user_team_permissions"
- ],
- "example": "user_team_permissions",
- "type": "string",
- "x-enum-varnames": [
- "USER_TEAM_PERMISSIONS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "links": {
- "description": "Links attributes.",
- "properties": {
- "related": {
- "description": "Related link.",
- "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
- "type": "string"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
}
},
- "type": "object"
+ "type": "array"
}
},
"type": "object",
@@ -396523,26 +420911,24 @@
}
}
},
- "type": "object"
+ "type": "object",
+ "x-merge-override": {
+ "properties": false
+ }
},
"type": {
- "default": "team",
- "description": "Team type",
+ "default": "users",
+ "description": "Users resource type.",
"enum": [
- "team"
+ "users"
],
- "example": "team",
+ "example": "users",
"type": "string",
"x-enum-varnames": [
- "TEAM"
+ "USERS"
]
}
},
- "required": [
- "attributes",
- "id",
- "type"
- ],
"type": "object",
"x-merge-override": {
"required": false
@@ -396550,93 +420936,282 @@
}
]
},
+ "readOnly": true,
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "CREATED"
+ },
+ "400": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Bad Request"
+ },
+ "401": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Unauthorized"
+ },
+ "403": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Forbidden"
+ },
+ "404": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Not Found"
+ },
+ "429": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Too many requests"
+ }
+ },
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
+ },
+ {
+ "AuthZ": [
+ "incident_settings_write"
+ ]
+ }
+ ],
+ "summary": "Create a new incident team",
+ "tags": [
+ "Incident Teams"
+ ],
+ "x-codegen-request-body-name": "body",
+ "x-given": {
+ "team": {
+ "parameters": [
+ {
+ "name": "body",
+ "value": "{\n \"data\": {\n \"attributes\": {\n \"name\": \"{{ unique }}\"\n },\n \"type\": \"teams\"\n }\n}"
+ }
+ ],
+ "step": "there is a valid \"team\" in the system"
+ }
+ },
+ "x-menu-order": 5,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "incident_settings_write"
+ ]
+ },
+ "x-undo": {
+ "operationId": "DeleteIncidentTeam",
+ "parameters": [
+ {
+ "name": "team_id",
+ "source": "data.id"
+ }
+ ],
+ "type": "unsafe"
+ },
+ "x-unstable": "**Note**: This endpoint is deprecated. See the [Teams API endpoints](https://docs.datadoghq.com/api/latest/teams/)."
+ }
+ },
+ "/api/v2/teams/{team_id}": {
+ "delete": {
+ "deprecated": true,
+ "description": "Deletes an existing incident team.",
+ "operationId": "DeleteIncidentTeam",
+ "parameters": [
+ {
+ "description": "The ID of the incident team.",
+ "in": "path",
+ "name": "team_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "OK"
+ },
+ "400": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
"type": "array"
- },
- "links": {
- "description": "Teams response links.",
- "properties": {
- "first": {
- "description": "First link.",
- "type": "string"
- },
- "last": {
- "description": "Last link.",
- "nullable": true,
- "type": "string"
- },
- "next": {
- "description": "Next link.",
- "type": "string"
- },
- "prev": {
- "description": "Previous link.",
- "nullable": true,
- "type": "string"
- },
- "self": {
- "description": "Current link.",
- "type": "string"
- }
- },
- "type": "object"
- },
- "meta": {
- "description": "Teams response metadata.",
- "properties": {
- "pagination": {
- "description": "Teams response metadata.",
- "properties": {
- "first_offset": {
- "description": "The first offset.",
- "format": "int64",
- "type": "integer"
- },
- "last_offset": {
- "description": "The last offset.",
- "format": "int64",
- "type": "integer"
- },
- "limit": {
- "description": "Pagination limit.",
- "format": "int64",
- "type": "integer"
- },
- "next_offset": {
- "description": "The next offset.",
- "format": "int64",
- "type": "integer"
- },
- "offset": {
- "description": "The offset.",
- "format": "int64",
- "type": "integer"
- },
- "prev_offset": {
- "description": "The previous offset.",
- "format": "int64",
- "type": "integer"
- },
- "total": {
- "description": "Total results.",
- "format": "int64",
- "type": "integer"
- },
- "type": {
- "description": "Offset type.",
- "type": "string"
- }
- },
- "type": "object"
- }
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Bad Request"
+ },
+ "401": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
},
- "type": "object"
+ "type": "array"
}
},
+ "required": [
+ "errors"
+ ],
"type": "object"
}
}
},
- "description": "Represents a user's association to a team"
+ "description": "Unauthorized"
},
"403": {
"content": {
@@ -396692,7 +421267,7 @@
}
}
},
- "description": "API error response."
+ "description": "Not Found"
},
"429": {
"content": {
@@ -396730,259 +421305,121 @@
},
{
"AuthZ": [
- "teams_read"
+ "incident_settings_write"
]
}
],
- "summary": "Get team memberships",
+ "summary": "Delete an existing incident team",
"tags": [
- "Teams"
+ "Incident Teams"
],
- "x-menu-order": 6,
- "x-pagination": {
- "limitParam": "page[size]",
- "pageParam": "page[number]",
- "resultsPath": "data"
- },
+ "x-menu-order": 2,
"x-permission": {
"operator": "OR",
"permissions": [
- "teams_read"
+ "incident_settings_write"
]
},
"x-undo": {
- "type": "safe"
- }
+ "type": "idempotent"
+ },
+ "x-unstable": "**Note**: This endpoint is deprecated. See the [Teams API endpoints](https://docs.datadoghq.com/api/latest/teams/)."
},
- "post": {
- "description": "Add a user to a team.",
- "operationId": "CreateTeamMembership",
+ "get": {
+ "deprecated": true,
+ "description": "Get details of an incident team. If the `include[users]` query parameter is provided,\nthe included attribute will contain the users related to these incident teams.",
+ "operationId": "GetIncidentTeam",
"parameters": [
{
- "description": "None",
+ "description": "The ID of the incident team.",
"in": "path",
"name": "team_id",
"required": true,
"schema": {
"type": "string"
}
+ },
+ {
+ "description": "Specifies which types of related objects should be included in the response.",
+ "in": "query",
+ "name": "include",
+ "required": false,
+ "schema": {
+ "description": "Object related to an incident.",
+ "enum": [
+ "users",
+ "attachments"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS",
+ "ATTACHMENTS"
+ ]
+ }
}
],
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Team membership request",
- "properties": {
- "data": {
- "description": "A user's relationship with a team",
- "properties": {
- "attributes": {
- "description": "Team membership attributes",
- "properties": {
- "provisioned_by": {
- "description": "The mechanism responsible for provisioning the team relationship.\nPossible values: null for added by a user, \"service_account\" if added by a service account, and \"saml_mapping\" if provisioned via SAML mapping.",
- "nullable": true,
- "readOnly": true,
- "type": "string"
- },
- "provisioned_by_id": {
- "description": "UUID of the User or Service Account who provisioned this team membership, or null if provisioned via SAML mapping.",
- "nullable": true,
- "readOnly": true,
- "type": "string"
- },
- "role": {
- "description": "The user's role within the team",
- "enum": [
- "admin"
- ],
- "nullable": true,
- "type": "string",
- "x-enum-varnames": [
- "ADMIN"
- ]
- }
- },
- "type": "object"
- },
- "relationships": {
- "description": "Relationship between membership and a user",
- "properties": {
- "team": {
- "description": "Relationship between team membership and team",
- "properties": {
- "data": {
- "description": "The team associated with the membership",
- "properties": {
- "id": {
- "description": "The ID of the team associated with the membership",
- "example": "d7e15d9d-d346-43da-81d8-3d9e71d9a5e9",
- "type": "string"
- },
- "type": {
- "default": "team",
- "description": "User team team type",
- "enum": [
- "team"
- ],
- "example": "team",
- "type": "string",
- "x-enum-varnames": [
- "TEAM"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "user": {
- "description": "Relationship between team membership and user",
- "properties": {
- "data": {
- "description": "A user's relationship with a team",
- "properties": {
- "id": {
- "description": "The ID of the user associated with the team",
- "example": "b8626d7e-cedd-11eb-abf5-da7ad0900001",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "User team user type",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- }
- },
- "type": "object"
- },
- "type": {
- "default": "team_memberships",
- "description": "Team membership type",
- "enum": [
- "team_memberships"
- ],
- "example": "team_memberships",
- "type": "string",
- "x-enum-varnames": [
- "TEAM_MEMBERSHIPS"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- }
- }
- },
- "required": true
- },
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
- "description": "Team membership response",
+ "description": "Response with an incident team payload.",
"properties": {
"data": {
- "description": "A user's relationship with a team",
+ "description": "Incident Team data from a response.",
"properties": {
"attributes": {
- "description": "Team membership attributes",
+ "description": "The incident team's attributes from a response.",
"properties": {
- "provisioned_by": {
- "description": "The mechanism responsible for provisioning the team relationship.\nPossible values: null for added by a user, \"service_account\" if added by a service account, and \"saml_mapping\" if provisioned via SAML mapping.",
- "nullable": true,
+ "created": {
+ "description": "Timestamp of when the incident team was created.",
+ "format": "date-time",
"readOnly": true,
"type": "string"
},
- "provisioned_by_id": {
- "description": "UUID of the User or Service Account who provisioned this team membership, or null if provisioned via SAML mapping.",
- "nullable": true,
+ "modified": {
+ "description": "Timestamp of when the incident team was modified.",
+ "format": "date-time",
"readOnly": true,
"type": "string"
},
- "role": {
- "description": "The user's role within the team",
- "enum": [
- "admin"
- ],
- "nullable": true,
- "type": "string",
- "x-enum-varnames": [
- "ADMIN"
- ]
+ "name": {
+ "description": "Name of the incident team.",
+ "example": "team name",
+ "type": "string"
}
},
"type": "object"
},
"id": {
- "description": "The ID of a user's relationship with a team",
- "example": "TeamMembership-aeadc05e-98a8-11ec-ac2c-da7ad0900001-38835",
+ "description": "The incident team's ID.",
+ "example": "00000000-7ea3-0000-000a-000000000000",
"type": "string"
},
"relationships": {
- "description": "Relationship between membership and a user",
+ "description": "The incident team's relationships.",
"properties": {
- "team": {
- "description": "Relationship between team membership and team",
+ "created_by": {
+ "description": "Relationship to user.",
"properties": {
"data": {
- "description": "The team associated with the membership",
+ "description": "Relationship to user object.",
"properties": {
"id": {
- "description": "The ID of the team associated with the membership",
- "example": "d7e15d9d-d346-43da-81d8-3d9e71d9a5e9",
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
"type": "string"
},
"type": {
- "default": "team",
- "description": "User team team type",
+ "default": "users",
+ "description": "Users resource type.",
"enum": [
- "team"
+ "users"
],
- "example": "team",
+ "example": "users",
"type": "string",
"x-enum-varnames": [
- "TEAM"
+ "USERS"
]
}
},
@@ -396990,7 +421427,10 @@
"id",
"type"
],
- "type": "object"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
"required": [
@@ -396998,20 +421438,20 @@
],
"type": "object"
},
- "user": {
- "description": "Relationship between team membership and user",
+ "last_modified_by": {
+ "description": "Relationship to user.",
"properties": {
"data": {
- "description": "A user's relationship with a team",
+ "description": "Relationship to user object.",
"properties": {
"id": {
- "description": "The ID of the user associated with the team",
- "example": "b8626d7e-cedd-11eb-abf5-da7ad0900001",
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
"type": "string"
},
"type": {
"default": "users",
- "description": "User team user type",
+ "description": "Users resource type.",
"enum": [
"users"
],
@@ -397038,34 +421478,28 @@
"type": "object"
}
},
+ "readOnly": true,
"type": "object"
},
"type": {
- "default": "team_memberships",
- "description": "Team membership type",
+ "default": "teams",
+ "description": "Incident Team resource type.",
"enum": [
- "team_memberships"
+ "teams"
],
- "example": "team_memberships",
+ "example": "teams",
"type": "string",
"x-enum-varnames": [
- "TEAM_MEMBERSHIPS"
+ "TEAMS"
]
}
},
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "object"
},
"included": {
- "description": "Resources related to the team memberships",
+ "description": "Included objects from relationships.",
"items": {
- "description": "Included resources related to the team membership",
+ "description": "An object related to an incident team which is present in the included payload.",
"oneOf": [
{
"description": "User object returned by the API.",
@@ -397319,301 +421753,23 @@
"x-merge-override": {
"required": false
}
- },
- {
- "description": "A team",
- "properties": {
- "attributes": {
- "description": "Team attributes",
- "properties": {
- "avatar": {
- "description": "Unicode representation of the avatar for the team, limited to a single grapheme",
- "example": "🥑",
- "nullable": true,
- "type": "string"
- },
- "banner": {
- "description": "Banner selection for the team",
- "format": "int64",
- "nullable": true,
- "type": "integer"
- },
- "created_at": {
- "description": "Creation date of the team",
- "format": "date-time",
- "type": "string"
- },
- "description": {
- "description": "Free-form markdown description/content for the team's homepage",
- "nullable": true,
- "type": "string"
- },
- "handle": {
- "description": "The team's identifier",
- "example": "example-team",
- "maxLength": 195,
- "type": "string"
- },
- "hidden_modules": {
- "description": "Collection of hidden modules for the team",
- "items": {
- "description": "String identifier of the module",
- "type": "string"
- },
- "type": "array"
- },
- "link_count": {
- "description": "The number of links belonging to the team",
- "format": "int32",
- "maximum": 2147483647,
- "readOnly": true,
- "type": "integer"
- },
- "modified_at": {
- "description": "Modification date of the team",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "The name of the team",
- "example": "Example Team",
- "maxLength": 200,
- "type": "string"
- },
- "summary": {
- "description": "A brief summary of the team, derived from the `description`",
- "maxLength": 120,
- "nullable": true,
- "type": "string"
- },
- "user_count": {
- "description": "The number of users belonging to the team",
- "format": "int32",
- "maximum": 2147483647,
- "readOnly": true,
- "type": "integer"
- },
- "visible_modules": {
- "description": "Collection of visible modules for the team",
- "items": {
- "description": "String identifier of the module",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "handle",
- "name"
- ],
- "type": "object"
- },
- "id": {
- "description": "The team's identifier",
- "example": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
- "type": "string"
- },
- "relationships": {
- "description": "Resources related to a team",
- "properties": {
- "team_links": {
- "description": "Relationship between a team and a team link",
- "properties": {
- "data": {
- "description": "Related team links",
- "items": {
- "description": "Relationship between a link and a team",
- "properties": {
- "id": {
- "description": "The team link's identifier",
- "example": "f9bb8444-af7f-11ec-ac2c-da7ad0900001",
- "type": "string"
- },
- "type": {
- "default": "team_links",
- "description": "Team link type",
- "enum": [
- "team_links"
- ],
- "example": "team_links",
- "type": "string",
- "x-enum-varnames": [
- "TEAM_LINKS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- },
- "links": {
- "description": "Links attributes.",
- "properties": {
- "related": {
- "description": "Related link.",
- "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "user_team_permissions": {
- "description": "Relationship between a user team permission and a team",
- "properties": {
- "data": {
- "description": "Related user team permission data",
- "properties": {
- "id": {
- "description": "The ID of the user team permission",
- "example": "UserTeamPermissions-aeadc05e-98a8-11ec-ac2c-da7ad0900001-416595",
- "type": "string"
- },
- "type": {
- "default": "user_team_permissions",
- "description": "User team permission type",
- "enum": [
- "user_team_permissions"
- ],
- "example": "user_team_permissions",
- "type": "string",
- "x-enum-varnames": [
- "USER_TEAM_PERMISSIONS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "links": {
- "description": "Links attributes.",
- "properties": {
- "related": {
- "description": "Related link.",
- "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
- },
- "type": {
- "default": "team",
- "description": "Team type",
- "enum": [
- "team"
- ],
- "example": "team",
- "type": "string",
- "x-enum-varnames": [
- "TEAM"
- ]
- }
- },
- "required": [
- "attributes",
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
}
]
},
- "type": "array"
- }
- },
- "type": "object"
- }
- }
- },
- "description": "Represents a user's association to a team"
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Forbidden"
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
+ "readOnly": true,
"type": "array"
}
},
"required": [
- "errors"
+ "data"
],
"type": "object"
}
}
},
- "description": "API error response."
+ "description": "OK"
},
- "409": {
+ "400": {
"content": {
"application/json": {
"schema": {
@@ -397639,9 +421795,9 @@
}
}
},
- "description": "API error response."
+ "description": "Bad Request"
},
- "429": {
+ "401": {
"content": {
"application/json": {
"schema": {
@@ -397667,86 +421823,7 @@
}
}
},
- "description": "Too many requests"
- }
- },
- "security": [
- {
- "apiKeyAuth": [],
- "appKeyAuth": []
- },
- {
- "AuthZ": [
- "teams_read"
- ]
- }
- ],
- "summary": "Add a user to a team",
- "tags": [
- "Teams"
- ],
- "x-codegen-request-body-name": "body",
- "x-given": {
- "team_membership": {
- "parameters": [
- {
- "name": "body",
- "value": "{\n \"data\": {\n \"attributes\": {\n \"role\": \"admin\"\n },\n \"relationships\": {\n \"user\": {\n \"data\": {\n \"id\": \"{{user.data.id}}\",\n \"type\": \"users\"\n }\n }\n },\n \"type\": \"team_memberships\"\n }\n}"
- }
- ],
- "step": "there is a valid \"team_membership\" in the system"
- }
- },
- "x-menu-order": 7,
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "teams_read"
- ]
- },
- "x-undo": {
- "operationId": "DeleteTeamMembership",
- "parameters": [
- {
- "name": "team_id",
- "template": "{{team.data.id}}"
- },
- {
- "name": "user_id",
- "source": "data.relationships.user.data.id"
- }
- ],
- "type": "unsafe"
- }
- }
- },
- "/api/v2/team/{team_id}/memberships/{user_id}": {
- "delete": {
- "description": "Remove a user from a team.",
- "operationId": "DeleteTeamMembership",
- "parameters": [
- {
- "description": "None",
- "in": "path",
- "name": "team_id",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "description": "None",
- "in": "path",
- "name": "user_id",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "204": {
- "description": "No Content"
+ "description": "Unauthorized"
},
"403": {
"content": {
@@ -397802,7 +421879,7 @@
}
}
},
- "description": "API error response."
+ "description": "Not Found"
},
"429": {
"content": {
@@ -397840,96 +421917,164 @@
},
{
"AuthZ": [
- "teams_read"
+ "incident_read"
]
}
],
- "summary": "Remove a user from a team",
+ "summary": "Get details of an incident team",
"tags": [
- "Teams"
+ "Incident Teams"
],
- "x-menu-order": 8,
+ "x-menu-order": 1,
"x-permission": {
"operator": "OR",
"permissions": [
- "teams_read"
+ "incident_read"
]
},
"x-undo": {
- "type": "idempotent"
- }
+ "type": "safe"
+ },
+ "x-unstable": "**Note**: This endpoint is deprecated. See the [Teams API endpoints](https://docs.datadoghq.com/api/latest/teams/)."
},
"patch": {
- "description": "Update a user's membership attributes on a team.",
- "operationId": "UpdateTeamMembership",
+ "deprecated": true,
+ "description": "Updates an existing incident team. Only provide the attributes which should be updated as this request is a partial update.",
+ "operationId": "UpdateIncidentTeam",
"parameters": [
{
- "description": "None",
+ "description": "The ID of the incident team.",
"in": "path",
"name": "team_id",
"required": true,
"schema": {
"type": "string"
}
- },
- {
- "description": "None",
- "in": "path",
- "name": "user_id",
- "required": true,
- "schema": {
- "type": "string"
- }
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
- "description": "Team membership request",
+ "description": "Update request with an incident team payload.",
"properties": {
"data": {
- "description": "A user's relationship with a team",
+ "description": "Incident Team data for an update request.",
"properties": {
"attributes": {
- "description": "Team membership attributes",
+ "description": "The incident team's attributes for an update request.",
"properties": {
- "provisioned_by": {
- "description": "The mechanism responsible for provisioning the team relationship.\nPossible values: null for added by a user, \"service_account\" if added by a service account, and \"saml_mapping\" if provisioned via SAML mapping.",
- "nullable": true,
- "readOnly": true,
- "type": "string"
- },
- "provisioned_by_id": {
- "description": "UUID of the User or Service Account who provisioned this team membership, or null if provisioned via SAML mapping.",
- "nullable": true,
- "readOnly": true,
+ "name": {
+ "description": "Name of the incident team.",
+ "example": "team name",
"type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "description": "The incident team's ID.",
+ "example": "00000000-7ea3-0000-0001-000000000000",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "The incident team's relationships.",
+ "properties": {
+ "created_by": {
+ "description": "Relationship to user.",
+ "properties": {
+ "data": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
},
- "role": {
- "description": "The user's role within the team",
- "enum": [
- "admin"
+ "last_modified_by": {
+ "description": "Relationship to user.",
+ "properties": {
+ "data": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "required": [
+ "data"
],
- "nullable": true,
- "type": "string",
- "x-enum-varnames": [
- "ADMIN"
- ]
+ "type": "object"
}
},
+ "readOnly": true,
"type": "object"
},
"type": {
- "default": "team_memberships",
- "description": "Team membership type",
+ "default": "teams",
+ "description": "Incident Team resource type.",
"enum": [
- "team_memberships"
+ "teams"
],
- "example": "team_memberships",
+ "example": "teams",
"type": "string",
"x-enum-varnames": [
- "TEAM_MEMBERSHIPS"
+ "TEAMS"
]
}
},
@@ -397946,6 +422091,7 @@
}
}
},
+ "description": "Incident Team Payload.",
"required": true
},
"responses": {
@@ -397953,69 +422099,63 @@
"content": {
"application/json": {
"schema": {
- "description": "Team membership response",
+ "description": "Response with an incident team payload.",
"properties": {
"data": {
- "description": "A user's relationship with a team",
+ "description": "Incident Team data from a response.",
"properties": {
"attributes": {
- "description": "Team membership attributes",
+ "description": "The incident team's attributes from a response.",
"properties": {
- "provisioned_by": {
- "description": "The mechanism responsible for provisioning the team relationship.\nPossible values: null for added by a user, \"service_account\" if added by a service account, and \"saml_mapping\" if provisioned via SAML mapping.",
- "nullable": true,
+ "created": {
+ "description": "Timestamp of when the incident team was created.",
+ "format": "date-time",
"readOnly": true,
"type": "string"
},
- "provisioned_by_id": {
- "description": "UUID of the User or Service Account who provisioned this team membership, or null if provisioned via SAML mapping.",
- "nullable": true,
+ "modified": {
+ "description": "Timestamp of when the incident team was modified.",
+ "format": "date-time",
"readOnly": true,
"type": "string"
},
- "role": {
- "description": "The user's role within the team",
- "enum": [
- "admin"
- ],
- "nullable": true,
- "type": "string",
- "x-enum-varnames": [
- "ADMIN"
- ]
+ "name": {
+ "description": "Name of the incident team.",
+ "example": "team name",
+ "type": "string"
}
},
"type": "object"
},
"id": {
- "description": "The ID of a user's relationship with a team",
- "example": "TeamMembership-aeadc05e-98a8-11ec-ac2c-da7ad0900001-38835",
+ "description": "The incident team's ID.",
+ "example": "00000000-7ea3-0000-000a-000000000000",
"type": "string"
},
"relationships": {
- "description": "Relationship between membership and a user",
+ "description": "The incident team's relationships.",
"properties": {
- "team": {
- "description": "Relationship between team membership and team",
+ "created_by": {
+ "description": "Relationship to user.",
"properties": {
"data": {
- "description": "The team associated with the membership",
+ "description": "Relationship to user object.",
"properties": {
"id": {
- "description": "The ID of the team associated with the membership",
- "example": "d7e15d9d-d346-43da-81d8-3d9e71d9a5e9",
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
"type": "string"
},
"type": {
- "default": "team",
- "description": "User team team type",
+ "default": "users",
+ "description": "Users resource type.",
"enum": [
- "team"
+ "users"
],
- "example": "team",
+ "example": "users",
"type": "string",
"x-enum-varnames": [
- "TEAM"
+ "USERS"
]
}
},
@@ -398023,7 +422163,10 @@
"id",
"type"
],
- "type": "object"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
"required": [
@@ -398031,20 +422174,20 @@
],
"type": "object"
},
- "user": {
- "description": "Relationship between team membership and user",
+ "last_modified_by": {
+ "description": "Relationship to user.",
"properties": {
"data": {
- "description": "A user's relationship with a team",
+ "description": "Relationship to user object.",
"properties": {
"id": {
- "description": "The ID of the user associated with the team",
- "example": "b8626d7e-cedd-11eb-abf5-da7ad0900001",
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
"type": "string"
},
"type": {
"default": "users",
- "description": "User team user type",
+ "description": "Users resource type.",
"enum": [
"users"
],
@@ -398071,34 +422214,28 @@
"type": "object"
}
},
+ "readOnly": true,
"type": "object"
},
"type": {
- "default": "team_memberships",
- "description": "Team membership type",
+ "default": "teams",
+ "description": "Incident Team resource type.",
"enum": [
- "team_memberships"
+ "teams"
],
- "example": "team_memberships",
+ "example": "teams",
"type": "string",
"x-enum-varnames": [
- "TEAM_MEMBERSHIPS"
+ "TEAMS"
]
}
},
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "object"
},
"included": {
- "description": "Resources related to the team memberships",
+ "description": "Included objects from relationships.",
"items": {
- "description": "Included resources related to the team membership",
+ "description": "An object related to an incident team which is present in the included payload.",
"oneOf": [
{
"description": "User object returned by the API.",
@@ -398352,234 +422489,779 @@
"x-merge-override": {
"required": false
}
- },
- {
- "description": "A team",
+ }
+ ]
+ },
+ "readOnly": true,
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "OK"
+ },
+ "400": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Bad Request"
+ },
+ "401": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Unauthorized"
+ },
+ "403": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Forbidden"
+ },
+ "404": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Not Found"
+ },
+ "429": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Too many requests"
+ }
+ },
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
+ },
+ {
+ "AuthZ": [
+ "incident_settings_write"
+ ]
+ }
+ ],
+ "summary": "Update an existing incident team",
+ "tags": [
+ "Incident Teams"
+ ],
+ "x-codegen-request-body-name": "body",
+ "x-menu-order": 3,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "incident_settings_write"
+ ]
+ },
+ "x-undo": {
+ "type": "idempotent"
+ },
+ "x-unstable": "**Note**: This endpoint is deprecated. See the [Teams API endpoints](https://docs.datadoghq.com/api/latest/teams/)."
+ }
+ },
+ "/api/v2/usage/application_security": {
+ "get": {
+ "deprecated": true,
+ "description": "Get hourly usage for application security .\n**Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family)",
+ "operationId": "GetUsageApplicationSecurityMonitoring",
+ "parameters": [
+ {
+ "description": "Datetime in ISO-8601 format, UTC, precise to hour: `[YYYY-MM-DDThh]` for usage beginning at this hour.",
+ "in": "query",
+ "name": "start_hr",
+ "required": true,
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ },
+ {
+ "description": "Datetime in ISO-8601 format, UTC, precise to hour: `[YYYY-MM-DDThh]` for usage ending\n**before** this hour.",
+ "in": "query",
+ "name": "end_hr",
+ "required": false,
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json;datetime-format=rfc3339": {
+ "schema": {
+ "description": "Application Security Monitoring usage response.",
+ "properties": {
+ "data": {
+ "description": "Response containing Application Security Monitoring usage.",
+ "items": {
+ "description": "Usage data.",
+ "properties": {
+ "attributes": {
+ "description": "Usage attributes data.",
"properties": {
- "attributes": {
- "description": "Team attributes",
- "properties": {
- "avatar": {
- "description": "Unicode representation of the avatar for the team, limited to a single grapheme",
- "example": "🥑",
- "nullable": true,
- "type": "string"
- },
- "banner": {
- "description": "Banner selection for the team",
- "format": "int64",
- "nullable": true,
- "type": "integer"
- },
- "created_at": {
- "description": "Creation date of the team",
- "format": "date-time",
- "type": "string"
- },
- "description": {
- "description": "Free-form markdown description/content for the team's homepage",
- "nullable": true,
- "type": "string"
- },
- "handle": {
- "description": "The team's identifier",
- "example": "example-team",
- "maxLength": 195,
- "type": "string"
- },
- "hidden_modules": {
- "description": "Collection of hidden modules for the team",
- "items": {
- "description": "String identifier of the module",
- "type": "string"
- },
- "type": "array"
- },
- "link_count": {
- "description": "The number of links belonging to the team",
- "format": "int32",
- "maximum": 2147483647,
- "readOnly": true,
- "type": "integer"
- },
- "modified_at": {
- "description": "Modification date of the team",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "The name of the team",
- "example": "Example Team",
- "maxLength": 200,
- "type": "string"
- },
- "summary": {
- "description": "A brief summary of the team, derived from the `description`",
- "maxLength": 120,
- "nullable": true,
- "type": "string"
- },
- "user_count": {
- "description": "The number of users belonging to the team",
- "format": "int32",
- "maximum": 2147483647,
- "readOnly": true,
- "type": "integer"
- },
- "visible_modules": {
- "description": "Collection of visible modules for the team",
- "items": {
- "description": "String identifier of the module",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "handle",
- "name"
- ],
- "type": "object"
+ "org_name": {
+ "description": "The organization name.",
+ "type": "string"
},
- "id": {
- "description": "The team's identifier",
- "example": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
+ "product_family": {
+ "description": "The product for which usage is being reported.",
"type": "string"
},
- "relationships": {
- "description": "Resources related to a team",
- "properties": {
- "team_links": {
- "description": "Relationship between a team and a team link",
- "properties": {
- "data": {
- "description": "Related team links",
- "items": {
- "description": "Relationship between a link and a team",
- "properties": {
- "id": {
- "description": "The team link's identifier",
- "example": "f9bb8444-af7f-11ec-ac2c-da7ad0900001",
- "type": "string"
- },
- "type": {
- "default": "team_links",
- "description": "Team link type",
- "enum": [
- "team_links"
- ],
- "example": "team_links",
- "type": "string",
- "x-enum-varnames": [
- "TEAM_LINKS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- },
- "links": {
- "description": "Links attributes.",
- "properties": {
- "related": {
- "description": "Related link.",
- "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
- "type": "string"
- }
- },
- "type": "object"
- }
+ "public_id": {
+ "description": "The organization public ID.",
+ "type": "string"
+ },
+ "region": {
+ "description": "The region of the Datadog instance that the organization belongs to.",
+ "type": "string"
+ },
+ "timeseries": {
+ "description": "List of usage data reported for each requested hour.",
+ "items": {
+ "description": "Usage timeseries data.",
+ "properties": {
+ "timestamp": {
+ "description": "Datetime in ISO-8601 format, UTC. The hour for the usage.",
+ "format": "date-time",
+ "type": "string"
},
- "type": "object",
- "x-merge-override": {
- "required": false
+ "value": {
+ "description": "Contains the number measured for the given usage_type during the hour.",
+ "format": "int64",
+ "nullable": true,
+ "type": "integer"
}
},
- "user_team_permissions": {
- "description": "Relationship between a user team permission and a team",
- "properties": {
- "data": {
- "description": "Related user team permission data",
- "properties": {
- "id": {
- "description": "The ID of the user team permission",
- "example": "UserTeamPermissions-aeadc05e-98a8-11ec-ac2c-da7ad0900001-416595",
- "type": "string"
- },
- "type": {
- "default": "user_team_permissions",
- "description": "User team permission type",
- "enum": [
- "user_team_permissions"
- ],
- "example": "user_team_permissions",
- "type": "string",
- "x-enum-varnames": [
- "USER_TEAM_PERMISSIONS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "links": {
- "description": "Links attributes.",
- "properties": {
- "related": {
- "description": "Related link.",
- "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
+ "type": "object"
},
- "type": "object"
+ "type": "array"
},
- "type": {
- "default": "team",
- "description": "Team type",
+ "usage_type": {
+ "description": "Usage type that is being measured.",
"enum": [
- "team"
+ "app_sec_host_count",
+ "observability_pipelines_bytes_processed",
+ "lambda_traced_invocations_count"
],
- "example": "team",
+ "example": "observability_pipelines_bytes_processed",
"type": "string",
"x-enum-varnames": [
- "TEAM"
+ "APP_SEC_HOST_COUNT",
+ "OBSERVABILITY_PIPELINES_BYTES_PROCESSSED",
+ "LAMBDA_TRACED_INVOCATIONS_COUNT"
]
}
},
- "required": [
- "attributes",
- "id",
- "type"
+ "type": "object"
+ },
+ "id": {
+ "description": "Unique ID of the response.",
+ "type": "string"
+ },
+ "type": {
+ "default": "usage_timeseries",
+ "description": "Type of usage data.",
+ "enum": [
+ "usage_timeseries"
+ ],
+ "example": "usage_timeseries",
+ "type": "string",
+ "x-enum-varnames": [
+ "USAGE_TIMESERIES"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "OK"
+ },
+ "400": {
+ "content": {
+ "application/json;datetime-format=rfc3339": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Bad Request"
+ },
+ "403": {
+ "content": {
+ "application/json;datetime-format=rfc3339": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Forbidden - User is not authorized"
+ },
+ "429": {
+ "content": {
+ "application/json;datetime-format=rfc3339": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Too many requests"
+ }
+ },
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
+ },
+ {
+ "AuthZ": [
+ "usage_read"
+ ]
+ }
+ ],
+ "summary": "Get hourly usage for application security",
+ "tags": [
+ "Usage Metering"
+ ],
+ "x-menu-order": 38,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "usage_read"
+ ]
+ },
+ "x-undo": {
+ "type": "safe"
+ }
+ }
+ },
+ "/api/v2/usage/billing_dimension_mapping": {
+ "get": {
+ "description": "Get a mapping of billing dimensions to the corresponding keys for the supported usage metering public API endpoints.\nMapping data is updated on a monthly cadence.\n\nThis endpoint is only accessible to [parent-level organizations](https://docs.datadoghq.com/account_management/multi_organization/).",
+ "operationId": "GetBillingDimensionMapping",
+ "parameters": [
+ {
+ "description": "Datetime in ISO-8601 format, UTC, and for mappings beginning this month. Defaults to the current month.",
+ "in": "query",
+ "name": "filter[month]",
+ "required": false,
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ },
+ {
+ "description": "String to specify whether to retrieve active billing dimension mappings for the contract or for all available mappings. Allowed views have the string `active` or `all`. Defaults to `active`.",
+ "in": "query",
+ "name": "filter[view]",
+ "required": false,
+ "schema": {
+ "default": "active",
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json;datetime-format=rfc3339": {
+ "schema": {
+ "description": "Billing dimensions mapping response.",
+ "properties": {
+ "data": {
+ "description": "Billing dimensions mapping data.",
+ "items": {
+ "description": "The mapping data for each billing dimension.",
+ "properties": {
+ "attributes": {
+ "description": "Mapping of billing dimensions to endpoint keys.",
+ "properties": {
+ "endpoints": {
+ "description": "List of supported endpoints with their keys mapped to the billing_dimension.",
+ "items": {
+ "description": "An endpoint's keys mapped to the billing_dimension.",
+ "properties": {
+ "id": {
+ "description": "The URL for the endpoint.",
+ "example": "api/v1/usage/billable-summary",
+ "type": "string"
+ },
+ "keys": {
+ "description": "The billing dimension.",
+ "example": [
+ "apm_host_top99p",
+ "apm_host_sum"
+ ],
+ "items": {
+ "example": "apm_host_top99p",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "status": {
+ "description": "Denotes whether mapping keys were available for this endpoint.",
+ "enum": [
+ "OK",
+ "NOT_FOUND"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "OK",
+ "NOT_FOUND"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "in_app_label": {
+ "description": "Label used for the billing dimension in the Plan & Usage charts.",
+ "example": "APM Hosts",
+ "type": "string"
+ },
+ "timestamp": {
+ "description": "Month in ISO-8601 format, UTC, and precise to the second: `[YYYY-MM-DDThh:mm:ss]`.",
+ "format": "date-time",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the billing dimension.",
+ "type": "string"
+ },
+ "type": {
+ "default": "billing_dimensions",
+ "description": "Type of active billing dimensions data.",
+ "enum": [
+ "billing_dimensions"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "BILLING_DIMENSIONS"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "OK"
+ },
+ "400": {
+ "content": {
+ "application/json;datetime-format=rfc3339": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Bad Request"
+ },
+ "403": {
+ "content": {
+ "application/json;datetime-format=rfc3339": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Forbidden - User is not authorized"
+ },
+ "429": {
+ "content": {
+ "application/json;datetime-format=rfc3339": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Too many requests"
+ }
+ },
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
+ },
+ {
+ "AuthZ": [
+ "usage_read"
+ ]
+ }
+ ],
+ "summary": "Get billing dimension mapping for usage endpoints",
+ "tags": [
+ "Usage Metering"
+ ],
+ "x-menu-order": 1,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "usage_read"
+ ]
+ },
+ "x-undo": {
+ "type": "safe"
+ }
+ }
+ },
+ "/api/v2/usage/cost_by_org": {
+ "get": {
+ "deprecated": true,
+ "description": "Get cost across multi-org account.\nCost by org data for a given month becomes available no later than the 16th of the following month.\n**Note:** This endpoint has been deprecated. Please use the new endpoint\n[`/historical_cost`](https://docs.datadoghq.com/api/latest/usage-metering/#get-historical-cost-across-your-account)\ninstead.\n\nThis endpoint is only accessible for [parent-level organizations](https://docs.datadoghq.com/account_management/multi_organization/).",
+ "operationId": "GetCostByOrg",
+ "parameters": [
+ {
+ "description": "Datetime in ISO-8601 format, UTC, precise to month: `[YYYY-MM]` for cost beginning this month.",
+ "in": "query",
+ "name": "start_month",
+ "required": true,
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ },
+ {
+ "description": "Datetime in ISO-8601 format, UTC, precise to month: `[YYYY-MM]` for cost ending this month.",
+ "in": "query",
+ "name": "end_month",
+ "required": false,
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json;datetime-format=rfc3339": {
+ "schema": {
+ "description": "Chargeback Summary response.",
+ "properties": {
+ "data": {
+ "description": "Response containing Chargeback Summary.",
+ "items": {
+ "description": "Cost data.",
+ "properties": {
+ "attributes": {
+ "description": "Cost attributes data.",
+ "properties": {
+ "account_name": {
+ "description": "The account name.",
+ "type": "string"
+ },
+ "account_public_id": {
+ "description": "The account public ID.",
+ "type": "string"
+ },
+ "charges": {
+ "description": "List of charges data reported for the requested month.",
+ "items": {
+ "description": "Charges breakdown.",
+ "properties": {
+ "charge_type": {
+ "description": "The type of charge for a particular product.",
+ "example": "on_demand",
+ "type": "string"
+ },
+ "cost": {
+ "description": "The cost for a particular product and charge type during a given month.",
+ "format": "double",
+ "type": "number"
+ },
+ "product_name": {
+ "description": "The product for which cost is being reported.",
+ "example": "infra_host",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "date": {
+ "description": "The month requested.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "org_name": {
+ "description": "The organization name.",
+ "type": "string"
+ },
+ "public_id": {
+ "description": "The organization public ID.",
+ "type": "string"
+ },
+ "region": {
+ "description": "The region of the Datadog instance that the organization belongs to.",
+ "type": "string"
+ },
+ "total_cost": {
+ "description": "The total cost of products for the month.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "Unique ID of the response.",
+ "type": "string"
+ },
+ "type": {
+ "default": "cost_by_org",
+ "description": "Type of cost data.",
+ "enum": [
+ "cost_by_org"
],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "example": "cost_by_org",
+ "type": "string",
+ "x-enum-varnames": [
+ "COST_BY_ORG"
+ ]
}
- ]
+ },
+ "type": "object"
},
"type": "array"
}
@@ -398588,11 +423270,11 @@
}
}
},
- "description": "Represents a user's association to a team"
+ "description": "OK"
},
- "403": {
+ "400": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
"description": "API error response.",
"properties": {
@@ -398616,11 +423298,11 @@
}
}
},
- "description": "Forbidden"
+ "description": "Bad Request"
},
- "404": {
+ "403": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
"description": "API error response.",
"properties": {
@@ -398644,11 +423326,11 @@
}
}
},
- "description": "API error response."
+ "description": "Forbidden - User is not authorized"
},
"429": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
"description": "API error response.",
"properties": {
@@ -398682,153 +423364,182 @@
},
{
"AuthZ": [
- "teams_read"
+ "usage_read"
]
}
],
- "summary": "Update a user's membership attributes on a team",
+ "summary": "Get cost across multi-org account",
"tags": [
- "Teams"
+ "Usage Metering"
],
- "x-codegen-request-body-name": "body",
- "x-menu-order": 9,
+ "x-menu-order": 45,
"x-permission": {
"operator": "OR",
"permissions": [
- "teams_read"
+ "usage_read"
]
},
"x-undo": {
- "type": "idempotent"
+ "type": "safe"
}
- },
- "x-merge-override": {
- "delete": true
}
},
- "/api/v2/team/{team_id}/permission-settings": {
+ "/api/v2/usage/estimated_cost": {
"get": {
- "description": "Get all permission settings for a given team.",
- "operationId": "GetTeamPermissionSettings",
+ "description": "Get estimated cost across multi-org and single root-org accounts.\nEstimated cost data is only available for the current month and previous month\nand is delayed by up to 72 hours from when it was incurred.\nTo access historical costs prior to this, use the `/historical_cost` endpoint.\n\nThis endpoint is only accessible for [parent-level organizations](https://docs.datadoghq.com/account_management/multi_organization/).",
+ "operationId": "GetEstimatedCostByOrg",
"parameters": [
{
- "description": "None",
- "in": "path",
- "name": "team_id",
- "required": true,
+ "description": "String to specify whether cost is broken down at a parent-org level or at the sub-org level. Available views are `summary` and `sub-org`. Defaults to `summary`.",
+ "in": "query",
+ "name": "view",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "Datetime in ISO-8601 format, UTC, precise to month: `[YYYY-MM]` for cost beginning this month. **Either start_month or start_date should be specified, but not both.** (start_month cannot go beyond two months in the past). Provide an `end_month` to view month-over-month cost.",
+ "in": "query",
+ "name": "start_month",
+ "required": false,
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ },
+ {
+ "description": "Datetime in ISO-8601 format, UTC, precise to month: `[YYYY-MM]` for cost ending this month.",
+ "in": "query",
+ "name": "end_month",
+ "required": false,
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ },
+ {
+ "description": "Datetime in ISO-8601 format, UTC, precise to day: `[YYYY-MM-DD]` for cost beginning this day. **Either start_month or start_date should be specified, but not both.** (start_date cannot go beyond two months in the past). Provide an `end_date` to view day-over-day cumulative cost.",
+ "in": "query",
+ "name": "start_date",
+ "required": false,
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ },
+ {
+ "description": "Datetime in ISO-8601 format, UTC, precise to day: `[YYYY-MM-DD]` for cost ending this day.",
+ "in": "query",
+ "name": "end_date",
+ "required": false,
"schema": {
+ "format": "date-time",
"type": "string"
}
+ },
+ {
+ "description": "Boolean to specify whether to include accounts connected to the current account as partner customers in the Datadog partner network program. Defaults to `false`. ",
+ "in": "query",
+ "name": "include_connected_accounts",
+ "required": false,
+ "schema": {
+ "default": false,
+ "type": "boolean"
+ }
}
],
"responses": {
"200": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
- "description": "Team permission settings response",
+ "description": "Chargeback Summary response.",
"properties": {
"data": {
- "description": "Team permission settings response data",
+ "description": "Response containing Chargeback Summary.",
"items": {
- "description": "Team permission setting",
+ "description": "Cost data.",
"properties": {
"attributes": {
- "description": "Team permission setting attributes",
+ "description": "Cost attributes data.",
"properties": {
- "action": {
- "description": "The identifier for the action",
- "enum": [
- "manage_membership",
- "edit"
- ],
- "readOnly": true,
- "type": "string",
- "x-enum-varnames": [
- "MANAGE_MEMBERSHIP",
- "EDIT"
- ]
+ "account_name": {
+ "description": "The account name.",
+ "type": "string"
},
- "editable": {
- "description": "Whether or not the permission setting is editable by the current user",
- "readOnly": true,
- "type": "boolean"
+ "account_public_id": {
+ "description": "The account public ID.",
+ "type": "string"
},
- "options": {
- "description": "Possible values for action",
+ "charges": {
+ "description": "List of charges data reported for the requested month.",
"items": {
- "description": "What type of user is allowed to perform the specified action",
- "enum": [
- "admins",
- "members",
- "organization",
- "user_access_manage",
- "teams_manage"
- ],
- "type": "string",
- "x-enum-varnames": [
- "ADMINS",
- "MEMBERS",
- "ORGANIZATION",
- "USER_ACCESS_MANAGE",
- "TEAMS_MANAGE"
- ]
+ "description": "Charges breakdown.",
+ "properties": {
+ "charge_type": {
+ "description": "The type of charge for a particular product.",
+ "example": "on_demand",
+ "type": "string"
+ },
+ "cost": {
+ "description": "The cost for a particular product and charge type during a given month.",
+ "format": "double",
+ "type": "number"
+ },
+ "product_name": {
+ "description": "The product for which cost is being reported.",
+ "example": "infra_host",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
- "readOnly": true,
"type": "array"
},
- "title": {
- "description": "The team permission name",
- "readOnly": true,
+ "date": {
+ "description": "The month requested.",
+ "format": "date-time",
"type": "string"
},
- "value": {
- "description": "What type of user is allowed to perform the specified action",
- "enum": [
- "admins",
- "members",
- "organization",
- "user_access_manage",
- "teams_manage"
- ],
- "type": "string",
- "x-enum-varnames": [
- "ADMINS",
- "MEMBERS",
- "ORGANIZATION",
- "USER_ACCESS_MANAGE",
- "TEAMS_MANAGE"
- ]
+ "org_name": {
+ "description": "The organization name.",
+ "type": "string"
+ },
+ "public_id": {
+ "description": "The organization public ID.",
+ "type": "string"
+ },
+ "region": {
+ "description": "The region of the Datadog instance that the organization belongs to.",
+ "type": "string"
+ },
+ "total_cost": {
+ "description": "The total cost of products for the month.",
+ "format": "double",
+ "type": "number"
}
},
"type": "object"
},
"id": {
- "description": "The team permission setting's identifier",
- "example": "TeamPermission-aeadc05e-98a8-11ec-ac2c-da7ad0900001-edit",
+ "description": "Unique ID of the response.",
"type": "string"
},
"type": {
- "default": "team_permission_settings",
- "description": "Team permission setting type",
+ "default": "cost_by_org",
+ "description": "Type of cost data.",
"enum": [
- "team_permission_settings"
+ "cost_by_org"
],
- "example": "team_permission_settings",
+ "example": "cost_by_org",
"type": "string",
"x-enum-varnames": [
- "TEAM_PERMISSION_SETTINGS"
+ "COST_BY_ORG"
]
}
},
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "object"
},
"type": "array"
}
@@ -398839,9 +423550,9 @@
},
"description": "OK"
},
- "403": {
+ "400": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
"description": "API error response.",
"properties": {
@@ -398865,11 +423576,11 @@
}
}
},
- "description": "Forbidden"
+ "description": "Bad Request"
},
- "404": {
+ "403": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
"description": "API error response.",
"properties": {
@@ -398893,11 +423604,11 @@
}
}
},
- "description": "API error response."
+ "description": "Forbidden - User is not authorized"
},
"429": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
"description": "API error response.",
"properties": {
@@ -398931,19 +423642,19 @@
},
{
"AuthZ": [
- "teams_read"
+ "usage_read"
]
}
],
- "summary": "Get permission settings for a team",
+ "summary": "Get estimated cost across your account",
"tags": [
- "Teams"
+ "Usage Metering"
],
- "x-menu-order": 17,
+ "x-menu-order": 6,
"x-permission": {
"operator": "OR",
"permissions": [
- "teams_read"
+ "usage_read"
]
},
"x-undo": {
@@ -398951,197 +423662,144 @@
}
}
},
- "/api/v2/team/{team_id}/permission-settings/{action}": {
- "put": {
- "description": "Update a team permission setting for a given team.",
- "operationId": "UpdateTeamPermissionSetting",
+ "/api/v2/usage/historical_cost": {
+ "get": {
+ "description": "Get historical cost across multi-org and single root-org accounts.\nCost data for a given month becomes available no later than the 16th of the following month.\n\nThis endpoint is only accessible for [parent-level organizations](https://docs.datadoghq.com/account_management/multi_organization/).",
+ "operationId": "GetHistoricalCostByOrg",
"parameters": [
{
- "description": "None",
- "in": "path",
- "name": "team_id",
- "required": true,
+ "description": "String to specify whether cost is broken down at a parent-org level or at the sub-org level. Available views are `summary` and `sub-org`. Defaults to `summary`.",
+ "in": "query",
+ "name": "view",
+ "required": false,
"schema": {
"type": "string"
}
},
{
- "description": "None",
- "in": "path",
- "name": "action",
+ "description": "Datetime in ISO-8601 format, UTC, precise to month: `[YYYY-MM]` for cost beginning this month.",
+ "in": "query",
+ "name": "start_month",
"required": true,
"schema": {
+ "format": "date-time",
"type": "string"
}
- }
- ],
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Team permission setting update request",
- "properties": {
- "data": {
- "description": "Team permission setting update",
- "properties": {
- "attributes": {
- "description": "Team permission setting update attributes",
- "properties": {
- "value": {
- "description": "What type of user is allowed to perform the specified action",
- "enum": [
- "admins",
- "members",
- "organization",
- "user_access_manage",
- "teams_manage"
- ],
- "type": "string",
- "x-enum-varnames": [
- "ADMINS",
- "MEMBERS",
- "ORGANIZATION",
- "USER_ACCESS_MANAGE",
- "TEAMS_MANAGE"
- ]
- }
- },
- "type": "object"
- },
- "type": {
- "default": "team_permission_settings",
- "description": "Team permission setting type",
- "enum": [
- "team_permission_settings"
- ],
- "example": "team_permission_settings",
- "type": "string",
- "x-enum-varnames": [
- "TEAM_PERMISSION_SETTINGS"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- }
+ },
+ {
+ "description": "Datetime in ISO-8601 format, UTC, precise to month: `[YYYY-MM]` for cost ending this month.",
+ "in": "query",
+ "name": "end_month",
+ "required": false,
+ "schema": {
+ "format": "date-time",
+ "type": "string"
}
},
- "required": true
- },
+ {
+ "description": "Boolean to specify whether to include accounts connected to the current account as partner customers in the Datadog partner network program. Defaults to `false`. ",
+ "in": "query",
+ "name": "include_connected_accounts",
+ "required": false,
+ "schema": {
+ "default": false,
+ "type": "boolean"
+ }
+ }
+ ],
"responses": {
"200": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
- "description": "Team permission setting response",
+ "description": "Chargeback Summary response.",
"properties": {
"data": {
- "description": "Team permission setting",
- "properties": {
- "attributes": {
- "description": "Team permission setting attributes",
- "properties": {
- "action": {
- "description": "The identifier for the action",
- "enum": [
- "manage_membership",
- "edit"
- ],
- "readOnly": true,
- "type": "string",
- "x-enum-varnames": [
- "MANAGE_MEMBERSHIP",
- "EDIT"
- ]
- },
- "editable": {
- "description": "Whether or not the permission setting is editable by the current user",
- "readOnly": true,
- "type": "boolean"
- },
- "options": {
- "description": "Possible values for action",
- "items": {
- "description": "What type of user is allowed to perform the specified action",
- "enum": [
- "admins",
- "members",
- "organization",
- "user_access_manage",
- "teams_manage"
- ],
- "type": "string",
- "x-enum-varnames": [
- "ADMINS",
- "MEMBERS",
- "ORGANIZATION",
- "USER_ACCESS_MANAGE",
- "TEAMS_MANAGE"
- ]
+ "description": "Response containing Chargeback Summary.",
+ "items": {
+ "description": "Cost data.",
+ "properties": {
+ "attributes": {
+ "description": "Cost attributes data.",
+ "properties": {
+ "account_name": {
+ "description": "The account name.",
+ "type": "string"
},
- "readOnly": true,
- "type": "array"
- },
- "title": {
- "description": "The team permission name",
- "readOnly": true,
- "type": "string"
+ "account_public_id": {
+ "description": "The account public ID.",
+ "type": "string"
+ },
+ "charges": {
+ "description": "List of charges data reported for the requested month.",
+ "items": {
+ "description": "Charges breakdown.",
+ "properties": {
+ "charge_type": {
+ "description": "The type of charge for a particular product.",
+ "example": "on_demand",
+ "type": "string"
+ },
+ "cost": {
+ "description": "The cost for a particular product and charge type during a given month.",
+ "format": "double",
+ "type": "number"
+ },
+ "product_name": {
+ "description": "The product for which cost is being reported.",
+ "example": "infra_host",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "date": {
+ "description": "The month requested.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "org_name": {
+ "description": "The organization name.",
+ "type": "string"
+ },
+ "public_id": {
+ "description": "The organization public ID.",
+ "type": "string"
+ },
+ "region": {
+ "description": "The region of the Datadog instance that the organization belongs to.",
+ "type": "string"
+ },
+ "total_cost": {
+ "description": "The total cost of products for the month.",
+ "format": "double",
+ "type": "number"
+ }
},
- "value": {
- "description": "What type of user is allowed to perform the specified action",
- "enum": [
- "admins",
- "members",
- "organization",
- "user_access_manage",
- "teams_manage"
- ],
- "type": "string",
- "x-enum-varnames": [
- "ADMINS",
- "MEMBERS",
- "ORGANIZATION",
- "USER_ACCESS_MANAGE",
- "TEAMS_MANAGE"
- ]
- }
+ "type": "object"
},
- "type": "object"
- },
- "id": {
- "description": "The team permission setting's identifier",
- "example": "TeamPermission-aeadc05e-98a8-11ec-ac2c-da7ad0900001-edit",
- "type": "string"
+ "id": {
+ "description": "Unique ID of the response.",
+ "type": "string"
+ },
+ "type": {
+ "default": "cost_by_org",
+ "description": "Type of cost data.",
+ "enum": [
+ "cost_by_org"
+ ],
+ "example": "cost_by_org",
+ "type": "string",
+ "x-enum-varnames": [
+ "COST_BY_ORG"
+ ]
+ }
},
- "type": {
- "default": "team_permission_settings",
- "description": "Team permission setting type",
- "enum": [
- "team_permission_settings"
- ],
- "example": "team_permission_settings",
- "type": "string",
- "x-enum-varnames": [
- "TEAM_PERMISSION_SETTINGS"
- ]
- }
+ "type": "object"
},
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "array"
}
},
"type": "object"
@@ -399150,9 +423808,9 @@
},
"description": "OK"
},
- "403": {
+ "400": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
"description": "API error response.",
"properties": {
@@ -399176,11 +423834,11 @@
}
}
},
- "description": "Forbidden"
+ "description": "Bad Request"
},
- "404": {
+ "403": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
"description": "API error response.",
"properties": {
@@ -399204,11 +423862,11 @@
}
}
},
- "description": "API error response."
+ "description": "Forbidden - User is not authorized"
},
"429": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
"description": "API error response.",
"properties": {
@@ -399242,535 +423900,228 @@
},
{
"AuthZ": [
- "teams_read"
+ "usage_read"
]
}
],
- "summary": "Update permission setting for team",
+ "summary": "Get historical cost across your account",
"tags": [
- "Teams"
+ "Usage Metering"
],
- "x-codegen-request-body-name": "body",
- "x-menu-order": 18,
+ "x-menu-order": 5,
"x-permission": {
"operator": "OR",
"permissions": [
- "teams_read"
+ "usage_read"
]
},
"x-undo": {
- "type": "idempotent"
+ "type": "safe"
}
}
- },
- "/api/v2/teams": {
- "get": {
- "deprecated": true,
- "description": "Get all incident teams for the requesting user's organization. If the `include[users]` query parameter is provided, the included attribute will contain the users related to these incident teams.",
- "operationId": "ListIncidentTeams",
- "parameters": [
- {
- "description": "Specifies which types of related objects should be included in the response.",
- "in": "query",
- "name": "include",
- "required": false,
- "schema": {
- "description": "Object related to an incident.",
- "enum": [
- "users",
- "attachments"
- ],
- "type": "string",
- "x-enum-varnames": [
- "USERS",
- "ATTACHMENTS"
- ]
- }
- },
- {
- "description": "Size for a given page. The maximum allowed value is 100.",
- "in": "query",
- "name": "page[size]",
- "required": false,
- "schema": {
- "default": 10,
- "example": 10,
- "format": "int64",
- "type": "integer"
- }
- },
- {
- "description": "Specific offset to use as the beginning of the returned page.",
- "in": "query",
- "name": "page[offset]",
- "required": false,
- "schema": {
- "default": 0,
- "example": 0,
- "format": "int64",
- "type": "integer"
- }
- },
- {
- "description": "A search query that filters teams by name.",
- "in": "query",
- "name": "filter",
- "required": false,
- "schema": {
- "example": "ExampleTeamName",
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Response with a list of incident team payloads.",
- "properties": {
- "data": {
- "description": "An array of incident teams.",
- "example": [
- {
- "attributes": {
- "name": "team name"
- },
- "id": "00000000-7ea3-0000-0000-000000000000",
- "type": "teams"
- }
- ],
- "items": {
- "description": "Incident Team data from a response.",
- "properties": {
- "attributes": {
- "description": "The incident team's attributes from a response.",
- "properties": {
- "created": {
- "description": "Timestamp of when the incident team was created.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified": {
- "description": "Timestamp of when the incident team was modified.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "name": {
- "description": "Name of the incident team.",
- "example": "team name",
- "type": "string"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "The incident team's ID.",
- "example": "00000000-7ea3-0000-000a-000000000000",
- "type": "string"
- },
- "relationships": {
- "description": "The incident team's relationships.",
- "properties": {
- "created_by": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "last_modified_by": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- }
- },
- "readOnly": true,
- "type": "object"
- },
- "type": {
- "default": "teams",
- "description": "Incident Team resource type.",
- "enum": [
- "teams"
- ],
- "example": "teams",
- "type": "string",
- "x-enum-varnames": [
- "TEAMS"
- ]
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "included": {
- "description": "Included related resources which the user requested.",
- "items": {
- "description": "An object related to an incident team which is present in the included payload.",
- "oneOf": [
- {
- "description": "User object returned by the API.",
- "properties": {
- "attributes": {
- "description": "Attributes of user object returned by the API.",
- "properties": {
- "created_at": {
- "description": "Creation time of the user.",
- "format": "date-time",
- "type": "string"
- },
- "disabled": {
- "description": "Whether the user is disabled.",
- "type": "boolean"
- },
- "email": {
- "description": "Email of the user.",
- "type": "string"
- },
- "handle": {
- "description": "Handle of the user.",
- "type": "string"
- },
- "icon": {
- "description": "URL of the user's icon.",
- "type": "string"
- },
- "mfa_enabled": {
- "description": "If user has MFA enabled.",
- "readOnly": true,
- "type": "boolean"
- },
- "modified_at": {
- "description": "Time that the user was last modified.",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "Name of the user.",
- "nullable": true,
- "type": "string"
- },
- "service_account": {
- "description": "Whether the user is a service account.",
- "type": "boolean"
- },
- "status": {
- "description": "Status of the user.",
- "type": "string"
- },
- "title": {
- "description": "Title of the user.",
- "nullable": true,
- "type": "string"
- },
- "verified": {
- "description": "Whether the user is verified.",
- "type": "boolean"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "ID of the user.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the user object returned by the API.",
- "properties": {
- "org": {
- "description": "Relationship to an organization.",
- "properties": {
- "data": {
- "description": "Relationship to organization object.",
- "properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
- "type": "string"
- },
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "other_orgs": {
- "description": "Relationship to organizations.",
- "properties": {
- "data": {
- "description": "Relationships to organization objects.",
- "example": [],
- "items": {
- "description": "Relationship to organization object.",
- "properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
- "type": "string"
- },
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- },
- "type": "array"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "other_users": {
- "description": "Relationship to users.",
- "properties": {
- "data": {
- "description": "Relationships to user objects.",
- "example": [],
- "items": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "roles": {
- "description": "Relationship to roles.",
- "properties": {
- "data": {
- "description": "An array containing type and the unique identifier of a role.",
- "items": {
- "description": "Relationship to role object.",
- "properties": {
- "id": {
- "description": "The unique identifier of the role.",
- "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
- "type": "string"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
+ },
+ "/api/v2/usage/hourly_usage": {
+ "get": {
+ "description": "Get hourly usage by product family.",
+ "operationId": "GetHourlyUsage",
+ "parameters": [
+ {
+ "description": "Datetime in ISO-8601 format, UTC, precise to hour: [YYYY-MM-DDThh] for usage beginning at this hour.",
+ "in": "query",
+ "name": "filter[timestamp][start]",
+ "required": true,
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ },
+ {
+ "description": "Datetime in ISO-8601 format, UTC, precise to hour: [YYYY-MM-DDThh] for usage ending **before** this hour.",
+ "in": "query",
+ "name": "filter[timestamp][end]",
+ "required": false,
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ },
+ {
+ "description": "Comma separated list of product families to retrieve. Available families are `all`, `analyzed_logs`,\n`application_security`, `audit_trail`, `serverless`, `ci_app`, `cloud_cost_management`, `cloud_siem`,\n`csm_container_enterprise`, `csm_host_enterprise`, `cspm`, `custom_events`, `cws`, `dbm`, `error_tracking`,\n`fargate`, `infra_hosts`, `incident_management`, `indexed_logs`, `indexed_spans`, `ingested_spans`, `iot`,\n`lambda_traced_invocations`, `logs`, `network_flows`, `network_hosts`, `network_monitoring`, `observability_pipelines`,\n`online_archive`, `profiling`, `rum`, `rum_browser_sessions`, `rum_mobile_sessions`, `sds`, `snmp`, `software_delivery`,\n`synthetics_api`, `synthetics_browser`, `synthetics_mobile`, `synthetics_parallel_testing`, `timeseries`, `vuln_management`,\nand `workflow_executions`.\nThe following product family has been **deprecated**: `audit_logs`.",
+ "in": "query",
+ "name": "filter[product_families]",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "Include child org usage in the response. Defaults to false.",
+ "in": "query",
+ "name": "filter[include_descendants]",
+ "required": false,
+ "schema": {
+ "default": false,
+ "type": "boolean"
+ }
+ },
+ {
+ "description": "Boolean to specify whether to include accounts connected to the current account as partner customers in the Datadog partner network program. Defaults to false.",
+ "in": "query",
+ "name": "filter[include_connected_accounts]",
+ "required": false,
+ "schema": {
+ "default": false,
+ "type": "boolean"
+ }
+ },
+ {
+ "description": "Include breakdown of usage by subcategories where applicable (for product family logs only). Defaults to false.",
+ "in": "query",
+ "name": "filter[include_breakdown]",
+ "required": false,
+ "schema": {
+ "default": false,
+ "type": "boolean"
+ }
+ },
+ {
+ "description": "Comma separated list of product family versions to use in the format `product_family:version`. For example,\n`infra_hosts:1.0.0`. If this parameter is not used, the API will use the latest version of each requested\nproduct family. Currently all families have one version `1.0.0`.",
+ "in": "query",
+ "name": "filter[versions]",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "Maximum number of results to return (between 1 and 500) - defaults to 500 if limit not specified.",
+ "in": "query",
+ "name": "page[limit]",
+ "required": false,
+ "schema": {
+ "default": 500,
+ "format": "int32",
+ "maximum": 500,
+ "minimum": 1,
+ "type": "integer"
+ }
+ },
+ {
+ "description": "List following results with a next_record_id provided in the previous query.",
+ "in": "query",
+ "name": "page[next_record_id]",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json;datetime-format=rfc3339": {
+ "schema": {
+ "description": "Hourly usage response.",
+ "properties": {
+ "data": {
+ "description": "Response containing hourly usage.",
+ "items": {
+ "description": "Hourly usage for a product family for an org.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of hourly usage for a product family for an org for a time period.",
+ "properties": {
+ "account_name": {
+ "description": "The account name.",
+ "type": "string"
+ },
+ "account_public_id": {
+ "description": "The account public ID.",
+ "type": "string"
+ },
+ "measurements": {
+ "description": "List of the measured usage values for the product family for the org for the time period.",
+ "items": {
+ "description": "Usage amount for a given usage type.",
+ "properties": {
+ "usage_type": {
+ "description": "Type of usage.",
+ "type": "string"
},
- "type": "object",
- "x-merge-override": {
- "required": false
+ "value": {
+ "description": "Contains the number measured for the given usage_type during the hour.",
+ "format": "int64",
+ "nullable": true,
+ "type": "integer"
}
- }
+ },
+ "type": "object"
},
- "type": "object",
- "x-merge-override": {
- "properties": false
- }
+ "type": "array"
},
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
+ "org_name": {
+ "description": "The organization name.",
+ "type": "string"
+ },
+ "product_family": {
+ "description": "The product for which usage is being reported.",
+ "type": "string"
+ },
+ "public_id": {
+ "description": "The organization public ID.",
+ "type": "string"
+ },
+ "region": {
+ "description": "The region of the Datadog instance that the organization belongs to.",
+ "type": "string"
+ },
+ "timestamp": {
+ "description": "Datetime in ISO-8601 format, UTC. The hour for the usage.",
+ "format": "date-time",
+ "type": "string"
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "object"
+ },
+ "id": {
+ "description": "Unique ID of the response.",
+ "type": "string"
+ },
+ "type": {
+ "default": "usage_timeseries",
+ "description": "Type of usage data.",
+ "enum": [
+ "usage_timeseries"
+ ],
+ "example": "usage_timeseries",
+ "type": "string",
+ "x-enum-varnames": [
+ "USAGE_TIMESERIES"
+ ]
}
- ]
+ },
+ "type": "object"
},
- "readOnly": true,
"type": "array"
},
"meta": {
- "description": "The metadata object containing pagination metadata.",
+ "description": "The object containing document metadata.",
"properties": {
"pagination": {
- "description": "Pagination properties.",
+ "description": "The metadata for the current pagination.",
"properties": {
- "next_offset": {
- "description": "The index of the first element in the next page of results. Equal to page size added to the current offset.",
- "example": 1000,
- "format": "int64",
- "type": "integer"
- },
- "offset": {
- "description": "The index of the first element in the results.",
- "example": 10,
- "format": "int64",
- "type": "integer"
- },
- "size": {
- "description": "Maximum size of pages to return.",
- "example": 1000,
- "format": "int64",
- "type": "integer"
+ "next_record_id": {
+ "description": "The cursor to get the next results (if any). To make the next request, use the same parameters and add `next_record_id`.",
+ "nullable": true,
+ "type": "string"
}
},
"type": "object"
}
},
- "readOnly": true,
"type": "object"
}
},
- "required": [
- "data"
- ],
"type": "object"
}
}
@@ -399779,7 +424130,7 @@
},
"400": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
"description": "API error response.",
"properties": {
@@ -399805,9 +424156,9 @@
},
"description": "Bad Request"
},
- "401": {
+ "403": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
"description": "API error response.",
"properties": {
@@ -399831,11 +424182,11 @@
}
}
},
- "description": "Unauthorized"
+ "description": "Forbidden - User is not authorized"
},
- "403": {
+ "429": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
"description": "API error response.",
"properties": {
@@ -399859,11 +424210,164 @@
}
}
},
- "description": "Forbidden"
+ "description": "Too many requests"
+ }
+ },
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
},
- "404": {
+ {
+ "AuthZ": [
+ "usage_read"
+ ]
+ }
+ ],
+ "summary": "Get hourly usage by product family",
+ "tags": [
+ "Usage Metering"
+ ],
+ "x-menu-order": 1,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "usage_read"
+ ]
+ },
+ "x-undo": {
+ "type": "safe"
+ }
+ }
+ },
+ "/api/v2/usage/lambda_traced_invocations": {
+ "get": {
+ "deprecated": true,
+ "description": "Get hourly usage for Lambda traced invocations.\n**Note:** This endpoint has been deprecated.. Hourly usage data for all products is now available in the [Get hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family)",
+ "operationId": "GetUsageLambdaTracedInvocations",
+ "parameters": [
+ {
+ "description": "Datetime in ISO-8601 format, UTC, precise to hour: `[YYYY-MM-DDThh]` for usage beginning at this hour.",
+ "in": "query",
+ "name": "start_hr",
+ "required": true,
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ },
+ {
+ "description": "Datetime in ISO-8601 format, UTC, precise to hour: `[YYYY-MM-DDThh]` for usage ending\n**before** this hour.",
+ "in": "query",
+ "name": "end_hr",
+ "required": false,
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
+ "schema": {
+ "description": "Lambda Traced Invocations usage response.",
+ "properties": {
+ "data": {
+ "description": "Response containing Lambda Traced Invocations usage.",
+ "items": {
+ "description": "Usage data.",
+ "properties": {
+ "attributes": {
+ "description": "Usage attributes data.",
+ "properties": {
+ "org_name": {
+ "description": "The organization name.",
+ "type": "string"
+ },
+ "product_family": {
+ "description": "The product for which usage is being reported.",
+ "type": "string"
+ },
+ "public_id": {
+ "description": "The organization public ID.",
+ "type": "string"
+ },
+ "region": {
+ "description": "The region of the Datadog instance that the organization belongs to.",
+ "type": "string"
+ },
+ "timeseries": {
+ "description": "List of usage data reported for each requested hour.",
+ "items": {
+ "description": "Usage timeseries data.",
+ "properties": {
+ "timestamp": {
+ "description": "Datetime in ISO-8601 format, UTC. The hour for the usage.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "value": {
+ "description": "Contains the number measured for the given usage_type during the hour.",
+ "format": "int64",
+ "nullable": true,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "usage_type": {
+ "description": "Usage type that is being measured.",
+ "enum": [
+ "app_sec_host_count",
+ "observability_pipelines_bytes_processed",
+ "lambda_traced_invocations_count"
+ ],
+ "example": "observability_pipelines_bytes_processed",
+ "type": "string",
+ "x-enum-varnames": [
+ "APP_SEC_HOST_COUNT",
+ "OBSERVABILITY_PIPELINES_BYTES_PROCESSSED",
+ "LAMBDA_TRACED_INVOCATIONS_COUNT"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "Unique ID of the response.",
+ "type": "string"
+ },
+ "type": {
+ "default": "usage_timeseries",
+ "description": "Type of usage data.",
+ "enum": [
+ "usage_timeseries"
+ ],
+ "example": "usage_timeseries",
+ "type": "string",
+ "x-enum-varnames": [
+ "USAGE_TIMESERIES"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "OK"
+ },
+ "400": {
+ "content": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
"description": "API error response.",
"properties": {
@@ -399887,11 +424391,39 @@
}
}
},
- "description": "Not Found"
+ "description": "Bad Request"
+ },
+ "403": {
+ "content": {
+ "application/json;datetime-format=rfc3339": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Forbidden - User is not authorized"
},
"429": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
"description": "API error response.",
"properties": {
@@ -399925,581 +424457,154 @@
},
{
"AuthZ": [
- "incident_read"
+ "usage_read"
]
}
],
- "summary": "Get a list of all incident teams",
+ "summary": "Get hourly usage for Lambda traced invocations",
"tags": [
- "Incident Teams"
+ "Usage Metering"
],
- "x-menu-order": 4,
+ "x-menu-order": 37,
"x-permission": {
"operator": "OR",
"permissions": [
- "incident_read"
+ "usage_read"
]
},
"x-undo": {
"type": "safe"
- },
- "x-unstable": "**Note**: This endpoint is deprecated. See the [Teams API endpoints](https://docs.datadoghq.com/api/latest/teams/)."
- },
- "post": {
+ }
+ }
+ },
+ "/api/v2/usage/observability_pipelines": {
+ "get": {
"deprecated": true,
- "description": "Creates a new incident team.",
- "operationId": "CreateIncidentTeam",
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Create request with an incident team payload.",
- "properties": {
- "data": {
- "description": "Incident Team data for a create request.",
- "properties": {
- "attributes": {
- "description": "The incident team's attributes for a create request.",
- "properties": {
- "name": {
- "description": "Name of the incident team.",
- "example": "team name",
- "type": "string"
- }
- },
- "required": [
- "name"
- ],
- "type": "object"
- },
- "relationships": {
- "description": "The incident team's relationships.",
- "properties": {
- "created_by": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "last_modified_by": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- }
- },
- "readOnly": true,
- "type": "object"
- },
- "type": {
- "default": "teams",
- "description": "Incident Team resource type.",
- "enum": [
- "teams"
- ],
- "example": "teams",
- "type": "string",
- "x-enum-varnames": [
- "TEAMS"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- }
+ "description": "Get hourly usage for observability pipelines.\n**Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family)",
+ "operationId": "GetUsageObservabilityPipelines",
+ "parameters": [
+ {
+ "description": "Datetime in ISO-8601 format, UTC, precise to hour: `[YYYY-MM-DDThh]` for usage beginning at this hour.",
+ "in": "query",
+ "name": "start_hr",
+ "required": true,
+ "schema": {
+ "format": "date-time",
+ "type": "string"
}
},
- "description": "Incident Team Payload.",
- "required": true
- },
+ {
+ "description": "Datetime in ISO-8601 format, UTC, precise to hour: `[YYYY-MM-DDThh]` for usage ending\n**before** this hour.",
+ "in": "query",
+ "name": "end_hr",
+ "required": false,
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ }
+ ],
"responses": {
- "201": {
+ "200": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
- "description": "Response with an incident team payload.",
+ "description": "Observability Pipelines usage response.",
"properties": {
"data": {
- "description": "Incident Team data from a response.",
- "properties": {
- "attributes": {
- "description": "The incident team's attributes from a response.",
- "properties": {
- "created": {
- "description": "Timestamp of when the incident team was created.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified": {
- "description": "Timestamp of when the incident team was modified.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "name": {
- "description": "Name of the incident team.",
- "example": "team name",
- "type": "string"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "The incident team's ID.",
- "example": "00000000-7ea3-0000-000a-000000000000",
- "type": "string"
- },
- "relationships": {
- "description": "The incident team's relationships.",
- "properties": {
- "created_by": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "last_modified_by": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- }
- },
- "readOnly": true,
- "type": "object"
- },
- "type": {
- "default": "teams",
- "description": "Incident Team resource type.",
- "enum": [
- "teams"
- ],
- "example": "teams",
- "type": "string",
- "x-enum-varnames": [
- "TEAMS"
- ]
- }
- },
- "type": "object"
- },
- "included": {
- "description": "Included objects from relationships.",
+ "description": "Response containing Observability Pipelines usage.",
"items": {
- "description": "An object related to an incident team which is present in the included payload.",
- "oneOf": [
- {
- "description": "User object returned by the API.",
+ "description": "Usage data.",
+ "properties": {
+ "attributes": {
+ "description": "Usage attributes data.",
"properties": {
- "attributes": {
- "description": "Attributes of user object returned by the API.",
- "properties": {
- "created_at": {
- "description": "Creation time of the user.",
- "format": "date-time",
- "type": "string"
- },
- "disabled": {
- "description": "Whether the user is disabled.",
- "type": "boolean"
- },
- "email": {
- "description": "Email of the user.",
- "type": "string"
- },
- "handle": {
- "description": "Handle of the user.",
- "type": "string"
- },
- "icon": {
- "description": "URL of the user's icon.",
- "type": "string"
- },
- "mfa_enabled": {
- "description": "If user has MFA enabled.",
- "readOnly": true,
- "type": "boolean"
- },
- "modified_at": {
- "description": "Time that the user was last modified.",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "Name of the user.",
- "nullable": true,
- "type": "string"
- },
- "service_account": {
- "description": "Whether the user is a service account.",
- "type": "boolean"
- },
- "status": {
- "description": "Status of the user.",
- "type": "string"
- },
- "title": {
- "description": "Title of the user.",
- "nullable": true,
- "type": "string"
- },
- "verified": {
- "description": "Whether the user is verified.",
- "type": "boolean"
- }
- },
- "type": "object"
+ "org_name": {
+ "description": "The organization name.",
+ "type": "string"
},
- "id": {
- "description": "ID of the user.",
+ "product_family": {
+ "description": "The product for which usage is being reported.",
"type": "string"
},
- "relationships": {
- "description": "Relationships of the user object returned by the API.",
- "properties": {
- "org": {
- "description": "Relationship to an organization.",
- "properties": {
- "data": {
- "description": "Relationship to organization object.",
- "properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
- "type": "string"
- },
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "other_orgs": {
- "description": "Relationship to organizations.",
- "properties": {
- "data": {
- "description": "Relationships to organization objects.",
- "example": [],
- "items": {
- "description": "Relationship to organization object.",
- "properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
- "type": "string"
- },
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- },
- "type": "array"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "other_users": {
- "description": "Relationship to users.",
- "properties": {
- "data": {
- "description": "Relationships to user objects.",
- "example": [],
- "items": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "roles": {
- "description": "Relationship to roles.",
- "properties": {
- "data": {
- "description": "An array containing type and the unique identifier of a role.",
- "items": {
- "description": "Relationship to role object.",
- "properties": {
- "id": {
- "description": "The unique identifier of the role.",
- "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
- "type": "string"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
+ "public_id": {
+ "description": "The organization public ID.",
+ "type": "string"
+ },
+ "region": {
+ "description": "The region of the Datadog instance that the organization belongs to.",
+ "type": "string"
+ },
+ "timeseries": {
+ "description": "List of usage data reported for each requested hour.",
+ "items": {
+ "description": "Usage timeseries data.",
+ "properties": {
+ "timestamp": {
+ "description": "Datetime in ISO-8601 format, UTC. The hour for the usage.",
+ "format": "date-time",
+ "type": "string"
},
- "type": "object",
- "x-merge-override": {
- "required": false
+ "value": {
+ "description": "Contains the number measured for the given usage_type during the hour.",
+ "format": "int64",
+ "nullable": true,
+ "type": "integer"
}
- }
+ },
+ "type": "object"
},
- "type": "object",
- "x-merge-override": {
- "properties": false
- }
+ "type": "array"
},
- "type": {
- "default": "users",
- "description": "Users resource type.",
+ "usage_type": {
+ "description": "Usage type that is being measured.",
"enum": [
- "users"
+ "app_sec_host_count",
+ "observability_pipelines_bytes_processed",
+ "lambda_traced_invocations_count"
],
- "example": "users",
+ "example": "observability_pipelines_bytes_processed",
"type": "string",
"x-enum-varnames": [
- "USERS"
+ "APP_SEC_HOST_COUNT",
+ "OBSERVABILITY_PIPELINES_BYTES_PROCESSSED",
+ "LAMBDA_TRACED_INVOCATIONS_COUNT"
]
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "object"
+ },
+ "id": {
+ "description": "Unique ID of the response.",
+ "type": "string"
+ },
+ "type": {
+ "default": "usage_timeseries",
+ "description": "Type of usage data.",
+ "enum": [
+ "usage_timeseries"
+ ],
+ "example": "usage_timeseries",
+ "type": "string",
+ "x-enum-varnames": [
+ "USAGE_TIMESERIES"
+ ]
}
- ]
+ },
+ "type": "object"
},
- "readOnly": true,
"type": "array"
}
},
- "required": [
- "data"
- ],
"type": "object"
}
}
},
- "description": "CREATED"
+ "description": "OK"
},
"400": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
"description": "API error response.",
"properties": {
@@ -400525,9 +424630,9 @@
},
"description": "Bad Request"
},
- "401": {
+ "403": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
"description": "API error response.",
"properties": {
@@ -400551,11 +424656,11 @@
}
}
},
- "description": "Unauthorized"
+ "description": "Forbidden - User is not authorized"
},
- "403": {
+ "429": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
"description": "API error response.",
"properties": {
@@ -400579,11 +424684,165 @@
}
}
},
- "description": "Forbidden"
+ "description": "Too many requests"
+ }
+ },
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
},
- "404": {
+ {
+ "AuthZ": [
+ "usage_read"
+ ]
+ }
+ ],
+ "summary": "Get hourly usage for observability pipelines",
+ "tags": [
+ "Usage Metering"
+ ],
+ "x-menu-order": 39,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "usage_read"
+ ]
+ },
+ "x-undo": {
+ "type": "safe"
+ }
+ }
+ },
+ "/api/v2/usage/projected_cost": {
+ "get": {
+ "description": "Get projected cost across multi-org and single root-org accounts.\nProjected cost data is only available for the current month and becomes available around the 12th of the month.\n\nThis endpoint is only accessible for [parent-level organizations](https://docs.datadoghq.com/account_management/multi_organization/).",
+ "operationId": "GetProjectedCost",
+ "parameters": [
+ {
+ "description": "String to specify whether cost is broken down at a parent-org level or at the sub-org level. Available views are `summary` and `sub-org`. Defaults to `summary`.",
+ "in": "query",
+ "name": "view",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "Boolean to specify whether to include accounts connected to the current account as partner customers in the Datadog partner network program. Defaults to `false`. ",
+ "in": "query",
+ "name": "include_connected_accounts",
+ "required": false,
+ "schema": {
+ "default": false,
+ "type": "boolean"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
+ "schema": {
+ "description": "Projected Cost response.",
+ "properties": {
+ "data": {
+ "description": "Response containing Projected Cost.",
+ "items": {
+ "description": "Projected Cost data.",
+ "properties": {
+ "attributes": {
+ "description": "Projected Cost attributes data.",
+ "properties": {
+ "account_name": {
+ "description": "The account name.",
+ "type": "string"
+ },
+ "account_public_id": {
+ "description": "The account public ID.",
+ "type": "string"
+ },
+ "charges": {
+ "description": "List of charges data reported for the requested month.",
+ "items": {
+ "description": "Charges breakdown.",
+ "properties": {
+ "charge_type": {
+ "description": "The type of charge for a particular product.",
+ "example": "on_demand",
+ "type": "string"
+ },
+ "cost": {
+ "description": "The cost for a particular product and charge type during a given month.",
+ "format": "double",
+ "type": "number"
+ },
+ "product_name": {
+ "description": "The product for which cost is being reported.",
+ "example": "infra_host",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "date": {
+ "description": "The month requested.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "org_name": {
+ "description": "The organization name.",
+ "type": "string"
+ },
+ "projected_total_cost": {
+ "description": "The total projected cost of products for the month.",
+ "format": "double",
+ "type": "number"
+ },
+ "public_id": {
+ "description": "The organization public ID.",
+ "type": "string"
+ },
+ "region": {
+ "description": "The region of the Datadog instance that the organization belongs to.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "Unique ID of the response.",
+ "type": "string"
+ },
+ "type": {
+ "default": "projected_cost",
+ "description": "Type of cost data.",
+ "enum": [
+ "projected_cost"
+ ],
+ "example": "projected_cost",
+ "type": "string",
+ "x-enum-varnames": [
+ "PROJECt_COST"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "OK"
+ },
+ "400": {
+ "content": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
"description": "API error response.",
"properties": {
@@ -400607,11 +424866,39 @@
}
}
},
- "description": "Not Found"
+ "description": "Bad Request"
+ },
+ "403": {
+ "content": {
+ "application/json;datetime-format=rfc3339": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Forbidden - User is not authorized"
},
"429": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
"description": "API error response.",
"properties": {
@@ -400645,64 +424932,237 @@
},
{
"AuthZ": [
- "incident_settings_write"
+ "usage_read"
]
}
],
- "summary": "Create a new incident team",
+ "summary": "Get projected cost across your account",
"tags": [
- "Incident Teams"
+ "Usage Metering"
],
- "x-codegen-request-body-name": "body",
- "x-given": {
- "team": {
- "parameters": [
- {
- "name": "body",
- "value": "{\n \"data\": {\n \"attributes\": {\n \"name\": \"{{ unique }}\"\n },\n \"type\": \"teams\"\n }\n}"
- }
- ],
- "step": "there is a valid \"team\" in the system"
- }
- },
- "x-menu-order": 5,
+ "x-menu-order": 7,
"x-permission": {
"operator": "OR",
"permissions": [
- "incident_settings_write"
+ "usage_read"
]
},
"x-undo": {
- "operationId": "DeleteIncidentTeam",
- "parameters": [
- {
- "name": "team_id",
- "source": "data.id"
- }
- ],
- "type": "unsafe"
- },
- "x-unstable": "**Note**: This endpoint is deprecated. See the [Teams API endpoints](https://docs.datadoghq.com/api/latest/teams/)."
+ "type": "safe"
+ }
}
},
- "/api/v2/teams/{team_id}": {
- "delete": {
- "deprecated": true,
- "description": "Deletes an existing incident team.",
- "operationId": "DeleteIncidentTeam",
- "parameters": [
- {
- "description": "The ID of the incident team.",
- "in": "path",
- "name": "team_id",
- "required": true,
- "schema": {
- "type": "string"
+ "/api/v2/user_invitations": {
+ "post": {
+ "description": "Sends emails to one or more users inviting them to join the organization.",
+ "operationId": "SendInvitations",
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Object to invite users to join the organization.",
+ "properties": {
+ "data": {
+ "description": "List of user invitations.",
+ "example": [],
+ "items": {
+ "description": "Object to create a user invitation.",
+ "properties": {
+ "relationships": {
+ "description": "Relationships data for user invitation.",
+ "properties": {
+ "user": {
+ "description": "Relationship to user.",
+ "properties": {
+ "data": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "user"
+ ],
+ "type": "object"
+ },
+ "type": {
+ "default": "user_invitations",
+ "description": "User invitations type.",
+ "enum": [
+ "user_invitations"
+ ],
+ "example": "user_invitations",
+ "type": "string",
+ "x-enum-varnames": [
+ "USER_INVITATIONS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "relationships"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
}
- }
- ],
+ },
+ "required": true
+ },
"responses": {
- "204": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "User invitations as returned by the API.",
+ "properties": {
+ "data": {
+ "description": "Array of user invitations.",
+ "items": {
+ "description": "Object of a user invitation returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of a user invitation.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the user invitation.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "expires_at": {
+ "description": "Time of invitation expiration.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "invite_type": {
+ "description": "Type of invitation.",
+ "type": "string"
+ },
+ "uuid": {
+ "description": "UUID of the user invitation.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the user invitation.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships data for user invitation.",
+ "properties": {
+ "user": {
+ "description": "Relationship to user.",
+ "properties": {
+ "data": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "user"
+ ],
+ "type": "object"
+ },
+ "type": {
+ "default": "user_invitations",
+ "description": "User invitations type.",
+ "enum": [
+ "user_invitations"
+ ],
+ "example": "user_invitations",
+ "type": "string",
+ "x-enum-varnames": [
+ "USER_INVITATIONS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
"description": "OK"
},
"400": {
@@ -400733,7 +425193,7 @@
},
"description": "Bad Request"
},
- "401": {
+ "403": {
"content": {
"application/json": {
"schema": {
@@ -400759,7 +425219,203 @@
}
}
},
- "description": "Unauthorized"
+ "description": "Authentication error"
+ },
+ "429": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Too many requests"
+ }
+ },
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
+ },
+ {
+ "AuthZ": [
+ "user_access_invite"
+ ]
+ }
+ ],
+ "summary": "Send invitation emails",
+ "tags": [
+ "Users"
+ ],
+ "x-codegen-request-body-name": "body",
+ "x-given": {
+ "user_invitation": {
+ "parameters": [
+ {
+ "name": "body",
+ "value": "{\n \"data\": [\n {\n \"relationships\": {\"user\": {\"data\": {\n \"id\": \"{{ user.data.id }}\",\n \"type\": \"{{ user.data.type }}\"\n }}},\n \"type\": \"user_invitations\"\n }\n ]\n}"
+ }
+ ],
+ "source": "data[0]",
+ "step": "the \"user\" has a \"user_invitation\""
+ }
+ },
+ "x-menu-order": 8,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "user_access_invite"
+ ]
+ },
+ "x-undo": {
+ "type": "safe"
+ }
+ }
+ },
+ "/api/v2/user_invitations/{user_invitation_uuid}": {
+ "get": {
+ "description": "Returns a single user invitation by its UUID.",
+ "operationId": "GetInvitation",
+ "parameters": [
+ {
+ "description": "The UUID of the user invitation.",
+ "in": "path",
+ "name": "user_invitation_uuid",
+ "required": true,
+ "schema": {
+ "example": "00000000-0000-0000-3456-000000000000",
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "User invitation as returned by the API.",
+ "properties": {
+ "data": {
+ "description": "Object of a user invitation returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of a user invitation.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the user invitation.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "expires_at": {
+ "description": "Time of invitation expiration.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "invite_type": {
+ "description": "Type of invitation.",
+ "type": "string"
+ },
+ "uuid": {
+ "description": "UUID of the user invitation.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the user invitation.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships data for user invitation.",
+ "properties": {
+ "user": {
+ "description": "Relationship to user.",
+ "properties": {
+ "data": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "user"
+ ],
+ "type": "object"
+ },
+ "type": {
+ "default": "user_invitations",
+ "description": "User invitations type.",
+ "enum": [
+ "user_invitations"
+ ],
+ "example": "user_invitations",
+ "type": "string",
+ "x-enum-varnames": [
+ "USER_INVITATIONS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "OK"
},
"403": {
"content": {
@@ -400787,7 +425443,7 @@
}
}
},
- "description": "Forbidden"
+ "description": "Authentication error"
},
"404": {
"content": {
@@ -400815,7 +425471,7 @@
}
}
},
- "description": "Not Found"
+ "description": "Not found"
},
"429": {
"content": {
@@ -400853,57 +425509,104 @@
},
{
"AuthZ": [
- "incident_settings_write"
+ "user_access_invite"
]
}
],
- "summary": "Delete an existing incident team",
+ "summary": "Get a user invitation",
"tags": [
- "Incident Teams"
+ "Users"
],
- "x-menu-order": 2,
+ "x-codegen-request-body-name": "body",
+ "x-menu-order": 9,
"x-permission": {
"operator": "OR",
"permissions": [
- "incident_settings_write"
+ "user_access_invite"
]
},
"x-undo": {
- "type": "idempotent"
- },
- "x-unstable": "**Note**: This endpoint is deprecated. See the [Teams API endpoints](https://docs.datadoghq.com/api/latest/teams/)."
- },
+ "type": "safe"
+ }
+ }
+ },
+ "/api/v2/users": {
"get": {
- "deprecated": true,
- "description": "Get details of an incident team. If the `include[users]` query parameter is provided,\nthe included attribute will contain the users related to these incident teams.",
- "operationId": "GetIncidentTeam",
+ "description": "Get the list of all users in the organization. This list includes\nall users even if they are deactivated or unverified.",
+ "operationId": "ListUsers",
"parameters": [
{
- "description": "The ID of the incident team.",
- "in": "path",
- "name": "team_id",
- "required": true,
+ "description": "Size for a given page. The maximum allowed value is 100.",
+ "in": "query",
+ "name": "page[size]",
+ "required": false,
+ "schema": {
+ "default": 10,
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ {
+ "description": "Specific page number to return.",
+ "in": "query",
+ "name": "page[number]",
+ "required": false,
+ "schema": {
+ "default": 0,
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ {
+ "description": "User attribute to order results by. Sort order is ascending by default.\nSort order is descending if the field\nis prefixed by a negative sign, for example `sort=-name`. Options: `name`,\n`modified_at`, `user_count`.",
+ "in": "query",
+ "name": "sort",
+ "required": false,
"schema": {
+ "default": "name",
+ "example": "name",
"type": "string"
}
},
{
- "description": "Specifies which types of related objects should be included in the response.",
+ "description": "Direction of sort. Options: `asc`, `desc`.",
"in": "query",
- "name": "include",
+ "name": "sort_dir",
"required": false,
"schema": {
- "description": "Object related to an incident.",
+ "default": "desc",
+ "description": "Direction of sort.",
"enum": [
- "users",
- "attachments"
+ "asc",
+ "desc"
],
"type": "string",
"x-enum-varnames": [
- "USERS",
- "ATTACHMENTS"
+ "ASC",
+ "DESC"
]
}
+ },
+ {
+ "description": "Filter all users by the given string. Defaults to no filtering.",
+ "in": "query",
+ "name": "filter",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "Filter on status attribute.\nComma separated list, with possible values `Active`, `Pending`, and `Disabled`.\nDefaults to no filtering.",
+ "in": "query",
+ "name": "filter[status]",
+ "required": false,
+ "schema": {
+ "example": "Active",
+ "type": "string"
+ }
}
],
"responses": {
@@ -400911,357 +425614,455 @@
"content": {
"application/json": {
"schema": {
- "description": "Response with an incident team payload.",
+ "description": "Response containing information about multiple users.",
"properties": {
"data": {
- "description": "Incident Team data from a response.",
- "properties": {
- "attributes": {
- "description": "The incident team's attributes from a response.",
- "properties": {
- "created": {
- "description": "Timestamp of when the incident team was created.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified": {
- "description": "Timestamp of when the incident team was modified.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
+ "description": "Array of returned users.",
+ "items": {
+ "description": "User object returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of user object returned by the API.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the user.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "disabled": {
+ "description": "Whether the user is disabled.",
+ "type": "boolean"
+ },
+ "email": {
+ "description": "Email of the user.",
+ "type": "string"
+ },
+ "handle": {
+ "description": "Handle of the user.",
+ "type": "string"
+ },
+ "icon": {
+ "description": "URL of the user's icon.",
+ "type": "string"
+ },
+ "mfa_enabled": {
+ "description": "If user has MFA enabled.",
+ "readOnly": true,
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time that the user was last modified.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "service_account": {
+ "description": "Whether the user is a service account.",
+ "type": "boolean"
+ },
+ "status": {
+ "description": "Status of the user.",
+ "type": "string"
+ },
+ "title": {
+ "description": "Title of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "verified": {
+ "description": "Whether the user is verified.",
+ "type": "boolean"
+ }
},
- "name": {
- "description": "Name of the incident team.",
- "example": "team name",
- "type": "string"
- }
+ "type": "object"
},
- "type": "object"
- },
- "id": {
- "description": "The incident team's ID.",
- "example": "00000000-7ea3-0000-000a-000000000000",
- "type": "string"
- },
- "relationships": {
- "description": "The incident team's relationships.",
- "properties": {
- "created_by": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
+ "id": {
+ "description": "ID of the user.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships of the user object returned by the API.",
+ "properties": {
+ "org": {
+ "description": "Relationship to an organization.",
+ "properties": {
+ "data": {
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
},
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_orgs": {
+ "description": "Relationship to organizations.",
+ "properties": {
+ "data": {
+ "description": "Relationships to organization objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_users": {
+ "description": "Relationship to users.",
+ "properties": {
+ "data": {
+ "description": "Relationships to user objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
}
- }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
},
- "required": [
- "data"
- ],
- "type": "object"
- },
- "last_modified_by": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
+ "roles": {
+ "description": "Relationship to roles.",
+ "properties": {
+ "data": {
+ "description": "An array containing type and the unique identifier of a role.",
+ "items": {
+ "description": "Relationship to role object.",
+ "properties": {
+ "id": {
+ "description": "The unique identifier of the role.",
+ "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "type": "string"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
},
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
+ "type": "array"
}
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
}
- },
- "required": [
- "data"
- ],
- "type": "object"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "properties": false
}
},
- "readOnly": true,
- "type": "object"
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
},
- "type": {
- "default": "teams",
- "description": "Incident Team resource type.",
- "enum": [
- "teams"
- ],
- "example": "teams",
- "type": "string",
- "x-enum-varnames": [
- "TEAMS"
- ]
+ "type": "object",
+ "x-merge-override": {
+ "required": false
}
},
- "type": "object"
+ "type": "array"
},
"included": {
- "description": "Included objects from relationships.",
+ "description": "Array of objects related to the users.",
"items": {
- "description": "An object related to an incident team which is present in the included payload.",
+ "description": "An object related to a user.",
"oneOf": [
{
- "description": "User object returned by the API.",
+ "description": "Organization object.",
"properties": {
"attributes": {
- "description": "Attributes of user object returned by the API.",
+ "description": "Attributes of the organization.",
"properties": {
"created_at": {
- "description": "Creation time of the user.",
+ "description": "Creation time of the organization.",
"format": "date-time",
"type": "string"
},
+ "description": {
+ "description": "Description of the organization.",
+ "type": "string"
+ },
"disabled": {
- "description": "Whether the user is disabled.",
+ "description": "Whether or not the organization is disabled.",
"type": "boolean"
},
- "email": {
- "description": "Email of the user.",
+ "modified_at": {
+ "description": "Time of last organization modification.",
+ "format": "date-time",
"type": "string"
},
- "handle": {
- "description": "Handle of the user.",
+ "name": {
+ "description": "Name of the organization.",
"type": "string"
},
- "icon": {
- "description": "URL of the user's icon.",
+ "public_id": {
+ "description": "Public ID of the organization.",
"type": "string"
},
- "mfa_enabled": {
- "description": "If user has MFA enabled.",
- "readOnly": true,
- "type": "boolean"
+ "sharing": {
+ "description": "Sharing type of the organization.",
+ "type": "string"
},
- "modified_at": {
- "description": "Time that the user was last modified.",
+ "url": {
+ "description": "URL of the site that this organization exists at.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the organization.",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Permission object.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of a permission.",
+ "properties": {
+ "created": {
+ "description": "Creation time of the permission.",
"format": "date-time",
"type": "string"
},
- "name": {
- "description": "Name of the user.",
- "nullable": true,
+ "description": {
+ "description": "Description of the permission.",
"type": "string"
},
- "service_account": {
- "description": "Whether the user is a service account.",
- "type": "boolean"
+ "display_name": {
+ "description": "Displayed name for the permission.",
+ "type": "string"
},
- "status": {
- "description": "Status of the user.",
+ "display_type": {
+ "description": "Display type.",
"type": "string"
},
- "title": {
- "description": "Title of the user.",
- "nullable": true,
+ "group_name": {
+ "description": "Name of the permission group.",
"type": "string"
},
- "verified": {
- "description": "Whether the user is verified.",
+ "name": {
+ "description": "Name of the permission.",
+ "type": "string"
+ },
+ "restricted": {
+ "description": "Whether or not the permission is restricted.",
"type": "boolean"
}
},
"type": "object"
},
"id": {
- "description": "ID of the user.",
+ "description": "ID of the permission.",
"type": "string"
},
- "relationships": {
- "description": "Relationships of the user object returned by the API.",
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Role object returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of the role.",
"properties": {
- "org": {
- "description": "Relationship to an organization.",
- "properties": {
- "data": {
- "description": "Relationship to organization object.",
- "properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
- "type": "string"
- },
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
+ "created_at": {
+ "description": "Creation time of the role.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
},
- "other_orgs": {
- "description": "Relationship to organizations.",
- "properties": {
- "data": {
- "description": "Relationships to organization objects.",
- "example": [],
- "items": {
- "description": "Relationship to organization object.",
- "properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
- "type": "string"
- },
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- },
- "type": "array"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
+ "modified_at": {
+ "description": "Time of last role modification.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
},
- "other_users": {
- "description": "Relationship to users.",
- "properties": {
- "data": {
- "description": "Relationships to user objects.",
- "example": [],
- "items": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
+ "name": {
+ "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
+ "type": "string"
},
- "roles": {
- "description": "Relationship to roles.",
+ "user_count": {
+ "description": "Number of users with that role.",
+ "format": "int64",
+ "readOnly": true,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The unique identifier of the role.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships of the role object returned by the API.",
+ "properties": {
+ "permissions": {
+ "description": "Relationship to multiple permissions objects.",
"properties": {
"data": {
- "description": "An array containing type and the unique identifier of a role.",
+ "description": "Relationships to permission objects.",
"items": {
- "description": "Relationship to role object.",
+ "description": "Relationship to permission object.",
"properties": {
"id": {
- "description": "The unique identifier of the role.",
- "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "description": "ID of the permission.",
"type": "string"
},
"type": {
- "default": "roles",
- "description": "Roles type.",
+ "default": "permissions",
+ "description": "Permissions resource type.",
"enum": [
- "roles"
+ "permissions"
],
- "example": "roles",
+ "example": "permissions",
"type": "string",
"x-enum-varnames": [
- "ROLES"
+ "PERMISSIONS"
]
}
},
@@ -401279,24 +426080,24 @@
}
}
},
- "type": "object",
- "x-merge-override": {
- "properties": false
- }
+ "type": "object"
},
"type": {
- "default": "users",
- "description": "Users resource type.",
+ "default": "roles",
+ "description": "Roles type.",
"enum": [
- "users"
+ "roles"
],
- "example": "users",
+ "example": "roles",
"type": "string",
"x-enum-varnames": [
- "USERS"
+ "ROLES"
]
}
},
+ "required": [
+ "type"
+ ],
"type": "object",
"x-merge-override": {
"required": false
@@ -401304,13 +426105,35 @@
}
]
},
- "readOnly": true,
"type": "array"
+ },
+ "meta": {
+ "description": "Object describing meta attributes of response.",
+ "properties": {
+ "page": {
+ "description": "Pagination object.",
+ "properties": {
+ "total_count": {
+ "description": "Total count.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "total_filtered_count": {
+ "description": "Total count of elements matched by the filter.",
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "properties": false
+ }
}
},
- "required": [
- "data"
- ],
+ "readOnly": true,
"type": "object"
}
}
@@ -401345,34 +426168,6 @@
},
"description": "Bad Request"
},
- "401": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Unauthorized"
- },
"403": {
"content": {
"application/json": {
@@ -401399,35 +426194,7 @@
}
}
},
- "description": "Forbidden"
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Not Found"
+ "description": "Authentication error"
},
"429": {
"content": {
@@ -401465,171 +426232,131 @@
},
{
"AuthZ": [
- "incident_read"
+ "user_access_read"
]
}
],
- "summary": "Get details of an incident team",
+ "summary": "List all users",
"tags": [
- "Incident Teams"
+ "Users"
],
+ "x-codegen-request-body-name": "body",
"x-menu-order": 1,
+ "x-pagination": {
+ "limitParam": "page[size]",
+ "pageParam": "page[number]",
+ "resultsPath": "data"
+ },
"x-permission": {
"operator": "OR",
"permissions": [
- "incident_read"
+ "user_access_read"
]
},
"x-undo": {
"type": "safe"
- },
- "x-unstable": "**Note**: This endpoint is deprecated. See the [Teams API endpoints](https://docs.datadoghq.com/api/latest/teams/)."
+ }
},
- "patch": {
- "deprecated": true,
- "description": "Updates an existing incident team. Only provide the attributes which should be updated as this request is a partial update.",
- "operationId": "UpdateIncidentTeam",
- "parameters": [
- {
- "description": "The ID of the incident team.",
- "in": "path",
- "name": "team_id",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
+ "post": {
+ "description": "Create a user for your organization.",
+ "operationId": "CreateUser",
"requestBody": {
"content": {
"application/json": {
"schema": {
- "description": "Update request with an incident team payload.",
+ "description": "Create a user.",
"properties": {
"data": {
- "description": "Incident Team data for an update request.",
+ "description": "Object to create a user.",
"properties": {
"attributes": {
- "description": "The incident team's attributes for an update request.",
+ "description": "Attributes of the created user.",
"properties": {
+ "email": {
+ "description": "The email of the user.",
+ "example": "jane.doe@example.com",
+ "type": "string"
+ },
"name": {
- "description": "Name of the incident team.",
- "example": "team name",
+ "description": "The name of the user.",
+ "type": "string"
+ },
+ "title": {
+ "description": "The title of the user.",
"type": "string"
}
},
"required": [
- "name"
+ "email"
],
"type": "object"
},
- "id": {
- "description": "The incident team's ID.",
- "example": "00000000-7ea3-0000-0001-000000000000",
- "type": "string"
- },
"relationships": {
- "description": "The incident team's relationships.",
+ "description": "Relationships of the user object.",
"properties": {
- "created_by": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "last_modified_by": {
- "description": "Relationship to user.",
+ "roles": {
+ "description": "Relationship to roles.",
"properties": {
"data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
+ "description": "An array containing type and the unique identifier of a role.",
+ "items": {
+ "description": "Relationship to role object.",
+ "properties": {
+ "id": {
+ "description": "The unique identifier of the role.",
+ "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "type": "string"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
},
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
+ "type": "object",
+ "x-merge-override": {
+ "required": false
}
},
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "array"
}
},
- "required": [
- "data"
- ],
- "type": "object"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
- "readOnly": true,
"type": "object"
},
"type": {
- "default": "teams",
- "description": "Incident Team resource type.",
+ "default": "users",
+ "description": "Users resource type.",
"enum": [
- "teams"
+ "users"
],
- "example": "teams",
+ "example": "users",
"type": "string",
"x-enum-varnames": [
- "TEAMS"
+ "USERS"
]
}
},
"required": [
+ "attributes",
"type"
],
- "type": "object"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
"required": [
@@ -401639,71 +426366,105 @@
}
}
},
- "description": "Incident Team Payload.",
"required": true
},
"responses": {
- "200": {
+ "201": {
"content": {
"application/json": {
"schema": {
- "description": "Response with an incident team payload.",
+ "description": "Response containing information about a single user.",
"properties": {
"data": {
- "description": "Incident Team data from a response.",
+ "description": "User object returned by the API.",
"properties": {
"attributes": {
- "description": "The incident team's attributes from a response.",
+ "description": "Attributes of user object returned by the API.",
"properties": {
- "created": {
- "description": "Timestamp of when the incident team was created.",
+ "created_at": {
+ "description": "Creation time of the user.",
"format": "date-time",
- "readOnly": true,
"type": "string"
},
- "modified": {
- "description": "Timestamp of when the incident team was modified.",
- "format": "date-time",
+ "disabled": {
+ "description": "Whether the user is disabled.",
+ "type": "boolean"
+ },
+ "email": {
+ "description": "Email of the user.",
+ "type": "string"
+ },
+ "handle": {
+ "description": "Handle of the user.",
+ "type": "string"
+ },
+ "icon": {
+ "description": "URL of the user's icon.",
+ "type": "string"
+ },
+ "mfa_enabled": {
+ "description": "If user has MFA enabled.",
"readOnly": true,
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time that the user was last modified.",
+ "format": "date-time",
"type": "string"
},
"name": {
- "description": "Name of the incident team.",
- "example": "team name",
+ "description": "Name of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "service_account": {
+ "description": "Whether the user is a service account.",
+ "type": "boolean"
+ },
+ "status": {
+ "description": "Status of the user.",
+ "type": "string"
+ },
+ "title": {
+ "description": "Title of the user.",
+ "nullable": true,
"type": "string"
+ },
+ "verified": {
+ "description": "Whether the user is verified.",
+ "type": "boolean"
}
},
"type": "object"
},
"id": {
- "description": "The incident team's ID.",
- "example": "00000000-7ea3-0000-000a-000000000000",
+ "description": "ID of the user.",
"type": "string"
},
"relationships": {
- "description": "The incident team's relationships.",
+ "description": "Relationships of the user object returned by the API.",
"properties": {
- "created_by": {
- "description": "Relationship to user.",
+ "org": {
+ "description": "Relationship to an organization.",
"properties": {
"data": {
- "description": "Relationship to user object.",
+ "description": "Relationship to organization object.",
"properties": {
"id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
"type": "string"
},
"type": {
- "default": "users",
- "description": "Users resource type.",
+ "default": "orgs",
+ "description": "Organizations resource type.",
"enum": [
- "users"
+ "orgs"
],
- "example": "users",
+ "example": "orgs",
"type": "string",
"x-enum-varnames": [
- "USERS"
+ "ORGS"
]
}
},
@@ -401711,10 +426472,7 @@
"id",
"type"
],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "object"
}
},
"required": [
@@ -401722,282 +426480,344 @@
],
"type": "object"
},
- "last_modified_by": {
- "description": "Relationship to user.",
+ "other_orgs": {
+ "description": "Relationship to organizations.",
"properties": {
"data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
+ "description": "Relationships to organization objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
},
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_users": {
+ "description": "Relationship to users.",
+ "properties": {
+ "data": {
+ "description": "Relationships to user objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
}
},
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "array"
}
},
"required": [
"data"
],
"type": "object"
+ },
+ "roles": {
+ "description": "Relationship to roles.",
+ "properties": {
+ "data": {
+ "description": "An array containing type and the unique identifier of a role.",
+ "items": {
+ "description": "Relationship to role object.",
+ "properties": {
+ "id": {
+ "description": "The unique identifier of the role.",
+ "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "type": "string"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
- "readOnly": true,
- "type": "object"
+ "type": "object",
+ "x-merge-override": {
+ "properties": false
+ }
},
"type": {
- "default": "teams",
- "description": "Incident Team resource type.",
+ "default": "users",
+ "description": "Users resource type.",
"enum": [
- "teams"
+ "users"
],
- "example": "teams",
+ "example": "users",
"type": "string",
"x-enum-varnames": [
- "TEAMS"
+ "USERS"
]
}
},
- "type": "object"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
},
"included": {
- "description": "Included objects from relationships.",
+ "description": "Array of objects related to the user.",
"items": {
- "description": "An object related to an incident team which is present in the included payload.",
+ "description": "An object related to a user.",
"oneOf": [
{
- "description": "User object returned by the API.",
+ "description": "Organization object.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of the organization.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the organization.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of the organization.",
+ "type": "string"
+ },
+ "disabled": {
+ "description": "Whether or not the organization is disabled.",
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time of last organization modification.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the organization.",
+ "type": "string"
+ },
+ "public_id": {
+ "description": "Public ID of the organization.",
+ "type": "string"
+ },
+ "sharing": {
+ "description": "Sharing type of the organization.",
+ "type": "string"
+ },
+ "url": {
+ "description": "URL of the site that this organization exists at.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the organization.",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Permission object.",
"properties": {
"attributes": {
- "description": "Attributes of user object returned by the API.",
+ "description": "Attributes of a permission.",
"properties": {
- "created_at": {
- "description": "Creation time of the user.",
+ "created": {
+ "description": "Creation time of the permission.",
"format": "date-time",
"type": "string"
},
- "disabled": {
- "description": "Whether the user is disabled.",
- "type": "boolean"
- },
- "email": {
- "description": "Email of the user.",
+ "description": {
+ "description": "Description of the permission.",
"type": "string"
},
- "handle": {
- "description": "Handle of the user.",
+ "display_name": {
+ "description": "Displayed name for the permission.",
"type": "string"
},
- "icon": {
- "description": "URL of the user's icon.",
+ "display_type": {
+ "description": "Display type.",
"type": "string"
},
- "mfa_enabled": {
- "description": "If user has MFA enabled.",
- "readOnly": true,
- "type": "boolean"
- },
- "modified_at": {
- "description": "Time that the user was last modified.",
- "format": "date-time",
+ "group_name": {
+ "description": "Name of the permission group.",
"type": "string"
},
"name": {
- "description": "Name of the user.",
- "nullable": true,
+ "description": "Name of the permission.",
"type": "string"
},
- "service_account": {
- "description": "Whether the user is a service account.",
+ "restricted": {
+ "description": "Whether or not the permission is restricted.",
"type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the permission.",
+ "type": "string"
+ },
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Role object returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of the role.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the role.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
},
- "status": {
- "description": "Status of the user.",
+ "modified_at": {
+ "description": "Time of last role modification.",
+ "format": "date-time",
+ "readOnly": true,
"type": "string"
},
- "title": {
- "description": "Title of the user.",
- "nullable": true,
+ "name": {
+ "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
"type": "string"
},
- "verified": {
- "description": "Whether the user is verified.",
- "type": "boolean"
+ "user_count": {
+ "description": "Number of users with that role.",
+ "format": "int64",
+ "readOnly": true,
+ "type": "integer"
}
},
"type": "object"
},
"id": {
- "description": "ID of the user.",
+ "description": "The unique identifier of the role.",
"type": "string"
},
"relationships": {
- "description": "Relationships of the user object returned by the API.",
+ "description": "Relationships of the role object returned by the API.",
"properties": {
- "org": {
- "description": "Relationship to an organization.",
- "properties": {
- "data": {
- "description": "Relationship to organization object.",
- "properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
- "type": "string"
- },
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "other_orgs": {
- "description": "Relationship to organizations.",
- "properties": {
- "data": {
- "description": "Relationships to organization objects.",
- "example": [],
- "items": {
- "description": "Relationship to organization object.",
- "properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
- "type": "string"
- },
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- },
- "type": "array"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "other_users": {
- "description": "Relationship to users.",
- "properties": {
- "data": {
- "description": "Relationships to user objects.",
- "example": [],
- "items": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "roles": {
- "description": "Relationship to roles.",
+ "permissions": {
+ "description": "Relationship to multiple permissions objects.",
"properties": {
"data": {
- "description": "An array containing type and the unique identifier of a role.",
+ "description": "Relationships to permission objects.",
"items": {
- "description": "Relationship to role object.",
+ "description": "Relationship to permission object.",
"properties": {
"id": {
- "description": "The unique identifier of the role.",
- "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "description": "ID of the permission.",
"type": "string"
},
"type": {
- "default": "roles",
- "description": "Roles type.",
+ "default": "permissions",
+ "description": "Permissions resource type.",
"enum": [
- "roles"
+ "permissions"
],
- "example": "roles",
+ "example": "permissions",
"type": "string",
"x-enum-varnames": [
- "ROLES"
+ "PERMISSIONS"
]
}
},
@@ -402015,24 +426835,24 @@
}
}
},
- "type": "object",
- "x-merge-override": {
- "properties": false
- }
+ "type": "object"
},
"type": {
- "default": "users",
- "description": "Users resource type.",
+ "default": "roles",
+ "description": "Roles type.",
"enum": [
- "users"
+ "roles"
],
- "example": "users",
+ "example": "roles",
"type": "string",
"x-enum-varnames": [
- "USERS"
+ "ROLES"
]
}
},
+ "required": [
+ "type"
+ ],
"type": "object",
"x-merge-override": {
"required": false
@@ -402040,13 +426860,9 @@
}
]
},
- "readOnly": true,
"type": "array"
}
},
- "required": [
- "data"
- ],
"type": "object"
}
}
@@ -402081,34 +426897,6 @@
},
"description": "Bad Request"
},
- "401": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Unauthorized"
- },
"403": {
"content": {
"application/json": {
@@ -402135,35 +426923,7 @@
}
}
},
- "description": "Forbidden"
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Not Found"
+ "description": "Authentication error"
},
"429": {
"content": {
@@ -402201,156 +426961,68 @@
},
{
"AuthZ": [
- "incident_settings_write"
+ "user_access_invite"
]
}
],
- "summary": "Update an existing incident team",
+ "summary": "Create a user",
"tags": [
- "Incident Teams"
+ "Users"
],
"x-codegen-request-body-name": "body",
- "x-menu-order": 3,
+ "x-given": {
+ "user": {
+ "parameters": [
+ {
+ "name": "body",
+ "value": "{\n \"data\": {\n \"attributes\": {\n \"email\": \"{{ unique }}@datadoghq.com\",\n \"title\": \"user title\"\n },\n \"type\": \"users\"\n }\n}"
+ }
+ ],
+ "step": "there is a valid \"user\" in the system"
+ }
+ },
+ "x-menu-order": 2,
"x-permission": {
"operator": "OR",
"permissions": [
- "incident_settings_write"
+ "user_access_invite"
]
},
"x-undo": {
- "type": "idempotent"
- },
- "x-unstable": "**Note**: This endpoint is deprecated. See the [Teams API endpoints](https://docs.datadoghq.com/api/latest/teams/)."
+ "operationId": "DisableUser",
+ "parameters": [
+ {
+ "name": "user_id",
+ "source": "data.id"
+ }
+ ],
+ "type": "unsafe"
+ }
}
},
- "/api/v2/usage/application_security": {
- "get": {
- "deprecated": true,
- "description": "Get hourly usage for application security .\n**Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family)",
- "operationId": "GetUsageApplicationSecurityMonitoring",
+ "/api/v2/users/{user_id}": {
+ "delete": {
+ "description": "Disable a user. Can only be used with an application key belonging\nto an administrator user.",
+ "operationId": "DisableUser",
"parameters": [
{
- "description": "Datetime in ISO-8601 format, UTC, precise to hour: `[YYYY-MM-DDThh]` for usage beginning at this hour.",
- "in": "query",
- "name": "start_hr",
+ "description": "The ID of the user.",
+ "in": "path",
+ "name": "user_id",
"required": true,
"schema": {
- "format": "date-time",
- "type": "string"
- }
- },
- {
- "description": "Datetime in ISO-8601 format, UTC, precise to hour: `[YYYY-MM-DDThh]` for usage ending\n**before** this hour.",
- "in": "query",
- "name": "end_hr",
- "required": false,
- "schema": {
- "format": "date-time",
+ "example": "00000000-0000-9999-0000-000000000000",
"type": "string"
}
}
],
"responses": {
- "200": {
- "content": {
- "application/json;datetime-format=rfc3339": {
- "schema": {
- "description": "Application Security Monitoring usage response.",
- "properties": {
- "data": {
- "description": "Response containing Application Security Monitoring usage.",
- "items": {
- "description": "Usage data.",
- "properties": {
- "attributes": {
- "description": "Usage attributes data.",
- "properties": {
- "org_name": {
- "description": "The organization name.",
- "type": "string"
- },
- "product_family": {
- "description": "The product for which usage is being reported.",
- "type": "string"
- },
- "public_id": {
- "description": "The organization public ID.",
- "type": "string"
- },
- "region": {
- "description": "The region of the Datadog instance that the organization belongs to.",
- "type": "string"
- },
- "timeseries": {
- "description": "List of usage data reported for each requested hour.",
- "items": {
- "description": "Usage timeseries data.",
- "properties": {
- "timestamp": {
- "description": "Datetime in ISO-8601 format, UTC. The hour for the usage.",
- "format": "date-time",
- "type": "string"
- },
- "value": {
- "description": "Contains the number measured for the given usage_type during the hour.",
- "format": "int64",
- "nullable": true,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "usage_type": {
- "description": "Usage type that is being measured.",
- "enum": [
- "app_sec_host_count",
- "observability_pipelines_bytes_processed",
- "lambda_traced_invocations_count"
- ],
- "example": "observability_pipelines_bytes_processed",
- "type": "string",
- "x-enum-varnames": [
- "APP_SEC_HOST_COUNT",
- "OBSERVABILITY_PIPELINES_BYTES_PROCESSSED",
- "LAMBDA_TRACED_INVOCATIONS_COUNT"
- ]
- }
- },
- "type": "object"
- },
- "id": {
- "description": "Unique ID of the response.",
- "type": "string"
- },
- "type": {
- "default": "usage_timeseries",
- "description": "Type of usage data.",
- "enum": [
- "usage_timeseries"
- ],
- "example": "usage_timeseries",
- "type": "string",
- "x-enum-varnames": [
- "USAGE_TIMESERIES"
- ]
- }
- },
- "type": "object"
- },
- "type": "array"
- }
- },
- "type": "object"
- }
- }
- },
+ "204": {
"description": "OK"
},
- "400": {
+ "403": {
"content": {
- "application/json;datetime-format=rfc3339": {
+ "application/json": {
"schema": {
"description": "API error response.",
"properties": {
@@ -402374,11 +427046,11 @@
}
}
},
- "description": "Bad Request"
+ "description": "Authentication error"
},
- "403": {
+ "404": {
"content": {
- "application/json;datetime-format=rfc3339": {
+ "application/json": {
"schema": {
"description": "API error response.",
"properties": {
@@ -402402,11 +427074,11 @@
}
}
},
- "description": "Forbidden - User is not authorized"
+ "description": "Not found"
},
"429": {
"content": {
- "application/json;datetime-format=rfc3339": {
+ "application/json": {
"schema": {
"description": "API error response.",
"properties": {
@@ -402440,48 +427112,38 @@
},
{
"AuthZ": [
- "usage_read"
+ "user_access_manage"
]
}
],
- "summary": "Get hourly usage for application security",
+ "summary": "Disable a user",
"tags": [
- "Usage Metering"
+ "Users"
],
- "x-menu-order": 38,
+ "x-codegen-request-body-name": "body",
+ "x-menu-order": 5,
"x-permission": {
"operator": "OR",
"permissions": [
- "usage_read"
+ "user_access_manage",
+ "service_account_write"
]
},
"x-undo": {
- "type": "safe"
+ "type": "idempotent"
}
- }
- },
- "/api/v2/usage/billing_dimension_mapping": {
+ },
"get": {
- "description": "Get a mapping of billing dimensions to the corresponding keys for the supported usage metering public API endpoints.\nMapping data is updated on a monthly cadence.\n\nThis endpoint is only accessible to [parent-level organizations](https://docs.datadoghq.com/account_management/multi_organization/).",
- "operationId": "GetBillingDimensionMapping",
+ "description": "Get a user in the organization specified by the user’s `user_id`.",
+ "operationId": "GetUser",
"parameters": [
{
- "description": "Datetime in ISO-8601 format, UTC, and for mappings beginning this month. Defaults to the current month.",
- "in": "query",
- "name": "filter[month]",
- "required": false,
- "schema": {
- "format": "date-time",
- "type": "string"
- }
- },
- {
- "description": "String to specify whether to retrieve active billing dimension mappings for the contract or for all available mappings. Allowed views have the string `active` or `all`. Defaults to `active`.",
- "in": "query",
- "name": "filter[view]",
- "required": false,
+ "description": "The ID of the user.",
+ "in": "path",
+ "name": "user_id",
+ "required": true,
"schema": {
- "default": "active",
+ "example": "00000000-0000-9999-0000-000000000000",
"type": "string"
}
}
@@ -402489,87 +427151,494 @@
"responses": {
"200": {
"content": {
- "application/json;datetime-format=rfc3339": {
+ "application/json": {
"schema": {
- "description": "Billing dimensions mapping response.",
+ "description": "Response containing information about a single user.",
"properties": {
"data": {
- "description": "Billing dimensions mapping data.",
- "items": {
- "description": "The mapping data for each billing dimension.",
- "properties": {
- "attributes": {
- "description": "Mapping of billing dimensions to endpoint keys.",
- "properties": {
- "endpoints": {
- "description": "List of supported endpoints with their keys mapped to the billing_dimension.",
- "items": {
- "description": "An endpoint's keys mapped to the billing_dimension.",
+ "description": "User object returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of user object returned by the API.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the user.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "disabled": {
+ "description": "Whether the user is disabled.",
+ "type": "boolean"
+ },
+ "email": {
+ "description": "Email of the user.",
+ "type": "string"
+ },
+ "handle": {
+ "description": "Handle of the user.",
+ "type": "string"
+ },
+ "icon": {
+ "description": "URL of the user's icon.",
+ "type": "string"
+ },
+ "mfa_enabled": {
+ "description": "If user has MFA enabled.",
+ "readOnly": true,
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time that the user was last modified.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "service_account": {
+ "description": "Whether the user is a service account.",
+ "type": "boolean"
+ },
+ "status": {
+ "description": "Status of the user.",
+ "type": "string"
+ },
+ "title": {
+ "description": "Title of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "verified": {
+ "description": "Whether the user is verified.",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the user.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships of the user object returned by the API.",
+ "properties": {
+ "org": {
+ "description": "Relationship to an organization.",
+ "properties": {
+ "data": {
+ "description": "Relationship to organization object.",
"properties": {
"id": {
- "description": "The URL for the endpoint.",
- "example": "api/v1/usage/billable-summary",
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
"type": "string"
},
- "keys": {
- "description": "The billing dimension.",
- "example": [
- "apm_host_top99p",
- "apm_host_sum"
- ],
- "items": {
- "example": "apm_host_top99p",
- "type": "string"
- },
- "type": "array"
- },
- "status": {
- "description": "Denotes whether mapping keys were available for this endpoint.",
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
"enum": [
- "OK",
- "NOT_FOUND"
+ "orgs"
],
+ "example": "orgs",
"type": "string",
"x-enum-varnames": [
- "OK",
- "NOT_FOUND"
+ "ORGS"
]
}
- },
- "type": "object"
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_orgs": {
+ "description": "Relationship to organizations.",
+ "properties": {
+ "data": {
+ "description": "Relationships to organization objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_users": {
+ "description": "Relationship to users.",
+ "properties": {
+ "data": {
+ "description": "Relationships to user objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "roles": {
+ "description": "Relationship to roles.",
+ "properties": {
+ "data": {
+ "description": "An array containing type and the unique identifier of a role.",
+ "items": {
+ "description": "Relationship to role object.",
+ "properties": {
+ "id": {
+ "description": "The unique identifier of the role.",
+ "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "type": "string"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "properties": false
+ }
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "included": {
+ "description": "Array of objects related to the user.",
+ "items": {
+ "description": "An object related to a user.",
+ "oneOf": [
+ {
+ "description": "Organization object.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of the organization.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the organization.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of the organization.",
+ "type": "string"
+ },
+ "disabled": {
+ "description": "Whether or not the organization is disabled.",
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time of last organization modification.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the organization.",
+ "type": "string"
+ },
+ "public_id": {
+ "description": "Public ID of the organization.",
+ "type": "string"
+ },
+ "sharing": {
+ "description": "Sharing type of the organization.",
+ "type": "string"
+ },
+ "url": {
+ "description": "URL of the site that this organization exists at.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the organization.",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Permission object.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of a permission.",
+ "properties": {
+ "created": {
+ "description": "Creation time of the permission.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of the permission.",
+ "type": "string"
+ },
+ "display_name": {
+ "description": "Displayed name for the permission.",
+ "type": "string"
+ },
+ "display_type": {
+ "description": "Display type.",
+ "type": "string"
+ },
+ "group_name": {
+ "description": "Name of the permission group.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the permission.",
+ "type": "string"
+ },
+ "restricted": {
+ "description": "Whether or not the permission is restricted.",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the permission.",
+ "type": "string"
+ },
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Role object returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of the role.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the role.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "modified_at": {
+ "description": "Time of last role modification.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
+ "type": "string"
+ },
+ "user_count": {
+ "description": "Number of users with that role.",
+ "format": "int64",
+ "readOnly": true,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The unique identifier of the role.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships of the role object returned by the API.",
+ "properties": {
+ "permissions": {
+ "description": "Relationship to multiple permissions objects.",
+ "properties": {
+ "data": {
+ "description": "Relationships to permission objects.",
+ "items": {
+ "description": "Relationship to permission object.",
+ "properties": {
+ "id": {
+ "description": "ID of the permission.",
+ "type": "string"
+ },
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
},
- "type": "array"
- },
- "in_app_label": {
- "description": "Label used for the billing dimension in the Plan & Usage charts.",
- "example": "APM Hosts",
- "type": "string"
+ "type": "object"
},
- "timestamp": {
- "description": "Month in ISO-8601 format, UTC, and precise to the second: `[YYYY-MM-DDThh:mm:ss]`.",
- "format": "date-time",
- "type": "string"
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
}
},
- "type": "object"
- },
- "id": {
- "description": "ID of the billing dimension.",
- "type": "string"
- },
- "type": {
- "default": "billing_dimensions",
- "description": "Type of active billing dimensions data.",
- "enum": [
- "billing_dimensions"
+ "required": [
+ "type"
],
- "type": "string",
- "x-enum-varnames": [
- "BILLING_DIMENSIONS"
- ]
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
- },
- "type": "object"
+ ]
},
"type": "array"
}
@@ -402580,9 +427649,9 @@
},
"description": "OK"
},
- "400": {
+ "403": {
"content": {
- "application/json;datetime-format=rfc3339": {
+ "application/json": {
"schema": {
"description": "API error response.",
"properties": {
@@ -402606,11 +427675,11 @@
}
}
},
- "description": "Bad Request"
+ "description": "Authentication error"
},
- "403": {
+ "404": {
"content": {
- "application/json;datetime-format=rfc3339": {
+ "application/json": {
"schema": {
"description": "API error response.",
"properties": {
@@ -402634,11 +427703,11 @@
}
}
},
- "description": "Forbidden - User is not authorized"
+ "description": "Not found"
},
"429": {
"content": {
- "application/json;datetime-format=rfc3339": {
+ "application/json": {
"schema": {
"description": "API error response.",
"properties": {
@@ -402672,680 +427741,597 @@
},
{
"AuthZ": [
- "usage_read"
+ "user_access_read"
]
}
],
- "summary": "Get billing dimension mapping for usage endpoints",
+ "summary": "Get user details",
"tags": [
- "Usage Metering"
+ "Users"
],
- "x-menu-order": 1,
+ "x-codegen-request-body-name": "body",
+ "x-menu-order": 3,
"x-permission": {
"operator": "OR",
"permissions": [
- "usage_read"
+ "user_access_read"
]
},
"x-undo": {
"type": "safe"
}
- }
- },
- "/api/v2/usage/cost_by_org": {
- "get": {
- "deprecated": true,
- "description": "Get cost across multi-org account.\nCost by org data for a given month becomes available no later than the 16th of the following month.\n**Note:** This endpoint has been deprecated. Please use the new endpoint\n[`/historical_cost`](https://docs.datadoghq.com/api/latest/usage-metering/#get-historical-cost-across-your-account)\ninstead.\n\nThis endpoint is only accessible for [parent-level organizations](https://docs.datadoghq.com/account_management/multi_organization/).",
- "operationId": "GetCostByOrg",
+ },
+ "patch": {
+ "description": "Edit a user. Can only be used with an application key belonging\nto an administrator user.",
+ "operationId": "UpdateUser",
"parameters": [
{
- "description": "Datetime in ISO-8601 format, UTC, precise to month: `[YYYY-MM]` for cost beginning this month.",
- "in": "query",
- "name": "start_month",
+ "description": "The ID of the user.",
+ "in": "path",
+ "name": "user_id",
"required": true,
"schema": {
- "format": "date-time",
- "type": "string"
- }
- },
- {
- "description": "Datetime in ISO-8601 format, UTC, precise to month: `[YYYY-MM]` for cost ending this month.",
- "in": "query",
- "name": "end_month",
- "required": false,
- "schema": {
- "format": "date-time",
+ "example": "00000000-0000-9999-0000-000000000000",
"type": "string"
}
}
],
- "responses": {
- "200": {
- "content": {
- "application/json;datetime-format=rfc3339": {
- "schema": {
- "description": "Chargeback Summary response.",
- "properties": {
- "data": {
- "description": "Response containing Chargeback Summary.",
- "items": {
- "description": "Cost data.",
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Update a user.",
+ "properties": {
+ "data": {
+ "description": "Object to update a user.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of the edited user.",
"properties": {
- "attributes": {
- "description": "Cost attributes data.",
- "properties": {
- "account_name": {
- "description": "The account name.",
- "type": "string"
- },
- "account_public_id": {
- "description": "The account public ID.",
- "type": "string"
- },
- "charges": {
- "description": "List of charges data reported for the requested month.",
- "items": {
- "description": "Charges breakdown.",
- "properties": {
- "charge_type": {
- "description": "The type of charge for a particular product.",
- "example": "on_demand",
- "type": "string"
- },
- "cost": {
- "description": "The cost for a particular product and charge type during a given month.",
- "format": "double",
- "type": "number"
- },
- "product_name": {
- "description": "The product for which cost is being reported.",
- "example": "infra_host",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "date": {
- "description": "The month requested.",
- "format": "date-time",
- "type": "string"
- },
- "org_name": {
- "description": "The organization name.",
- "type": "string"
- },
- "public_id": {
- "description": "The organization public ID.",
- "type": "string"
- },
- "region": {
- "description": "The region of the Datadog instance that the organization belongs to.",
- "type": "string"
- },
- "total_cost": {
- "description": "The total cost of products for the month.",
- "format": "double",
- "type": "number"
- }
- },
- "type": "object"
+ "disabled": {
+ "description": "If the user is enabled or disabled.",
+ "type": "boolean"
},
- "id": {
- "description": "Unique ID of the response.",
+ "email": {
+ "description": "The email of the user.",
"type": "string"
},
- "type": {
- "default": "cost_by_org",
- "description": "Type of cost data.",
- "enum": [
- "cost_by_org"
- ],
- "example": "cost_by_org",
- "type": "string",
- "x-enum-varnames": [
- "COST_BY_ORG"
- ]
+ "name": {
+ "description": "The name of the user.",
+ "type": "string"
}
},
"type": "object"
},
- "type": "array"
- }
- },
- "type": "object"
- }
- }
- },
- "description": "OK"
- },
- "400": {
- "content": {
- "application/json;datetime-format=rfc3339": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Bad Request"
- },
- "403": {
- "content": {
- "application/json;datetime-format=rfc3339": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Forbidden - User is not authorized"
- },
- "429": {
- "content": {
- "application/json;datetime-format=rfc3339": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
+ "id": {
+ "description": "ID of the user.",
+ "example": "00000000-0000-feed-0000-000000000000",
"type": "string"
},
- "type": "array"
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "attributes",
+ "type",
+ "id"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
}
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
}
- },
- "description": "Too many requests"
- }
- },
- "security": [
- {
- "apiKeyAuth": [],
- "appKeyAuth": []
- },
- {
- "AuthZ": [
- "usage_read"
- ]
- }
- ],
- "summary": "Get cost across multi-org account",
- "tags": [
- "Usage Metering"
- ],
- "x-menu-order": 45,
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "usage_read"
- ]
- },
- "x-undo": {
- "type": "safe"
- }
- }
- },
- "/api/v2/usage/estimated_cost": {
- "get": {
- "description": "Get estimated cost across multi-org and single root-org accounts.\nEstimated cost data is only available for the current month and previous month\nand is delayed by up to 72 hours from when it was incurred.\nTo access historical costs prior to this, use the `/historical_cost` endpoint.\n\nThis endpoint is only accessible for [parent-level organizations](https://docs.datadoghq.com/account_management/multi_organization/).",
- "operationId": "GetEstimatedCostByOrg",
- "parameters": [
- {
- "description": "String to specify whether cost is broken down at a parent-org level or at the sub-org level. Available views are `summary` and `sub-org`. Defaults to `summary`.",
- "in": "query",
- "name": "view",
- "required": false,
- "schema": {
- "type": "string"
- }
- },
- {
- "description": "Datetime in ISO-8601 format, UTC, precise to month: `[YYYY-MM]` for cost beginning this month. **Either start_month or start_date should be specified, but not both.** (start_month cannot go beyond two months in the past). Provide an `end_month` to view month-over-month cost.",
- "in": "query",
- "name": "start_month",
- "required": false,
- "schema": {
- "format": "date-time",
- "type": "string"
- }
- },
- {
- "description": "Datetime in ISO-8601 format, UTC, precise to month: `[YYYY-MM]` for cost ending this month.",
- "in": "query",
- "name": "end_month",
- "required": false,
- "schema": {
- "format": "date-time",
- "type": "string"
- }
- },
- {
- "description": "Datetime in ISO-8601 format, UTC, precise to day: `[YYYY-MM-DD]` for cost beginning this day. **Either start_month or start_date should be specified, but not both.** (start_date cannot go beyond two months in the past). Provide an `end_date` to view day-over-day cumulative cost.",
- "in": "query",
- "name": "start_date",
- "required": false,
- "schema": {
- "format": "date-time",
- "type": "string"
- }
- },
- {
- "description": "Datetime in ISO-8601 format, UTC, precise to day: `[YYYY-MM-DD]` for cost ending this day.",
- "in": "query",
- "name": "end_date",
- "required": false,
- "schema": {
- "format": "date-time",
- "type": "string"
}
},
- {
- "description": "Boolean to specify whether to include accounts connected to the current account as partner customers in the Datadog partner network program. Defaults to `false`. ",
- "in": "query",
- "name": "include_connected_accounts",
- "required": false,
- "schema": {
- "default": false,
- "type": "boolean"
- }
- }
- ],
+ "required": true
+ },
"responses": {
"200": {
"content": {
- "application/json;datetime-format=rfc3339": {
+ "application/json": {
"schema": {
- "description": "Chargeback Summary response.",
+ "description": "Response containing information about a single user.",
"properties": {
"data": {
- "description": "Response containing Chargeback Summary.",
- "items": {
- "description": "Cost data.",
- "properties": {
- "attributes": {
- "description": "Cost attributes data.",
- "properties": {
- "account_name": {
- "description": "The account name.",
- "type": "string"
- },
- "account_public_id": {
- "description": "The account public ID.",
- "type": "string"
- },
- "charges": {
- "description": "List of charges data reported for the requested month.",
- "items": {
- "description": "Charges breakdown.",
+ "description": "User object returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of user object returned by the API.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the user.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "disabled": {
+ "description": "Whether the user is disabled.",
+ "type": "boolean"
+ },
+ "email": {
+ "description": "Email of the user.",
+ "type": "string"
+ },
+ "handle": {
+ "description": "Handle of the user.",
+ "type": "string"
+ },
+ "icon": {
+ "description": "URL of the user's icon.",
+ "type": "string"
+ },
+ "mfa_enabled": {
+ "description": "If user has MFA enabled.",
+ "readOnly": true,
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time that the user was last modified.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "service_account": {
+ "description": "Whether the user is a service account.",
+ "type": "boolean"
+ },
+ "status": {
+ "description": "Status of the user.",
+ "type": "string"
+ },
+ "title": {
+ "description": "Title of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "verified": {
+ "description": "Whether the user is verified.",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the user.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships of the user object returned by the API.",
+ "properties": {
+ "org": {
+ "description": "Relationship to an organization.",
+ "properties": {
+ "data": {
+ "description": "Relationship to organization object.",
"properties": {
- "charge_type": {
- "description": "The type of charge for a particular product.",
- "example": "on_demand",
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
"type": "string"
},
- "cost": {
- "description": "The cost for a particular product and charge type during a given month.",
- "format": "double",
- "type": "number"
- },
- "product_name": {
- "description": "The product for which cost is being reported.",
- "example": "infra_host",
- "type": "string"
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
}
},
+ "required": [
+ "id",
+ "type"
+ ],
"type": "object"
- },
- "type": "array"
- },
- "date": {
- "description": "The month requested.",
- "format": "date-time",
- "type": "string"
+ }
},
- "org_name": {
- "description": "The organization name.",
- "type": "string"
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_orgs": {
+ "description": "Relationship to organizations.",
+ "properties": {
+ "data": {
+ "description": "Relationships to organization objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
},
- "public_id": {
- "description": "The organization public ID.",
- "type": "string"
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_users": {
+ "description": "Relationship to users.",
+ "properties": {
+ "data": {
+ "description": "Relationships to user objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
},
- "region": {
- "description": "The region of the Datadog instance that the organization belongs to.",
- "type": "string"
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "roles": {
+ "description": "Relationship to roles.",
+ "properties": {
+ "data": {
+ "description": "An array containing type and the unique identifier of a role.",
+ "items": {
+ "description": "Relationship to role object.",
+ "properties": {
+ "id": {
+ "description": "The unique identifier of the role.",
+ "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "type": "string"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
},
- "total_cost": {
- "description": "The total cost of products for the month.",
- "format": "double",
- "type": "number"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
}
- },
- "type": "object"
- },
- "id": {
- "description": "Unique ID of the response.",
- "type": "string"
+ }
},
- "type": {
- "default": "cost_by_org",
- "description": "Type of cost data.",
- "enum": [
- "cost_by_org"
- ],
- "example": "cost_by_org",
- "type": "string",
- "x-enum-varnames": [
- "COST_BY_ORG"
- ]
+ "type": "object",
+ "x-merge-override": {
+ "properties": false
}
},
- "type": "object"
- },
- "type": "array"
- }
- },
- "type": "object"
- }
- }
- },
- "description": "OK"
- },
- "400": {
- "content": {
- "application/json;datetime-format=rfc3339": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Bad Request"
- },
- "403": {
- "content": {
- "application/json;datetime-format=rfc3339": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Forbidden - User is not authorized"
- },
- "429": {
- "content": {
- "application/json;datetime-format=rfc3339": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
},
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Too many requests"
- }
- },
- "security": [
- {
- "apiKeyAuth": [],
- "appKeyAuth": []
- },
- {
- "AuthZ": [
- "usage_read"
- ]
- }
- ],
- "summary": "Get estimated cost across your account",
- "tags": [
- "Usage Metering"
- ],
- "x-menu-order": 6,
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "usage_read"
- ]
- },
- "x-undo": {
- "type": "safe"
- }
- }
- },
- "/api/v2/usage/historical_cost": {
- "get": {
- "description": "Get historical cost across multi-org and single root-org accounts.\nCost data for a given month becomes available no later than the 16th of the following month.\n\nThis endpoint is only accessible for [parent-level organizations](https://docs.datadoghq.com/account_management/multi_organization/).",
- "operationId": "GetHistoricalCostByOrg",
- "parameters": [
- {
- "description": "String to specify whether cost is broken down at a parent-org level or at the sub-org level. Available views are `summary` and `sub-org`. Defaults to `summary`.",
- "in": "query",
- "name": "view",
- "required": false,
- "schema": {
- "type": "string"
- }
- },
- {
- "description": "Datetime in ISO-8601 format, UTC, precise to month: `[YYYY-MM]` for cost beginning this month.",
- "in": "query",
- "name": "start_month",
- "required": true,
- "schema": {
- "format": "date-time",
- "type": "string"
- }
- },
- {
- "description": "Datetime in ISO-8601 format, UTC, precise to month: `[YYYY-MM]` for cost ending this month.",
- "in": "query",
- "name": "end_month",
- "required": false,
- "schema": {
- "format": "date-time",
- "type": "string"
- }
- },
- {
- "description": "Boolean to specify whether to include accounts connected to the current account as partner customers in the Datadog partner network program. Defaults to `false`. ",
- "in": "query",
- "name": "include_connected_accounts",
- "required": false,
- "schema": {
- "default": false,
- "type": "boolean"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json;datetime-format=rfc3339": {
- "schema": {
- "description": "Chargeback Summary response.",
- "properties": {
- "data": {
- "description": "Response containing Chargeback Summary.",
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "included": {
+ "description": "Array of objects related to the user.",
"items": {
- "description": "Cost data.",
- "properties": {
- "attributes": {
- "description": "Cost attributes data.",
+ "description": "An object related to a user.",
+ "oneOf": [
+ {
+ "description": "Organization object.",
"properties": {
- "account_name": {
- "description": "The account name.",
- "type": "string"
+ "attributes": {
+ "description": "Attributes of the organization.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the organization.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of the organization.",
+ "type": "string"
+ },
+ "disabled": {
+ "description": "Whether or not the organization is disabled.",
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time of last organization modification.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the organization.",
+ "type": "string"
+ },
+ "public_id": {
+ "description": "Public ID of the organization.",
+ "type": "string"
+ },
+ "sharing": {
+ "description": "Sharing type of the organization.",
+ "type": "string"
+ },
+ "url": {
+ "description": "URL of the site that this organization exists at.",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
- "account_public_id": {
- "description": "The account public ID.",
+ "id": {
+ "description": "ID of the organization.",
"type": "string"
},
- "charges": {
- "description": "List of charges data reported for the requested month.",
- "items": {
- "description": "Charges breakdown.",
- "properties": {
- "charge_type": {
- "description": "The type of charge for a particular product.",
- "example": "on_demand",
- "type": "string"
- },
- "cost": {
- "description": "The cost for a particular product and charge type during a given month.",
- "format": "double",
- "type": "number"
- },
- "product_name": {
- "description": "The product for which cost is being reported.",
- "example": "infra_host",
- "type": "string"
- }
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Permission object.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of a permission.",
+ "properties": {
+ "created": {
+ "description": "Creation time of the permission.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of the permission.",
+ "type": "string"
+ },
+ "display_name": {
+ "description": "Displayed name for the permission.",
+ "type": "string"
+ },
+ "display_type": {
+ "description": "Display type.",
+ "type": "string"
+ },
+ "group_name": {
+ "description": "Name of the permission group.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the permission.",
+ "type": "string"
},
- "type": "object"
+ "restricted": {
+ "description": "Whether or not the permission is restricted.",
+ "type": "boolean"
+ }
},
- "type": "array"
+ "type": "object"
},
- "date": {
- "description": "The month requested.",
- "format": "date-time",
+ "id": {
+ "description": "ID of the permission.",
"type": "string"
},
- "org_name": {
- "description": "The organization name.",
- "type": "string"
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Role object returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of the role.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the role.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "modified_at": {
+ "description": "Time of last role modification.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
+ "type": "string"
+ },
+ "user_count": {
+ "description": "Number of users with that role.",
+ "format": "int64",
+ "readOnly": true,
+ "type": "integer"
+ }
+ },
+ "type": "object"
},
- "public_id": {
- "description": "The organization public ID.",
+ "id": {
+ "description": "The unique identifier of the role.",
"type": "string"
},
- "region": {
- "description": "The region of the Datadog instance that the organization belongs to.",
- "type": "string"
+ "relationships": {
+ "description": "Relationships of the role object returned by the API.",
+ "properties": {
+ "permissions": {
+ "description": "Relationship to multiple permissions objects.",
+ "properties": {
+ "data": {
+ "description": "Relationships to permission objects.",
+ "items": {
+ "description": "Relationship to permission object.",
+ "properties": {
+ "id": {
+ "description": "ID of the permission.",
+ "type": "string"
+ },
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object"
},
- "total_cost": {
- "description": "The total cost of products for the month.",
- "format": "double",
- "type": "number"
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
}
},
- "type": "object"
- },
- "id": {
- "description": "Unique ID of the response.",
- "type": "string"
- },
- "type": {
- "default": "cost_by_org",
- "description": "Type of cost data.",
- "enum": [
- "cost_by_org"
+ "required": [
+ "type"
],
- "example": "cost_by_org",
- "type": "string",
- "x-enum-varnames": [
- "COST_BY_ORG"
- ]
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
- },
- "type": "object"
+ ]
},
"type": "array"
}
@@ -403358,7 +428344,7 @@
},
"400": {
"content": {
- "application/json;datetime-format=rfc3339": {
+ "application/json": {
"schema": {
"description": "API error response.",
"properties": {
@@ -403386,35 +428372,7 @@
},
"403": {
"content": {
- "application/json;datetime-format=rfc3339": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Forbidden - User is not authorized"
- },
- "429": {
- "content": {
- "application/json;datetime-format=rfc3339": {
+ "application/json": {
"schema": {
"description": "API error response.",
"properties": {
@@ -403438,247 +428396,11 @@
}
}
},
- "description": "Too many requests"
- }
- },
- "security": [
- {
- "apiKeyAuth": [],
- "appKeyAuth": []
- },
- {
- "AuthZ": [
- "usage_read"
- ]
- }
- ],
- "summary": "Get historical cost across your account",
- "tags": [
- "Usage Metering"
- ],
- "x-menu-order": 5,
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "usage_read"
- ]
- },
- "x-undo": {
- "type": "safe"
- }
- }
- },
- "/api/v2/usage/hourly_usage": {
- "get": {
- "description": "Get hourly usage by product family.",
- "operationId": "GetHourlyUsage",
- "parameters": [
- {
- "description": "Datetime in ISO-8601 format, UTC, precise to hour: [YYYY-MM-DDThh] for usage beginning at this hour.",
- "in": "query",
- "name": "filter[timestamp][start]",
- "required": true,
- "schema": {
- "format": "date-time",
- "type": "string"
- }
- },
- {
- "description": "Datetime in ISO-8601 format, UTC, precise to hour: [YYYY-MM-DDThh] for usage ending **before** this hour.",
- "in": "query",
- "name": "filter[timestamp][end]",
- "required": false,
- "schema": {
- "format": "date-time",
- "type": "string"
- }
- },
- {
- "description": "Comma separated list of product families to retrieve. Available families are `all`, `analyzed_logs`,\n`application_security`, `audit_trail`, `serverless`, `ci_app`, `cloud_cost_management`, `cloud_siem`,\n`csm_container_enterprise`, `csm_host_enterprise`, `cspm`, `custom_events`, `cws`, `dbm`, `error_tracking`,\n`fargate`, `infra_hosts`, `incident_management`, `indexed_logs`, `indexed_spans`, `ingested_spans`, `iot`,\n`lambda_traced_invocations`, `logs`, `network_flows`, `network_hosts`, `network_monitoring`, `observability_pipelines`,\n`online_archive`, `profiling`, `rum`, `rum_browser_sessions`, `rum_mobile_sessions`, `sds`, `snmp`, `software_delivery`,\n`synthetics_api`, `synthetics_browser`, `synthetics_mobile`, `synthetics_parallel_testing`, `timeseries`, `vuln_management`,\nand `workflow_executions`.\nThe following product family has been **deprecated**: `audit_logs`.",
- "in": "query",
- "name": "filter[product_families]",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "description": "Include child org usage in the response. Defaults to false.",
- "in": "query",
- "name": "filter[include_descendants]",
- "required": false,
- "schema": {
- "default": false,
- "type": "boolean"
- }
- },
- {
- "description": "Boolean to specify whether to include accounts connected to the current account as partner customers in the Datadog partner network program. Defaults to false.",
- "in": "query",
- "name": "filter[include_connected_accounts]",
- "required": false,
- "schema": {
- "default": false,
- "type": "boolean"
- }
- },
- {
- "description": "Include breakdown of usage by subcategories where applicable (for product family logs only). Defaults to false.",
- "in": "query",
- "name": "filter[include_breakdown]",
- "required": false,
- "schema": {
- "default": false,
- "type": "boolean"
- }
- },
- {
- "description": "Comma separated list of product family versions to use in the format `product_family:version`. For example,\n`infra_hosts:1.0.0`. If this parameter is not used, the API will use the latest version of each requested\nproduct family. Currently all families have one version `1.0.0`.",
- "in": "query",
- "name": "filter[versions]",
- "required": false,
- "schema": {
- "type": "string"
- }
- },
- {
- "description": "Maximum number of results to return (between 1 and 500) - defaults to 500 if limit not specified.",
- "in": "query",
- "name": "page[limit]",
- "required": false,
- "schema": {
- "default": 500,
- "format": "int32",
- "maximum": 500,
- "minimum": 1,
- "type": "integer"
- }
- },
- {
- "description": "List following results with a next_record_id provided in the previous query.",
- "in": "query",
- "name": "page[next_record_id]",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json;datetime-format=rfc3339": {
- "schema": {
- "description": "Hourly usage response.",
- "properties": {
- "data": {
- "description": "Response containing hourly usage.",
- "items": {
- "description": "Hourly usage for a product family for an org.",
- "properties": {
- "attributes": {
- "description": "Attributes of hourly usage for a product family for an org for a time period.",
- "properties": {
- "account_name": {
- "description": "The account name.",
- "type": "string"
- },
- "account_public_id": {
- "description": "The account public ID.",
- "type": "string"
- },
- "measurements": {
- "description": "List of the measured usage values for the product family for the org for the time period.",
- "items": {
- "description": "Usage amount for a given usage type.",
- "properties": {
- "usage_type": {
- "description": "Type of usage.",
- "type": "string"
- },
- "value": {
- "description": "Contains the number measured for the given usage_type during the hour.",
- "format": "int64",
- "nullable": true,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "org_name": {
- "description": "The organization name.",
- "type": "string"
- },
- "product_family": {
- "description": "The product for which usage is being reported.",
- "type": "string"
- },
- "public_id": {
- "description": "The organization public ID.",
- "type": "string"
- },
- "region": {
- "description": "The region of the Datadog instance that the organization belongs to.",
- "type": "string"
- },
- "timestamp": {
- "description": "Datetime in ISO-8601 format, UTC. The hour for the usage.",
- "format": "date-time",
- "type": "string"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "Unique ID of the response.",
- "type": "string"
- },
- "type": {
- "default": "usage_timeseries",
- "description": "Type of usage data.",
- "enum": [
- "usage_timeseries"
- ],
- "example": "usage_timeseries",
- "type": "string",
- "x-enum-varnames": [
- "USAGE_TIMESERIES"
- ]
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "meta": {
- "description": "The object containing document metadata.",
- "properties": {
- "pagination": {
- "description": "The metadata for the current pagination.",
- "properties": {
- "next_record_id": {
- "description": "The cursor to get the next results (if any). To make the next request, use the same parameters and add `next_record_id`.",
- "nullable": true,
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "type": "object"
- }
- },
- "type": "object"
- }
- }
- },
- "description": "OK"
+ "description": "Authentication error"
},
- "400": {
+ "404": {
"content": {
- "application/json;datetime-format=rfc3339": {
+ "application/json": {
"schema": {
"description": "API error response.",
"properties": {
@@ -403702,11 +428424,11 @@
}
}
},
- "description": "Bad Request"
+ "description": "Not found"
},
- "403": {
+ "422": {
"content": {
- "application/json;datetime-format=rfc3339": {
+ "application/json": {
"schema": {
"description": "API error response.",
"properties": {
@@ -403730,11 +428452,11 @@
}
}
},
- "description": "Forbidden - User is not authorized"
+ "description": "Unprocessable Entity"
},
"429": {
"content": {
- "application/json;datetime-format=rfc3339": {
+ "application/json": {
"schema": {
"description": "API error response.",
"properties": {
@@ -403768,49 +428490,43 @@
},
{
"AuthZ": [
- "usage_read"
+ "user_access_manage"
]
}
],
- "summary": "Get hourly usage by product family",
+ "summary": "Update a user",
"tags": [
- "Usage Metering"
+ "Users"
],
- "x-menu-order": 1,
+ "x-codegen-request-body-name": "body",
+ "x-menu-order": 4,
"x-permission": {
"operator": "OR",
"permissions": [
- "usage_read"
+ "user_access_manage",
+ "service_account_write"
]
},
"x-undo": {
- "type": "safe"
+ "type": "idempotent"
}
+ },
+ "x-merge-override": {
+ "delete": true
}
},
- "/api/v2/usage/lambda_traced_invocations": {
+ "/api/v2/users/{user_id}/orgs": {
"get": {
- "deprecated": true,
- "description": "Get hourly usage for Lambda traced invocations.\n**Note:** This endpoint has been deprecated.. Hourly usage data for all products is now available in the [Get hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family)",
- "operationId": "GetUsageLambdaTracedInvocations",
+ "description": "Get a user organization. Returns the user information and all organizations\njoined by this user.",
+ "operationId": "ListUserOrganizations",
"parameters": [
{
- "description": "Datetime in ISO-8601 format, UTC, precise to hour: `[YYYY-MM-DDThh]` for usage beginning at this hour.",
- "in": "query",
- "name": "start_hr",
+ "description": "The ID of the user.",
+ "in": "path",
+ "name": "user_id",
"required": true,
"schema": {
- "format": "date-time",
- "type": "string"
- }
- },
- {
- "description": "Datetime in ISO-8601 format, UTC, precise to hour: `[YYYY-MM-DDThh]` for usage ending\n**before** this hour.",
- "in": "query",
- "name": "end_hr",
- "required": false,
- "schema": {
- "format": "date-time",
+ "example": "00000000-0000-9999-0000-000000000000",
"type": "string"
}
}
@@ -403818,328 +428534,494 @@
"responses": {
"200": {
"content": {
- "application/json;datetime-format=rfc3339": {
+ "application/json": {
"schema": {
- "description": "Lambda Traced Invocations usage response.",
+ "description": "Response containing information about a single user.",
"properties": {
"data": {
- "description": "Response containing Lambda Traced Invocations usage.",
- "items": {
- "description": "Usage data.",
- "properties": {
- "attributes": {
- "description": "Usage attributes data.",
- "properties": {
- "org_name": {
- "description": "The organization name.",
- "type": "string"
- },
- "product_family": {
- "description": "The product for which usage is being reported.",
- "type": "string"
- },
- "public_id": {
- "description": "The organization public ID.",
- "type": "string"
- },
- "region": {
- "description": "The region of the Datadog instance that the organization belongs to.",
- "type": "string"
- },
- "timeseries": {
- "description": "List of usage data reported for each requested hour.",
- "items": {
- "description": "Usage timeseries data.",
+ "description": "User object returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of user object returned by the API.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the user.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "disabled": {
+ "description": "Whether the user is disabled.",
+ "type": "boolean"
+ },
+ "email": {
+ "description": "Email of the user.",
+ "type": "string"
+ },
+ "handle": {
+ "description": "Handle of the user.",
+ "type": "string"
+ },
+ "icon": {
+ "description": "URL of the user's icon.",
+ "type": "string"
+ },
+ "mfa_enabled": {
+ "description": "If user has MFA enabled.",
+ "readOnly": true,
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time that the user was last modified.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "service_account": {
+ "description": "Whether the user is a service account.",
+ "type": "boolean"
+ },
+ "status": {
+ "description": "Status of the user.",
+ "type": "string"
+ },
+ "title": {
+ "description": "Title of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "verified": {
+ "description": "Whether the user is verified.",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the user.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships of the user object returned by the API.",
+ "properties": {
+ "org": {
+ "description": "Relationship to an organization.",
+ "properties": {
+ "data": {
+ "description": "Relationship to organization object.",
"properties": {
- "timestamp": {
- "description": "Datetime in ISO-8601 format, UTC. The hour for the usage.",
- "format": "date-time",
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
"type": "string"
},
- "value": {
- "description": "Contains the number measured for the given usage_type during the hour.",
- "format": "int64",
- "nullable": true,
- "type": "integer"
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
}
},
+ "required": [
+ "id",
+ "type"
+ ],
"type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_orgs": {
+ "description": "Relationship to organizations.",
+ "properties": {
+ "data": {
+ "description": "Relationships to organization objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_users": {
+ "description": "Relationship to users.",
+ "properties": {
+ "data": {
+ "description": "Relationships to user objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "roles": {
+ "description": "Relationship to roles.",
+ "properties": {
+ "data": {
+ "description": "An array containing type and the unique identifier of a role.",
+ "items": {
+ "description": "Relationship to role object.",
+ "properties": {
+ "id": {
+ "description": "The unique identifier of the role.",
+ "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "type": "string"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "properties": false
+ }
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "included": {
+ "description": "Array of objects related to the user.",
+ "items": {
+ "description": "An object related to a user.",
+ "oneOf": [
+ {
+ "description": "Organization object.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of the organization.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the organization.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of the organization.",
+ "type": "string"
+ },
+ "disabled": {
+ "description": "Whether or not the organization is disabled.",
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time of last organization modification.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the organization.",
+ "type": "string"
+ },
+ "public_id": {
+ "description": "Public ID of the organization.",
+ "type": "string"
+ },
+ "sharing": {
+ "description": "Sharing type of the organization.",
+ "type": "string"
+ },
+ "url": {
+ "description": "URL of the site that this organization exists at.",
+ "type": "string"
+ }
},
- "type": "array"
+ "type": "object"
},
- "usage_type": {
- "description": "Usage type that is being measured.",
+ "id": {
+ "description": "ID of the organization.",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
"enum": [
- "app_sec_host_count",
- "observability_pipelines_bytes_processed",
- "lambda_traced_invocations_count"
+ "orgs"
],
- "example": "observability_pipelines_bytes_processed",
+ "example": "orgs",
"type": "string",
"x-enum-varnames": [
- "APP_SEC_HOST_COUNT",
- "OBSERVABILITY_PIPELINES_BYTES_PROCESSSED",
- "LAMBDA_TRACED_INVOCATIONS_COUNT"
+ "ORGS"
]
}
},
+ "required": [
+ "type"
+ ],
"type": "object"
},
- "id": {
- "description": "Unique ID of the response.",
- "type": "string"
- },
- "type": {
- "default": "usage_timeseries",
- "description": "Type of usage data.",
- "enum": [
- "usage_timeseries"
- ],
- "example": "usage_timeseries",
- "type": "string",
- "x-enum-varnames": [
- "USAGE_TIMESERIES"
- ]
- }
- },
- "type": "object"
- },
- "type": "array"
- }
- },
- "type": "object"
- }
- }
- },
- "description": "OK"
- },
- "400": {
- "content": {
- "application/json;datetime-format=rfc3339": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Bad Request"
- },
- "403": {
- "content": {
- "application/json;datetime-format=rfc3339": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Forbidden - User is not authorized"
- },
- "429": {
- "content": {
- "application/json;datetime-format=rfc3339": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Too many requests"
- }
- },
- "security": [
- {
- "apiKeyAuth": [],
- "appKeyAuth": []
- },
- {
- "AuthZ": [
- "usage_read"
- ]
- }
- ],
- "summary": "Get hourly usage for Lambda traced invocations",
- "tags": [
- "Usage Metering"
- ],
- "x-menu-order": 37,
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "usage_read"
- ]
- },
- "x-undo": {
- "type": "safe"
- }
- }
- },
- "/api/v2/usage/observability_pipelines": {
- "get": {
- "deprecated": true,
- "description": "Get hourly usage for observability pipelines.\n**Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family)",
- "operationId": "GetUsageObservabilityPipelines",
- "parameters": [
- {
- "description": "Datetime in ISO-8601 format, UTC, precise to hour: `[YYYY-MM-DDThh]` for usage beginning at this hour.",
- "in": "query",
- "name": "start_hr",
- "required": true,
- "schema": {
- "format": "date-time",
- "type": "string"
- }
- },
- {
- "description": "Datetime in ISO-8601 format, UTC, precise to hour: `[YYYY-MM-DDThh]` for usage ending\n**before** this hour.",
- "in": "query",
- "name": "end_hr",
- "required": false,
- "schema": {
- "format": "date-time",
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json;datetime-format=rfc3339": {
- "schema": {
- "description": "Observability Pipelines usage response.",
- "properties": {
- "data": {
- "description": "Response containing Observability Pipelines usage.",
- "items": {
- "description": "Usage data.",
- "properties": {
- "attributes": {
- "description": "Usage attributes data.",
+ {
+ "description": "Permission object.",
"properties": {
- "org_name": {
- "description": "The organization name.",
- "type": "string"
+ "attributes": {
+ "description": "Attributes of a permission.",
+ "properties": {
+ "created": {
+ "description": "Creation time of the permission.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of the permission.",
+ "type": "string"
+ },
+ "display_name": {
+ "description": "Displayed name for the permission.",
+ "type": "string"
+ },
+ "display_type": {
+ "description": "Display type.",
+ "type": "string"
+ },
+ "group_name": {
+ "description": "Name of the permission group.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the permission.",
+ "type": "string"
+ },
+ "restricted": {
+ "description": "Whether or not the permission is restricted.",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
},
- "product_family": {
- "description": "The product for which usage is being reported.",
+ "id": {
+ "description": "ID of the permission.",
"type": "string"
},
- "public_id": {
- "description": "The organization public ID.",
- "type": "string"
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Role object returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of the role.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the role.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "modified_at": {
+ "description": "Time of last role modification.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
+ "type": "string"
+ },
+ "user_count": {
+ "description": "Number of users with that role.",
+ "format": "int64",
+ "readOnly": true,
+ "type": "integer"
+ }
+ },
+ "type": "object"
},
- "region": {
- "description": "The region of the Datadog instance that the organization belongs to.",
+ "id": {
+ "description": "The unique identifier of the role.",
"type": "string"
},
- "timeseries": {
- "description": "List of usage data reported for each requested hour.",
- "items": {
- "description": "Usage timeseries data.",
- "properties": {
- "timestamp": {
- "description": "Datetime in ISO-8601 format, UTC. The hour for the usage.",
- "format": "date-time",
- "type": "string"
+ "relationships": {
+ "description": "Relationships of the role object returned by the API.",
+ "properties": {
+ "permissions": {
+ "description": "Relationship to multiple permissions objects.",
+ "properties": {
+ "data": {
+ "description": "Relationships to permission objects.",
+ "items": {
+ "description": "Relationship to permission object.",
+ "properties": {
+ "id": {
+ "description": "ID of the permission.",
+ "type": "string"
+ },
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
},
- "value": {
- "description": "Contains the number measured for the given usage_type during the hour.",
- "format": "int64",
- "nullable": true,
- "type": "integer"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
}
- },
- "type": "object"
+ }
},
- "type": "array"
+ "type": "object"
},
- "usage_type": {
- "description": "Usage type that is being measured.",
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
"enum": [
- "app_sec_host_count",
- "observability_pipelines_bytes_processed",
- "lambda_traced_invocations_count"
+ "roles"
],
- "example": "observability_pipelines_bytes_processed",
+ "example": "roles",
"type": "string",
"x-enum-varnames": [
- "APP_SEC_HOST_COUNT",
- "OBSERVABILITY_PIPELINES_BYTES_PROCESSSED",
- "LAMBDA_TRACED_INVOCATIONS_COUNT"
+ "ROLES"
]
}
},
- "type": "object"
- },
- "id": {
- "description": "Unique ID of the response.",
- "type": "string"
- },
- "type": {
- "default": "usage_timeseries",
- "description": "Type of usage data.",
- "enum": [
- "usage_timeseries"
+ "required": [
+ "type"
],
- "example": "usage_timeseries",
- "type": "string",
- "x-enum-varnames": [
- "USAGE_TIMESERIES"
- ]
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
- },
- "type": "object"
+ ]
},
"type": "array"
}
@@ -404150,9 +429032,9 @@
},
"description": "OK"
},
- "400": {
+ "403": {
"content": {
- "application/json;datetime-format=rfc3339": {
+ "application/json": {
"schema": {
"description": "API error response.",
"properties": {
@@ -404176,11 +429058,11 @@
}
}
},
- "description": "Bad Request"
+ "description": "Authentication error"
},
- "403": {
+ "404": {
"content": {
- "application/json;datetime-format=rfc3339": {
+ "application/json": {
"schema": {
"description": "API error response.",
"properties": {
@@ -404204,11 +429086,11 @@
}
}
},
- "description": "Forbidden - User is not authorized"
+ "description": "Not found"
},
"429": {
"content": {
- "application/json;datetime-format=rfc3339": {
+ "application/json": {
"schema": {
"description": "API error response.",
"properties": {
@@ -404241,142 +429123,107 @@
"appKeyAuth": []
},
{
- "AuthZ": [
- "usage_read"
- ]
+ "AuthZ": []
}
],
- "summary": "Get hourly usage for observability pipelines",
+ "summary": "Get a user organization",
"tags": [
- "Usage Metering"
+ "Users"
],
- "x-menu-order": 39,
+ "x-codegen-request-body-name": "body",
+ "x-menu-order": 6,
"x-permission": {
- "operator": "OR",
- "permissions": [
- "usage_read"
- ]
+ "operator": "OPEN",
+ "permissions": []
},
"x-undo": {
"type": "safe"
}
}
},
- "/api/v2/usage/projected_cost": {
+ "/api/v2/users/{user_id}/permissions": {
"get": {
- "description": "Get projected cost across multi-org and single root-org accounts.\nProjected cost data is only available for the current month and becomes available around the 12th of the month.\n\nThis endpoint is only accessible for [parent-level organizations](https://docs.datadoghq.com/account_management/multi_organization/).",
- "operationId": "GetProjectedCost",
+ "description": "Get a user permission set. Returns a list of the user’s permissions\ngranted by the associated user's roles.",
+ "operationId": "ListUserPermissions",
"parameters": [
{
- "description": "String to specify whether cost is broken down at a parent-org level or at the sub-org level. Available views are `summary` and `sub-org`. Defaults to `summary`.",
- "in": "query",
- "name": "view",
- "required": false,
+ "description": "The ID of the user.",
+ "in": "path",
+ "name": "user_id",
+ "required": true,
"schema": {
+ "example": "00000000-0000-9999-0000-000000000000",
"type": "string"
}
- },
- {
- "description": "Boolean to specify whether to include accounts connected to the current account as partner customers in the Datadog partner network program. Defaults to `false`. ",
- "in": "query",
- "name": "include_connected_accounts",
- "required": false,
- "schema": {
- "default": false,
- "type": "boolean"
- }
}
],
"responses": {
"200": {
"content": {
- "application/json;datetime-format=rfc3339": {
+ "application/json": {
"schema": {
- "description": "Projected Cost response.",
+ "description": "Payload with API-returned permissions.",
"properties": {
"data": {
- "description": "Response containing Projected Cost.",
+ "description": "Array of permissions.",
"items": {
- "description": "Projected Cost data.",
+ "description": "Permission object.",
"properties": {
"attributes": {
- "description": "Projected Cost attributes data.",
+ "description": "Attributes of a permission.",
"properties": {
- "account_name": {
- "description": "The account name.",
+ "created": {
+ "description": "Creation time of the permission.",
+ "format": "date-time",
"type": "string"
},
- "account_public_id": {
- "description": "The account public ID.",
+ "description": {
+ "description": "Description of the permission.",
"type": "string"
},
- "charges": {
- "description": "List of charges data reported for the requested month.",
- "items": {
- "description": "Charges breakdown.",
- "properties": {
- "charge_type": {
- "description": "The type of charge for a particular product.",
- "example": "on_demand",
- "type": "string"
- },
- "cost": {
- "description": "The cost for a particular product and charge type during a given month.",
- "format": "double",
- "type": "number"
- },
- "product_name": {
- "description": "The product for which cost is being reported.",
- "example": "infra_host",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "date": {
- "description": "The month requested.",
- "format": "date-time",
+ "display_name": {
+ "description": "Displayed name for the permission.",
"type": "string"
},
- "org_name": {
- "description": "The organization name.",
+ "display_type": {
+ "description": "Display type.",
"type": "string"
},
- "projected_total_cost": {
- "description": "The total projected cost of products for the month.",
- "format": "double",
- "type": "number"
- },
- "public_id": {
- "description": "The organization public ID.",
+ "group_name": {
+ "description": "Name of the permission group.",
"type": "string"
},
- "region": {
- "description": "The region of the Datadog instance that the organization belongs to.",
+ "name": {
+ "description": "Name of the permission.",
"type": "string"
+ },
+ "restricted": {
+ "description": "Whether or not the permission is restricted.",
+ "type": "boolean"
}
},
"type": "object"
},
"id": {
- "description": "Unique ID of the response.",
+ "description": "ID of the permission.",
"type": "string"
},
"type": {
- "default": "projected_cost",
- "description": "Type of cost data.",
+ "default": "permissions",
+ "description": "Permissions resource type.",
"enum": [
- "projected_cost"
+ "permissions"
],
- "example": "projected_cost",
+ "example": "permissions",
"type": "string",
"x-enum-varnames": [
- "PROJECt_COST"
+ "PERMISSIONS"
]
}
},
+ "required": [
+ "type"
+ ],
"type": "object"
},
"type": "array"
@@ -404388,9 +429235,9 @@
},
"description": "OK"
},
- "400": {
+ "403": {
"content": {
- "application/json;datetime-format=rfc3339": {
+ "application/json": {
"schema": {
"description": "API error response.",
"properties": {
@@ -404414,11 +429261,11 @@
}
}
},
- "description": "Bad Request"
+ "description": "Authentication error"
},
- "403": {
+ "404": {
"content": {
- "application/json;datetime-format=rfc3339": {
+ "application/json": {
"schema": {
"description": "API error response.",
"properties": {
@@ -404442,11 +429289,11 @@
}
}
},
- "description": "Forbidden - User is not authorized"
+ "description": "Not found"
},
"429": {
"content": {
- "application/json;datetime-format=rfc3339": {
+ "application/json": {
"schema": {
"description": "API error response.",
"properties": {
@@ -404480,268 +429327,771 @@
},
{
"AuthZ": [
- "usage_read"
+ "user_access_read"
]
}
],
- "summary": "Get projected cost across your account",
+ "summary": "Get a user permissions",
"tags": [
- "Usage Metering"
+ "Users"
],
+ "x-codegen-request-body-name": "body",
"x-menu-order": 7,
"x-permission": {
"operator": "OR",
"permissions": [
- "usage_read"
+ "user_access_read"
]
},
"x-undo": {
"type": "safe"
}
+ },
+ "x-merge-override": {
+ "get": true
}
},
- "/api/v2/user_invitations": {
- "post": {
- "description": "Sends emails to one or more users inviting them to join the organization.",
- "operationId": "SendInvitations",
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Object to invite users to join the organization.",
- "properties": {
- "data": {
- "description": "List of user invitations.",
- "example": [],
- "items": {
- "description": "Object to create a user invitation.",
- "properties": {
- "relationships": {
- "description": "Relationships data for user invitation.",
- "properties": {
- "user": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- }
- },
- "required": [
- "user"
- ],
- "type": "object"
- },
- "type": {
- "default": "user_invitations",
- "description": "User invitations type.",
- "enum": [
- "user_invitations"
- ],
- "example": "user_invitations",
- "type": "string",
- "x-enum-varnames": [
- "USER_INVITATIONS"
- ]
- }
- },
- "required": [
- "type",
- "relationships"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- }
+ "/api/v2/users/{user_uuid}/memberships": {
+ "get": {
+ "description": "Get a list of memberships for a user",
+ "operationId": "GetUserMemberships",
+ "parameters": [
+ {
+ "description": "None",
+ "in": "path",
+ "name": "user_uuid",
+ "required": true,
+ "schema": {
+ "type": "string"
}
- },
- "required": true
- },
+ }
+ ],
"responses": {
- "201": {
+ "200": {
"content": {
"application/json": {
"schema": {
- "description": "User invitations as returned by the API.",
+ "description": "Team memberships response",
"properties": {
"data": {
- "description": "Array of user invitations.",
+ "description": "Team memberships response data",
"items": {
- "description": "Object of a user invitation returned by the API.",
+ "description": "A user's relationship with a team",
"properties": {
"attributes": {
- "description": "Attributes of a user invitation.",
+ "description": "Team membership attributes",
"properties": {
- "created_at": {
- "description": "Creation time of the user invitation.",
- "format": "date-time",
- "type": "string"
- },
- "expires_at": {
- "description": "Time of invitation expiration.",
- "format": "date-time",
+ "provisioned_by": {
+ "description": "The mechanism responsible for provisioning the team relationship.\nPossible values: null for added by a user, \"service_account\" if added by a service account, and \"saml_mapping\" if provisioned via SAML mapping.",
+ "nullable": true,
+ "readOnly": true,
"type": "string"
},
- "invite_type": {
- "description": "Type of invitation.",
+ "provisioned_by_id": {
+ "description": "UUID of the User or Service Account who provisioned this team membership, or null if provisioned via SAML mapping.",
+ "nullable": true,
+ "readOnly": true,
"type": "string"
},
- "uuid": {
- "description": "UUID of the user invitation.",
- "type": "string"
+ "role": {
+ "description": "The user's role within the team",
+ "enum": [
+ "admin"
+ ],
+ "nullable": true,
+ "type": "string",
+ "x-enum-varnames": [
+ "ADMIN"
+ ]
}
},
"type": "object"
},
"id": {
- "description": "ID of the user invitation.",
+ "description": "The ID of a user's relationship with a team",
+ "example": "TeamMembership-aeadc05e-98a8-11ec-ac2c-da7ad0900001-38835",
"type": "string"
},
"relationships": {
- "description": "Relationships data for user invitation.",
+ "description": "Relationship between membership and a user",
"properties": {
+ "team": {
+ "description": "Relationship between team membership and team",
+ "properties": {
+ "data": {
+ "description": "The team associated with the membership",
+ "properties": {
+ "id": {
+ "description": "The ID of the team associated with the membership",
+ "example": "d7e15d9d-d346-43da-81d8-3d9e71d9a5e9",
+ "type": "string"
+ },
+ "type": {
+ "default": "team",
+ "description": "User team team type",
+ "enum": [
+ "team"
+ ],
+ "example": "team",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
"user": {
- "description": "Relationship to user.",
+ "description": "Relationship between team membership and user",
"properties": {
"data": {
- "description": "Relationship to user object.",
+ "description": "A user's relationship with a team",
"properties": {
"id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
+ "description": "The ID of the user associated with the team",
+ "example": "b8626d7e-cedd-11eb-abf5-da7ad0900001",
"type": "string"
},
"type": {
"default": "users",
- "description": "Users resource type.",
+ "description": "User team user type",
"enum": [
"users"
],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "default": "team_memberships",
+ "description": "Team membership type",
+ "enum": [
+ "team_memberships"
+ ],
+ "example": "team_memberships",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM_MEMBERSHIPS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ },
+ "included": {
+ "description": "Resources related to the team memberships",
+ "items": {
+ "description": "Included resources related to the team membership",
+ "oneOf": [
+ {
+ "description": "User object returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of user object returned by the API.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the user.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "disabled": {
+ "description": "Whether the user is disabled.",
+ "type": "boolean"
+ },
+ "email": {
+ "description": "Email of the user.",
+ "type": "string"
+ },
+ "handle": {
+ "description": "Handle of the user.",
+ "type": "string"
+ },
+ "icon": {
+ "description": "URL of the user's icon.",
+ "type": "string"
+ },
+ "mfa_enabled": {
+ "description": "If user has MFA enabled.",
+ "readOnly": true,
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time that the user was last modified.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "service_account": {
+ "description": "Whether the user is a service account.",
+ "type": "boolean"
+ },
+ "status": {
+ "description": "Status of the user.",
+ "type": "string"
+ },
+ "title": {
+ "description": "Title of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "verified": {
+ "description": "Whether the user is verified.",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the user.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships of the user object returned by the API.",
+ "properties": {
+ "org": {
+ "description": "Relationship to an organization.",
+ "properties": {
+ "data": {
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_orgs": {
+ "description": "Relationship to organizations.",
+ "properties": {
+ "data": {
+ "description": "Relationships to organization objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_users": {
+ "description": "Relationship to users.",
+ "properties": {
+ "data": {
+ "description": "Relationships to user objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "roles": {
+ "description": "Relationship to roles.",
+ "properties": {
+ "data": {
+ "description": "An array containing type and the unique identifier of a role.",
+ "items": {
+ "description": "Relationship to role object.",
+ "properties": {
+ "id": {
+ "description": "The unique identifier of the role.",
+ "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "type": "string"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "properties": false
+ }
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ {
+ "description": "A team",
+ "properties": {
+ "attributes": {
+ "description": "Team attributes",
+ "properties": {
+ "avatar": {
+ "description": "Unicode representation of the avatar for the team, limited to a single grapheme",
+ "example": "🥑",
+ "nullable": true,
+ "type": "string"
+ },
+ "banner": {
+ "description": "Banner selection for the team",
+ "format": "int64",
+ "nullable": true,
+ "type": "integer"
+ },
+ "created_at": {
+ "description": "Creation date of the team",
+ "format": "date-time",
+ "type": "string"
+ },
+ "description": {
+ "description": "Free-form markdown description/content for the team's homepage",
+ "nullable": true,
+ "type": "string"
+ },
+ "handle": {
+ "description": "The team's identifier",
+ "example": "example-team",
+ "maxLength": 195,
+ "type": "string"
+ },
+ "hidden_modules": {
+ "description": "Collection of hidden modules for the team",
+ "items": {
+ "description": "String identifier of the module",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "link_count": {
+ "description": "The number of links belonging to the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "readOnly": true,
+ "type": "integer"
+ },
+ "modified_at": {
+ "description": "Modification date of the team",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the team",
+ "example": "Example Team",
+ "maxLength": 200,
+ "type": "string"
+ },
+ "summary": {
+ "description": "A brief summary of the team, derived from the `description`",
+ "maxLength": 120,
+ "nullable": true,
+ "type": "string"
+ },
+ "user_count": {
+ "description": "The number of users belonging to the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "readOnly": true,
+ "type": "integer"
+ },
+ "visible_modules": {
+ "description": "Collection of visible modules for the team",
+ "items": {
+ "description": "String identifier of the module",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "handle",
+ "name"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "description": "The team's identifier",
+ "example": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Resources related to a team",
+ "properties": {
+ "team_links": {
+ "description": "Relationship between a team and a team link",
+ "properties": {
+ "data": {
+ "description": "Related team links",
+ "items": {
+ "description": "Relationship between a link and a team",
+ "properties": {
+ "id": {
+ "description": "The team link's identifier",
+ "example": "f9bb8444-af7f-11ec-ac2c-da7ad0900001",
+ "type": "string"
+ },
+ "type": {
+ "default": "team_links",
+ "description": "Team link type",
+ "enum": [
+ "team_links"
+ ],
+ "example": "team_links",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM_LINKS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ },
+ "links": {
+ "description": "Links attributes.",
+ "properties": {
+ "related": {
+ "description": "Related link.",
+ "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "user_team_permissions": {
+ "description": "Relationship between a user team permission and a team",
+ "properties": {
+ "data": {
+ "description": "Related user team permission data",
+ "properties": {
+ "id": {
+ "description": "The ID of the user team permission",
+ "example": "UserTeamPermissions-aeadc05e-98a8-11ec-ac2c-da7ad0900001-416595",
+ "type": "string"
+ },
+ "type": {
+ "default": "user_team_permissions",
+ "description": "User team permission type",
+ "enum": [
+ "user_team_permissions"
+ ],
+ "example": "user_team_permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "USER_TEAM_PERMISSIONS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "links": {
+ "description": "Links attributes.",
+ "properties": {
+ "related": {
+ "description": "Related link.",
+ "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
+ "type": "string"
+ }
+ },
+ "type": "object"
}
},
- "required": [
- "id",
- "type"
- ],
"type": "object",
"x-merge-override": {
"required": false
}
}
},
- "required": [
- "data"
- ],
"type": "object"
+ },
+ "type": {
+ "default": "team",
+ "description": "Team type",
+ "enum": [
+ "team"
+ ],
+ "example": "team",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM"
+ ]
}
},
"required": [
- "user"
- ],
- "type": "object"
- },
- "type": {
- "default": "user_invitations",
- "description": "User invitations type.",
- "enum": [
- "user_invitations"
+ "attributes",
+ "id",
+ "type"
],
- "example": "user_invitations",
- "type": "string",
- "x-enum-varnames": [
- "USER_INVITATIONS"
- ]
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
+ ]
+ },
+ "type": "array"
+ },
+ "links": {
+ "description": "Teams response links.",
+ "properties": {
+ "first": {
+ "description": "First link.",
+ "type": "string"
},
- "type": "object",
- "x-merge-override": {
- "required": false
+ "last": {
+ "description": "Last link.",
+ "nullable": true,
+ "type": "string"
+ },
+ "next": {
+ "description": "Next link.",
+ "type": "string"
+ },
+ "prev": {
+ "description": "Previous link.",
+ "nullable": true,
+ "type": "string"
+ },
+ "self": {
+ "description": "Current link.",
+ "type": "string"
}
},
- "type": "array"
- }
- },
- "type": "object"
- }
- }
- },
- "description": "OK"
- },
- "400": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "type": "object"
+ },
+ "meta": {
+ "description": "Teams response metadata.",
+ "properties": {
+ "pagination": {
+ "description": "Teams response metadata.",
+ "properties": {
+ "first_offset": {
+ "description": "The first offset.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "last_offset": {
+ "description": "The last offset.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "limit": {
+ "description": "Pagination limit.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "next_offset": {
+ "description": "The next offset.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "offset": {
+ "description": "The offset.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "prev_offset": {
+ "description": "The previous offset.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "total": {
+ "description": "Total results.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "type": {
+ "description": "Offset type.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
},
- "type": "array"
+ "type": "object"
}
},
- "required": [
- "errors"
- ],
"type": "object"
}
}
},
- "description": "Bad Request"
+ "description": "Represents a user's association to a team"
},
- "403": {
+ "404": {
"content": {
"application/json": {
"schema": {
@@ -404767,7 +430117,7 @@
}
}
},
- "description": "Authentication error"
+ "description": "API error response."
},
"429": {
"content": {
@@ -404805,32 +430155,19 @@
},
{
"AuthZ": [
- "user_access_invite"
+ "teams_read"
]
}
],
- "summary": "Send invitation emails",
+ "summary": "Get user memberships",
"tags": [
- "Users"
+ "Teams"
],
- "x-codegen-request-body-name": "body",
- "x-given": {
- "user_invitation": {
- "parameters": [
- {
- "name": "body",
- "value": "{\n \"data\": [\n {\n \"relationships\": {\"user\": {\"data\": {\n \"id\": \"{{ user.data.id }}\",\n \"type\": \"{{ user.data.type }}\"\n }}},\n \"type\": \"user_invitations\"\n }\n ]\n}"
- }
- ],
- "source": "data[0]",
- "step": "the \"user\" has a \"user_invitation\""
- }
- },
- "x-menu-order": 8,
+ "x-menu-order": 1,
"x-permission": {
"operator": "OR",
"permissions": [
- "user_access_invite"
+ "teams_read"
]
},
"x-undo": {
@@ -404838,1584 +430175,2369 @@
}
}
},
- "/api/v2/user_invitations/{user_invitation_uuid}": {
- "get": {
- "description": "Returns a single user invitation by its UUID.",
- "operationId": "GetInvitation",
- "parameters": [
- {
- "description": "The UUID of the user invitation.",
- "in": "path",
- "name": "user_invitation_uuid",
- "required": true,
- "schema": {
- "example": "00000000-0000-0000-3456-000000000000",
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "description": "User invitation as returned by the API.",
- "properties": {
- "data": {
- "description": "Object of a user invitation returned by the API.",
- "properties": {
- "attributes": {
- "description": "Attributes of a user invitation.",
- "properties": {
- "created_at": {
- "description": "Creation time of the user invitation.",
- "format": "date-time",
- "type": "string"
- },
- "expires_at": {
- "description": "Time of invitation expiration.",
- "format": "date-time",
- "type": "string"
- },
- "invite_type": {
- "description": "Type of invitation.",
- "type": "string"
+ "/api/v2/workflows": {
+ "post": {
+ "description": "Create a new workflow, returning the workflow ID. This API requires an application key scoped with the `workflows_write` permission.",
+ "operationId": "CreateWorkflow",
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "A request object for creating a new workflow.",
+ "example": {
+ "data": {
+ "attributes": {
+ "description": "A sample workflow.",
+ "name": "Example Workflow",
+ "published": true,
+ "spec": {
+ "annotations": [
+ {
+ "display": {
+ "bounds": {
+ "height": 150,
+ "width": 300,
+ "x": -375,
+ "y": -0.5
+ }
},
- "uuid": {
- "description": "UUID of the user invitation.",
- "type": "string"
+ "id": "99999999-9999-9999-9999-999999999999",
+ "markdownTextAnnotation": {
+ "text": "Example annotation."
}
- },
- "type": "object"
+ }
+ ],
+ "connectionEnvs": [
+ {
+ "connections": [
+ {
+ "connectionId": "11111111-1111-1111-1111-111111111111",
+ "label": "INTEGRATION_DATADOG"
+ }
+ ],
+ "env": "default"
+ }
+ ],
+ "handle": "my-handle",
+ "inputSchema": {
+ "parameters": [
+ {
+ "defaultValue": "default",
+ "name": "input",
+ "type": "STRING"
+ }
+ ]
},
- "id": {
- "description": "ID of the user invitation.",
- "type": "string"
+ "outputSchema": {
+ "parameters": [
+ {
+ "name": "output",
+ "type": "ARRAY_OBJECT",
+ "value": "{{ Steps.Step1 }}"
+ }
+ ]
},
- "relationships": {
- "description": "Relationships data for user invitation.",
- "properties": {
- "user": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
+ "steps": [
+ {
+ "actionId": "com.datadoghq.dd.monitor.listMonitors",
+ "connectionLabel": "INTEGRATION_DATADOG",
+ "name": "Step1",
+ "outboundEdges": [
+ {
+ "branchName": "main",
+ "nextStepName": "Step2"
+ }
+ ],
+ "parameters": [
+ {
+ "name": "tags",
+ "value": "service:monitoring"
+ }
+ ]
+ },
+ {
+ "actionId": "com.datadoghq.core.noop",
+ "name": "Step2"
+ }
+ ],
+ "triggers": [
+ {
+ "monitorTrigger": {
+ "rateLimit": {
+ "count": 1,
+ "interval": "3600s"
+ }
+ },
+ "startStepNames": [
+ "Step1"
+ ]
+ },
+ {
+ "githubWebhookTrigger": {},
+ "startStepNames": [
+ "Step1"
+ ]
+ }
+ ]
+ },
+ "tags": [
+ "team:infra",
+ "service:monitoring",
+ "foo:bar"
+ ]
+ },
+ "type": "workflows"
+ }
+ },
+ "properties": {
+ "data": {
+ "description": "Data related to the workflow.",
+ "properties": {
+ "attributes": {
+ "description": "The definition of `WorkflowDataAttributes` object.",
+ "properties": {
+ "createdAt": {
+ "description": "When the workflow was created.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of the workflow.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the workflow.",
+ "example": "",
+ "type": "string"
+ },
+ "published": {
+ "description": "Set the workflow to published or unpublished. Workflows in an unpublished state will only be executable via manual runs. Automatic triggers such as Schedule will not execute the workflow until it is published.",
+ "type": "boolean"
+ },
+ "spec": {
+ "description": "The spec defines what the workflow does.",
+ "properties": {
+ "annotations": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "items": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
"properties": {
+ "display": {
+ "description": "The definition of `AnnotationDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `AnnotationDisplayBounds` object.",
+ "properties": {
+ "height": {
+ "description": "The `bounds` `height`.",
+ "format": "double",
+ "type": "number"
+ },
+ "width": {
+ "description": "The `bounds` `width`.",
+ "format": "double",
+ "type": "number"
+ },
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
"id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
+ "description": "The `Annotation` `id`.",
+ "example": "",
"type": "string"
},
- "type": {
- "default": "users",
- "description": "Users resource type.",
+ "markdownTextAnnotation": {
+ "description": "The definition of `AnnotationMarkdownTextAnnotation` object.",
+ "properties": {
+ "text": {
+ "description": "The `markdownTextAnnotation` `text`.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "required": [
+ "id",
+ "display",
+ "markdownTextAnnotation"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "connectionEnvs": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "items": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "properties": {
+ "connectionGroups": {
+ "description": "The `ConnectionEnv` `connectionGroups`.",
+ "items": {
+ "description": "The definition of `ConnectionGroup` object.",
+ "properties": {
+ "connectionGroupId": {
+ "description": "The `ConnectionGroup` `connectionGroupId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `ConnectionGroup` `label`.",
+ "example": "",
+ "type": "string"
+ },
+ "tags": {
+ "description": "The `ConnectionGroup` `tags`.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "connectionGroupId",
+ "label",
+ "tags"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "connections": {
+ "description": "The `ConnectionEnv` `connections`.",
+ "items": {
+ "description": "The definition of `Connection` object.",
+ "properties": {
+ "connectionId": {
+ "description": "The `Connection` `connectionId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `Connection` `label`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "connectionId",
+ "label"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "env": {
+ "description": "The definition of `ConnectionEnvEnv` object.",
"enum": [
- "users"
+ "default"
],
- "example": "users",
+ "example": "default",
"type": "string",
"x-enum-varnames": [
- "USERS"
+ "DEFAULT"
]
}
},
"required": [
- "id",
- "type"
+ "env"
],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- }
- },
- "required": [
- "user"
- ],
- "type": "object"
- },
- "type": {
- "default": "user_invitations",
- "description": "User invitations type.",
- "enum": [
- "user_invitations"
- ],
- "example": "user_invitations",
- "type": "string",
- "x-enum-varnames": [
- "USER_INVITATIONS"
- ]
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
- }
- }
- },
- "description": "OK"
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Authentication error"
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Not found"
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Too many requests"
- }
- },
- "security": [
- {
- "apiKeyAuth": [],
- "appKeyAuth": []
- },
- {
- "AuthZ": [
- "user_access_invite"
- ]
- }
- ],
- "summary": "Get a user invitation",
- "tags": [
- "Users"
- ],
- "x-codegen-request-body-name": "body",
- "x-menu-order": 9,
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "user_access_invite"
- ]
- },
- "x-undo": {
- "type": "safe"
- }
- }
- },
- "/api/v2/users": {
- "get": {
- "description": "Get the list of all users in the organization. This list includes\nall users even if they are deactivated or unverified.",
- "operationId": "ListUsers",
- "parameters": [
- {
- "description": "Size for a given page. The maximum allowed value is 100.",
- "in": "query",
- "name": "page[size]",
- "required": false,
- "schema": {
- "default": 10,
- "example": 10,
- "format": "int64",
- "type": "integer"
- }
- },
- {
- "description": "Specific page number to return.",
- "in": "query",
- "name": "page[number]",
- "required": false,
- "schema": {
- "default": 0,
- "example": 0,
- "format": "int64",
- "type": "integer"
- }
- },
- {
- "description": "User attribute to order results by. Sort order is ascending by default.\nSort order is descending if the field\nis prefixed by a negative sign, for example `sort=-name`. Options: `name`,\n`modified_at`, `user_count`.",
- "in": "query",
- "name": "sort",
- "required": false,
- "schema": {
- "default": "name",
- "example": "name",
- "type": "string"
- }
- },
- {
- "description": "Direction of sort. Options: `asc`, `desc`.",
- "in": "query",
- "name": "sort_dir",
- "required": false,
- "schema": {
- "default": "desc",
- "description": "Direction of sort.",
- "enum": [
- "asc",
- "desc"
- ],
- "type": "string",
- "x-enum-varnames": [
- "ASC",
- "DESC"
- ]
- }
- },
- {
- "description": "Filter all users by the given string. Defaults to no filtering.",
- "in": "query",
- "name": "filter",
- "required": false,
- "schema": {
- "type": "string"
- }
- },
- {
- "description": "Filter on status attribute.\nComma separated list, with possible values `Active`, `Pending`, and `Disabled`.\nDefaults to no filtering.",
- "in": "query",
- "name": "filter[status]",
- "required": false,
- "schema": {
- "example": "Active",
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Response containing information about multiple users.",
- "properties": {
- "data": {
- "description": "Array of returned users.",
- "items": {
- "description": "User object returned by the API.",
- "properties": {
- "attributes": {
- "description": "Attributes of user object returned by the API.",
- "properties": {
- "created_at": {
- "description": "Creation time of the user.",
- "format": "date-time",
- "type": "string"
- },
- "disabled": {
- "description": "Whether the user is disabled.",
- "type": "boolean"
- },
- "email": {
- "description": "Email of the user.",
- "type": "string"
+ "type": "object"
+ },
+ "type": "array"
},
"handle": {
- "description": "Handle of the user.",
- "type": "string"
- },
- "icon": {
- "description": "URL of the user's icon.",
- "type": "string"
- },
- "mfa_enabled": {
- "description": "If user has MFA enabled.",
- "readOnly": true,
- "type": "boolean"
- },
- "modified_at": {
- "description": "Time that the user was last modified.",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "Name of the user.",
- "nullable": true,
+ "description": "Unique identifier used to trigger workflows automatically in Datadog.",
"type": "string"
},
- "service_account": {
- "description": "Whether the user is a service account.",
- "type": "boolean"
+ "inputSchema": {
+ "description": "A list of input parameters for the workflow. These can be used as dynamic runtime values in your workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `InputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `InputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `InputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `InputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `InputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `InputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `InputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
},
- "status": {
- "description": "Status of the user.",
- "type": "string"
+ "outputSchema": {
+ "description": "A list of output parameters for the workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `OutputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `OutputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `OutputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `OutputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `OutputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `OutputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `OutputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ },
+ "value": {
+ "description": "The `OutputSchemaParameters` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
},
- "title": {
- "description": "Title of the user.",
- "nullable": true,
- "type": "string"
+ "steps": {
+ "description": "A `Step` is a sub-component of a workflow. Each `Step` performs an action.",
+ "items": {
+ "description": "A Step is a sub-component of a workflow. Each Step performs an action.",
+ "properties": {
+ "actionId": {
+ "description": "The unique identifier of an action.",
+ "example": "",
+ "type": "string"
+ },
+ "completionGate": {
+ "description": "Used to create conditions before running subsequent actions.",
+ "properties": {
+ "completionCondition": {
+ "description": "The definition of `CompletionCondition` object.",
+ "properties": {
+ "operand1": {
+ "description": "The `CompletionCondition` `operand1`."
+ },
+ "operand2": {
+ "description": "The `CompletionCondition` `operand2`."
+ },
+ "operator": {
+ "description": "The definition of `CompletionConditionOperator` object.",
+ "enum": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ],
+ "example": "OPERATOR_EQUAL",
+ "type": "string",
+ "x-enum-varnames": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ]
+ }
+ },
+ "required": [
+ "operand1",
+ "operator"
+ ],
+ "type": "object"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "completionCondition",
+ "retryStrategy"
+ ],
+ "type": "object"
+ },
+ "connectionLabel": {
+ "description": "The unique identifier of a connection defined in the spec.",
+ "type": "string"
+ },
+ "display": {
+ "description": "The definition of `StepDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `StepDisplayBounds` object.",
+ "properties": {
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "errorHandlers": {
+ "description": "The `Step` `errorHandlers`.",
+ "items": {
+ "description": "Used to handle errors in an action.",
+ "properties": {
+ "fallbackStepName": {
+ "description": "The `ErrorHandler` `fallbackStepName`.",
+ "example": "",
+ "type": "string"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "retryStrategy",
+ "fallbackStepName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the step.",
+ "example": "",
+ "type": "string"
+ },
+ "outboundEdges": {
+ "description": "A list of subsequent actions to run.",
+ "items": {
+ "description": "The definition of `OutboundEdge` object.",
+ "properties": {
+ "branchName": {
+ "description": "The `OutboundEdge` `branchName`.",
+ "example": "",
+ "type": "string"
+ },
+ "nextStepName": {
+ "description": "The `OutboundEdge` `nextStepName`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "nextStepName",
+ "branchName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "parameters": {
+ "description": "A list of inputs for an action.",
+ "items": {
+ "description": "The definition of `Parameter` object.",
+ "properties": {
+ "name": {
+ "description": "The `Parameter` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "value": {
+ "description": "The `Parameter` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "value"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "readinessGate": {
+ "description": "Used to merge multiple branches into a single branch.",
+ "properties": {
+ "thresholdType": {
+ "description": "The definition of `ReadinessGateThresholdType` object.",
+ "enum": [
+ "ANY",
+ "ALL"
+ ],
+ "example": "ANY",
+ "type": "string",
+ "x-enum-varnames": [
+ "ANY",
+ "ALL"
+ ]
+ }
+ },
+ "required": [
+ "thresholdType"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "name",
+ "actionId"
+ ],
+ "type": "object"
+ },
+ "type": "array"
},
- "verified": {
- "description": "Whether the user is verified.",
- "type": "boolean"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "ID of the user.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the user object returned by the API.",
- "properties": {
- "org": {
- "description": "Relationship to an organization.",
- "properties": {
- "data": {
- "description": "Relationship to organization object.",
- "properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
- "type": "string"
+ "triggers": {
+ "description": "The list of triggers that activate this workflow. At least one trigger is required, and each trigger type may appear at most once.",
+ "items": {
+ "description": "One of the triggers that can start the execution of a workflow.",
+ "oneOf": [
+ {
+ "description": "Schema for an API-based trigger.",
+ "properties": {
+ "apiTrigger": {
+ "description": "Trigger a workflow VIA an API. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "apiTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an App-based trigger.",
+ "properties": {
+ "appTrigger": {
+ "description": "Trigger a workflow VIA an App.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "appTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Case-based trigger.",
+ "properties": {
+ "caseTrigger": {
+ "description": "Trigger a workflow VIA a Case. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
},
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
- }
+ "required": [
+ "caseTrigger"
+ ],
+ "type": "object"
},
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "other_orgs": {
- "description": "Relationship to organizations.",
- "properties": {
- "data": {
- "description": "Relationships to organization objects.",
- "example": [],
- "items": {
- "description": "Relationship to organization object.",
+ {
+ "description": "Schema for a Change Event-based trigger.",
"properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
- "type": "string"
+ "changeEventTrigger": {
+ "description": "Trigger a workflow VIA a Change Event.",
+ "type": "object"
},
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
}
},
"required": [
- "id",
- "type"
+ "changeEventTrigger"
],
"type": "object"
},
- "type": "array"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "other_users": {
- "description": "Relationship to users.",
- "properties": {
- "data": {
- "description": "Relationships to user objects.",
- "example": [],
- "items": {
- "description": "Relationship to user object.",
+ {
+ "description": "Schema for a Dashboard-based trigger.",
"properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
+ "dashboardTrigger": {
+ "description": "Trigger a workflow VIA a Dashboard.",
+ "type": "object"
},
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
}
},
"required": [
- "id",
- "type"
+ "dashboardTrigger"
],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "object"
},
- "type": "array"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "roles": {
- "description": "Relationship to roles.",
- "properties": {
- "data": {
- "description": "An array containing type and the unique identifier of a role.",
- "items": {
- "description": "Relationship to role object.",
+ {
+ "description": "Schema for a GitHub webhook-based trigger.",
"properties": {
- "id": {
- "description": "The unique identifier of the role.",
- "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
- "type": "string"
+ "githubWebhookTrigger": {
+ "description": "Trigger a workflow VIA GitHub webhook. To trigger a workflow from GitHub, you must set a `webhookSecret`. In your GitHub Webhook Settings, set the Payload URL to \"base_url\"/api/v2/workflows/\"workflow_id\"/webhook?orgId=\"org_id\", select application/json for the content type, and be highly recommend enabling SSL verification for security. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
},
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "required": [
+ "githubWebhookTrigger"
+ ],
+ "type": "object"
},
- "type": "array"
- }
+ {
+ "description": "Schema for an Incident-based trigger.",
+ "properties": {
+ "incidentTrigger": {
+ "description": "Trigger a workflow VIA an Incident. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "incidentTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Monitor-based trigger.",
+ "properties": {
+ "monitorTrigger": {
+ "description": "Trigger a workflow VIA a Monitor. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "monitorTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Schedule-based trigger.",
+ "properties": {
+ "scheduleTrigger": {
+ "description": "Trigger a workflow VIA a Schedule. The workflow must be published.",
+ "properties": {
+ "rruleExpression": {
+ "description": "Recurrence rule expression for scheduling.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "rruleExpression"
+ ],
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "scheduleTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Security-based trigger.",
+ "properties": {
+ "securityTrigger": {
+ "description": "Trigger a workflow VIA a Security Signal or Finding. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "securityTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Slack-based trigger.",
+ "properties": {
+ "slackTrigger": {
+ "description": "Trigger a workflow VIA Slack. The workflow must be published.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "slackTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Workflow-based trigger.",
+ "properties": {
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "workflowTrigger": {
+ "description": "Trigger a workflow VIA the Datadog UI. Only required if no other trigger exists.",
+ "type": "object"
+ }
+ },
+ "required": [
+ "workflowTrigger"
+ ],
+ "type": "object"
+ }
+ ]
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "array"
}
},
- "type": "object",
- "x-merge-override": {
- "properties": false
- }
+ "type": "object"
},
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
+ "tags": {
+ "description": "Tags of the workflow.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "updatedAt": {
+ "description": "When the workflow was last updated.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "webhookSecret": {
+ "description": "If a Webhook trigger is defined on this workflow, a webhookSecret is required and should be provided here.",
"type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
+ "writeOnly": true
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "required": [
+ "name",
+ "spec"
+ ],
+ "type": "object"
},
- "type": "array"
- },
- "included": {
- "description": "Array of objects related to the users.",
- "items": {
- "description": "An object related to a user.",
- "oneOf": [
- {
- "description": "Organization object.",
+ "id": {
+ "description": "The workflow identifier",
+ "readOnly": true,
+ "type": "string"
+ },
+ "relationships": {
+ "description": "The definition of `WorkflowDataRelationships` object.",
+ "properties": {
+ "creator": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
"properties": {
- "attributes": {
- "description": "Attributes of the organization.",
+ "data": {
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
"properties": {
- "created_at": {
- "description": "Creation time of the organization.",
- "format": "date-time",
- "type": "string"
- },
- "description": {
- "description": "Description of the organization.",
- "type": "string"
- },
- "disabled": {
- "description": "Whether or not the organization is disabled.",
- "type": "boolean"
- },
- "modified_at": {
- "description": "Time of last organization modification.",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "Name of the organization.",
- "type": "string"
- },
- "public_id": {
- "description": "Public ID of the organization.",
- "type": "string"
- },
- "sharing": {
- "description": "Sharing type of the organization.",
+ "id": {
+ "description": "The user identifier",
+ "example": "",
"type": "string"
},
- "url": {
- "description": "URL of the site that this organization exists at.",
- "type": "string"
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
}
},
- "type": "object"
- },
- "id": {
- "description": "ID of the organization.",
- "type": "string"
- },
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
+ "required": [
+ "type",
+ "id"
],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
+ "type": "object"
}
},
- "required": [
- "type"
- ],
"type": "object"
},
- {
- "description": "Permission object.",
+ "owner": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
"properties": {
- "attributes": {
- "description": "Attributes of a permission.",
+ "data": {
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
"properties": {
- "created": {
- "description": "Creation time of the permission.",
- "format": "date-time",
- "type": "string"
- },
- "description": {
- "description": "Description of the permission.",
- "type": "string"
- },
- "display_name": {
- "description": "Displayed name for the permission.",
- "type": "string"
- },
- "display_type": {
- "description": "Display type.",
- "type": "string"
- },
- "group_name": {
- "description": "Name of the permission group.",
- "type": "string"
- },
- "name": {
- "description": "Name of the permission.",
+ "id": {
+ "description": "The user identifier",
+ "example": "",
"type": "string"
},
- "restricted": {
- "description": "Whether or not the permission is restricted.",
- "type": "boolean"
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
}
},
- "type": "object"
- },
- "id": {
- "description": "ID of the permission.",
- "type": "string"
- },
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
- "enum": [
- "permissions"
+ "required": [
+ "type",
+ "id"
],
- "example": "permissions",
- "type": "string",
- "x-enum-varnames": [
- "PERMISSIONS"
- ]
+ "type": "object"
}
},
- "required": [
- "type"
- ],
"type": "object"
- },
- {
- "description": "Role object returned by the API.",
- "properties": {
- "attributes": {
- "description": "Attributes of the role.",
- "properties": {
- "created_at": {
- "description": "Creation time of the role.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
+ }
+ },
+ "readOnly": true,
+ "type": "object"
+ },
+ "type": {
+ "description": "The definition of `WorkflowDataType` object.",
+ "enum": [
+ "workflows"
+ ],
+ "example": "workflows",
+ "type": "string",
+ "x-enum-varnames": [
+ "WORKFLOWS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "attributes"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "The response object after creating a new workflow.",
+ "properties": {
+ "data": {
+ "description": "Data related to the workflow.",
+ "properties": {
+ "attributes": {
+ "description": "The definition of `WorkflowDataAttributes` object.",
+ "properties": {
+ "createdAt": {
+ "description": "When the workflow was created.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of the workflow.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the workflow.",
+ "example": "",
+ "type": "string"
+ },
+ "published": {
+ "description": "Set the workflow to published or unpublished. Workflows in an unpublished state will only be executable via manual runs. Automatic triggers such as Schedule will not execute the workflow until it is published.",
+ "type": "boolean"
+ },
+ "spec": {
+ "description": "The spec defines what the workflow does.",
+ "properties": {
+ "annotations": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "items": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "properties": {
+ "display": {
+ "description": "The definition of `AnnotationDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `AnnotationDisplayBounds` object.",
+ "properties": {
+ "height": {
+ "description": "The `bounds` `height`.",
+ "format": "double",
+ "type": "number"
+ },
+ "width": {
+ "description": "The `bounds` `width`.",
+ "format": "double",
+ "type": "number"
+ },
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The `Annotation` `id`.",
+ "example": "",
+ "type": "string"
+ },
+ "markdownTextAnnotation": {
+ "description": "The definition of `AnnotationMarkdownTextAnnotation` object.",
+ "properties": {
+ "text": {
+ "description": "The `markdownTextAnnotation` `text`.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "required": [
+ "id",
+ "display",
+ "markdownTextAnnotation"
+ ],
+ "type": "object"
},
- "modified_at": {
- "description": "Time of last role modification.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
+ "type": "array"
+ },
+ "connectionEnvs": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "items": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "properties": {
+ "connectionGroups": {
+ "description": "The `ConnectionEnv` `connectionGroups`.",
+ "items": {
+ "description": "The definition of `ConnectionGroup` object.",
+ "properties": {
+ "connectionGroupId": {
+ "description": "The `ConnectionGroup` `connectionGroupId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `ConnectionGroup` `label`.",
+ "example": "",
+ "type": "string"
+ },
+ "tags": {
+ "description": "The `ConnectionGroup` `tags`.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "connectionGroupId",
+ "label",
+ "tags"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "connections": {
+ "description": "The `ConnectionEnv` `connections`.",
+ "items": {
+ "description": "The definition of `Connection` object.",
+ "properties": {
+ "connectionId": {
+ "description": "The `Connection` `connectionId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `Connection` `label`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "connectionId",
+ "label"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "env": {
+ "description": "The definition of `ConnectionEnvEnv` object.",
+ "enum": [
+ "default"
+ ],
+ "example": "default",
+ "type": "string",
+ "x-enum-varnames": [
+ "DEFAULT"
+ ]
+ }
+ },
+ "required": [
+ "env"
+ ],
+ "type": "object"
},
- "name": {
- "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
- "type": "string"
+ "type": "array"
+ },
+ "handle": {
+ "description": "Unique identifier used to trigger workflows automatically in Datadog.",
+ "type": "string"
+ },
+ "inputSchema": {
+ "description": "A list of input parameters for the workflow. These can be used as dynamic runtime values in your workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `InputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `InputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `InputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `InputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `InputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `InputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `InputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
},
- "user_count": {
- "description": "Number of users with that role.",
- "format": "int64",
- "readOnly": true,
- "type": "integer"
- }
+ "type": "object"
},
- "type": "object"
- },
- "id": {
- "description": "The unique identifier of the role.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the role object returned by the API.",
- "properties": {
- "permissions": {
- "description": "Relationship to multiple permissions objects.",
+ "outputSchema": {
+ "description": "A list of output parameters for the workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `OutputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `OutputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `OutputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `OutputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `OutputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `OutputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `OutputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ },
+ "value": {
+ "description": "The `OutputSchemaParameters` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "steps": {
+ "description": "A `Step` is a sub-component of a workflow. Each `Step` performs an action.",
+ "items": {
+ "description": "A Step is a sub-component of a workflow. Each Step performs an action.",
"properties": {
- "data": {
- "description": "Relationships to permission objects.",
+ "actionId": {
+ "description": "The unique identifier of an action.",
+ "example": "",
+ "type": "string"
+ },
+ "completionGate": {
+ "description": "Used to create conditions before running subsequent actions.",
+ "properties": {
+ "completionCondition": {
+ "description": "The definition of `CompletionCondition` object.",
+ "properties": {
+ "operand1": {
+ "description": "The `CompletionCondition` `operand1`."
+ },
+ "operand2": {
+ "description": "The `CompletionCondition` `operand2`."
+ },
+ "operator": {
+ "description": "The definition of `CompletionConditionOperator` object.",
+ "enum": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ],
+ "example": "OPERATOR_EQUAL",
+ "type": "string",
+ "x-enum-varnames": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ]
+ }
+ },
+ "required": [
+ "operand1",
+ "operator"
+ ],
+ "type": "object"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "completionCondition",
+ "retryStrategy"
+ ],
+ "type": "object"
+ },
+ "connectionLabel": {
+ "description": "The unique identifier of a connection defined in the spec.",
+ "type": "string"
+ },
+ "display": {
+ "description": "The definition of `StepDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `StepDisplayBounds` object.",
+ "properties": {
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "errorHandlers": {
+ "description": "The `Step` `errorHandlers`.",
"items": {
- "description": "Relationship to permission object.",
+ "description": "Used to handle errors in an action.",
"properties": {
- "id": {
- "description": "ID of the permission.",
+ "fallbackStepName": {
+ "description": "The `ErrorHandler` `fallbackStepName`.",
+ "example": "",
+ "type": "string"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "retryStrategy",
+ "fallbackStepName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the step.",
+ "example": "",
+ "type": "string"
+ },
+ "outboundEdges": {
+ "description": "A list of subsequent actions to run.",
+ "items": {
+ "description": "The definition of `OutboundEdge` object.",
+ "properties": {
+ "branchName": {
+ "description": "The `OutboundEdge` `branchName`.",
+ "example": "",
+ "type": "string"
+ },
+ "nextStepName": {
+ "description": "The `OutboundEdge` `nextStepName`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "nextStepName",
+ "branchName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "parameters": {
+ "description": "A list of inputs for an action.",
+ "items": {
+ "description": "The definition of `Parameter` object.",
+ "properties": {
+ "name": {
+ "description": "The `Parameter` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "value": {
+ "description": "The `Parameter` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "value"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "readinessGate": {
+ "description": "Used to merge multiple branches into a single branch.",
+ "properties": {
+ "thresholdType": {
+ "description": "The definition of `ReadinessGateThresholdType` object.",
+ "enum": [
+ "ANY",
+ "ALL"
+ ],
+ "example": "ANY",
+ "type": "string",
+ "x-enum-varnames": [
+ "ANY",
+ "ALL"
+ ]
+ }
+ },
+ "required": [
+ "thresholdType"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "name",
+ "actionId"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "triggers": {
+ "description": "The list of triggers that activate this workflow. At least one trigger is required, and each trigger type may appear at most once.",
+ "items": {
+ "description": "One of the triggers that can start the execution of a workflow.",
+ "oneOf": [
+ {
+ "description": "Schema for an API-based trigger.",
+ "properties": {
+ "apiTrigger": {
+ "description": "Trigger a workflow VIA an API. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "apiTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an App-based trigger.",
+ "properties": {
+ "appTrigger": {
+ "description": "Trigger a workflow VIA an App.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "appTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Case-based trigger.",
+ "properties": {
+ "caseTrigger": {
+ "description": "Trigger a workflow VIA a Case. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "caseTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Change Event-based trigger.",
+ "properties": {
+ "changeEventTrigger": {
+ "description": "Trigger a workflow VIA a Change Event.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "changeEventTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Dashboard-based trigger.",
+ "properties": {
+ "dashboardTrigger": {
+ "description": "Trigger a workflow VIA a Dashboard.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "dashboardTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a GitHub webhook-based trigger.",
+ "properties": {
+ "githubWebhookTrigger": {
+ "description": "Trigger a workflow VIA GitHub webhook. To trigger a workflow from GitHub, you must set a `webhookSecret`. In your GitHub Webhook Settings, set the Payload URL to \"base_url\"/api/v2/workflows/\"workflow_id\"/webhook?orgId=\"org_id\", select application/json for the content type, and be highly recommend enabling SSL verification for security. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "githubWebhookTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an Incident-based trigger.",
+ "properties": {
+ "incidentTrigger": {
+ "description": "Trigger a workflow VIA an Incident. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
"type": "string"
},
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
- "enum": [
- "permissions"
- ],
- "example": "permissions",
- "type": "string",
- "x-enum-varnames": [
- "PERMISSIONS"
- ]
- }
+ "type": "array"
+ }
+ },
+ "required": [
+ "incidentTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Monitor-based trigger.",
+ "properties": {
+ "monitorTrigger": {
+ "description": "Trigger a workflow VIA a Monitor. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
},
- "type": "object",
- "x-merge-override": {
- "required": false
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
}
},
- "type": "array"
+ "required": [
+ "monitorTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Schedule-based trigger.",
+ "properties": {
+ "scheduleTrigger": {
+ "description": "Trigger a workflow VIA a Schedule. The workflow must be published.",
+ "properties": {
+ "rruleExpression": {
+ "description": "Recurrence rule expression for scheduling.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "rruleExpression"
+ ],
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "scheduleTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Security-based trigger.",
+ "properties": {
+ "securityTrigger": {
+ "description": "Trigger a workflow VIA a Security Signal or Finding. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "securityTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Slack-based trigger.",
+ "properties": {
+ "slackTrigger": {
+ "description": "Trigger a workflow VIA Slack. The workflow must be published.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "slackTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Workflow-based trigger.",
+ "properties": {
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "workflowTrigger": {
+ "description": "Trigger a workflow VIA the Datadog UI. Only required if no other trigger exists.",
+ "type": "object"
+ }
+ },
+ "required": [
+ "workflowTrigger"
+ ],
+ "type": "object"
}
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
+ ]
+ },
+ "type": "array"
+ }
},
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- ]
- },
- "type": "array"
- },
- "meta": {
- "description": "Object describing meta attributes of response.",
- "properties": {
- "page": {
- "description": "Pagination object.",
- "properties": {
- "total_count": {
- "description": "Total count.",
- "format": "int64",
- "type": "integer"
+ "type": "object"
},
- "total_filtered_count": {
- "description": "Total count of elements matched by the filter.",
- "format": "int64",
- "type": "integer"
- }
- },
- "type": "object"
- }
- },
- "type": "object",
- "x-merge-override": {
- "properties": false
- }
- }
- },
- "readOnly": true,
- "type": "object"
- }
- }
- },
- "description": "OK"
- },
- "400": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Bad Request"
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Authentication error"
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Too many requests"
- }
- },
- "security": [
- {
- "apiKeyAuth": [],
- "appKeyAuth": []
- },
- {
- "AuthZ": [
- "user_access_read"
- ]
- }
- ],
- "summary": "List all users",
- "tags": [
- "Users"
- ],
- "x-codegen-request-body-name": "body",
- "x-menu-order": 1,
- "x-pagination": {
- "limitParam": "page[size]",
- "pageParam": "page[number]",
- "resultsPath": "data"
- },
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "user_access_read"
- ]
- },
- "x-undo": {
- "type": "safe"
- }
- },
- "post": {
- "description": "Create a user for your organization.",
- "operationId": "CreateUser",
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Create a user.",
- "properties": {
- "data": {
- "description": "Object to create a user.",
- "properties": {
- "attributes": {
- "description": "Attributes of the created user.",
- "properties": {
- "email": {
- "description": "The email of the user.",
- "example": "jane.doe@example.com",
- "type": "string"
- },
- "name": {
- "description": "The name of the user.",
- "type": "string"
- },
- "title": {
- "description": "The title of the user.",
- "type": "string"
- }
- },
- "required": [
- "email"
- ],
- "type": "object"
- },
- "relationships": {
- "description": "Relationships of the user object.",
- "properties": {
- "roles": {
- "description": "Relationship to roles.",
- "properties": {
- "data": {
- "description": "An array containing type and the unique identifier of a role.",
- "items": {
- "description": "Relationship to role object.",
- "properties": {
- "id": {
- "description": "The unique identifier of the role.",
- "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
- "type": "string"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
+ "tags": {
+ "description": "Tags of the workflow.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "attributes",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- }
- }
- },
- "required": true
- },
- "responses": {
- "201": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Response containing information about a single user.",
- "properties": {
- "data": {
- "description": "User object returned by the API.",
- "properties": {
- "attributes": {
- "description": "Attributes of user object returned by the API.",
- "properties": {
- "created_at": {
- "description": "Creation time of the user.",
+ "updatedAt": {
+ "description": "When the workflow was last updated.",
"format": "date-time",
- "type": "string"
- },
- "disabled": {
- "description": "Whether the user is disabled.",
- "type": "boolean"
- },
- "email": {
- "description": "Email of the user.",
- "type": "string"
- },
- "handle": {
- "description": "Handle of the user.",
- "type": "string"
- },
- "icon": {
- "description": "URL of the user's icon.",
- "type": "string"
- },
- "mfa_enabled": {
- "description": "If user has MFA enabled.",
"readOnly": true,
- "type": "boolean"
- },
- "modified_at": {
- "description": "Time that the user was last modified.",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "Name of the user.",
- "nullable": true,
- "type": "string"
- },
- "service_account": {
- "description": "Whether the user is a service account.",
- "type": "boolean"
- },
- "status": {
- "description": "Status of the user.",
- "type": "string"
- },
- "title": {
- "description": "Title of the user.",
- "nullable": true,
"type": "string"
},
- "verified": {
- "description": "Whether the user is verified.",
- "type": "boolean"
+ "webhookSecret": {
+ "description": "If a Webhook trigger is defined on this workflow, a webhookSecret is required and should be provided here.",
+ "type": "string",
+ "writeOnly": true
}
},
+ "required": [
+ "name",
+ "spec"
+ ],
"type": "object"
},
"id": {
- "description": "ID of the user.",
+ "description": "The workflow identifier",
+ "readOnly": true,
"type": "string"
},
"relationships": {
- "description": "Relationships of the user object returned by the API.",
+ "description": "The definition of `WorkflowDataRelationships` object.",
"properties": {
- "org": {
- "description": "Relationship to an organization.",
+ "creator": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
"properties": {
"data": {
- "description": "Relationship to organization object.",
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
"properties": {
"id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
+ "description": "The user identifier",
+ "example": "",
"type": "string"
},
"type": {
- "default": "orgs",
- "description": "Organizations resource type.",
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
"enum": [
- "orgs"
+ "users"
],
- "example": "orgs",
+ "example": "users",
"type": "string",
"x-enum-varnames": [
- "ORGS"
+ "USERS"
]
}
},
"required": [
- "id",
- "type"
+ "type",
+ "id"
],
"type": "object"
}
},
- "required": [
- "data"
- ],
- "type": "object"
- },
- "other_orgs": {
- "description": "Relationship to organizations.",
- "properties": {
- "data": {
- "description": "Relationships to organization objects.",
- "example": [],
- "items": {
- "description": "Relationship to organization object.",
- "properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
- "type": "string"
- },
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- },
- "type": "array"
- }
- },
- "required": [
- "data"
- ],
"type": "object"
},
- "other_users": {
- "description": "Relationship to users.",
+ "owner": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
"properties": {
"data": {
- "description": "Relationships to user objects.",
- "example": [],
- "items": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
+ "properties": {
+ "id": {
+ "description": "The user identifier",
+ "example": "",
+ "type": "string"
},
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
}
},
- "type": "array"
+ "required": [
+ "type",
+ "id"
+ ],
+ "type": "object"
}
},
- "required": [
- "data"
- ],
"type": "object"
- },
- "roles": {
- "description": "Relationship to roles.",
- "properties": {
- "data": {
- "description": "An array containing type and the unique identifier of a role.",
- "items": {
- "description": "Relationship to role object.",
- "properties": {
- "id": {
- "description": "The unique identifier of the role.",
- "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
- "type": "string"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
}
},
- "type": "object",
- "x-merge-override": {
- "properties": false
- }
+ "readOnly": true,
+ "type": "object"
},
"type": {
- "default": "users",
- "description": "Users resource type.",
+ "description": "The definition of `WorkflowDataType` object.",
"enum": [
- "users"
+ "workflows"
],
- "example": "users",
+ "example": "workflows",
"type": "string",
"x-enum-varnames": [
- "USERS"
+ "WORKFLOWS"
]
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "included": {
- "description": "Array of objects related to the user.",
- "items": {
- "description": "An object related to a user.",
- "oneOf": [
- {
- "description": "Organization object.",
- "properties": {
- "attributes": {
- "description": "Attributes of the organization.",
- "properties": {
- "created_at": {
- "description": "Creation time of the organization.",
- "format": "date-time",
- "type": "string"
- },
- "description": {
- "description": "Description of the organization.",
- "type": "string"
- },
- "disabled": {
- "description": "Whether or not the organization is disabled.",
- "type": "boolean"
- },
- "modified_at": {
- "description": "Time of last organization modification.",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "Name of the organization.",
- "type": "string"
- },
- "public_id": {
- "description": "Public ID of the organization.",
- "type": "string"
- },
- "sharing": {
- "description": "Sharing type of the organization.",
- "type": "string"
- },
- "url": {
- "description": "URL of the site that this organization exists at.",
- "type": "string"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "ID of the organization.",
- "type": "string"
- },
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object"
- },
- {
- "description": "Permission object.",
- "properties": {
- "attributes": {
- "description": "Attributes of a permission.",
- "properties": {
- "created": {
- "description": "Creation time of the permission.",
- "format": "date-time",
- "type": "string"
- },
- "description": {
- "description": "Description of the permission.",
- "type": "string"
- },
- "display_name": {
- "description": "Displayed name for the permission.",
- "type": "string"
- },
- "display_type": {
- "description": "Display type.",
- "type": "string"
- },
- "group_name": {
- "description": "Name of the permission group.",
- "type": "string"
- },
- "name": {
- "description": "Name of the permission.",
- "type": "string"
- },
- "restricted": {
- "description": "Whether or not the permission is restricted.",
- "type": "boolean"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "ID of the permission.",
- "type": "string"
- },
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
- "enum": [
- "permissions"
- ],
- "example": "permissions",
- "type": "string",
- "x-enum-varnames": [
- "PERMISSIONS"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object"
- },
- {
- "description": "Role object returned by the API.",
- "properties": {
- "attributes": {
- "description": "Attributes of the role.",
- "properties": {
- "created_at": {
- "description": "Creation time of the role.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified_at": {
- "description": "Time of last role modification.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "name": {
- "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
- "type": "string"
- },
- "user_count": {
- "description": "Number of users with that role.",
- "format": "int64",
- "readOnly": true,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "The unique identifier of the role.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the role object returned by the API.",
- "properties": {
- "permissions": {
- "description": "Relationship to multiple permissions objects.",
- "properties": {
- "data": {
- "description": "Relationships to permission objects.",
- "items": {
- "description": "Relationship to permission object.",
- "properties": {
- "id": {
- "description": "ID of the permission.",
- "type": "string"
- },
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
- "enum": [
- "permissions"
- ],
- "example": "permissions",
- "type": "string",
- "x-enum-varnames": [
- "PERMISSIONS"
- ]
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- ]
- },
- "type": "array"
+ "required": [
+ "type",
+ "attributes"
+ ],
+ "type": "object"
}
},
+ "required": [
+ "data"
+ ],
"type": "object"
}
}
},
- "description": "OK"
+ "description": "Successfully created a workflow."
},
"400": {
"content": {
@@ -406425,13 +432547,52 @@
"properties": {
"errors": {
"description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
"items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
"type": "array"
}
@@ -406443,7 +432604,7 @@
}
}
},
- "description": "Bad Request"
+ "description": "Bad request"
},
"403": {
"content": {
@@ -406453,13 +432614,52 @@
"properties": {
"errors": {
"description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
"items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
"type": "array"
}
@@ -406471,7 +432671,7 @@
}
}
},
- "description": "Authentication error"
+ "description": "Forbidden"
},
"429": {
"content": {
@@ -406481,13 +432681,52 @@
"properties": {
"errors": {
"description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
"items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
"type": "array"
}
@@ -406502,45 +432741,33 @@
"description": "Too many requests"
}
},
- "security": [
- {
- "apiKeyAuth": [],
- "appKeyAuth": []
- },
- {
- "AuthZ": [
- "user_access_invite"
- ]
- }
- ],
- "summary": "Create a user",
+ "summary": "Create a Workflow",
"tags": [
- "Users"
+ "Workflow Automation"
],
- "x-codegen-request-body-name": "body",
"x-given": {
- "user": {
+ "workflow": {
"parameters": [
{
"name": "body",
- "value": "{\n \"data\": {\n \"attributes\": {\n \"email\": \"{{ unique }}@datadoghq.com\",\n \"title\": \"user title\"\n },\n \"type\": \"users\"\n }\n}"
+ "value": "{\n \"data\": {\n \"type\": \"workflows\",\n \"attributes\": {\n \"name\": \"Cassette Workflow x-given\",\n \"spec\": {\n \"triggers\": [\n {\n \"startStepNames\": [\"No_op\"],\n \"workflowTrigger\": {}\n }\n ],\n \"steps\": [\n {\n \"name\": \"No_op\",\n \"actionId\": \"com.datadoghq.core.noop\"\n }\n ]\n }\n }\n }\n}"
}
],
- "step": "there is a valid \"user\" in the system"
+ "step": "there is a valid \"workflow\" in the system"
}
},
"x-menu-order": 2,
"x-permission": {
"operator": "OR",
"permissions": [
- "user_access_invite"
+ "workflows_write"
]
},
"x-undo": {
- "operationId": "DisableUser",
+ "operationId": "DeleteWorkflow",
"parameters": [
{
- "name": "user_id",
+ "name": "workflow_id",
"source": "data.id"
}
],
@@ -406548,25 +432775,24 @@
}
}
},
- "/api/v2/users/{user_id}": {
+ "/api/v2/workflows/{workflow_id}": {
"delete": {
- "description": "Disable a user. Can only be used with an application key belonging\nto an administrator user.",
- "operationId": "DisableUser",
+ "description": "Delete a workflow by ID. This API requires an application key scoped with the `workflows_write` permission.",
+ "operationId": "DeleteWorkflow",
"parameters": [
{
- "description": "The ID of the user.",
+ "description": "The ID of the workflow.",
"in": "path",
- "name": "user_id",
+ "name": "workflow_id",
"required": true,
"schema": {
- "example": "00000000-0000-9999-0000-000000000000",
"type": "string"
}
}
],
"responses": {
"204": {
- "description": "OK"
+ "description": "Successfully deleted a workflow."
},
"403": {
"content": {
@@ -406576,13 +432802,52 @@
"properties": {
"errors": {
"description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
"items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
"type": "array"
}
@@ -406594,7 +432859,7 @@
}
}
},
- "description": "Authentication error"
+ "description": "Forbidden"
},
"404": {
"content": {
@@ -406604,13 +432869,52 @@
"properties": {
"errors": {
"description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
"items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
"type": "array"
}
@@ -406632,13 +432936,52 @@
"properties": {
"errors": {
"description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
"items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
"type": "array"
}
@@ -406653,28 +432996,15 @@
"description": "Too many requests"
}
},
- "security": [
- {
- "apiKeyAuth": [],
- "appKeyAuth": []
- },
- {
- "AuthZ": [
- "user_access_manage"
- ]
- }
- ],
- "summary": "Disable a user",
+ "summary": "Delete an existing Workflow",
"tags": [
- "Users"
+ "Workflow Automation"
],
- "x-codegen-request-body-name": "body",
- "x-menu-order": 5,
+ "x-menu-order": 4,
"x-permission": {
"operator": "OR",
"permissions": [
- "user_access_manage",
- "service_account_write"
+ "workflows_write"
]
},
"x-undo": {
@@ -406682,16 +433012,15 @@
}
},
"get": {
- "description": "Get a user in the organization specified by the user’s `user_id`.",
- "operationId": "GetUser",
+ "description": "Get a workflow by ID. This API requires an application key scoped with the `workflows_read` permission.",
+ "operationId": "GetWorkflow",
"parameters": [
{
- "description": "The ID of the user.",
+ "description": "The ID of the workflow.",
"in": "path",
- "name": "user_id",
+ "name": "workflow_id",
"required": true,
"schema": {
- "example": "00000000-0000-9999-0000-000000000000",
"type": "string"
}
}
@@ -406701,1194 +433030,1125 @@
"content": {
"application/json": {
"schema": {
- "description": "Response containing information about a single user.",
+ "description": "The response object after getting a workflow.",
"properties": {
"data": {
- "description": "User object returned by the API.",
+ "description": "Data related to the workflow.",
"properties": {
"attributes": {
- "description": "Attributes of user object returned by the API.",
+ "description": "The definition of `WorkflowDataAttributes` object.",
"properties": {
- "created_at": {
- "description": "Creation time of the user.",
+ "createdAt": {
+ "description": "When the workflow was created.",
"format": "date-time",
- "type": "string"
- },
- "disabled": {
- "description": "Whether the user is disabled.",
- "type": "boolean"
- },
- "email": {
- "description": "Email of the user.",
- "type": "string"
- },
- "handle": {
- "description": "Handle of the user.",
- "type": "string"
- },
- "icon": {
- "description": "URL of the user's icon.",
- "type": "string"
- },
- "mfa_enabled": {
- "description": "If user has MFA enabled.",
"readOnly": true,
- "type": "boolean"
- },
- "modified_at": {
- "description": "Time that the user was last modified.",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "Name of the user.",
- "nullable": true,
"type": "string"
},
- "service_account": {
- "description": "Whether the user is a service account.",
- "type": "boolean"
- },
- "status": {
- "description": "Status of the user.",
+ "description": {
+ "description": "Description of the workflow.",
"type": "string"
},
- "title": {
- "description": "Title of the user.",
- "nullable": true,
+ "name": {
+ "description": "Name of the workflow.",
+ "example": "",
"type": "string"
},
- "verified": {
- "description": "Whether the user is verified.",
+ "published": {
+ "description": "Set the workflow to published or unpublished. Workflows in an unpublished state will only be executable via manual runs. Automatic triggers such as Schedule will not execute the workflow until it is published.",
"type": "boolean"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "ID of the user.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the user object returned by the API.",
- "properties": {
- "org": {
- "description": "Relationship to an organization.",
- "properties": {
- "data": {
- "description": "Relationship to organization object.",
- "properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
- "type": "string"
- },
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
},
- "other_orgs": {
- "description": "Relationship to organizations.",
+ "spec": {
+ "description": "The spec defines what the workflow does.",
"properties": {
- "data": {
- "description": "Relationships to organization objects.",
- "example": [],
+ "annotations": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
"items": {
- "description": "Relationship to organization object.",
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
"properties": {
+ "display": {
+ "description": "The definition of `AnnotationDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `AnnotationDisplayBounds` object.",
+ "properties": {
+ "height": {
+ "description": "The `bounds` `height`.",
+ "format": "double",
+ "type": "number"
+ },
+ "width": {
+ "description": "The `bounds` `width`.",
+ "format": "double",
+ "type": "number"
+ },
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
"id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
+ "description": "The `Annotation` `id`.",
+ "example": "",
"type": "string"
},
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
+ "markdownTextAnnotation": {
+ "description": "The definition of `AnnotationMarkdownTextAnnotation` object.",
+ "properties": {
+ "text": {
+ "description": "The `markdownTextAnnotation` `text`.",
+ "type": "string"
+ }
+ },
+ "type": "object"
}
},
"required": [
"id",
- "type"
+ "display",
+ "markdownTextAnnotation"
],
"type": "object"
},
"type": "array"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "other_users": {
- "description": "Relationship to users.",
- "properties": {
- "data": {
- "description": "Relationships to user objects.",
- "example": [],
+ },
+ "connectionEnvs": {
+ "description": "A list of connections or connection groups used in the workflow.",
"items": {
- "description": "Relationship to user object.",
+ "description": "A list of connections or connection groups used in the workflow.",
"properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
+ "connectionGroups": {
+ "description": "The `ConnectionEnv` `connectionGroups`.",
+ "items": {
+ "description": "The definition of `ConnectionGroup` object.",
+ "properties": {
+ "connectionGroupId": {
+ "description": "The `ConnectionGroup` `connectionGroupId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `ConnectionGroup` `label`.",
+ "example": "",
+ "type": "string"
+ },
+ "tags": {
+ "description": "The `ConnectionGroup` `tags`.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "connectionGroupId",
+ "label",
+ "tags"
+ ],
+ "type": "object"
+ },
+ "type": "array"
},
- "type": {
- "default": "users",
- "description": "Users resource type.",
+ "connections": {
+ "description": "The `ConnectionEnv` `connections`.",
+ "items": {
+ "description": "The definition of `Connection` object.",
+ "properties": {
+ "connectionId": {
+ "description": "The `Connection` `connectionId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `Connection` `label`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "connectionId",
+ "label"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "env": {
+ "description": "The definition of `ConnectionEnvEnv` object.",
"enum": [
- "users"
+ "default"
],
- "example": "users",
+ "example": "default",
"type": "string",
"x-enum-varnames": [
- "USERS"
+ "DEFAULT"
]
}
},
"required": [
- "id",
- "type"
+ "env"
],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "object"
},
"type": "array"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "roles": {
- "description": "Relationship to roles.",
- "properties": {
- "data": {
- "description": "An array containing type and the unique identifier of a role.",
+ },
+ "handle": {
+ "description": "Unique identifier used to trigger workflows automatically in Datadog.",
+ "type": "string"
+ },
+ "inputSchema": {
+ "description": "A list of input parameters for the workflow. These can be used as dynamic runtime values in your workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `InputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `InputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `InputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `InputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `InputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `InputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `InputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "outputSchema": {
+ "description": "A list of output parameters for the workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `OutputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `OutputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `OutputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `OutputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `OutputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `OutputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `OutputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ },
+ "value": {
+ "description": "The `OutputSchemaParameters` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "steps": {
+ "description": "A `Step` is a sub-component of a workflow. Each `Step` performs an action.",
"items": {
- "description": "Relationship to role object.",
+ "description": "A Step is a sub-component of a workflow. Each Step performs an action.",
"properties": {
- "id": {
- "description": "The unique identifier of the role.",
- "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "actionId": {
+ "description": "The unique identifier of an action.",
+ "example": "",
"type": "string"
},
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
+ "completionGate": {
+ "description": "Used to create conditions before running subsequent actions.",
+ "properties": {
+ "completionCondition": {
+ "description": "The definition of `CompletionCondition` object.",
+ "properties": {
+ "operand1": {
+ "description": "The `CompletionCondition` `operand1`."
+ },
+ "operand2": {
+ "description": "The `CompletionCondition` `operand2`."
+ },
+ "operator": {
+ "description": "The definition of `CompletionConditionOperator` object.",
+ "enum": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ],
+ "example": "OPERATOR_EQUAL",
+ "type": "string",
+ "x-enum-varnames": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ]
+ }
+ },
+ "required": [
+ "operand1",
+ "operator"
+ ],
+ "type": "object"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "completionCondition",
+ "retryStrategy"
],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
+ "type": "object"
+ },
+ "connectionLabel": {
+ "description": "The unique identifier of a connection defined in the spec.",
+ "type": "string"
+ },
+ "display": {
+ "description": "The definition of `StepDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `StepDisplayBounds` object.",
+ "properties": {
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "errorHandlers": {
+ "description": "The `Step` `errorHandlers`.",
+ "items": {
+ "description": "Used to handle errors in an action.",
+ "properties": {
+ "fallbackStepName": {
+ "description": "The `ErrorHandler` `fallbackStepName`.",
+ "example": "",
+ "type": "string"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "retryStrategy",
+ "fallbackStepName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the step.",
+ "example": "",
+ "type": "string"
+ },
+ "outboundEdges": {
+ "description": "A list of subsequent actions to run.",
+ "items": {
+ "description": "The definition of `OutboundEdge` object.",
+ "properties": {
+ "branchName": {
+ "description": "The `OutboundEdge` `branchName`.",
+ "example": "",
+ "type": "string"
+ },
+ "nextStepName": {
+ "description": "The `OutboundEdge` `nextStepName`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "nextStepName",
+ "branchName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "parameters": {
+ "description": "A list of inputs for an action.",
+ "items": {
+ "description": "The definition of `Parameter` object.",
+ "properties": {
+ "name": {
+ "description": "The `Parameter` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "value": {
+ "description": "The `Parameter` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "value"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "readinessGate": {
+ "description": "Used to merge multiple branches into a single branch.",
+ "properties": {
+ "thresholdType": {
+ "description": "The definition of `ReadinessGateThresholdType` object.",
+ "enum": [
+ "ANY",
+ "ALL"
+ ],
+ "example": "ANY",
+ "type": "string",
+ "x-enum-varnames": [
+ "ANY",
+ "ALL"
+ ]
+ }
+ },
+ "required": [
+ "thresholdType"
+ ],
+ "type": "object"
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "required": [
+ "name",
+ "actionId"
+ ],
+ "type": "object"
},
"type": "array"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object",
- "x-merge-override": {
- "properties": false
- }
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "included": {
- "description": "Array of objects related to the user.",
- "items": {
- "description": "An object related to a user.",
- "oneOf": [
- {
- "description": "Organization object.",
- "properties": {
- "attributes": {
- "description": "Attributes of the organization.",
- "properties": {
- "created_at": {
- "description": "Creation time of the organization.",
- "format": "date-time",
- "type": "string"
- },
- "description": {
- "description": "Description of the organization.",
- "type": "string"
- },
- "disabled": {
- "description": "Whether or not the organization is disabled.",
- "type": "boolean"
- },
- "modified_at": {
- "description": "Time of last organization modification.",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "Name of the organization.",
- "type": "string"
- },
- "public_id": {
- "description": "Public ID of the organization.",
- "type": "string"
- },
- "sharing": {
- "description": "Sharing type of the organization.",
- "type": "string"
- },
- "url": {
- "description": "URL of the site that this organization exists at.",
- "type": "string"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "ID of the organization.",
- "type": "string"
- },
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object"
- },
- {
- "description": "Permission object.",
- "properties": {
- "attributes": {
- "description": "Attributes of a permission.",
- "properties": {
- "created": {
- "description": "Creation time of the permission.",
- "format": "date-time",
- "type": "string"
- },
- "description": {
- "description": "Description of the permission.",
- "type": "string"
- },
- "display_name": {
- "description": "Displayed name for the permission.",
- "type": "string"
- },
- "display_type": {
- "description": "Display type.",
- "type": "string"
- },
- "group_name": {
- "description": "Name of the permission group.",
- "type": "string"
- },
- "name": {
- "description": "Name of the permission.",
- "type": "string"
- },
- "restricted": {
- "description": "Whether or not the permission is restricted.",
- "type": "boolean"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "ID of the permission.",
- "type": "string"
- },
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
- "enum": [
- "permissions"
- ],
- "example": "permissions",
- "type": "string",
- "x-enum-varnames": [
- "PERMISSIONS"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object"
- },
- {
- "description": "Role object returned by the API.",
- "properties": {
- "attributes": {
- "description": "Attributes of the role.",
- "properties": {
- "created_at": {
- "description": "Creation time of the role.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified_at": {
- "description": "Time of last role modification.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "name": {
- "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
- "type": "string"
- },
- "user_count": {
- "description": "Number of users with that role.",
- "format": "int64",
- "readOnly": true,
- "type": "integer"
- }
},
- "type": "object"
- },
- "id": {
- "description": "The unique identifier of the role.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the role object returned by the API.",
- "properties": {
- "permissions": {
- "description": "Relationship to multiple permissions objects.",
- "properties": {
- "data": {
- "description": "Relationships to permission objects.",
- "items": {
- "description": "Relationship to permission object.",
- "properties": {
- "id": {
- "description": "ID of the permission.",
+ "triggers": {
+ "description": "The list of triggers that activate this workflow. At least one trigger is required, and each trigger type may appear at most once.",
+ "items": {
+ "description": "One of the triggers that can start the execution of a workflow.",
+ "oneOf": [
+ {
+ "description": "Schema for an API-based trigger.",
+ "properties": {
+ "apiTrigger": {
+ "description": "Trigger a workflow VIA an API. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "apiTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an App-based trigger.",
+ "properties": {
+ "appTrigger": {
+ "description": "Trigger a workflow VIA an App.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "appTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Case-based trigger.",
+ "properties": {
+ "caseTrigger": {
+ "description": "Trigger a workflow VIA a Case. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "caseTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Change Event-based trigger.",
+ "properties": {
+ "changeEventTrigger": {
+ "description": "Trigger a workflow VIA a Change Event.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "changeEventTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Dashboard-based trigger.",
+ "properties": {
+ "dashboardTrigger": {
+ "description": "Trigger a workflow VIA a Dashboard.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "dashboardTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a GitHub webhook-based trigger.",
+ "properties": {
+ "githubWebhookTrigger": {
+ "description": "Trigger a workflow VIA GitHub webhook. To trigger a workflow from GitHub, you must set a `webhookSecret`. In your GitHub Webhook Settings, set the Payload URL to \"base_url\"/api/v2/workflows/\"workflow_id\"/webhook?orgId=\"org_id\", select application/json for the content type, and be highly recommend enabling SSL verification for security. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
"type": "string"
},
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
- "enum": [
- "permissions"
- ],
- "example": "permissions",
- "type": "string",
- "x-enum-varnames": [
- "PERMISSIONS"
- ]
- }
+ "type": "array"
+ }
+ },
+ "required": [
+ "githubWebhookTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an Incident-based trigger.",
+ "properties": {
+ "incidentTrigger": {
+ "description": "Trigger a workflow VIA an Incident. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
},
- "type": "object",
- "x-merge-override": {
- "required": false
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
}
},
- "type": "array"
+ "required": [
+ "incidentTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Monitor-based trigger.",
+ "properties": {
+ "monitorTrigger": {
+ "description": "Trigger a workflow VIA a Monitor. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "monitorTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Schedule-based trigger.",
+ "properties": {
+ "scheduleTrigger": {
+ "description": "Trigger a workflow VIA a Schedule. The workflow must be published.",
+ "properties": {
+ "rruleExpression": {
+ "description": "Recurrence rule expression for scheduling.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "rruleExpression"
+ ],
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "scheduleTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Security-based trigger.",
+ "properties": {
+ "securityTrigger": {
+ "description": "Trigger a workflow VIA a Security Signal or Finding. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "securityTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Slack-based trigger.",
+ "properties": {
+ "slackTrigger": {
+ "description": "Trigger a workflow VIA Slack. The workflow must be published.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "slackTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Workflow-based trigger.",
+ "properties": {
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "workflowTrigger": {
+ "description": "Trigger a workflow VIA the Datadog UI. Only required if no other trigger exists.",
+ "type": "object"
+ }
+ },
+ "required": [
+ "workflowTrigger"
+ ],
+ "type": "object"
}
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
+ ]
+ },
+ "type": "array"
+ }
},
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- ]
- },
- "type": "array"
- }
- },
- "type": "object"
- }
- }
- },
- "description": "OK"
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Authentication error"
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Not found"
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Too many requests"
- }
- },
- "security": [
- {
- "apiKeyAuth": [],
- "appKeyAuth": []
- },
- {
- "AuthZ": [
- "user_access_read"
- ]
- }
- ],
- "summary": "Get user details",
- "tags": [
- "Users"
- ],
- "x-codegen-request-body-name": "body",
- "x-menu-order": 3,
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "user_access_read"
- ]
- },
- "x-undo": {
- "type": "safe"
- }
- },
- "patch": {
- "description": "Edit a user. Can only be used with an application key belonging\nto an administrator user.",
- "operationId": "UpdateUser",
- "parameters": [
- {
- "description": "The ID of the user.",
- "in": "path",
- "name": "user_id",
- "required": true,
- "schema": {
- "example": "00000000-0000-9999-0000-000000000000",
- "type": "string"
- }
- }
- ],
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Update a user.",
- "properties": {
- "data": {
- "description": "Object to update a user.",
- "properties": {
- "attributes": {
- "description": "Attributes of the edited user.",
- "properties": {
- "disabled": {
- "description": "If the user is enabled or disabled.",
- "type": "boolean"
- },
- "email": {
- "description": "The email of the user.",
- "type": "string"
- },
- "name": {
- "description": "The name of the user.",
- "type": "string"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "ID of the user.",
- "example": "00000000-0000-feed-0000-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "attributes",
- "type",
- "id"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- }
- }
- },
- "required": true
- },
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Response containing information about a single user.",
- "properties": {
- "data": {
- "description": "User object returned by the API.",
- "properties": {
- "attributes": {
- "description": "Attributes of user object returned by the API.",
- "properties": {
- "created_at": {
- "description": "Creation time of the user.",
- "format": "date-time",
- "type": "string"
- },
- "disabled": {
- "description": "Whether the user is disabled.",
- "type": "boolean"
- },
- "email": {
- "description": "Email of the user.",
- "type": "string"
- },
- "handle": {
- "description": "Handle of the user.",
- "type": "string"
- },
- "icon": {
- "description": "URL of the user's icon.",
- "type": "string"
+ "type": "object"
},
- "mfa_enabled": {
- "description": "If user has MFA enabled.",
- "readOnly": true,
- "type": "boolean"
+ "tags": {
+ "description": "Tags of the workflow.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
},
- "modified_at": {
- "description": "Time that the user was last modified.",
+ "updatedAt": {
+ "description": "When the workflow was last updated.",
"format": "date-time",
+ "readOnly": true,
"type": "string"
},
- "name": {
- "description": "Name of the user.",
- "nullable": true,
- "type": "string"
- },
- "service_account": {
- "description": "Whether the user is a service account.",
- "type": "boolean"
- },
- "status": {
- "description": "Status of the user.",
- "type": "string"
- },
- "title": {
- "description": "Title of the user.",
- "nullable": true,
- "type": "string"
- },
- "verified": {
- "description": "Whether the user is verified.",
- "type": "boolean"
+ "webhookSecret": {
+ "description": "If a Webhook trigger is defined on this workflow, a webhookSecret is required and should be provided here.",
+ "type": "string",
+ "writeOnly": true
}
},
+ "required": [
+ "name",
+ "spec"
+ ],
"type": "object"
},
"id": {
- "description": "ID of the user.",
+ "description": "The workflow identifier",
+ "readOnly": true,
"type": "string"
},
"relationships": {
- "description": "Relationships of the user object returned by the API.",
+ "description": "The definition of `WorkflowDataRelationships` object.",
"properties": {
- "org": {
- "description": "Relationship to an organization.",
+ "creator": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
"properties": {
"data": {
- "description": "Relationship to organization object.",
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
"properties": {
"id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
+ "description": "The user identifier",
+ "example": "",
"type": "string"
},
"type": {
- "default": "orgs",
- "description": "Organizations resource type.",
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
"enum": [
- "orgs"
+ "users"
],
- "example": "orgs",
+ "example": "users",
"type": "string",
"x-enum-varnames": [
- "ORGS"
+ "USERS"
]
}
},
"required": [
- "id",
- "type"
+ "type",
+ "id"
],
"type": "object"
}
},
- "required": [
- "data"
- ],
- "type": "object"
- },
- "other_orgs": {
- "description": "Relationship to organizations.",
- "properties": {
- "data": {
- "description": "Relationships to organization objects.",
- "example": [],
- "items": {
- "description": "Relationship to organization object.",
- "properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
- "type": "string"
- },
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- },
- "type": "array"
- }
- },
- "required": [
- "data"
- ],
"type": "object"
},
- "other_users": {
- "description": "Relationship to users.",
+ "owner": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
"properties": {
"data": {
- "description": "Relationships to user objects.",
- "example": [],
- "items": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
+ "properties": {
+ "id": {
+ "description": "The user identifier",
+ "example": "",
+ "type": "string"
},
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
}
},
- "type": "array"
+ "required": [
+ "type",
+ "id"
+ ],
+ "type": "object"
}
},
- "required": [
- "data"
- ],
"type": "object"
- },
- "roles": {
- "description": "Relationship to roles.",
- "properties": {
- "data": {
- "description": "An array containing type and the unique identifier of a role.",
- "items": {
- "description": "Relationship to role object.",
- "properties": {
- "id": {
- "description": "The unique identifier of the role.",
- "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
- "type": "string"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
}
},
- "type": "object",
- "x-merge-override": {
- "properties": false
- }
+ "readOnly": true,
+ "type": "object"
},
"type": {
- "default": "users",
- "description": "Users resource type.",
+ "description": "The definition of `WorkflowDataType` object.",
"enum": [
- "users"
+ "workflows"
],
- "example": "users",
+ "example": "workflows",
"type": "string",
"x-enum-varnames": [
- "USERS"
+ "WORKFLOWS"
]
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "included": {
- "description": "Array of objects related to the user.",
- "items": {
- "description": "An object related to a user.",
- "oneOf": [
- {
- "description": "Organization object.",
- "properties": {
- "attributes": {
- "description": "Attributes of the organization.",
- "properties": {
- "created_at": {
- "description": "Creation time of the organization.",
- "format": "date-time",
- "type": "string"
- },
- "description": {
- "description": "Description of the organization.",
- "type": "string"
- },
- "disabled": {
- "description": "Whether or not the organization is disabled.",
- "type": "boolean"
- },
- "modified_at": {
- "description": "Time of last organization modification.",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "Name of the organization.",
- "type": "string"
- },
- "public_id": {
- "description": "Public ID of the organization.",
- "type": "string"
- },
- "sharing": {
- "description": "Sharing type of the organization.",
- "type": "string"
- },
- "url": {
- "description": "URL of the site that this organization exists at.",
- "type": "string"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "ID of the organization.",
- "type": "string"
- },
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object"
- },
- {
- "description": "Permission object.",
- "properties": {
- "attributes": {
- "description": "Attributes of a permission.",
- "properties": {
- "created": {
- "description": "Creation time of the permission.",
- "format": "date-time",
- "type": "string"
- },
- "description": {
- "description": "Description of the permission.",
- "type": "string"
- },
- "display_name": {
- "description": "Displayed name for the permission.",
- "type": "string"
- },
- "display_type": {
- "description": "Display type.",
- "type": "string"
- },
- "group_name": {
- "description": "Name of the permission group.",
- "type": "string"
- },
- "name": {
- "description": "Name of the permission.",
- "type": "string"
- },
- "restricted": {
- "description": "Whether or not the permission is restricted.",
- "type": "boolean"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "ID of the permission.",
- "type": "string"
- },
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
- "enum": [
- "permissions"
- ],
- "example": "permissions",
- "type": "string",
- "x-enum-varnames": [
- "PERMISSIONS"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object"
- },
- {
- "description": "Role object returned by the API.",
- "properties": {
- "attributes": {
- "description": "Attributes of the role.",
- "properties": {
- "created_at": {
- "description": "Creation time of the role.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified_at": {
- "description": "Time of last role modification.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "name": {
- "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
- "type": "string"
- },
- "user_count": {
- "description": "Number of users with that role.",
- "format": "int64",
- "readOnly": true,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "The unique identifier of the role.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the role object returned by the API.",
- "properties": {
- "permissions": {
- "description": "Relationship to multiple permissions objects.",
- "properties": {
- "data": {
- "description": "Relationships to permission objects.",
- "items": {
- "description": "Relationship to permission object.",
- "properties": {
- "id": {
- "description": "ID of the permission.",
- "type": "string"
- },
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
- "enum": [
- "permissions"
- ],
- "example": "permissions",
- "type": "string",
- "x-enum-varnames": [
- "PERMISSIONS"
- ]
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- ]
- },
- "type": "array"
+ "required": [
+ "type",
+ "attributes"
+ ],
+ "type": "object"
}
},
"type": "object"
}
}
},
- "description": "OK"
+ "description": "Successfully got a workflow."
},
"400": {
"content": {
@@ -407898,13 +434158,52 @@
"properties": {
"errors": {
"description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
"items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
"type": "array"
}
@@ -407916,7 +434215,7 @@
}
}
},
- "description": "Bad Request"
+ "description": "Bad request"
},
"403": {
"content": {
@@ -407926,41 +434225,52 @@
"properties": {
"errors": {
"description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Authentication error"
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
"items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
"type": "array"
}
@@ -407972,9 +434282,9 @@
}
}
},
- "description": "Not found"
+ "description": "Forbidden"
},
- "422": {
+ "404": {
"content": {
"application/json": {
"schema": {
@@ -407982,13 +434292,52 @@
"properties": {
"errors": {
"description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
"items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
"type": "array"
}
@@ -408000,7 +434349,7 @@
}
}
},
- "description": "Unprocessable Entity"
+ "description": "Not found"
},
"429": {
"content": {
@@ -408010,13 +434359,52 @@
"properties": {
"errors": {
"description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
"items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
"type": "array"
}
@@ -408031,1605 +434419,2372 @@
"description": "Too many requests"
}
},
- "security": [
- {
- "apiKeyAuth": [],
- "appKeyAuth": []
- },
- {
- "AuthZ": [
- "user_access_manage"
- ]
- }
- ],
- "summary": "Update a user",
+ "summary": "Get an existing Workflow",
"tags": [
- "Users"
+ "Workflow Automation"
],
- "x-codegen-request-body-name": "body",
- "x-menu-order": 4,
+ "x-menu-order": 1,
"x-permission": {
"operator": "OR",
"permissions": [
- "user_access_manage",
- "service_account_write"
+ "workflows_read"
]
},
"x-undo": {
- "type": "idempotent"
+ "type": "safe"
}
},
- "x-merge-override": {
- "delete": true
- }
- },
- "/api/v2/users/{user_id}/orgs": {
- "get": {
- "description": "Get a user organization. Returns the user information and all organizations\njoined by this user.",
- "operationId": "ListUserOrganizations",
+ "patch": {
+ "description": "Update a workflow by ID. This API requires an application key scoped with the `workflows_write` permission.",
+ "operationId": "UpdateWorkflow",
"parameters": [
{
- "description": "The ID of the user.",
+ "description": "The ID of the workflow.",
"in": "path",
- "name": "user_id",
+ "name": "workflow_id",
"required": true,
"schema": {
- "example": "00000000-0000-9999-0000-000000000000",
"type": "string"
}
}
],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Response containing information about a single user.",
- "properties": {
- "data": {
- "description": "User object returned by the API.",
- "properties": {
- "attributes": {
- "description": "Attributes of user object returned by the API.",
- "properties": {
- "created_at": {
- "description": "Creation time of the user.",
- "format": "date-time",
- "type": "string"
- },
- "disabled": {
- "description": "Whether the user is disabled.",
- "type": "boolean"
- },
- "email": {
- "description": "Email of the user.",
- "type": "string"
- },
- "handle": {
- "description": "Handle of the user.",
- "type": "string"
- },
- "icon": {
- "description": "URL of the user's icon.",
- "type": "string"
- },
- "mfa_enabled": {
- "description": "If user has MFA enabled.",
- "readOnly": true,
- "type": "boolean"
- },
- "modified_at": {
- "description": "Time that the user was last modified.",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "Name of the user.",
- "nullable": true,
- "type": "string"
- },
- "service_account": {
- "description": "Whether the user is a service account.",
- "type": "boolean"
- },
- "status": {
- "description": "Status of the user.",
- "type": "string"
- },
- "title": {
- "description": "Title of the user.",
- "nullable": true,
- "type": "string"
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "A request object for updating an existing workflow.",
+ "example": {
+ "data": {
+ "attributes": {
+ "description": "A sample workflow.",
+ "name": "Example Workflow",
+ "published": true,
+ "spec": {
+ "annotations": [
+ {
+ "display": {
+ "bounds": {
+ "height": 150,
+ "width": 300,
+ "x": -375,
+ "y": -0.5
+ }
},
- "verified": {
- "description": "Whether the user is verified.",
- "type": "boolean"
+ "id": "99999999-9999-9999-9999-999999999999",
+ "markdownTextAnnotation": {
+ "text": "Example annotation."
}
- },
- "type": "object"
+ }
+ ],
+ "connectionEnvs": [
+ {
+ "connections": [
+ {
+ "connectionId": "11111111-1111-1111-1111-111111111111",
+ "label": "INTEGRATION_DATADOG"
+ }
+ ],
+ "env": "default"
+ }
+ ],
+ "handle": "my-handle",
+ "inputSchema": {
+ "parameters": [
+ {
+ "defaultValue": "default",
+ "name": "input",
+ "type": "STRING"
+ }
+ ]
},
- "id": {
- "description": "ID of the user.",
- "type": "string"
+ "outputSchema": {
+ "parameters": [
+ {
+ "name": "output",
+ "type": "ARRAY_OBJECT",
+ "value": "{{ Steps.Step1 }}"
+ }
+ ]
},
- "relationships": {
- "description": "Relationships of the user object returned by the API.",
- "properties": {
- "org": {
- "description": "Relationship to an organization.",
- "properties": {
- "data": {
- "description": "Relationship to organization object.",
+ "steps": [
+ {
+ "actionId": "com.datadoghq.dd.monitor.listMonitors",
+ "connectionLabel": "INTEGRATION_DATADOG",
+ "name": "Step1",
+ "outboundEdges": [
+ {
+ "branchName": "main",
+ "nextStepName": "Step2"
+ }
+ ],
+ "parameters": [
+ {
+ "name": "tags",
+ "value": "service:monitoring"
+ }
+ ]
+ },
+ {
+ "actionId": "com.datadoghq.core.noop",
+ "name": "Step2"
+ }
+ ],
+ "triggers": [
+ {
+ "monitorTrigger": {
+ "rateLimit": {
+ "count": 1,
+ "interval": "3600s"
+ }
+ },
+ "startStepNames": [
+ "Step1"
+ ]
+ },
+ {
+ "githubWebhookTrigger": {},
+ "startStepNames": [
+ "Step1"
+ ]
+ }
+ ]
+ },
+ "tags": [
+ "team:infra",
+ "service:monitoring",
+ "foo:bar"
+ ]
+ },
+ "id": "22222222-2222-2222-2222-222222222222",
+ "type": "workflows"
+ }
+ },
+ "properties": {
+ "data": {
+ "description": "Data related to the workflow being updated.",
+ "properties": {
+ "attributes": {
+ "description": "The definition of `WorkflowDataUpdateAttributes` object.",
+ "properties": {
+ "createdAt": {
+ "description": "When the workflow was created.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of the workflow.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the workflow.",
+ "type": "string"
+ },
+ "published": {
+ "description": "Set the workflow to published or unpublished. Workflows in an unpublished state will only be executable via manual runs. Automatic triggers such as Schedule will not execute the workflow until it is published.",
+ "type": "boolean"
+ },
+ "spec": {
+ "description": "The spec defines what the workflow does.",
+ "properties": {
+ "annotations": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "items": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
"properties": {
+ "display": {
+ "description": "The definition of `AnnotationDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `AnnotationDisplayBounds` object.",
+ "properties": {
+ "height": {
+ "description": "The `bounds` `height`.",
+ "format": "double",
+ "type": "number"
+ },
+ "width": {
+ "description": "The `bounds` `width`.",
+ "format": "double",
+ "type": "number"
+ },
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
"id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
+ "description": "The `Annotation` `id`.",
+ "example": "",
"type": "string"
},
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
+ "markdownTextAnnotation": {
+ "description": "The definition of `AnnotationMarkdownTextAnnotation` object.",
+ "properties": {
+ "text": {
+ "description": "The `markdownTextAnnotation` `text`.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "required": [
+ "id",
+ "display",
+ "markdownTextAnnotation"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "connectionEnvs": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "items": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "properties": {
+ "connectionGroups": {
+ "description": "The `ConnectionEnv` `connectionGroups`.",
+ "items": {
+ "description": "The definition of `ConnectionGroup` object.",
+ "properties": {
+ "connectionGroupId": {
+ "description": "The `ConnectionGroup` `connectionGroupId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `ConnectionGroup` `label`.",
+ "example": "",
+ "type": "string"
+ },
+ "tags": {
+ "description": "The `ConnectionGroup` `tags`.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "connectionGroupId",
+ "label",
+ "tags"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "connections": {
+ "description": "The `ConnectionEnv` `connections`.",
+ "items": {
+ "description": "The definition of `Connection` object.",
+ "properties": {
+ "connectionId": {
+ "description": "The `Connection` `connectionId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `Connection` `label`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "connectionId",
+ "label"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "env": {
+ "description": "The definition of `ConnectionEnvEnv` object.",
"enum": [
- "orgs"
+ "default"
],
- "example": "orgs",
+ "example": "default",
"type": "string",
"x-enum-varnames": [
- "ORGS"
+ "DEFAULT"
]
}
},
"required": [
- "id",
- "type"
+ "env"
],
"type": "object"
- }
+ },
+ "type": "array"
},
- "required": [
- "data"
- ],
- "type": "object"
- },
- "other_orgs": {
- "description": "Relationship to organizations.",
- "properties": {
- "data": {
- "description": "Relationships to organization objects.",
- "example": [],
- "items": {
- "description": "Relationship to organization object.",
- "properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
- "type": "string"
+ "handle": {
+ "description": "Unique identifier used to trigger workflows automatically in Datadog.",
+ "type": "string"
+ },
+ "inputSchema": {
+ "description": "A list of input parameters for the workflow. These can be used as dynamic runtime values in your workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `InputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `InputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `InputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `InputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `InputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `InputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `InputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ }
},
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
- }
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
},
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- },
- "type": "array"
- }
+ "type": "array"
+ }
+ },
+ "type": "object"
},
- "required": [
- "data"
- ],
- "type": "object"
- },
- "other_users": {
- "description": "Relationship to users.",
- "properties": {
- "data": {
- "description": "Relationships to user objects.",
- "example": [],
- "items": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
+ "outputSchema": {
+ "description": "A list of output parameters for the workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `OutputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `OutputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `OutputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `OutputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `OutputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `OutputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `OutputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ },
+ "value": {
+ "description": "The `OutputSchemaParameters` `value`."
+ }
},
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
},
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
+ "type": "array"
+ }
+ },
+ "type": "object"
},
- "required": [
- "data"
- ],
- "type": "object"
- },
- "roles": {
- "description": "Relationship to roles.",
- "properties": {
- "data": {
- "description": "An array containing type and the unique identifier of a role.",
- "items": {
- "description": "Relationship to role object.",
- "properties": {
- "id": {
- "description": "The unique identifier of the role.",
- "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
- "type": "string"
+ "steps": {
+ "description": "A `Step` is a sub-component of a workflow. Each `Step` performs an action.",
+ "items": {
+ "description": "A Step is a sub-component of a workflow. Each Step performs an action.",
+ "properties": {
+ "actionId": {
+ "description": "The unique identifier of an action.",
+ "example": "",
+ "type": "string"
+ },
+ "completionGate": {
+ "description": "Used to create conditions before running subsequent actions.",
+ "properties": {
+ "completionCondition": {
+ "description": "The definition of `CompletionCondition` object.",
+ "properties": {
+ "operand1": {
+ "description": "The `CompletionCondition` `operand1`."
+ },
+ "operand2": {
+ "description": "The `CompletionCondition` `operand2`."
+ },
+ "operator": {
+ "description": "The definition of `CompletionConditionOperator` object.",
+ "enum": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ],
+ "example": "OPERATOR_EQUAL",
+ "type": "string",
+ "x-enum-varnames": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ]
+ }
+ },
+ "required": [
+ "operand1",
+ "operator"
+ ],
+ "type": "object"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
},
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
+ "required": [
+ "completionCondition",
+ "retryStrategy"
+ ],
+ "type": "object"
+ },
+ "connectionLabel": {
+ "description": "The unique identifier of a connection defined in the spec.",
+ "type": "string"
+ },
+ "display": {
+ "description": "The definition of `StepDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `StepDisplayBounds` object.",
+ "properties": {
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "errorHandlers": {
+ "description": "The `Step` `errorHandlers`.",
+ "items": {
+ "description": "Used to handle errors in an action.",
+ "properties": {
+ "fallbackStepName": {
+ "description": "The `ErrorHandler` `fallbackStepName`.",
+ "example": "",
+ "type": "string"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "retryStrategy",
+ "fallbackStepName"
],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
+ "type": "object"
+ },
+ "type": "array"
},
- "type": "object",
- "x-merge-override": {
- "required": false
+ "name": {
+ "description": "Name of the step.",
+ "example": "",
+ "type": "string"
+ },
+ "outboundEdges": {
+ "description": "A list of subsequent actions to run.",
+ "items": {
+ "description": "The definition of `OutboundEdge` object.",
+ "properties": {
+ "branchName": {
+ "description": "The `OutboundEdge` `branchName`.",
+ "example": "",
+ "type": "string"
+ },
+ "nextStepName": {
+ "description": "The `OutboundEdge` `nextStepName`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "nextStepName",
+ "branchName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "parameters": {
+ "description": "A list of inputs for an action.",
+ "items": {
+ "description": "The definition of `Parameter` object.",
+ "properties": {
+ "name": {
+ "description": "The `Parameter` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "value": {
+ "description": "The `Parameter` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "value"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "readinessGate": {
+ "description": "Used to merge multiple branches into a single branch.",
+ "properties": {
+ "thresholdType": {
+ "description": "The definition of `ReadinessGateThresholdType` object.",
+ "enum": [
+ "ANY",
+ "ALL"
+ ],
+ "example": "ANY",
+ "type": "string",
+ "x-enum-varnames": [
+ "ANY",
+ "ALL"
+ ]
+ }
+ },
+ "required": [
+ "thresholdType"
+ ],
+ "type": "object"
}
},
- "type": "array"
- }
+ "required": [
+ "name",
+ "actionId"
+ ],
+ "type": "object"
+ },
+ "type": "array"
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object",
- "x-merge-override": {
- "properties": false
- }
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "included": {
- "description": "Array of objects related to the user.",
- "items": {
- "description": "An object related to a user.",
- "oneOf": [
- {
- "description": "Organization object.",
- "properties": {
- "attributes": {
- "description": "Attributes of the organization.",
- "properties": {
- "created_at": {
- "description": "Creation time of the organization.",
- "format": "date-time",
- "type": "string"
- },
- "description": {
- "description": "Description of the organization.",
- "type": "string"
- },
- "disabled": {
- "description": "Whether or not the organization is disabled.",
- "type": "boolean"
- },
- "modified_at": {
- "description": "Time of last organization modification.",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "Name of the organization.",
- "type": "string"
- },
- "public_id": {
- "description": "Public ID of the organization.",
- "type": "string"
- },
- "sharing": {
- "description": "Sharing type of the organization.",
- "type": "string"
- },
- "url": {
- "description": "URL of the site that this organization exists at.",
- "type": "string"
- }
+ "triggers": {
+ "description": "The list of triggers that activate this workflow. At least one trigger is required, and each trigger type may appear at most once.",
+ "items": {
+ "description": "One of the triggers that can start the execution of a workflow.",
+ "oneOf": [
+ {
+ "description": "Schema for an API-based trigger.",
+ "properties": {
+ "apiTrigger": {
+ "description": "Trigger a workflow VIA an API. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "apiTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an App-based trigger.",
+ "properties": {
+ "appTrigger": {
+ "description": "Trigger a workflow VIA an App.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "appTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Case-based trigger.",
+ "properties": {
+ "caseTrigger": {
+ "description": "Trigger a workflow VIA a Case. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "caseTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Change Event-based trigger.",
+ "properties": {
+ "changeEventTrigger": {
+ "description": "Trigger a workflow VIA a Change Event.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "changeEventTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Dashboard-based trigger.",
+ "properties": {
+ "dashboardTrigger": {
+ "description": "Trigger a workflow VIA a Dashboard.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "dashboardTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a GitHub webhook-based trigger.",
+ "properties": {
+ "githubWebhookTrigger": {
+ "description": "Trigger a workflow VIA GitHub webhook. To trigger a workflow from GitHub, you must set a `webhookSecret`. In your GitHub Webhook Settings, set the Payload URL to \"base_url\"/api/v2/workflows/\"workflow_id\"/webhook?orgId=\"org_id\", select application/json for the content type, and be highly recommend enabling SSL verification for security. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "githubWebhookTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an Incident-based trigger.",
+ "properties": {
+ "incidentTrigger": {
+ "description": "Trigger a workflow VIA an Incident. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "incidentTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Monitor-based trigger.",
+ "properties": {
+ "monitorTrigger": {
+ "description": "Trigger a workflow VIA a Monitor. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "monitorTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Schedule-based trigger.",
+ "properties": {
+ "scheduleTrigger": {
+ "description": "Trigger a workflow VIA a Schedule. The workflow must be published.",
+ "properties": {
+ "rruleExpression": {
+ "description": "Recurrence rule expression for scheduling.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "rruleExpression"
+ ],
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "scheduleTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Security-based trigger.",
+ "properties": {
+ "securityTrigger": {
+ "description": "Trigger a workflow VIA a Security Signal or Finding. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "securityTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Slack-based trigger.",
+ "properties": {
+ "slackTrigger": {
+ "description": "Trigger a workflow VIA Slack. The workflow must be published.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "slackTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Workflow-based trigger.",
+ "properties": {
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "workflowTrigger": {
+ "description": "Trigger a workflow VIA the Datadog UI. Only required if no other trigger exists.",
+ "type": "object"
+ }
+ },
+ "required": [
+ "workflowTrigger"
+ ],
+ "type": "object"
+ }
+ ]
},
- "type": "object"
- },
- "id": {
- "description": "ID of the organization.",
- "type": "string"
- },
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
+ "type": "array"
}
},
- "required": [
- "type"
- ],
"type": "object"
},
- {
- "description": "Permission object.",
+ "tags": {
+ "description": "Tags of the workflow.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "updatedAt": {
+ "description": "When the workflow was last updated.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "webhookSecret": {
+ "description": "If a Webhook trigger is defined on this workflow, a webhookSecret is required and should be provided here.",
+ "type": "string",
+ "writeOnly": true
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The workflow identifier",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "The definition of `WorkflowDataRelationships` object.",
+ "properties": {
+ "creator": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
"properties": {
- "attributes": {
- "description": "Attributes of a permission.",
+ "data": {
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
"properties": {
- "created": {
- "description": "Creation time of the permission.",
- "format": "date-time",
- "type": "string"
- },
- "description": {
- "description": "Description of the permission.",
- "type": "string"
- },
- "display_name": {
- "description": "Displayed name for the permission.",
- "type": "string"
- },
- "display_type": {
- "description": "Display type.",
- "type": "string"
- },
- "group_name": {
- "description": "Name of the permission group.",
- "type": "string"
- },
- "name": {
- "description": "Name of the permission.",
+ "id": {
+ "description": "The user identifier",
+ "example": "",
"type": "string"
},
- "restricted": {
- "description": "Whether or not the permission is restricted.",
- "type": "boolean"
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
}
},
- "type": "object"
- },
- "id": {
- "description": "ID of the permission.",
- "type": "string"
- },
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
- "enum": [
- "permissions"
+ "required": [
+ "type",
+ "id"
],
- "example": "permissions",
- "type": "string",
- "x-enum-varnames": [
- "PERMISSIONS"
- ]
+ "type": "object"
}
},
- "required": [
- "type"
- ],
"type": "object"
},
- {
- "description": "Role object returned by the API.",
+ "owner": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
"properties": {
- "attributes": {
- "description": "Attributes of the role.",
+ "data": {
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
"properties": {
- "created_at": {
- "description": "Creation time of the role.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified_at": {
- "description": "Time of last role modification.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "name": {
- "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
+ "id": {
+ "description": "The user identifier",
+ "example": "",
"type": "string"
},
- "user_count": {
- "description": "Number of users with that role.",
- "format": "int64",
- "readOnly": true,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "The unique identifier of the role.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the role object returned by the API.",
- "properties": {
- "permissions": {
- "description": "Relationship to multiple permissions objects.",
- "properties": {
- "data": {
- "description": "Relationships to permission objects.",
- "items": {
- "description": "Relationship to permission object.",
- "properties": {
- "id": {
- "description": "ID of the permission.",
- "type": "string"
- },
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
- "enum": [
- "permissions"
- ],
- "example": "permissions",
- "type": "string",
- "x-enum-varnames": [
- "PERMISSIONS"
- ]
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
}
},
- "type": "object"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
+ "required": [
+ "type",
+ "id"
],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- ]
- },
- "type": "array"
- }
- },
- "type": "object"
- }
- }
- },
- "description": "OK"
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Authentication error"
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Not found"
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Too many requests"
- }
- },
- "security": [
- {
- "apiKeyAuth": [],
- "appKeyAuth": []
- },
- {
- "AuthZ": []
- }
- ],
- "summary": "Get a user organization",
- "tags": [
- "Users"
- ],
- "x-codegen-request-body-name": "body",
- "x-menu-order": 6,
- "x-permission": {
- "operator": "OPEN",
- "permissions": []
- },
- "x-undo": {
- "type": "safe"
- }
- }
- },
- "/api/v2/users/{user_id}/permissions": {
- "get": {
- "description": "Get a user permission set. Returns a list of the user’s permissions\ngranted by the associated user's roles.",
- "operationId": "ListUserPermissions",
- "parameters": [
- {
- "description": "The ID of the user.",
- "in": "path",
- "name": "user_id",
- "required": true,
- "schema": {
- "example": "00000000-0000-9999-0000-000000000000",
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Payload with API-returned permissions.",
- "properties": {
- "data": {
- "description": "Array of permissions.",
- "items": {
- "description": "Permission object.",
- "properties": {
- "attributes": {
- "description": "Attributes of a permission.",
- "properties": {
- "created": {
- "description": "Creation time of the permission.",
- "format": "date-time",
- "type": "string"
- },
- "description": {
- "description": "Description of the permission.",
- "type": "string"
- },
- "display_name": {
- "description": "Displayed name for the permission.",
- "type": "string"
- },
- "display_type": {
- "description": "Display type.",
- "type": "string"
- },
- "group_name": {
- "description": "Name of the permission group.",
- "type": "string"
- },
- "name": {
- "description": "Name of the permission.",
- "type": "string"
- },
- "restricted": {
- "description": "Whether or not the permission is restricted.",
- "type": "boolean"
+ "type": "object"
}
},
"type": "object"
- },
- "id": {
- "description": "ID of the permission.",
- "type": "string"
- },
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
- "enum": [
- "permissions"
- ],
- "example": "permissions",
- "type": "string",
- "x-enum-varnames": [
- "PERMISSIONS"
- ]
}
},
- "required": [
- "type"
- ],
+ "readOnly": true,
"type": "object"
},
- "type": "array"
- }
- },
- "type": "object"
- }
- }
- },
- "description": "OK"
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Authentication error"
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Not found"
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
+ "type": {
+ "description": "The definition of `WorkflowDataType` object.",
+ "enum": [
+ "workflows"
+ ],
+ "example": "workflows",
+ "type": "string",
+ "x-enum-varnames": [
+ "WORKFLOWS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "attributes"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
}
- },
- "description": "Too many requests"
- }
- },
- "security": [
- {
- "apiKeyAuth": [],
- "appKeyAuth": []
+ }
},
- {
- "AuthZ": [
- "user_access_read"
- ]
- }
- ],
- "summary": "Get a user permissions",
- "tags": [
- "Users"
- ],
- "x-codegen-request-body-name": "body",
- "x-menu-order": 7,
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "user_access_read"
- ]
+ "required": true
},
- "x-undo": {
- "type": "safe"
- }
- },
- "x-merge-override": {
- "get": true
- }
- },
- "/api/v2/users/{user_uuid}/memberships": {
- "get": {
- "description": "Get a list of memberships for a user",
- "operationId": "GetUserMemberships",
- "parameters": [
- {
- "description": "None",
- "in": "path",
- "name": "user_uuid",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
- "description": "Team memberships response",
+ "description": "The response object after updating a workflow.",
"properties": {
"data": {
- "description": "Team memberships response data",
- "items": {
- "description": "A user's relationship with a team",
- "properties": {
- "attributes": {
- "description": "Team membership attributes",
- "properties": {
- "provisioned_by": {
- "description": "The mechanism responsible for provisioning the team relationship.\nPossible values: null for added by a user, \"service_account\" if added by a service account, and \"saml_mapping\" if provisioned via SAML mapping.",
- "nullable": true,
- "readOnly": true,
- "type": "string"
- },
- "provisioned_by_id": {
- "description": "UUID of the User or Service Account who provisioned this team membership, or null if provisioned via SAML mapping.",
- "nullable": true,
- "readOnly": true,
- "type": "string"
- },
- "role": {
- "description": "The user's role within the team",
- "enum": [
- "admin"
- ],
- "nullable": true,
- "type": "string",
- "x-enum-varnames": [
- "ADMIN"
- ]
- }
+ "description": "Data related to the workflow being updated.",
+ "properties": {
+ "attributes": {
+ "description": "The definition of `WorkflowDataUpdateAttributes` object.",
+ "properties": {
+ "createdAt": {
+ "description": "When the workflow was created.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
},
- "type": "object"
- },
- "id": {
- "description": "The ID of a user's relationship with a team",
- "example": "TeamMembership-aeadc05e-98a8-11ec-ac2c-da7ad0900001-38835",
- "type": "string"
- },
- "relationships": {
- "description": "Relationship between membership and a user",
- "properties": {
- "team": {
- "description": "Relationship between team membership and team",
- "properties": {
- "data": {
- "description": "The team associated with the membership",
+ "description": {
+ "description": "Description of the workflow.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the workflow.",
+ "type": "string"
+ },
+ "published": {
+ "description": "Set the workflow to published or unpublished. Workflows in an unpublished state will only be executable via manual runs. Automatic triggers such as Schedule will not execute the workflow until it is published.",
+ "type": "boolean"
+ },
+ "spec": {
+ "description": "The spec defines what the workflow does.",
+ "properties": {
+ "annotations": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "items": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
"properties": {
+ "display": {
+ "description": "The definition of `AnnotationDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `AnnotationDisplayBounds` object.",
+ "properties": {
+ "height": {
+ "description": "The `bounds` `height`.",
+ "format": "double",
+ "type": "number"
+ },
+ "width": {
+ "description": "The `bounds` `width`.",
+ "format": "double",
+ "type": "number"
+ },
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
"id": {
- "description": "The ID of the team associated with the membership",
- "example": "d7e15d9d-d346-43da-81d8-3d9e71d9a5e9",
+ "description": "The `Annotation` `id`.",
+ "example": "",
"type": "string"
},
- "type": {
- "default": "team",
- "description": "User team team type",
- "enum": [
- "team"
- ],
- "example": "team",
- "type": "string",
- "x-enum-varnames": [
- "TEAM"
- ]
+ "markdownTextAnnotation": {
+ "description": "The definition of `AnnotationMarkdownTextAnnotation` object.",
+ "properties": {
+ "text": {
+ "description": "The `markdownTextAnnotation` `text`.",
+ "type": "string"
+ }
+ },
+ "type": "object"
}
},
"required": [
"id",
- "type"
+ "display",
+ "markdownTextAnnotation"
],
"type": "object"
- }
+ },
+ "type": "array"
},
- "required": [
- "data"
- ],
- "type": "object"
- },
- "user": {
- "description": "Relationship between team membership and user",
- "properties": {
- "data": {
- "description": "A user's relationship with a team",
+ "connectionEnvs": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "items": {
+ "description": "A list of connections or connection groups used in the workflow.",
"properties": {
- "id": {
- "description": "The ID of the user associated with the team",
- "example": "b8626d7e-cedd-11eb-abf5-da7ad0900001",
- "type": "string"
+ "connectionGroups": {
+ "description": "The `ConnectionEnv` `connectionGroups`.",
+ "items": {
+ "description": "The definition of `ConnectionGroup` object.",
+ "properties": {
+ "connectionGroupId": {
+ "description": "The `ConnectionGroup` `connectionGroupId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `ConnectionGroup` `label`.",
+ "example": "",
+ "type": "string"
+ },
+ "tags": {
+ "description": "The `ConnectionGroup` `tags`.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "connectionGroupId",
+ "label",
+ "tags"
+ ],
+ "type": "object"
+ },
+ "type": "array"
},
- "type": {
- "default": "users",
- "description": "User team user type",
+ "connections": {
+ "description": "The `ConnectionEnv` `connections`.",
+ "items": {
+ "description": "The definition of `Connection` object.",
+ "properties": {
+ "connectionId": {
+ "description": "The `Connection` `connectionId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `Connection` `label`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "connectionId",
+ "label"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "env": {
+ "description": "The definition of `ConnectionEnvEnv` object.",
"enum": [
- "users"
+ "default"
],
- "example": "users",
+ "example": "default",
"type": "string",
"x-enum-varnames": [
- "USERS"
+ "DEFAULT"
]
}
},
"required": [
- "id",
- "type"
+ "env"
],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- }
- },
- "type": "object"
- },
- "type": {
- "default": "team_memberships",
- "description": "Team membership type",
- "enum": [
- "team_memberships"
- ],
- "example": "team_memberships",
- "type": "string",
- "x-enum-varnames": [
- "TEAM_MEMBERSHIPS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- },
- "included": {
- "description": "Resources related to the team memberships",
- "items": {
- "description": "Included resources related to the team membership",
- "oneOf": [
- {
- "description": "User object returned by the API.",
- "properties": {
- "attributes": {
- "description": "Attributes of user object returned by the API.",
- "properties": {
- "created_at": {
- "description": "Creation time of the user.",
- "format": "date-time",
- "type": "string"
- },
- "disabled": {
- "description": "Whether the user is disabled.",
- "type": "boolean"
- },
- "email": {
- "description": "Email of the user.",
- "type": "string"
- },
- "handle": {
- "description": "Handle of the user.",
- "type": "string"
- },
- "icon": {
- "description": "URL of the user's icon.",
- "type": "string"
- },
- "mfa_enabled": {
- "description": "If user has MFA enabled.",
- "readOnly": true,
- "type": "boolean"
- },
- "modified_at": {
- "description": "Time that the user was last modified.",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "Name of the user.",
- "nullable": true,
- "type": "string"
- },
- "service_account": {
- "description": "Whether the user is a service account.",
- "type": "boolean"
- },
- "status": {
- "description": "Status of the user.",
- "type": "string"
+ "type": "object"
},
- "title": {
- "description": "Title of the user.",
- "nullable": true,
- "type": "string"
+ "type": "array"
+ },
+ "handle": {
+ "description": "Unique identifier used to trigger workflows automatically in Datadog.",
+ "type": "string"
+ },
+ "inputSchema": {
+ "description": "A list of input parameters for the workflow. These can be used as dynamic runtime values in your workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `InputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `InputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `InputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `InputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `InputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `InputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `InputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
},
- "verified": {
- "description": "Whether the user is verified.",
- "type": "boolean"
- }
+ "type": "object"
},
- "type": "object"
- },
- "id": {
- "description": "ID of the user.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the user object returned by the API.",
- "properties": {
- "org": {
- "description": "Relationship to an organization.",
- "properties": {
- "data": {
- "description": "Relationship to organization object.",
+ "outputSchema": {
+ "description": "A list of output parameters for the workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `OutputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `OutputSchemaParameters` object.",
"properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
+ "defaultValue": {
+ "description": "The `OutputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `OutputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `OutputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `OutputSchemaParameters` `name`.",
+ "example": "",
"type": "string"
},
"type": {
- "default": "orgs",
- "description": "Organizations resource type.",
+ "description": "The definition of `OutputSchemaParametersType` object.",
"enum": [
- "orgs"
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
],
- "example": "orgs",
+ "example": "STRING",
"type": "string",
"x-enum-varnames": [
- "ORGS"
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
]
+ },
+ "value": {
+ "description": "The `OutputSchemaParameters` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "steps": {
+ "description": "A `Step` is a sub-component of a workflow. Each `Step` performs an action.",
+ "items": {
+ "description": "A Step is a sub-component of a workflow. Each Step performs an action.",
+ "properties": {
+ "actionId": {
+ "description": "The unique identifier of an action.",
+ "example": "",
+ "type": "string"
+ },
+ "completionGate": {
+ "description": "Used to create conditions before running subsequent actions.",
+ "properties": {
+ "completionCondition": {
+ "description": "The definition of `CompletionCondition` object.",
+ "properties": {
+ "operand1": {
+ "description": "The `CompletionCondition` `operand1`."
+ },
+ "operand2": {
+ "description": "The `CompletionCondition` `operand2`."
+ },
+ "operator": {
+ "description": "The definition of `CompletionConditionOperator` object.",
+ "enum": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ],
+ "example": "OPERATOR_EQUAL",
+ "type": "string",
+ "x-enum-varnames": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ]
+ }
+ },
+ "required": [
+ "operand1",
+ "operator"
+ ],
+ "type": "object"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "completionCondition",
+ "retryStrategy"
+ ],
+ "type": "object"
+ },
+ "connectionLabel": {
+ "description": "The unique identifier of a connection defined in the spec.",
+ "type": "string"
+ },
+ "display": {
+ "description": "The definition of `StepDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `StepDisplayBounds` object.",
+ "properties": {
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
}
},
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "other_orgs": {
- "description": "Relationship to organizations.",
- "properties": {
- "data": {
- "description": "Relationships to organization objects.",
- "example": [],
+ "type": "object"
+ },
+ "errorHandlers": {
+ "description": "The `Step` `errorHandlers`.",
+ "items": {
+ "description": "Used to handle errors in an action.",
+ "properties": {
+ "fallbackStepName": {
+ "description": "The `ErrorHandler` `fallbackStepName`.",
+ "example": "",
+ "type": "string"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "retryStrategy",
+ "fallbackStepName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the step.",
+ "example": "",
+ "type": "string"
+ },
+ "outboundEdges": {
+ "description": "A list of subsequent actions to run.",
"items": {
- "description": "Relationship to organization object.",
+ "description": "The definition of `OutboundEdge` object.",
"properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
+ "branchName": {
+ "description": "The `OutboundEdge` `branchName`.",
+ "example": "",
"type": "string"
},
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
+ "nextStepName": {
+ "description": "The `OutboundEdge` `nextStepName`.",
+ "example": "",
+ "type": "string"
}
},
"required": [
- "id",
- "type"
+ "nextStepName",
+ "branchName"
],
"type": "object"
},
"type": "array"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "other_users": {
- "description": "Relationship to users.",
- "properties": {
- "data": {
- "description": "Relationships to user objects.",
- "example": [],
+ },
+ "parameters": {
+ "description": "A list of inputs for an action.",
"items": {
- "description": "Relationship to user object.",
+ "description": "The definition of `Parameter` object.",
"properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
+ "name": {
+ "description": "The `Parameter` `name`.",
+ "example": "",
"type": "string"
},
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
+ "value": {
+ "description": "The `Parameter` `value`."
}
},
"required": [
- "id",
- "type"
+ "name",
+ "value"
],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "object"
},
"type": "array"
+ },
+ "readinessGate": {
+ "description": "Used to merge multiple branches into a single branch.",
+ "properties": {
+ "thresholdType": {
+ "description": "The definition of `ReadinessGateThresholdType` object.",
+ "enum": [
+ "ANY",
+ "ALL"
+ ],
+ "example": "ANY",
+ "type": "string",
+ "x-enum-varnames": [
+ "ANY",
+ "ALL"
+ ]
+ }
+ },
+ "required": [
+ "thresholdType"
+ ],
+ "type": "object"
}
},
"required": [
- "data"
+ "name",
+ "actionId"
],
"type": "object"
},
- "roles": {
- "description": "Relationship to roles.",
- "properties": {
- "data": {
- "description": "An array containing type and the unique identifier of a role.",
- "items": {
- "description": "Relationship to role object.",
- "properties": {
- "id": {
- "description": "The unique identifier of the role.",
- "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "type": "array"
+ },
+ "triggers": {
+ "description": "The list of triggers that activate this workflow. At least one trigger is required, and each trigger type may appear at most once.",
+ "items": {
+ "description": "One of the triggers that can start the execution of a workflow.",
+ "oneOf": [
+ {
+ "description": "Schema for an API-based trigger.",
+ "properties": {
+ "apiTrigger": {
+ "description": "Trigger a workflow VIA an API. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
"type": "string"
},
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
+ "type": "array"
+ }
+ },
+ "required": [
+ "apiTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an App-based trigger.",
+ "properties": {
+ "appTrigger": {
+ "description": "Trigger a workflow VIA an App.",
+ "type": "object"
},
- "type": "object",
- "x-merge-override": {
- "required": false
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
}
},
- "type": "array"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object",
- "x-merge-override": {
- "properties": false
- }
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- {
- "description": "A team",
- "properties": {
- "attributes": {
- "description": "Team attributes",
- "properties": {
- "avatar": {
- "description": "Unicode representation of the avatar for the team, limited to a single grapheme",
- "example": "🥑",
- "nullable": true,
- "type": "string"
- },
- "banner": {
- "description": "Banner selection for the team",
- "format": "int64",
- "nullable": true,
- "type": "integer"
- },
- "created_at": {
- "description": "Creation date of the team",
- "format": "date-time",
- "type": "string"
- },
- "description": {
- "description": "Free-form markdown description/content for the team's homepage",
- "nullable": true,
- "type": "string"
- },
- "handle": {
- "description": "The team's identifier",
- "example": "example-team",
- "maxLength": 195,
- "type": "string"
- },
- "hidden_modules": {
- "description": "Collection of hidden modules for the team",
- "items": {
- "description": "String identifier of the module",
- "type": "string"
- },
- "type": "array"
- },
- "link_count": {
- "description": "The number of links belonging to the team",
- "format": "int32",
- "maximum": 2147483647,
- "readOnly": true,
- "type": "integer"
- },
- "modified_at": {
- "description": "Modification date of the team",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "The name of the team",
- "example": "Example Team",
- "maxLength": 200,
- "type": "string"
- },
- "summary": {
- "description": "A brief summary of the team, derived from the `description`",
- "maxLength": 120,
- "nullable": true,
- "type": "string"
- },
- "user_count": {
- "description": "The number of users belonging to the team",
- "format": "int32",
- "maximum": 2147483647,
- "readOnly": true,
- "type": "integer"
- },
- "visible_modules": {
- "description": "Collection of visible modules for the team",
- "items": {
- "description": "String identifier of the module",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "handle",
- "name"
- ],
- "type": "object"
- },
- "id": {
- "description": "The team's identifier",
- "example": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
- "type": "string"
- },
- "relationships": {
- "description": "Resources related to a team",
- "properties": {
- "team_links": {
- "description": "Relationship between a team and a team link",
- "properties": {
- "data": {
- "description": "Related team links",
- "items": {
- "description": "Relationship between a link and a team",
- "properties": {
- "id": {
- "description": "The team link's identifier",
- "example": "f9bb8444-af7f-11ec-ac2c-da7ad0900001",
+ "required": [
+ "appTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Case-based trigger.",
+ "properties": {
+ "caseTrigger": {
+ "description": "Trigger a workflow VIA a Case. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
"type": "string"
},
- "type": {
- "default": "team_links",
- "description": "Team link type",
- "enum": [
- "team_links"
- ],
- "example": "team_links",
- "type": "string",
- "x-enum-varnames": [
- "TEAM_LINKS"
- ]
- }
+ "type": "array"
+ }
+ },
+ "required": [
+ "caseTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Change Event-based trigger.",
+ "properties": {
+ "changeEventTrigger": {
+ "description": "Trigger a workflow VIA a Change Event.",
+ "type": "object"
},
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
}
},
- "type": "array"
+ "required": [
+ "changeEventTrigger"
+ ],
+ "type": "object"
},
- "links": {
- "description": "Links attributes.",
+ {
+ "description": "Schema for a Dashboard-based trigger.",
"properties": {
- "related": {
- "description": "Related link.",
- "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
- "type": "string"
+ "dashboardTrigger": {
+ "description": "Trigger a workflow VIA a Dashboard.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
}
},
+ "required": [
+ "dashboardTrigger"
+ ],
"type": "object"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "user_team_permissions": {
- "description": "Relationship between a user team permission and a team",
- "properties": {
- "data": {
- "description": "Related user team permission data",
+ },
+ {
+ "description": "Schema for a GitHub webhook-based trigger.",
"properties": {
- "id": {
- "description": "The ID of the user team permission",
- "example": "UserTeamPermissions-aeadc05e-98a8-11ec-ac2c-da7ad0900001-416595",
- "type": "string"
+ "githubWebhookTrigger": {
+ "description": "Trigger a workflow VIA GitHub webhook. To trigger a workflow from GitHub, you must set a `webhookSecret`. In your GitHub Webhook Settings, set the Payload URL to \"base_url\"/api/v2/workflows/\"workflow_id\"/webhook?orgId=\"org_id\", select application/json for the content type, and be highly recommend enabling SSL verification for security. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
},
- "type": {
- "default": "user_team_permissions",
- "description": "User team permission type",
- "enum": [
- "user_team_permissions"
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
],
- "example": "user_team_permissions",
- "type": "string",
- "x-enum-varnames": [
- "USER_TEAM_PERMISSIONS"
- ]
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
}
},
"required": [
- "id",
- "type"
+ "githubWebhookTrigger"
],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "object"
},
- "links": {
- "description": "Links attributes.",
+ {
+ "description": "Schema for an Incident-based trigger.",
"properties": {
- "related": {
- "description": "Related link.",
- "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
- "type": "string"
+ "incidentTrigger": {
+ "description": "Trigger a workflow VIA an Incident. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "incidentTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Monitor-based trigger.",
+ "properties": {
+ "monitorTrigger": {
+ "description": "Trigger a workflow VIA a Monitor. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "monitorTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Schedule-based trigger.",
+ "properties": {
+ "scheduleTrigger": {
+ "description": "Trigger a workflow VIA a Schedule. The workflow must be published.",
+ "properties": {
+ "rruleExpression": {
+ "description": "Recurrence rule expression for scheduling.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "rruleExpression"
+ ],
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "scheduleTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Security-based trigger.",
+ "properties": {
+ "securityTrigger": {
+ "description": "Trigger a workflow VIA a Security Signal or Finding. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "securityTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Slack-based trigger.",
+ "properties": {
+ "slackTrigger": {
+ "description": "Trigger a workflow VIA Slack. The workflow must be published.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "slackTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Workflow-based trigger.",
+ "properties": {
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "workflowTrigger": {
+ "description": "Trigger a workflow VIA the Datadog UI. Only required if no other trigger exists.",
+ "type": "object"
}
},
+ "required": [
+ "workflowTrigger"
+ ],
"type": "object"
}
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
+ ]
+ },
+ "type": "array"
+ }
},
- "type": {
- "default": "team",
- "description": "Team type",
- "enum": [
- "team"
- ],
- "example": "team",
- "type": "string",
- "x-enum-varnames": [
- "TEAM"
- ]
- }
+ "type": "object"
},
- "required": [
- "attributes",
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
+ "tags": {
+ "description": "Tags of the workflow.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "updatedAt": {
+ "description": "When the workflow was last updated.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "webhookSecret": {
+ "description": "If a Webhook trigger is defined on this workflow, a webhookSecret is required and should be provided here.",
+ "type": "string",
+ "writeOnly": true
}
- }
- ]
- },
- "type": "array"
- },
- "links": {
- "description": "Teams response links.",
- "properties": {
- "first": {
- "description": "First link.",
- "type": "string"
- },
- "last": {
- "description": "Last link.",
- "nullable": true,
- "type": "string"
- },
- "next": {
- "description": "Next link.",
- "type": "string"
+ },
+ "type": "object"
},
- "prev": {
- "description": "Previous link.",
- "nullable": true,
+ "id": {
+ "description": "The workflow identifier",
"type": "string"
},
- "self": {
- "description": "Current link.",
- "type": "string"
- }
- },
- "type": "object"
- },
- "meta": {
- "description": "Teams response metadata.",
- "properties": {
- "pagination": {
- "description": "Teams response metadata.",
+ "relationships": {
+ "description": "The definition of `WorkflowDataRelationships` object.",
"properties": {
- "first_offset": {
- "description": "The first offset.",
- "format": "int64",
- "type": "integer"
- },
- "last_offset": {
- "description": "The last offset.",
- "format": "int64",
- "type": "integer"
- },
- "limit": {
- "description": "Pagination limit.",
- "format": "int64",
- "type": "integer"
- },
- "next_offset": {
- "description": "The next offset.",
- "format": "int64",
- "type": "integer"
- },
- "offset": {
- "description": "The offset.",
- "format": "int64",
- "type": "integer"
- },
- "prev_offset": {
- "description": "The previous offset.",
- "format": "int64",
- "type": "integer"
- },
- "total": {
- "description": "Total results.",
- "format": "int64",
- "type": "integer"
+ "creator": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
+ "properties": {
+ "data": {
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
+ "properties": {
+ "id": {
+ "description": "The user identifier",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "id"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object"
},
- "type": {
- "description": "Offset type.",
- "type": "string"
+ "owner": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
+ "properties": {
+ "data": {
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
+ "properties": {
+ "id": {
+ "description": "The user identifier",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "id"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object"
}
},
+ "readOnly": true,
"type": "object"
+ },
+ "type": {
+ "description": "The definition of `WorkflowDataType` object.",
+ "enum": [
+ "workflows"
+ ],
+ "example": "workflows",
+ "type": "string",
+ "x-enum-varnames": [
+ "WORKFLOWS"
+ ]
}
},
+ "required": [
+ "type",
+ "attributes"
+ ],
"type": "object"
}
},
@@ -409637,7 +436792,141 @@
}
}
},
- "description": "Represents a user's association to a team"
+ "description": "Successfully updated a workflow."
+ },
+ "400": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "items": {
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Bad request"
+ },
+ "403": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "items": {
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Forbidden"
},
"404": {
"content": {
@@ -409647,13 +436936,52 @@
"properties": {
"errors": {
"description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
"items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
"type": "array"
}
@@ -409665,7 +436993,7 @@
}
}
},
- "description": "API error response."
+ "description": "Not found"
},
"429": {
"content": {
@@ -409675,13 +437003,52 @@
"properties": {
"errors": {
"description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
"items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
"type": "array"
}
@@ -409696,30 +437063,19 @@
"description": "Too many requests"
}
},
- "security": [
- {
- "apiKeyAuth": [],
- "appKeyAuth": []
- },
- {
- "AuthZ": [
- "teams_read"
- ]
- }
- ],
- "summary": "Get user memberships",
+ "summary": "Update an existing Workflow",
"tags": [
- "Teams"
+ "Workflow Automation"
],
- "x-menu-order": 1,
+ "x-menu-order": 3,
"x-permission": {
"operator": "OR",
"permissions": [
- "teams_read"
+ "workflows_write"
]
},
"x-undo": {
- "type": "safe"
+ "type": "idempotent"
}
}
},
@@ -409911,7 +437267,7 @@
"tags": [
"Workflow Automation"
],
- "x-menu-order": 1,
+ "x-menu-order": 5,
"x-permission": {
"operator": "OR",
"permissions": [
@@ -410087,7 +437443,7 @@
"Workflow Automation"
],
"x-codegen-request-body-name": "body",
- "x-menu-order": 2,
+ "x-menu-order": 6,
"x-permission": {
"operator": "OR",
"permissions": [
@@ -410284,7 +437640,7 @@
"tags": [
"Workflow Automation"
],
- "x-menu-order": 3,
+ "x-menu-order": 7,
"x-permission": {
"operator": "OR",
"permissions": [
@@ -410461,7 +437817,7 @@
"tags": [
"Workflow Automation"
],
- "x-menu-order": 4,
+ "x-menu-order": 8,
"x-permission": {
"operator": "OR",
"permissions": [
@@ -410860,7 +438216,7 @@
"name": "Users"
},
{
- "description": "Automate your teams operational processes with Datadog Workflow Automation.",
+ "description": "Datadog Workflow Automation allows you to automate your end-to-end processes by connecting Datadog with the rest of your tech stack. Build workflows to auto-remediate your alerts, streamline your incident and security processes, and reduce manual toil. Workflow Automation supports over 1,000+ OOTB actions, including AWS, JIRA, ServiceNow, GitHub, and OpenAI. Learn more in our Workflow Automation docs [here](https://docs.datadoghq.com/service_management/workflows/).",
"externalDocs": {
"description": "Find out more at",
"url": "https://docs.datadoghq.com/service_management/workflows/"
diff --git a/data/api/v2/translate_actions.json b/data/api/v2/translate_actions.json
index 9674a8601dfcb..a187bb30a4634 100644
--- a/data/api/v2/translate_actions.json
+++ b/data/api/v2/translate_actions.json
@@ -1741,6 +1741,10 @@
"request_description": "",
"request_schema_description": "Test the rule queries of a rule (rule property is ignored when applied to an existing rule)"
},
+ "GetRuleVersionHistory": {
+ "description": "Get a rule's version history.",
+ "summary": "Get a rule's version history"
+ },
"ListSecurityMonitoringSignals": {
"description": "The list endpoint returns security signals that match a search query.\nBoth this endpoint and the POST endpoint can be used interchangeably when listing\nsecurity signals.",
"summary": "Get a quick list of security signals"
@@ -2153,6 +2157,26 @@
"description": "Get a list of memberships for a user",
"summary": "Get user memberships"
},
+ "CreateWorkflow": {
+ "description": "Create a new workflow, returning the workflow ID. This API requires an application key scoped with the `workflows_write` permission.",
+ "summary": "Create a Workflow",
+ "request_description": "",
+ "request_schema_description": "A request object for creating a new workflow."
+ },
+ "DeleteWorkflow": {
+ "description": "Delete a workflow by ID. This API requires an application key scoped with the `workflows_write` permission.",
+ "summary": "Delete an existing Workflow"
+ },
+ "GetWorkflow": {
+ "description": "Get a workflow by ID. This API requires an application key scoped with the `workflows_read` permission.",
+ "summary": "Get an existing Workflow"
+ },
+ "UpdateWorkflow": {
+ "description": "Update a workflow by ID. This API requires an application key scoped with the `workflows_write` permission.",
+ "summary": "Update an existing Workflow",
+ "request_description": "",
+ "request_schema_description": "A request object for updating an existing workflow."
+ },
"ListWorkflowInstances": {
"description": "List all instances of a given workflow. This API requires an application key scoped with the workflows_read permission.",
"summary": "List workflow instances"
diff --git a/data/api/v2/translate_tags.json b/data/api/v2/translate_tags.json
index 5080d378ca397..e2dc563abf6db 100644
--- a/data/api/v2/translate_tags.json
+++ b/data/api/v2/translate_tags.json
@@ -257,6 +257,6 @@
},
"workflow-automation": {
"name": "Workflow Automation",
- "description": "Automate your teams operational processes with Datadog Workflow Automation."
+ "description": "Datadog Workflow Automation allows you to automate your end-to-end processes by connecting Datadog with the rest of your tech stack. Build workflows to auto-remediate your alerts, streamline your incident and security processes, and reduce manual toil. Workflow Automation supports over 1,000+ OOTB actions, including AWS, JIRA, ServiceNow, GitHub, and OpenAI. Learn more in our Workflow Automation docs [here](https://docs.datadoghq.com/service_management/workflows/)."
}
}
\ No newline at end of file
diff --git a/layouts/integrations/_markup/render-image.html b/layouts/integrations/_markup/render-image.html
index a7939f6a51408..80069b34f5cae 100644
--- a/layouts/integrations/_markup/render-image.html
+++ b/layouts/integrations/_markup/render-image.html
@@ -8,7 +8,7 @@
{{- $app_id := .Page.Params.integration_id | default .Page.Params.name -}}
{{- $img := replaceRE `(./)?images/` "" .Destination -}}
{{- $url := split $img "/" -}}
-{{- $app_listings_bucket := "dd-app-listings" -}}
+{{- $app_listings_bucket := cond (eq hugo.Environment "live") "dd-app-listings" "dd-app-listings-staging" -}}
{{- if or (strings.Contains .Destination "https://raw.githubusercontent.com") (strings.Contains .Destination "https://s3.amazonaws.com/") -}}
`,`>=`, `&&`, `||`) to determine if a signal should be generated\nbased on the event counts in the previously defined queries.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the case.",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notification targets for each rule case.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "status": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "complianceSignalOptions": {
+ "description": "How to generate compliance signals. Useful for cloud_configuration rules only.",
+ "properties": {
+ "defaultActivationStatus": {
+ "description": "The default activation status.",
+ "nullable": true,
+ "type": "boolean"
+ },
+ "defaultGroupByFields": {
+ "description": "The default group by fields.",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true,
+ "type": "array"
+ },
+ "userActivationStatus": {
+ "description": "Whether signals will be sent.",
+ "nullable": true,
+ "type": "boolean"
+ },
+ "userGroupByFields": {
+ "description": "Fields to use to group findings by when sending signals.",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true,
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "createdAt": {
+ "description": "When the rule was created, timestamp in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "creationAuthorId": {
+ "description": "User ID of the user who created the rule.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "defaultTags": {
+ "description": "Default Tags for default rules (included in tags)",
+ "example": [
+ "security:attacks"
+ ],
+ "items": {
+ "description": "Default Tag.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "deprecationDate": {
+ "description": "When the rule will be deprecated, timestamp in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "filters": {
+ "description": "Additional queries to filter matched events before they are processed. This field is deprecated for log detection, signal correlation, and workload security rules.",
+ "items": {
+ "description": "The rule's suppression filter.",
+ "properties": {
+ "action": {
+ "description": "The type of filtering action.",
+ "enum": [
+ "require",
+ "suppress"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "REQUIRE",
+ "SUPPRESS"
+ ]
+ },
+ "query": {
+ "description": "Query for selecting logs to apply the filtering action.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "groupSignalsBy": {
+ "description": "Additional grouping to perform on top of the existing groups in the query section. Must be a subset of the existing groups.",
+ "example": [
+ "service"
+ ],
+ "items": {
+ "description": "Field to group by.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "hasExtendedTitle": {
+ "description": "Whether the notifications include the triggering group-by values in their title.",
+ "type": "boolean"
+ },
+ "id": {
+ "description": "The ID of the rule.",
+ "type": "string"
+ },
+ "isDefault": {
+ "description": "Whether the rule is included by default.",
+ "type": "boolean"
+ },
+ "isDeleted": {
+ "description": "Whether the rule has been deleted.",
+ "type": "boolean"
+ },
+ "isEnabled": {
+ "description": "Whether the rule is enabled.",
+ "type": "boolean"
+ },
+ "message": {
+ "description": "Message for generated signals.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the rule.",
+ "type": "string"
+ },
+ "options": {
+ "description": "Options.",
+ "properties": {
+ "complianceRuleOptions": {
+ "additionalProperties": {},
+ "description": "Options for cloud_configuration rules.\nFields `resourceType` and `regoRule` are mandatory when managing custom `cloud_configuration` rules.\n",
+ "properties": {
+ "complexRule": {
+ "description": "Whether the rule is a complex one.\nMust be set to true if `regoRule.resourceTypes` contains more than one item. Defaults to false.\n",
+ "type": "boolean"
+ },
+ "regoRule": {
+ "description": "Rule details.",
+ "properties": {
+ "policy": {
+ "description": "The policy written in `rego`, see: https://www.openpolicyagent.org/docs/latest/policy-language/",
+ "example": "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}\n",
+ "type": "string"
+ },
+ "resourceTypes": {
+ "description": "List of resource types that will be evaluated upon. Must have at least one element.",
+ "example": [
+ "gcp_iam_service_account",
+ "gcp_iam_policy"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "policy",
+ "resourceTypes"
+ ],
+ "type": "object"
+ },
+ "resourceType": {
+ "description": "Main resource type to be checked by the rule. It should be specified again in `regoRule.resourceTypes`.\n",
+ "example": "aws_acm",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "decreaseCriticalityBasedOnEnv": {
+ "description": "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`.",
+ "example": false,
+ "type": "boolean"
+ },
+ "detectionMethod": {
+ "description": "The detection method.",
+ "enum": [
+ "threshold",
+ "new_value",
+ "anomaly_detection",
+ "impossible_travel",
+ "hardcoded",
+ "third_party",
+ "anomaly_threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "THRESHOLD",
+ "NEW_VALUE",
+ "ANOMALY_DETECTION",
+ "IMPOSSIBLE_TRAVEL",
+ "HARDCODED",
+ "THIRD_PARTY",
+ "ANOMALY_THRESHOLD"
+ ]
+ },
+ "evaluationWindow": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS"
+ ]
+ },
+ "hardcodedEvaluatorType": {
+ "description": "Hardcoded evaluator type.",
+ "enum": [
+ "log4shell"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "LOG4SHELL"
+ ]
+ },
+ "impossibleTravelOptions": {
+ "description": "Options on impossible travel detection method.",
+ "properties": {
+ "baselineUserLocations": {
+ "description": "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.",
+ "example": true,
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "keepAlive": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS"
+ ]
+ },
+ "maxSignalDuration": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600,
+ 43200,
+ 86400
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS",
+ "TWELVE_HOURS",
+ "ONE_DAY"
+ ]
+ },
+ "newValueOptions": {
+ "description": "Options on new value detection method.",
+ "properties": {
+ "forgetAfter": {
+ "description": "The duration in days after which a learned value is forgotten.",
+ "enum": [
+ 1,
+ 2,
+ 7,
+ 14,
+ 21,
+ 28
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ONE_DAY",
+ "TWO_DAYS",
+ "ONE_WEEK",
+ "TWO_WEEKS",
+ "THREE_WEEKS",
+ "FOUR_WEEKS"
+ ]
+ },
+ "learningDuration": {
+ "default": 0,
+ "description": "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.",
+ "enum": [
+ 0,
+ 1,
+ 7
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_DAYS",
+ "ONE_DAY",
+ "SEVEN_DAYS"
+ ]
+ },
+ "learningMethod": {
+ "default": "duration",
+ "description": "The learning method used to determine when signals should be generated for values that weren't learned.",
+ "enum": [
+ "duration",
+ "threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "DURATION",
+ "THRESHOLD"
+ ]
+ },
+ "learningThreshold": {
+ "default": 0,
+ "description": "A number of occurrences after which signals will be generated for values that weren't learned.",
+ "enum": [
+ 0,
+ 1
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_OCCURRENCES",
+ "ONE_OCCURRENCE"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "thirdPartyRuleOptions": {
+ "description": "Options on third party detection method.",
+ "properties": {
+ "defaultNotifications": {
+ "description": "Notification targets for the logs that do not correspond to any of the cases.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "defaultStatus": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ },
+ "rootQueries": {
+ "description": "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.",
+ "items": {
+ "description": "A query to be combined with the third party case query.",
+ "properties": {
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "query": {
+ "description": "Query to run on logs.",
+ "example": "source:cloudtrail",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "signalTitleTemplate": {
+ "description": "A template for the signal title; if omitted, the title is generated based on the case name.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "queries": {
+ "description": "Queries for selecting logs which are part of the rule.",
+ "items": {
+ "description": "Query for matching rule.",
+ "properties": {
+ "aggregation": {
+ "description": "The aggregation type.",
+ "enum": [
+ "count",
+ "cardinality",
+ "sum",
+ "max",
+ "new_value",
+ "geo_data",
+ "event_count",
+ "none"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "COUNT",
+ "CARDINALITY",
+ "SUM",
+ "MAX",
+ "NEW_VALUE",
+ "GEO_DATA",
+ "EVENT_COUNT",
+ "NONE"
+ ]
+ },
+ "distinctFields": {
+ "description": "Field for which the cardinality is measured. Sent as an array.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "hasOptionalGroupByFields": {
+ "description": "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.",
+ "example": false,
+ "readOnly": true,
+ "type": "boolean"
+ },
+ "metric": {
+ "deprecated": true,
+ "description": "(Deprecated) The target field to aggregate over when using the sum or max\naggregations. `metrics` field should be used instead.",
+ "type": "string"
+ },
+ "metrics": {
+ "description": "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.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the query.",
+ "type": "string"
+ },
+ "query": {
+ "description": "Query to run on logs.",
+ "example": "a > 3",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "referenceTables": {
+ "description": "Reference tables for the rule.",
+ "items": {
+ "description": "Reference tables used in the queries.",
+ "properties": {
+ "checkPresence": {
+ "description": "Whether to include or exclude the matched values.",
+ "type": "boolean"
+ },
+ "columnName": {
+ "description": "The name of the column in the reference table.",
+ "type": "string"
+ },
+ "logFieldPath": {
+ "description": "The field in the log to match against the reference table.",
+ "type": "string"
+ },
+ "ruleQueryName": {
+ "description": "The name of the query to apply the reference table to.",
+ "type": "string"
+ },
+ "tableName": {
+ "description": "The name of the reference table.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "tags": {
+ "description": "Tags for generated signals.",
+ "items": {
+ "description": "Tag.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "thirdPartyCases": {
+ "description": "Cases for generating signals from third-party rules. Only available for third-party rules.",
+ "example": [],
+ "items": {
+ "description": "Case when signal is generated by a third party rule.",
+ "properties": {
+ "name": {
+ "description": "Name of the case.",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notification targets for each rule case.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "query": {
+ "description": "A query to map a third party event to this case.",
+ "type": "string"
+ },
+ "status": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "type": {
+ "description": "The rule type.",
+ "enum": [
+ "log_detection",
+ "infrastructure_configuration",
+ "workload_security",
+ "cloud_configuration",
+ "application_security"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "LOG_DETECTION",
+ "INFRASTRUCTURE_CONFIGURATION",
+ "WORKLOAD_SECURITY",
+ "CLOUD_CONFIGURATION",
+ "APPLICATION_SECURITY"
+ ]
+ },
+ "updateAuthorId": {
+ "description": "User ID of the user who updated the rule.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "updatedAt": {
+ "description": "The date the rule was last updated, in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "version": {
+ "description": "The version of the rule.",
+ "format": "int64",
+ "type": "integer"
+ }
+ }
+ },
+ {
+ "description": "Rule.",
+ "properties": {
+ "cases": {
+ "description": "Cases for generating signals.",
+ "items": {
+ "description": "Case when signal is generated.",
+ "properties": {
+ "actions": {
+ "description": "Action to perform for each rule case.",
+ "items": {
+ "description": "Action to perform when a signal is triggered. Only available for Application Security rule type.",
+ "properties": {
+ "options": {
+ "description": "Options for the rule action",
+ "properties": {
+ "duration": {
+ "description": "Duration of the action in seconds. 0 indicates no expiration.",
+ "example": 0,
+ "format": "int64",
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "description": "The action type.",
+ "enum": [
+ "block_ip",
+ "block_user"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "BLOCK_IP",
+ "BLOCK_USER"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "condition": {
+ "description": "A rule case contains logical operations (`>`,`>=`, `&&`, `||`) to determine if a signal should be generated\nbased on the event counts in the previously defined queries.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the case.",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notification targets for each rule case.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "status": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "createdAt": {
+ "description": "When the rule was created, timestamp in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "creationAuthorId": {
+ "description": "User ID of the user who created the rule.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "deprecationDate": {
+ "description": "When the rule will be deprecated, timestamp in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "filters": {
+ "description": "Additional queries to filter matched events before they are processed. This field is deprecated for log detection, signal correlation, and workload security rules.",
+ "items": {
+ "description": "The rule's suppression filter.",
+ "properties": {
+ "action": {
+ "description": "The type of filtering action.",
+ "enum": [
+ "require",
+ "suppress"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "REQUIRE",
+ "SUPPRESS"
+ ]
+ },
+ "query": {
+ "description": "Query for selecting logs to apply the filtering action.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "hasExtendedTitle": {
+ "description": "Whether the notifications include the triggering group-by values in their title.",
+ "type": "boolean"
+ },
+ "id": {
+ "description": "The ID of the rule.",
+ "type": "string"
+ },
+ "isDefault": {
+ "description": "Whether the rule is included by default.",
+ "type": "boolean"
+ },
+ "isDeleted": {
+ "description": "Whether the rule has been deleted.",
+ "type": "boolean"
+ },
+ "isEnabled": {
+ "description": "Whether the rule is enabled.",
+ "type": "boolean"
+ },
+ "message": {
+ "description": "Message for generated signals.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the rule.",
+ "type": "string"
+ },
+ "options": {
+ "description": "Options.",
+ "properties": {
+ "complianceRuleOptions": {
+ "additionalProperties": {},
+ "description": "Options for cloud_configuration rules.\nFields `resourceType` and `regoRule` are mandatory when managing custom `cloud_configuration` rules.\n",
+ "properties": {
+ "complexRule": {
+ "description": "Whether the rule is a complex one.\nMust be set to true if `regoRule.resourceTypes` contains more than one item. Defaults to false.\n",
+ "type": "boolean"
+ },
+ "regoRule": {
+ "description": "Rule details.",
+ "properties": {
+ "policy": {
+ "description": "The policy written in `rego`, see: https://www.openpolicyagent.org/docs/latest/policy-language/",
+ "example": "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}\n",
+ "type": "string"
+ },
+ "resourceTypes": {
+ "description": "List of resource types that will be evaluated upon. Must have at least one element.",
+ "example": [
+ "gcp_iam_service_account",
+ "gcp_iam_policy"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "policy",
+ "resourceTypes"
+ ],
+ "type": "object"
+ },
+ "resourceType": {
+ "description": "Main resource type to be checked by the rule. It should be specified again in `regoRule.resourceTypes`.\n",
+ "example": "aws_acm",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "decreaseCriticalityBasedOnEnv": {
+ "description": "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`.",
+ "example": false,
+ "type": "boolean"
+ },
+ "detectionMethod": {
+ "description": "The detection method.",
+ "enum": [
+ "threshold",
+ "new_value",
+ "anomaly_detection",
+ "impossible_travel",
+ "hardcoded",
+ "third_party",
+ "anomaly_threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "THRESHOLD",
+ "NEW_VALUE",
+ "ANOMALY_DETECTION",
+ "IMPOSSIBLE_TRAVEL",
+ "HARDCODED",
+ "THIRD_PARTY",
+ "ANOMALY_THRESHOLD"
+ ]
+ },
+ "evaluationWindow": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS"
+ ]
+ },
+ "hardcodedEvaluatorType": {
+ "description": "Hardcoded evaluator type.",
+ "enum": [
+ "log4shell"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "LOG4SHELL"
+ ]
+ },
+ "impossibleTravelOptions": {
+ "description": "Options on impossible travel detection method.",
+ "properties": {
+ "baselineUserLocations": {
+ "description": "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.",
+ "example": true,
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "keepAlive": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS"
+ ]
+ },
+ "maxSignalDuration": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600,
+ 43200,
+ 86400
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS",
+ "TWELVE_HOURS",
+ "ONE_DAY"
+ ]
+ },
+ "newValueOptions": {
+ "description": "Options on new value detection method.",
+ "properties": {
+ "forgetAfter": {
+ "description": "The duration in days after which a learned value is forgotten.",
+ "enum": [
+ 1,
+ 2,
+ 7,
+ 14,
+ 21,
+ 28
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ONE_DAY",
+ "TWO_DAYS",
+ "ONE_WEEK",
+ "TWO_WEEKS",
+ "THREE_WEEKS",
+ "FOUR_WEEKS"
+ ]
+ },
+ "learningDuration": {
+ "default": 0,
+ "description": "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.",
+ "enum": [
+ 0,
+ 1,
+ 7
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_DAYS",
+ "ONE_DAY",
+ "SEVEN_DAYS"
+ ]
+ },
+ "learningMethod": {
+ "default": "duration",
+ "description": "The learning method used to determine when signals should be generated for values that weren't learned.",
+ "enum": [
+ "duration",
+ "threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "DURATION",
+ "THRESHOLD"
+ ]
+ },
+ "learningThreshold": {
+ "default": 0,
+ "description": "A number of occurrences after which signals will be generated for values that weren't learned.",
+ "enum": [
+ 0,
+ 1
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_OCCURRENCES",
+ "ONE_OCCURRENCE"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "thirdPartyRuleOptions": {
+ "description": "Options on third party detection method.",
+ "properties": {
+ "defaultNotifications": {
+ "description": "Notification targets for the logs that do not correspond to any of the cases.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "defaultStatus": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ },
+ "rootQueries": {
+ "description": "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.",
+ "items": {
+ "description": "A query to be combined with the third party case query.",
+ "properties": {
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "query": {
+ "description": "Query to run on logs.",
+ "example": "source:cloudtrail",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "signalTitleTemplate": {
+ "description": "A template for the signal title; if omitted, the title is generated based on the case name.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "queries": {
+ "description": "Queries for selecting logs which are part of the rule.",
+ "items": {
+ "description": "Query for matching rule on signals.",
+ "properties": {
+ "aggregation": {
+ "description": "The aggregation type.",
+ "enum": [
+ "count",
+ "cardinality",
+ "sum",
+ "max",
+ "new_value",
+ "geo_data",
+ "event_count",
+ "none"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "COUNT",
+ "CARDINALITY",
+ "SUM",
+ "MAX",
+ "NEW_VALUE",
+ "GEO_DATA",
+ "EVENT_COUNT",
+ "NONE"
+ ]
+ },
+ "correlatedByFields": {
+ "description": "Fields to correlate by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "correlatedQueryIndex": {
+ "description": "Index of the rule query used to retrieve the correlated field.",
+ "format": "int32",
+ "maximum": 9,
+ "type": "integer"
+ },
+ "defaultRuleId": {
+ "description": "Default Rule ID to match on signals.",
+ "example": "d3f-ru1-e1d",
+ "type": "string"
+ },
+ "distinctFields": {
+ "description": "Field for which the cardinality is measured. Sent as an array.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "metrics": {
+ "description": "Group of target fields to aggregate over.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the query.",
+ "type": "string"
+ },
+ "ruleId": {
+ "description": "Rule ID to match on signals.",
+ "example": "org-ru1-e1d",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "tags": {
+ "description": "Tags for generated signals.",
+ "items": {
+ "description": "Tag.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "type": {
+ "description": "The rule type.",
+ "enum": [
+ "signal_correlation"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "SIGNAL_CORRELATION"
+ ]
+ },
+ "updateAuthorId": {
+ "description": "User ID of the user who updated the rule.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "version": {
+ "description": "The version of the rule.",
+ "format": "int64",
+ "type": "integer"
+ }
+ }
+ }
+ ]
+ }
},
- "version": {
- "description": "It increments when a BOM is modified. The default value is 1.",
- "example": 1,
- "format": "int64",
- "type": "integer"
- }
+ "type": "object"
},
- "required": [
- "bomFormat",
- "specVersion",
- "components",
- "metadata",
- "serialNumber",
- "version"
- ],
+ "description": "The `RuleVersionHistory` `data`.",
"type": "object"
- },
- "id": {
- "description": "The unique ID for this SBOM (it is equivalent to the `asset_name` or `asset_name@repo_digest` (Image)",
- "example": "github.com/datadog/datadog-agent",
- "type": "string"
- },
- "type": {
- "description": "The JSON:API type.",
- "enum": [
- "sboms"
- ],
- "example": "sboms",
- "type": "string",
- "x-enum-varnames": [
- "SBOMS"
- ]
}
},
"type": "object"
+ },
+ "id": {
+ "description": "ID of the rule.",
+ "type": "string"
+ },
+ "type": {
+ "description": "Type of data.",
+ "enum": [
+ "GetRuleVersionHistoryResponse"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "GETRULEVERSIONHISTORYRESPONSE"
+ ]
}
},
- "required": [
- "data"
- ],
"type": "object"
},
- "GetTeamMembershipsSort": {
- "description": "Specifies the order of returned team memberships",
+ "GetRuleVersionHistoryDataType": {
+ "description": "Type of data.",
"enum": [
- "manager_name",
- "-manager_name",
- "name",
- "-name",
+ "GetRuleVersionHistoryResponse"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "GETRULEVERSIONHISTORYRESPONSE"
+ ]
+ },
+ "GetRuleVersionHistoryResponse": {
+ "description": "Response for getting the rule version history.",
+ "properties": {
+ "data": {
+ "description": "Data for the rule version history.",
+ "properties": {
+ "attributes": {
+ "description": "Response object containing the version history of a rule.",
+ "properties": {
+ "count": {
+ "description": "The number of rule versions.",
+ "format": "int32",
+ "maximum": 2147483647,
+ "type": "integer"
+ },
+ "data": {
+ "additionalProperties": {
+ "description": "A rule version with a list of updates.",
+ "properties": {
+ "changes": {
+ "description": "A list of changes.",
+ "items": {
+ "description": "A change in a rule version.",
+ "properties": {
+ "change": {
+ "description": "The new value of the field.",
+ "example": "cloud_provider:aws",
+ "type": "string"
+ },
+ "field": {
+ "description": "The field that was changed.",
+ "example": "Tags",
+ "type": "string"
+ },
+ "type": {
+ "description": "The type of change.",
+ "enum": [
+ "create",
+ "update",
+ "delete"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "CREATE",
+ "UPDATE",
+ "DELETE"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "rule": {
+ "description": "Create a new rule.",
+ "oneOf": [
+ {
+ "description": "Rule.",
+ "properties": {
+ "cases": {
+ "description": "Cases for generating signals.",
+ "items": {
+ "description": "Case when signal is generated.",
+ "properties": {
+ "actions": {
+ "description": "Action to perform for each rule case.",
+ "items": {
+ "description": "Action to perform when a signal is triggered. Only available for Application Security rule type.",
+ "properties": {
+ "options": {
+ "description": "Options for the rule action",
+ "properties": {
+ "duration": {
+ "description": "Duration of the action in seconds. 0 indicates no expiration.",
+ "example": 0,
+ "format": "int64",
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "description": "The action type.",
+ "enum": [
+ "block_ip",
+ "block_user"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "BLOCK_IP",
+ "BLOCK_USER"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "condition": {
+ "description": "A rule case contains logical operations (`>`,`>=`, `&&`, `||`) to determine if a signal should be generated\nbased on the event counts in the previously defined queries.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the case.",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notification targets for each rule case.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "status": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "complianceSignalOptions": {
+ "description": "How to generate compliance signals. Useful for cloud_configuration rules only.",
+ "properties": {
+ "defaultActivationStatus": {
+ "description": "The default activation status.",
+ "nullable": true,
+ "type": "boolean"
+ },
+ "defaultGroupByFields": {
+ "description": "The default group by fields.",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true,
+ "type": "array"
+ },
+ "userActivationStatus": {
+ "description": "Whether signals will be sent.",
+ "nullable": true,
+ "type": "boolean"
+ },
+ "userGroupByFields": {
+ "description": "Fields to use to group findings by when sending signals.",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true,
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "createdAt": {
+ "description": "When the rule was created, timestamp in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "creationAuthorId": {
+ "description": "User ID of the user who created the rule.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "defaultTags": {
+ "description": "Default Tags for default rules (included in tags)",
+ "example": [
+ "security:attacks"
+ ],
+ "items": {
+ "description": "Default Tag.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "deprecationDate": {
+ "description": "When the rule will be deprecated, timestamp in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "filters": {
+ "description": "Additional queries to filter matched events before they are processed. This field is deprecated for log detection, signal correlation, and workload security rules.",
+ "items": {
+ "description": "The rule's suppression filter.",
+ "properties": {
+ "action": {
+ "description": "The type of filtering action.",
+ "enum": [
+ "require",
+ "suppress"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "REQUIRE",
+ "SUPPRESS"
+ ]
+ },
+ "query": {
+ "description": "Query for selecting logs to apply the filtering action.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "groupSignalsBy": {
+ "description": "Additional grouping to perform on top of the existing groups in the query section. Must be a subset of the existing groups.",
+ "example": [
+ "service"
+ ],
+ "items": {
+ "description": "Field to group by.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "hasExtendedTitle": {
+ "description": "Whether the notifications include the triggering group-by values in their title.",
+ "type": "boolean"
+ },
+ "id": {
+ "description": "The ID of the rule.",
+ "type": "string"
+ },
+ "isDefault": {
+ "description": "Whether the rule is included by default.",
+ "type": "boolean"
+ },
+ "isDeleted": {
+ "description": "Whether the rule has been deleted.",
+ "type": "boolean"
+ },
+ "isEnabled": {
+ "description": "Whether the rule is enabled.",
+ "type": "boolean"
+ },
+ "message": {
+ "description": "Message for generated signals.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the rule.",
+ "type": "string"
+ },
+ "options": {
+ "description": "Options.",
+ "properties": {
+ "complianceRuleOptions": {
+ "additionalProperties": {},
+ "description": "Options for cloud_configuration rules.\nFields `resourceType` and `regoRule` are mandatory when managing custom `cloud_configuration` rules.\n",
+ "properties": {
+ "complexRule": {
+ "description": "Whether the rule is a complex one.\nMust be set to true if `regoRule.resourceTypes` contains more than one item. Defaults to false.\n",
+ "type": "boolean"
+ },
+ "regoRule": {
+ "description": "Rule details.",
+ "properties": {
+ "policy": {
+ "description": "The policy written in `rego`, see: https://www.openpolicyagent.org/docs/latest/policy-language/",
+ "example": "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}\n",
+ "type": "string"
+ },
+ "resourceTypes": {
+ "description": "List of resource types that will be evaluated upon. Must have at least one element.",
+ "example": [
+ "gcp_iam_service_account",
+ "gcp_iam_policy"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "policy",
+ "resourceTypes"
+ ],
+ "type": "object"
+ },
+ "resourceType": {
+ "description": "Main resource type to be checked by the rule. It should be specified again in `regoRule.resourceTypes`.\n",
+ "example": "aws_acm",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "decreaseCriticalityBasedOnEnv": {
+ "description": "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`.",
+ "example": false,
+ "type": "boolean"
+ },
+ "detectionMethod": {
+ "description": "The detection method.",
+ "enum": [
+ "threshold",
+ "new_value",
+ "anomaly_detection",
+ "impossible_travel",
+ "hardcoded",
+ "third_party",
+ "anomaly_threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "THRESHOLD",
+ "NEW_VALUE",
+ "ANOMALY_DETECTION",
+ "IMPOSSIBLE_TRAVEL",
+ "HARDCODED",
+ "THIRD_PARTY",
+ "ANOMALY_THRESHOLD"
+ ]
+ },
+ "evaluationWindow": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS"
+ ]
+ },
+ "hardcodedEvaluatorType": {
+ "description": "Hardcoded evaluator type.",
+ "enum": [
+ "log4shell"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "LOG4SHELL"
+ ]
+ },
+ "impossibleTravelOptions": {
+ "description": "Options on impossible travel detection method.",
+ "properties": {
+ "baselineUserLocations": {
+ "description": "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.",
+ "example": true,
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "keepAlive": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS"
+ ]
+ },
+ "maxSignalDuration": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600,
+ 43200,
+ 86400
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS",
+ "TWELVE_HOURS",
+ "ONE_DAY"
+ ]
+ },
+ "newValueOptions": {
+ "description": "Options on new value detection method.",
+ "properties": {
+ "forgetAfter": {
+ "description": "The duration in days after which a learned value is forgotten.",
+ "enum": [
+ 1,
+ 2,
+ 7,
+ 14,
+ 21,
+ 28
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ONE_DAY",
+ "TWO_DAYS",
+ "ONE_WEEK",
+ "TWO_WEEKS",
+ "THREE_WEEKS",
+ "FOUR_WEEKS"
+ ]
+ },
+ "learningDuration": {
+ "default": 0,
+ "description": "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.",
+ "enum": [
+ 0,
+ 1,
+ 7
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_DAYS",
+ "ONE_DAY",
+ "SEVEN_DAYS"
+ ]
+ },
+ "learningMethod": {
+ "default": "duration",
+ "description": "The learning method used to determine when signals should be generated for values that weren't learned.",
+ "enum": [
+ "duration",
+ "threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "DURATION",
+ "THRESHOLD"
+ ]
+ },
+ "learningThreshold": {
+ "default": 0,
+ "description": "A number of occurrences after which signals will be generated for values that weren't learned.",
+ "enum": [
+ 0,
+ 1
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_OCCURRENCES",
+ "ONE_OCCURRENCE"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "thirdPartyRuleOptions": {
+ "description": "Options on third party detection method.",
+ "properties": {
+ "defaultNotifications": {
+ "description": "Notification targets for the logs that do not correspond to any of the cases.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "defaultStatus": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ },
+ "rootQueries": {
+ "description": "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.",
+ "items": {
+ "description": "A query to be combined with the third party case query.",
+ "properties": {
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "query": {
+ "description": "Query to run on logs.",
+ "example": "source:cloudtrail",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "signalTitleTemplate": {
+ "description": "A template for the signal title; if omitted, the title is generated based on the case name.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "queries": {
+ "description": "Queries for selecting logs which are part of the rule.",
+ "items": {
+ "description": "Query for matching rule.",
+ "properties": {
+ "aggregation": {
+ "description": "The aggregation type.",
+ "enum": [
+ "count",
+ "cardinality",
+ "sum",
+ "max",
+ "new_value",
+ "geo_data",
+ "event_count",
+ "none"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "COUNT",
+ "CARDINALITY",
+ "SUM",
+ "MAX",
+ "NEW_VALUE",
+ "GEO_DATA",
+ "EVENT_COUNT",
+ "NONE"
+ ]
+ },
+ "distinctFields": {
+ "description": "Field for which the cardinality is measured. Sent as an array.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "hasOptionalGroupByFields": {
+ "description": "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.",
+ "example": false,
+ "readOnly": true,
+ "type": "boolean"
+ },
+ "metric": {
+ "deprecated": true,
+ "description": "(Deprecated) The target field to aggregate over when using the sum or max\naggregations. `metrics` field should be used instead.",
+ "type": "string"
+ },
+ "metrics": {
+ "description": "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.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the query.",
+ "type": "string"
+ },
+ "query": {
+ "description": "Query to run on logs.",
+ "example": "a > 3",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "referenceTables": {
+ "description": "Reference tables for the rule.",
+ "items": {
+ "description": "Reference tables used in the queries.",
+ "properties": {
+ "checkPresence": {
+ "description": "Whether to include or exclude the matched values.",
+ "type": "boolean"
+ },
+ "columnName": {
+ "description": "The name of the column in the reference table.",
+ "type": "string"
+ },
+ "logFieldPath": {
+ "description": "The field in the log to match against the reference table.",
+ "type": "string"
+ },
+ "ruleQueryName": {
+ "description": "The name of the query to apply the reference table to.",
+ "type": "string"
+ },
+ "tableName": {
+ "description": "The name of the reference table.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "tags": {
+ "description": "Tags for generated signals.",
+ "items": {
+ "description": "Tag.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "thirdPartyCases": {
+ "description": "Cases for generating signals from third-party rules. Only available for third-party rules.",
+ "example": [],
+ "items": {
+ "description": "Case when signal is generated by a third party rule.",
+ "properties": {
+ "name": {
+ "description": "Name of the case.",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notification targets for each rule case.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "query": {
+ "description": "A query to map a third party event to this case.",
+ "type": "string"
+ },
+ "status": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "type": {
+ "description": "The rule type.",
+ "enum": [
+ "log_detection",
+ "infrastructure_configuration",
+ "workload_security",
+ "cloud_configuration",
+ "application_security"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "LOG_DETECTION",
+ "INFRASTRUCTURE_CONFIGURATION",
+ "WORKLOAD_SECURITY",
+ "CLOUD_CONFIGURATION",
+ "APPLICATION_SECURITY"
+ ]
+ },
+ "updateAuthorId": {
+ "description": "User ID of the user who updated the rule.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "updatedAt": {
+ "description": "The date the rule was last updated, in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "version": {
+ "description": "The version of the rule.",
+ "format": "int64",
+ "type": "integer"
+ }
+ }
+ },
+ {
+ "description": "Rule.",
+ "properties": {
+ "cases": {
+ "description": "Cases for generating signals.",
+ "items": {
+ "description": "Case when signal is generated.",
+ "properties": {
+ "actions": {
+ "description": "Action to perform for each rule case.",
+ "items": {
+ "description": "Action to perform when a signal is triggered. Only available for Application Security rule type.",
+ "properties": {
+ "options": {
+ "description": "Options for the rule action",
+ "properties": {
+ "duration": {
+ "description": "Duration of the action in seconds. 0 indicates no expiration.",
+ "example": 0,
+ "format": "int64",
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "description": "The action type.",
+ "enum": [
+ "block_ip",
+ "block_user"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "BLOCK_IP",
+ "BLOCK_USER"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "condition": {
+ "description": "A rule case contains logical operations (`>`,`>=`, `&&`, `||`) to determine if a signal should be generated\nbased on the event counts in the previously defined queries.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the case.",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notification targets for each rule case.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "status": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "createdAt": {
+ "description": "When the rule was created, timestamp in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "creationAuthorId": {
+ "description": "User ID of the user who created the rule.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "deprecationDate": {
+ "description": "When the rule will be deprecated, timestamp in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "filters": {
+ "description": "Additional queries to filter matched events before they are processed. This field is deprecated for log detection, signal correlation, and workload security rules.",
+ "items": {
+ "description": "The rule's suppression filter.",
+ "properties": {
+ "action": {
+ "description": "The type of filtering action.",
+ "enum": [
+ "require",
+ "suppress"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "REQUIRE",
+ "SUPPRESS"
+ ]
+ },
+ "query": {
+ "description": "Query for selecting logs to apply the filtering action.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "hasExtendedTitle": {
+ "description": "Whether the notifications include the triggering group-by values in their title.",
+ "type": "boolean"
+ },
+ "id": {
+ "description": "The ID of the rule.",
+ "type": "string"
+ },
+ "isDefault": {
+ "description": "Whether the rule is included by default.",
+ "type": "boolean"
+ },
+ "isDeleted": {
+ "description": "Whether the rule has been deleted.",
+ "type": "boolean"
+ },
+ "isEnabled": {
+ "description": "Whether the rule is enabled.",
+ "type": "boolean"
+ },
+ "message": {
+ "description": "Message for generated signals.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the rule.",
+ "type": "string"
+ },
+ "options": {
+ "description": "Options.",
+ "properties": {
+ "complianceRuleOptions": {
+ "additionalProperties": {},
+ "description": "Options for cloud_configuration rules.\nFields `resourceType` and `regoRule` are mandatory when managing custom `cloud_configuration` rules.\n",
+ "properties": {
+ "complexRule": {
+ "description": "Whether the rule is a complex one.\nMust be set to true if `regoRule.resourceTypes` contains more than one item. Defaults to false.\n",
+ "type": "boolean"
+ },
+ "regoRule": {
+ "description": "Rule details.",
+ "properties": {
+ "policy": {
+ "description": "The policy written in `rego`, see: https://www.openpolicyagent.org/docs/latest/policy-language/",
+ "example": "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}\n",
+ "type": "string"
+ },
+ "resourceTypes": {
+ "description": "List of resource types that will be evaluated upon. Must have at least one element.",
+ "example": [
+ "gcp_iam_service_account",
+ "gcp_iam_policy"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "policy",
+ "resourceTypes"
+ ],
+ "type": "object"
+ },
+ "resourceType": {
+ "description": "Main resource type to be checked by the rule. It should be specified again in `regoRule.resourceTypes`.\n",
+ "example": "aws_acm",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "decreaseCriticalityBasedOnEnv": {
+ "description": "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`.",
+ "example": false,
+ "type": "boolean"
+ },
+ "detectionMethod": {
+ "description": "The detection method.",
+ "enum": [
+ "threshold",
+ "new_value",
+ "anomaly_detection",
+ "impossible_travel",
+ "hardcoded",
+ "third_party",
+ "anomaly_threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "THRESHOLD",
+ "NEW_VALUE",
+ "ANOMALY_DETECTION",
+ "IMPOSSIBLE_TRAVEL",
+ "HARDCODED",
+ "THIRD_PARTY",
+ "ANOMALY_THRESHOLD"
+ ]
+ },
+ "evaluationWindow": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS"
+ ]
+ },
+ "hardcodedEvaluatorType": {
+ "description": "Hardcoded evaluator type.",
+ "enum": [
+ "log4shell"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "LOG4SHELL"
+ ]
+ },
+ "impossibleTravelOptions": {
+ "description": "Options on impossible travel detection method.",
+ "properties": {
+ "baselineUserLocations": {
+ "description": "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.",
+ "example": true,
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "keepAlive": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS"
+ ]
+ },
+ "maxSignalDuration": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600,
+ 43200,
+ 86400
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS",
+ "TWELVE_HOURS",
+ "ONE_DAY"
+ ]
+ },
+ "newValueOptions": {
+ "description": "Options on new value detection method.",
+ "properties": {
+ "forgetAfter": {
+ "description": "The duration in days after which a learned value is forgotten.",
+ "enum": [
+ 1,
+ 2,
+ 7,
+ 14,
+ 21,
+ 28
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ONE_DAY",
+ "TWO_DAYS",
+ "ONE_WEEK",
+ "TWO_WEEKS",
+ "THREE_WEEKS",
+ "FOUR_WEEKS"
+ ]
+ },
+ "learningDuration": {
+ "default": 0,
+ "description": "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.",
+ "enum": [
+ 0,
+ 1,
+ 7
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_DAYS",
+ "ONE_DAY",
+ "SEVEN_DAYS"
+ ]
+ },
+ "learningMethod": {
+ "default": "duration",
+ "description": "The learning method used to determine when signals should be generated for values that weren't learned.",
+ "enum": [
+ "duration",
+ "threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "DURATION",
+ "THRESHOLD"
+ ]
+ },
+ "learningThreshold": {
+ "default": 0,
+ "description": "A number of occurrences after which signals will be generated for values that weren't learned.",
+ "enum": [
+ 0,
+ 1
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_OCCURRENCES",
+ "ONE_OCCURRENCE"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "thirdPartyRuleOptions": {
+ "description": "Options on third party detection method.",
+ "properties": {
+ "defaultNotifications": {
+ "description": "Notification targets for the logs that do not correspond to any of the cases.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "defaultStatus": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ },
+ "rootQueries": {
+ "description": "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.",
+ "items": {
+ "description": "A query to be combined with the third party case query.",
+ "properties": {
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "query": {
+ "description": "Query to run on logs.",
+ "example": "source:cloudtrail",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "signalTitleTemplate": {
+ "description": "A template for the signal title; if omitted, the title is generated based on the case name.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "queries": {
+ "description": "Queries for selecting logs which are part of the rule.",
+ "items": {
+ "description": "Query for matching rule on signals.",
+ "properties": {
+ "aggregation": {
+ "description": "The aggregation type.",
+ "enum": [
+ "count",
+ "cardinality",
+ "sum",
+ "max",
+ "new_value",
+ "geo_data",
+ "event_count",
+ "none"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "COUNT",
+ "CARDINALITY",
+ "SUM",
+ "MAX",
+ "NEW_VALUE",
+ "GEO_DATA",
+ "EVENT_COUNT",
+ "NONE"
+ ]
+ },
+ "correlatedByFields": {
+ "description": "Fields to correlate by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "correlatedQueryIndex": {
+ "description": "Index of the rule query used to retrieve the correlated field.",
+ "format": "int32",
+ "maximum": 9,
+ "type": "integer"
+ },
+ "defaultRuleId": {
+ "description": "Default Rule ID to match on signals.",
+ "example": "d3f-ru1-e1d",
+ "type": "string"
+ },
+ "distinctFields": {
+ "description": "Field for which the cardinality is measured. Sent as an array.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "metrics": {
+ "description": "Group of target fields to aggregate over.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the query.",
+ "type": "string"
+ },
+ "ruleId": {
+ "description": "Rule ID to match on signals.",
+ "example": "org-ru1-e1d",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "tags": {
+ "description": "Tags for generated signals.",
+ "items": {
+ "description": "Tag.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "type": {
+ "description": "The rule type.",
+ "enum": [
+ "signal_correlation"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "SIGNAL_CORRELATION"
+ ]
+ },
+ "updateAuthorId": {
+ "description": "User ID of the user who updated the rule.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "version": {
+ "description": "The version of the rule.",
+ "format": "int64",
+ "type": "integer"
+ }
+ }
+ }
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "description": "The `RuleVersionHistory` `data`.",
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the rule.",
+ "type": "string"
+ },
+ "type": {
+ "description": "Type of data.",
+ "enum": [
+ "GetRuleVersionHistoryResponse"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "GETRULEVERSIONHISTORYRESPONSE"
+ ]
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "GetSBOMResponse": {
+ "description": "The expected response schema when getting an SBOM.",
+ "properties": {
+ "data": {
+ "description": "A single SBOM",
+ "properties": {
+ "attributes": {
+ "description": "The JSON:API attributes of the SBOM.",
+ "properties": {
+ "bomFormat": {
+ "description": "Specifies the format of the BOM. This helps to identify the file as CycloneDX since BOM do not have a filename convention nor does JSON schema support namespaces. This value MUST be `CycloneDX`.",
+ "example": "CycloneDX",
+ "type": "string"
+ },
+ "components": {
+ "description": "A list of software and hardware components.",
+ "items": {
+ "description": "Software or hardware component.",
+ "properties": {
+ "bom-ref": {
+ "description": "An optional identifier that can be used to reference the component elsewhere in the BOM.",
+ "example": "pkg:golang/google.golang.org/grpc@1.68.1",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the component. This will often be a shortened, single name of the component.",
+ "example": "google.golang.org/grpc",
+ "type": "string"
+ },
+ "purl": {
+ "description": "Specifies the package-url (purl). The purl, if specified, MUST be valid and conform to the [specification](https://github.com/package-url/purl-spec).",
+ "example": "pkg:golang/google.golang.org/grpc@1.68.1",
+ "type": "string"
+ },
+ "type": {
+ "description": "The SBOM component type",
+ "enum": [
+ "application",
+ "container",
+ "data",
+ "device",
+ "device-driver",
+ "file",
+ "firmware",
+ "framework",
+ "library",
+ "machine-learning-model",
+ "operating-system",
+ "platform"
+ ],
+ "example": "application",
+ "type": "string",
+ "x-enum-varnames": [
+ "APPLICATION",
+ "CONTAINER",
+ "DATA",
+ "DEVICE",
+ "DEVICE_DRIVER",
+ "FILE",
+ "FIRMWARE",
+ "FRAMEWORK",
+ "LIBRARY",
+ "MACHINE_LEARNING_MODEL",
+ "OPERATING_SYSTEM",
+ "PLATFORM"
+ ]
+ },
+ "version": {
+ "description": "The component version.",
+ "example": "1.68.1",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "name",
+ "version"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "metadata": {
+ "description": "Provides additional information about a BOM.",
+ "properties": {
+ "component": {
+ "description": "The component that the BOM describes.",
+ "properties": {
+ "name": {
+ "description": "The name of the component. This will often be a shortened, single name of the component.",
+ "example": "github.com/datadog/datadog-agent",
+ "type": "string"
+ },
+ "type": {
+ "description": "Specifies the type of the component.",
+ "example": "application",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "serialNumber": {
+ "description": "Every BOM generated has a unique serial number, even if the contents of the BOM have not changed overt time. The serial number follows [RFC-4122](https://datatracker.ietf.org/doc/html/rfc4122)",
+ "example": "urn:uuid:f7119d2f-1vgh-24b5-91f0-12010db72da7",
+ "type": "string"
+ },
+ "specVersion": {
+ "description": "The version of the CycloneDX specification a BOM conforms to.",
+ "enum": [
+ "1.0",
+ "1.1",
+ "1.2",
+ "1.3",
+ "1.4",
+ "1.5"
+ ],
+ "example": "1.5",
+ "type": "string",
+ "x-enum-varnames": [
+ "ONE_ZERO",
+ "ONE_ONE",
+ "ONE_TWO",
+ "ONE_THREE",
+ "ONE_FOUR",
+ "ONE_FIVE"
+ ]
+ },
+ "version": {
+ "description": "It increments when a BOM is modified. The default value is 1.",
+ "example": 1,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ "required": [
+ "bomFormat",
+ "specVersion",
+ "components",
+ "metadata",
+ "serialNumber",
+ "version"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "description": "The unique ID for this SBOM (it is equivalent to the `asset_name` or `asset_name@repo_digest` (Image)",
+ "example": "github.com/datadog/datadog-agent",
+ "type": "string"
+ },
+ "type": {
+ "description": "The JSON:API type.",
+ "enum": [
+ "sboms"
+ ],
+ "example": "sboms",
+ "type": "string",
+ "x-enum-varnames": [
+ "SBOMS"
+ ]
+ }
+ },
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "GetTeamMembershipsSort": {
+ "description": "Specifies the order of returned team memberships",
+ "enum": [
+ "manager_name",
+ "-manager_name",
+ "name",
+ "-name",
"handle",
"-handle",
"email",
@@ -74121,6 +79939,1123 @@
"_EMAIL"
]
},
+ "GetWorkflowResponse": {
+ "description": "The response object after getting a workflow.",
+ "properties": {
+ "data": {
+ "description": "Data related to the workflow.",
+ "properties": {
+ "attributes": {
+ "description": "The definition of `WorkflowDataAttributes` object.",
+ "properties": {
+ "createdAt": {
+ "description": "When the workflow was created.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of the workflow.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the workflow.",
+ "example": "",
+ "type": "string"
+ },
+ "published": {
+ "description": "Set the workflow to published or unpublished. Workflows in an unpublished state will only be executable via manual runs. Automatic triggers such as Schedule will not execute the workflow until it is published.",
+ "type": "boolean"
+ },
+ "spec": {
+ "description": "The spec defines what the workflow does.",
+ "properties": {
+ "annotations": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "items": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "properties": {
+ "display": {
+ "description": "The definition of `AnnotationDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `AnnotationDisplayBounds` object.",
+ "properties": {
+ "height": {
+ "description": "The `bounds` `height`.",
+ "format": "double",
+ "type": "number"
+ },
+ "width": {
+ "description": "The `bounds` `width`.",
+ "format": "double",
+ "type": "number"
+ },
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The `Annotation` `id`.",
+ "example": "",
+ "type": "string"
+ },
+ "markdownTextAnnotation": {
+ "description": "The definition of `AnnotationMarkdownTextAnnotation` object.",
+ "properties": {
+ "text": {
+ "description": "The `markdownTextAnnotation` `text`.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "required": [
+ "id",
+ "display",
+ "markdownTextAnnotation"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "connectionEnvs": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "items": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "properties": {
+ "connectionGroups": {
+ "description": "The `ConnectionEnv` `connectionGroups`.",
+ "items": {
+ "description": "The definition of `ConnectionGroup` object.",
+ "properties": {
+ "connectionGroupId": {
+ "description": "The `ConnectionGroup` `connectionGroupId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `ConnectionGroup` `label`.",
+ "example": "",
+ "type": "string"
+ },
+ "tags": {
+ "description": "The `ConnectionGroup` `tags`.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "connectionGroupId",
+ "label",
+ "tags"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "connections": {
+ "description": "The `ConnectionEnv` `connections`.",
+ "items": {
+ "description": "The definition of `Connection` object.",
+ "properties": {
+ "connectionId": {
+ "description": "The `Connection` `connectionId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `Connection` `label`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "connectionId",
+ "label"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "env": {
+ "description": "The definition of `ConnectionEnvEnv` object.",
+ "enum": [
+ "default"
+ ],
+ "example": "default",
+ "type": "string",
+ "x-enum-varnames": [
+ "DEFAULT"
+ ]
+ }
+ },
+ "required": [
+ "env"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "handle": {
+ "description": "Unique identifier used to trigger workflows automatically in Datadog.",
+ "type": "string"
+ },
+ "inputSchema": {
+ "description": "A list of input parameters for the workflow. These can be used as dynamic runtime values in your workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `InputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `InputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `InputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `InputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `InputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `InputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `InputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "outputSchema": {
+ "description": "A list of output parameters for the workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `OutputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `OutputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `OutputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `OutputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `OutputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `OutputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `OutputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ },
+ "value": {
+ "description": "The `OutputSchemaParameters` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "steps": {
+ "description": "A `Step` is a sub-component of a workflow. Each `Step` performs an action.",
+ "items": {
+ "description": "A Step is a sub-component of a workflow. Each Step performs an action.",
+ "properties": {
+ "actionId": {
+ "description": "The unique identifier of an action.",
+ "example": "",
+ "type": "string"
+ },
+ "completionGate": {
+ "description": "Used to create conditions before running subsequent actions.",
+ "properties": {
+ "completionCondition": {
+ "description": "The definition of `CompletionCondition` object.",
+ "properties": {
+ "operand1": {
+ "description": "The `CompletionCondition` `operand1`."
+ },
+ "operand2": {
+ "description": "The `CompletionCondition` `operand2`."
+ },
+ "operator": {
+ "description": "The definition of `CompletionConditionOperator` object.",
+ "enum": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ],
+ "example": "OPERATOR_EQUAL",
+ "type": "string",
+ "x-enum-varnames": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ]
+ }
+ },
+ "required": [
+ "operand1",
+ "operator"
+ ],
+ "type": "object"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "completionCondition",
+ "retryStrategy"
+ ],
+ "type": "object"
+ },
+ "connectionLabel": {
+ "description": "The unique identifier of a connection defined in the spec.",
+ "type": "string"
+ },
+ "display": {
+ "description": "The definition of `StepDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `StepDisplayBounds` object.",
+ "properties": {
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "errorHandlers": {
+ "description": "The `Step` `errorHandlers`.",
+ "items": {
+ "description": "Used to handle errors in an action.",
+ "properties": {
+ "fallbackStepName": {
+ "description": "The `ErrorHandler` `fallbackStepName`.",
+ "example": "",
+ "type": "string"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "retryStrategy",
+ "fallbackStepName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the step.",
+ "example": "",
+ "type": "string"
+ },
+ "outboundEdges": {
+ "description": "A list of subsequent actions to run.",
+ "items": {
+ "description": "The definition of `OutboundEdge` object.",
+ "properties": {
+ "branchName": {
+ "description": "The `OutboundEdge` `branchName`.",
+ "example": "",
+ "type": "string"
+ },
+ "nextStepName": {
+ "description": "The `OutboundEdge` `nextStepName`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "nextStepName",
+ "branchName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "parameters": {
+ "description": "A list of inputs for an action.",
+ "items": {
+ "description": "The definition of `Parameter` object.",
+ "properties": {
+ "name": {
+ "description": "The `Parameter` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "value": {
+ "description": "The `Parameter` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "value"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "readinessGate": {
+ "description": "Used to merge multiple branches into a single branch.",
+ "properties": {
+ "thresholdType": {
+ "description": "The definition of `ReadinessGateThresholdType` object.",
+ "enum": [
+ "ANY",
+ "ALL"
+ ],
+ "example": "ANY",
+ "type": "string",
+ "x-enum-varnames": [
+ "ANY",
+ "ALL"
+ ]
+ }
+ },
+ "required": [
+ "thresholdType"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "name",
+ "actionId"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "triggers": {
+ "description": "The list of triggers that activate this workflow. At least one trigger is required, and each trigger type may appear at most once.",
+ "items": {
+ "description": "One of the triggers that can start the execution of a workflow.",
+ "oneOf": [
+ {
+ "description": "Schema for an API-based trigger.",
+ "properties": {
+ "apiTrigger": {
+ "description": "Trigger a workflow VIA an API. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "apiTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an App-based trigger.",
+ "properties": {
+ "appTrigger": {
+ "description": "Trigger a workflow VIA an App.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "appTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Case-based trigger.",
+ "properties": {
+ "caseTrigger": {
+ "description": "Trigger a workflow VIA a Case. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "caseTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Change Event-based trigger.",
+ "properties": {
+ "changeEventTrigger": {
+ "description": "Trigger a workflow VIA a Change Event.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "changeEventTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Dashboard-based trigger.",
+ "properties": {
+ "dashboardTrigger": {
+ "description": "Trigger a workflow VIA a Dashboard.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "dashboardTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a GitHub webhook-based trigger.",
+ "properties": {
+ "githubWebhookTrigger": {
+ "description": "Trigger a workflow VIA GitHub webhook. To trigger a workflow from GitHub, you must set a `webhookSecret`. In your GitHub Webhook Settings, set the Payload URL to \"base_url\"/api/v2/workflows/\"workflow_id\"/webhook?orgId=\"org_id\", select application/json for the content type, and be highly recommend enabling SSL verification for security. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "githubWebhookTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an Incident-based trigger.",
+ "properties": {
+ "incidentTrigger": {
+ "description": "Trigger a workflow VIA an Incident. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "incidentTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Monitor-based trigger.",
+ "properties": {
+ "monitorTrigger": {
+ "description": "Trigger a workflow VIA a Monitor. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "monitorTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Schedule-based trigger.",
+ "properties": {
+ "scheduleTrigger": {
+ "description": "Trigger a workflow VIA a Schedule. The workflow must be published.",
+ "properties": {
+ "rruleExpression": {
+ "description": "Recurrence rule expression for scheduling.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "rruleExpression"
+ ],
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "scheduleTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Security-based trigger.",
+ "properties": {
+ "securityTrigger": {
+ "description": "Trigger a workflow VIA a Security Signal or Finding. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "securityTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Slack-based trigger.",
+ "properties": {
+ "slackTrigger": {
+ "description": "Trigger a workflow VIA Slack. The workflow must be published.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "slackTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Workflow-based trigger.",
+ "properties": {
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "workflowTrigger": {
+ "description": "Trigger a workflow VIA the Datadog UI. Only required if no other trigger exists.",
+ "type": "object"
+ }
+ },
+ "required": [
+ "workflowTrigger"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "tags": {
+ "description": "Tags of the workflow.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "updatedAt": {
+ "description": "When the workflow was last updated.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "webhookSecret": {
+ "description": "If a Webhook trigger is defined on this workflow, a webhookSecret is required and should be provided here.",
+ "type": "string",
+ "writeOnly": true
+ }
+ },
+ "required": [
+ "name",
+ "spec"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "description": "The workflow identifier",
+ "readOnly": true,
+ "type": "string"
+ },
+ "relationships": {
+ "description": "The definition of `WorkflowDataRelationships` object.",
+ "properties": {
+ "creator": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
+ "properties": {
+ "data": {
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
+ "properties": {
+ "id": {
+ "description": "The user identifier",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "id"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "owner": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
+ "properties": {
+ "data": {
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
+ "properties": {
+ "id": {
+ "description": "The user identifier",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "id"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "readOnly": true,
+ "type": "object"
+ },
+ "type": {
+ "description": "The definition of `WorkflowDataType` object.",
+ "enum": [
+ "workflows"
+ ],
+ "example": "workflows",
+ "type": "string",
+ "x-enum-varnames": [
+ "WORKFLOWS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "attributes"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
"GitCommitSHA": {
"description": "Git Commit SHA.",
"example": "66adc9350f2cc9b250b69abddab733dd55e1a588",
@@ -74132,6 +81067,68 @@
"example": "https://github.com/organization/example-repository",
"type": "string"
},
+ "GithubWebhookTrigger": {
+ "description": "Trigger a workflow VIA GitHub webhook. To trigger a workflow from GitHub, you must set a `webhookSecret`. In your GitHub Webhook Settings, set the Payload URL to \"base_url\"/api/v2/workflows/\"workflow_id\"/webhook?orgId=\"org_id\", select application/json for the content type, and be highly recommend enabling SSL verification for security. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "GithubWebhookTriggerWrapper": {
+ "description": "Schema for a GitHub webhook-based trigger.",
+ "properties": {
+ "githubWebhookTrigger": {
+ "description": "Trigger a workflow VIA GitHub webhook. To trigger a workflow from GitHub, you must set a `webhookSecret`. In your GitHub Webhook Settings, set the Payload URL to \"base_url\"/api/v2/workflows/\"workflow_id\"/webhook?orgId=\"org_id\", select application/json for the content type, and be highly recommend enabling SSL verification for security. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "githubWebhookTrigger"
+ ],
+ "type": "object"
+ },
"GroupScalarColumn": {
"description": "A column containing the tag keys and values in a group.",
"properties": {
@@ -98266,6 +105263,68 @@
"INCIDENT_TODOS"
]
},
+ "IncidentTrigger": {
+ "description": "Trigger a workflow VIA an Incident. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "IncidentTriggerWrapper": {
+ "description": "Schema for an Incident-based trigger.",
+ "properties": {
+ "incidentTrigger": {
+ "description": "Trigger a workflow VIA an Incident. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "incidentTrigger"
+ ],
+ "type": "object"
+ },
"IncidentType": {
"default": "incidents",
"description": "Incident resource type.",
@@ -101197,6 +108256,143 @@
"RELATION"
]
},
+ "InputSchema": {
+ "description": "A list of input parameters for the workflow. These can be used as dynamic runtime values in your workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `InputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `InputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `InputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `InputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `InputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `InputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `InputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "InputSchemaParameters": {
+ "description": "The definition of `InputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `InputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `InputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `InputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `InputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `InputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "InputSchemaParametersType": {
+ "description": "The definition of `InputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ },
"IntakePayloadAccepted": {
"description": "The payload accepted for intake.",
"properties": {
@@ -128174,6 +135370,68 @@
},
"type": "object"
},
+ "MonitorTrigger": {
+ "description": "Trigger a workflow VIA a Monitor. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "MonitorTriggerWrapper": {
+ "description": "Schema for a Monitor-based trigger.",
+ "properties": {
+ "monitorTrigger": {
+ "description": "Trigger a workflow VIA a Monitor. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "monitorTrigger"
+ ],
+ "type": "object"
+ },
"MonitorType": {
"description": "Attributes from the monitor that triggered the event.",
"nullable": true,
@@ -131139,6 +138397,26 @@
"ORGS"
]
},
+ "OutboundEdge": {
+ "description": "The definition of `OutboundEdge` object.",
+ "properties": {
+ "branchName": {
+ "description": "The `OutboundEdge` `branchName`.",
+ "example": "",
+ "type": "string"
+ },
+ "nextStepName": {
+ "description": "The `OutboundEdge` `nextStepName`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "nextStepName",
+ "branchName"
+ ],
+ "type": "object"
+ },
"OutcomeType": {
"default": "outcome",
"description": "The JSON:API type for an outcome.",
@@ -132157,6 +139435,149 @@
},
"type": "object"
},
+ "OutputSchema": {
+ "description": "A list of output parameters for the workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `OutputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `OutputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `OutputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `OutputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `OutputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `OutputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `OutputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ },
+ "value": {
+ "description": "The `OutputSchemaParameters` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "OutputSchemaParameters": {
+ "description": "The definition of `OutputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `OutputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `OutputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `OutputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `OutputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `OutputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ },
+ "value": {
+ "description": "The `OutputSchemaParameters` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "OutputSchemaParametersType": {
+ "description": "The definition of `OutputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ },
"Pagination": {
"description": "Pagination object.",
"properties": {
@@ -132173,6 +139594,24 @@
},
"type": "object"
},
+ "Parameter": {
+ "description": "The definition of `Parameter` object.",
+ "properties": {
+ "name": {
+ "description": "The `Parameter` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "value": {
+ "description": "The `Parameter` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "value"
+ ],
+ "type": "object"
+ },
"PartialAPIKey": {
"description": "Partial Datadog API key.",
"properties": {
@@ -139988,6 +147427,41 @@
},
"type": "object"
},
+ "ReadinessGate": {
+ "description": "Used to merge multiple branches into a single branch.",
+ "properties": {
+ "thresholdType": {
+ "description": "The definition of `ReadinessGateThresholdType` object.",
+ "enum": [
+ "ANY",
+ "ALL"
+ ],
+ "example": "ANY",
+ "type": "string",
+ "x-enum-varnames": [
+ "ANY",
+ "ALL"
+ ]
+ }
+ },
+ "required": [
+ "thresholdType"
+ ],
+ "type": "object"
+ },
+ "ReadinessGateThresholdType": {
+ "description": "The definition of `ReadinessGateThresholdType` object.",
+ "enum": [
+ "ANY",
+ "ALL"
+ ],
+ "example": "ANY",
+ "type": "string",
+ "x-enum-varnames": [
+ "ANY",
+ "ALL"
+ ]
+ },
"RelationType": {
"description": "Supported relation types.",
"enum": [
@@ -143073,44 +150547,492 @@
"type": "string"
}
},
- "type": "object"
- },
- "filter_type": {
- "default": "spans-sampling-processor",
- "description": "The type of retention filter. The value should always be spans-sampling-processor.",
- "enum": [
- "spans-sampling-processor"
+ "type": "object"
+ },
+ "filter_type": {
+ "default": "spans-sampling-processor",
+ "description": "The type of retention filter. The value should always be spans-sampling-processor.",
+ "enum": [
+ "spans-sampling-processor"
+ ],
+ "example": "spans-sampling-processor",
+ "type": "string",
+ "x-enum-varnames": [
+ "SPANS_SAMPLING_PROCESSOR"
+ ]
+ },
+ "modified_at": {
+ "description": "The modification timestamp of the retention filter.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "modified_by": {
+ "description": "The modifier of the retention filter.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the retention filter.",
+ "example": "my retention filter",
+ "type": "string"
+ },
+ "rate": {
+ "description": "Sample rate to apply to spans going through this retention filter,\na value of 1.0 keeps all spans matching the query.",
+ "example": 1,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "RetentionFilterCreateAttributes": {
+ "description": "The object describing the configuration of the retention filter to create/update.",
+ "properties": {
+ "enabled": {
+ "description": "Enable/Disable the retention filter.",
+ "example": true,
+ "type": "boolean"
+ },
+ "filter": {
+ "description": "The spans filter. Spans matching this filter will be indexed and stored.",
+ "properties": {
+ "query": {
+ "description": "The search query - following the [span search syntax](https://docs.datadoghq.com/tracing/trace_explorer/query_syntax/).",
+ "example": "@http.status_code:200 service:my-service",
+ "type": "string"
+ }
+ },
+ "required": [
+ "query"
+ ],
+ "type": "object"
+ },
+ "filter_type": {
+ "default": "spans-sampling-processor",
+ "description": "The type of retention filter. The value should always be spans-sampling-processor.",
+ "enum": [
+ "spans-sampling-processor"
+ ],
+ "example": "spans-sampling-processor",
+ "type": "string",
+ "x-enum-varnames": [
+ "SPANS_SAMPLING_PROCESSOR"
+ ]
+ },
+ "name": {
+ "description": "The name of the retention filter.",
+ "example": "my retention filter",
+ "type": "string"
+ },
+ "rate": {
+ "description": "Sample rate to apply to spans going through this retention filter,\na value of 1.0 keeps all spans matching the query.",
+ "example": 1,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "name",
+ "filter",
+ "enabled",
+ "filter_type",
+ "rate"
+ ],
+ "type": "object"
+ },
+ "RetentionFilterCreateData": {
+ "description": "The body of the retention filter to be created.",
+ "properties": {
+ "attributes": {
+ "description": "The object describing the configuration of the retention filter to create/update.",
+ "properties": {
+ "enabled": {
+ "description": "Enable/Disable the retention filter.",
+ "example": true,
+ "type": "boolean"
+ },
+ "filter": {
+ "description": "The spans filter. Spans matching this filter will be indexed and stored.",
+ "properties": {
+ "query": {
+ "description": "The search query - following the [span search syntax](https://docs.datadoghq.com/tracing/trace_explorer/query_syntax/).",
+ "example": "@http.status_code:200 service:my-service",
+ "type": "string"
+ }
+ },
+ "required": [
+ "query"
+ ],
+ "type": "object"
+ },
+ "filter_type": {
+ "default": "spans-sampling-processor",
+ "description": "The type of retention filter. The value should always be spans-sampling-processor.",
+ "enum": [
+ "spans-sampling-processor"
+ ],
+ "example": "spans-sampling-processor",
+ "type": "string",
+ "x-enum-varnames": [
+ "SPANS_SAMPLING_PROCESSOR"
+ ]
+ },
+ "name": {
+ "description": "The name of the retention filter.",
+ "example": "my retention filter",
+ "type": "string"
+ },
+ "rate": {
+ "description": "Sample rate to apply to spans going through this retention filter,\na value of 1.0 keeps all spans matching the query.",
+ "example": 1,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "name",
+ "filter",
+ "enabled",
+ "filter_type",
+ "rate"
+ ],
+ "type": "object"
+ },
+ "type": {
+ "default": "apm_retention_filter",
+ "description": "The type of the resource.",
+ "enum": [
+ "apm_retention_filter"
+ ],
+ "example": "apm_retention_filter",
+ "type": "string",
+ "x-enum-varnames": [
+ "apm_retention_filter"
+ ]
+ }
+ },
+ "required": [
+ "attributes",
+ "type"
+ ],
+ "type": "object"
+ },
+ "RetentionFilterCreateRequest": {
+ "description": "The body of the retention filter to be created.",
+ "properties": {
+ "data": {
+ "description": "The body of the retention filter to be created.",
+ "properties": {
+ "attributes": {
+ "description": "The object describing the configuration of the retention filter to create/update.",
+ "properties": {
+ "enabled": {
+ "description": "Enable/Disable the retention filter.",
+ "example": true,
+ "type": "boolean"
+ },
+ "filter": {
+ "description": "The spans filter. Spans matching this filter will be indexed and stored.",
+ "properties": {
+ "query": {
+ "description": "The search query - following the [span search syntax](https://docs.datadoghq.com/tracing/trace_explorer/query_syntax/).",
+ "example": "@http.status_code:200 service:my-service",
+ "type": "string"
+ }
+ },
+ "required": [
+ "query"
+ ],
+ "type": "object"
+ },
+ "filter_type": {
+ "default": "spans-sampling-processor",
+ "description": "The type of retention filter. The value should always be spans-sampling-processor.",
+ "enum": [
+ "spans-sampling-processor"
+ ],
+ "example": "spans-sampling-processor",
+ "type": "string",
+ "x-enum-varnames": [
+ "SPANS_SAMPLING_PROCESSOR"
+ ]
+ },
+ "name": {
+ "description": "The name of the retention filter.",
+ "example": "my retention filter",
+ "type": "string"
+ },
+ "rate": {
+ "description": "Sample rate to apply to spans going through this retention filter,\na value of 1.0 keeps all spans matching the query.",
+ "example": 1,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "name",
+ "filter",
+ "enabled",
+ "filter_type",
+ "rate"
+ ],
+ "type": "object"
+ },
+ "type": {
+ "default": "apm_retention_filter",
+ "description": "The type of the resource.",
+ "enum": [
+ "apm_retention_filter"
+ ],
+ "example": "apm_retention_filter",
+ "type": "string",
+ "x-enum-varnames": [
+ "apm_retention_filter"
+ ]
+ }
+ },
+ "required": [
+ "attributes",
+ "type"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "RetentionFilterCreateResponse": {
+ "description": "The retention filters definition.",
+ "properties": {
+ "data": {
+ "description": "The definition of the retention filter.",
+ "properties": {
+ "attributes": {
+ "description": "The attributes of the retention filter.",
+ "properties": {
+ "created_at": {
+ "description": "The creation timestamp of the retention filter.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "created_by": {
+ "description": "The creator of the retention filter.",
+ "type": "string"
+ },
+ "editable": {
+ "description": "Shows whether the filter can be edited.",
+ "example": true,
+ "type": "boolean"
+ },
+ "enabled": {
+ "description": "The status of the retention filter (Enabled/Disabled).",
+ "example": true,
+ "type": "boolean"
+ },
+ "execution_order": {
+ "description": "The execution order of the retention filter.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "filter": {
+ "description": "The spans filter used to index spans.",
+ "properties": {
+ "query": {
+ "description": "The search query - following the [span search syntax](https://docs.datadoghq.com/tracing/trace_explorer/query_syntax/).",
+ "example": "@http.status_code:200 service:my-service",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "filter_type": {
+ "default": "spans-sampling-processor",
+ "description": "The type of retention filter. The value should always be spans-sampling-processor.",
+ "enum": [
+ "spans-sampling-processor"
+ ],
+ "example": "spans-sampling-processor",
+ "type": "string",
+ "x-enum-varnames": [
+ "SPANS_SAMPLING_PROCESSOR"
+ ]
+ },
+ "modified_at": {
+ "description": "The modification timestamp of the retention filter.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "modified_by": {
+ "description": "The modifier of the retention filter.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the retention filter.",
+ "example": "my retention filter",
+ "type": "string"
+ },
+ "rate": {
+ "description": "Sample rate to apply to spans going through this retention filter,\na value of 1.0 keeps all spans matching the query.",
+ "example": 1,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The ID of the retention filter.",
+ "example": "7RBOb7dLSYWI01yc3pIH8w",
+ "type": "string"
+ },
+ "type": {
+ "default": "apm_retention_filter",
+ "description": "The type of the resource.",
+ "enum": [
+ "apm_retention_filter"
+ ],
+ "example": "apm_retention_filter",
+ "type": "string",
+ "x-enum-varnames": [
+ "apm_retention_filter"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type",
+ "attributes"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "RetentionFilterResponse": {
+ "description": "The retention filters definition.",
+ "properties": {
+ "data": {
+ "description": "The definition of the retention filter.",
+ "properties": {
+ "attributes": {
+ "description": "The attributes of the retention filter.",
+ "properties": {
+ "created_at": {
+ "description": "The creation timestamp of the retention filter.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "created_by": {
+ "description": "The creator of the retention filter.",
+ "type": "string"
+ },
+ "editable": {
+ "description": "Shows whether the filter can be edited.",
+ "example": true,
+ "type": "boolean"
+ },
+ "enabled": {
+ "description": "The status of the retention filter (Enabled/Disabled).",
+ "example": true,
+ "type": "boolean"
+ },
+ "execution_order": {
+ "description": "The execution order of the retention filter.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "filter": {
+ "description": "The spans filter used to index spans.",
+ "properties": {
+ "query": {
+ "description": "The search query - following the [span search syntax](https://docs.datadoghq.com/tracing/trace_explorer/query_syntax/).",
+ "example": "@http.status_code:200 service:my-service",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "filter_type": {
+ "default": "spans-sampling-processor",
+ "description": "The type of retention filter.",
+ "enum": [
+ "spans-sampling-processor",
+ "spans-errors-sampling-processor",
+ "spans-appsec-sampling-processor"
+ ],
+ "example": "spans-sampling-processor",
+ "type": "string",
+ "x-enum-varnames": [
+ "SPANS_SAMPLING_PROCESSOR",
+ "SPANS_ERRORS_SAMPLING_PROCESSOR",
+ "SPANS_APPSEC_SAMPLING_PROCESSOR"
+ ]
+ },
+ "modified_at": {
+ "description": "The modification timestamp of the retention filter.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "modified_by": {
+ "description": "The modifier of the retention filter.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the retention filter.",
+ "example": "my retention filter",
+ "type": "string"
+ },
+ "rate": {
+ "description": "Sample rate to apply to spans going through this retention filter,\na value of 1.0 keeps all spans matching the query.",
+ "example": 1,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The ID of the retention filter.",
+ "example": "7RBOb7dLSYWI01yc3pIH8w",
+ "type": "string"
+ },
+ "type": {
+ "default": "apm_retention_filter",
+ "description": "The type of the resource.",
+ "enum": [
+ "apm_retention_filter"
+ ],
+ "example": "apm_retention_filter",
+ "type": "string",
+ "x-enum-varnames": [
+ "apm_retention_filter"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type",
+ "attributes"
],
- "example": "spans-sampling-processor",
- "type": "string",
- "x-enum-varnames": [
- "SPANS_SAMPLING_PROCESSOR"
- ]
- },
- "modified_at": {
- "description": "The modification timestamp of the retention filter.",
- "format": "int64",
- "type": "integer"
- },
- "modified_by": {
- "description": "The modifier of the retention filter.",
- "type": "string"
- },
- "name": {
- "description": "The name of the retention filter.",
- "example": "my retention filter",
- "type": "string"
- },
- "rate": {
- "description": "Sample rate to apply to spans going through this retention filter,\na value of 1.0 keeps all spans matching the query.",
- "example": 1,
- "format": "double",
- "type": "number"
+ "type": "object"
}
},
"type": "object"
},
- "RetentionFilterCreateAttributes": {
+ "RetentionFilterType": {
+ "default": "spans-sampling-processor",
+ "description": "The type of retention filter. The value should always be spans-sampling-processor.",
+ "enum": [
+ "spans-sampling-processor"
+ ],
+ "example": "spans-sampling-processor",
+ "type": "string",
+ "x-enum-varnames": [
+ "SPANS_SAMPLING_PROCESSOR"
+ ]
+ },
+ "RetentionFilterUpdateAttributes": {
"description": "The object describing the configuration of the retention filter to create/update.",
"properties": {
"enabled": {
@@ -143134,14 +151056,18 @@
},
"filter_type": {
"default": "spans-sampling-processor",
- "description": "The type of retention filter. The value should always be spans-sampling-processor.",
+ "description": "The type of retention filter.",
"enum": [
- "spans-sampling-processor"
+ "spans-sampling-processor",
+ "spans-errors-sampling-processor",
+ "spans-appsec-sampling-processor"
],
"example": "spans-sampling-processor",
"type": "string",
"x-enum-varnames": [
- "SPANS_SAMPLING_PROCESSOR"
+ "SPANS_SAMPLING_PROCESSOR",
+ "SPANS_ERRORS_SAMPLING_PROCESSOR",
+ "SPANS_APPSEC_SAMPLING_PROCESSOR"
]
},
"name": {
@@ -143165,8 +151091,8 @@
],
"type": "object"
},
- "RetentionFilterCreateData": {
- "description": "The body of the retention filter to be created.",
+ "RetentionFilterUpdateData": {
+ "description": "The body of the retention filter to be updated.",
"properties": {
"attributes": {
"description": "The object describing the configuration of the retention filter to create/update.",
@@ -143192,14 +151118,18 @@
},
"filter_type": {
"default": "spans-sampling-processor",
- "description": "The type of retention filter. The value should always be spans-sampling-processor.",
+ "description": "The type of retention filter.",
"enum": [
- "spans-sampling-processor"
+ "spans-sampling-processor",
+ "spans-errors-sampling-processor",
+ "spans-appsec-sampling-processor"
],
"example": "spans-sampling-processor",
"type": "string",
"x-enum-varnames": [
- "SPANS_SAMPLING_PROCESSOR"
+ "SPANS_SAMPLING_PROCESSOR",
+ "SPANS_ERRORS_SAMPLING_PROCESSOR",
+ "SPANS_APPSEC_SAMPLING_PROCESSOR"
]
},
"name": {
@@ -143223,6 +151153,11 @@
],
"type": "object"
},
+ "id": {
+ "description": "The ID of the retention filter.",
+ "example": "retention-filter-id",
+ "type": "string"
+ },
"type": {
"default": "apm_retention_filter",
"description": "The type of the resource.",
@@ -143237,16 +151172,17 @@
}
},
"required": [
+ "id",
"attributes",
"type"
],
"type": "object"
},
- "RetentionFilterCreateRequest": {
- "description": "The body of the retention filter to be created.",
+ "RetentionFilterUpdateRequest": {
+ "description": "The body of the retention filter to be updated.",
"properties": {
"data": {
- "description": "The body of the retention filter to be created.",
+ "description": "The body of the retention filter to be updated.",
"properties": {
"attributes": {
"description": "The object describing the configuration of the retention filter to create/update.",
@@ -143272,14 +151208,18 @@
},
"filter_type": {
"default": "spans-sampling-processor",
- "description": "The type of retention filter. The value should always be spans-sampling-processor.",
+ "description": "The type of retention filter.",
"enum": [
- "spans-sampling-processor"
+ "spans-sampling-processor",
+ "spans-errors-sampling-processor",
+ "spans-appsec-sampling-processor"
],
"example": "spans-sampling-processor",
"type": "string",
"x-enum-varnames": [
- "SPANS_SAMPLING_PROCESSOR"
+ "SPANS_SAMPLING_PROCESSOR",
+ "SPANS_ERRORS_SAMPLING_PROCESSOR",
+ "SPANS_APPSEC_SAMPLING_PROCESSOR"
]
},
"name": {
@@ -143303,6 +151243,11 @@
],
"type": "object"
},
+ "id": {
+ "description": "The ID of the retention filter.",
+ "example": "retention-filter-id",
+ "type": "string"
+ },
"type": {
"default": "apm_retention_filter",
"description": "The type of the resource.",
@@ -143317,6 +151262,7 @@
}
},
"required": [
+ "id",
"attributes",
"type"
],
@@ -143328,471 +151274,1296 @@
],
"type": "object"
},
- "RetentionFilterCreateResponse": {
- "description": "The retention filters definition.",
+ "RetentionFilterWithoutAttributes": {
+ "description": "The retention filter object .",
+ "properties": {
+ "id": {
+ "description": "The ID of the retention filter.",
+ "example": "7RBOb7dLSYWI01yc3pIH8w",
+ "type": "string"
+ },
+ "type": {
+ "default": "apm_retention_filter",
+ "description": "The type of the resource.",
+ "enum": [
+ "apm_retention_filter"
+ ],
+ "example": "apm_retention_filter",
+ "type": "string",
+ "x-enum-varnames": [
+ "apm_retention_filter"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ },
+ "RetentionFiltersResponse": {
+ "description": "An ordered list of retention filters.",
"properties": {
"data": {
- "description": "The definition of the retention filter.",
+ "description": "A list of retention filters objects.",
+ "items": {
+ "description": "The definition of the retention filter.",
+ "properties": {
+ "attributes": {
+ "description": "The attributes of the retention filter.",
+ "properties": {
+ "created_at": {
+ "description": "The creation timestamp of the retention filter.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "created_by": {
+ "description": "The creator of the retention filter.",
+ "type": "string"
+ },
+ "editable": {
+ "description": "Shows whether the filter can be edited.",
+ "example": true,
+ "type": "boolean"
+ },
+ "enabled": {
+ "description": "The status of the retention filter (Enabled/Disabled).",
+ "example": true,
+ "type": "boolean"
+ },
+ "execution_order": {
+ "description": "The execution order of the retention filter.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "filter": {
+ "description": "The spans filter used to index spans.",
+ "properties": {
+ "query": {
+ "description": "The search query - following the [span search syntax](https://docs.datadoghq.com/tracing/trace_explorer/query_syntax/).",
+ "example": "@http.status_code:200 service:my-service",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "filter_type": {
+ "default": "spans-sampling-processor",
+ "description": "The type of retention filter.",
+ "enum": [
+ "spans-sampling-processor",
+ "spans-errors-sampling-processor",
+ "spans-appsec-sampling-processor"
+ ],
+ "example": "spans-sampling-processor",
+ "type": "string",
+ "x-enum-varnames": [
+ "SPANS_SAMPLING_PROCESSOR",
+ "SPANS_ERRORS_SAMPLING_PROCESSOR",
+ "SPANS_APPSEC_SAMPLING_PROCESSOR"
+ ]
+ },
+ "modified_at": {
+ "description": "The modification timestamp of the retention filter.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "modified_by": {
+ "description": "The modifier of the retention filter.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the retention filter.",
+ "example": "my retention filter",
+ "type": "string"
+ },
+ "rate": {
+ "description": "Sample rate to apply to spans going through this retention filter,\na value of 1.0 keeps all spans matching the query.",
+ "example": 1,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The ID of the retention filter.",
+ "example": "7RBOb7dLSYWI01yc3pIH8w",
+ "type": "string"
+ },
+ "type": {
+ "default": "apm_retention_filter",
+ "description": "The type of the resource.",
+ "enum": [
+ "apm_retention_filter"
+ ],
+ "example": "apm_retention_filter",
+ "type": "string",
+ "x-enum-varnames": [
+ "apm_retention_filter"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type",
+ "attributes"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "RetryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ },
+ "RetryStrategyKind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "RetryStrategyLinear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ },
+ "Role": {
+ "description": "Role object returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of the role.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the role.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "modified_at": {
+ "description": "Time of last role modification.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
+ "type": "string"
+ },
+ "user_count": {
+ "description": "Number of users with that role.",
+ "format": "int64",
+ "readOnly": true,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The unique identifier of the role.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships of the role object returned by the API.",
+ "properties": {
+ "permissions": {
+ "description": "Relationship to multiple permissions objects.",
+ "properties": {
+ "data": {
+ "description": "Relationships to permission objects.",
+ "items": {
+ "description": "Relationship to permission object.",
+ "properties": {
+ "id": {
+ "description": "ID of the permission.",
+ "type": "string"
+ },
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "RoleAttributes": {
+ "description": "Attributes of the role.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the role.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "modified_at": {
+ "description": "Time of last role modification.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
+ "type": "string"
+ },
+ "user_count": {
+ "description": "Number of users with that role.",
+ "format": "int64",
+ "readOnly": true,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "RoleClone": {
+ "description": "Data for the clone role request.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes required to create a new role by cloning an existing one.",
+ "properties": {
+ "name": {
+ "description": "Name of the new role that is cloned.",
+ "example": "cloned-role",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "type": "object"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "attributes"
+ ],
+ "type": "object"
+ },
+ "RoleCloneAttributes": {
+ "description": "Attributes required to create a new role by cloning an existing one.",
+ "properties": {
+ "name": {
+ "description": "Name of the new role that is cloned.",
+ "example": "cloned-role",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "type": "object"
+ },
+ "RoleCloneRequest": {
+ "description": "Request to create a role by cloning an existing role.",
+ "properties": {
+ "data": {
+ "description": "Data for the clone role request.",
"properties": {
"attributes": {
- "description": "The attributes of the retention filter.",
+ "description": "Attributes required to create a new role by cloning an existing one.",
+ "properties": {
+ "name": {
+ "description": "Name of the new role that is cloned.",
+ "example": "cloned-role",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "type": "object"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "attributes"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "RoleCreateAttributes": {
+ "description": "Attributes of the created role.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the role.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "modified_at": {
+ "description": "Time of last role modification.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the role.",
+ "example": "developers",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "type": "object"
+ },
+ "RoleCreateData": {
+ "description": "Data related to the creation of a role.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of the created role.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the role.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "modified_at": {
+ "description": "Time of last role modification.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the role.",
+ "example": "developers",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "type": "object"
+ },
+ "relationships": {
+ "description": "Relationships of the role object.",
+ "properties": {
+ "permissions": {
+ "description": "Relationship to multiple permissions objects.",
+ "properties": {
+ "data": {
+ "description": "Relationships to permission objects.",
+ "items": {
+ "description": "Relationship to permission object.",
+ "properties": {
+ "id": {
+ "description": "ID of the permission.",
+ "type": "string"
+ },
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "required": [
+ "attributes"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "RoleCreateRequest": {
+ "description": "Create a role.",
+ "properties": {
+ "data": {
+ "description": "Data related to the creation of a role.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of the created role.",
"properties": {
"created_at": {
- "description": "The creation timestamp of the retention filter.",
- "format": "int64",
- "type": "integer"
- },
- "created_by": {
- "description": "The creator of the retention filter.",
+ "description": "Creation time of the role.",
+ "format": "date-time",
+ "readOnly": true,
"type": "string"
},
- "editable": {
- "description": "Shows whether the filter can be edited.",
- "example": true,
- "type": "boolean"
- },
- "enabled": {
- "description": "The status of the retention filter (Enabled/Disabled).",
- "example": true,
- "type": "boolean"
- },
- "execution_order": {
- "description": "The execution order of the retention filter.",
- "format": "int64",
- "type": "integer"
+ "modified_at": {
+ "description": "Time of last role modification.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
},
- "filter": {
- "description": "The spans filter used to index spans.",
+ "name": {
+ "description": "Name of the role.",
+ "example": "developers",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "type": "object"
+ },
+ "relationships": {
+ "description": "Relationships of the role object.",
+ "properties": {
+ "permissions": {
+ "description": "Relationship to multiple permissions objects.",
"properties": {
- "query": {
- "description": "The search query - following the [span search syntax](https://docs.datadoghq.com/tracing/trace_explorer/query_syntax/).",
- "example": "@http.status_code:200 service:my-service",
- "type": "string"
+ "data": {
+ "description": "Relationships to permission objects.",
+ "items": {
+ "description": "Relationship to permission object.",
+ "properties": {
+ "id": {
+ "description": "ID of the permission.",
+ "type": "string"
+ },
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
}
},
- "type": "object"
- },
- "filter_type": {
- "default": "spans-sampling-processor",
- "description": "The type of retention filter. The value should always be spans-sampling-processor.",
- "enum": [
- "spans-sampling-processor"
- ],
- "example": "spans-sampling-processor",
- "type": "string",
- "x-enum-varnames": [
- "SPANS_SAMPLING_PROCESSOR"
- ]
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "required": [
+ "attributes"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "RoleCreateResponse": {
+ "description": "Response containing information about a created role.",
+ "properties": {
+ "data": {
+ "description": "Role object returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of the created role.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the role.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
},
"modified_at": {
- "description": "The modification timestamp of the retention filter.",
- "format": "int64",
- "type": "integer"
- },
- "modified_by": {
- "description": "The modifier of the retention filter.",
+ "description": "Time of last role modification.",
+ "format": "date-time",
+ "readOnly": true,
"type": "string"
},
"name": {
- "description": "The name of the retention filter.",
- "example": "my retention filter",
+ "description": "Name of the role.",
+ "example": "developers",
"type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "description": "The unique identifier of the role.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships of the role object returned by the API.",
+ "properties": {
+ "permissions": {
+ "description": "Relationship to multiple permissions objects.",
+ "properties": {
+ "data": {
+ "description": "Relationships to permission objects.",
+ "items": {
+ "description": "Relationship to permission object.",
+ "properties": {
+ "id": {
+ "description": "ID of the permission.",
+ "type": "string"
+ },
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "RoleCreateResponseData": {
+ "description": "Role object returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of the created role.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the role.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "modified_at": {
+ "description": "Time of last role modification.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the role.",
+ "example": "developers",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "description": "The unique identifier of the role.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships of the role object returned by the API.",
+ "properties": {
+ "permissions": {
+ "description": "Relationship to multiple permissions objects.",
+ "properties": {
+ "data": {
+ "description": "Relationships to permission objects.",
+ "items": {
+ "description": "Relationship to permission object.",
+ "properties": {
+ "id": {
+ "description": "ID of the permission.",
+ "type": "string"
+ },
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object"
+ },
+ "RoleRelationships": {
+ "description": "Relationships of the role object.",
+ "properties": {
+ "permissions": {
+ "description": "Relationship to multiple permissions objects.",
+ "properties": {
+ "data": {
+ "description": "Relationships to permission objects.",
+ "items": {
+ "description": "Relationship to permission object.",
+ "properties": {
+ "id": {
+ "description": "ID of the permission.",
+ "type": "string"
+ },
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
},
- "rate": {
- "description": "Sample rate to apply to spans going through this retention filter,\na value of 1.0 keeps all spans matching the query.",
- "example": 1,
- "format": "double",
- "type": "number"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
}
},
- "type": "object"
- },
- "id": {
- "description": "The ID of the retention filter.",
- "example": "7RBOb7dLSYWI01yc3pIH8w",
- "type": "string"
- },
- "type": {
- "default": "apm_retention_filter",
- "description": "The type of the resource.",
- "enum": [
- "apm_retention_filter"
- ],
- "example": "apm_retention_filter",
- "type": "string",
- "x-enum-varnames": [
- "apm_retention_filter"
- ]
+ "type": "array"
}
},
- "required": [
- "id",
- "type",
- "attributes"
- ],
- "type": "object"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
"type": "object"
},
- "RetentionFilterResponse": {
- "description": "The retention filters definition.",
+ "RoleResponse": {
+ "description": "Response containing information about a single role.",
"properties": {
"data": {
- "description": "The definition of the retention filter.",
+ "description": "Role object returned by the API.",
"properties": {
"attributes": {
- "description": "The attributes of the retention filter.",
+ "description": "Attributes of the role.",
"properties": {
"created_at": {
- "description": "The creation timestamp of the retention filter.",
- "format": "int64",
- "type": "integer"
- },
- "created_by": {
- "description": "The creator of the retention filter.",
+ "description": "Creation time of the role.",
+ "format": "date-time",
+ "readOnly": true,
"type": "string"
},
- "editable": {
- "description": "Shows whether the filter can be edited.",
- "example": true,
- "type": "boolean"
- },
- "enabled": {
- "description": "The status of the retention filter (Enabled/Disabled).",
- "example": true,
- "type": "boolean"
- },
- "execution_order": {
- "description": "The execution order of the retention filter.",
- "format": "int64",
- "type": "integer"
- },
- "filter": {
- "description": "The spans filter used to index spans.",
- "properties": {
- "query": {
- "description": "The search query - following the [span search syntax](https://docs.datadoghq.com/tracing/trace_explorer/query_syntax/).",
- "example": "@http.status_code:200 service:my-service",
- "type": "string"
- }
- },
- "type": "object"
- },
- "filter_type": {
- "default": "spans-sampling-processor",
- "description": "The type of retention filter.",
- "enum": [
- "spans-sampling-processor",
- "spans-errors-sampling-processor",
- "spans-appsec-sampling-processor"
- ],
- "example": "spans-sampling-processor",
- "type": "string",
- "x-enum-varnames": [
- "SPANS_SAMPLING_PROCESSOR",
- "SPANS_ERRORS_SAMPLING_PROCESSOR",
- "SPANS_APPSEC_SAMPLING_PROCESSOR"
- ]
- },
"modified_at": {
- "description": "The modification timestamp of the retention filter.",
- "format": "int64",
- "type": "integer"
- },
- "modified_by": {
- "description": "The modifier of the retention filter.",
+ "description": "Time of last role modification.",
+ "format": "date-time",
+ "readOnly": true,
"type": "string"
},
"name": {
- "description": "The name of the retention filter.",
- "example": "my retention filter",
+ "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
"type": "string"
},
- "rate": {
- "description": "Sample rate to apply to spans going through this retention filter,\na value of 1.0 keeps all spans matching the query.",
- "example": 1,
- "format": "double",
- "type": "number"
+ "user_count": {
+ "description": "Number of users with that role.",
+ "format": "int64",
+ "readOnly": true,
+ "type": "integer"
}
},
"type": "object"
},
"id": {
- "description": "The ID of the retention filter.",
- "example": "7RBOb7dLSYWI01yc3pIH8w",
+ "description": "The unique identifier of the role.",
"type": "string"
},
+ "relationships": {
+ "description": "Relationships of the role object returned by the API.",
+ "properties": {
+ "permissions": {
+ "description": "Relationship to multiple permissions objects.",
+ "properties": {
+ "data": {
+ "description": "Relationships to permission objects.",
+ "items": {
+ "description": "Relationship to permission object.",
+ "properties": {
+ "id": {
+ "description": "ID of the permission.",
+ "type": "string"
+ },
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object"
+ },
"type": {
- "default": "apm_retention_filter",
- "description": "The type of the resource.",
+ "default": "roles",
+ "description": "Roles type.",
"enum": [
- "apm_retention_filter"
+ "roles"
],
- "example": "apm_retention_filter",
+ "example": "roles",
"type": "string",
"x-enum-varnames": [
- "apm_retention_filter"
+ "ROLES"
]
}
},
"required": [
- "id",
- "type",
- "attributes"
+ "type"
],
- "type": "object"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
"type": "object"
},
- "RetentionFilterType": {
- "default": "spans-sampling-processor",
- "description": "The type of retention filter. The value should always be spans-sampling-processor.",
- "enum": [
- "spans-sampling-processor"
- ],
- "example": "spans-sampling-processor",
- "type": "string",
- "x-enum-varnames": [
- "SPANS_SAMPLING_PROCESSOR"
- ]
- },
- "RetentionFilterUpdateAttributes": {
- "description": "The object describing the configuration of the retention filter to create/update.",
+ "RoleResponseRelationships": {
+ "description": "Relationships of the role object returned by the API.",
"properties": {
- "enabled": {
- "description": "Enable/Disable the retention filter.",
- "example": true,
- "type": "boolean"
- },
- "filter": {
- "description": "The spans filter. Spans matching this filter will be indexed and stored.",
+ "permissions": {
+ "description": "Relationship to multiple permissions objects.",
"properties": {
- "query": {
- "description": "The search query - following the [span search syntax](https://docs.datadoghq.com/tracing/trace_explorer/query_syntax/).",
- "example": "@http.status_code:200 service:my-service",
- "type": "string"
+ "data": {
+ "description": "Relationships to permission objects.",
+ "items": {
+ "description": "Relationship to permission object.",
+ "properties": {
+ "id": {
+ "description": "ID of the permission.",
+ "type": "string"
+ },
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
}
},
- "required": [
- "query"
- ],
- "type": "object"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object"
+ },
+ "RoleUpdateAttributes": {
+ "description": "Attributes of the role.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the role.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
},
- "filter_type": {
- "default": "spans-sampling-processor",
- "description": "The type of retention filter.",
- "enum": [
- "spans-sampling-processor",
- "spans-errors-sampling-processor",
- "spans-appsec-sampling-processor"
- ],
- "example": "spans-sampling-processor",
- "type": "string",
- "x-enum-varnames": [
- "SPANS_SAMPLING_PROCESSOR",
- "SPANS_ERRORS_SAMPLING_PROCESSOR",
- "SPANS_APPSEC_SAMPLING_PROCESSOR"
- ]
+ "modified_at": {
+ "description": "Time of last role modification.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
},
"name": {
- "description": "The name of the retention filter.",
- "example": "my retention filter",
+ "description": "Name of the role.",
"type": "string"
},
- "rate": {
- "description": "Sample rate to apply to spans going through this retention filter,\na value of 1.0 keeps all spans matching the query.",
- "example": 1,
- "format": "double",
- "type": "number"
+ "user_count": {
+ "description": "The user count.",
+ "format": "int32",
+ "maximum": 2147483647,
+ "type": "integer"
}
},
- "required": [
- "name",
- "filter",
- "enabled",
- "filter_type",
- "rate"
- ],
"type": "object"
},
- "RetentionFilterUpdateData": {
- "description": "The body of the retention filter to be updated.",
+ "RoleUpdateData": {
+ "description": "Data related to the update of a role.",
"properties": {
"attributes": {
- "description": "The object describing the configuration of the retention filter to create/update.",
+ "description": "Attributes of the role.",
"properties": {
- "enabled": {
- "description": "Enable/Disable the retention filter.",
- "example": true,
- "type": "boolean"
- },
- "filter": {
- "description": "The spans filter. Spans matching this filter will be indexed and stored.",
- "properties": {
- "query": {
- "description": "The search query - following the [span search syntax](https://docs.datadoghq.com/tracing/trace_explorer/query_syntax/).",
- "example": "@http.status_code:200 service:my-service",
- "type": "string"
- }
- },
- "required": [
- "query"
- ],
- "type": "object"
+ "created_at": {
+ "description": "Creation time of the role.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
},
- "filter_type": {
- "default": "spans-sampling-processor",
- "description": "The type of retention filter.",
- "enum": [
- "spans-sampling-processor",
- "spans-errors-sampling-processor",
- "spans-appsec-sampling-processor"
- ],
- "example": "spans-sampling-processor",
- "type": "string",
- "x-enum-varnames": [
- "SPANS_SAMPLING_PROCESSOR",
- "SPANS_ERRORS_SAMPLING_PROCESSOR",
- "SPANS_APPSEC_SAMPLING_PROCESSOR"
- ]
+ "modified_at": {
+ "description": "Time of last role modification.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
},
"name": {
- "description": "The name of the retention filter.",
- "example": "my retention filter",
+ "description": "Name of the role.",
"type": "string"
},
- "rate": {
- "description": "Sample rate to apply to spans going through this retention filter,\na value of 1.0 keeps all spans matching the query.",
- "example": 1,
- "format": "double",
- "type": "number"
+ "user_count": {
+ "description": "The user count.",
+ "format": "int32",
+ "maximum": 2147483647,
+ "type": "integer"
}
},
- "required": [
- "name",
- "filter",
- "enabled",
- "filter_type",
- "rate"
- ],
"type": "object"
},
"id": {
- "description": "The ID of the retention filter.",
- "example": "retention-filter-id",
+ "description": "The unique identifier of the role.",
+ "example": "00000000-0000-1111-0000-000000000000",
"type": "string"
},
+ "relationships": {
+ "description": "Relationships of the role object.",
+ "properties": {
+ "permissions": {
+ "description": "Relationship to multiple permissions objects.",
+ "properties": {
+ "data": {
+ "description": "Relationships to permission objects.",
+ "items": {
+ "description": "Relationship to permission object.",
+ "properties": {
+ "id": {
+ "description": "ID of the permission.",
+ "type": "string"
+ },
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object"
+ },
"type": {
- "default": "apm_retention_filter",
- "description": "The type of the resource.",
+ "default": "roles",
+ "description": "Roles type.",
"enum": [
- "apm_retention_filter"
+ "roles"
],
- "example": "apm_retention_filter",
+ "example": "roles",
"type": "string",
"x-enum-varnames": [
- "apm_retention_filter"
+ "ROLES"
]
}
},
"required": [
- "id",
"attributes",
- "type"
+ "type",
+ "id"
],
- "type": "object"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
},
- "RetentionFilterUpdateRequest": {
- "description": "The body of the retention filter to be updated.",
+ "RoleUpdateRequest": {
+ "description": "Update a role.",
"properties": {
"data": {
- "description": "The body of the retention filter to be updated.",
+ "description": "Data related to the update of a role.",
"properties": {
"attributes": {
- "description": "The object describing the configuration of the retention filter to create/update.",
+ "description": "Attributes of the role.",
"properties": {
- "enabled": {
- "description": "Enable/Disable the retention filter.",
- "example": true,
- "type": "boolean"
- },
- "filter": {
- "description": "The spans filter. Spans matching this filter will be indexed and stored.",
- "properties": {
- "query": {
- "description": "The search query - following the [span search syntax](https://docs.datadoghq.com/tracing/trace_explorer/query_syntax/).",
- "example": "@http.status_code:200 service:my-service",
- "type": "string"
- }
- },
- "required": [
- "query"
- ],
- "type": "object"
+ "created_at": {
+ "description": "Creation time of the role.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
},
- "filter_type": {
- "default": "spans-sampling-processor",
- "description": "The type of retention filter.",
- "enum": [
- "spans-sampling-processor",
- "spans-errors-sampling-processor",
- "spans-appsec-sampling-processor"
- ],
- "example": "spans-sampling-processor",
- "type": "string",
- "x-enum-varnames": [
- "SPANS_SAMPLING_PROCESSOR",
- "SPANS_ERRORS_SAMPLING_PROCESSOR",
- "SPANS_APPSEC_SAMPLING_PROCESSOR"
- ]
+ "modified_at": {
+ "description": "Time of last role modification.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
},
"name": {
- "description": "The name of the retention filter.",
- "example": "my retention filter",
+ "description": "Name of the role.",
"type": "string"
},
- "rate": {
- "description": "Sample rate to apply to spans going through this retention filter,\na value of 1.0 keeps all spans matching the query.",
- "example": 1,
- "format": "double",
- "type": "number"
+ "user_count": {
+ "description": "The user count.",
+ "format": "int32",
+ "maximum": 2147483647,
+ "type": "integer"
}
},
- "required": [
- "name",
- "filter",
- "enabled",
- "filter_type",
- "rate"
- ],
"type": "object"
},
"id": {
- "description": "The ID of the retention filter.",
- "example": "retention-filter-id",
+ "description": "The unique identifier of the role.",
+ "example": "00000000-0000-1111-0000-000000000000",
"type": "string"
},
+ "relationships": {
+ "description": "Relationships of the role object.",
+ "properties": {
+ "permissions": {
+ "description": "Relationship to multiple permissions objects.",
+ "properties": {
+ "data": {
+ "description": "Relationships to permission objects.",
+ "items": {
+ "description": "Relationship to permission object.",
+ "properties": {
+ "id": {
+ "description": "ID of the permission.",
+ "type": "string"
+ },
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object"
+ },
"type": {
- "default": "apm_retention_filter",
- "description": "The type of the resource.",
+ "default": "roles",
+ "description": "Roles type.",
"enum": [
- "apm_retention_filter"
+ "roles"
],
- "example": "apm_retention_filter",
+ "example": "roles",
"type": "string",
"x-enum-varnames": [
- "apm_retention_filter"
+ "ROLES"
]
}
},
"required": [
- "id",
"attributes",
- "type"
+ "type",
+ "id"
],
- "type": "object"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
"required": [
@@ -143800,152 +152571,110 @@
],
"type": "object"
},
- "RetentionFilterWithoutAttributes": {
- "description": "The retention filter object .",
- "properties": {
- "id": {
- "description": "The ID of the retention filter.",
- "example": "7RBOb7dLSYWI01yc3pIH8w",
- "type": "string"
- },
- "type": {
- "default": "apm_retention_filter",
- "description": "The type of the resource.",
- "enum": [
- "apm_retention_filter"
- ],
- "example": "apm_retention_filter",
- "type": "string",
- "x-enum-varnames": [
- "apm_retention_filter"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- },
- "RetentionFiltersResponse": {
- "description": "An ordered list of retention filters.",
+ "RoleUpdateResponse": {
+ "description": "Response containing information about an updated role.",
"properties": {
"data": {
- "description": "A list of retention filters objects.",
- "items": {
- "description": "The definition of the retention filter.",
- "properties": {
- "attributes": {
- "description": "The attributes of the retention filter.",
- "properties": {
- "created_at": {
- "description": "The creation timestamp of the retention filter.",
- "format": "int64",
- "type": "integer"
- },
- "created_by": {
- "description": "The creator of the retention filter.",
- "type": "string"
- },
- "editable": {
- "description": "Shows whether the filter can be edited.",
- "example": true,
- "type": "boolean"
- },
- "enabled": {
- "description": "The status of the retention filter (Enabled/Disabled).",
- "example": true,
- "type": "boolean"
- },
- "execution_order": {
- "description": "The execution order of the retention filter.",
- "format": "int64",
- "type": "integer"
- },
- "filter": {
- "description": "The spans filter used to index spans.",
- "properties": {
- "query": {
- "description": "The search query - following the [span search syntax](https://docs.datadoghq.com/tracing/trace_explorer/query_syntax/).",
- "example": "@http.status_code:200 service:my-service",
- "type": "string"
- }
- },
- "type": "object"
- },
- "filter_type": {
- "default": "spans-sampling-processor",
- "description": "The type of retention filter.",
- "enum": [
- "spans-sampling-processor",
- "spans-errors-sampling-processor",
- "spans-appsec-sampling-processor"
- ],
- "example": "spans-sampling-processor",
- "type": "string",
- "x-enum-varnames": [
- "SPANS_SAMPLING_PROCESSOR",
- "SPANS_ERRORS_SAMPLING_PROCESSOR",
- "SPANS_APPSEC_SAMPLING_PROCESSOR"
- ]
- },
- "modified_at": {
- "description": "The modification timestamp of the retention filter.",
- "format": "int64",
- "type": "integer"
- },
- "modified_by": {
- "description": "The modifier of the retention filter.",
- "type": "string"
- },
- "name": {
- "description": "The name of the retention filter.",
- "example": "my retention filter",
- "type": "string"
- },
- "rate": {
- "description": "Sample rate to apply to spans going through this retention filter,\na value of 1.0 keeps all spans matching the query.",
- "example": 1,
- "format": "double",
- "type": "number"
- }
+ "description": "Role object returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of the role.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the role.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
},
- "type": "object"
+ "modified_at": {
+ "description": "Time of last role modification.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the role.",
+ "type": "string"
+ },
+ "user_count": {
+ "description": "The user count.",
+ "format": "int32",
+ "maximum": 2147483647,
+ "type": "integer"
+ }
},
- "id": {
- "description": "The ID of the retention filter.",
- "example": "7RBOb7dLSYWI01yc3pIH8w",
- "type": "string"
+ "type": "object"
+ },
+ "id": {
+ "description": "The unique identifier of the role.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships of the role object returned by the API.",
+ "properties": {
+ "permissions": {
+ "description": "Relationship to multiple permissions objects.",
+ "properties": {
+ "data": {
+ "description": "Relationships to permission objects.",
+ "items": {
+ "description": "Relationship to permission object.",
+ "properties": {
+ "id": {
+ "description": "ID of the permission.",
+ "type": "string"
+ },
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
},
- "type": {
- "default": "apm_retention_filter",
- "description": "The type of the resource.",
- "enum": [
- "apm_retention_filter"
- ],
- "example": "apm_retention_filter",
- "type": "string",
- "x-enum-varnames": [
- "apm_retention_filter"
- ]
- }
+ "type": "object"
},
- "required": [
- "id",
- "type",
- "attributes"
- ],
- "type": "object"
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
},
- "type": "array"
+ "required": [
+ "type"
+ ],
+ "type": "object"
}
},
- "required": [
- "data"
- ],
"type": "object"
},
- "Role": {
+ "RoleUpdateResponseData": {
"description": "Role object returned by the API.",
"properties": {
"attributes": {
@@ -143964,13 +152693,13 @@
"type": "string"
},
"name": {
- "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
+ "description": "Name of the role.",
"type": "string"
},
"user_count": {
- "description": "Number of users with that role.",
- "format": "int64",
- "readOnly": true,
+ "description": "The user count.",
+ "format": "int32",
+ "maximum": 2147483647,
"type": "integer"
}
},
@@ -144040,1572 +152769,3134 @@
"required": [
"type"
],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "RoleAttributes": {
- "description": "Attributes of the role.",
- "properties": {
- "created_at": {
- "description": "Creation time of the role.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified_at": {
- "description": "Time of last role modification.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "name": {
- "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
- "type": "string"
- },
- "user_count": {
- "description": "Number of users with that role.",
- "format": "int64",
- "readOnly": true,
- "type": "integer"
- }
- },
"type": "object"
},
- "RoleClone": {
- "description": "Data for the clone role request.",
+ "RolesResponse": {
+ "description": "Response containing information about multiple roles.",
"properties": {
- "attributes": {
- "description": "Attributes required to create a new role by cloning an existing one.",
- "properties": {
- "name": {
- "description": "Name of the new role that is cloned.",
- "example": "cloned-role",
- "type": "string"
+ "data": {
+ "description": "Array of returned roles.",
+ "items": {
+ "description": "Role object returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of the role.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the role.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "modified_at": {
+ "description": "Time of last role modification.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
+ "type": "string"
+ },
+ "user_count": {
+ "description": "Number of users with that role.",
+ "format": "int64",
+ "readOnly": true,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The unique identifier of the role.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships of the role object returned by the API.",
+ "properties": {
+ "permissions": {
+ "description": "Relationship to multiple permissions objects.",
+ "properties": {
+ "data": {
+ "description": "Relationships to permission objects.",
+ "items": {
+ "description": "Relationship to permission object.",
+ "properties": {
+ "id": {
+ "description": "ID of the permission.",
+ "type": "string"
+ },
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
}
},
- "required": [
- "name"
- ],
- "type": "object"
+ "type": "array"
},
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
+ "meta": {
+ "description": "Object describing meta attributes of response.",
+ "properties": {
+ "page": {
+ "description": "Pagination object.",
+ "properties": {
+ "total_count": {
+ "description": "Total count.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "total_filtered_count": {
+ "description": "Total count of elements matched by the filter.",
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "properties": false
+ }
}
},
- "required": [
- "type",
- "attributes"
+ "type": "object"
+ },
+ "RolesSort": {
+ "default": "name",
+ "description": "Sorting options for roles.",
+ "enum": [
+ "name",
+ "-name",
+ "modified_at",
+ "-modified_at",
+ "user_count",
+ "-user_count"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "NAME_ASCENDING",
+ "NAME_DESCENDING",
+ "MODIFIED_AT_ASCENDING",
+ "MODIFIED_AT_DESCENDING",
+ "USER_COUNT_ASCENDING",
+ "USER_COUNT_DESCENDING"
+ ]
+ },
+ "RolesType": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
],
- "type": "object"
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
},
- "RoleCloneAttributes": {
- "description": "Attributes required to create a new role by cloning an existing one.",
+ "RuleAttributes": {
+ "description": "Details of a rule.",
"properties": {
+ "category": {
+ "deprecated": true,
+ "description": "The scorecard name to which this rule must belong.",
+ "type": "string"
+ },
+ "created_at": {
+ "description": "Creation time of the rule outcome.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "custom": {
+ "description": "Defines if the rule is a custom rule.",
+ "type": "boolean"
+ },
+ "description": {
+ "description": "Explanation of the rule.",
+ "type": "string"
+ },
+ "enabled": {
+ "description": "If enabled, the rule is calculated as part of the score.",
+ "example": true,
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time of the last rule outcome modification.",
+ "format": "date-time",
+ "type": "string"
+ },
"name": {
- "description": "Name of the new role that is cloned.",
- "example": "cloned-role",
+ "description": "Name of the rule.",
+ "example": "Team Defined",
+ "type": "string"
+ },
+ "owner": {
+ "description": "Owner of the rule.",
+ "type": "string"
+ },
+ "scorecard_name": {
+ "description": "The scorecard name to which this rule must belong.",
+ "example": "Deployments automated via Deployment Trains",
"type": "string"
}
},
- "required": [
- "name"
- ],
"type": "object"
},
- "RoleCloneRequest": {
- "description": "Request to create a role by cloning an existing role.",
+ "RuleId": {
+ "description": "The unique ID for a scorecard rule.",
+ "example": "q8MQxk8TCqrHnWkx",
+ "type": "string"
+ },
+ "RuleName": {
+ "description": "Name of the notification rule.",
+ "example": "Rule 1",
+ "type": "string"
+ },
+ "RuleOutcomeRelationships": {
+ "description": "The JSON:API relationship to a scorecard rule.",
"properties": {
- "data": {
- "description": "Data for the clone role request.",
+ "rule": {
+ "description": "The JSON:API relationship to a scorecard outcome.",
"properties": {
- "attributes": {
- "description": "Attributes required to create a new role by cloning an existing one.",
+ "data": {
+ "description": "The JSON:API relationship to an outcome, which returns the related rule id.",
"properties": {
- "name": {
- "description": "Name of the new role that is cloned.",
- "example": "cloned-role",
+ "id": {
+ "description": "The unique ID for a scorecard rule.",
+ "example": "q8MQxk8TCqrHnWkx",
"type": "string"
+ },
+ "type": {
+ "default": "rule",
+ "description": "The JSON:API type for scorecard rules.",
+ "enum": [
+ "rule"
+ ],
+ "example": "rule",
+ "type": "string",
+ "x-enum-varnames": [
+ "RULE"
+ ]
}
},
- "required": [
- "name"
- ],
"type": "object"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
}
},
- "required": [
- "type",
- "attributes"
- ],
"type": "object"
}
},
- "required": [
- "data"
- ],
"type": "object"
},
- "RoleCreateAttributes": {
- "description": "Attributes of the created role.",
+ "RuleSeverity": {
+ "description": "Severity of a security rule.",
+ "enum": [
+ "critical",
+ "high",
+ "medium",
+ "low",
+ "unknown",
+ "info"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "CRITICAL",
+ "HIGH",
+ "MEDIUM",
+ "LOW",
+ "UNKNOWN",
+ "INFO"
+ ]
+ },
+ "RuleType": {
+ "default": "rule",
+ "description": "The JSON:API type for scorecard rules.",
+ "enum": [
+ "rule"
+ ],
+ "example": "rule",
+ "type": "string",
+ "x-enum-varnames": [
+ "RULE"
+ ]
+ },
+ "RuleTypes": {
+ "description": "Security rule types used as filters in security rules.",
+ "example": [
+ "misconfiguration",
+ "attack_path"
+ ],
+ "items": {
+ "description": "Security rule type which can be used in security rules.\nSignal-based notification rules can filter signals based on rule types application_security, log_detection,\nworkload_security, signal_correlation, cloud_configuration and infrastructure_configuration.\nVulnerability-based notification rules can filter vulnerabilities based on rule types application_code_vulnerability,\napplication_library_vulnerability, attack_path, container_image_vulnerability, identity_risk, misconfiguration, and api_security.",
+ "enum": [
+ "application_security",
+ "log_detection",
+ "workload_security",
+ "signal_correlation",
+ "cloud_configuration",
+ "infrastructure_configuration",
+ "application_code_vulnerability",
+ "application_library_vulnerability",
+ "attack_path",
+ "container_image_vulnerability",
+ "identity_risk",
+ "misconfiguration",
+ "api_security"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "APPLICATION_SECURITY",
+ "LOG_DETECTION",
+ "WORKLOAD_SECURITY",
+ "SIGNAL_CORRELATION",
+ "CLOUD_CONFIGURATION",
+ "INFRASTRUCTURE_CONFIGURATION",
+ "APPLICATION_CODE_VULNERABILITY",
+ "APPLICATION_LIBRARY_VULNERABILITY",
+ "ATTACK_PATH",
+ "CONTAINER_IMAGE_VULNERABILITY",
+ "IDENTITY_RISK",
+ "MISCONFIGURATION",
+ "API_SECURITY"
+ ]
+ },
+ "type": "array"
+ },
+ "RuleTypesItems": {
+ "description": "Security rule type which can be used in security rules.\nSignal-based notification rules can filter signals based on rule types application_security, log_detection,\nworkload_security, signal_correlation, cloud_configuration and infrastructure_configuration.\nVulnerability-based notification rules can filter vulnerabilities based on rule types application_code_vulnerability,\napplication_library_vulnerability, attack_path, container_image_vulnerability, identity_risk, misconfiguration, and api_security.",
+ "enum": [
+ "application_security",
+ "log_detection",
+ "workload_security",
+ "signal_correlation",
+ "cloud_configuration",
+ "infrastructure_configuration",
+ "application_code_vulnerability",
+ "application_library_vulnerability",
+ "attack_path",
+ "container_image_vulnerability",
+ "identity_risk",
+ "misconfiguration",
+ "api_security"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "APPLICATION_SECURITY",
+ "LOG_DETECTION",
+ "WORKLOAD_SECURITY",
+ "SIGNAL_CORRELATION",
+ "CLOUD_CONFIGURATION",
+ "INFRASTRUCTURE_CONFIGURATION",
+ "APPLICATION_CODE_VULNERABILITY",
+ "APPLICATION_LIBRARY_VULNERABILITY",
+ "ATTACK_PATH",
+ "CONTAINER_IMAGE_VULNERABILITY",
+ "IDENTITY_RISK",
+ "MISCONFIGURATION",
+ "API_SECURITY"
+ ]
+ },
+ "RuleUser": {
+ "description": "User creating or modifying a rule.",
"properties": {
- "created_at": {
- "description": "Creation time of the role.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified_at": {
- "description": "Time of last role modification.",
- "format": "date-time",
- "readOnly": true,
+ "handle": {
+ "description": "The user handle.",
+ "example": "john.doe@domain.com",
"type": "string"
},
"name": {
- "description": "Name of the role.",
- "example": "developers",
+ "description": "The user name.",
+ "example": "John Doe",
"type": "string"
}
},
- "required": [
- "name"
- ],
"type": "object"
},
- "RoleCreateData": {
- "description": "Data related to the creation of a role.",
+ "RuleVersionHistory": {
+ "description": "Response object containing the version history of a rule.",
"properties": {
- "attributes": {
- "description": "Attributes of the created role.",
- "properties": {
- "created_at": {
- "description": "Creation time of the role.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified_at": {
- "description": "Time of last role modification.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "name": {
- "description": "Name of the role.",
- "example": "developers",
- "type": "string"
- }
- },
- "required": [
- "name"
- ],
- "type": "object"
+ "count": {
+ "description": "The number of rule versions.",
+ "format": "int32",
+ "maximum": 2147483647,
+ "type": "integer"
},
- "relationships": {
- "description": "Relationships of the role object.",
- "properties": {
- "permissions": {
- "description": "Relationship to multiple permissions objects.",
- "properties": {
- "data": {
- "description": "Relationships to permission objects.",
- "items": {
- "description": "Relationship to permission object.",
- "properties": {
- "id": {
- "description": "ID of the permission.",
- "type": "string"
- },
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
- "enum": [
- "permissions"
- ],
- "example": "permissions",
- "type": "string",
- "x-enum-varnames": [
- "PERMISSIONS"
- ]
- }
+ "data": {
+ "additionalProperties": {
+ "description": "A rule version with a list of updates.",
+ "properties": {
+ "changes": {
+ "description": "A list of changes.",
+ "items": {
+ "description": "A change in a rule version.",
+ "properties": {
+ "change": {
+ "description": "The new value of the field.",
+ "example": "cloud_provider:aws",
+ "type": "string"
},
- "type": "object",
- "x-merge-override": {
- "required": false
+ "field": {
+ "description": "The field that was changed.",
+ "example": "Tags",
+ "type": "string"
+ },
+ "type": {
+ "description": "The type of change.",
+ "enum": [
+ "create",
+ "update",
+ "delete"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "CREATE",
+ "UPDATE",
+ "DELETE"
+ ]
}
},
- "type": "array"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "required": [
- "attributes"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "RoleCreateRequest": {
- "description": "Create a role.",
- "properties": {
- "data": {
- "description": "Data related to the creation of a role.",
- "properties": {
- "attributes": {
- "description": "Attributes of the created role.",
- "properties": {
- "created_at": {
- "description": "Creation time of the role.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified_at": {
- "description": "Time of last role modification.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
+ "type": "object"
},
- "name": {
- "description": "Name of the role.",
- "example": "developers",
- "type": "string"
- }
+ "type": "array"
},
- "required": [
- "name"
- ],
- "type": "object"
- },
- "relationships": {
- "description": "Relationships of the role object.",
- "properties": {
- "permissions": {
- "description": "Relationship to multiple permissions objects.",
- "properties": {
- "data": {
- "description": "Relationships to permission objects.",
- "items": {
- "description": "Relationship to permission object.",
+ "rule": {
+ "description": "Create a new rule.",
+ "oneOf": [
+ {
+ "description": "Rule.",
+ "properties": {
+ "cases": {
+ "description": "Cases for generating signals.",
+ "items": {
+ "description": "Case when signal is generated.",
+ "properties": {
+ "actions": {
+ "description": "Action to perform for each rule case.",
+ "items": {
+ "description": "Action to perform when a signal is triggered. Only available for Application Security rule type.",
+ "properties": {
+ "options": {
+ "description": "Options for the rule action",
+ "properties": {
+ "duration": {
+ "description": "Duration of the action in seconds. 0 indicates no expiration.",
+ "example": 0,
+ "format": "int64",
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "description": "The action type.",
+ "enum": [
+ "block_ip",
+ "block_user"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "BLOCK_IP",
+ "BLOCK_USER"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "condition": {
+ "description": "A rule case contains logical operations (`>`,`>=`, `&&`, `||`) to determine if a signal should be generated\nbased on the event counts in the previously defined queries.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the case.",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notification targets for each rule case.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "status": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "complianceSignalOptions": {
+ "description": "How to generate compliance signals. Useful for cloud_configuration rules only.",
"properties": {
- "id": {
- "description": "ID of the permission.",
- "type": "string"
+ "defaultActivationStatus": {
+ "description": "The default activation status.",
+ "nullable": true,
+ "type": "boolean"
},
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
+ "defaultGroupByFields": {
+ "description": "The default group by fields.",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true,
+ "type": "array"
+ },
+ "userActivationStatus": {
+ "description": "Whether signals will be sent.",
+ "nullable": true,
+ "type": "boolean"
+ },
+ "userGroupByFields": {
+ "description": "Fields to use to group findings by when sending signals.",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true,
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "createdAt": {
+ "description": "When the rule was created, timestamp in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "creationAuthorId": {
+ "description": "User ID of the user who created the rule.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "defaultTags": {
+ "description": "Default Tags for default rules (included in tags)",
+ "example": [
+ "security:attacks"
+ ],
+ "items": {
+ "description": "Default Tag.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "deprecationDate": {
+ "description": "When the rule will be deprecated, timestamp in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "filters": {
+ "description": "Additional queries to filter matched events before they are processed. This field is deprecated for log detection, signal correlation, and workload security rules.",
+ "items": {
+ "description": "The rule's suppression filter.",
+ "properties": {
+ "action": {
+ "description": "The type of filtering action.",
+ "enum": [
+ "require",
+ "suppress"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "REQUIRE",
+ "SUPPRESS"
+ ]
+ },
+ "query": {
+ "description": "Query for selecting logs to apply the filtering action.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "groupSignalsBy": {
+ "description": "Additional grouping to perform on top of the existing groups in the query section. Must be a subset of the existing groups.",
+ "example": [
+ "service"
+ ],
+ "items": {
+ "description": "Field to group by.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "hasExtendedTitle": {
+ "description": "Whether the notifications include the triggering group-by values in their title.",
+ "type": "boolean"
+ },
+ "id": {
+ "description": "The ID of the rule.",
+ "type": "string"
+ },
+ "isDefault": {
+ "description": "Whether the rule is included by default.",
+ "type": "boolean"
+ },
+ "isDeleted": {
+ "description": "Whether the rule has been deleted.",
+ "type": "boolean"
+ },
+ "isEnabled": {
+ "description": "Whether the rule is enabled.",
+ "type": "boolean"
+ },
+ "message": {
+ "description": "Message for generated signals.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the rule.",
+ "type": "string"
+ },
+ "options": {
+ "description": "Options.",
+ "properties": {
+ "complianceRuleOptions": {
+ "additionalProperties": {},
+ "description": "Options for cloud_configuration rules.\nFields `resourceType` and `regoRule` are mandatory when managing custom `cloud_configuration` rules.\n",
+ "properties": {
+ "complexRule": {
+ "description": "Whether the rule is a complex one.\nMust be set to true if `regoRule.resourceTypes` contains more than one item. Defaults to false.\n",
+ "type": "boolean"
+ },
+ "regoRule": {
+ "description": "Rule details.",
+ "properties": {
+ "policy": {
+ "description": "The policy written in `rego`, see: https://www.openpolicyagent.org/docs/latest/policy-language/",
+ "example": "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}\n",
+ "type": "string"
+ },
+ "resourceTypes": {
+ "description": "List of resource types that will be evaluated upon. Must have at least one element.",
+ "example": [
+ "gcp_iam_service_account",
+ "gcp_iam_policy"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "policy",
+ "resourceTypes"
+ ],
+ "type": "object"
+ },
+ "resourceType": {
+ "description": "Main resource type to be checked by the rule. It should be specified again in `regoRule.resourceTypes`.\n",
+ "example": "aws_acm",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "decreaseCriticalityBasedOnEnv": {
+ "description": "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`.",
+ "example": false,
+ "type": "boolean"
+ },
+ "detectionMethod": {
+ "description": "The detection method.",
"enum": [
- "permissions"
+ "threshold",
+ "new_value",
+ "anomaly_detection",
+ "impossible_travel",
+ "hardcoded",
+ "third_party",
+ "anomaly_threshold"
],
- "example": "permissions",
"type": "string",
"x-enum-varnames": [
- "PERMISSIONS"
+ "THRESHOLD",
+ "NEW_VALUE",
+ "ANOMALY_DETECTION",
+ "IMPOSSIBLE_TRAVEL",
+ "HARDCODED",
+ "THIRD_PARTY",
+ "ANOMALY_THRESHOLD"
+ ]
+ },
+ "evaluationWindow": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS"
+ ]
+ },
+ "hardcodedEvaluatorType": {
+ "description": "Hardcoded evaluator type.",
+ "enum": [
+ "log4shell"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "LOG4SHELL"
+ ]
+ },
+ "impossibleTravelOptions": {
+ "description": "Options on impossible travel detection method.",
+ "properties": {
+ "baselineUserLocations": {
+ "description": "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.",
+ "example": true,
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "keepAlive": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS"
+ ]
+ },
+ "maxSignalDuration": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600,
+ 43200,
+ 86400
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS",
+ "TWELVE_HOURS",
+ "ONE_DAY"
]
+ },
+ "newValueOptions": {
+ "description": "Options on new value detection method.",
+ "properties": {
+ "forgetAfter": {
+ "description": "The duration in days after which a learned value is forgotten.",
+ "enum": [
+ 1,
+ 2,
+ 7,
+ 14,
+ 21,
+ 28
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ONE_DAY",
+ "TWO_DAYS",
+ "ONE_WEEK",
+ "TWO_WEEKS",
+ "THREE_WEEKS",
+ "FOUR_WEEKS"
+ ]
+ },
+ "learningDuration": {
+ "default": 0,
+ "description": "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.",
+ "enum": [
+ 0,
+ 1,
+ 7
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_DAYS",
+ "ONE_DAY",
+ "SEVEN_DAYS"
+ ]
+ },
+ "learningMethod": {
+ "default": "duration",
+ "description": "The learning method used to determine when signals should be generated for values that weren't learned.",
+ "enum": [
+ "duration",
+ "threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "DURATION",
+ "THRESHOLD"
+ ]
+ },
+ "learningThreshold": {
+ "default": 0,
+ "description": "A number of occurrences after which signals will be generated for values that weren't learned.",
+ "enum": [
+ 0,
+ 1
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_OCCURRENCES",
+ "ONE_OCCURRENCE"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "thirdPartyRuleOptions": {
+ "description": "Options on third party detection method.",
+ "properties": {
+ "defaultNotifications": {
+ "description": "Notification targets for the logs that do not correspond to any of the cases.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "defaultStatus": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ },
+ "rootQueries": {
+ "description": "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.",
+ "items": {
+ "description": "A query to be combined with the third party case query.",
+ "properties": {
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "query": {
+ "description": "Query to run on logs.",
+ "example": "source:cloudtrail",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "signalTitleTemplate": {
+ "description": "A template for the signal title; if omitted, the title is generated based on the case name.",
+ "type": "string"
+ }
+ },
+ "type": "object"
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "object"
+ },
+ "queries": {
+ "description": "Queries for selecting logs which are part of the rule.",
+ "items": {
+ "description": "Query for matching rule.",
+ "properties": {
+ "aggregation": {
+ "description": "The aggregation type.",
+ "enum": [
+ "count",
+ "cardinality",
+ "sum",
+ "max",
+ "new_value",
+ "geo_data",
+ "event_count",
+ "none"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "COUNT",
+ "CARDINALITY",
+ "SUM",
+ "MAX",
+ "NEW_VALUE",
+ "GEO_DATA",
+ "EVENT_COUNT",
+ "NONE"
+ ]
+ },
+ "distinctFields": {
+ "description": "Field for which the cardinality is measured. Sent as an array.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "hasOptionalGroupByFields": {
+ "description": "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.",
+ "example": false,
+ "readOnly": true,
+ "type": "boolean"
+ },
+ "metric": {
+ "deprecated": true,
+ "description": "(Deprecated) The target field to aggregate over when using the sum or max\naggregations. `metrics` field should be used instead.",
+ "type": "string"
+ },
+ "metrics": {
+ "description": "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.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the query.",
+ "type": "string"
+ },
+ "query": {
+ "description": "Query to run on logs.",
+ "example": "a > 3",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "referenceTables": {
+ "description": "Reference tables for the rule.",
+ "items": {
+ "description": "Reference tables used in the queries.",
+ "properties": {
+ "checkPresence": {
+ "description": "Whether to include or exclude the matched values.",
+ "type": "boolean"
+ },
+ "columnName": {
+ "description": "The name of the column in the reference table.",
+ "type": "string"
+ },
+ "logFieldPath": {
+ "description": "The field in the log to match against the reference table.",
+ "type": "string"
+ },
+ "ruleQueryName": {
+ "description": "The name of the query to apply the reference table to.",
+ "type": "string"
+ },
+ "tableName": {
+ "description": "The name of the reference table.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
},
- "type": "array"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "required": [
- "attributes"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "RoleCreateResponse": {
- "description": "Response containing information about a created role.",
- "properties": {
- "data": {
- "description": "Role object returned by the API.",
- "properties": {
- "attributes": {
- "description": "Attributes of the created role.",
- "properties": {
- "created_at": {
- "description": "Creation time of the role.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified_at": {
- "description": "Time of last role modification.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "name": {
- "description": "Name of the role.",
- "example": "developers",
- "type": "string"
- }
- },
- "required": [
- "name"
- ],
- "type": "object"
- },
- "id": {
- "description": "The unique identifier of the role.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the role object returned by the API.",
- "properties": {
- "permissions": {
- "description": "Relationship to multiple permissions objects.",
- "properties": {
- "data": {
- "description": "Relationships to permission objects.",
- "items": {
- "description": "Relationship to permission object.",
- "properties": {
- "id": {
- "description": "ID of the permission.",
- "type": "string"
- },
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
- "enum": [
- "permissions"
- ],
- "example": "permissions",
- "type": "string",
- "x-enum-varnames": [
- "PERMISSIONS"
- ]
- }
+ "tags": {
+ "description": "Tags for generated signals.",
+ "items": {
+ "description": "Tag.",
+ "type": "string"
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "array"
},
- "type": "array"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object"
- }
- },
- "type": "object"
- },
- "RoleCreateResponseData": {
- "description": "Role object returned by the API.",
- "properties": {
- "attributes": {
- "description": "Attributes of the created role.",
- "properties": {
- "created_at": {
- "description": "Creation time of the role.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified_at": {
- "description": "Time of last role modification.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "name": {
- "description": "Name of the role.",
- "example": "developers",
- "type": "string"
- }
- },
- "required": [
- "name"
- ],
- "type": "object"
- },
- "id": {
- "description": "The unique identifier of the role.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the role object returned by the API.",
- "properties": {
- "permissions": {
- "description": "Relationship to multiple permissions objects.",
- "properties": {
- "data": {
- "description": "Relationships to permission objects.",
- "items": {
- "description": "Relationship to permission object.",
- "properties": {
- "id": {
- "description": "ID of the permission.",
- "type": "string"
+ "thirdPartyCases": {
+ "description": "Cases for generating signals from third-party rules. Only available for third-party rules.",
+ "example": [],
+ "items": {
+ "description": "Case when signal is generated by a third party rule.",
+ "properties": {
+ "name": {
+ "description": "Name of the case.",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notification targets for each rule case.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "query": {
+ "description": "A query to map a third party event to this case.",
+ "type": "string"
+ },
+ "status": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
},
"type": {
- "default": "permissions",
- "description": "Permissions resource type.",
+ "description": "The rule type.",
"enum": [
- "permissions"
+ "log_detection",
+ "infrastructure_configuration",
+ "workload_security",
+ "cloud_configuration",
+ "application_security"
],
- "example": "permissions",
"type": "string",
"x-enum-varnames": [
- "PERMISSIONS"
+ "LOG_DETECTION",
+ "INFRASTRUCTURE_CONFIGURATION",
+ "WORKLOAD_SECURITY",
+ "CLOUD_CONFIGURATION",
+ "APPLICATION_SECURITY"
]
+ },
+ "updateAuthorId": {
+ "description": "User ID of the user who updated the rule.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "updatedAt": {
+ "description": "The date the rule was last updated, in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "version": {
+ "description": "The version of the rule.",
+ "format": "int64",
+ "type": "integer"
}
- },
- "type": "object",
- "x-merge-override": {
- "required": false
}
},
- "type": "array"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object"
- },
- "RoleRelationships": {
- "description": "Relationships of the role object.",
- "properties": {
- "permissions": {
- "description": "Relationship to multiple permissions objects.",
- "properties": {
- "data": {
- "description": "Relationships to permission objects.",
- "items": {
- "description": "Relationship to permission object.",
- "properties": {
- "id": {
- "description": "ID of the permission.",
- "type": "string"
- },
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
- "enum": [
- "permissions"
- ],
- "example": "permissions",
- "type": "string",
- "x-enum-varnames": [
- "PERMISSIONS"
- ]
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
- },
- "RoleResponse": {
- "description": "Response containing information about a single role.",
- "properties": {
- "data": {
- "description": "Role object returned by the API.",
- "properties": {
- "attributes": {
- "description": "Attributes of the role.",
- "properties": {
- "created_at": {
- "description": "Creation time of the role.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified_at": {
- "description": "Time of last role modification.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "name": {
- "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
- "type": "string"
- },
- "user_count": {
- "description": "Number of users with that role.",
- "format": "int64",
- "readOnly": true,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "The unique identifier of the role.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the role object returned by the API.",
- "properties": {
- "permissions": {
- "description": "Relationship to multiple permissions objects.",
- "properties": {
- "data": {
- "description": "Relationships to permission objects.",
- "items": {
- "description": "Relationship to permission object.",
+ {
+ "description": "Rule.",
+ "properties": {
+ "cases": {
+ "description": "Cases for generating signals.",
+ "items": {
+ "description": "Case when signal is generated.",
+ "properties": {
+ "actions": {
+ "description": "Action to perform for each rule case.",
+ "items": {
+ "description": "Action to perform when a signal is triggered. Only available for Application Security rule type.",
+ "properties": {
+ "options": {
+ "description": "Options for the rule action",
+ "properties": {
+ "duration": {
+ "description": "Duration of the action in seconds. 0 indicates no expiration.",
+ "example": 0,
+ "format": "int64",
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "description": "The action type.",
+ "enum": [
+ "block_ip",
+ "block_user"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "BLOCK_IP",
+ "BLOCK_USER"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "condition": {
+ "description": "A rule case contains logical operations (`>`,`>=`, `&&`, `||`) to determine if a signal should be generated\nbased on the event counts in the previously defined queries.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the case.",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notification targets for each rule case.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "status": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "createdAt": {
+ "description": "When the rule was created, timestamp in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "creationAuthorId": {
+ "description": "User ID of the user who created the rule.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "deprecationDate": {
+ "description": "When the rule will be deprecated, timestamp in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "filters": {
+ "description": "Additional queries to filter matched events before they are processed. This field is deprecated for log detection, signal correlation, and workload security rules.",
+ "items": {
+ "description": "The rule's suppression filter.",
+ "properties": {
+ "action": {
+ "description": "The type of filtering action.",
+ "enum": [
+ "require",
+ "suppress"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "REQUIRE",
+ "SUPPRESS"
+ ]
+ },
+ "query": {
+ "description": "Query for selecting logs to apply the filtering action.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "hasExtendedTitle": {
+ "description": "Whether the notifications include the triggering group-by values in their title.",
+ "type": "boolean"
+ },
+ "id": {
+ "description": "The ID of the rule.",
+ "type": "string"
+ },
+ "isDefault": {
+ "description": "Whether the rule is included by default.",
+ "type": "boolean"
+ },
+ "isDeleted": {
+ "description": "Whether the rule has been deleted.",
+ "type": "boolean"
+ },
+ "isEnabled": {
+ "description": "Whether the rule is enabled.",
+ "type": "boolean"
+ },
+ "message": {
+ "description": "Message for generated signals.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the rule.",
+ "type": "string"
+ },
+ "options": {
+ "description": "Options.",
"properties": {
- "id": {
- "description": "ID of the permission.",
- "type": "string"
+ "complianceRuleOptions": {
+ "additionalProperties": {},
+ "description": "Options for cloud_configuration rules.\nFields `resourceType` and `regoRule` are mandatory when managing custom `cloud_configuration` rules.\n",
+ "properties": {
+ "complexRule": {
+ "description": "Whether the rule is a complex one.\nMust be set to true if `regoRule.resourceTypes` contains more than one item. Defaults to false.\n",
+ "type": "boolean"
+ },
+ "regoRule": {
+ "description": "Rule details.",
+ "properties": {
+ "policy": {
+ "description": "The policy written in `rego`, see: https://www.openpolicyagent.org/docs/latest/policy-language/",
+ "example": "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}\n",
+ "type": "string"
+ },
+ "resourceTypes": {
+ "description": "List of resource types that will be evaluated upon. Must have at least one element.",
+ "example": [
+ "gcp_iam_service_account",
+ "gcp_iam_policy"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "policy",
+ "resourceTypes"
+ ],
+ "type": "object"
+ },
+ "resourceType": {
+ "description": "Main resource type to be checked by the rule. It should be specified again in `regoRule.resourceTypes`.\n",
+ "example": "aws_acm",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
+ "decreaseCriticalityBasedOnEnv": {
+ "description": "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`.",
+ "example": false,
+ "type": "boolean"
+ },
+ "detectionMethod": {
+ "description": "The detection method.",
"enum": [
- "permissions"
+ "threshold",
+ "new_value",
+ "anomaly_detection",
+ "impossible_travel",
+ "hardcoded",
+ "third_party",
+ "anomaly_threshold"
],
- "example": "permissions",
"type": "string",
"x-enum-varnames": [
- "PERMISSIONS"
+ "THRESHOLD",
+ "NEW_VALUE",
+ "ANOMALY_DETECTION",
+ "IMPOSSIBLE_TRAVEL",
+ "HARDCODED",
+ "THIRD_PARTY",
+ "ANOMALY_THRESHOLD"
+ ]
+ },
+ "evaluationWindow": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS"
+ ]
+ },
+ "hardcodedEvaluatorType": {
+ "description": "Hardcoded evaluator type.",
+ "enum": [
+ "log4shell"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "LOG4SHELL"
+ ]
+ },
+ "impossibleTravelOptions": {
+ "description": "Options on impossible travel detection method.",
+ "properties": {
+ "baselineUserLocations": {
+ "description": "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.",
+ "example": true,
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "keepAlive": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS"
+ ]
+ },
+ "maxSignalDuration": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600,
+ 43200,
+ 86400
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS",
+ "TWELVE_HOURS",
+ "ONE_DAY"
]
+ },
+ "newValueOptions": {
+ "description": "Options on new value detection method.",
+ "properties": {
+ "forgetAfter": {
+ "description": "The duration in days after which a learned value is forgotten.",
+ "enum": [
+ 1,
+ 2,
+ 7,
+ 14,
+ 21,
+ 28
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ONE_DAY",
+ "TWO_DAYS",
+ "ONE_WEEK",
+ "TWO_WEEKS",
+ "THREE_WEEKS",
+ "FOUR_WEEKS"
+ ]
+ },
+ "learningDuration": {
+ "default": 0,
+ "description": "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.",
+ "enum": [
+ 0,
+ 1,
+ 7
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_DAYS",
+ "ONE_DAY",
+ "SEVEN_DAYS"
+ ]
+ },
+ "learningMethod": {
+ "default": "duration",
+ "description": "The learning method used to determine when signals should be generated for values that weren't learned.",
+ "enum": [
+ "duration",
+ "threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "DURATION",
+ "THRESHOLD"
+ ]
+ },
+ "learningThreshold": {
+ "default": 0,
+ "description": "A number of occurrences after which signals will be generated for values that weren't learned.",
+ "enum": [
+ 0,
+ 1
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_OCCURRENCES",
+ "ONE_OCCURRENCE"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "thirdPartyRuleOptions": {
+ "description": "Options on third party detection method.",
+ "properties": {
+ "defaultNotifications": {
+ "description": "Notification targets for the logs that do not correspond to any of the cases.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "defaultStatus": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ },
+ "rootQueries": {
+ "description": "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.",
+ "items": {
+ "description": "A query to be combined with the third party case query.",
+ "properties": {
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "query": {
+ "description": "Query to run on logs.",
+ "example": "source:cloudtrail",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "signalTitleTemplate": {
+ "description": "A template for the signal title; if omitted, the title is generated based on the case name.",
+ "type": "string"
+ }
+ },
+ "type": "object"
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "object"
},
- "type": "array"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
- },
- "RoleResponseRelationships": {
- "description": "Relationships of the role object returned by the API.",
- "properties": {
- "permissions": {
- "description": "Relationship to multiple permissions objects.",
- "properties": {
- "data": {
- "description": "Relationships to permission objects.",
- "items": {
- "description": "Relationship to permission object.",
- "properties": {
- "id": {
- "description": "ID of the permission.",
- "type": "string"
- },
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
- "enum": [
- "permissions"
- ],
- "example": "permissions",
- "type": "string",
- "x-enum-varnames": [
- "PERMISSIONS"
- ]
+ "queries": {
+ "description": "Queries for selecting logs which are part of the rule.",
+ "items": {
+ "description": "Query for matching rule on signals.",
+ "properties": {
+ "aggregation": {
+ "description": "The aggregation type.",
+ "enum": [
+ "count",
+ "cardinality",
+ "sum",
+ "max",
+ "new_value",
+ "geo_data",
+ "event_count",
+ "none"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "COUNT",
+ "CARDINALITY",
+ "SUM",
+ "MAX",
+ "NEW_VALUE",
+ "GEO_DATA",
+ "EVENT_COUNT",
+ "NONE"
+ ]
+ },
+ "correlatedByFields": {
+ "description": "Fields to correlate by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "correlatedQueryIndex": {
+ "description": "Index of the rule query used to retrieve the correlated field.",
+ "format": "int32",
+ "maximum": 9,
+ "type": "integer"
+ },
+ "defaultRuleId": {
+ "description": "Default Rule ID to match on signals.",
+ "example": "d3f-ru1-e1d",
+ "type": "string"
+ },
+ "distinctFields": {
+ "description": "Field for which the cardinality is measured. Sent as an array.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "metrics": {
+ "description": "Group of target fields to aggregate over.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the query.",
+ "type": "string"
+ },
+ "ruleId": {
+ "description": "Rule ID to match on signals.",
+ "example": "org-ru1-e1d",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "tags": {
+ "description": "Tags for generated signals.",
+ "items": {
+ "description": "Tag.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "type": {
+ "description": "The rule type.",
+ "enum": [
+ "signal_correlation"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "SIGNAL_CORRELATION"
+ ]
+ },
+ "updateAuthorId": {
+ "description": "User ID of the user who updated the rule.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "version": {
+ "description": "The version of the rule.",
+ "format": "int64",
+ "type": "integer"
+ }
+ }
}
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
+ ]
+ }
+ },
+ "type": "object"
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "description": "The `RuleVersionHistory` `data`.",
+ "type": "object"
}
},
"type": "object"
},
- "RoleUpdateAttributes": {
- "description": "Attributes of the role.",
+ "RuleVersionUpdate": {
+ "description": "A change in a rule version.",
"properties": {
- "created_at": {
- "description": "Creation time of the role.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified_at": {
- "description": "Time of last role modification.",
- "format": "date-time",
- "readOnly": true,
+ "change": {
+ "description": "The new value of the field.",
+ "example": "cloud_provider:aws",
"type": "string"
},
- "name": {
- "description": "Name of the role.",
+ "field": {
+ "description": "The field that was changed.",
+ "example": "Tags",
"type": "string"
},
- "user_count": {
- "description": "The user count.",
- "format": "int32",
- "maximum": 2147483647,
- "type": "integer"
+ "type": {
+ "description": "The type of change.",
+ "enum": [
+ "create",
+ "update",
+ "delete"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "CREATE",
+ "UPDATE",
+ "DELETE"
+ ]
}
},
"type": "object"
},
- "RoleUpdateData": {
- "description": "Data related to the update of a role.",
+ "RuleVersionUpdateType": {
+ "description": "The type of change.",
+ "enum": [
+ "create",
+ "update",
+ "delete"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "CREATE",
+ "UPDATE",
+ "DELETE"
+ ]
+ },
+ "RuleVersions": {
+ "description": "A rule version with a list of updates.",
"properties": {
- "attributes": {
- "description": "Attributes of the role.",
- "properties": {
- "created_at": {
- "description": "Creation time of the role.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified_at": {
- "description": "Time of last role modification.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "name": {
- "description": "Name of the role.",
- "type": "string"
+ "changes": {
+ "description": "A list of changes.",
+ "items": {
+ "description": "A change in a rule version.",
+ "properties": {
+ "change": {
+ "description": "The new value of the field.",
+ "example": "cloud_provider:aws",
+ "type": "string"
+ },
+ "field": {
+ "description": "The field that was changed.",
+ "example": "Tags",
+ "type": "string"
+ },
+ "type": {
+ "description": "The type of change.",
+ "enum": [
+ "create",
+ "update",
+ "delete"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "CREATE",
+ "UPDATE",
+ "DELETE"
+ ]
+ }
},
- "user_count": {
- "description": "The user count.",
- "format": "int32",
- "maximum": 2147483647,
- "type": "integer"
- }
+ "type": "object"
},
- "type": "object"
- },
- "id": {
- "description": "The unique identifier of the role.",
- "example": "00000000-0000-1111-0000-000000000000",
- "type": "string"
+ "type": "array"
},
- "relationships": {
- "description": "Relationships of the role object.",
- "properties": {
- "permissions": {
- "description": "Relationship to multiple permissions objects.",
+ "rule": {
+ "description": "Create a new rule.",
+ "oneOf": [
+ {
+ "description": "Rule.",
"properties": {
- "data": {
- "description": "Relationships to permission objects.",
+ "cases": {
+ "description": "Cases for generating signals.",
"items": {
- "description": "Relationship to permission object.",
+ "description": "Case when signal is generated.",
"properties": {
- "id": {
- "description": "ID of the permission.",
+ "actions": {
+ "description": "Action to perform for each rule case.",
+ "items": {
+ "description": "Action to perform when a signal is triggered. Only available for Application Security rule type.",
+ "properties": {
+ "options": {
+ "description": "Options for the rule action",
+ "properties": {
+ "duration": {
+ "description": "Duration of the action in seconds. 0 indicates no expiration.",
+ "example": 0,
+ "format": "int64",
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "description": "The action type.",
+ "enum": [
+ "block_ip",
+ "block_user"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "BLOCK_IP",
+ "BLOCK_USER"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "condition": {
+ "description": "A rule case contains logical operations (`>`,`>=`, `&&`, `||`) to determine if a signal should be generated\nbased on the event counts in the previously defined queries.",
"type": "string"
},
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
+ "name": {
+ "description": "Name of the case.",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notification targets for each rule case.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "status": {
+ "description": "Severity of the Security Signal.",
"enum": [
- "permissions"
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
],
- "example": "permissions",
+ "example": "critical",
"type": "string",
"x-enum-varnames": [
- "PERMISSIONS"
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
]
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "object"
},
"type": "array"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "required": [
- "attributes",
- "type",
- "id"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "RoleUpdateRequest": {
- "description": "Update a role.",
- "properties": {
- "data": {
- "description": "Data related to the update of a role.",
- "properties": {
- "attributes": {
- "description": "Attributes of the role.",
- "properties": {
- "created_at": {
- "description": "Creation time of the role.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified_at": {
- "description": "Time of last role modification.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "name": {
- "description": "Name of the role.",
- "type": "string"
},
- "user_count": {
- "description": "The user count.",
- "format": "int32",
- "maximum": 2147483647,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "The unique identifier of the role.",
- "example": "00000000-0000-1111-0000-000000000000",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the role object.",
- "properties": {
- "permissions": {
- "description": "Relationship to multiple permissions objects.",
+ "complianceSignalOptions": {
+ "description": "How to generate compliance signals. Useful for cloud_configuration rules only.",
"properties": {
- "data": {
- "description": "Relationships to permission objects.",
+ "defaultActivationStatus": {
+ "description": "The default activation status.",
+ "nullable": true,
+ "type": "boolean"
+ },
+ "defaultGroupByFields": {
+ "description": "The default group by fields.",
"items": {
- "description": "Relationship to permission object.",
- "properties": {
- "id": {
- "description": "ID of the permission.",
- "type": "string"
- },
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
- "enum": [
- "permissions"
- ],
- "example": "permissions",
- "type": "string",
- "x-enum-varnames": [
- "PERMISSIONS"
- ]
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "string"
+ },
+ "nullable": true,
+ "type": "array"
+ },
+ "userActivationStatus": {
+ "description": "Whether signals will be sent.",
+ "nullable": true,
+ "type": "boolean"
+ },
+ "userGroupByFields": {
+ "description": "Fields to use to group findings by when sending signals.",
+ "items": {
+ "type": "string"
},
+ "nullable": true,
"type": "array"
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "required": [
- "attributes",
- "type",
- "id"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "RoleUpdateResponse": {
- "description": "Response containing information about an updated role.",
- "properties": {
- "data": {
- "description": "Role object returned by the API.",
- "properties": {
- "attributes": {
- "description": "Attributes of the role.",
- "properties": {
- "created_at": {
- "description": "Creation time of the role.",
- "format": "date-time",
- "readOnly": true,
+ "type": "object"
+ },
+ "createdAt": {
+ "description": "When the rule was created, timestamp in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "creationAuthorId": {
+ "description": "User ID of the user who created the rule.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "defaultTags": {
+ "description": "Default Tags for default rules (included in tags)",
+ "example": [
+ "security:attacks"
+ ],
+ "items": {
+ "description": "Default Tag.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "deprecationDate": {
+ "description": "When the rule will be deprecated, timestamp in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "filters": {
+ "description": "Additional queries to filter matched events before they are processed. This field is deprecated for log detection, signal correlation, and workload security rules.",
+ "items": {
+ "description": "The rule's suppression filter.",
+ "properties": {
+ "action": {
+ "description": "The type of filtering action.",
+ "enum": [
+ "require",
+ "suppress"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "REQUIRE",
+ "SUPPRESS"
+ ]
+ },
+ "query": {
+ "description": "Query for selecting logs to apply the filtering action.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "groupSignalsBy": {
+ "description": "Additional grouping to perform on top of the existing groups in the query section. Must be a subset of the existing groups.",
+ "example": [
+ "service"
+ ],
+ "items": {
+ "description": "Field to group by.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "hasExtendedTitle": {
+ "description": "Whether the notifications include the triggering group-by values in their title.",
+ "type": "boolean"
+ },
+ "id": {
+ "description": "The ID of the rule.",
"type": "string"
},
- "modified_at": {
- "description": "Time of last role modification.",
- "format": "date-time",
- "readOnly": true,
+ "isDefault": {
+ "description": "Whether the rule is included by default.",
+ "type": "boolean"
+ },
+ "isDeleted": {
+ "description": "Whether the rule has been deleted.",
+ "type": "boolean"
+ },
+ "isEnabled": {
+ "description": "Whether the rule is enabled.",
+ "type": "boolean"
+ },
+ "message": {
+ "description": "Message for generated signals.",
"type": "string"
},
"name": {
- "description": "Name of the role.",
+ "description": "The name of the rule.",
"type": "string"
},
- "user_count": {
- "description": "The user count.",
- "format": "int32",
- "maximum": 2147483647,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "The unique identifier of the role.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the role object returned by the API.",
- "properties": {
- "permissions": {
- "description": "Relationship to multiple permissions objects.",
+ "options": {
+ "description": "Options.",
"properties": {
- "data": {
- "description": "Relationships to permission objects.",
- "items": {
- "description": "Relationship to permission object.",
- "properties": {
- "id": {
- "description": "ID of the permission.",
+ "complianceRuleOptions": {
+ "additionalProperties": {},
+ "description": "Options for cloud_configuration rules.\nFields `resourceType` and `regoRule` are mandatory when managing custom `cloud_configuration` rules.\n",
+ "properties": {
+ "complexRule": {
+ "description": "Whether the rule is a complex one.\nMust be set to true if `regoRule.resourceTypes` contains more than one item. Defaults to false.\n",
+ "type": "boolean"
+ },
+ "regoRule": {
+ "description": "Rule details.",
+ "properties": {
+ "policy": {
+ "description": "The policy written in `rego`, see: https://www.openpolicyagent.org/docs/latest/policy-language/",
+ "example": "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}\n",
+ "type": "string"
+ },
+ "resourceTypes": {
+ "description": "List of resource types that will be evaluated upon. Must have at least one element.",
+ "example": [
+ "gcp_iam_service_account",
+ "gcp_iam_policy"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "policy",
+ "resourceTypes"
+ ],
+ "type": "object"
+ },
+ "resourceType": {
+ "description": "Main resource type to be checked by the rule. It should be specified again in `regoRule.resourceTypes`.\n",
+ "example": "aws_acm",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "decreaseCriticalityBasedOnEnv": {
+ "description": "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`.",
+ "example": false,
+ "type": "boolean"
+ },
+ "detectionMethod": {
+ "description": "The detection method.",
+ "enum": [
+ "threshold",
+ "new_value",
+ "anomaly_detection",
+ "impossible_travel",
+ "hardcoded",
+ "third_party",
+ "anomaly_threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "THRESHOLD",
+ "NEW_VALUE",
+ "ANOMALY_DETECTION",
+ "IMPOSSIBLE_TRAVEL",
+ "HARDCODED",
+ "THIRD_PARTY",
+ "ANOMALY_THRESHOLD"
+ ]
+ },
+ "evaluationWindow": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS"
+ ]
+ },
+ "hardcodedEvaluatorType": {
+ "description": "Hardcoded evaluator type.",
+ "enum": [
+ "log4shell"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "LOG4SHELL"
+ ]
+ },
+ "impossibleTravelOptions": {
+ "description": "Options on impossible travel detection method.",
+ "properties": {
+ "baselineUserLocations": {
+ "description": "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.",
+ "example": true,
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "keepAlive": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS"
+ ]
+ },
+ "maxSignalDuration": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600,
+ 43200,
+ 86400
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS",
+ "TWELVE_HOURS",
+ "ONE_DAY"
+ ]
+ },
+ "newValueOptions": {
+ "description": "Options on new value detection method.",
+ "properties": {
+ "forgetAfter": {
+ "description": "The duration in days after which a learned value is forgotten.",
+ "enum": [
+ 1,
+ 2,
+ 7,
+ 14,
+ 21,
+ 28
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ONE_DAY",
+ "TWO_DAYS",
+ "ONE_WEEK",
+ "TWO_WEEKS",
+ "THREE_WEEKS",
+ "FOUR_WEEKS"
+ ]
+ },
+ "learningDuration": {
+ "default": 0,
+ "description": "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.",
+ "enum": [
+ 0,
+ 1,
+ 7
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_DAYS",
+ "ONE_DAY",
+ "SEVEN_DAYS"
+ ]
+ },
+ "learningMethod": {
+ "default": "duration",
+ "description": "The learning method used to determine when signals should be generated for values that weren't learned.",
+ "enum": [
+ "duration",
+ "threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "DURATION",
+ "THRESHOLD"
+ ]
+ },
+ "learningThreshold": {
+ "default": 0,
+ "description": "A number of occurrences after which signals will be generated for values that weren't learned.",
+ "enum": [
+ 0,
+ 1
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_OCCURRENCES",
+ "ONE_OCCURRENCE"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "thirdPartyRuleOptions": {
+ "description": "Options on third party detection method.",
+ "properties": {
+ "defaultNotifications": {
+ "description": "Notification targets for the logs that do not correspond to any of the cases.",
+ "items": {
+ "description": "Notification.",
"type": "string"
},
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
- "enum": [
- "permissions"
- ],
- "example": "permissions",
- "type": "string",
- "x-enum-varnames": [
- "PERMISSIONS"
- ]
- }
+ "type": "array"
},
- "type": "object",
- "x-merge-override": {
- "required": false
+ "defaultStatus": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ },
+ "rootQueries": {
+ "description": "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.",
+ "items": {
+ "description": "A query to be combined with the third party case query.",
+ "properties": {
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "query": {
+ "description": "Query to run on logs.",
+ "example": "source:cloudtrail",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "signalTitleTemplate": {
+ "description": "A template for the signal title; if omitted, the title is generated based on the case name.",
+ "type": "string"
}
},
- "type": "array"
+ "type": "object"
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object"
- }
- },
- "type": "object"
- },
- "RoleUpdateResponseData": {
- "description": "Role object returned by the API.",
- "properties": {
- "attributes": {
- "description": "Attributes of the role.",
- "properties": {
- "created_at": {
- "description": "Creation time of the role.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified_at": {
- "description": "Time of last role modification.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "name": {
- "description": "Name of the role.",
- "type": "string"
- },
- "user_count": {
- "description": "The user count.",
- "format": "int32",
- "maximum": 2147483647,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "The unique identifier of the role.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the role object returned by the API.",
- "properties": {
- "permissions": {
- "description": "Relationship to multiple permissions objects.",
- "properties": {
- "data": {
- "description": "Relationships to permission objects.",
+ "type": "object"
+ },
+ "queries": {
+ "description": "Queries for selecting logs which are part of the rule.",
"items": {
- "description": "Relationship to permission object.",
+ "description": "Query for matching rule.",
"properties": {
- "id": {
- "description": "ID of the permission.",
+ "aggregation": {
+ "description": "The aggregation type.",
+ "enum": [
+ "count",
+ "cardinality",
+ "sum",
+ "max",
+ "new_value",
+ "geo_data",
+ "event_count",
+ "none"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "COUNT",
+ "CARDINALITY",
+ "SUM",
+ "MAX",
+ "NEW_VALUE",
+ "GEO_DATA",
+ "EVENT_COUNT",
+ "NONE"
+ ]
+ },
+ "distinctFields": {
+ "description": "Field for which the cardinality is measured. Sent as an array.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "hasOptionalGroupByFields": {
+ "description": "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.",
+ "example": false,
+ "readOnly": true,
+ "type": "boolean"
+ },
+ "metric": {
+ "deprecated": true,
+ "description": "(Deprecated) The target field to aggregate over when using the sum or max\naggregations. `metrics` field should be used instead.",
"type": "string"
},
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
+ "metrics": {
+ "description": "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.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the query.",
+ "type": "string"
+ },
+ "query": {
+ "description": "Query to run on logs.",
+ "example": "a > 3",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "referenceTables": {
+ "description": "Reference tables for the rule.",
+ "items": {
+ "description": "Reference tables used in the queries.",
+ "properties": {
+ "checkPresence": {
+ "description": "Whether to include or exclude the matched values.",
+ "type": "boolean"
+ },
+ "columnName": {
+ "description": "The name of the column in the reference table.",
+ "type": "string"
+ },
+ "logFieldPath": {
+ "description": "The field in the log to match against the reference table.",
+ "type": "string"
+ },
+ "ruleQueryName": {
+ "description": "The name of the query to apply the reference table to.",
+ "type": "string"
+ },
+ "tableName": {
+ "description": "The name of the reference table.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "tags": {
+ "description": "Tags for generated signals.",
+ "items": {
+ "description": "Tag.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "thirdPartyCases": {
+ "description": "Cases for generating signals from third-party rules. Only available for third-party rules.",
+ "example": [],
+ "items": {
+ "description": "Case when signal is generated by a third party rule.",
+ "properties": {
+ "name": {
+ "description": "Name of the case.",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notification targets for each rule case.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "query": {
+ "description": "A query to map a third party event to this case.",
+ "type": "string"
+ },
+ "status": {
+ "description": "Severity of the Security Signal.",
"enum": [
- "permissions"
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
],
- "example": "permissions",
+ "example": "critical",
"type": "string",
"x-enum-varnames": [
- "PERMISSIONS"
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
]
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "object"
},
"type": "array"
+ },
+ "type": {
+ "description": "The rule type.",
+ "enum": [
+ "log_detection",
+ "infrastructure_configuration",
+ "workload_security",
+ "cloud_configuration",
+ "application_security"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "LOG_DETECTION",
+ "INFRASTRUCTURE_CONFIGURATION",
+ "WORKLOAD_SECURITY",
+ "CLOUD_CONFIGURATION",
+ "APPLICATION_SECURITY"
+ ]
+ },
+ "updateAuthorId": {
+ "description": "User ID of the user who updated the rule.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "updatedAt": {
+ "description": "The date the rule was last updated, in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "version": {
+ "description": "The version of the rule.",
+ "format": "int64",
+ "type": "integer"
}
- },
- "type": "object",
- "x-merge-override": {
- "required": false
}
- }
- },
- "type": "object"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object"
- },
- "RolesResponse": {
- "description": "Response containing information about multiple roles.",
- "properties": {
- "data": {
- "description": "Array of returned roles.",
- "items": {
- "description": "Role object returned by the API.",
- "properties": {
- "attributes": {
- "description": "Attributes of the role.",
- "properties": {
- "created_at": {
- "description": "Creation time of the role.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified_at": {
- "description": "Time of last role modification.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "name": {
- "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
- "type": "string"
- },
- "user_count": {
- "description": "Number of users with that role.",
- "format": "int64",
- "readOnly": true,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "The unique identifier of the role.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the role object returned by the API.",
- "properties": {
- "permissions": {
- "description": "Relationship to multiple permissions objects.",
+ },
+ {
+ "description": "Rule.",
+ "properties": {
+ "cases": {
+ "description": "Cases for generating signals.",
+ "items": {
+ "description": "Case when signal is generated.",
"properties": {
- "data": {
- "description": "Relationships to permission objects.",
+ "actions": {
+ "description": "Action to perform for each rule case.",
"items": {
- "description": "Relationship to permission object.",
+ "description": "Action to perform when a signal is triggered. Only available for Application Security rule type.",
"properties": {
- "id": {
- "description": "ID of the permission.",
- "type": "string"
+ "options": {
+ "description": "Options for the rule action",
+ "properties": {
+ "duration": {
+ "description": "Duration of the action in seconds. 0 indicates no expiration.",
+ "example": 0,
+ "format": "int64",
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "type": "object"
},
"type": {
- "default": "permissions",
- "description": "Permissions resource type.",
+ "description": "The action type.",
"enum": [
- "permissions"
+ "block_ip",
+ "block_user"
],
- "example": "permissions",
"type": "string",
"x-enum-varnames": [
- "PERMISSIONS"
+ "BLOCK_IP",
+ "BLOCK_USER"
]
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "condition": {
+ "description": "A rule case contains logical operations (`>`,`>=`, `&&`, `||`) to determine if a signal should be generated\nbased on the event counts in the previously defined queries.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the case.",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notification targets for each rule case.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
},
"type": "array"
+ },
+ "status": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
+ "type": "object"
+ },
+ "type": "array"
},
- "type": "object"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- },
- "meta": {
- "description": "Object describing meta attributes of response.",
- "properties": {
- "page": {
- "description": "Pagination object.",
- "properties": {
- "total_count": {
- "description": "Total count.",
+ "createdAt": {
+ "description": "When the rule was created, timestamp in milliseconds.",
"format": "int64",
"type": "integer"
},
- "total_filtered_count": {
- "description": "Total count of elements matched by the filter.",
+ "creationAuthorId": {
+ "description": "User ID of the user who created the rule.",
"format": "int64",
"type": "integer"
- }
- },
- "type": "object"
- }
- },
- "type": "object",
- "x-merge-override": {
- "properties": false
- }
- }
- },
- "type": "object"
- },
- "RolesSort": {
- "default": "name",
- "description": "Sorting options for roles.",
- "enum": [
- "name",
- "-name",
- "modified_at",
- "-modified_at",
- "user_count",
- "-user_count"
- ],
- "type": "string",
- "x-enum-varnames": [
- "NAME_ASCENDING",
- "NAME_DESCENDING",
- "MODIFIED_AT_ASCENDING",
- "MODIFIED_AT_DESCENDING",
- "USER_COUNT_ASCENDING",
- "USER_COUNT_DESCENDING"
- ]
- },
- "RolesType": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- },
- "RuleAttributes": {
- "description": "Details of a rule.",
- "properties": {
- "category": {
- "deprecated": true,
- "description": "The scorecard name to which this rule must belong.",
- "type": "string"
- },
- "created_at": {
- "description": "Creation time of the rule outcome.",
- "format": "date-time",
- "type": "string"
- },
- "custom": {
- "description": "Defines if the rule is a custom rule.",
- "type": "boolean"
- },
- "description": {
- "description": "Explanation of the rule.",
- "type": "string"
- },
- "enabled": {
- "description": "If enabled, the rule is calculated as part of the score.",
- "example": true,
- "type": "boolean"
- },
- "modified_at": {
- "description": "Time of the last rule outcome modification.",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "Name of the rule.",
- "example": "Team Defined",
- "type": "string"
- },
- "owner": {
- "description": "Owner of the rule.",
- "type": "string"
- },
- "scorecard_name": {
- "description": "The scorecard name to which this rule must belong.",
- "example": "Deployments automated via Deployment Trains",
- "type": "string"
- }
- },
- "type": "object"
- },
- "RuleId": {
- "description": "The unique ID for a scorecard rule.",
- "example": "q8MQxk8TCqrHnWkx",
- "type": "string"
- },
- "RuleName": {
- "description": "Name of the notification rule.",
- "example": "Rule 1",
- "type": "string"
- },
- "RuleOutcomeRelationships": {
- "description": "The JSON:API relationship to a scorecard rule.",
- "properties": {
- "rule": {
- "description": "The JSON:API relationship to a scorecard outcome.",
- "properties": {
- "data": {
- "description": "The JSON:API relationship to an outcome, which returns the related rule id.",
- "properties": {
+ },
+ "deprecationDate": {
+ "description": "When the rule will be deprecated, timestamp in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "filters": {
+ "description": "Additional queries to filter matched events before they are processed. This field is deprecated for log detection, signal correlation, and workload security rules.",
+ "items": {
+ "description": "The rule's suppression filter.",
+ "properties": {
+ "action": {
+ "description": "The type of filtering action.",
+ "enum": [
+ "require",
+ "suppress"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "REQUIRE",
+ "SUPPRESS"
+ ]
+ },
+ "query": {
+ "description": "Query for selecting logs to apply the filtering action.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "hasExtendedTitle": {
+ "description": "Whether the notifications include the triggering group-by values in their title.",
+ "type": "boolean"
+ },
"id": {
- "description": "The unique ID for a scorecard rule.",
- "example": "q8MQxk8TCqrHnWkx",
+ "description": "The ID of the rule.",
+ "type": "string"
+ },
+ "isDefault": {
+ "description": "Whether the rule is included by default.",
+ "type": "boolean"
+ },
+ "isDeleted": {
+ "description": "Whether the rule has been deleted.",
+ "type": "boolean"
+ },
+ "isEnabled": {
+ "description": "Whether the rule is enabled.",
+ "type": "boolean"
+ },
+ "message": {
+ "description": "Message for generated signals.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the rule.",
"type": "string"
},
+ "options": {
+ "description": "Options.",
+ "properties": {
+ "complianceRuleOptions": {
+ "additionalProperties": {},
+ "description": "Options for cloud_configuration rules.\nFields `resourceType` and `regoRule` are mandatory when managing custom `cloud_configuration` rules.\n",
+ "properties": {
+ "complexRule": {
+ "description": "Whether the rule is a complex one.\nMust be set to true if `regoRule.resourceTypes` contains more than one item. Defaults to false.\n",
+ "type": "boolean"
+ },
+ "regoRule": {
+ "description": "Rule details.",
+ "properties": {
+ "policy": {
+ "description": "The policy written in `rego`, see: https://www.openpolicyagent.org/docs/latest/policy-language/",
+ "example": "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}\n",
+ "type": "string"
+ },
+ "resourceTypes": {
+ "description": "List of resource types that will be evaluated upon. Must have at least one element.",
+ "example": [
+ "gcp_iam_service_account",
+ "gcp_iam_policy"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "policy",
+ "resourceTypes"
+ ],
+ "type": "object"
+ },
+ "resourceType": {
+ "description": "Main resource type to be checked by the rule. It should be specified again in `regoRule.resourceTypes`.\n",
+ "example": "aws_acm",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "decreaseCriticalityBasedOnEnv": {
+ "description": "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`.",
+ "example": false,
+ "type": "boolean"
+ },
+ "detectionMethod": {
+ "description": "The detection method.",
+ "enum": [
+ "threshold",
+ "new_value",
+ "anomaly_detection",
+ "impossible_travel",
+ "hardcoded",
+ "third_party",
+ "anomaly_threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "THRESHOLD",
+ "NEW_VALUE",
+ "ANOMALY_DETECTION",
+ "IMPOSSIBLE_TRAVEL",
+ "HARDCODED",
+ "THIRD_PARTY",
+ "ANOMALY_THRESHOLD"
+ ]
+ },
+ "evaluationWindow": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS"
+ ]
+ },
+ "hardcodedEvaluatorType": {
+ "description": "Hardcoded evaluator type.",
+ "enum": [
+ "log4shell"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "LOG4SHELL"
+ ]
+ },
+ "impossibleTravelOptions": {
+ "description": "Options on impossible travel detection method.",
+ "properties": {
+ "baselineUserLocations": {
+ "description": "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.",
+ "example": true,
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "keepAlive": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS"
+ ]
+ },
+ "maxSignalDuration": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600,
+ 43200,
+ 86400
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS",
+ "TWELVE_HOURS",
+ "ONE_DAY"
+ ]
+ },
+ "newValueOptions": {
+ "description": "Options on new value detection method.",
+ "properties": {
+ "forgetAfter": {
+ "description": "The duration in days after which a learned value is forgotten.",
+ "enum": [
+ 1,
+ 2,
+ 7,
+ 14,
+ 21,
+ 28
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ONE_DAY",
+ "TWO_DAYS",
+ "ONE_WEEK",
+ "TWO_WEEKS",
+ "THREE_WEEKS",
+ "FOUR_WEEKS"
+ ]
+ },
+ "learningDuration": {
+ "default": 0,
+ "description": "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.",
+ "enum": [
+ 0,
+ 1,
+ 7
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_DAYS",
+ "ONE_DAY",
+ "SEVEN_DAYS"
+ ]
+ },
+ "learningMethod": {
+ "default": "duration",
+ "description": "The learning method used to determine when signals should be generated for values that weren't learned.",
+ "enum": [
+ "duration",
+ "threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "DURATION",
+ "THRESHOLD"
+ ]
+ },
+ "learningThreshold": {
+ "default": 0,
+ "description": "A number of occurrences after which signals will be generated for values that weren't learned.",
+ "enum": [
+ 0,
+ 1
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_OCCURRENCES",
+ "ONE_OCCURRENCE"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "thirdPartyRuleOptions": {
+ "description": "Options on third party detection method.",
+ "properties": {
+ "defaultNotifications": {
+ "description": "Notification targets for the logs that do not correspond to any of the cases.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "defaultStatus": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ },
+ "rootQueries": {
+ "description": "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.",
+ "items": {
+ "description": "A query to be combined with the third party case query.",
+ "properties": {
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "query": {
+ "description": "Query to run on logs.",
+ "example": "source:cloudtrail",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "signalTitleTemplate": {
+ "description": "A template for the signal title; if omitted, the title is generated based on the case name.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "queries": {
+ "description": "Queries for selecting logs which are part of the rule.",
+ "items": {
+ "description": "Query for matching rule on signals.",
+ "properties": {
+ "aggregation": {
+ "description": "The aggregation type.",
+ "enum": [
+ "count",
+ "cardinality",
+ "sum",
+ "max",
+ "new_value",
+ "geo_data",
+ "event_count",
+ "none"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "COUNT",
+ "CARDINALITY",
+ "SUM",
+ "MAX",
+ "NEW_VALUE",
+ "GEO_DATA",
+ "EVENT_COUNT",
+ "NONE"
+ ]
+ },
+ "correlatedByFields": {
+ "description": "Fields to correlate by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "correlatedQueryIndex": {
+ "description": "Index of the rule query used to retrieve the correlated field.",
+ "format": "int32",
+ "maximum": 9,
+ "type": "integer"
+ },
+ "defaultRuleId": {
+ "description": "Default Rule ID to match on signals.",
+ "example": "d3f-ru1-e1d",
+ "type": "string"
+ },
+ "distinctFields": {
+ "description": "Field for which the cardinality is measured. Sent as an array.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "metrics": {
+ "description": "Group of target fields to aggregate over.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the query.",
+ "type": "string"
+ },
+ "ruleId": {
+ "description": "Rule ID to match on signals.",
+ "example": "org-ru1-e1d",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "tags": {
+ "description": "Tags for generated signals.",
+ "items": {
+ "description": "Tag.",
+ "type": "string"
+ },
+ "type": "array"
+ },
"type": {
- "default": "rule",
- "description": "The JSON:API type for scorecard rules.",
+ "description": "The rule type.",
"enum": [
- "rule"
+ "signal_correlation"
],
- "example": "rule",
"type": "string",
"x-enum-varnames": [
- "RULE"
+ "SIGNAL_CORRELATION"
]
+ },
+ "updateAuthorId": {
+ "description": "User ID of the user who updated the rule.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "version": {
+ "description": "The version of the rule.",
+ "format": "int64",
+ "type": "integer"
}
- },
- "type": "object"
+ }
}
- },
- "type": "object"
- }
- },
- "type": "object"
- },
- "RuleSeverity": {
- "description": "Severity of a security rule.",
- "enum": [
- "critical",
- "high",
- "medium",
- "low",
- "unknown",
- "info"
- ],
- "example": "critical",
- "type": "string",
- "x-enum-varnames": [
- "CRITICAL",
- "HIGH",
- "MEDIUM",
- "LOW",
- "UNKNOWN",
- "INFO"
- ]
- },
- "RuleType": {
- "default": "rule",
- "description": "The JSON:API type for scorecard rules.",
- "enum": [
- "rule"
- ],
- "example": "rule",
- "type": "string",
- "x-enum-varnames": [
- "RULE"
- ]
- },
- "RuleTypes": {
- "description": "Security rule types used as filters in security rules.",
- "example": [
- "misconfiguration",
- "attack_path"
- ],
- "items": {
- "description": "Security rule type which can be used in security rules.\nSignal-based notification rules can filter signals based on rule types application_security, log_detection,\nworkload_security, signal_correlation, cloud_configuration and infrastructure_configuration.\nVulnerability-based notification rules can filter vulnerabilities based on rule types application_code_vulnerability,\napplication_library_vulnerability, attack_path, container_image_vulnerability, identity_risk, misconfiguration, and api_security.",
- "enum": [
- "application_security",
- "log_detection",
- "workload_security",
- "signal_correlation",
- "cloud_configuration",
- "infrastructure_configuration",
- "application_code_vulnerability",
- "application_library_vulnerability",
- "attack_path",
- "container_image_vulnerability",
- "identity_risk",
- "misconfiguration",
- "api_security"
- ],
- "type": "string",
- "x-enum-varnames": [
- "APPLICATION_SECURITY",
- "LOG_DETECTION",
- "WORKLOAD_SECURITY",
- "SIGNAL_CORRELATION",
- "CLOUD_CONFIGURATION",
- "INFRASTRUCTURE_CONFIGURATION",
- "APPLICATION_CODE_VULNERABILITY",
- "APPLICATION_LIBRARY_VULNERABILITY",
- "ATTACK_PATH",
- "CONTAINER_IMAGE_VULNERABILITY",
- "IDENTITY_RISK",
- "MISCONFIGURATION",
- "API_SECURITY"
- ]
- },
- "type": "array"
- },
- "RuleTypesItems": {
- "description": "Security rule type which can be used in security rules.\nSignal-based notification rules can filter signals based on rule types application_security, log_detection,\nworkload_security, signal_correlation, cloud_configuration and infrastructure_configuration.\nVulnerability-based notification rules can filter vulnerabilities based on rule types application_code_vulnerability,\napplication_library_vulnerability, attack_path, container_image_vulnerability, identity_risk, misconfiguration, and api_security.",
- "enum": [
- "application_security",
- "log_detection",
- "workload_security",
- "signal_correlation",
- "cloud_configuration",
- "infrastructure_configuration",
- "application_code_vulnerability",
- "application_library_vulnerability",
- "attack_path",
- "container_image_vulnerability",
- "identity_risk",
- "misconfiguration",
- "api_security"
- ],
- "type": "string",
- "x-enum-varnames": [
- "APPLICATION_SECURITY",
- "LOG_DETECTION",
- "WORKLOAD_SECURITY",
- "SIGNAL_CORRELATION",
- "CLOUD_CONFIGURATION",
- "INFRASTRUCTURE_CONFIGURATION",
- "APPLICATION_CODE_VULNERABILITY",
- "APPLICATION_LIBRARY_VULNERABILITY",
- "ATTACK_PATH",
- "CONTAINER_IMAGE_VULNERABILITY",
- "IDENTITY_RISK",
- "MISCONFIGURATION",
- "API_SECURITY"
- ]
- },
- "RuleUser": {
- "description": "User creating or modifying a rule.",
- "properties": {
- "handle": {
- "description": "The user handle.",
- "example": "john.doe@domain.com",
- "type": "string"
- },
- "name": {
- "description": "The user name.",
- "example": "John Doe",
- "type": "string"
+ ]
}
},
"type": "object"
@@ -152053,6 +162344,54 @@
},
"type": "object"
},
+ "ScheduleTrigger": {
+ "description": "Trigger a workflow VIA a Schedule. The workflow must be published.",
+ "properties": {
+ "rruleExpression": {
+ "description": "Recurrence rule expression for scheduling.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "rruleExpression"
+ ],
+ "type": "object"
+ },
+ "ScheduleTriggerWrapper": {
+ "description": "Schema for a Schedule-based trigger.",
+ "properties": {
+ "scheduleTrigger": {
+ "description": "Trigger a workflow VIA a Schedule. The workflow must be published.",
+ "properties": {
+ "rruleExpression": {
+ "description": "Recurrence rule expression for scheduling.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "rruleExpression"
+ ],
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "scheduleTrigger"
+ ],
+ "type": "object"
+ },
"ScorecardType": {
"default": "scorecard",
"description": "The JSON:API type for scorecard.",
@@ -170307,6 +180646,68 @@
},
"type": "object"
},
+ "SecurityTrigger": {
+ "description": "Trigger a workflow VIA a Security Signal or Finding. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "SecurityTriggerWrapper": {
+ "description": "Schema for a Security-based trigger.",
+ "properties": {
+ "securityTrigger": {
+ "description": "Trigger a workflow VIA a Security Signal or Finding. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "securityTrigger"
+ ],
+ "type": "object"
+ },
"Selectors": {
"description": "Selectors are used to filter security issues for which notifications should be generated.\nUsers can specify rule severities, rule types, a query to filter security issues on tags and attributes, and the trigger source.\nOnly the trigger_source field is required.",
"properties": {
@@ -185171,6 +195572,30 @@
],
"type": "object"
},
+ "SlackTriggerWrapper": {
+ "description": "Schema for a Slack-based trigger.",
+ "properties": {
+ "slackTrigger": {
+ "description": "Trigger a workflow VIA Slack. The workflow must be published.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "slackTrigger"
+ ],
+ "type": "object"
+ },
"SloReportCreateRequest": {
"description": "The SLO report request body.",
"properties": {
@@ -189105,6 +199530,973 @@
},
"type": "object"
},
+ "Spec": {
+ "description": "The spec defines what the workflow does.",
+ "properties": {
+ "annotations": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "items": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "properties": {
+ "display": {
+ "description": "The definition of `AnnotationDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `AnnotationDisplayBounds` object.",
+ "properties": {
+ "height": {
+ "description": "The `bounds` `height`.",
+ "format": "double",
+ "type": "number"
+ },
+ "width": {
+ "description": "The `bounds` `width`.",
+ "format": "double",
+ "type": "number"
+ },
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The `Annotation` `id`.",
+ "example": "",
+ "type": "string"
+ },
+ "markdownTextAnnotation": {
+ "description": "The definition of `AnnotationMarkdownTextAnnotation` object.",
+ "properties": {
+ "text": {
+ "description": "The `markdownTextAnnotation` `text`.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "required": [
+ "id",
+ "display",
+ "markdownTextAnnotation"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "connectionEnvs": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "items": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "properties": {
+ "connectionGroups": {
+ "description": "The `ConnectionEnv` `connectionGroups`.",
+ "items": {
+ "description": "The definition of `ConnectionGroup` object.",
+ "properties": {
+ "connectionGroupId": {
+ "description": "The `ConnectionGroup` `connectionGroupId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `ConnectionGroup` `label`.",
+ "example": "",
+ "type": "string"
+ },
+ "tags": {
+ "description": "The `ConnectionGroup` `tags`.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "connectionGroupId",
+ "label",
+ "tags"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "connections": {
+ "description": "The `ConnectionEnv` `connections`.",
+ "items": {
+ "description": "The definition of `Connection` object.",
+ "properties": {
+ "connectionId": {
+ "description": "The `Connection` `connectionId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `Connection` `label`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "connectionId",
+ "label"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "env": {
+ "description": "The definition of `ConnectionEnvEnv` object.",
+ "enum": [
+ "default"
+ ],
+ "example": "default",
+ "type": "string",
+ "x-enum-varnames": [
+ "DEFAULT"
+ ]
+ }
+ },
+ "required": [
+ "env"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "handle": {
+ "description": "Unique identifier used to trigger workflows automatically in Datadog.",
+ "type": "string"
+ },
+ "inputSchema": {
+ "description": "A list of input parameters for the workflow. These can be used as dynamic runtime values in your workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `InputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `InputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `InputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `InputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `InputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `InputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `InputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "outputSchema": {
+ "description": "A list of output parameters for the workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `OutputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `OutputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `OutputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `OutputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `OutputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `OutputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `OutputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ },
+ "value": {
+ "description": "The `OutputSchemaParameters` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "steps": {
+ "description": "A `Step` is a sub-component of a workflow. Each `Step` performs an action.",
+ "items": {
+ "description": "A Step is a sub-component of a workflow. Each Step performs an action.",
+ "properties": {
+ "actionId": {
+ "description": "The unique identifier of an action.",
+ "example": "",
+ "type": "string"
+ },
+ "completionGate": {
+ "description": "Used to create conditions before running subsequent actions.",
+ "properties": {
+ "completionCondition": {
+ "description": "The definition of `CompletionCondition` object.",
+ "properties": {
+ "operand1": {
+ "description": "The `CompletionCondition` `operand1`."
+ },
+ "operand2": {
+ "description": "The `CompletionCondition` `operand2`."
+ },
+ "operator": {
+ "description": "The definition of `CompletionConditionOperator` object.",
+ "enum": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ],
+ "example": "OPERATOR_EQUAL",
+ "type": "string",
+ "x-enum-varnames": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ]
+ }
+ },
+ "required": [
+ "operand1",
+ "operator"
+ ],
+ "type": "object"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "completionCondition",
+ "retryStrategy"
+ ],
+ "type": "object"
+ },
+ "connectionLabel": {
+ "description": "The unique identifier of a connection defined in the spec.",
+ "type": "string"
+ },
+ "display": {
+ "description": "The definition of `StepDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `StepDisplayBounds` object.",
+ "properties": {
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "errorHandlers": {
+ "description": "The `Step` `errorHandlers`.",
+ "items": {
+ "description": "Used to handle errors in an action.",
+ "properties": {
+ "fallbackStepName": {
+ "description": "The `ErrorHandler` `fallbackStepName`.",
+ "example": "",
+ "type": "string"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "retryStrategy",
+ "fallbackStepName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the step.",
+ "example": "",
+ "type": "string"
+ },
+ "outboundEdges": {
+ "description": "A list of subsequent actions to run.",
+ "items": {
+ "description": "The definition of `OutboundEdge` object.",
+ "properties": {
+ "branchName": {
+ "description": "The `OutboundEdge` `branchName`.",
+ "example": "",
+ "type": "string"
+ },
+ "nextStepName": {
+ "description": "The `OutboundEdge` `nextStepName`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "nextStepName",
+ "branchName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "parameters": {
+ "description": "A list of inputs for an action.",
+ "items": {
+ "description": "The definition of `Parameter` object.",
+ "properties": {
+ "name": {
+ "description": "The `Parameter` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "value": {
+ "description": "The `Parameter` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "value"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "readinessGate": {
+ "description": "Used to merge multiple branches into a single branch.",
+ "properties": {
+ "thresholdType": {
+ "description": "The definition of `ReadinessGateThresholdType` object.",
+ "enum": [
+ "ANY",
+ "ALL"
+ ],
+ "example": "ANY",
+ "type": "string",
+ "x-enum-varnames": [
+ "ANY",
+ "ALL"
+ ]
+ }
+ },
+ "required": [
+ "thresholdType"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "name",
+ "actionId"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "triggers": {
+ "description": "The list of triggers that activate this workflow. At least one trigger is required, and each trigger type may appear at most once.",
+ "items": {
+ "description": "One of the triggers that can start the execution of a workflow.",
+ "oneOf": [
+ {
+ "description": "Schema for an API-based trigger.",
+ "properties": {
+ "apiTrigger": {
+ "description": "Trigger a workflow VIA an API. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "apiTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an App-based trigger.",
+ "properties": {
+ "appTrigger": {
+ "description": "Trigger a workflow VIA an App.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "appTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Case-based trigger.",
+ "properties": {
+ "caseTrigger": {
+ "description": "Trigger a workflow VIA a Case. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "caseTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Change Event-based trigger.",
+ "properties": {
+ "changeEventTrigger": {
+ "description": "Trigger a workflow VIA a Change Event.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "changeEventTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Dashboard-based trigger.",
+ "properties": {
+ "dashboardTrigger": {
+ "description": "Trigger a workflow VIA a Dashboard.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "dashboardTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a GitHub webhook-based trigger.",
+ "properties": {
+ "githubWebhookTrigger": {
+ "description": "Trigger a workflow VIA GitHub webhook. To trigger a workflow from GitHub, you must set a `webhookSecret`. In your GitHub Webhook Settings, set the Payload URL to \"base_url\"/api/v2/workflows/\"workflow_id\"/webhook?orgId=\"org_id\", select application/json for the content type, and be highly recommend enabling SSL verification for security. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "githubWebhookTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an Incident-based trigger.",
+ "properties": {
+ "incidentTrigger": {
+ "description": "Trigger a workflow VIA an Incident. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "incidentTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Monitor-based trigger.",
+ "properties": {
+ "monitorTrigger": {
+ "description": "Trigger a workflow VIA a Monitor. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "monitorTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Schedule-based trigger.",
+ "properties": {
+ "scheduleTrigger": {
+ "description": "Trigger a workflow VIA a Schedule. The workflow must be published.",
+ "properties": {
+ "rruleExpression": {
+ "description": "Recurrence rule expression for scheduling.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "rruleExpression"
+ ],
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "scheduleTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Security-based trigger.",
+ "properties": {
+ "securityTrigger": {
+ "description": "Trigger a workflow VIA a Security Signal or Finding. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "securityTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Slack-based trigger.",
+ "properties": {
+ "slackTrigger": {
+ "description": "Trigger a workflow VIA Slack. The workflow must be published.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "slackTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Workflow-based trigger.",
+ "properties": {
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "workflowTrigger": {
+ "description": "Trigger a workflow VIA the Datadog UI. Only required if no other trigger exists.",
+ "type": "object"
+ }
+ },
+ "required": [
+ "workflowTrigger"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
"SpecVersion": {
"description": "The version of the CycloneDX specification a BOM conforms to.",
"enum": [
@@ -189126,6 +200518,17 @@
"ONE_FIVE"
]
},
+ "StartStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ },
"State": {
"description": "The state of the rule evaluation.",
"enum": [
@@ -189141,6 +200544,318 @@
"SKIP"
]
},
+ "Step": {
+ "description": "A Step is a sub-component of a workflow. Each Step performs an action.",
+ "properties": {
+ "actionId": {
+ "description": "The unique identifier of an action.",
+ "example": "",
+ "type": "string"
+ },
+ "completionGate": {
+ "description": "Used to create conditions before running subsequent actions.",
+ "properties": {
+ "completionCondition": {
+ "description": "The definition of `CompletionCondition` object.",
+ "properties": {
+ "operand1": {
+ "description": "The `CompletionCondition` `operand1`."
+ },
+ "operand2": {
+ "description": "The `CompletionCondition` `operand2`."
+ },
+ "operator": {
+ "description": "The definition of `CompletionConditionOperator` object.",
+ "enum": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ],
+ "example": "OPERATOR_EQUAL",
+ "type": "string",
+ "x-enum-varnames": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ]
+ }
+ },
+ "required": [
+ "operand1",
+ "operator"
+ ],
+ "type": "object"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "completionCondition",
+ "retryStrategy"
+ ],
+ "type": "object"
+ },
+ "connectionLabel": {
+ "description": "The unique identifier of a connection defined in the spec.",
+ "type": "string"
+ },
+ "display": {
+ "description": "The definition of `StepDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `StepDisplayBounds` object.",
+ "properties": {
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "errorHandlers": {
+ "description": "The `Step` `errorHandlers`.",
+ "items": {
+ "description": "Used to handle errors in an action.",
+ "properties": {
+ "fallbackStepName": {
+ "description": "The `ErrorHandler` `fallbackStepName`.",
+ "example": "",
+ "type": "string"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "retryStrategy",
+ "fallbackStepName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the step.",
+ "example": "",
+ "type": "string"
+ },
+ "outboundEdges": {
+ "description": "A list of subsequent actions to run.",
+ "items": {
+ "description": "The definition of `OutboundEdge` object.",
+ "properties": {
+ "branchName": {
+ "description": "The `OutboundEdge` `branchName`.",
+ "example": "",
+ "type": "string"
+ },
+ "nextStepName": {
+ "description": "The `OutboundEdge` `nextStepName`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "nextStepName",
+ "branchName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "parameters": {
+ "description": "A list of inputs for an action.",
+ "items": {
+ "description": "The definition of `Parameter` object.",
+ "properties": {
+ "name": {
+ "description": "The `Parameter` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "value": {
+ "description": "The `Parameter` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "value"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "readinessGate": {
+ "description": "Used to merge multiple branches into a single branch.",
+ "properties": {
+ "thresholdType": {
+ "description": "The definition of `ReadinessGateThresholdType` object.",
+ "enum": [
+ "ANY",
+ "ALL"
+ ],
+ "example": "ANY",
+ "type": "string",
+ "x-enum-varnames": [
+ "ANY",
+ "ALL"
+ ]
+ }
+ },
+ "required": [
+ "thresholdType"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "name",
+ "actionId"
+ ],
+ "type": "object"
+ },
+ "StepDisplay": {
+ "description": "The definition of `StepDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `StepDisplayBounds` object.",
+ "properties": {
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "StepDisplayBounds": {
+ "description": "The definition of `StepDisplayBounds` object.",
+ "properties": {
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
"TagsEventAttribute": {
"description": "Array of tags associated with your event.",
"example": [
@@ -194815,6 +206530,426 @@
"SECRET"
]
},
+ "Trigger": {
+ "description": "One of the triggers that can start the execution of a workflow.",
+ "oneOf": [
+ {
+ "description": "Schema for an API-based trigger.",
+ "properties": {
+ "apiTrigger": {
+ "description": "Trigger a workflow VIA an API. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "apiTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an App-based trigger.",
+ "properties": {
+ "appTrigger": {
+ "description": "Trigger a workflow VIA an App.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "appTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Case-based trigger.",
+ "properties": {
+ "caseTrigger": {
+ "description": "Trigger a workflow VIA a Case. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "caseTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Change Event-based trigger.",
+ "properties": {
+ "changeEventTrigger": {
+ "description": "Trigger a workflow VIA a Change Event.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "changeEventTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Dashboard-based trigger.",
+ "properties": {
+ "dashboardTrigger": {
+ "description": "Trigger a workflow VIA a Dashboard.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "dashboardTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a GitHub webhook-based trigger.",
+ "properties": {
+ "githubWebhookTrigger": {
+ "description": "Trigger a workflow VIA GitHub webhook. To trigger a workflow from GitHub, you must set a `webhookSecret`. In your GitHub Webhook Settings, set the Payload URL to \"base_url\"/api/v2/workflows/\"workflow_id\"/webhook?orgId=\"org_id\", select application/json for the content type, and be highly recommend enabling SSL verification for security. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "githubWebhookTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an Incident-based trigger.",
+ "properties": {
+ "incidentTrigger": {
+ "description": "Trigger a workflow VIA an Incident. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "incidentTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Monitor-based trigger.",
+ "properties": {
+ "monitorTrigger": {
+ "description": "Trigger a workflow VIA a Monitor. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "monitorTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Schedule-based trigger.",
+ "properties": {
+ "scheduleTrigger": {
+ "description": "Trigger a workflow VIA a Schedule. The workflow must be published.",
+ "properties": {
+ "rruleExpression": {
+ "description": "Recurrence rule expression for scheduling.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "rruleExpression"
+ ],
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "scheduleTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Security-based trigger.",
+ "properties": {
+ "securityTrigger": {
+ "description": "Trigger a workflow VIA a Security Signal or Finding. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "securityTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Slack-based trigger.",
+ "properties": {
+ "slackTrigger": {
+ "description": "Trigger a workflow VIA Slack. The workflow must be published.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "slackTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Workflow-based trigger.",
+ "properties": {
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "workflowTrigger": {
+ "description": "Trigger a workflow VIA the Datadog UI. Only required if no other trigger exists.",
+ "type": "object"
+ }
+ },
+ "required": [
+ "workflowTrigger"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "TriggerRateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
"TriggerSource": {
"description": "The type of security issues on which the rule applies. Notification rules based on security signals need to use the trigger source \"security_signals\",\nwhile notification rules based on security vulnerabilities need to use the trigger source \"security_findings\".",
"enum": [
@@ -198591,331 +210726,2662 @@
"description": "Explanation of the rule.",
"type": "string"
},
- "enabled": {
- "description": "If enabled, the rule is calculated as part of the score.",
- "example": true,
- "type": "boolean"
+ "enabled": {
+ "description": "If enabled, the rule is calculated as part of the score.",
+ "example": true,
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time of the last rule outcome modification.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the rule.",
+ "example": "Team Defined",
+ "type": "string"
+ },
+ "owner": {
+ "description": "Owner of the rule.",
+ "type": "string"
+ },
+ "scorecard_name": {
+ "description": "The scorecard name to which this rule must belong.",
+ "example": "Deployments automated via Deployment Trains",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "default": "rule",
+ "description": "The JSON:API type for scorecard rules.",
+ "enum": [
+ "rule"
+ ],
+ "example": "rule",
+ "type": "string",
+ "x-enum-varnames": [
+ "RULE"
+ ]
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "UpdateRuleRequestData": {
+ "description": "Data for the request to update a scorecard rule.",
+ "properties": {
+ "attributes": {
+ "description": "Details of a rule.",
+ "properties": {
+ "category": {
+ "deprecated": true,
+ "description": "The scorecard name to which this rule must belong.",
+ "type": "string"
+ },
+ "created_at": {
+ "description": "Creation time of the rule outcome.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "custom": {
+ "description": "Defines if the rule is a custom rule.",
+ "type": "boolean"
+ },
+ "description": {
+ "description": "Explanation of the rule.",
+ "type": "string"
+ },
+ "enabled": {
+ "description": "If enabled, the rule is calculated as part of the score.",
+ "example": true,
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time of the last rule outcome modification.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the rule.",
+ "example": "Team Defined",
+ "type": "string"
+ },
+ "owner": {
+ "description": "Owner of the rule.",
+ "type": "string"
+ },
+ "scorecard_name": {
+ "description": "The scorecard name to which this rule must belong.",
+ "example": "Deployments automated via Deployment Trains",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "default": "rule",
+ "description": "The JSON:API type for scorecard rules.",
+ "enum": [
+ "rule"
+ ],
+ "example": "rule",
+ "type": "string",
+ "x-enum-varnames": [
+ "RULE"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "UpdateRuleResponse": {
+ "description": "The response from a rule update request.",
+ "properties": {
+ "data": {
+ "description": "The data for a rule update response.",
+ "properties": {
+ "attributes": {
+ "description": "Details of a rule.",
+ "properties": {
+ "category": {
+ "deprecated": true,
+ "description": "The scorecard name to which this rule must belong.",
+ "type": "string"
+ },
+ "created_at": {
+ "description": "Creation time of the rule outcome.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "custom": {
+ "description": "Defines if the rule is a custom rule.",
+ "type": "boolean"
+ },
+ "description": {
+ "description": "Explanation of the rule.",
+ "type": "string"
+ },
+ "enabled": {
+ "description": "If enabled, the rule is calculated as part of the score.",
+ "example": true,
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time of the last rule outcome modification.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the rule.",
+ "example": "Team Defined",
+ "type": "string"
+ },
+ "owner": {
+ "description": "Owner of the rule.",
+ "type": "string"
+ },
+ "scorecard_name": {
+ "description": "The scorecard name to which this rule must belong.",
+ "example": "Deployments automated via Deployment Trains",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The unique ID for a scorecard rule.",
+ "example": "q8MQxk8TCqrHnWkx",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Scorecard create rule response relationship.",
+ "properties": {
+ "scorecard": {
+ "description": "Relationship data for a rule.",
+ "properties": {
+ "data": {
+ "description": "Rule relationship data.",
+ "properties": {
+ "id": {
+ "description": "The unique ID for a scorecard.",
+ "example": "q8MQxk8TCqrHnWkp",
+ "type": "string"
+ },
+ "type": {
+ "default": "scorecard",
+ "description": "The JSON:API type for scorecard.",
+ "enum": [
+ "scorecard"
+ ],
+ "example": "scorecard",
+ "type": "string",
+ "x-enum-varnames": [
+ "SCORECARD"
+ ]
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "default": "rule",
+ "description": "The JSON:API type for scorecard rules.",
+ "enum": [
+ "rule"
+ ],
+ "example": "rule",
+ "type": "string",
+ "x-enum-varnames": [
+ "RULE"
+ ]
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "UpdateRuleResponseData": {
+ "description": "The data for a rule update response.",
+ "properties": {
+ "attributes": {
+ "description": "Details of a rule.",
+ "properties": {
+ "category": {
+ "deprecated": true,
+ "description": "The scorecard name to which this rule must belong.",
+ "type": "string"
+ },
+ "created_at": {
+ "description": "Creation time of the rule outcome.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "custom": {
+ "description": "Defines if the rule is a custom rule.",
+ "type": "boolean"
+ },
+ "description": {
+ "description": "Explanation of the rule.",
+ "type": "string"
+ },
+ "enabled": {
+ "description": "If enabled, the rule is calculated as part of the score.",
+ "example": true,
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time of the last rule outcome modification.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the rule.",
+ "example": "Team Defined",
+ "type": "string"
+ },
+ "owner": {
+ "description": "Owner of the rule.",
+ "type": "string"
+ },
+ "scorecard_name": {
+ "description": "The scorecard name to which this rule must belong.",
+ "example": "Deployments automated via Deployment Trains",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The unique ID for a scorecard rule.",
+ "example": "q8MQxk8TCqrHnWkx",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Scorecard create rule response relationship.",
+ "properties": {
+ "scorecard": {
+ "description": "Relationship data for a rule.",
+ "properties": {
+ "data": {
+ "description": "Rule relationship data.",
+ "properties": {
+ "id": {
+ "description": "The unique ID for a scorecard.",
+ "example": "q8MQxk8TCqrHnWkp",
+ "type": "string"
+ },
+ "type": {
+ "default": "scorecard",
+ "description": "The JSON:API type for scorecard.",
+ "enum": [
+ "scorecard"
+ ],
+ "example": "scorecard",
+ "type": "string",
+ "x-enum-varnames": [
+ "SCORECARD"
+ ]
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "default": "rule",
+ "description": "The JSON:API type for scorecard rules.",
+ "enum": [
+ "rule"
+ ],
+ "example": "rule",
+ "type": "string",
+ "x-enum-varnames": [
+ "RULE"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "UpdateWorkflowRequest": {
+ "description": "A request object for updating an existing workflow.",
+ "example": {
+ "data": {
+ "attributes": {
+ "description": "A sample workflow.",
+ "name": "Example Workflow",
+ "published": true,
+ "spec": {
+ "annotations": [
+ {
+ "display": {
+ "bounds": {
+ "height": 150,
+ "width": 300,
+ "x": -375,
+ "y": -0.5
+ }
+ },
+ "id": "99999999-9999-9999-9999-999999999999",
+ "markdownTextAnnotation": {
+ "text": "Example annotation."
+ }
+ }
+ ],
+ "connectionEnvs": [
+ {
+ "connections": [
+ {
+ "connectionId": "11111111-1111-1111-1111-111111111111",
+ "label": "INTEGRATION_DATADOG"
+ }
+ ],
+ "env": "default"
+ }
+ ],
+ "handle": "my-handle",
+ "inputSchema": {
+ "parameters": [
+ {
+ "defaultValue": "default",
+ "name": "input",
+ "type": "STRING"
+ }
+ ]
+ },
+ "outputSchema": {
+ "parameters": [
+ {
+ "name": "output",
+ "type": "ARRAY_OBJECT",
+ "value": "{{ Steps.Step1 }}"
+ }
+ ]
+ },
+ "steps": [
+ {
+ "actionId": "com.datadoghq.dd.monitor.listMonitors",
+ "connectionLabel": "INTEGRATION_DATADOG",
+ "name": "Step1",
+ "outboundEdges": [
+ {
+ "branchName": "main",
+ "nextStepName": "Step2"
+ }
+ ],
+ "parameters": [
+ {
+ "name": "tags",
+ "value": "service:monitoring"
+ }
+ ]
+ },
+ {
+ "actionId": "com.datadoghq.core.noop",
+ "name": "Step2"
+ }
+ ],
+ "triggers": [
+ {
+ "monitorTrigger": {
+ "rateLimit": {
+ "count": 1,
+ "interval": "3600s"
+ }
+ },
+ "startStepNames": [
+ "Step1"
+ ]
+ },
+ {
+ "githubWebhookTrigger": {},
+ "startStepNames": [
+ "Step1"
+ ]
+ }
+ ]
+ },
+ "tags": [
+ "team:infra",
+ "service:monitoring",
+ "foo:bar"
+ ]
+ },
+ "id": "22222222-2222-2222-2222-222222222222",
+ "type": "workflows"
+ }
+ },
+ "properties": {
+ "data": {
+ "description": "Data related to the workflow being updated.",
+ "properties": {
+ "attributes": {
+ "description": "The definition of `WorkflowDataUpdateAttributes` object.",
+ "properties": {
+ "createdAt": {
+ "description": "When the workflow was created.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of the workflow.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the workflow.",
+ "type": "string"
+ },
+ "published": {
+ "description": "Set the workflow to published or unpublished. Workflows in an unpublished state will only be executable via manual runs. Automatic triggers such as Schedule will not execute the workflow until it is published.",
+ "type": "boolean"
+ },
+ "spec": {
+ "description": "The spec defines what the workflow does.",
+ "properties": {
+ "annotations": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "items": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "properties": {
+ "display": {
+ "description": "The definition of `AnnotationDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `AnnotationDisplayBounds` object.",
+ "properties": {
+ "height": {
+ "description": "The `bounds` `height`.",
+ "format": "double",
+ "type": "number"
+ },
+ "width": {
+ "description": "The `bounds` `width`.",
+ "format": "double",
+ "type": "number"
+ },
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The `Annotation` `id`.",
+ "example": "",
+ "type": "string"
+ },
+ "markdownTextAnnotation": {
+ "description": "The definition of `AnnotationMarkdownTextAnnotation` object.",
+ "properties": {
+ "text": {
+ "description": "The `markdownTextAnnotation` `text`.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "required": [
+ "id",
+ "display",
+ "markdownTextAnnotation"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "connectionEnvs": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "items": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "properties": {
+ "connectionGroups": {
+ "description": "The `ConnectionEnv` `connectionGroups`.",
+ "items": {
+ "description": "The definition of `ConnectionGroup` object.",
+ "properties": {
+ "connectionGroupId": {
+ "description": "The `ConnectionGroup` `connectionGroupId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `ConnectionGroup` `label`.",
+ "example": "",
+ "type": "string"
+ },
+ "tags": {
+ "description": "The `ConnectionGroup` `tags`.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "connectionGroupId",
+ "label",
+ "tags"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "connections": {
+ "description": "The `ConnectionEnv` `connections`.",
+ "items": {
+ "description": "The definition of `Connection` object.",
+ "properties": {
+ "connectionId": {
+ "description": "The `Connection` `connectionId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `Connection` `label`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "connectionId",
+ "label"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "env": {
+ "description": "The definition of `ConnectionEnvEnv` object.",
+ "enum": [
+ "default"
+ ],
+ "example": "default",
+ "type": "string",
+ "x-enum-varnames": [
+ "DEFAULT"
+ ]
+ }
+ },
+ "required": [
+ "env"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "handle": {
+ "description": "Unique identifier used to trigger workflows automatically in Datadog.",
+ "type": "string"
+ },
+ "inputSchema": {
+ "description": "A list of input parameters for the workflow. These can be used as dynamic runtime values in your workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `InputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `InputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `InputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `InputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `InputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `InputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `InputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "outputSchema": {
+ "description": "A list of output parameters for the workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `OutputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `OutputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `OutputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `OutputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `OutputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `OutputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `OutputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ },
+ "value": {
+ "description": "The `OutputSchemaParameters` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "steps": {
+ "description": "A `Step` is a sub-component of a workflow. Each `Step` performs an action.",
+ "items": {
+ "description": "A Step is a sub-component of a workflow. Each Step performs an action.",
+ "properties": {
+ "actionId": {
+ "description": "The unique identifier of an action.",
+ "example": "",
+ "type": "string"
+ },
+ "completionGate": {
+ "description": "Used to create conditions before running subsequent actions.",
+ "properties": {
+ "completionCondition": {
+ "description": "The definition of `CompletionCondition` object.",
+ "properties": {
+ "operand1": {
+ "description": "The `CompletionCondition` `operand1`."
+ },
+ "operand2": {
+ "description": "The `CompletionCondition` `operand2`."
+ },
+ "operator": {
+ "description": "The definition of `CompletionConditionOperator` object.",
+ "enum": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ],
+ "example": "OPERATOR_EQUAL",
+ "type": "string",
+ "x-enum-varnames": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ]
+ }
+ },
+ "required": [
+ "operand1",
+ "operator"
+ ],
+ "type": "object"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "completionCondition",
+ "retryStrategy"
+ ],
+ "type": "object"
+ },
+ "connectionLabel": {
+ "description": "The unique identifier of a connection defined in the spec.",
+ "type": "string"
+ },
+ "display": {
+ "description": "The definition of `StepDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `StepDisplayBounds` object.",
+ "properties": {
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "errorHandlers": {
+ "description": "The `Step` `errorHandlers`.",
+ "items": {
+ "description": "Used to handle errors in an action.",
+ "properties": {
+ "fallbackStepName": {
+ "description": "The `ErrorHandler` `fallbackStepName`.",
+ "example": "",
+ "type": "string"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "retryStrategy",
+ "fallbackStepName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the step.",
+ "example": "",
+ "type": "string"
+ },
+ "outboundEdges": {
+ "description": "A list of subsequent actions to run.",
+ "items": {
+ "description": "The definition of `OutboundEdge` object.",
+ "properties": {
+ "branchName": {
+ "description": "The `OutboundEdge` `branchName`.",
+ "example": "",
+ "type": "string"
+ },
+ "nextStepName": {
+ "description": "The `OutboundEdge` `nextStepName`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "nextStepName",
+ "branchName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "parameters": {
+ "description": "A list of inputs for an action.",
+ "items": {
+ "description": "The definition of `Parameter` object.",
+ "properties": {
+ "name": {
+ "description": "The `Parameter` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "value": {
+ "description": "The `Parameter` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "value"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "readinessGate": {
+ "description": "Used to merge multiple branches into a single branch.",
+ "properties": {
+ "thresholdType": {
+ "description": "The definition of `ReadinessGateThresholdType` object.",
+ "enum": [
+ "ANY",
+ "ALL"
+ ],
+ "example": "ANY",
+ "type": "string",
+ "x-enum-varnames": [
+ "ANY",
+ "ALL"
+ ]
+ }
+ },
+ "required": [
+ "thresholdType"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "name",
+ "actionId"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "triggers": {
+ "description": "The list of triggers that activate this workflow. At least one trigger is required, and each trigger type may appear at most once.",
+ "items": {
+ "description": "One of the triggers that can start the execution of a workflow.",
+ "oneOf": [
+ {
+ "description": "Schema for an API-based trigger.",
+ "properties": {
+ "apiTrigger": {
+ "description": "Trigger a workflow VIA an API. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "apiTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an App-based trigger.",
+ "properties": {
+ "appTrigger": {
+ "description": "Trigger a workflow VIA an App.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "appTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Case-based trigger.",
+ "properties": {
+ "caseTrigger": {
+ "description": "Trigger a workflow VIA a Case. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "caseTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Change Event-based trigger.",
+ "properties": {
+ "changeEventTrigger": {
+ "description": "Trigger a workflow VIA a Change Event.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "changeEventTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Dashboard-based trigger.",
+ "properties": {
+ "dashboardTrigger": {
+ "description": "Trigger a workflow VIA a Dashboard.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "dashboardTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a GitHub webhook-based trigger.",
+ "properties": {
+ "githubWebhookTrigger": {
+ "description": "Trigger a workflow VIA GitHub webhook. To trigger a workflow from GitHub, you must set a `webhookSecret`. In your GitHub Webhook Settings, set the Payload URL to \"base_url\"/api/v2/workflows/\"workflow_id\"/webhook?orgId=\"org_id\", select application/json for the content type, and be highly recommend enabling SSL verification for security. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "githubWebhookTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an Incident-based trigger.",
+ "properties": {
+ "incidentTrigger": {
+ "description": "Trigger a workflow VIA an Incident. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "incidentTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Monitor-based trigger.",
+ "properties": {
+ "monitorTrigger": {
+ "description": "Trigger a workflow VIA a Monitor. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "monitorTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Schedule-based trigger.",
+ "properties": {
+ "scheduleTrigger": {
+ "description": "Trigger a workflow VIA a Schedule. The workflow must be published.",
+ "properties": {
+ "rruleExpression": {
+ "description": "Recurrence rule expression for scheduling.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "rruleExpression"
+ ],
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "scheduleTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Security-based trigger.",
+ "properties": {
+ "securityTrigger": {
+ "description": "Trigger a workflow VIA a Security Signal or Finding. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "securityTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Slack-based trigger.",
+ "properties": {
+ "slackTrigger": {
+ "description": "Trigger a workflow VIA Slack. The workflow must be published.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "slackTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Workflow-based trigger.",
+ "properties": {
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "workflowTrigger": {
+ "description": "Trigger a workflow VIA the Datadog UI. Only required if no other trigger exists.",
+ "type": "object"
+ }
+ },
+ "required": [
+ "workflowTrigger"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "tags": {
+ "description": "Tags of the workflow.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
},
- "modified_at": {
- "description": "Time of the last rule outcome modification.",
+ "updatedAt": {
+ "description": "When the workflow was last updated.",
"format": "date-time",
+ "readOnly": true,
"type": "string"
},
- "name": {
- "description": "Name of the rule.",
- "example": "Team Defined",
- "type": "string"
+ "webhookSecret": {
+ "description": "If a Webhook trigger is defined on this workflow, a webhookSecret is required and should be provided here.",
+ "type": "string",
+ "writeOnly": true
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The workflow identifier",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "The definition of `WorkflowDataRelationships` object.",
+ "properties": {
+ "creator": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
+ "properties": {
+ "data": {
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
+ "properties": {
+ "id": {
+ "description": "The user identifier",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "id"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object"
},
"owner": {
- "description": "Owner of the rule.",
- "type": "string"
- },
- "scorecard_name": {
- "description": "The scorecard name to which this rule must belong.",
- "example": "Deployments automated via Deployment Trains",
- "type": "string"
+ "description": "The definition of `WorkflowUserRelationship` object.",
+ "properties": {
+ "data": {
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
+ "properties": {
+ "id": {
+ "description": "The user identifier",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "id"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object"
}
},
+ "readOnly": true,
"type": "object"
},
"type": {
- "default": "rule",
- "description": "The JSON:API type for scorecard rules.",
+ "description": "The definition of `WorkflowDataType` object.",
"enum": [
- "rule"
+ "workflows"
],
- "example": "rule",
+ "example": "workflows",
"type": "string",
"x-enum-varnames": [
- "RULE"
+ "WORKFLOWS"
]
}
},
- "type": "object"
- }
- },
- "type": "object"
- },
- "UpdateRuleRequestData": {
- "description": "Data for the request to update a scorecard rule.",
- "properties": {
- "attributes": {
- "description": "Details of a rule.",
- "properties": {
- "category": {
- "deprecated": true,
- "description": "The scorecard name to which this rule must belong.",
- "type": "string"
- },
- "created_at": {
- "description": "Creation time of the rule outcome.",
- "format": "date-time",
- "type": "string"
- },
- "custom": {
- "description": "Defines if the rule is a custom rule.",
- "type": "boolean"
- },
- "description": {
- "description": "Explanation of the rule.",
- "type": "string"
- },
- "enabled": {
- "description": "If enabled, the rule is calculated as part of the score.",
- "example": true,
- "type": "boolean"
- },
- "modified_at": {
- "description": "Time of the last rule outcome modification.",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "Name of the rule.",
- "example": "Team Defined",
- "type": "string"
- },
- "owner": {
- "description": "Owner of the rule.",
- "type": "string"
- },
- "scorecard_name": {
- "description": "The scorecard name to which this rule must belong.",
- "example": "Deployments automated via Deployment Trains",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": {
- "default": "rule",
- "description": "The JSON:API type for scorecard rules.",
- "enum": [
- "rule"
+ "required": [
+ "type",
+ "attributes"
],
- "example": "rule",
- "type": "string",
- "x-enum-varnames": [
- "RULE"
- ]
+ "type": "object"
}
},
+ "required": [
+ "data"
+ ],
"type": "object"
},
- "UpdateRuleResponse": {
- "description": "The response from a rule update request.",
+ "UpdateWorkflowResponse": {
+ "description": "The response object after updating a workflow.",
"properties": {
"data": {
- "description": "The data for a rule update response.",
+ "description": "Data related to the workflow being updated.",
"properties": {
"attributes": {
- "description": "Details of a rule.",
+ "description": "The definition of `WorkflowDataUpdateAttributes` object.",
"properties": {
- "category": {
- "deprecated": true,
- "description": "The scorecard name to which this rule must belong.",
- "type": "string"
- },
- "created_at": {
- "description": "Creation time of the rule outcome.",
+ "createdAt": {
+ "description": "When the workflow was created.",
"format": "date-time",
+ "readOnly": true,
"type": "string"
},
- "custom": {
- "description": "Defines if the rule is a custom rule.",
- "type": "boolean"
- },
"description": {
- "description": "Explanation of the rule.",
+ "description": "Description of the workflow.",
"type": "string"
},
- "enabled": {
- "description": "If enabled, the rule is calculated as part of the score.",
- "example": true,
+ "name": {
+ "description": "Name of the workflow.",
+ "type": "string"
+ },
+ "published": {
+ "description": "Set the workflow to published or unpublished. Workflows in an unpublished state will only be executable via manual runs. Automatic triggers such as Schedule will not execute the workflow until it is published.",
"type": "boolean"
},
- "modified_at": {
- "description": "Time of the last rule outcome modification.",
- "format": "date-time",
- "type": "string"
+ "spec": {
+ "description": "The spec defines what the workflow does.",
+ "properties": {
+ "annotations": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "items": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "properties": {
+ "display": {
+ "description": "The definition of `AnnotationDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `AnnotationDisplayBounds` object.",
+ "properties": {
+ "height": {
+ "description": "The `bounds` `height`.",
+ "format": "double",
+ "type": "number"
+ },
+ "width": {
+ "description": "The `bounds` `width`.",
+ "format": "double",
+ "type": "number"
+ },
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The `Annotation` `id`.",
+ "example": "",
+ "type": "string"
+ },
+ "markdownTextAnnotation": {
+ "description": "The definition of `AnnotationMarkdownTextAnnotation` object.",
+ "properties": {
+ "text": {
+ "description": "The `markdownTextAnnotation` `text`.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "required": [
+ "id",
+ "display",
+ "markdownTextAnnotation"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "connectionEnvs": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "items": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "properties": {
+ "connectionGroups": {
+ "description": "The `ConnectionEnv` `connectionGroups`.",
+ "items": {
+ "description": "The definition of `ConnectionGroup` object.",
+ "properties": {
+ "connectionGroupId": {
+ "description": "The `ConnectionGroup` `connectionGroupId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `ConnectionGroup` `label`.",
+ "example": "",
+ "type": "string"
+ },
+ "tags": {
+ "description": "The `ConnectionGroup` `tags`.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "connectionGroupId",
+ "label",
+ "tags"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "connections": {
+ "description": "The `ConnectionEnv` `connections`.",
+ "items": {
+ "description": "The definition of `Connection` object.",
+ "properties": {
+ "connectionId": {
+ "description": "The `Connection` `connectionId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `Connection` `label`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "connectionId",
+ "label"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "env": {
+ "description": "The definition of `ConnectionEnvEnv` object.",
+ "enum": [
+ "default"
+ ],
+ "example": "default",
+ "type": "string",
+ "x-enum-varnames": [
+ "DEFAULT"
+ ]
+ }
+ },
+ "required": [
+ "env"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "handle": {
+ "description": "Unique identifier used to trigger workflows automatically in Datadog.",
+ "type": "string"
+ },
+ "inputSchema": {
+ "description": "A list of input parameters for the workflow. These can be used as dynamic runtime values in your workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `InputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `InputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `InputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `InputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `InputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `InputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `InputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "outputSchema": {
+ "description": "A list of output parameters for the workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `OutputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `OutputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `OutputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `OutputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `OutputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `OutputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `OutputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ },
+ "value": {
+ "description": "The `OutputSchemaParameters` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "steps": {
+ "description": "A `Step` is a sub-component of a workflow. Each `Step` performs an action.",
+ "items": {
+ "description": "A Step is a sub-component of a workflow. Each Step performs an action.",
+ "properties": {
+ "actionId": {
+ "description": "The unique identifier of an action.",
+ "example": "",
+ "type": "string"
+ },
+ "completionGate": {
+ "description": "Used to create conditions before running subsequent actions.",
+ "properties": {
+ "completionCondition": {
+ "description": "The definition of `CompletionCondition` object.",
+ "properties": {
+ "operand1": {
+ "description": "The `CompletionCondition` `operand1`."
+ },
+ "operand2": {
+ "description": "The `CompletionCondition` `operand2`."
+ },
+ "operator": {
+ "description": "The definition of `CompletionConditionOperator` object.",
+ "enum": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ],
+ "example": "OPERATOR_EQUAL",
+ "type": "string",
+ "x-enum-varnames": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ]
+ }
+ },
+ "required": [
+ "operand1",
+ "operator"
+ ],
+ "type": "object"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "completionCondition",
+ "retryStrategy"
+ ],
+ "type": "object"
+ },
+ "connectionLabel": {
+ "description": "The unique identifier of a connection defined in the spec.",
+ "type": "string"
+ },
+ "display": {
+ "description": "The definition of `StepDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `StepDisplayBounds` object.",
+ "properties": {
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "errorHandlers": {
+ "description": "The `Step` `errorHandlers`.",
+ "items": {
+ "description": "Used to handle errors in an action.",
+ "properties": {
+ "fallbackStepName": {
+ "description": "The `ErrorHandler` `fallbackStepName`.",
+ "example": "",
+ "type": "string"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "retryStrategy",
+ "fallbackStepName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the step.",
+ "example": "",
+ "type": "string"
+ },
+ "outboundEdges": {
+ "description": "A list of subsequent actions to run.",
+ "items": {
+ "description": "The definition of `OutboundEdge` object.",
+ "properties": {
+ "branchName": {
+ "description": "The `OutboundEdge` `branchName`.",
+ "example": "",
+ "type": "string"
+ },
+ "nextStepName": {
+ "description": "The `OutboundEdge` `nextStepName`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "nextStepName",
+ "branchName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "parameters": {
+ "description": "A list of inputs for an action.",
+ "items": {
+ "description": "The definition of `Parameter` object.",
+ "properties": {
+ "name": {
+ "description": "The `Parameter` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "value": {
+ "description": "The `Parameter` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "value"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "readinessGate": {
+ "description": "Used to merge multiple branches into a single branch.",
+ "properties": {
+ "thresholdType": {
+ "description": "The definition of `ReadinessGateThresholdType` object.",
+ "enum": [
+ "ANY",
+ "ALL"
+ ],
+ "example": "ANY",
+ "type": "string",
+ "x-enum-varnames": [
+ "ANY",
+ "ALL"
+ ]
+ }
+ },
+ "required": [
+ "thresholdType"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "name",
+ "actionId"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "triggers": {
+ "description": "The list of triggers that activate this workflow. At least one trigger is required, and each trigger type may appear at most once.",
+ "items": {
+ "description": "One of the triggers that can start the execution of a workflow.",
+ "oneOf": [
+ {
+ "description": "Schema for an API-based trigger.",
+ "properties": {
+ "apiTrigger": {
+ "description": "Trigger a workflow VIA an API. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "apiTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an App-based trigger.",
+ "properties": {
+ "appTrigger": {
+ "description": "Trigger a workflow VIA an App.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "appTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Case-based trigger.",
+ "properties": {
+ "caseTrigger": {
+ "description": "Trigger a workflow VIA a Case. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "caseTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Change Event-based trigger.",
+ "properties": {
+ "changeEventTrigger": {
+ "description": "Trigger a workflow VIA a Change Event.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "changeEventTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Dashboard-based trigger.",
+ "properties": {
+ "dashboardTrigger": {
+ "description": "Trigger a workflow VIA a Dashboard.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "dashboardTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a GitHub webhook-based trigger.",
+ "properties": {
+ "githubWebhookTrigger": {
+ "description": "Trigger a workflow VIA GitHub webhook. To trigger a workflow from GitHub, you must set a `webhookSecret`. In your GitHub Webhook Settings, set the Payload URL to \"base_url\"/api/v2/workflows/\"workflow_id\"/webhook?orgId=\"org_id\", select application/json for the content type, and be highly recommend enabling SSL verification for security. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "githubWebhookTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an Incident-based trigger.",
+ "properties": {
+ "incidentTrigger": {
+ "description": "Trigger a workflow VIA an Incident. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "incidentTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Monitor-based trigger.",
+ "properties": {
+ "monitorTrigger": {
+ "description": "Trigger a workflow VIA a Monitor. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "monitorTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Schedule-based trigger.",
+ "properties": {
+ "scheduleTrigger": {
+ "description": "Trigger a workflow VIA a Schedule. The workflow must be published.",
+ "properties": {
+ "rruleExpression": {
+ "description": "Recurrence rule expression for scheduling.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "rruleExpression"
+ ],
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "scheduleTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Security-based trigger.",
+ "properties": {
+ "securityTrigger": {
+ "description": "Trigger a workflow VIA a Security Signal or Finding. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "securityTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Slack-based trigger.",
+ "properties": {
+ "slackTrigger": {
+ "description": "Trigger a workflow VIA Slack. The workflow must be published.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "slackTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Workflow-based trigger.",
+ "properties": {
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "workflowTrigger": {
+ "description": "Trigger a workflow VIA the Datadog UI. Only required if no other trigger exists.",
+ "type": "object"
+ }
+ },
+ "required": [
+ "workflowTrigger"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
},
- "name": {
- "description": "Name of the rule.",
- "example": "Team Defined",
- "type": "string"
+ "tags": {
+ "description": "Tags of the workflow.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
},
- "owner": {
- "description": "Owner of the rule.",
+ "updatedAt": {
+ "description": "When the workflow was last updated.",
+ "format": "date-time",
+ "readOnly": true,
"type": "string"
},
- "scorecard_name": {
- "description": "The scorecard name to which this rule must belong.",
- "example": "Deployments automated via Deployment Trains",
- "type": "string"
+ "webhookSecret": {
+ "description": "If a Webhook trigger is defined on this workflow, a webhookSecret is required and should be provided here.",
+ "type": "string",
+ "writeOnly": true
}
},
"type": "object"
},
"id": {
- "description": "The unique ID for a scorecard rule.",
- "example": "q8MQxk8TCqrHnWkx",
+ "description": "The workflow identifier",
"type": "string"
},
"relationships": {
- "description": "Scorecard create rule response relationship.",
+ "description": "The definition of `WorkflowDataRelationships` object.",
"properties": {
- "scorecard": {
- "description": "Relationship data for a rule.",
+ "creator": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
"properties": {
"data": {
- "description": "Rule relationship data.",
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
"properties": {
"id": {
- "description": "The unique ID for a scorecard.",
- "example": "q8MQxk8TCqrHnWkp",
+ "description": "The user identifier",
+ "example": "",
"type": "string"
},
"type": {
- "default": "scorecard",
- "description": "The JSON:API type for scorecard.",
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
"enum": [
- "scorecard"
+ "users"
],
- "example": "scorecard",
+ "example": "users",
"type": "string",
"x-enum-varnames": [
- "SCORECARD"
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "id"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "owner": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
+ "properties": {
+ "data": {
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
+ "properties": {
+ "id": {
+ "description": "The user identifier",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
]
}
},
+ "required": [
+ "type",
+ "id"
+ ],
"type": "object"
}
},
"type": "object"
}
},
+ "readOnly": true,
"type": "object"
},
"type": {
- "default": "rule",
- "description": "The JSON:API type for scorecard rules.",
+ "description": "The definition of `WorkflowDataType` object.",
"enum": [
- "rule"
+ "workflows"
],
- "example": "rule",
+ "example": "workflows",
"type": "string",
"x-enum-varnames": [
- "RULE"
+ "WORKFLOWS"
]
}
},
- "type": "object"
- }
- },
- "type": "object"
- },
- "UpdateRuleResponseData": {
- "description": "The data for a rule update response.",
- "properties": {
- "attributes": {
- "description": "Details of a rule.",
- "properties": {
- "category": {
- "deprecated": true,
- "description": "The scorecard name to which this rule must belong.",
- "type": "string"
- },
- "created_at": {
- "description": "Creation time of the rule outcome.",
- "format": "date-time",
- "type": "string"
- },
- "custom": {
- "description": "Defines if the rule is a custom rule.",
- "type": "boolean"
- },
- "description": {
- "description": "Explanation of the rule.",
- "type": "string"
- },
- "enabled": {
- "description": "If enabled, the rule is calculated as part of the score.",
- "example": true,
- "type": "boolean"
- },
- "modified_at": {
- "description": "Time of the last rule outcome modification.",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "Name of the rule.",
- "example": "Team Defined",
- "type": "string"
- },
- "owner": {
- "description": "Owner of the rule.",
- "type": "string"
- },
- "scorecard_name": {
- "description": "The scorecard name to which this rule must belong.",
- "example": "Deployments automated via Deployment Trains",
- "type": "string"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "The unique ID for a scorecard rule.",
- "example": "q8MQxk8TCqrHnWkx",
- "type": "string"
- },
- "relationships": {
- "description": "Scorecard create rule response relationship.",
- "properties": {
- "scorecard": {
- "description": "Relationship data for a rule.",
- "properties": {
- "data": {
- "description": "Rule relationship data.",
- "properties": {
- "id": {
- "description": "The unique ID for a scorecard.",
- "example": "q8MQxk8TCqrHnWkp",
- "type": "string"
- },
- "type": {
- "default": "scorecard",
- "description": "The JSON:API type for scorecard.",
- "enum": [
- "scorecard"
- ],
- "example": "scorecard",
- "type": "string",
- "x-enum-varnames": [
- "SCORECARD"
- ]
- }
- },
- "type": "object"
- }
- },
- "type": "object"
- }
- },
- "type": "object"
- },
- "type": {
- "default": "rule",
- "description": "The JSON:API type for scorecard rules.",
- "enum": [
- "rule"
+ "required": [
+ "type",
+ "attributes"
],
- "example": "rule",
- "type": "string",
- "x-enum-varnames": [
- "RULE"
- ]
+ "type": "object"
}
},
"type": "object"
@@ -213068,1118 +227534,5439 @@
}
},
"required": [
- "file_name",
- "line_start",
- "line_end",
- "column_start",
- "column_end"
+ "file_name",
+ "line_start",
+ "line_end",
+ "column_start",
+ "column_end"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "block"
+ ],
+ "type": "object"
+ },
+ "description": {
+ "description": "Vulnerability description.",
+ "example": "LDAP Injection is a security vulnerability that occurs when untrusted user input is improperly handled and directly incorporated into LDAP queries without appropriate sanitization or validation. This vulnerability enables attackers to manipulate LDAP queries and potentially gain unauthorized access, modify data, or extract sensitive information from the directory server. By exploiting the LDAP injection vulnerability, attackers can execute malicious commands, bypass authentication mechanisms, and perform unauthorized actions within the directory service.",
+ "type": "string"
+ },
+ "ecosystem": {
+ "description": "The related vulnerability asset ecosystem.",
+ "enum": [
+ "PyPI",
+ "Maven",
+ "NuGet",
+ "Npm",
+ "RubyGems",
+ "Go",
+ "Packagist",
+ "Ddeb",
+ "Rpm",
+ "Apk",
+ "Windows"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "PYPI",
+ "MAVEN",
+ "NUGET",
+ "NPM",
+ "RUBY_GEMS",
+ "GO",
+ "PACKAGIST",
+ "D_DEB",
+ "RPM",
+ "APK",
+ "WINDOWS"
+ ]
+ },
+ "exposure_time": {
+ "description": "Vulnerability exposure time in seconds.",
+ "example": 5618604,
+ "format": "int64",
+ "type": "integer"
+ },
+ "first_detection": {
+ "description": "First detection of the vulnerability in [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339) format",
+ "example": "2024-09-19T21:23:08.000Z",
+ "type": "string"
+ },
+ "fix_available": {
+ "description": "Whether the vulnerability has a remediation or not.",
+ "example": false,
+ "type": "boolean"
+ },
+ "language": {
+ "description": "Vulnerability language.",
+ "example": "ubuntu",
+ "type": "string"
+ },
+ "last_detection": {
+ "description": "Last detection of the vulnerability in [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339) format",
+ "example": "2024-09-01T21:23:08.000Z",
+ "type": "string"
+ },
+ "library": {
+ "description": "Vulnerability library.",
+ "properties": {
+ "name": {
+ "description": "Vulnerability library name.",
+ "example": "linux-aws-5.15",
+ "type": "string"
+ },
+ "version": {
+ "description": "Vulnerability library version.",
+ "example": "5.15.0",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "type": "object"
+ },
+ "remediations": {
+ "description": "List of remediations.",
+ "items": {
+ "description": "Vulnerability remediation.",
+ "properties": {
+ "auto_solvable": {
+ "description": "Whether the vulnerability can be resolved when recompiling the package or not.",
+ "example": false,
+ "type": "boolean"
+ },
+ "avoided_advisories": {
+ "description": "Avoided advisories.",
+ "items": {
+ "description": "Advisory.",
+ "properties": {
+ "base_severity": {
+ "description": "Advisory base severity.",
+ "example": "Critical",
+ "type": "string"
+ },
+ "id": {
+ "description": "Advisory id.",
+ "example": "GHSA-4wrc-f8pq-fpqp",
+ "type": "string"
+ },
+ "severity": {
+ "description": "Advisory Datadog severity.",
+ "example": "Medium",
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "base_severity"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "fixed_advisories": {
+ "description": "Remediation fixed advisories.",
+ "items": {
+ "description": "Advisory.",
+ "properties": {
+ "base_severity": {
+ "description": "Advisory base severity.",
+ "example": "Critical",
+ "type": "string"
+ },
+ "id": {
+ "description": "Advisory id.",
+ "example": "GHSA-4wrc-f8pq-fpqp",
+ "type": "string"
+ },
+ "severity": {
+ "description": "Advisory Datadog severity.",
+ "example": "Medium",
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "base_severity"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "library_name": {
+ "description": "Library name remediating the vulnerability.",
+ "example": "stdlib",
+ "type": "string"
+ },
+ "library_version": {
+ "description": "Library version remediating the vulnerability.",
+ "example": "Upgrade to a version >= 1.20.0",
+ "type": "string"
+ },
+ "new_advisories": {
+ "description": "New advisories.",
+ "items": {
+ "description": "Advisory.",
+ "properties": {
+ "base_severity": {
+ "description": "Advisory base severity.",
+ "example": "Critical",
+ "type": "string"
+ },
+ "id": {
+ "description": "Advisory id.",
+ "example": "GHSA-4wrc-f8pq-fpqp",
+ "type": "string"
+ },
+ "severity": {
+ "description": "Advisory Datadog severity.",
+ "example": "Medium",
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "base_severity"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "remaining_advisories": {
+ "description": "Remaining advisories.",
+ "items": {
+ "description": "Advisory.",
+ "properties": {
+ "base_severity": {
+ "description": "Advisory base severity.",
+ "example": "Critical",
+ "type": "string"
+ },
+ "id": {
+ "description": "Advisory id.",
+ "example": "GHSA-4wrc-f8pq-fpqp",
+ "type": "string"
+ },
+ "severity": {
+ "description": "Advisory Datadog severity.",
+ "example": "Medium",
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "base_severity"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "type": {
+ "description": "Remediation type.",
+ "example": "text",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "library_name",
+ "library_version",
+ "auto_solvable",
+ "fixed_advisories",
+ "remaining_advisories",
+ "new_advisories",
+ "avoided_advisories"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "repo_digests": {
+ "description": "Vulnerability `repo_digest` list (when the vulnerability is related to `Image` asset).",
+ "items": {
+ "example": "sha256:0ae7da091191787229d321e3638e39c319a97d6e20f927d465b519d699215bf7",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "risks": {
+ "description": "Vulnerability risks.",
+ "properties": {
+ "epss": {
+ "description": "Vulnerability EPSS severity.",
+ "properties": {
+ "score": {
+ "description": "Vulnerability EPSS severity score.",
+ "example": 0.2,
+ "format": "double",
+ "type": "number"
+ },
+ "severity": {
+ "description": "The vulnerability severity.",
+ "enum": [
+ "Unknown",
+ "None",
+ "Low",
+ "Medium",
+ "High",
+ "Critical"
+ ],
+ "example": "Medium",
+ "type": "string",
+ "x-enum-varnames": [
+ "UNKNOWN",
+ "NONE",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ }
+ },
+ "required": [
+ "score",
+ "severity"
+ ],
+ "type": "object"
+ },
+ "exploit_available": {
+ "description": "Vulnerability public exploit availability.",
+ "example": false,
+ "type": "boolean"
+ },
+ "exploit_sources": {
+ "description": "Vulnerability exploit sources.",
+ "example": [
+ "NIST"
+ ],
+ "items": {
+ "example": "NIST",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "exploitation_probability": {
+ "description": "Vulnerability exploitation probability.",
+ "example": false,
+ "type": "boolean"
+ },
+ "poc_exploit_available": {
+ "description": "Vulnerability POC exploit availability.",
+ "example": false,
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "exploitation_probability",
+ "poc_exploit_available",
+ "exploit_available",
+ "exploit_sources"
+ ],
+ "type": "object"
+ },
+ "status": {
+ "description": "The vulnerability status.",
+ "enum": [
+ "Open",
+ "Muted",
+ "Remediated",
+ "InProgress",
+ "AutoClosed"
+ ],
+ "example": "Open",
+ "type": "string",
+ "x-enum-varnames": [
+ "OPEN",
+ "MUTED",
+ "REMEDIATED",
+ "INPROGRESS",
+ "AUTOCLOSED"
+ ]
+ },
+ "title": {
+ "description": "Vulnerability title.",
+ "example": "LDAP Injection",
+ "type": "string"
+ },
+ "tool": {
+ "description": "The vulnerability tool.",
+ "enum": [
+ "IAST",
+ "SCA",
+ "Infra"
+ ],
+ "example": "SCA",
+ "type": "string",
+ "x-enum-varnames": [
+ "IAST",
+ "SCA",
+ "INFRA"
+ ]
+ },
+ "type": {
+ "description": "The vulnerability type.",
+ "enum": [
+ "AdminConsoleActive",
+ "CodeInjection",
+ "CommandInjection",
+ "ComponentWithKnownVulnerability",
+ "DangerousWorkflows",
+ "DefaultAppDeployed",
+ "DefaultHtmlEscapeInvalid",
+ "DirectoryListingLeak",
+ "EmailHtmlInjection",
+ "EndOfLife",
+ "HardcodedPassword",
+ "HardcodedSecret",
+ "HeaderInjection",
+ "HstsHeaderMissing",
+ "InsecureAuthProtocol",
+ "InsecureCookie",
+ "InsecureJspLayout",
+ "LdapInjection",
+ "MaliciousPackage",
+ "MandatoryRemediation",
+ "NoHttpOnlyCookie",
+ "NoSameSiteCookie",
+ "NoSqlMongoDbInjection",
+ "PathTraversal",
+ "ReflectionInjection",
+ "RiskyLicense",
+ "SessionRewriting",
+ "SessionTimeout",
+ "SqlInjection",
+ "Ssrf",
+ "StackTraceLeak",
+ "TrustBoundaryViolation",
+ "Unmaintained",
+ "UntrustedDeserialization",
+ "UnvalidatedRedirect",
+ "VerbTampering",
+ "WeakCipher",
+ "WeakHash",
+ "WeakRandomness",
+ "XContentTypeHeaderMissing",
+ "XPathInjection",
+ "Xss"
+ ],
+ "example": "WeakCipher",
+ "type": "string",
+ "x-enum-varnames": [
+ "ADMIN_CONSOLE_ACTIVE",
+ "CODE_INJECTION",
+ "COMMAND_INJECTION",
+ "COMPONENT_WITH_KNOWN_VULNERABILITY",
+ "DANGEROUS_WORKFLOWS",
+ "DEFAULT_APP_DEPLOYED",
+ "DEFAULT_HTML_ESCAPE_INVALID",
+ "DIRECTORY_LISTING_LEAK",
+ "EMAIL_HTML_INJECTION",
+ "END_OF_LIFE",
+ "HARDCODED_PASSWORD",
+ "HARDCODED_SECRET",
+ "HEADER_INJECTION",
+ "HSTS_HEADER_MISSING",
+ "INSECURE_AUTH_PROTOCOL",
+ "INSECURE_COOKIE",
+ "INSECURE_JSP_LAYOUT",
+ "LDAP_INJECTION",
+ "MALICIOUS_PACKAGE",
+ "MANDATORY_REMEDIATION",
+ "NO_HTTP_ONLY_COOKIE",
+ "NO_SAME_SITE_COOKIE",
+ "NO_SQL_MONGO_DB_INJECTION",
+ "PATH_TRAVERSAL",
+ "REFLECTION_INJECTION",
+ "RISKY_LICENSE",
+ "SESSION_REWRITING",
+ "SESSION_TIMEOUT",
+ "SQL_INJECTION",
+ "SSRF",
+ "STACK_TRACE_LEAK",
+ "TRUST_BOUNDARY_VIOLATION",
+ "UNMAINTAINED",
+ "UNTRUSTED_DESERIALIZATION",
+ "UNVALIDATED_REDIRECT",
+ "VERB_TAMPERING",
+ "WEAK_CIPHER",
+ "WEAK_HASH",
+ "WEAK_RANDOMNESS",
+ "X_CONTENT_TYPE_HEADER_MISSING",
+ "X_PATH_INJECTION",
+ "XSS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "cvss",
+ "status",
+ "tool",
+ "title",
+ "description",
+ "cve_list",
+ "risks",
+ "language",
+ "first_detection",
+ "last_detection",
+ "exposure_time",
+ "remediations",
+ "fix_available"
+ ],
+ "type": "object"
+ },
+ "VulnerabilityCvss": {
+ "description": "Vulnerability severities.",
+ "properties": {
+ "base": {
+ "description": "Vulnerability severity.",
+ "properties": {
+ "score": {
+ "description": "Vulnerability severity score.",
+ "example": 4.5,
+ "format": "double",
+ "type": "number"
+ },
+ "severity": {
+ "description": "The vulnerability severity.",
+ "enum": [
+ "Unknown",
+ "None",
+ "Low",
+ "Medium",
+ "High",
+ "Critical"
+ ],
+ "example": "Medium",
+ "type": "string",
+ "x-enum-varnames": [
+ "UNKNOWN",
+ "NONE",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ },
+ "vector": {
+ "description": "Vulnerability CVSS vector.",
+ "example": "CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H",
+ "type": "string"
+ }
+ },
+ "required": [
+ "score",
+ "severity",
+ "vector"
+ ],
+ "type": "object"
+ },
+ "datadog": {
+ "description": "Vulnerability severity.",
+ "properties": {
+ "score": {
+ "description": "Vulnerability severity score.",
+ "example": 4.5,
+ "format": "double",
+ "type": "number"
+ },
+ "severity": {
+ "description": "The vulnerability severity.",
+ "enum": [
+ "Unknown",
+ "None",
+ "Low",
+ "Medium",
+ "High",
+ "Critical"
+ ],
+ "example": "Medium",
+ "type": "string",
+ "x-enum-varnames": [
+ "UNKNOWN",
+ "NONE",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ },
+ "vector": {
+ "description": "Vulnerability CVSS vector.",
+ "example": "CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H",
+ "type": "string"
+ }
+ },
+ "required": [
+ "score",
+ "severity",
+ "vector"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "base",
+ "datadog"
+ ],
+ "type": "object"
+ },
+ "VulnerabilityDependencyLocations": {
+ "description": "Static library vulnerability location.",
+ "properties": {
+ "block": {
+ "description": "Static library vulnerability location.",
+ "properties": {
+ "column_end": {
+ "description": "Location column end.",
+ "example": 140,
+ "format": "int64",
+ "type": "integer"
+ },
+ "column_start": {
+ "description": "Location column start.",
+ "example": 5,
+ "format": "int64",
+ "type": "integer"
+ },
+ "file_name": {
+ "description": "Location file name.",
+ "example": "src/go.mod",
+ "type": "string"
+ },
+ "line_end": {
+ "description": "Location line end.",
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ },
+ "line_start": {
+ "description": "Location line start.",
+ "example": 1,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ "required": [
+ "file_name",
+ "line_start",
+ "line_end",
+ "column_start",
+ "column_end"
+ ],
+ "type": "object"
+ },
+ "name": {
+ "description": "Static library vulnerability location.",
+ "properties": {
+ "column_end": {
+ "description": "Location column end.",
+ "example": 140,
+ "format": "int64",
+ "type": "integer"
+ },
+ "column_start": {
+ "description": "Location column start.",
+ "example": 5,
+ "format": "int64",
+ "type": "integer"
+ },
+ "file_name": {
+ "description": "Location file name.",
+ "example": "src/go.mod",
+ "type": "string"
+ },
+ "line_end": {
+ "description": "Location line end.",
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ },
+ "line_start": {
+ "description": "Location line start.",
+ "example": 1,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ "required": [
+ "file_name",
+ "line_start",
+ "line_end",
+ "column_start",
+ "column_end"
+ ],
+ "type": "object"
+ },
+ "version": {
+ "description": "Static library vulnerability location.",
+ "properties": {
+ "column_end": {
+ "description": "Location column end.",
+ "example": 140,
+ "format": "int64",
+ "type": "integer"
+ },
+ "column_start": {
+ "description": "Location column start.",
+ "example": 5,
+ "format": "int64",
+ "type": "integer"
+ },
+ "file_name": {
+ "description": "Location file name.",
+ "example": "src/go.mod",
+ "type": "string"
+ },
+ "line_end": {
+ "description": "Location line end.",
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ },
+ "line_start": {
+ "description": "Location line start.",
+ "example": 1,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ "required": [
+ "file_name",
+ "line_start",
+ "line_end",
+ "column_start",
+ "column_end"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "block"
+ ],
+ "type": "object"
+ },
+ "VulnerabilityEcosystem": {
+ "description": "The related vulnerability asset ecosystem.",
+ "enum": [
+ "PyPI",
+ "Maven",
+ "NuGet",
+ "Npm",
+ "RubyGems",
+ "Go",
+ "Packagist",
+ "Ddeb",
+ "Rpm",
+ "Apk",
+ "Windows"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "PYPI",
+ "MAVEN",
+ "NUGET",
+ "NPM",
+ "RUBY_GEMS",
+ "GO",
+ "PACKAGIST",
+ "D_DEB",
+ "RPM",
+ "APK",
+ "WINDOWS"
+ ]
+ },
+ "VulnerabilityRelationships": {
+ "description": "Related entities object.",
+ "properties": {
+ "affects": {
+ "description": "Relationship type.",
+ "properties": {
+ "data": {
+ "description": "Asset affected by this vulnerability.",
+ "properties": {
+ "id": {
+ "description": "The unique ID for this related asset.",
+ "example": "Repository|github.com/DataDog/datadog-agent.git",
+ "type": "string"
+ },
+ "type": {
+ "description": "The JSON:API type.",
+ "enum": [
+ "assets"
+ ],
+ "example": "assets",
+ "type": "string",
+ "x-enum-varnames": [
+ "ASSETS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
],
"type": "object"
}
},
"required": [
- "block"
+ "data"
],
"type": "object"
- },
- "description": {
- "description": "Vulnerability description.",
- "example": "LDAP Injection is a security vulnerability that occurs when untrusted user input is improperly handled and directly incorporated into LDAP queries without appropriate sanitization or validation. This vulnerability enables attackers to manipulate LDAP queries and potentially gain unauthorized access, modify data, or extract sensitive information from the directory server. By exploiting the LDAP injection vulnerability, attackers can execute malicious commands, bypass authentication mechanisms, and perform unauthorized actions within the directory service.",
+ }
+ },
+ "required": [
+ "affects"
+ ],
+ "type": "object"
+ },
+ "VulnerabilityRelationshipsAffects": {
+ "description": "Relationship type.",
+ "properties": {
+ "data": {
+ "description": "Asset affected by this vulnerability.",
+ "properties": {
+ "id": {
+ "description": "The unique ID for this related asset.",
+ "example": "Repository|github.com/DataDog/datadog-agent.git",
+ "type": "string"
+ },
+ "type": {
+ "description": "The JSON:API type.",
+ "enum": [
+ "assets"
+ ],
+ "example": "assets",
+ "type": "string",
+ "x-enum-varnames": [
+ "ASSETS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "VulnerabilityRelationshipsAffectsData": {
+ "description": "Asset affected by this vulnerability.",
+ "properties": {
+ "id": {
+ "description": "The unique ID for this related asset.",
+ "example": "Repository|github.com/DataDog/datadog-agent.git",
"type": "string"
},
- "ecosystem": {
- "description": "The related vulnerability asset ecosystem.",
+ "type": {
+ "description": "The JSON:API type.",
"enum": [
- "PyPI",
- "Maven",
- "NuGet",
- "Npm",
- "RubyGems",
- "Go",
- "Packagist",
- "Ddeb",
- "Rpm",
- "Apk",
- "Windows"
+ "assets"
],
+ "example": "assets",
"type": "string",
"x-enum-varnames": [
- "PYPI",
- "MAVEN",
- "NUGET",
- "NPM",
- "RUBY_GEMS",
- "GO",
- "PACKAGIST",
- "D_DEB",
- "RPM",
- "APK",
- "WINDOWS"
+ "ASSETS"
]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ },
+ "VulnerabilityRisks": {
+ "description": "Vulnerability risks.",
+ "properties": {
+ "epss": {
+ "description": "Vulnerability EPSS severity.",
+ "properties": {
+ "score": {
+ "description": "Vulnerability EPSS severity score.",
+ "example": 0.2,
+ "format": "double",
+ "type": "number"
+ },
+ "severity": {
+ "description": "The vulnerability severity.",
+ "enum": [
+ "Unknown",
+ "None",
+ "Low",
+ "Medium",
+ "High",
+ "Critical"
+ ],
+ "example": "Medium",
+ "type": "string",
+ "x-enum-varnames": [
+ "UNKNOWN",
+ "NONE",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ }
+ },
+ "required": [
+ "score",
+ "severity"
+ ],
+ "type": "object"
},
- "exposure_time": {
- "description": "Vulnerability exposure time in seconds.",
- "example": 5618604,
- "format": "int64",
- "type": "integer"
- },
- "first_detection": {
- "description": "First detection of the vulnerability in [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339) format",
- "example": "2024-09-19T21:23:08.000Z",
- "type": "string"
- },
- "fix_available": {
- "description": "Whether the vulnerability has a remediation or not.",
+ "exploit_available": {
+ "description": "Vulnerability public exploit availability.",
"example": false,
"type": "boolean"
},
- "language": {
- "description": "Vulnerability language.",
- "example": "ubuntu",
- "type": "string"
+ "exploit_sources": {
+ "description": "Vulnerability exploit sources.",
+ "example": [
+ "NIST"
+ ],
+ "items": {
+ "example": "NIST",
+ "type": "string"
+ },
+ "type": "array"
},
- "last_detection": {
- "description": "Last detection of the vulnerability in [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339) format",
- "example": "2024-09-01T21:23:08.000Z",
- "type": "string"
+ "exploitation_probability": {
+ "description": "Vulnerability exploitation probability.",
+ "example": false,
+ "type": "boolean"
},
- "library": {
- "description": "Vulnerability library.",
+ "poc_exploit_available": {
+ "description": "Vulnerability POC exploit availability.",
+ "example": false,
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "exploitation_probability",
+ "poc_exploit_available",
+ "exploit_available",
+ "exploit_sources"
+ ],
+ "type": "object"
+ },
+ "VulnerabilitySeverity": {
+ "description": "The vulnerability severity.",
+ "enum": [
+ "Unknown",
+ "None",
+ "Low",
+ "Medium",
+ "High",
+ "Critical"
+ ],
+ "example": "Medium",
+ "type": "string",
+ "x-enum-varnames": [
+ "UNKNOWN",
+ "NONE",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ },
+ "VulnerabilityStatus": {
+ "description": "The vulnerability status.",
+ "enum": [
+ "Open",
+ "Muted",
+ "Remediated",
+ "InProgress",
+ "AutoClosed"
+ ],
+ "example": "Open",
+ "type": "string",
+ "x-enum-varnames": [
+ "OPEN",
+ "MUTED",
+ "REMEDIATED",
+ "INPROGRESS",
+ "AUTOCLOSED"
+ ]
+ },
+ "VulnerabilityTool": {
+ "description": "The vulnerability tool.",
+ "enum": [
+ "IAST",
+ "SCA",
+ "Infra"
+ ],
+ "example": "SCA",
+ "type": "string",
+ "x-enum-varnames": [
+ "IAST",
+ "SCA",
+ "INFRA"
+ ]
+ },
+ "VulnerabilityType": {
+ "description": "The vulnerability type.",
+ "enum": [
+ "AdminConsoleActive",
+ "CodeInjection",
+ "CommandInjection",
+ "ComponentWithKnownVulnerability",
+ "DangerousWorkflows",
+ "DefaultAppDeployed",
+ "DefaultHtmlEscapeInvalid",
+ "DirectoryListingLeak",
+ "EmailHtmlInjection",
+ "EndOfLife",
+ "HardcodedPassword",
+ "HardcodedSecret",
+ "HeaderInjection",
+ "HstsHeaderMissing",
+ "InsecureAuthProtocol",
+ "InsecureCookie",
+ "InsecureJspLayout",
+ "LdapInjection",
+ "MaliciousPackage",
+ "MandatoryRemediation",
+ "NoHttpOnlyCookie",
+ "NoSameSiteCookie",
+ "NoSqlMongoDbInjection",
+ "PathTraversal",
+ "ReflectionInjection",
+ "RiskyLicense",
+ "SessionRewriting",
+ "SessionTimeout",
+ "SqlInjection",
+ "Ssrf",
+ "StackTraceLeak",
+ "TrustBoundaryViolation",
+ "Unmaintained",
+ "UntrustedDeserialization",
+ "UnvalidatedRedirect",
+ "VerbTampering",
+ "WeakCipher",
+ "WeakHash",
+ "WeakRandomness",
+ "XContentTypeHeaderMissing",
+ "XPathInjection",
+ "Xss"
+ ],
+ "example": "WeakCipher",
+ "type": "string",
+ "x-enum-varnames": [
+ "ADMIN_CONSOLE_ACTIVE",
+ "CODE_INJECTION",
+ "COMMAND_INJECTION",
+ "COMPONENT_WITH_KNOWN_VULNERABILITY",
+ "DANGEROUS_WORKFLOWS",
+ "DEFAULT_APP_DEPLOYED",
+ "DEFAULT_HTML_ESCAPE_INVALID",
+ "DIRECTORY_LISTING_LEAK",
+ "EMAIL_HTML_INJECTION",
+ "END_OF_LIFE",
+ "HARDCODED_PASSWORD",
+ "HARDCODED_SECRET",
+ "HEADER_INJECTION",
+ "HSTS_HEADER_MISSING",
+ "INSECURE_AUTH_PROTOCOL",
+ "INSECURE_COOKIE",
+ "INSECURE_JSP_LAYOUT",
+ "LDAP_INJECTION",
+ "MALICIOUS_PACKAGE",
+ "MANDATORY_REMEDIATION",
+ "NO_HTTP_ONLY_COOKIE",
+ "NO_SAME_SITE_COOKIE",
+ "NO_SQL_MONGO_DB_INJECTION",
+ "PATH_TRAVERSAL",
+ "REFLECTION_INJECTION",
+ "RISKY_LICENSE",
+ "SESSION_REWRITING",
+ "SESSION_TIMEOUT",
+ "SQL_INJECTION",
+ "SSRF",
+ "STACK_TRACE_LEAK",
+ "TRUST_BOUNDARY_VIOLATION",
+ "UNMAINTAINED",
+ "UNTRUSTED_DESERIALIZATION",
+ "UNVALIDATED_REDIRECT",
+ "VERB_TAMPERING",
+ "WEAK_CIPHER",
+ "WEAK_HASH",
+ "WEAK_RANDOMNESS",
+ "X_CONTENT_TYPE_HEADER_MISSING",
+ "X_PATH_INJECTION",
+ "XSS"
+ ]
+ },
+ "WidgetLiveSpan": {
+ "description": "The available timeframes depend on the widget you are using.",
+ "enum": [
+ "1m",
+ "5m",
+ "10m",
+ "15m",
+ "30m",
+ "1h",
+ "4h",
+ "1d",
+ "2d",
+ "1w",
+ "1mo",
+ "3mo",
+ "6mo",
+ "1y",
+ "alert"
+ ],
+ "example": "5m",
+ "type": "string",
+ "x-enum-varnames": [
+ "PAST_ONE_MINUTE",
+ "PAST_FIVE_MINUTES",
+ "PAST_TEN_MINUTES",
+ "PAST_FIFTEEN_MINUTES",
+ "PAST_THIRTY_MINUTES",
+ "PAST_ONE_HOUR",
+ "PAST_FOUR_HOURS",
+ "PAST_ONE_DAY",
+ "PAST_TWO_DAYS",
+ "PAST_ONE_WEEK",
+ "PAST_ONE_MONTH",
+ "PAST_THREE_MONTHS",
+ "PAST_SIX_MONTHS",
+ "PAST_ONE_YEAR",
+ "ALERT"
+ ]
+ },
+ "WorkflowData": {
+ "description": "Data related to the workflow.",
+ "properties": {
+ "attributes": {
+ "description": "The definition of `WorkflowDataAttributes` object.",
"properties": {
+ "createdAt": {
+ "description": "When the workflow was created.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of the workflow.",
+ "type": "string"
+ },
"name": {
- "description": "Vulnerability library name.",
- "example": "linux-aws-5.15",
+ "description": "Name of the workflow.",
+ "example": "",
"type": "string"
},
- "version": {
- "description": "Vulnerability library version.",
- "example": "5.15.0",
+ "published": {
+ "description": "Set the workflow to published or unpublished. Workflows in an unpublished state will only be executable via manual runs. Automatic triggers such as Schedule will not execute the workflow until it is published.",
+ "type": "boolean"
+ },
+ "spec": {
+ "description": "The spec defines what the workflow does.",
+ "properties": {
+ "annotations": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "items": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "properties": {
+ "display": {
+ "description": "The definition of `AnnotationDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `AnnotationDisplayBounds` object.",
+ "properties": {
+ "height": {
+ "description": "The `bounds` `height`.",
+ "format": "double",
+ "type": "number"
+ },
+ "width": {
+ "description": "The `bounds` `width`.",
+ "format": "double",
+ "type": "number"
+ },
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The `Annotation` `id`.",
+ "example": "",
+ "type": "string"
+ },
+ "markdownTextAnnotation": {
+ "description": "The definition of `AnnotationMarkdownTextAnnotation` object.",
+ "properties": {
+ "text": {
+ "description": "The `markdownTextAnnotation` `text`.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "required": [
+ "id",
+ "display",
+ "markdownTextAnnotation"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "connectionEnvs": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "items": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "properties": {
+ "connectionGroups": {
+ "description": "The `ConnectionEnv` `connectionGroups`.",
+ "items": {
+ "description": "The definition of `ConnectionGroup` object.",
+ "properties": {
+ "connectionGroupId": {
+ "description": "The `ConnectionGroup` `connectionGroupId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `ConnectionGroup` `label`.",
+ "example": "",
+ "type": "string"
+ },
+ "tags": {
+ "description": "The `ConnectionGroup` `tags`.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "connectionGroupId",
+ "label",
+ "tags"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "connections": {
+ "description": "The `ConnectionEnv` `connections`.",
+ "items": {
+ "description": "The definition of `Connection` object.",
+ "properties": {
+ "connectionId": {
+ "description": "The `Connection` `connectionId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `Connection` `label`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "connectionId",
+ "label"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "env": {
+ "description": "The definition of `ConnectionEnvEnv` object.",
+ "enum": [
+ "default"
+ ],
+ "example": "default",
+ "type": "string",
+ "x-enum-varnames": [
+ "DEFAULT"
+ ]
+ }
+ },
+ "required": [
+ "env"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "handle": {
+ "description": "Unique identifier used to trigger workflows automatically in Datadog.",
+ "type": "string"
+ },
+ "inputSchema": {
+ "description": "A list of input parameters for the workflow. These can be used as dynamic runtime values in your workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `InputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `InputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `InputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `InputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `InputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `InputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `InputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "outputSchema": {
+ "description": "A list of output parameters for the workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `OutputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `OutputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `OutputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `OutputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `OutputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `OutputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `OutputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ },
+ "value": {
+ "description": "The `OutputSchemaParameters` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "steps": {
+ "description": "A `Step` is a sub-component of a workflow. Each `Step` performs an action.",
+ "items": {
+ "description": "A Step is a sub-component of a workflow. Each Step performs an action.",
+ "properties": {
+ "actionId": {
+ "description": "The unique identifier of an action.",
+ "example": "",
+ "type": "string"
+ },
+ "completionGate": {
+ "description": "Used to create conditions before running subsequent actions.",
+ "properties": {
+ "completionCondition": {
+ "description": "The definition of `CompletionCondition` object.",
+ "properties": {
+ "operand1": {
+ "description": "The `CompletionCondition` `operand1`."
+ },
+ "operand2": {
+ "description": "The `CompletionCondition` `operand2`."
+ },
+ "operator": {
+ "description": "The definition of `CompletionConditionOperator` object.",
+ "enum": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ],
+ "example": "OPERATOR_EQUAL",
+ "type": "string",
+ "x-enum-varnames": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ]
+ }
+ },
+ "required": [
+ "operand1",
+ "operator"
+ ],
+ "type": "object"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "completionCondition",
+ "retryStrategy"
+ ],
+ "type": "object"
+ },
+ "connectionLabel": {
+ "description": "The unique identifier of a connection defined in the spec.",
+ "type": "string"
+ },
+ "display": {
+ "description": "The definition of `StepDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `StepDisplayBounds` object.",
+ "properties": {
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "errorHandlers": {
+ "description": "The `Step` `errorHandlers`.",
+ "items": {
+ "description": "Used to handle errors in an action.",
+ "properties": {
+ "fallbackStepName": {
+ "description": "The `ErrorHandler` `fallbackStepName`.",
+ "example": "",
+ "type": "string"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "retryStrategy",
+ "fallbackStepName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the step.",
+ "example": "",
+ "type": "string"
+ },
+ "outboundEdges": {
+ "description": "A list of subsequent actions to run.",
+ "items": {
+ "description": "The definition of `OutboundEdge` object.",
+ "properties": {
+ "branchName": {
+ "description": "The `OutboundEdge` `branchName`.",
+ "example": "",
+ "type": "string"
+ },
+ "nextStepName": {
+ "description": "The `OutboundEdge` `nextStepName`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "nextStepName",
+ "branchName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "parameters": {
+ "description": "A list of inputs for an action.",
+ "items": {
+ "description": "The definition of `Parameter` object.",
+ "properties": {
+ "name": {
+ "description": "The `Parameter` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "value": {
+ "description": "The `Parameter` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "value"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "readinessGate": {
+ "description": "Used to merge multiple branches into a single branch.",
+ "properties": {
+ "thresholdType": {
+ "description": "The definition of `ReadinessGateThresholdType` object.",
+ "enum": [
+ "ANY",
+ "ALL"
+ ],
+ "example": "ANY",
+ "type": "string",
+ "x-enum-varnames": [
+ "ANY",
+ "ALL"
+ ]
+ }
+ },
+ "required": [
+ "thresholdType"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "name",
+ "actionId"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "triggers": {
+ "description": "The list of triggers that activate this workflow. At least one trigger is required, and each trigger type may appear at most once.",
+ "items": {
+ "description": "One of the triggers that can start the execution of a workflow.",
+ "oneOf": [
+ {
+ "description": "Schema for an API-based trigger.",
+ "properties": {
+ "apiTrigger": {
+ "description": "Trigger a workflow VIA an API. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "apiTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an App-based trigger.",
+ "properties": {
+ "appTrigger": {
+ "description": "Trigger a workflow VIA an App.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "appTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Case-based trigger.",
+ "properties": {
+ "caseTrigger": {
+ "description": "Trigger a workflow VIA a Case. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "caseTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Change Event-based trigger.",
+ "properties": {
+ "changeEventTrigger": {
+ "description": "Trigger a workflow VIA a Change Event.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "changeEventTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Dashboard-based trigger.",
+ "properties": {
+ "dashboardTrigger": {
+ "description": "Trigger a workflow VIA a Dashboard.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "dashboardTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a GitHub webhook-based trigger.",
+ "properties": {
+ "githubWebhookTrigger": {
+ "description": "Trigger a workflow VIA GitHub webhook. To trigger a workflow from GitHub, you must set a `webhookSecret`. In your GitHub Webhook Settings, set the Payload URL to \"base_url\"/api/v2/workflows/\"workflow_id\"/webhook?orgId=\"org_id\", select application/json for the content type, and be highly recommend enabling SSL verification for security. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "githubWebhookTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an Incident-based trigger.",
+ "properties": {
+ "incidentTrigger": {
+ "description": "Trigger a workflow VIA an Incident. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "incidentTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Monitor-based trigger.",
+ "properties": {
+ "monitorTrigger": {
+ "description": "Trigger a workflow VIA a Monitor. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "monitorTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Schedule-based trigger.",
+ "properties": {
+ "scheduleTrigger": {
+ "description": "Trigger a workflow VIA a Schedule. The workflow must be published.",
+ "properties": {
+ "rruleExpression": {
+ "description": "Recurrence rule expression for scheduling.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "rruleExpression"
+ ],
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "scheduleTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Security-based trigger.",
+ "properties": {
+ "securityTrigger": {
+ "description": "Trigger a workflow VIA a Security Signal or Finding. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "securityTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Slack-based trigger.",
+ "properties": {
+ "slackTrigger": {
+ "description": "Trigger a workflow VIA Slack. The workflow must be published.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "slackTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Workflow-based trigger.",
+ "properties": {
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "workflowTrigger": {
+ "description": "Trigger a workflow VIA the Datadog UI. Only required if no other trigger exists.",
+ "type": "object"
+ }
+ },
+ "required": [
+ "workflowTrigger"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "tags": {
+ "description": "Tags of the workflow.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "updatedAt": {
+ "description": "When the workflow was last updated.",
+ "format": "date-time",
+ "readOnly": true,
"type": "string"
+ },
+ "webhookSecret": {
+ "description": "If a Webhook trigger is defined on this workflow, a webhookSecret is required and should be provided here.",
+ "type": "string",
+ "writeOnly": true
}
},
"required": [
- "name"
+ "name",
+ "spec"
],
"type": "object"
},
- "remediations": {
- "description": "List of remediations.",
- "items": {
- "description": "Vulnerability remediation.",
- "properties": {
- "auto_solvable": {
- "description": "Whether the vulnerability can be resolved when recompiling the package or not.",
- "example": false,
- "type": "boolean"
- },
- "avoided_advisories": {
- "description": "Avoided advisories.",
- "items": {
- "description": "Advisory.",
+ "id": {
+ "description": "The workflow identifier",
+ "readOnly": true,
+ "type": "string"
+ },
+ "relationships": {
+ "description": "The definition of `WorkflowDataRelationships` object.",
+ "properties": {
+ "creator": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
+ "properties": {
+ "data": {
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
"properties": {
- "base_severity": {
- "description": "Advisory base severity.",
- "example": "Critical",
- "type": "string"
- },
"id": {
- "description": "Advisory id.",
- "example": "GHSA-4wrc-f8pq-fpqp",
+ "description": "The user identifier",
+ "example": "",
"type": "string"
},
- "severity": {
- "description": "Advisory Datadog severity.",
- "example": "Medium",
- "type": "string"
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
}
},
"required": [
- "id",
- "base_severity"
+ "type",
+ "id"
],
"type": "object"
- },
- "type": "array"
+ }
},
- "fixed_advisories": {
- "description": "Remediation fixed advisories.",
- "items": {
- "description": "Advisory.",
+ "type": "object"
+ },
+ "owner": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
+ "properties": {
+ "data": {
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
"properties": {
- "base_severity": {
- "description": "Advisory base severity.",
- "example": "Critical",
- "type": "string"
- },
"id": {
- "description": "Advisory id.",
- "example": "GHSA-4wrc-f8pq-fpqp",
+ "description": "The user identifier",
+ "example": "",
"type": "string"
},
- "severity": {
- "description": "Advisory Datadog severity.",
- "example": "Medium",
- "type": "string"
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
}
},
"required": [
- "id",
- "base_severity"
+ "type",
+ "id"
],
"type": "object"
- },
- "type": "array"
- },
- "library_name": {
- "description": "Library name remediating the vulnerability.",
- "example": "stdlib",
- "type": "string"
- },
- "library_version": {
- "description": "Library version remediating the vulnerability.",
- "example": "Upgrade to a version >= 1.20.0",
- "type": "string"
+ }
},
- "new_advisories": {
- "description": "New advisories.",
- "items": {
- "description": "Advisory.",
- "properties": {
- "base_severity": {
- "description": "Advisory base severity.",
- "example": "Critical",
- "type": "string"
- },
- "id": {
- "description": "Advisory id.",
- "example": "GHSA-4wrc-f8pq-fpqp",
- "type": "string"
+ "type": "object"
+ }
+ },
+ "readOnly": true,
+ "type": "object"
+ },
+ "type": {
+ "description": "The definition of `WorkflowDataType` object.",
+ "enum": [
+ "workflows"
+ ],
+ "example": "workflows",
+ "type": "string",
+ "x-enum-varnames": [
+ "WORKFLOWS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "attributes"
+ ],
+ "type": "object"
+ },
+ "WorkflowDataAttributes": {
+ "description": "The definition of `WorkflowDataAttributes` object.",
+ "properties": {
+ "createdAt": {
+ "description": "When the workflow was created.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of the workflow.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the workflow.",
+ "example": "",
+ "type": "string"
+ },
+ "published": {
+ "description": "Set the workflow to published or unpublished. Workflows in an unpublished state will only be executable via manual runs. Automatic triggers such as Schedule will not execute the workflow until it is published.",
+ "type": "boolean"
+ },
+ "spec": {
+ "description": "The spec defines what the workflow does.",
+ "properties": {
+ "annotations": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "items": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "properties": {
+ "display": {
+ "description": "The definition of `AnnotationDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `AnnotationDisplayBounds` object.",
+ "properties": {
+ "height": {
+ "description": "The `bounds` `height`.",
+ "format": "double",
+ "type": "number"
+ },
+ "width": {
+ "description": "The `bounds` `width`.",
+ "format": "double",
+ "type": "number"
+ },
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
},
- "severity": {
- "description": "Advisory Datadog severity.",
- "example": "Medium",
- "type": "string"
- }
+ "type": "object"
},
- "required": [
- "id",
- "base_severity"
- ],
- "type": "object"
+ "id": {
+ "description": "The `Annotation` `id`.",
+ "example": "",
+ "type": "string"
+ },
+ "markdownTextAnnotation": {
+ "description": "The definition of `AnnotationMarkdownTextAnnotation` object.",
+ "properties": {
+ "text": {
+ "description": "The `markdownTextAnnotation` `text`.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
},
- "type": "array"
+ "required": [
+ "id",
+ "display",
+ "markdownTextAnnotation"
+ ],
+ "type": "object"
},
- "remaining_advisories": {
- "description": "Remaining advisories.",
- "items": {
- "description": "Advisory.",
- "properties": {
- "base_severity": {
- "description": "Advisory base severity.",
- "example": "Critical",
- "type": "string"
+ "type": "array"
+ },
+ "connectionEnvs": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "items": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "properties": {
+ "connectionGroups": {
+ "description": "The `ConnectionEnv` `connectionGroups`.",
+ "items": {
+ "description": "The definition of `ConnectionGroup` object.",
+ "properties": {
+ "connectionGroupId": {
+ "description": "The `ConnectionGroup` `connectionGroupId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `ConnectionGroup` `label`.",
+ "example": "",
+ "type": "string"
+ },
+ "tags": {
+ "description": "The `ConnectionGroup` `tags`.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "connectionGroupId",
+ "label",
+ "tags"
+ ],
+ "type": "object"
},
- "id": {
- "description": "Advisory id.",
- "example": "GHSA-4wrc-f8pq-fpqp",
- "type": "string"
+ "type": "array"
+ },
+ "connections": {
+ "description": "The `ConnectionEnv` `connections`.",
+ "items": {
+ "description": "The definition of `Connection` object.",
+ "properties": {
+ "connectionId": {
+ "description": "The `Connection` `connectionId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `Connection` `label`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "connectionId",
+ "label"
+ ],
+ "type": "object"
},
- "severity": {
- "description": "Advisory Datadog severity.",
- "example": "Medium",
- "type": "string"
- }
+ "type": "array"
},
- "required": [
- "id",
- "base_severity"
- ],
- "type": "object"
+ "env": {
+ "description": "The definition of `ConnectionEnvEnv` object.",
+ "enum": [
+ "default"
+ ],
+ "example": "default",
+ "type": "string",
+ "x-enum-varnames": [
+ "DEFAULT"
+ ]
+ }
},
- "type": "array"
+ "required": [
+ "env"
+ ],
+ "type": "object"
},
- "type": {
- "description": "Remediation type.",
- "example": "text",
- "type": "string"
- }
+ "type": "array"
},
- "required": [
- "type",
- "library_name",
- "library_version",
- "auto_solvable",
- "fixed_advisories",
- "remaining_advisories",
- "new_advisories",
- "avoided_advisories"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "repo_digests": {
- "description": "Vulnerability `repo_digest` list (when the vulnerability is related to `Image` asset).",
- "items": {
- "example": "sha256:0ae7da091191787229d321e3638e39c319a97d6e20f927d465b519d699215bf7",
- "type": "string"
- },
- "type": "array"
- },
- "risks": {
- "description": "Vulnerability risks.",
- "properties": {
- "epss": {
- "description": "Vulnerability EPSS severity.",
+ "handle": {
+ "description": "Unique identifier used to trigger workflows automatically in Datadog.",
+ "type": "string"
+ },
+ "inputSchema": {
+ "description": "A list of input parameters for the workflow. These can be used as dynamic runtime values in your workflow.",
"properties": {
- "score": {
- "description": "Vulnerability EPSS severity score.",
- "example": 0.2,
- "format": "double",
- "type": "number"
- },
- "severity": {
- "description": "The vulnerability severity.",
- "enum": [
- "Unknown",
- "None",
- "Low",
- "Medium",
- "High",
- "Critical"
- ],
- "example": "Medium",
- "type": "string",
- "x-enum-varnames": [
- "UNKNOWN",
- "NONE",
- "LOW",
- "MEDIUM",
- "HIGH",
- "CRITICAL"
- ]
+ "parameters": {
+ "description": "The `InputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `InputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `InputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `InputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `InputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `InputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `InputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
}
},
- "required": [
- "score",
- "severity"
- ],
"type": "object"
},
- "exploit_available": {
- "description": "Vulnerability public exploit availability.",
- "example": false,
- "type": "boolean"
+ "outputSchema": {
+ "description": "A list of output parameters for the workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `OutputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `OutputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `OutputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `OutputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `OutputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `OutputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `OutputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ },
+ "value": {
+ "description": "The `OutputSchemaParameters` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
},
- "exploit_sources": {
- "description": "Vulnerability exploit sources.",
- "example": [
- "NIST"
- ],
+ "steps": {
+ "description": "A `Step` is a sub-component of a workflow. Each `Step` performs an action.",
"items": {
- "example": "NIST",
- "type": "string"
+ "description": "A Step is a sub-component of a workflow. Each Step performs an action.",
+ "properties": {
+ "actionId": {
+ "description": "The unique identifier of an action.",
+ "example": "",
+ "type": "string"
+ },
+ "completionGate": {
+ "description": "Used to create conditions before running subsequent actions.",
+ "properties": {
+ "completionCondition": {
+ "description": "The definition of `CompletionCondition` object.",
+ "properties": {
+ "operand1": {
+ "description": "The `CompletionCondition` `operand1`."
+ },
+ "operand2": {
+ "description": "The `CompletionCondition` `operand2`."
+ },
+ "operator": {
+ "description": "The definition of `CompletionConditionOperator` object.",
+ "enum": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ],
+ "example": "OPERATOR_EQUAL",
+ "type": "string",
+ "x-enum-varnames": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ]
+ }
+ },
+ "required": [
+ "operand1",
+ "operator"
+ ],
+ "type": "object"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "completionCondition",
+ "retryStrategy"
+ ],
+ "type": "object"
+ },
+ "connectionLabel": {
+ "description": "The unique identifier of a connection defined in the spec.",
+ "type": "string"
+ },
+ "display": {
+ "description": "The definition of `StepDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `StepDisplayBounds` object.",
+ "properties": {
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "errorHandlers": {
+ "description": "The `Step` `errorHandlers`.",
+ "items": {
+ "description": "Used to handle errors in an action.",
+ "properties": {
+ "fallbackStepName": {
+ "description": "The `ErrorHandler` `fallbackStepName`.",
+ "example": "",
+ "type": "string"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "retryStrategy",
+ "fallbackStepName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the step.",
+ "example": "",
+ "type": "string"
+ },
+ "outboundEdges": {
+ "description": "A list of subsequent actions to run.",
+ "items": {
+ "description": "The definition of `OutboundEdge` object.",
+ "properties": {
+ "branchName": {
+ "description": "The `OutboundEdge` `branchName`.",
+ "example": "",
+ "type": "string"
+ },
+ "nextStepName": {
+ "description": "The `OutboundEdge` `nextStepName`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "nextStepName",
+ "branchName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "parameters": {
+ "description": "A list of inputs for an action.",
+ "items": {
+ "description": "The definition of `Parameter` object.",
+ "properties": {
+ "name": {
+ "description": "The `Parameter` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "value": {
+ "description": "The `Parameter` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "value"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "readinessGate": {
+ "description": "Used to merge multiple branches into a single branch.",
+ "properties": {
+ "thresholdType": {
+ "description": "The definition of `ReadinessGateThresholdType` object.",
+ "enum": [
+ "ANY",
+ "ALL"
+ ],
+ "example": "ANY",
+ "type": "string",
+ "x-enum-varnames": [
+ "ANY",
+ "ALL"
+ ]
+ }
+ },
+ "required": [
+ "thresholdType"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "name",
+ "actionId"
+ ],
+ "type": "object"
},
"type": "array"
},
- "exploitation_probability": {
- "description": "Vulnerability exploitation probability.",
- "example": false,
- "type": "boolean"
- },
- "poc_exploit_available": {
- "description": "Vulnerability POC exploit availability.",
- "example": false,
- "type": "boolean"
+ "triggers": {
+ "description": "The list of triggers that activate this workflow. At least one trigger is required, and each trigger type may appear at most once.",
+ "items": {
+ "description": "One of the triggers that can start the execution of a workflow.",
+ "oneOf": [
+ {
+ "description": "Schema for an API-based trigger.",
+ "properties": {
+ "apiTrigger": {
+ "description": "Trigger a workflow VIA an API. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "apiTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an App-based trigger.",
+ "properties": {
+ "appTrigger": {
+ "description": "Trigger a workflow VIA an App.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "appTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Case-based trigger.",
+ "properties": {
+ "caseTrigger": {
+ "description": "Trigger a workflow VIA a Case. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "caseTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Change Event-based trigger.",
+ "properties": {
+ "changeEventTrigger": {
+ "description": "Trigger a workflow VIA a Change Event.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "changeEventTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Dashboard-based trigger.",
+ "properties": {
+ "dashboardTrigger": {
+ "description": "Trigger a workflow VIA a Dashboard.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "dashboardTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a GitHub webhook-based trigger.",
+ "properties": {
+ "githubWebhookTrigger": {
+ "description": "Trigger a workflow VIA GitHub webhook. To trigger a workflow from GitHub, you must set a `webhookSecret`. In your GitHub Webhook Settings, set the Payload URL to \"base_url\"/api/v2/workflows/\"workflow_id\"/webhook?orgId=\"org_id\", select application/json for the content type, and be highly recommend enabling SSL verification for security. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "githubWebhookTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an Incident-based trigger.",
+ "properties": {
+ "incidentTrigger": {
+ "description": "Trigger a workflow VIA an Incident. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "incidentTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Monitor-based trigger.",
+ "properties": {
+ "monitorTrigger": {
+ "description": "Trigger a workflow VIA a Monitor. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "monitorTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Schedule-based trigger.",
+ "properties": {
+ "scheduleTrigger": {
+ "description": "Trigger a workflow VIA a Schedule. The workflow must be published.",
+ "properties": {
+ "rruleExpression": {
+ "description": "Recurrence rule expression for scheduling.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "rruleExpression"
+ ],
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "scheduleTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Security-based trigger.",
+ "properties": {
+ "securityTrigger": {
+ "description": "Trigger a workflow VIA a Security Signal or Finding. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "securityTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Slack-based trigger.",
+ "properties": {
+ "slackTrigger": {
+ "description": "Trigger a workflow VIA Slack. The workflow must be published.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "slackTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Workflow-based trigger.",
+ "properties": {
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "workflowTrigger": {
+ "description": "Trigger a workflow VIA the Datadog UI. Only required if no other trigger exists.",
+ "type": "object"
+ }
+ },
+ "required": [
+ "workflowTrigger"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "type": "array"
}
},
- "required": [
- "exploitation_probability",
- "poc_exploit_available",
- "exploit_available",
- "exploit_sources"
- ],
"type": "object"
},
- "status": {
- "description": "The vulnerability status.",
- "enum": [
- "Open",
- "Muted",
- "Remediated",
- "InProgress",
- "AutoClosed"
- ],
- "example": "Open",
- "type": "string",
- "x-enum-varnames": [
- "OPEN",
- "MUTED",
- "REMEDIATED",
- "INPROGRESS",
- "AUTOCLOSED"
- ]
- },
- "title": {
- "description": "Vulnerability title.",
- "example": "LDAP Injection",
- "type": "string"
- },
- "tool": {
- "description": "The vulnerability tool.",
- "enum": [
- "IAST",
- "SCA",
- "Infra"
- ],
- "example": "SCA",
- "type": "string",
- "x-enum-varnames": [
- "IAST",
- "SCA",
- "INFRA"
- ]
- },
- "type": {
- "description": "The vulnerability type.",
- "enum": [
- "AdminConsoleActive",
- "CodeInjection",
- "CommandInjection",
- "ComponentWithKnownVulnerability",
- "DangerousWorkflows",
- "DefaultAppDeployed",
- "DefaultHtmlEscapeInvalid",
- "DirectoryListingLeak",
- "EmailHtmlInjection",
- "EndOfLife",
- "HardcodedPassword",
- "HardcodedSecret",
- "HeaderInjection",
- "HstsHeaderMissing",
- "InsecureAuthProtocol",
- "InsecureCookie",
- "InsecureJspLayout",
- "LdapInjection",
- "MaliciousPackage",
- "MandatoryRemediation",
- "NoHttpOnlyCookie",
- "NoSameSiteCookie",
- "NoSqlMongoDbInjection",
- "PathTraversal",
- "ReflectionInjection",
- "RiskyLicense",
- "SessionRewriting",
- "SessionTimeout",
- "SqlInjection",
- "Ssrf",
- "StackTraceLeak",
- "TrustBoundaryViolation",
- "Unmaintained",
- "UntrustedDeserialization",
- "UnvalidatedRedirect",
- "VerbTampering",
- "WeakCipher",
- "WeakHash",
- "WeakRandomness",
- "XContentTypeHeaderMissing",
- "XPathInjection",
- "Xss"
- ],
- "example": "WeakCipher",
- "type": "string",
- "x-enum-varnames": [
- "ADMIN_CONSOLE_ACTIVE",
- "CODE_INJECTION",
- "COMMAND_INJECTION",
- "COMPONENT_WITH_KNOWN_VULNERABILITY",
- "DANGEROUS_WORKFLOWS",
- "DEFAULT_APP_DEPLOYED",
- "DEFAULT_HTML_ESCAPE_INVALID",
- "DIRECTORY_LISTING_LEAK",
- "EMAIL_HTML_INJECTION",
- "END_OF_LIFE",
- "HARDCODED_PASSWORD",
- "HARDCODED_SECRET",
- "HEADER_INJECTION",
- "HSTS_HEADER_MISSING",
- "INSECURE_AUTH_PROTOCOL",
- "INSECURE_COOKIE",
- "INSECURE_JSP_LAYOUT",
- "LDAP_INJECTION",
- "MALICIOUS_PACKAGE",
- "MANDATORY_REMEDIATION",
- "NO_HTTP_ONLY_COOKIE",
- "NO_SAME_SITE_COOKIE",
- "NO_SQL_MONGO_DB_INJECTION",
- "PATH_TRAVERSAL",
- "REFLECTION_INJECTION",
- "RISKY_LICENSE",
- "SESSION_REWRITING",
- "SESSION_TIMEOUT",
- "SQL_INJECTION",
- "SSRF",
- "STACK_TRACE_LEAK",
- "TRUST_BOUNDARY_VIOLATION",
- "UNMAINTAINED",
- "UNTRUSTED_DESERIALIZATION",
- "UNVALIDATED_REDIRECT",
- "VERB_TAMPERING",
- "WEAK_CIPHER",
- "WEAK_HASH",
- "WEAK_RANDOMNESS",
- "X_CONTENT_TYPE_HEADER_MISSING",
- "X_PATH_INJECTION",
- "XSS"
- ]
+ "tags": {
+ "description": "Tags of the workflow.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "updatedAt": {
+ "description": "When the workflow was last updated.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "webhookSecret": {
+ "description": "If a Webhook trigger is defined on this workflow, a webhookSecret is required and should be provided here.",
+ "type": "string",
+ "writeOnly": true
}
},
"required": [
- "type",
- "cvss",
- "status",
- "tool",
- "title",
- "description",
- "cve_list",
- "risks",
- "language",
- "first_detection",
- "last_detection",
- "exposure_time",
- "remediations",
- "fix_available"
+ "name",
+ "spec"
],
"type": "object"
},
- "VulnerabilityCvss": {
- "description": "Vulnerability severities.",
+ "WorkflowDataRelationships": {
+ "description": "The definition of `WorkflowDataRelationships` object.",
"properties": {
- "base": {
- "description": "Vulnerability severity.",
+ "creator": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
"properties": {
- "score": {
- "description": "Vulnerability severity score.",
- "example": 4.5,
- "format": "double",
- "type": "number"
- },
- "severity": {
- "description": "The vulnerability severity.",
- "enum": [
- "Unknown",
- "None",
- "Low",
- "Medium",
- "High",
- "Critical"
+ "data": {
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
+ "properties": {
+ "id": {
+ "description": "The user identifier",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "id"
],
- "example": "Medium",
- "type": "string",
- "x-enum-varnames": [
- "UNKNOWN",
- "NONE",
- "LOW",
- "MEDIUM",
- "HIGH",
- "CRITICAL"
- ]
- },
- "vector": {
- "description": "Vulnerability CVSS vector.",
- "example": "CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H",
- "type": "string"
+ "type": "object"
}
},
- "required": [
- "score",
- "severity",
- "vector"
- ],
"type": "object"
},
- "datadog": {
- "description": "Vulnerability severity.",
+ "owner": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
"properties": {
- "score": {
- "description": "Vulnerability severity score.",
- "example": 4.5,
- "format": "double",
- "type": "number"
- },
- "severity": {
- "description": "The vulnerability severity.",
- "enum": [
- "Unknown",
- "None",
- "Low",
- "Medium",
- "High",
- "Critical"
+ "data": {
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
+ "properties": {
+ "id": {
+ "description": "The user identifier",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "id"
],
- "example": "Medium",
- "type": "string",
- "x-enum-varnames": [
- "UNKNOWN",
- "NONE",
- "LOW",
- "MEDIUM",
- "HIGH",
- "CRITICAL"
- ]
- },
- "vector": {
- "description": "Vulnerability CVSS vector.",
- "example": "CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H",
- "type": "string"
+ "type": "object"
}
},
- "required": [
- "score",
- "severity",
- "vector"
- ],
"type": "object"
}
},
- "required": [
- "base",
- "datadog"
- ],
+ "readOnly": true,
"type": "object"
},
- "VulnerabilityDependencyLocations": {
- "description": "Static library vulnerability location.",
+ "WorkflowDataType": {
+ "description": "The definition of `WorkflowDataType` object.",
+ "enum": [
+ "workflows"
+ ],
+ "example": "workflows",
+ "type": "string",
+ "x-enum-varnames": [
+ "WORKFLOWS"
+ ]
+ },
+ "WorkflowDataUpdate": {
+ "description": "Data related to the workflow being updated.",
"properties": {
- "block": {
- "description": "Static library vulnerability location.",
+ "attributes": {
+ "description": "The definition of `WorkflowDataUpdateAttributes` object.",
"properties": {
- "column_end": {
- "description": "Location column end.",
- "example": 140,
- "format": "int64",
- "type": "integer"
- },
- "column_start": {
- "description": "Location column start.",
- "example": 5,
- "format": "int64",
- "type": "integer"
- },
- "file_name": {
- "description": "Location file name.",
- "example": "src/go.mod",
+ "createdAt": {
+ "description": "When the workflow was created.",
+ "format": "date-time",
+ "readOnly": true,
"type": "string"
},
- "line_end": {
- "description": "Location line end.",
- "example": 10,
- "format": "int64",
- "type": "integer"
- },
- "line_start": {
- "description": "Location line start.",
- "example": 1,
- "format": "int64",
- "type": "integer"
- }
- },
- "required": [
- "file_name",
- "line_start",
- "line_end",
- "column_start",
- "column_end"
- ],
- "type": "object"
- },
- "name": {
- "description": "Static library vulnerability location.",
- "properties": {
- "column_end": {
- "description": "Location column end.",
- "example": 140,
- "format": "int64",
- "type": "integer"
- },
- "column_start": {
- "description": "Location column start.",
- "example": 5,
- "format": "int64",
- "type": "integer"
+ "description": {
+ "description": "Description of the workflow.",
+ "type": "string"
},
- "file_name": {
- "description": "Location file name.",
- "example": "src/go.mod",
+ "name": {
+ "description": "Name of the workflow.",
"type": "string"
},
- "line_end": {
- "description": "Location line end.",
- "example": 10,
- "format": "int64",
- "type": "integer"
+ "published": {
+ "description": "Set the workflow to published or unpublished. Workflows in an unpublished state will only be executable via manual runs. Automatic triggers such as Schedule will not execute the workflow until it is published.",
+ "type": "boolean"
},
- "line_start": {
- "description": "Location line start.",
- "example": 1,
- "format": "int64",
- "type": "integer"
- }
- },
- "required": [
- "file_name",
- "line_start",
- "line_end",
- "column_start",
- "column_end"
- ],
- "type": "object"
- },
- "version": {
- "description": "Static library vulnerability location.",
- "properties": {
- "column_end": {
- "description": "Location column end.",
- "example": 140,
- "format": "int64",
- "type": "integer"
+ "spec": {
+ "description": "The spec defines what the workflow does.",
+ "properties": {
+ "annotations": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "items": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "properties": {
+ "display": {
+ "description": "The definition of `AnnotationDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `AnnotationDisplayBounds` object.",
+ "properties": {
+ "height": {
+ "description": "The `bounds` `height`.",
+ "format": "double",
+ "type": "number"
+ },
+ "width": {
+ "description": "The `bounds` `width`.",
+ "format": "double",
+ "type": "number"
+ },
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The `Annotation` `id`.",
+ "example": "",
+ "type": "string"
+ },
+ "markdownTextAnnotation": {
+ "description": "The definition of `AnnotationMarkdownTextAnnotation` object.",
+ "properties": {
+ "text": {
+ "description": "The `markdownTextAnnotation` `text`.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "required": [
+ "id",
+ "display",
+ "markdownTextAnnotation"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "connectionEnvs": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "items": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "properties": {
+ "connectionGroups": {
+ "description": "The `ConnectionEnv` `connectionGroups`.",
+ "items": {
+ "description": "The definition of `ConnectionGroup` object.",
+ "properties": {
+ "connectionGroupId": {
+ "description": "The `ConnectionGroup` `connectionGroupId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `ConnectionGroup` `label`.",
+ "example": "",
+ "type": "string"
+ },
+ "tags": {
+ "description": "The `ConnectionGroup` `tags`.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "connectionGroupId",
+ "label",
+ "tags"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "connections": {
+ "description": "The `ConnectionEnv` `connections`.",
+ "items": {
+ "description": "The definition of `Connection` object.",
+ "properties": {
+ "connectionId": {
+ "description": "The `Connection` `connectionId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `Connection` `label`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "connectionId",
+ "label"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "env": {
+ "description": "The definition of `ConnectionEnvEnv` object.",
+ "enum": [
+ "default"
+ ],
+ "example": "default",
+ "type": "string",
+ "x-enum-varnames": [
+ "DEFAULT"
+ ]
+ }
+ },
+ "required": [
+ "env"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "handle": {
+ "description": "Unique identifier used to trigger workflows automatically in Datadog.",
+ "type": "string"
+ },
+ "inputSchema": {
+ "description": "A list of input parameters for the workflow. These can be used as dynamic runtime values in your workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `InputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `InputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `InputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `InputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `InputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `InputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `InputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "outputSchema": {
+ "description": "A list of output parameters for the workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `OutputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `OutputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `OutputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `OutputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `OutputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `OutputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `OutputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ },
+ "value": {
+ "description": "The `OutputSchemaParameters` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "steps": {
+ "description": "A `Step` is a sub-component of a workflow. Each `Step` performs an action.",
+ "items": {
+ "description": "A Step is a sub-component of a workflow. Each Step performs an action.",
+ "properties": {
+ "actionId": {
+ "description": "The unique identifier of an action.",
+ "example": "",
+ "type": "string"
+ },
+ "completionGate": {
+ "description": "Used to create conditions before running subsequent actions.",
+ "properties": {
+ "completionCondition": {
+ "description": "The definition of `CompletionCondition` object.",
+ "properties": {
+ "operand1": {
+ "description": "The `CompletionCondition` `operand1`."
+ },
+ "operand2": {
+ "description": "The `CompletionCondition` `operand2`."
+ },
+ "operator": {
+ "description": "The definition of `CompletionConditionOperator` object.",
+ "enum": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ],
+ "example": "OPERATOR_EQUAL",
+ "type": "string",
+ "x-enum-varnames": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ]
+ }
+ },
+ "required": [
+ "operand1",
+ "operator"
+ ],
+ "type": "object"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "completionCondition",
+ "retryStrategy"
+ ],
+ "type": "object"
+ },
+ "connectionLabel": {
+ "description": "The unique identifier of a connection defined in the spec.",
+ "type": "string"
+ },
+ "display": {
+ "description": "The definition of `StepDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `StepDisplayBounds` object.",
+ "properties": {
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "errorHandlers": {
+ "description": "The `Step` `errorHandlers`.",
+ "items": {
+ "description": "Used to handle errors in an action.",
+ "properties": {
+ "fallbackStepName": {
+ "description": "The `ErrorHandler` `fallbackStepName`.",
+ "example": "",
+ "type": "string"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "retryStrategy",
+ "fallbackStepName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the step.",
+ "example": "",
+ "type": "string"
+ },
+ "outboundEdges": {
+ "description": "A list of subsequent actions to run.",
+ "items": {
+ "description": "The definition of `OutboundEdge` object.",
+ "properties": {
+ "branchName": {
+ "description": "The `OutboundEdge` `branchName`.",
+ "example": "",
+ "type": "string"
+ },
+ "nextStepName": {
+ "description": "The `OutboundEdge` `nextStepName`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "nextStepName",
+ "branchName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "parameters": {
+ "description": "A list of inputs for an action.",
+ "items": {
+ "description": "The definition of `Parameter` object.",
+ "properties": {
+ "name": {
+ "description": "The `Parameter` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "value": {
+ "description": "The `Parameter` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "value"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "readinessGate": {
+ "description": "Used to merge multiple branches into a single branch.",
+ "properties": {
+ "thresholdType": {
+ "description": "The definition of `ReadinessGateThresholdType` object.",
+ "enum": [
+ "ANY",
+ "ALL"
+ ],
+ "example": "ANY",
+ "type": "string",
+ "x-enum-varnames": [
+ "ANY",
+ "ALL"
+ ]
+ }
+ },
+ "required": [
+ "thresholdType"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "name",
+ "actionId"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "triggers": {
+ "description": "The list of triggers that activate this workflow. At least one trigger is required, and each trigger type may appear at most once.",
+ "items": {
+ "description": "One of the triggers that can start the execution of a workflow.",
+ "oneOf": [
+ {
+ "description": "Schema for an API-based trigger.",
+ "properties": {
+ "apiTrigger": {
+ "description": "Trigger a workflow VIA an API. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "apiTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an App-based trigger.",
+ "properties": {
+ "appTrigger": {
+ "description": "Trigger a workflow VIA an App.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "appTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Case-based trigger.",
+ "properties": {
+ "caseTrigger": {
+ "description": "Trigger a workflow VIA a Case. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "caseTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Change Event-based trigger.",
+ "properties": {
+ "changeEventTrigger": {
+ "description": "Trigger a workflow VIA a Change Event.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "changeEventTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Dashboard-based trigger.",
+ "properties": {
+ "dashboardTrigger": {
+ "description": "Trigger a workflow VIA a Dashboard.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "dashboardTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a GitHub webhook-based trigger.",
+ "properties": {
+ "githubWebhookTrigger": {
+ "description": "Trigger a workflow VIA GitHub webhook. To trigger a workflow from GitHub, you must set a `webhookSecret`. In your GitHub Webhook Settings, set the Payload URL to \"base_url\"/api/v2/workflows/\"workflow_id\"/webhook?orgId=\"org_id\", select application/json for the content type, and be highly recommend enabling SSL verification for security. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "githubWebhookTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an Incident-based trigger.",
+ "properties": {
+ "incidentTrigger": {
+ "description": "Trigger a workflow VIA an Incident. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "incidentTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Monitor-based trigger.",
+ "properties": {
+ "monitorTrigger": {
+ "description": "Trigger a workflow VIA a Monitor. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "monitorTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Schedule-based trigger.",
+ "properties": {
+ "scheduleTrigger": {
+ "description": "Trigger a workflow VIA a Schedule. The workflow must be published.",
+ "properties": {
+ "rruleExpression": {
+ "description": "Recurrence rule expression for scheduling.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "rruleExpression"
+ ],
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "scheduleTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Security-based trigger.",
+ "properties": {
+ "securityTrigger": {
+ "description": "Trigger a workflow VIA a Security Signal or Finding. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "securityTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Slack-based trigger.",
+ "properties": {
+ "slackTrigger": {
+ "description": "Trigger a workflow VIA Slack. The workflow must be published.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "slackTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Workflow-based trigger.",
+ "properties": {
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "workflowTrigger": {
+ "description": "Trigger a workflow VIA the Datadog UI. Only required if no other trigger exists.",
+ "type": "object"
+ }
+ },
+ "required": [
+ "workflowTrigger"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
},
- "column_start": {
- "description": "Location column start.",
- "example": 5,
- "format": "int64",
- "type": "integer"
+ "tags": {
+ "description": "Tags of the workflow.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
},
- "file_name": {
- "description": "Location file name.",
- "example": "src/go.mod",
+ "updatedAt": {
+ "description": "When the workflow was last updated.",
+ "format": "date-time",
+ "readOnly": true,
"type": "string"
},
- "line_end": {
- "description": "Location line end.",
- "example": 10,
- "format": "int64",
- "type": "integer"
- },
- "line_start": {
- "description": "Location line start.",
- "example": 1,
- "format": "int64",
- "type": "integer"
+ "webhookSecret": {
+ "description": "If a Webhook trigger is defined on this workflow, a webhookSecret is required and should be provided here.",
+ "type": "string",
+ "writeOnly": true
}
},
- "required": [
- "file_name",
- "line_start",
- "line_end",
- "column_start",
- "column_end"
- ],
"type": "object"
- }
- },
- "required": [
- "block"
- ],
- "type": "object"
- },
- "VulnerabilityEcosystem": {
- "description": "The related vulnerability asset ecosystem.",
- "enum": [
- "PyPI",
- "Maven",
- "NuGet",
- "Npm",
- "RubyGems",
- "Go",
- "Packagist",
- "Ddeb",
- "Rpm",
- "Apk",
- "Windows"
- ],
- "type": "string",
- "x-enum-varnames": [
- "PYPI",
- "MAVEN",
- "NUGET",
- "NPM",
- "RUBY_GEMS",
- "GO",
- "PACKAGIST",
- "D_DEB",
- "RPM",
- "APK",
- "WINDOWS"
- ]
- },
- "VulnerabilityRelationships": {
- "description": "Related entities object.",
- "properties": {
- "affects": {
- "description": "Relationship type.",
+ },
+ "id": {
+ "description": "The workflow identifier",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "The definition of `WorkflowDataRelationships` object.",
"properties": {
- "data": {
- "description": "Asset affected by this vulnerability.",
+ "creator": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
"properties": {
- "id": {
- "description": "The unique ID for this related asset.",
- "example": "Repository|github.com/DataDog/datadog-agent.git",
- "type": "string"
- },
- "type": {
- "description": "The JSON:API type.",
- "enum": [
- "assets"
+ "data": {
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
+ "properties": {
+ "id": {
+ "description": "The user identifier",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "id"
],
- "example": "assets",
- "type": "string",
- "x-enum-varnames": [
- "ASSETS"
- ]
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "owner": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
+ "properties": {
+ "data": {
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
+ "properties": {
+ "id": {
+ "description": "The user identifier",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "id"
+ ],
+ "type": "object"
}
},
- "required": [
- "id",
- "type"
- ],
"type": "object"
}
},
- "required": [
- "data"
- ],
- "type": "object"
- }
- },
- "required": [
- "affects"
- ],
- "type": "object"
- },
- "VulnerabilityRelationshipsAffects": {
- "description": "Relationship type.",
- "properties": {
- "data": {
- "description": "Asset affected by this vulnerability.",
- "properties": {
- "id": {
- "description": "The unique ID for this related asset.",
- "example": "Repository|github.com/DataDog/datadog-agent.git",
- "type": "string"
- },
- "type": {
- "description": "The JSON:API type.",
- "enum": [
- "assets"
- ],
- "example": "assets",
- "type": "string",
- "x-enum-varnames": [
- "ASSETS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
+ "readOnly": true,
"type": "object"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "VulnerabilityRelationshipsAffectsData": {
- "description": "Asset affected by this vulnerability.",
- "properties": {
- "id": {
- "description": "The unique ID for this related asset.",
- "example": "Repository|github.com/DataDog/datadog-agent.git",
- "type": "string"
},
"type": {
- "description": "The JSON:API type.",
+ "description": "The definition of `WorkflowDataType` object.",
"enum": [
- "assets"
+ "workflows"
],
- "example": "assets",
+ "example": "workflows",
"type": "string",
"x-enum-varnames": [
- "ASSETS"
+ "WORKFLOWS"
]
}
},
"required": [
- "id",
- "type"
+ "type",
+ "attributes"
],
"type": "object"
},
- "VulnerabilityRisks": {
- "description": "Vulnerability risks.",
+ "WorkflowDataUpdateAttributes": {
+ "description": "The definition of `WorkflowDataUpdateAttributes` object.",
"properties": {
- "epss": {
- "description": "Vulnerability EPSS severity.",
+ "createdAt": {
+ "description": "When the workflow was created.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of the workflow.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the workflow.",
+ "type": "string"
+ },
+ "published": {
+ "description": "Set the workflow to published or unpublished. Workflows in an unpublished state will only be executable via manual runs. Automatic triggers such as Schedule will not execute the workflow until it is published.",
+ "type": "boolean"
+ },
+ "spec": {
+ "description": "The spec defines what the workflow does.",
"properties": {
- "score": {
- "description": "Vulnerability EPSS severity score.",
- "example": 0.2,
- "format": "double",
- "type": "number"
+ "annotations": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "items": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "properties": {
+ "display": {
+ "description": "The definition of `AnnotationDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `AnnotationDisplayBounds` object.",
+ "properties": {
+ "height": {
+ "description": "The `bounds` `height`.",
+ "format": "double",
+ "type": "number"
+ },
+ "width": {
+ "description": "The `bounds` `width`.",
+ "format": "double",
+ "type": "number"
+ },
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The `Annotation` `id`.",
+ "example": "",
+ "type": "string"
+ },
+ "markdownTextAnnotation": {
+ "description": "The definition of `AnnotationMarkdownTextAnnotation` object.",
+ "properties": {
+ "text": {
+ "description": "The `markdownTextAnnotation` `text`.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "required": [
+ "id",
+ "display",
+ "markdownTextAnnotation"
+ ],
+ "type": "object"
+ },
+ "type": "array"
},
- "severity": {
- "description": "The vulnerability severity.",
- "enum": [
- "Unknown",
- "None",
- "Low",
- "Medium",
- "High",
- "Critical"
- ],
- "example": "Medium",
- "type": "string",
- "x-enum-varnames": [
- "UNKNOWN",
- "NONE",
- "LOW",
- "MEDIUM",
- "HIGH",
- "CRITICAL"
- ]
+ "connectionEnvs": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "items": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "properties": {
+ "connectionGroups": {
+ "description": "The `ConnectionEnv` `connectionGroups`.",
+ "items": {
+ "description": "The definition of `ConnectionGroup` object.",
+ "properties": {
+ "connectionGroupId": {
+ "description": "The `ConnectionGroup` `connectionGroupId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `ConnectionGroup` `label`.",
+ "example": "",
+ "type": "string"
+ },
+ "tags": {
+ "description": "The `ConnectionGroup` `tags`.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "connectionGroupId",
+ "label",
+ "tags"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "connections": {
+ "description": "The `ConnectionEnv` `connections`.",
+ "items": {
+ "description": "The definition of `Connection` object.",
+ "properties": {
+ "connectionId": {
+ "description": "The `Connection` `connectionId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `Connection` `label`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "connectionId",
+ "label"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "env": {
+ "description": "The definition of `ConnectionEnvEnv` object.",
+ "enum": [
+ "default"
+ ],
+ "example": "default",
+ "type": "string",
+ "x-enum-varnames": [
+ "DEFAULT"
+ ]
+ }
+ },
+ "required": [
+ "env"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "handle": {
+ "description": "Unique identifier used to trigger workflows automatically in Datadog.",
+ "type": "string"
+ },
+ "inputSchema": {
+ "description": "A list of input parameters for the workflow. These can be used as dynamic runtime values in your workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `InputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `InputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `InputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `InputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `InputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `InputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `InputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "outputSchema": {
+ "description": "A list of output parameters for the workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `OutputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `OutputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `OutputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `OutputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `OutputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `OutputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `OutputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ },
+ "value": {
+ "description": "The `OutputSchemaParameters` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "steps": {
+ "description": "A `Step` is a sub-component of a workflow. Each `Step` performs an action.",
+ "items": {
+ "description": "A Step is a sub-component of a workflow. Each Step performs an action.",
+ "properties": {
+ "actionId": {
+ "description": "The unique identifier of an action.",
+ "example": "",
+ "type": "string"
+ },
+ "completionGate": {
+ "description": "Used to create conditions before running subsequent actions.",
+ "properties": {
+ "completionCondition": {
+ "description": "The definition of `CompletionCondition` object.",
+ "properties": {
+ "operand1": {
+ "description": "The `CompletionCondition` `operand1`."
+ },
+ "operand2": {
+ "description": "The `CompletionCondition` `operand2`."
+ },
+ "operator": {
+ "description": "The definition of `CompletionConditionOperator` object.",
+ "enum": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ],
+ "example": "OPERATOR_EQUAL",
+ "type": "string",
+ "x-enum-varnames": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ]
+ }
+ },
+ "required": [
+ "operand1",
+ "operator"
+ ],
+ "type": "object"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "completionCondition",
+ "retryStrategy"
+ ],
+ "type": "object"
+ },
+ "connectionLabel": {
+ "description": "The unique identifier of a connection defined in the spec.",
+ "type": "string"
+ },
+ "display": {
+ "description": "The definition of `StepDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `StepDisplayBounds` object.",
+ "properties": {
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "errorHandlers": {
+ "description": "The `Step` `errorHandlers`.",
+ "items": {
+ "description": "Used to handle errors in an action.",
+ "properties": {
+ "fallbackStepName": {
+ "description": "The `ErrorHandler` `fallbackStepName`.",
+ "example": "",
+ "type": "string"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "retryStrategy",
+ "fallbackStepName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the step.",
+ "example": "",
+ "type": "string"
+ },
+ "outboundEdges": {
+ "description": "A list of subsequent actions to run.",
+ "items": {
+ "description": "The definition of `OutboundEdge` object.",
+ "properties": {
+ "branchName": {
+ "description": "The `OutboundEdge` `branchName`.",
+ "example": "",
+ "type": "string"
+ },
+ "nextStepName": {
+ "description": "The `OutboundEdge` `nextStepName`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "nextStepName",
+ "branchName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "parameters": {
+ "description": "A list of inputs for an action.",
+ "items": {
+ "description": "The definition of `Parameter` object.",
+ "properties": {
+ "name": {
+ "description": "The `Parameter` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "value": {
+ "description": "The `Parameter` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "value"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "readinessGate": {
+ "description": "Used to merge multiple branches into a single branch.",
+ "properties": {
+ "thresholdType": {
+ "description": "The definition of `ReadinessGateThresholdType` object.",
+ "enum": [
+ "ANY",
+ "ALL"
+ ],
+ "example": "ANY",
+ "type": "string",
+ "x-enum-varnames": [
+ "ANY",
+ "ALL"
+ ]
+ }
+ },
+ "required": [
+ "thresholdType"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "name",
+ "actionId"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "triggers": {
+ "description": "The list of triggers that activate this workflow. At least one trigger is required, and each trigger type may appear at most once.",
+ "items": {
+ "description": "One of the triggers that can start the execution of a workflow.",
+ "oneOf": [
+ {
+ "description": "Schema for an API-based trigger.",
+ "properties": {
+ "apiTrigger": {
+ "description": "Trigger a workflow VIA an API. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "apiTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an App-based trigger.",
+ "properties": {
+ "appTrigger": {
+ "description": "Trigger a workflow VIA an App.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "appTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Case-based trigger.",
+ "properties": {
+ "caseTrigger": {
+ "description": "Trigger a workflow VIA a Case. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "caseTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Change Event-based trigger.",
+ "properties": {
+ "changeEventTrigger": {
+ "description": "Trigger a workflow VIA a Change Event.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "changeEventTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Dashboard-based trigger.",
+ "properties": {
+ "dashboardTrigger": {
+ "description": "Trigger a workflow VIA a Dashboard.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "dashboardTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a GitHub webhook-based trigger.",
+ "properties": {
+ "githubWebhookTrigger": {
+ "description": "Trigger a workflow VIA GitHub webhook. To trigger a workflow from GitHub, you must set a `webhookSecret`. In your GitHub Webhook Settings, set the Payload URL to \"base_url\"/api/v2/workflows/\"workflow_id\"/webhook?orgId=\"org_id\", select application/json for the content type, and be highly recommend enabling SSL verification for security. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "githubWebhookTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an Incident-based trigger.",
+ "properties": {
+ "incidentTrigger": {
+ "description": "Trigger a workflow VIA an Incident. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "incidentTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Monitor-based trigger.",
+ "properties": {
+ "monitorTrigger": {
+ "description": "Trigger a workflow VIA a Monitor. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "monitorTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Schedule-based trigger.",
+ "properties": {
+ "scheduleTrigger": {
+ "description": "Trigger a workflow VIA a Schedule. The workflow must be published.",
+ "properties": {
+ "rruleExpression": {
+ "description": "Recurrence rule expression for scheduling.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "rruleExpression"
+ ],
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "scheduleTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Security-based trigger.",
+ "properties": {
+ "securityTrigger": {
+ "description": "Trigger a workflow VIA a Security Signal or Finding. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "securityTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Slack-based trigger.",
+ "properties": {
+ "slackTrigger": {
+ "description": "Trigger a workflow VIA Slack. The workflow must be published.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "slackTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Workflow-based trigger.",
+ "properties": {
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "workflowTrigger": {
+ "description": "Trigger a workflow VIA the Datadog UI. Only required if no other trigger exists.",
+ "type": "object"
+ }
+ },
+ "required": [
+ "workflowTrigger"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "type": "array"
}
},
- "required": [
- "score",
- "severity"
- ],
"type": "object"
},
- "exploit_available": {
- "description": "Vulnerability public exploit availability.",
- "example": false,
- "type": "boolean"
- },
- "exploit_sources": {
- "description": "Vulnerability exploit sources.",
- "example": [
- "NIST"
- ],
+ "tags": {
+ "description": "Tags of the workflow.",
"items": {
- "example": "NIST",
"type": "string"
},
"type": "array"
},
- "exploitation_probability": {
- "description": "Vulnerability exploitation probability.",
- "example": false,
- "type": "boolean"
+ "updatedAt": {
+ "description": "When the workflow was last updated.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
},
- "poc_exploit_available": {
- "description": "Vulnerability POC exploit availability.",
- "example": false,
- "type": "boolean"
+ "webhookSecret": {
+ "description": "If a Webhook trigger is defined on this workflow, a webhookSecret is required and should be provided here.",
+ "type": "string",
+ "writeOnly": true
}
},
- "required": [
- "exploitation_probability",
- "poc_exploit_available",
- "exploit_available",
- "exploit_sources"
- ],
"type": "object"
},
- "VulnerabilitySeverity": {
- "description": "The vulnerability severity.",
- "enum": [
- "Unknown",
- "None",
- "Low",
- "Medium",
- "High",
- "Critical"
- ],
- "example": "Medium",
- "type": "string",
- "x-enum-varnames": [
- "UNKNOWN",
- "NONE",
- "LOW",
- "MEDIUM",
- "HIGH",
- "CRITICAL"
- ]
- },
- "VulnerabilityStatus": {
- "description": "The vulnerability status.",
- "enum": [
- "Open",
- "Muted",
- "Remediated",
- "InProgress",
- "AutoClosed"
- ],
- "example": "Open",
- "type": "string",
- "x-enum-varnames": [
- "OPEN",
- "MUTED",
- "REMEDIATED",
- "INPROGRESS",
- "AUTOCLOSED"
- ]
- },
- "VulnerabilityTool": {
- "description": "The vulnerability tool.",
- "enum": [
- "IAST",
- "SCA",
- "Infra"
- ],
- "example": "SCA",
- "type": "string",
- "x-enum-varnames": [
- "IAST",
- "SCA",
- "INFRA"
- ]
- },
- "VulnerabilityType": {
- "description": "The vulnerability type.",
- "enum": [
- "AdminConsoleActive",
- "CodeInjection",
- "CommandInjection",
- "ComponentWithKnownVulnerability",
- "DangerousWorkflows",
- "DefaultAppDeployed",
- "DefaultHtmlEscapeInvalid",
- "DirectoryListingLeak",
- "EmailHtmlInjection",
- "EndOfLife",
- "HardcodedPassword",
- "HardcodedSecret",
- "HeaderInjection",
- "HstsHeaderMissing",
- "InsecureAuthProtocol",
- "InsecureCookie",
- "InsecureJspLayout",
- "LdapInjection",
- "MaliciousPackage",
- "MandatoryRemediation",
- "NoHttpOnlyCookie",
- "NoSameSiteCookie",
- "NoSqlMongoDbInjection",
- "PathTraversal",
- "ReflectionInjection",
- "RiskyLicense",
- "SessionRewriting",
- "SessionTimeout",
- "SqlInjection",
- "Ssrf",
- "StackTraceLeak",
- "TrustBoundaryViolation",
- "Unmaintained",
- "UntrustedDeserialization",
- "UnvalidatedRedirect",
- "VerbTampering",
- "WeakCipher",
- "WeakHash",
- "WeakRandomness",
- "XContentTypeHeaderMissing",
- "XPathInjection",
- "Xss"
- ],
- "example": "WeakCipher",
- "type": "string",
- "x-enum-varnames": [
- "ADMIN_CONSOLE_ACTIVE",
- "CODE_INJECTION",
- "COMMAND_INJECTION",
- "COMPONENT_WITH_KNOWN_VULNERABILITY",
- "DANGEROUS_WORKFLOWS",
- "DEFAULT_APP_DEPLOYED",
- "DEFAULT_HTML_ESCAPE_INVALID",
- "DIRECTORY_LISTING_LEAK",
- "EMAIL_HTML_INJECTION",
- "END_OF_LIFE",
- "HARDCODED_PASSWORD",
- "HARDCODED_SECRET",
- "HEADER_INJECTION",
- "HSTS_HEADER_MISSING",
- "INSECURE_AUTH_PROTOCOL",
- "INSECURE_COOKIE",
- "INSECURE_JSP_LAYOUT",
- "LDAP_INJECTION",
- "MALICIOUS_PACKAGE",
- "MANDATORY_REMEDIATION",
- "NO_HTTP_ONLY_COOKIE",
- "NO_SAME_SITE_COOKIE",
- "NO_SQL_MONGO_DB_INJECTION",
- "PATH_TRAVERSAL",
- "REFLECTION_INJECTION",
- "RISKY_LICENSE",
- "SESSION_REWRITING",
- "SESSION_TIMEOUT",
- "SQL_INJECTION",
- "SSRF",
- "STACK_TRACE_LEAK",
- "TRUST_BOUNDARY_VIOLATION",
- "UNMAINTAINED",
- "UNTRUSTED_DESERIALIZATION",
- "UNVALIDATED_REDIRECT",
- "VERB_TAMPERING",
- "WEAK_CIPHER",
- "WEAK_HASH",
- "WEAK_RANDOMNESS",
- "X_CONTENT_TYPE_HEADER_MISSING",
- "X_PATH_INJECTION",
- "XSS"
- ]
- },
- "WidgetLiveSpan": {
- "description": "The available timeframes depend on the widget you are using.",
- "enum": [
- "1m",
- "5m",
- "10m",
- "15m",
- "30m",
- "1h",
- "4h",
- "1d",
- "2d",
- "1w",
- "1mo",
- "3mo",
- "6mo",
- "1y",
- "alert"
- ],
- "example": "5m",
- "type": "string",
- "x-enum-varnames": [
- "PAST_ONE_MINUTE",
- "PAST_FIVE_MINUTES",
- "PAST_TEN_MINUTES",
- "PAST_FIFTEEN_MINUTES",
- "PAST_THIRTY_MINUTES",
- "PAST_ONE_HOUR",
- "PAST_FOUR_HOURS",
- "PAST_ONE_DAY",
- "PAST_TWO_DAYS",
- "PAST_ONE_WEEK",
- "PAST_ONE_MONTH",
- "PAST_THREE_MONTHS",
- "PAST_SIX_MONTHS",
- "PAST_ONE_YEAR",
- "ALERT"
- ]
- },
"WorkflowInstanceCreateMeta": {
"description": "Additional information for creating a workflow instance.",
"properties": {
@@ -214320,6 +233107,99 @@
},
"type": "object"
},
+ "WorkflowTriggerWrapper": {
+ "description": "Schema for a Workflow-based trigger.",
+ "properties": {
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "workflowTrigger": {
+ "description": "Trigger a workflow VIA the Datadog UI. Only required if no other trigger exists.",
+ "type": "object"
+ }
+ },
+ "required": [
+ "workflowTrigger"
+ ],
+ "type": "object"
+ },
+ "WorkflowUserRelationship": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
+ "properties": {
+ "data": {
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
+ "properties": {
+ "id": {
+ "description": "The user identifier",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "id"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "WorkflowUserRelationshipData": {
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
+ "properties": {
+ "id": {
+ "description": "The user identifier",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "id"
+ ],
+ "type": "object"
+ },
+ "WorkflowUserRelationshipType": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ },
"WorklflowCancelInstanceResponse": {
"description": "Information about the canceled instance.",
"properties": {
@@ -369147,6 +388027,1578 @@
}
}
},
+ "/api/v2/security_monitoring/rules/{rule_id}/version_history": {
+ "get": {
+ "description": "Get a rule's version history.",
+ "operationId": "GetRuleVersionHistory",
+ "parameters": [
+ {
+ "description": "The ID of the rule.",
+ "in": "path",
+ "name": "rule_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "Size for a given page. The maximum allowed value is 100.",
+ "in": "query",
+ "name": "page[size]",
+ "required": false,
+ "schema": {
+ "default": 10,
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ {
+ "description": "Specific page number to return.",
+ "in": "query",
+ "name": "page[number]",
+ "required": false,
+ "schema": {
+ "default": 0,
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Response for getting the rule version history.",
+ "properties": {
+ "data": {
+ "description": "Data for the rule version history.",
+ "properties": {
+ "attributes": {
+ "description": "Response object containing the version history of a rule.",
+ "properties": {
+ "count": {
+ "description": "The number of rule versions.",
+ "format": "int32",
+ "maximum": 2147483647,
+ "type": "integer"
+ },
+ "data": {
+ "additionalProperties": {
+ "description": "A rule version with a list of updates.",
+ "properties": {
+ "changes": {
+ "description": "A list of changes.",
+ "items": {
+ "description": "A change in a rule version.",
+ "properties": {
+ "change": {
+ "description": "The new value of the field.",
+ "example": "cloud_provider:aws",
+ "type": "string"
+ },
+ "field": {
+ "description": "The field that was changed.",
+ "example": "Tags",
+ "type": "string"
+ },
+ "type": {
+ "description": "The type of change.",
+ "enum": [
+ "create",
+ "update",
+ "delete"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "CREATE",
+ "UPDATE",
+ "DELETE"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "rule": {
+ "description": "Create a new rule.",
+ "oneOf": [
+ {
+ "description": "Rule.",
+ "properties": {
+ "cases": {
+ "description": "Cases for generating signals.",
+ "items": {
+ "description": "Case when signal is generated.",
+ "properties": {
+ "actions": {
+ "description": "Action to perform for each rule case.",
+ "items": {
+ "description": "Action to perform when a signal is triggered. Only available for Application Security rule type.",
+ "properties": {
+ "options": {
+ "description": "Options for the rule action",
+ "properties": {
+ "duration": {
+ "description": "Duration of the action in seconds. 0 indicates no expiration.",
+ "example": 0,
+ "format": "int64",
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "description": "The action type.",
+ "enum": [
+ "block_ip",
+ "block_user"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "BLOCK_IP",
+ "BLOCK_USER"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "condition": {
+ "description": "A rule case contains logical operations (`>`,`>=`, `&&`, `||`) to determine if a signal should be generated\nbased on the event counts in the previously defined queries.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the case.",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notification targets for each rule case.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "status": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "complianceSignalOptions": {
+ "description": "How to generate compliance signals. Useful for cloud_configuration rules only.",
+ "properties": {
+ "defaultActivationStatus": {
+ "description": "The default activation status.",
+ "nullable": true,
+ "type": "boolean"
+ },
+ "defaultGroupByFields": {
+ "description": "The default group by fields.",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true,
+ "type": "array"
+ },
+ "userActivationStatus": {
+ "description": "Whether signals will be sent.",
+ "nullable": true,
+ "type": "boolean"
+ },
+ "userGroupByFields": {
+ "description": "Fields to use to group findings by when sending signals.",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true,
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "createdAt": {
+ "description": "When the rule was created, timestamp in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "creationAuthorId": {
+ "description": "User ID of the user who created the rule.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "defaultTags": {
+ "description": "Default Tags for default rules (included in tags)",
+ "example": [
+ "security:attacks"
+ ],
+ "items": {
+ "description": "Default Tag.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "deprecationDate": {
+ "description": "When the rule will be deprecated, timestamp in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "filters": {
+ "description": "Additional queries to filter matched events before they are processed. This field is deprecated for log detection, signal correlation, and workload security rules.",
+ "items": {
+ "description": "The rule's suppression filter.",
+ "properties": {
+ "action": {
+ "description": "The type of filtering action.",
+ "enum": [
+ "require",
+ "suppress"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "REQUIRE",
+ "SUPPRESS"
+ ]
+ },
+ "query": {
+ "description": "Query for selecting logs to apply the filtering action.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "groupSignalsBy": {
+ "description": "Additional grouping to perform on top of the existing groups in the query section. Must be a subset of the existing groups.",
+ "example": [
+ "service"
+ ],
+ "items": {
+ "description": "Field to group by.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "hasExtendedTitle": {
+ "description": "Whether the notifications include the triggering group-by values in their title.",
+ "type": "boolean"
+ },
+ "id": {
+ "description": "The ID of the rule.",
+ "type": "string"
+ },
+ "isDefault": {
+ "description": "Whether the rule is included by default.",
+ "type": "boolean"
+ },
+ "isDeleted": {
+ "description": "Whether the rule has been deleted.",
+ "type": "boolean"
+ },
+ "isEnabled": {
+ "description": "Whether the rule is enabled.",
+ "type": "boolean"
+ },
+ "message": {
+ "description": "Message for generated signals.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the rule.",
+ "type": "string"
+ },
+ "options": {
+ "description": "Options.",
+ "properties": {
+ "complianceRuleOptions": {
+ "additionalProperties": {},
+ "description": "Options for cloud_configuration rules.\nFields `resourceType` and `regoRule` are mandatory when managing custom `cloud_configuration` rules.\n",
+ "properties": {
+ "complexRule": {
+ "description": "Whether the rule is a complex one.\nMust be set to true if `regoRule.resourceTypes` contains more than one item. Defaults to false.\n",
+ "type": "boolean"
+ },
+ "regoRule": {
+ "description": "Rule details.",
+ "properties": {
+ "policy": {
+ "description": "The policy written in `rego`, see: https://www.openpolicyagent.org/docs/latest/policy-language/",
+ "example": "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}\n",
+ "type": "string"
+ },
+ "resourceTypes": {
+ "description": "List of resource types that will be evaluated upon. Must have at least one element.",
+ "example": [
+ "gcp_iam_service_account",
+ "gcp_iam_policy"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "policy",
+ "resourceTypes"
+ ],
+ "type": "object"
+ },
+ "resourceType": {
+ "description": "Main resource type to be checked by the rule. It should be specified again in `regoRule.resourceTypes`.\n",
+ "example": "aws_acm",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "decreaseCriticalityBasedOnEnv": {
+ "description": "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`.",
+ "example": false,
+ "type": "boolean"
+ },
+ "detectionMethod": {
+ "description": "The detection method.",
+ "enum": [
+ "threshold",
+ "new_value",
+ "anomaly_detection",
+ "impossible_travel",
+ "hardcoded",
+ "third_party",
+ "anomaly_threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "THRESHOLD",
+ "NEW_VALUE",
+ "ANOMALY_DETECTION",
+ "IMPOSSIBLE_TRAVEL",
+ "HARDCODED",
+ "THIRD_PARTY",
+ "ANOMALY_THRESHOLD"
+ ]
+ },
+ "evaluationWindow": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS"
+ ]
+ },
+ "hardcodedEvaluatorType": {
+ "description": "Hardcoded evaluator type.",
+ "enum": [
+ "log4shell"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "LOG4SHELL"
+ ]
+ },
+ "impossibleTravelOptions": {
+ "description": "Options on impossible travel detection method.",
+ "properties": {
+ "baselineUserLocations": {
+ "description": "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.",
+ "example": true,
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "keepAlive": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS"
+ ]
+ },
+ "maxSignalDuration": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600,
+ 43200,
+ 86400
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS",
+ "TWELVE_HOURS",
+ "ONE_DAY"
+ ]
+ },
+ "newValueOptions": {
+ "description": "Options on new value detection method.",
+ "properties": {
+ "forgetAfter": {
+ "description": "The duration in days after which a learned value is forgotten.",
+ "enum": [
+ 1,
+ 2,
+ 7,
+ 14,
+ 21,
+ 28
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ONE_DAY",
+ "TWO_DAYS",
+ "ONE_WEEK",
+ "TWO_WEEKS",
+ "THREE_WEEKS",
+ "FOUR_WEEKS"
+ ]
+ },
+ "learningDuration": {
+ "default": 0,
+ "description": "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.",
+ "enum": [
+ 0,
+ 1,
+ 7
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_DAYS",
+ "ONE_DAY",
+ "SEVEN_DAYS"
+ ]
+ },
+ "learningMethod": {
+ "default": "duration",
+ "description": "The learning method used to determine when signals should be generated for values that weren't learned.",
+ "enum": [
+ "duration",
+ "threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "DURATION",
+ "THRESHOLD"
+ ]
+ },
+ "learningThreshold": {
+ "default": 0,
+ "description": "A number of occurrences after which signals will be generated for values that weren't learned.",
+ "enum": [
+ 0,
+ 1
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_OCCURRENCES",
+ "ONE_OCCURRENCE"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "thirdPartyRuleOptions": {
+ "description": "Options on third party detection method.",
+ "properties": {
+ "defaultNotifications": {
+ "description": "Notification targets for the logs that do not correspond to any of the cases.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "defaultStatus": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ },
+ "rootQueries": {
+ "description": "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.",
+ "items": {
+ "description": "A query to be combined with the third party case query.",
+ "properties": {
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "query": {
+ "description": "Query to run on logs.",
+ "example": "source:cloudtrail",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "signalTitleTemplate": {
+ "description": "A template for the signal title; if omitted, the title is generated based on the case name.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "queries": {
+ "description": "Queries for selecting logs which are part of the rule.",
+ "items": {
+ "description": "Query for matching rule.",
+ "properties": {
+ "aggregation": {
+ "description": "The aggregation type.",
+ "enum": [
+ "count",
+ "cardinality",
+ "sum",
+ "max",
+ "new_value",
+ "geo_data",
+ "event_count",
+ "none"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "COUNT",
+ "CARDINALITY",
+ "SUM",
+ "MAX",
+ "NEW_VALUE",
+ "GEO_DATA",
+ "EVENT_COUNT",
+ "NONE"
+ ]
+ },
+ "distinctFields": {
+ "description": "Field for which the cardinality is measured. Sent as an array.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "hasOptionalGroupByFields": {
+ "description": "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.",
+ "example": false,
+ "readOnly": true,
+ "type": "boolean"
+ },
+ "metric": {
+ "deprecated": true,
+ "description": "(Deprecated) The target field to aggregate over when using the sum or max\naggregations. `metrics` field should be used instead.",
+ "type": "string"
+ },
+ "metrics": {
+ "description": "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.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the query.",
+ "type": "string"
+ },
+ "query": {
+ "description": "Query to run on logs.",
+ "example": "a > 3",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "referenceTables": {
+ "description": "Reference tables for the rule.",
+ "items": {
+ "description": "Reference tables used in the queries.",
+ "properties": {
+ "checkPresence": {
+ "description": "Whether to include or exclude the matched values.",
+ "type": "boolean"
+ },
+ "columnName": {
+ "description": "The name of the column in the reference table.",
+ "type": "string"
+ },
+ "logFieldPath": {
+ "description": "The field in the log to match against the reference table.",
+ "type": "string"
+ },
+ "ruleQueryName": {
+ "description": "The name of the query to apply the reference table to.",
+ "type": "string"
+ },
+ "tableName": {
+ "description": "The name of the reference table.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "tags": {
+ "description": "Tags for generated signals.",
+ "items": {
+ "description": "Tag.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "thirdPartyCases": {
+ "description": "Cases for generating signals from third-party rules. Only available for third-party rules.",
+ "example": [],
+ "items": {
+ "description": "Case when signal is generated by a third party rule.",
+ "properties": {
+ "name": {
+ "description": "Name of the case.",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notification targets for each rule case.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "query": {
+ "description": "A query to map a third party event to this case.",
+ "type": "string"
+ },
+ "status": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "type": {
+ "description": "The rule type.",
+ "enum": [
+ "log_detection",
+ "infrastructure_configuration",
+ "workload_security",
+ "cloud_configuration",
+ "application_security"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "LOG_DETECTION",
+ "INFRASTRUCTURE_CONFIGURATION",
+ "WORKLOAD_SECURITY",
+ "CLOUD_CONFIGURATION",
+ "APPLICATION_SECURITY"
+ ]
+ },
+ "updateAuthorId": {
+ "description": "User ID of the user who updated the rule.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "updatedAt": {
+ "description": "The date the rule was last updated, in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "version": {
+ "description": "The version of the rule.",
+ "format": "int64",
+ "type": "integer"
+ }
+ }
+ },
+ {
+ "description": "Rule.",
+ "properties": {
+ "cases": {
+ "description": "Cases for generating signals.",
+ "items": {
+ "description": "Case when signal is generated.",
+ "properties": {
+ "actions": {
+ "description": "Action to perform for each rule case.",
+ "items": {
+ "description": "Action to perform when a signal is triggered. Only available for Application Security rule type.",
+ "properties": {
+ "options": {
+ "description": "Options for the rule action",
+ "properties": {
+ "duration": {
+ "description": "Duration of the action in seconds. 0 indicates no expiration.",
+ "example": 0,
+ "format": "int64",
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "description": "The action type.",
+ "enum": [
+ "block_ip",
+ "block_user"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "BLOCK_IP",
+ "BLOCK_USER"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "condition": {
+ "description": "A rule case contains logical operations (`>`,`>=`, `&&`, `||`) to determine if a signal should be generated\nbased on the event counts in the previously defined queries.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the case.",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notification targets for each rule case.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "status": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "createdAt": {
+ "description": "When the rule was created, timestamp in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "creationAuthorId": {
+ "description": "User ID of the user who created the rule.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "deprecationDate": {
+ "description": "When the rule will be deprecated, timestamp in milliseconds.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "filters": {
+ "description": "Additional queries to filter matched events before they are processed. This field is deprecated for log detection, signal correlation, and workload security rules.",
+ "items": {
+ "description": "The rule's suppression filter.",
+ "properties": {
+ "action": {
+ "description": "The type of filtering action.",
+ "enum": [
+ "require",
+ "suppress"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "REQUIRE",
+ "SUPPRESS"
+ ]
+ },
+ "query": {
+ "description": "Query for selecting logs to apply the filtering action.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "hasExtendedTitle": {
+ "description": "Whether the notifications include the triggering group-by values in their title.",
+ "type": "boolean"
+ },
+ "id": {
+ "description": "The ID of the rule.",
+ "type": "string"
+ },
+ "isDefault": {
+ "description": "Whether the rule is included by default.",
+ "type": "boolean"
+ },
+ "isDeleted": {
+ "description": "Whether the rule has been deleted.",
+ "type": "boolean"
+ },
+ "isEnabled": {
+ "description": "Whether the rule is enabled.",
+ "type": "boolean"
+ },
+ "message": {
+ "description": "Message for generated signals.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the rule.",
+ "type": "string"
+ },
+ "options": {
+ "description": "Options.",
+ "properties": {
+ "complianceRuleOptions": {
+ "additionalProperties": {},
+ "description": "Options for cloud_configuration rules.\nFields `resourceType` and `regoRule` are mandatory when managing custom `cloud_configuration` rules.\n",
+ "properties": {
+ "complexRule": {
+ "description": "Whether the rule is a complex one.\nMust be set to true if `regoRule.resourceTypes` contains more than one item. Defaults to false.\n",
+ "type": "boolean"
+ },
+ "regoRule": {
+ "description": "Rule details.",
+ "properties": {
+ "policy": {
+ "description": "The policy written in `rego`, see: https://www.openpolicyagent.org/docs/latest/policy-language/",
+ "example": "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}\n",
+ "type": "string"
+ },
+ "resourceTypes": {
+ "description": "List of resource types that will be evaluated upon. Must have at least one element.",
+ "example": [
+ "gcp_iam_service_account",
+ "gcp_iam_policy"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "policy",
+ "resourceTypes"
+ ],
+ "type": "object"
+ },
+ "resourceType": {
+ "description": "Main resource type to be checked by the rule. It should be specified again in `regoRule.resourceTypes`.\n",
+ "example": "aws_acm",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "decreaseCriticalityBasedOnEnv": {
+ "description": "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`.",
+ "example": false,
+ "type": "boolean"
+ },
+ "detectionMethod": {
+ "description": "The detection method.",
+ "enum": [
+ "threshold",
+ "new_value",
+ "anomaly_detection",
+ "impossible_travel",
+ "hardcoded",
+ "third_party",
+ "anomaly_threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "THRESHOLD",
+ "NEW_VALUE",
+ "ANOMALY_DETECTION",
+ "IMPOSSIBLE_TRAVEL",
+ "HARDCODED",
+ "THIRD_PARTY",
+ "ANOMALY_THRESHOLD"
+ ]
+ },
+ "evaluationWindow": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS"
+ ]
+ },
+ "hardcodedEvaluatorType": {
+ "description": "Hardcoded evaluator type.",
+ "enum": [
+ "log4shell"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "LOG4SHELL"
+ ]
+ },
+ "impossibleTravelOptions": {
+ "description": "Options on impossible travel detection method.",
+ "properties": {
+ "baselineUserLocations": {
+ "description": "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.",
+ "example": true,
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "keepAlive": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS"
+ ]
+ },
+ "maxSignalDuration": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600,
+ 43200,
+ 86400
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS",
+ "TWELVE_HOURS",
+ "ONE_DAY"
+ ]
+ },
+ "newValueOptions": {
+ "description": "Options on new value detection method.",
+ "properties": {
+ "forgetAfter": {
+ "description": "The duration in days after which a learned value is forgotten.",
+ "enum": [
+ 1,
+ 2,
+ 7,
+ 14,
+ 21,
+ 28
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ONE_DAY",
+ "TWO_DAYS",
+ "ONE_WEEK",
+ "TWO_WEEKS",
+ "THREE_WEEKS",
+ "FOUR_WEEKS"
+ ]
+ },
+ "learningDuration": {
+ "default": 0,
+ "description": "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.",
+ "enum": [
+ 0,
+ 1,
+ 7
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_DAYS",
+ "ONE_DAY",
+ "SEVEN_DAYS"
+ ]
+ },
+ "learningMethod": {
+ "default": "duration",
+ "description": "The learning method used to determine when signals should be generated for values that weren't learned.",
+ "enum": [
+ "duration",
+ "threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "DURATION",
+ "THRESHOLD"
+ ]
+ },
+ "learningThreshold": {
+ "default": 0,
+ "description": "A number of occurrences after which signals will be generated for values that weren't learned.",
+ "enum": [
+ 0,
+ 1
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_OCCURRENCES",
+ "ONE_OCCURRENCE"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "thirdPartyRuleOptions": {
+ "description": "Options on third party detection method.",
+ "properties": {
+ "defaultNotifications": {
+ "description": "Notification targets for the logs that do not correspond to any of the cases.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "defaultStatus": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ },
+ "rootQueries": {
+ "description": "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.",
+ "items": {
+ "description": "A query to be combined with the third party case query.",
+ "properties": {
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "query": {
+ "description": "Query to run on logs.",
+ "example": "source:cloudtrail",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "signalTitleTemplate": {
+ "description": "A template for the signal title; if omitted, the title is generated based on the case name.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "queries": {
+ "description": "Queries for selecting logs which are part of the rule.",
+ "items": {
+ "description": "Query for matching rule on signals.",
+ "properties": {
+ "aggregation": {
+ "description": "The aggregation type.",
+ "enum": [
+ "count",
+ "cardinality",
+ "sum",
+ "max",
+ "new_value",
+ "geo_data",
+ "event_count",
+ "none"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "COUNT",
+ "CARDINALITY",
+ "SUM",
+ "MAX",
+ "NEW_VALUE",
+ "GEO_DATA",
+ "EVENT_COUNT",
+ "NONE"
+ ]
+ },
+ "correlatedByFields": {
+ "description": "Fields to correlate by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "correlatedQueryIndex": {
+ "description": "Index of the rule query used to retrieve the correlated field.",
+ "format": "int32",
+ "maximum": 9,
+ "type": "integer"
+ },
+ "defaultRuleId": {
+ "description": "Default Rule ID to match on signals.",
+ "example": "d3f-ru1-e1d",
+ "type": "string"
+ },
+ "distinctFields": {
+ "description": "Field for which the cardinality is measured. Sent as an array.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "metrics": {
+ "description": "Group of target fields to aggregate over.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the query.",
+ "type": "string"
+ },
+ "ruleId": {
+ "description": "Rule ID to match on signals.",
+ "example": "org-ru1-e1d",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "tags": {
+ "description": "Tags for generated signals.",
+ "items": {
+ "description": "Tag.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "type": {
+ "description": "The rule type.",
+ "enum": [
+ "signal_correlation"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "SIGNAL_CORRELATION"
+ ]
+ },
+ "updateAuthorId": {
+ "description": "User ID of the user who updated the rule.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "version": {
+ "description": "The version of the rule.",
+ "format": "int64",
+ "type": "integer"
+ }
+ }
+ }
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "description": "The `RuleVersionHistory` `data`.",
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the rule.",
+ "type": "string"
+ },
+ "type": {
+ "description": "Type of data.",
+ "enum": [
+ "GetRuleVersionHistoryResponse"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "GETRULEVERSIONHISTORYRESPONSE"
+ ]
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "OK"
+ },
+ "400": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Bad Request"
+ },
+ "403": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Not Authorized"
+ },
+ "404": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Not Found"
+ },
+ "429": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Too many requests"
+ }
+ },
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
+ },
+ {
+ "AuthZ": [
+ "security_monitoring_rules_read"
+ ]
+ }
+ ],
+ "summary": "Get a rule's version history",
+ "tags": [
+ "Security Monitoring"
+ ],
+ "x-menu-order": 25,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "security_monitoring_rules_read"
+ ]
+ },
+ "x-undo": {
+ "type": "safe"
+ },
+ "x-unstable": "**Note**: This endpoint is in beta and may be subject to changes."
+ }
+ },
"/api/v2/security_monitoring/signals": {
"get": {
"description": "The list endpoint returns security signals that match a search query.\nBoth this endpoint and the POST endpoint can be used interchangeably when listing\nsecurity signals.",
@@ -373503,35 +393955,852 @@
"type": "object"
}
},
- "type": "object"
+ "type": "object"
+ },
+ "type": {
+ "default": "sensitive_data_scanner_rule",
+ "description": "Sensitive Data Scanner rule type.",
+ "enum": [
+ "sensitive_data_scanner_rule"
+ ],
+ "example": "sensitive_data_scanner_rule",
+ "type": "string",
+ "x-enum-varnames": [
+ "SENSITIVE_DATA_SCANNER_RULE"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "meta": {
+ "description": "Meta payload containing information about the API.",
+ "properties": {
+ "version": {
+ "description": "Version of the API (optional).",
+ "example": 0,
+ "format": "int64",
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "OK"
+ },
+ "400": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Bad Request"
+ },
+ "403": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Authentication Error"
+ },
+ "429": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Too many requests"
+ }
+ },
+ "summary": "Create Scanning Rule",
+ "tags": [
+ "Sensitive Data Scanner"
+ ],
+ "x-codegen-request-body-name": "body",
+ "x-given": {
+ "rule": {
+ "parameters": [
+ {
+ "name": "body",
+ "value": "{\n \"data\": {\n \"type\": \"sensitive_data_scanner_rule\",\n \"attributes\": {\n \"name\": \"{{ unique }}\",\n \"pattern\": \"pattern\",\n \"namespaces\": [\"admin.email\"],\n \"text_replacement\": {\n \"type\": \"none\"\n },\n \"tags\":[\n \"sensitive_data:true\"\n ],\n \"is_enabled\":true\n },\n \"relationships\": {\n \"group\": {\n \"data\": {\n \"id\": \"{{ group.data.id }}\",\n \"type\": \"{{ group.data.type }}\"\n }\n }\n }\n },\n \"meta\": {}\n}"
+ }
+ ],
+ "step": "the \"scanning_group\" has a \"scanning_rule\""
+ }
+ },
+ "x-menu-order": 7,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "data_scanner_write"
+ ]
+ },
+ "x-undo": {
+ "operationId": "DeleteScanningRule",
+ "parameters": [
+ {
+ "name": "rule_id",
+ "source": "data.id"
+ },
+ {
+ "name": "body",
+ "template": "{\n \"meta\": {}\n}"
+ }
+ ],
+ "type": "unsafe"
+ }
+ }
+ },
+ "/api/v2/sensitive-data-scanner/config/rules/{rule_id}": {
+ "delete": {
+ "description": "Delete a given rule.",
+ "operationId": "DeleteScanningRule",
+ "parameters": [
+ {
+ "description": "The ID of the rule.",
+ "in": "path",
+ "name": "rule_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Delete rule request.",
+ "properties": {
+ "meta": {
+ "description": "Meta payload containing information about the API.",
+ "properties": {
+ "version": {
+ "description": "Version of the API (optional).",
+ "example": 0,
+ "format": "int64",
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "required": [
+ "meta"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Delete rule response.",
+ "properties": {
+ "meta": {
+ "description": "Meta payload containing information about the API.",
+ "properties": {
+ "version": {
+ "description": "Version of the API (optional).",
+ "example": 0,
+ "format": "int64",
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "OK"
+ },
+ "400": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Bad Request"
+ },
+ "403": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Authentication Error"
+ },
+ "404": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Not Found"
+ },
+ "429": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Too many requests"
+ }
+ },
+ "summary": "Delete Scanning Rule",
+ "tags": [
+ "Sensitive Data Scanner"
+ ],
+ "x-codegen-request-body-name": "body",
+ "x-menu-order": 9,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "data_scanner_write"
+ ]
+ },
+ "x-undo": {
+ "type": "idempotent"
+ }
+ },
+ "patch": {
+ "description": "Update a scanning rule.\nThe request body MUST NOT include a standard_pattern relationship, as that relationship\nis non-editable. Trying to edit the regex attribute of a rule with a standard_pattern\nrelationship will also result in an error.",
+ "operationId": "UpdateScanningRule",
+ "parameters": [
+ {
+ "description": "The ID of the rule.",
+ "in": "path",
+ "name": "rule_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Update rule request.",
+ "properties": {
+ "data": {
+ "description": "Data related to the update of a rule.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of the Sensitive Data Scanner rule.",
+ "properties": {
+ "description": {
+ "description": "Description of the rule.",
+ "type": "string"
+ },
+ "excluded_namespaces": {
+ "description": "Attributes excluded from the scan. If namespaces is provided, it has to be a sub-path of the namespaces array.",
+ "example": [
+ "admin.name"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "included_keyword_configuration": {
+ "description": "Object defining a set of keywords and a number of characters that help reduce noise.\nYou can provide a list of keywords you would like to check within a defined proximity of the matching pattern.\nIf any of the keywords are found within the proximity check, the match is kept.\nIf none are found, the match is discarded.",
+ "properties": {
+ "character_count": {
+ "description": "The number of characters behind a match detected by Sensitive Data Scanner to look for the keywords defined.\n`character_count` should be greater than the maximum length of a keyword defined for a rule.",
+ "example": 30,
+ "format": "int64",
+ "maximum": 50,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "keywords": {
+ "description": "Keyword list that will be checked during scanning in order to validate a match.\nThe number of keywords in the list must be less than or equal to 30.",
+ "example": [
+ "credit card",
+ "cc"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "use_recommended_keywords": {
+ "description": "Should the rule use the underlying standard pattern keyword configuration. If set to `true`, the rule must be tied\nto a standard pattern. If set to `false`, the specified keywords and `character_count` are applied.",
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "keywords",
+ "character_count"
+ ],
+ "type": "object"
+ },
+ "is_enabled": {
+ "description": "Whether or not the rule is enabled.",
+ "type": "boolean"
+ },
+ "name": {
+ "description": "Name of the rule.",
+ "type": "string"
+ },
+ "namespaces": {
+ "description": "Attributes included in the scan. If namespaces is empty or missing, all attributes except excluded_namespaces are scanned.\nIf both are missing the whole event is scanned.",
+ "example": [
+ "admin"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "pattern": {
+ "description": "Not included if there is a relationship to a standard pattern.",
+ "type": "string"
+ },
+ "priority": {
+ "description": "Integer from 1 (high) to 5 (low) indicating rule issue severity.",
+ "format": "int64",
+ "maximum": 5,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "tags": {
+ "description": "List of tags.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "text_replacement": {
+ "description": "Object describing how the scanned event will be replaced.",
+ "properties": {
+ "number_of_chars": {
+ "description": "Required if type == 'partial_replacement_from_beginning'\nor 'partial_replacement_from_end'. It must be > 0.",
+ "format": "int64",
+ "minimum": 0,
+ "type": "integer"
+ },
+ "replacement_string": {
+ "description": "Required if type == 'replacement_string'.",
+ "type": "string"
+ },
+ "type": {
+ "default": "none",
+ "description": "Type of the replacement text. None means no replacement.\nhash means the data will be stubbed. replacement_string means that\none can chose a text to replace the data. partial_replacement_from_beginning\nallows a user to partially replace the data from the beginning, and\npartial_replacement_from_end on the other hand, allows to replace data from\nthe end.",
+ "enum": [
+ "none",
+ "hash",
+ "replacement_string",
+ "partial_replacement_from_beginning",
+ "partial_replacement_from_end"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "NONE",
+ "HASH",
+ "REPLACEMENT_STRING",
+ "PARTIAL_REPLACEMENT_FROM_BEGINNING",
+ "PARTIAL_REPLACEMENT_FROM_END"
+ ]
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the rule.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships of a scanning rule.",
+ "properties": {
+ "group": {
+ "description": "A scanning group data.",
+ "properties": {
+ "data": {
+ "description": "A scanning group.",
+ "properties": {
+ "id": {
+ "description": "ID of the group.",
+ "type": "string"
+ },
+ "type": {
+ "default": "sensitive_data_scanner_group",
+ "description": "Sensitive Data Scanner group type.",
+ "enum": [
+ "sensitive_data_scanner_group"
+ ],
+ "example": "sensitive_data_scanner_group",
+ "type": "string",
+ "x-enum-varnames": [
+ "SENSITIVE_DATA_SCANNER_GROUP"
+ ]
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "standard_pattern": {
+ "description": "A standard pattern.",
+ "properties": {
+ "data": {
+ "description": "Data containing the standard pattern id.",
+ "properties": {
+ "id": {
+ "description": "ID of the standard pattern.",
+ "type": "string"
+ },
+ "type": {
+ "default": "sensitive_data_scanner_standard_pattern",
+ "description": "Sensitive Data Scanner standard pattern type.",
+ "enum": [
+ "sensitive_data_scanner_standard_pattern"
+ ],
+ "example": "sensitive_data_scanner_standard_pattern",
+ "type": "string",
+ "x-enum-varnames": [
+ "SENSITIVE_DATA_SCANNER_STANDARD_PATTERN"
+ ]
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "default": "sensitive_data_scanner_rule",
+ "description": "Sensitive Data Scanner rule type.",
+ "enum": [
+ "sensitive_data_scanner_rule"
+ ],
+ "example": "sensitive_data_scanner_rule",
+ "type": "string",
+ "x-enum-varnames": [
+ "SENSITIVE_DATA_SCANNER_RULE"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "meta": {
+ "description": "Meta payload containing information about the API.",
+ "properties": {
+ "version": {
+ "description": "Version of the API (optional).",
+ "example": 0,
+ "format": "int64",
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "required": [
+ "data",
+ "meta"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Update rule response.",
+ "properties": {
+ "meta": {
+ "description": "Meta payload containing information about the API.",
+ "properties": {
+ "version": {
+ "description": "Version of the API (optional).",
+ "example": 0,
+ "format": "int64",
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "OK"
+ },
+ "400": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Bad Request"
+ },
+ "403": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Authentication Error"
+ },
+ "404": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Not Found"
+ },
+ "429": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Too many requests"
+ }
+ },
+ "summary": "Update Scanning Rule",
+ "tags": [
+ "Sensitive Data Scanner"
+ ],
+ "x-codegen-request-body-name": "body",
+ "x-menu-order": 8,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "data_scanner_write"
+ ]
+ },
+ "x-undo": {
+ "type": "idempotent"
+ }
+ }
+ },
+ "/api/v2/sensitive-data-scanner/config/standard-patterns": {
+ "get": {
+ "description": "Returns all standard patterns.",
+ "operationId": "ListStandardPatterns",
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "List Standard patterns response data.",
+ "properties": {
+ "data": {
+ "description": "List Standard patterns response.",
+ "items": {
+ "description": "Standard pattern item.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of the Sensitive Data Scanner standard pattern.",
+ "properties": {
+ "description": {
+ "description": "Description of the standard pattern.",
+ "type": "string"
+ },
+ "included_keywords": {
+ "description": "List of included keywords.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the standard pattern.",
+ "type": "string"
+ },
+ "pattern": {
+ "deprecated": true,
+ "description": "(Deprecated) Regex to match, optionally documented for older standard rules. Refer to the `description` field to understand what the rule does.",
+ "type": "string"
+ },
+ "priority": {
+ "description": "Integer from 1 (high) to 5 (low) indicating standard pattern issue severity.",
+ "format": "int64",
+ "maximum": 5,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "tags": {
+ "description": "List of tags.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the standard pattern.",
+ "type": "string"
+ },
+ "type": {
+ "default": "sensitive_data_scanner_standard_pattern",
+ "description": "Sensitive Data Scanner standard pattern type.",
+ "enum": [
+ "sensitive_data_scanner_standard_pattern"
+ ],
+ "example": "sensitive_data_scanner_standard_pattern",
+ "type": "string",
+ "x-enum-varnames": [
+ "SENSITIVE_DATA_SCANNER_STANDARD_PATTERN"
+ ]
+ }
},
- "type": {
- "default": "sensitive_data_scanner_rule",
- "description": "Sensitive Data Scanner rule type.",
- "enum": [
- "sensitive_data_scanner_rule"
- ],
- "example": "sensitive_data_scanner_rule",
- "type": "string",
- "x-enum-varnames": [
- "SENSITIVE_DATA_SCANNER_RULE"
- ]
- }
- },
- "type": "object"
- },
- "meta": {
- "description": "Meta payload containing information about the API.",
- "properties": {
- "version": {
- "description": "Version of the API (optional).",
- "example": 0,
- "format": "int64",
- "minimum": 0,
- "type": "integer"
- }
+ "type": "object"
},
- "type": "object"
+ "type": "array"
}
},
"type": "object"
@@ -373625,82 +394894,234 @@
"description": "Too many requests"
}
},
- "summary": "Create Scanning Rule",
+ "summary": "List standard patterns",
"tags": [
"Sensitive Data Scanner"
],
- "x-codegen-request-body-name": "body",
- "x-given": {
- "rule": {
- "parameters": [
- {
- "name": "body",
- "value": "{\n \"data\": {\n \"type\": \"sensitive_data_scanner_rule\",\n \"attributes\": {\n \"name\": \"{{ unique }}\",\n \"pattern\": \"pattern\",\n \"namespaces\": [\"admin.email\"],\n \"text_replacement\": {\n \"type\": \"none\"\n },\n \"tags\":[\n \"sensitive_data:true\"\n ],\n \"is_enabled\":true\n },\n \"relationships\": {\n \"group\": {\n \"data\": {\n \"id\": \"{{ group.data.id }}\",\n \"type\": \"{{ group.data.type }}\"\n }\n }\n }\n },\n \"meta\": {}\n}"
- }
- ],
- "step": "the \"scanning_group\" has a \"scanning_rule\""
- }
- },
- "x-menu-order": 7,
+ "x-menu-order": 3,
"x-permission": {
"operator": "OR",
"permissions": [
- "data_scanner_write"
+ "data_scanner_read"
]
},
"x-undo": {
- "operationId": "DeleteScanningRule",
- "parameters": [
- {
- "name": "rule_id",
- "source": "data.id"
- },
- {
- "name": "body",
- "template": "{\n \"meta\": {}\n}"
- }
- ],
- "type": "unsafe"
+ "type": "safe"
}
}
},
- "/api/v2/sensitive-data-scanner/config/rules/{rule_id}": {
- "delete": {
- "description": "Delete a given rule.",
- "operationId": "DeleteScanningRule",
+ "/api/v2/series": {
+ "post": {
+ "description": "The metrics end-point allows you to post time-series data that can be graphed on Datadog’s dashboards.\nThe maximum payload size is 500 kilobytes (512000 bytes). Compressed payloads must have a decompressed size of less than 5 megabytes (5242880 bytes).\n\nIf you’re submitting metrics directly to the Datadog API without using DogStatsD, expect:\n\n- 64 bits for the timestamp\n- 64 bits for the value\n- 20 bytes for the metric names\n- 50 bytes for the timeseries\n- The full payload is approximately 100 bytes.\n\nHost name is one of the resources in the Resources field.",
+ "operationId": "SubmitMetrics",
"parameters": [
{
- "description": "The ID of the rule.",
- "in": "path",
- "name": "rule_id",
- "required": true,
+ "description": "HTTP header used to compress the media-type.",
+ "in": "header",
+ "name": "Content-Encoding",
+ "required": false,
"schema": {
- "type": "string"
+ "default": "deflate",
+ "description": "HTTP header used to compress the media-type.",
+ "enum": [
+ "deflate",
+ "zstd1",
+ "gzip"
+ ],
+ "example": "deflate",
+ "type": "string",
+ "x-enum-varnames": [
+ "DEFLATE",
+ "ZSTD1",
+ "GZIP"
+ ]
}
}
],
"requestBody": {
"content": {
"application/json": {
+ "examples": {
+ "dynamic-points": {
+ "description": "Post time-series data that can be graphed on Datadog’s dashboards.",
+ "externalValue": "examples/metrics/dynamic-points.json.sh",
+ "summary": "Dynamic Points",
+ "x-variables": {
+ "NOW": "$(date +%s)"
+ }
+ }
+ },
"schema": {
- "description": "Delete rule request.",
+ "description": "The metrics' payload.",
"properties": {
- "meta": {
- "description": "Meta payload containing information about the API.",
- "properties": {
- "version": {
- "description": "Version of the API (optional).",
- "example": 0,
- "format": "int64",
- "minimum": 0,
- "type": "integer"
+ "series": {
+ "description": "A list of timeseries to submit to Datadog.",
+ "example": [
+ {
+ "metric": "system.load.1",
+ "points": [
+ {
+ "timestamp": 1475317847,
+ "value": 0.7
+ }
+ ],
+ "resources": [
+ {
+ "name": "dummyhost",
+ "type": "host"
+ }
+ ]
}
+ ],
+ "items": {
+ "description": "A metric to submit to Datadog.\nSee [Datadog metrics](https://docs.datadoghq.com/developers/metrics/#custom-metrics-properties).",
+ "properties": {
+ "interval": {
+ "description": "If the type of the metric is rate or count, define the corresponding interval in seconds.",
+ "example": 20,
+ "format": "int64",
+ "type": "integer"
+ },
+ "metadata": {
+ "description": "Metadata for the metric.",
+ "properties": {
+ "origin": {
+ "description": "Metric origin information.",
+ "properties": {
+ "metric_type": {
+ "default": 0,
+ "description": "The origin metric type code",
+ "format": "int32",
+ "maximum": 1000,
+ "type": "integer"
+ },
+ "product": {
+ "default": 0,
+ "description": "The origin product code",
+ "format": "int32",
+ "maximum": 1000,
+ "type": "integer"
+ },
+ "service": {
+ "default": 0,
+ "description": "The origin service code",
+ "format": "int32",
+ "maximum": 1000,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "metric": {
+ "description": "The name of the timeseries.",
+ "example": "system.load.1",
+ "type": "string"
+ },
+ "points": {
+ "description": "Points relating to a metric. All points must be objects with timestamp and a scalar value (cannot be a string). Timestamps should be in POSIX time in seconds, and cannot be more than ten minutes in the future or more than one hour in the past.",
+ "example": [
+ {
+ "timestamp": 1575317847,
+ "value": 0.5
+ }
+ ],
+ "items": {
+ "description": "A point object is of the form `{POSIX_timestamp, numeric_value}`.",
+ "example": {
+ "timestamp": 1575317847,
+ "value": 0.5
+ },
+ "properties": {
+ "timestamp": {
+ "description": "The timestamp should be in seconds and current.\nCurrent is defined as not more than 10 minutes in the future or more than 1 hour in the past.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "value": {
+ "description": "The numeric value format should be a 64bit float gauge-type value.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "resources": {
+ "description": "A list of resources to associate with this metric.",
+ "items": {
+ "description": "Metric resource.",
+ "example": {
+ "name": "dummyhost",
+ "type": "host"
+ },
+ "properties": {
+ "name": {
+ "description": "The name of the resource.",
+ "type": "string"
+ },
+ "type": {
+ "description": "The type of the resource.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "source_type_name": {
+ "description": "The source type name.",
+ "example": "datadog",
+ "type": "string"
+ },
+ "tags": {
+ "description": "A list of tags associated with the metric.",
+ "example": [
+ "environment:test"
+ ],
+ "items": {
+ "description": "Individual tags.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "type": {
+ "description": "The type of metric. The available types are `0` (unspecified), `1` (count), `2` (rate), and `3` (gauge).",
+ "enum": [
+ 0,
+ 1,
+ 2,
+ 3
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "UNSPECIFIED",
+ "COUNT",
+ "RATE",
+ "GAUGE"
+ ]
+ },
+ "unit": {
+ "description": "The unit of point value.",
+ "example": "second",
+ "type": "string"
+ }
+ },
+ "required": [
+ "metric",
+ "points"
+ ],
+ "type": "object"
},
- "type": "object"
+ "type": "array"
}
},
"required": [
- "meta"
+ "series"
],
"type": "object"
}
@@ -373709,31 +395130,26 @@
"required": true
},
"responses": {
- "200": {
+ "202": {
"content": {
"application/json": {
"schema": {
- "description": "Delete rule response.",
+ "description": "The payload accepted for intake.",
"properties": {
- "meta": {
- "description": "Meta payload containing information about the API.",
- "properties": {
- "version": {
- "description": "Version of the API (optional).",
- "example": 0,
- "format": "int64",
- "minimum": 0,
- "type": "integer"
- }
+ "errors": {
+ "description": "A list of errors.",
+ "items": {
+ "description": "An empty error list.",
+ "type": "string"
},
- "type": "object"
+ "type": "array"
}
},
"type": "object"
}
}
},
- "description": "OK"
+ "description": "Payload accepted"
},
"400": {
"content": {
@@ -373789,9 +395205,9 @@
}
}
},
- "description": "Authentication Error"
+ "description": "Authentication error"
},
- "404": {
+ "408": {
"content": {
"application/json": {
"schema": {
@@ -373817,7 +395233,35 @@
}
}
},
- "description": "Not Found"
+ "description": "Request timeout"
+ },
+ "413": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Payload too large"
},
"429": {
"content": {
@@ -373848,293 +395292,630 @@
"description": "Too many requests"
}
},
- "summary": "Delete Scanning Rule",
+ "security": [
+ {
+ "apiKeyAuth": []
+ }
+ ],
+ "summary": "Submit metrics",
"tags": [
- "Sensitive Data Scanner"
+ "Metrics"
],
"x-codegen-request-body-name": "body",
- "x-menu-order": 9,
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "data_scanner_write"
- ]
- },
+ "x-menu-order": 1,
"x-undo": {
- "type": "idempotent"
+ "type": "safe"
}
- },
- "patch": {
- "description": "Update a scanning rule.\nThe request body MUST NOT include a standard_pattern relationship, as that relationship\nis non-editable. Trying to edit the regex attribute of a rule with a standard_pattern\nrelationship will also result in an error.",
- "operationId": "UpdateScanningRule",
- "parameters": [
- {
- "description": "The ID of the rule.",
- "in": "path",
- "name": "rule_id",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
+ }
+ },
+ "/api/v2/service_accounts": {
+ "post": {
+ "description": "Create a service account for your organization.",
+ "operationId": "CreateServiceAccount",
"requestBody": {
"content": {
"application/json": {
"schema": {
- "description": "Update rule request.",
+ "description": "Create a service account.",
"properties": {
"data": {
- "description": "Data related to the update of a rule.",
+ "description": "Object to create a service account User.",
"properties": {
"attributes": {
- "description": "Attributes of the Sensitive Data Scanner rule.",
+ "description": "Attributes of the created user.",
"properties": {
- "description": {
- "description": "Description of the rule.",
+ "email": {
+ "description": "The email of the user.",
+ "example": "jane.doe@example.com",
"type": "string"
},
- "excluded_namespaces": {
- "description": "Attributes excluded from the scan. If namespaces is provided, it has to be a sub-path of the namespaces array.",
- "example": [
- "admin.name"
- ],
- "items": {
- "type": "string"
- },
- "type": "array"
+ "name": {
+ "description": "The name of the user.",
+ "type": "string"
},
- "included_keyword_configuration": {
- "description": "Object defining a set of keywords and a number of characters that help reduce noise.\nYou can provide a list of keywords you would like to check within a defined proximity of the matching pattern.\nIf any of the keywords are found within the proximity check, the match is kept.\nIf none are found, the match is discarded.",
+ "service_account": {
+ "description": "Whether the user is a service account. Must be true.",
+ "example": true,
+ "type": "boolean"
+ },
+ "title": {
+ "description": "The title of the user.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "email",
+ "service_account"
+ ],
+ "type": "object"
+ },
+ "relationships": {
+ "description": "Relationships of the user object.",
+ "properties": {
+ "roles": {
+ "description": "Relationship to roles.",
"properties": {
- "character_count": {
- "description": "The number of characters behind a match detected by Sensitive Data Scanner to look for the keywords defined.\n`character_count` should be greater than the maximum length of a keyword defined for a rule.",
- "example": 30,
- "format": "int64",
- "maximum": 50,
- "minimum": 1,
- "type": "integer"
- },
- "keywords": {
- "description": "Keyword list that will be checked during scanning in order to validate a match.\nThe number of keywords in the list must be less than or equal to 30.",
- "example": [
- "credit card",
- "cc"
- ],
+ "data": {
+ "description": "An array containing type and the unique identifier of a role.",
"items": {
- "type": "string"
+ "description": "Relationship to role object.",
+ "properties": {
+ "id": {
+ "description": "The unique identifier of the role.",
+ "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "type": "string"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
},
"type": "array"
- },
- "use_recommended_keywords": {
- "description": "Should the rule use the underlying standard pattern keyword configuration. If set to `true`, the rule must be tied\nto a standard pattern. If set to `false`, the specified keywords and `character_count` are applied.",
- "type": "boolean"
}
},
- "required": [
- "keywords",
- "character_count"
- ],
- "type": "object"
- },
- "is_enabled": {
- "description": "Whether or not the rule is enabled.",
- "type": "boolean"
- },
- "name": {
- "description": "Name of the rule.",
- "type": "string"
- },
- "namespaces": {
- "description": "Attributes included in the scan. If namespaces is empty or missing, all attributes except excluded_namespaces are scanned.\nIf both are missing the whole event is scanned.",
- "example": [
- "admin"
- ],
- "items": {
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "attributes",
+ "type"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Response containing information about a single user.",
+ "properties": {
+ "data": {
+ "description": "User object returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of user object returned by the API.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the user.",
+ "format": "date-time",
"type": "string"
},
- "type": "array"
- },
- "pattern": {
- "description": "Not included if there is a relationship to a standard pattern.",
- "type": "string"
- },
- "priority": {
- "description": "Integer from 1 (high) to 5 (low) indicating rule issue severity.",
- "format": "int64",
- "maximum": 5,
- "minimum": 1,
- "type": "integer"
- },
- "tags": {
- "description": "List of tags.",
- "items": {
+ "disabled": {
+ "description": "Whether the user is disabled.",
+ "type": "boolean"
+ },
+ "email": {
+ "description": "Email of the user.",
"type": "string"
},
- "type": "array"
+ "handle": {
+ "description": "Handle of the user.",
+ "type": "string"
+ },
+ "icon": {
+ "description": "URL of the user's icon.",
+ "type": "string"
+ },
+ "mfa_enabled": {
+ "description": "If user has MFA enabled.",
+ "readOnly": true,
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time that the user was last modified.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "service_account": {
+ "description": "Whether the user is a service account.",
+ "type": "boolean"
+ },
+ "status": {
+ "description": "Status of the user.",
+ "type": "string"
+ },
+ "title": {
+ "description": "Title of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "verified": {
+ "description": "Whether the user is verified.",
+ "type": "boolean"
+ }
},
- "text_replacement": {
- "description": "Object describing how the scanned event will be replaced.",
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the user.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships of the user object returned by the API.",
+ "properties": {
+ "org": {
+ "description": "Relationship to an organization.",
+ "properties": {
+ "data": {
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_orgs": {
+ "description": "Relationship to organizations.",
+ "properties": {
+ "data": {
+ "description": "Relationships to organization objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_users": {
+ "description": "Relationship to users.",
+ "properties": {
+ "data": {
+ "description": "Relationships to user objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "roles": {
+ "description": "Relationship to roles.",
+ "properties": {
+ "data": {
+ "description": "An array containing type and the unique identifier of a role.",
+ "items": {
+ "description": "Relationship to role object.",
+ "properties": {
+ "id": {
+ "description": "The unique identifier of the role.",
+ "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "type": "string"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "properties": false
+ }
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "included": {
+ "description": "Array of objects related to the user.",
+ "items": {
+ "description": "An object related to a user.",
+ "oneOf": [
+ {
+ "description": "Organization object.",
"properties": {
- "number_of_chars": {
- "description": "Required if type == 'partial_replacement_from_beginning'\nor 'partial_replacement_from_end'. It must be > 0.",
- "format": "int64",
- "minimum": 0,
- "type": "integer"
+ "attributes": {
+ "description": "Attributes of the organization.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the organization.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of the organization.",
+ "type": "string"
+ },
+ "disabled": {
+ "description": "Whether or not the organization is disabled.",
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time of last organization modification.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the organization.",
+ "type": "string"
+ },
+ "public_id": {
+ "description": "Public ID of the organization.",
+ "type": "string"
+ },
+ "sharing": {
+ "description": "Sharing type of the organization.",
+ "type": "string"
+ },
+ "url": {
+ "description": "URL of the site that this organization exists at.",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
- "replacement_string": {
- "description": "Required if type == 'replacement_string'.",
+ "id": {
+ "description": "ID of the organization.",
"type": "string"
},
"type": {
- "default": "none",
- "description": "Type of the replacement text. None means no replacement.\nhash means the data will be stubbed. replacement_string means that\none can chose a text to replace the data. partial_replacement_from_beginning\nallows a user to partially replace the data from the beginning, and\npartial_replacement_from_end on the other hand, allows to replace data from\nthe end.",
+ "default": "orgs",
+ "description": "Organizations resource type.",
"enum": [
- "none",
- "hash",
- "replacement_string",
- "partial_replacement_from_beginning",
- "partial_replacement_from_end"
+ "orgs"
],
+ "example": "orgs",
"type": "string",
"x-enum-varnames": [
- "NONE",
- "HASH",
- "REPLACEMENT_STRING",
- "PARTIAL_REPLACEMENT_FROM_BEGINNING",
- "PARTIAL_REPLACEMENT_FROM_END"
+ "ORGS"
]
}
},
+ "required": [
+ "type"
+ ],
"type": "object"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "ID of the rule.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of a scanning rule.",
- "properties": {
- "group": {
- "description": "A scanning group data.",
+ },
+ {
+ "description": "Permission object.",
"properties": {
- "data": {
- "description": "A scanning group.",
+ "attributes": {
+ "description": "Attributes of a permission.",
"properties": {
- "id": {
- "description": "ID of the group.",
+ "created": {
+ "description": "Creation time of the permission.",
+ "format": "date-time",
"type": "string"
},
- "type": {
- "default": "sensitive_data_scanner_group",
- "description": "Sensitive Data Scanner group type.",
- "enum": [
- "sensitive_data_scanner_group"
- ],
- "example": "sensitive_data_scanner_group",
- "type": "string",
- "x-enum-varnames": [
- "SENSITIVE_DATA_SCANNER_GROUP"
- ]
+ "description": {
+ "description": "Description of the permission.",
+ "type": "string"
+ },
+ "display_name": {
+ "description": "Displayed name for the permission.",
+ "type": "string"
+ },
+ "display_type": {
+ "description": "Display type.",
+ "type": "string"
+ },
+ "group_name": {
+ "description": "Name of the permission group.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the permission.",
+ "type": "string"
+ },
+ "restricted": {
+ "description": "Whether or not the permission is restricted.",
+ "type": "boolean"
}
},
"type": "object"
+ },
+ "id": {
+ "description": "ID of the permission.",
+ "type": "string"
+ },
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
}
},
+ "required": [
+ "type"
+ ],
"type": "object"
},
- "standard_pattern": {
- "description": "A standard pattern.",
+ {
+ "description": "Role object returned by the API.",
"properties": {
- "data": {
- "description": "Data containing the standard pattern id.",
+ "attributes": {
+ "description": "Attributes of the role.",
"properties": {
- "id": {
- "description": "ID of the standard pattern.",
+ "created_at": {
+ "description": "Creation time of the role.",
+ "format": "date-time",
+ "readOnly": true,
"type": "string"
},
- "type": {
- "default": "sensitive_data_scanner_standard_pattern",
- "description": "Sensitive Data Scanner standard pattern type.",
- "enum": [
- "sensitive_data_scanner_standard_pattern"
- ],
- "example": "sensitive_data_scanner_standard_pattern",
- "type": "string",
- "x-enum-varnames": [
- "SENSITIVE_DATA_SCANNER_STANDARD_PATTERN"
- ]
+ "modified_at": {
+ "description": "Time of last role modification.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
+ "type": "string"
+ },
+ "user_count": {
+ "description": "Number of users with that role.",
+ "format": "int64",
+ "readOnly": true,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The unique identifier of the role.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships of the role object returned by the API.",
+ "properties": {
+ "permissions": {
+ "description": "Relationship to multiple permissions objects.",
+ "properties": {
+ "data": {
+ "description": "Relationships to permission objects.",
+ "items": {
+ "description": "Relationship to permission object.",
+ "properties": {
+ "id": {
+ "description": "ID of the permission.",
+ "type": "string"
+ },
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
"type": "object"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
}
},
- "type": "object"
+ "required": [
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
- },
- "type": "object"
- },
- "type": {
- "default": "sensitive_data_scanner_rule",
- "description": "Sensitive Data Scanner rule type.",
- "enum": [
- "sensitive_data_scanner_rule"
- ],
- "example": "sensitive_data_scanner_rule",
- "type": "string",
- "x-enum-varnames": [
- "SENSITIVE_DATA_SCANNER_RULE"
]
- }
- },
- "type": "object"
- },
- "meta": {
- "description": "Meta payload containing information about the API.",
- "properties": {
- "version": {
- "description": "Version of the API (optional).",
- "example": 0,
- "format": "int64",
- "minimum": 0,
- "type": "integer"
- }
- },
- "type": "object"
- }
- },
- "required": [
- "data",
- "meta"
- ],
- "type": "object"
- }
- }
- },
- "required": true
- },
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Update rule response.",
- "properties": {
- "meta": {
- "description": "Meta payload containing information about the API.",
- "properties": {
- "version": {
- "description": "Version of the API (optional).",
- "example": 0,
- "format": "int64",
- "minimum": 0,
- "type": "integer"
- }
},
- "type": "object"
+ "type": "array"
}
},
"type": "object"
@@ -374197,35 +395978,7 @@
}
}
},
- "description": "Authentication Error"
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Not Found"
+ "description": "Authentication error"
},
"429": {
"content": {
@@ -374256,448 +396009,708 @@
"description": "Too many requests"
}
},
- "summary": "Update Scanning Rule",
+ "summary": "Create a service account",
"tags": [
- "Sensitive Data Scanner"
+ "Service Accounts"
],
"x-codegen-request-body-name": "body",
- "x-menu-order": 8,
+ "x-given": {
+ "service_account_user": {
+ "parameters": [
+ {
+ "name": "body",
+ "value": "{\n \"data\": {\n \"attributes\": {\n \"email\": \"{{ unique }}@datadoghq.com\",\n \"title\": \"user title\",\n \"service_account\": true\n },\n \"type\": \"users\"\n }\n}"
+ }
+ ],
+ "step": "there is a valid \"service_account_user\" in the system"
+ }
+ },
+ "x-menu-order": 1,
"x-permission": {
"operator": "OR",
"permissions": [
- "data_scanner_write"
+ "service_account_write"
]
},
"x-undo": {
- "type": "idempotent"
+ "operationId": "DisableUser",
+ "parameters": [
+ {
+ "name": "user_id",
+ "source": "data.id"
+ }
+ ],
+ "tag": "Users",
+ "type": "unsafe"
}
}
},
- "/api/v2/sensitive-data-scanner/config/standard-patterns": {
+ "/api/v2/service_accounts/{service_account_id}/application_keys": {
"get": {
- "description": "Returns all standard patterns.",
- "operationId": "ListStandardPatterns",
+ "description": "List all application keys available for this service account.",
+ "operationId": "ListServiceAccountApplicationKeys",
+ "parameters": [
+ {
+ "description": "The ID of the service account.",
+ "in": "path",
+ "name": "service_account_id",
+ "required": true,
+ "schema": {
+ "example": "00000000-0000-1234-0000-000000000000",
+ "type": "string"
+ }
+ },
+ {
+ "description": "Size for a given page. The maximum allowed value is 100.",
+ "in": "query",
+ "name": "page[size]",
+ "required": false,
+ "schema": {
+ "default": 10,
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ {
+ "description": "Specific page number to return.",
+ "in": "query",
+ "name": "page[number]",
+ "required": false,
+ "schema": {
+ "default": 0,
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ {
+ "description": "Application key attribute used to sort results. Sort order is ascending\nby default. In order to specify a descending sort, prefix the\nattribute with a minus sign.",
+ "in": "query",
+ "name": "sort",
+ "required": false,
+ "schema": {
+ "default": "name",
+ "description": "Sorting options",
+ "enum": [
+ "created_at",
+ "-created_at",
+ "last4",
+ "-last4",
+ "name",
+ "-name"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "CREATED_AT_ASCENDING",
+ "CREATED_AT_DESCENDING",
+ "LAST4_ASCENDING",
+ "LAST4_DESCENDING",
+ "NAME_ASCENDING",
+ "NAME_DESCENDING"
+ ]
+ }
+ },
+ {
+ "description": "Filter application keys by the specified string.",
+ "in": "query",
+ "name": "filter",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "Only include application keys created on or after the specified date.",
+ "in": "query",
+ "name": "filter[created_at][start]",
+ "required": false,
+ "schema": {
+ "example": "2020-11-24T18:46:21+00:00",
+ "type": "string",
+ "x-merge-override": {
+ "format": false
+ }
+ }
+ },
+ {
+ "description": "Only include application keys created on or before the specified date.",
+ "in": "query",
+ "name": "filter[created_at][end]",
+ "required": false,
+ "schema": {
+ "example": "2020-11-24T18:46:21+00:00",
+ "type": "string",
+ "x-merge-override": {
+ "format": false
+ }
+ }
+ }
+ ],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
- "description": "List Standard patterns response data.",
+ "description": "Response for a list of application keys.",
"properties": {
"data": {
- "description": "List Standard patterns response.",
+ "description": "Array of application keys.",
"items": {
- "description": "Standard pattern item.",
+ "description": "Partial Datadog application key.",
"properties": {
"attributes": {
- "description": "Attributes of the Sensitive Data Scanner standard pattern.",
+ "description": "Attributes of a partial application key.",
"properties": {
- "description": {
- "description": "Description of the standard pattern.",
- "type": "string"
+ "created_at": {
+ "description": "Creation date of the application key.",
+ "example": "2020-11-23T10:00:00.000Z",
+ "readOnly": true,
+ "type": "string",
+ "x-merge-override": {
+ "format": false
+ }
},
- "included_keywords": {
- "description": "List of included keywords.",
- "items": {
- "type": "string"
- },
- "type": "array"
+ "last4": {
+ "description": "The last four characters of the application key.",
+ "example": "abcd",
+ "maxLength": 4,
+ "minLength": 4,
+ "readOnly": true,
+ "type": "string",
+ "x-secret": true
},
"name": {
- "description": "Name of the standard pattern.",
- "type": "string"
- },
- "pattern": {
- "deprecated": true,
- "description": "(Deprecated) Regex to match, optionally documented for older standard rules. Refer to the `description` field to understand what the rule does.",
+ "description": "Name of the application key.",
+ "example": "Application Key for managing dashboards",
"type": "string"
},
- "priority": {
- "description": "Integer from 1 (high) to 5 (low) indicating standard pattern issue severity.",
- "format": "int64",
- "maximum": 5,
- "minimum": 1,
- "type": "integer"
- },
- "tags": {
- "description": "List of tags.",
+ "scopes": {
+ "description": "Array of scopes to grant the application key.",
+ "example": [
+ "dashboards_read",
+ "dashboards_write",
+ "dashboards_public_share"
+ ],
"items": {
+ "description": "Name of scope.",
"type": "string"
},
+ "nullable": true,
"type": "array"
}
},
"type": "object"
},
"id": {
- "description": "ID of the standard pattern.",
+ "description": "ID of the application key.",
"type": "string"
},
+ "relationships": {
+ "description": "Resources related to the application key.",
+ "properties": {
+ "owned_by": {
+ "description": "Relationship to user.",
+ "properties": {
+ "data": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "properties": false
+ }
+ },
"type": {
- "default": "sensitive_data_scanner_standard_pattern",
- "description": "Sensitive Data Scanner standard pattern type.",
+ "default": "application_keys",
+ "description": "Application Keys resource type.",
"enum": [
- "sensitive_data_scanner_standard_pattern"
+ "application_keys"
],
- "example": "sensitive_data_scanner_standard_pattern",
+ "example": "application_keys",
"type": "string",
"x-enum-varnames": [
- "SENSITIVE_DATA_SCANNER_STANDARD_PATTERN"
+ "APPLICATION_KEYS"
]
}
},
- "type": "object"
- },
- "type": "array"
- }
- },
- "type": "object"
- }
- }
- },
- "description": "OK"
- },
- "400": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Bad Request"
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
},
"type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Authentication Error"
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
+ },
+ "included": {
+ "description": "Array of objects related to the application key.",
"items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Too many requests"
- }
- },
- "summary": "List standard patterns",
- "tags": [
- "Sensitive Data Scanner"
- ],
- "x-menu-order": 3,
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "data_scanner_read"
- ]
- },
- "x-undo": {
- "type": "safe"
- }
- }
- },
- "/api/v2/series": {
- "post": {
- "description": "The metrics end-point allows you to post time-series data that can be graphed on Datadog’s dashboards.\nThe maximum payload size is 500 kilobytes (512000 bytes). Compressed payloads must have a decompressed size of less than 5 megabytes (5242880 bytes).\n\nIf you’re submitting metrics directly to the Datadog API without using DogStatsD, expect:\n\n- 64 bits for the timestamp\n- 64 bits for the value\n- 20 bytes for the metric names\n- 50 bytes for the timeseries\n- The full payload is approximately 100 bytes.\n\nHost name is one of the resources in the Resources field.",
- "operationId": "SubmitMetrics",
- "parameters": [
- {
- "description": "HTTP header used to compress the media-type.",
- "in": "header",
- "name": "Content-Encoding",
- "required": false,
- "schema": {
- "default": "deflate",
- "description": "HTTP header used to compress the media-type.",
- "enum": [
- "deflate",
- "zstd1",
- "gzip"
- ],
- "example": "deflate",
- "type": "string",
- "x-enum-varnames": [
- "DEFLATE",
- "ZSTD1",
- "GZIP"
- ]
- }
- }
- ],
- "requestBody": {
- "content": {
- "application/json": {
- "examples": {
- "dynamic-points": {
- "description": "Post time-series data that can be graphed on Datadog’s dashboards.",
- "externalValue": "examples/metrics/dynamic-points.json.sh",
- "summary": "Dynamic Points",
- "x-variables": {
- "NOW": "$(date +%s)"
- }
- }
- },
- "schema": {
- "description": "The metrics' payload.",
- "properties": {
- "series": {
- "description": "A list of timeseries to submit to Datadog.",
- "example": [
- {
- "metric": "system.load.1",
- "points": [
- {
- "timestamp": 1475317847,
- "value": 0.7
- }
- ],
- "resources": [
+ "description": "An object related to an application key.",
+ "oneOf": [
{
- "name": "dummyhost",
- "type": "host"
- }
- ]
- }
- ],
- "items": {
- "description": "A metric to submit to Datadog.\nSee [Datadog metrics](https://docs.datadoghq.com/developers/metrics/#custom-metrics-properties).",
- "properties": {
- "interval": {
- "description": "If the type of the metric is rate or count, define the corresponding interval in seconds.",
- "example": 20,
- "format": "int64",
- "type": "integer"
- },
- "metadata": {
- "description": "Metadata for the metric.",
- "properties": {
- "origin": {
- "description": "Metric origin information.",
- "properties": {
- "metric_type": {
- "default": 0,
- "description": "The origin metric type code",
- "format": "int32",
- "maximum": 1000,
- "type": "integer"
+ "description": "User object returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of user object returned by the API.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the user.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "disabled": {
+ "description": "Whether the user is disabled.",
+ "type": "boolean"
+ },
+ "email": {
+ "description": "Email of the user.",
+ "type": "string"
+ },
+ "handle": {
+ "description": "Handle of the user.",
+ "type": "string"
+ },
+ "icon": {
+ "description": "URL of the user's icon.",
+ "type": "string"
+ },
+ "mfa_enabled": {
+ "description": "If user has MFA enabled.",
+ "readOnly": true,
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time that the user was last modified.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "service_account": {
+ "description": "Whether the user is a service account.",
+ "type": "boolean"
+ },
+ "status": {
+ "description": "Status of the user.",
+ "type": "string"
+ },
+ "title": {
+ "description": "Title of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "verified": {
+ "description": "Whether the user is verified.",
+ "type": "boolean"
+ }
},
- "product": {
- "default": 0,
- "description": "The origin product code",
- "format": "int32",
- "maximum": 1000,
- "type": "integer"
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the user.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships of the user object returned by the API.",
+ "properties": {
+ "org": {
+ "description": "Relationship to an organization.",
+ "properties": {
+ "data": {
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_orgs": {
+ "description": "Relationship to organizations.",
+ "properties": {
+ "data": {
+ "description": "Relationships to organization objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_users": {
+ "description": "Relationship to users.",
+ "properties": {
+ "data": {
+ "description": "Relationships to user objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "roles": {
+ "description": "Relationship to roles.",
+ "properties": {
+ "data": {
+ "description": "An array containing type and the unique identifier of a role.",
+ "items": {
+ "description": "Relationship to role object.",
+ "properties": {
+ "id": {
+ "description": "The unique identifier of the role.",
+ "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "type": "string"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
},
- "service": {
- "default": 0,
- "description": "The origin service code",
- "format": "int32",
- "maximum": 1000,
- "type": "integer"
+ "type": "object",
+ "x-merge-override": {
+ "properties": false
}
},
- "type": "object"
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
}
},
- "type": "object"
- },
- "metric": {
- "description": "The name of the timeseries.",
- "example": "system.load.1",
- "type": "string"
- },
- "points": {
- "description": "Points relating to a metric. All points must be objects with timestamp and a scalar value (cannot be a string). Timestamps should be in POSIX time in seconds, and cannot be more than ten minutes in the future or more than one hour in the past.",
- "example": [
- {
- "timestamp": 1575317847,
- "value": 0.5
- }
- ],
- "items": {
- "description": "A point object is of the form `{POSIX_timestamp, numeric_value}`.",
- "example": {
- "timestamp": 1575317847,
- "value": 0.5
- },
+ {
+ "description": "Role object returned by the API.",
"properties": {
- "timestamp": {
- "description": "The timestamp should be in seconds and current.\nCurrent is defined as not more than 10 minutes in the future or more than 1 hour in the past.",
- "format": "int64",
- "type": "integer"
+ "attributes": {
+ "description": "Attributes of the role.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the role.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "modified_at": {
+ "description": "Time of last role modification.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
+ "type": "string"
+ },
+ "user_count": {
+ "description": "Number of users with that role.",
+ "format": "int64",
+ "readOnly": true,
+ "type": "integer"
+ }
+ },
+ "type": "object"
},
- "value": {
- "description": "The numeric value format should be a 64bit float gauge-type value.",
- "format": "double",
- "type": "number"
+ "id": {
+ "description": "The unique identifier of the role.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships of the role object returned by the API.",
+ "properties": {
+ "permissions": {
+ "description": "Relationship to multiple permissions objects.",
+ "properties": {
+ "data": {
+ "description": "Relationships to permission objects.",
+ "items": {
+ "description": "Relationship to permission object.",
+ "properties": {
+ "id": {
+ "description": "ID of the permission.",
+ "type": "string"
+ },
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
}
},
- "type": "object"
+ "required": [
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
},
- "type": "array"
- },
- "resources": {
- "description": "A list of resources to associate with this metric.",
- "items": {
- "description": "Metric resource.",
- "example": {
- "name": "dummyhost",
- "type": "host"
- },
+ {
+ "description": "The definition of LeakedKey object.",
"properties": {
- "name": {
- "description": "The name of the resource.",
+ "attributes": {
+ "description": "The definition of LeakedKeyAttributes object.",
+ "properties": {
+ "date": {
+ "description": "The LeakedKeyAttributes date.",
+ "example": "2017-07-21T17:32:28Z",
+ "format": "date-time",
+ "type": "string"
+ },
+ "leak_source": {
+ "description": "The LeakedKeyAttributes leak_source.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "date"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "description": "The LeakedKey id.",
+ "example": "id",
"type": "string"
},
"type": {
- "description": "The type of the resource.",
- "type": "string"
+ "default": "leaked_keys",
+ "description": "The definition of LeakedKeyType object.",
+ "enum": [
+ "leaked_keys"
+ ],
+ "example": "leaked_keys",
+ "type": "string",
+ "x-enum-varnames": [
+ "LEAKED_KEYS"
+ ]
}
},
+ "required": [
+ "attributes",
+ "id",
+ "type"
+ ],
"type": "object"
- },
- "type": "array"
- },
- "source_type_name": {
- "description": "The source type name.",
- "example": "datadog",
- "type": "string"
+ }
+ ]
+ },
+ "type": "array"
+ },
+ "meta": {
+ "description": "Additional information related to the application key response.",
+ "properties": {
+ "max_allowed_per_user": {
+ "description": "Max allowed number of application keys per user.",
+ "format": "int64",
+ "type": "integer"
},
- "tags": {
- "description": "A list of tags associated with the metric.",
- "example": [
- "environment:test"
- ],
- "items": {
- "description": "Individual tags.",
- "type": "string"
+ "page": {
+ "description": "Additional information related to the application key response.",
+ "properties": {
+ "total_filtered_count": {
+ "description": "Total filtered application key count.",
+ "format": "int64",
+ "type": "integer"
+ }
},
- "type": "array"
- },
- "type": {
- "description": "The type of metric. The available types are `0` (unspecified), `1` (count), `2` (rate), and `3` (gauge).",
- "enum": [
- 0,
- 1,
- 2,
- 3
- ],
- "format": "int32",
- "type": "integer",
- "x-enum-varnames": [
- "UNSPECIFIED",
- "COUNT",
- "RATE",
- "GAUGE"
- ]
- },
- "unit": {
- "description": "The unit of point value.",
- "example": "second",
- "type": "string"
+ "type": "object"
}
},
- "required": [
- "metric",
- "points"
- ],
"type": "object"
- },
- "type": "array"
- }
- },
- "required": [
- "series"
- ],
- "type": "object"
- }
- }
- },
- "required": true
- },
- "responses": {
- "202": {
- "content": {
- "application/json": {
- "schema": {
- "description": "The payload accepted for intake.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "items": {
- "description": "An empty error list.",
- "type": "string"
- },
- "type": "array"
}
},
"type": "object"
}
}
},
- "description": "Payload accepted"
+ "description": "OK"
},
"400": {
"content": {
@@ -374753,37 +396766,9 @@
}
}
},
- "description": "Authentication error"
- },
- "408": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Request timeout"
+ "description": "Forbidden"
},
- "413": {
+ "404": {
"content": {
"application/json": {
"schema": {
@@ -374809,7 +396794,7 @@
}
}
},
- "description": "Payload too large"
+ "description": "Not Found"
},
"429": {
"content": {
@@ -374840,118 +396825,86 @@
"description": "Too many requests"
}
},
- "security": [
- {
- "apiKeyAuth": []
- }
- ],
- "summary": "Submit metrics",
+ "summary": "List application keys for this service account",
"tags": [
- "Metrics"
+ "Service Accounts"
],
- "x-codegen-request-body-name": "body",
- "x-menu-order": 1,
+ "x-menu-order": 6,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "service_account_write"
+ ]
+ },
"x-undo": {
"type": "safe"
}
- }
- },
- "/api/v2/service_accounts": {
+ },
"post": {
- "description": "Create a service account for your organization.",
- "operationId": "CreateServiceAccount",
+ "description": "Create an application key for this service account.",
+ "operationId": "CreateServiceAccountApplicationKey",
+ "parameters": [
+ {
+ "description": "The ID of the service account.",
+ "in": "path",
+ "name": "service_account_id",
+ "required": true,
+ "schema": {
+ "example": "00000000-0000-1234-0000-000000000000",
+ "type": "string"
+ }
+ }
+ ],
"requestBody": {
"content": {
"application/json": {
"schema": {
- "description": "Create a service account.",
+ "description": "Request used to create an application key.",
"properties": {
"data": {
- "description": "Object to create a service account User.",
+ "description": "Object used to create an application key.",
"properties": {
"attributes": {
- "description": "Attributes of the created user.",
+ "description": "Attributes used to create an application Key.",
"properties": {
- "email": {
- "description": "The email of the user.",
- "example": "jane.doe@example.com",
- "type": "string"
- },
"name": {
- "description": "The name of the user.",
+ "description": "Name of the application key.",
+ "example": "Application Key for managing dashboards",
"type": "string"
},
- "service_account": {
- "description": "Whether the user is a service account. Must be true.",
- "example": true,
- "type": "boolean"
- },
- "title": {
- "description": "The title of the user.",
- "type": "string"
+ "scopes": {
+ "description": "Array of scopes to grant the application key.",
+ "example": [
+ "dashboards_read",
+ "dashboards_write",
+ "dashboards_public_share"
+ ],
+ "items": {
+ "description": "Name of scope.",
+ "type": "string"
+ },
+ "nullable": true,
+ "type": "array"
}
},
"required": [
- "email",
- "service_account"
+ "name"
],
- "type": "object"
- },
- "relationships": {
- "description": "Relationships of the user object.",
- "properties": {
- "roles": {
- "description": "Relationship to roles.",
- "properties": {
- "data": {
- "description": "An array containing type and the unique identifier of a role.",
- "items": {
- "description": "Relationship to role object.",
- "properties": {
- "id": {
- "description": "The unique identifier of the role.",
- "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
- "type": "string"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
+ "type": "object",
+ "x-merge-override": {
+ "properties": false
+ }
},
"type": {
- "default": "users",
- "description": "Users resource type.",
+ "default": "application_keys",
+ "description": "Application Keys resource type.",
"enum": [
- "users"
+ "application_keys"
],
- "example": "users",
+ "example": "application_keys",
"type": "string",
"x-enum-varnames": [
- "USERS"
+ "APPLICATION_KEYS"
]
}
},
@@ -374959,7 +396912,10 @@
"attributes",
"type"
],
- "type": "object"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
"required": [
@@ -374976,98 +396932,89 @@
"content": {
"application/json": {
"schema": {
- "description": "Response containing information about a single user.",
+ "description": "Response for retrieving an application key.",
"properties": {
"data": {
- "description": "User object returned by the API.",
+ "description": "Datadog application key.",
"properties": {
"attributes": {
- "description": "Attributes of user object returned by the API.",
+ "description": "Attributes of a full application key.",
"properties": {
"created_at": {
- "description": "Creation time of the user.",
+ "description": "Creation date of the application key.",
+ "example": "2020-11-23T10:00:00.000Z",
"format": "date-time",
+ "readOnly": true,
"type": "string"
},
- "disabled": {
- "description": "Whether the user is disabled.",
- "type": "boolean"
- },
- "email": {
- "description": "Email of the user.",
- "type": "string"
- },
- "handle": {
- "description": "Handle of the user.",
- "type": "string"
- },
- "icon": {
- "description": "URL of the user's icon.",
- "type": "string"
- },
- "mfa_enabled": {
- "description": "If user has MFA enabled.",
+ "key": {
+ "description": "The application key.",
"readOnly": true,
- "type": "boolean"
+ "type": "string",
+ "x-secret": true
},
- "modified_at": {
- "description": "Time that the user was last modified.",
- "format": "date-time",
- "type": "string"
+ "last4": {
+ "description": "The last four characters of the application key.",
+ "example": "abcd",
+ "maxLength": 4,
+ "minLength": 4,
+ "readOnly": true,
+ "type": "string",
+ "x-secret": true
},
"name": {
- "description": "Name of the user.",
- "nullable": true,
- "type": "string"
- },
- "service_account": {
- "description": "Whether the user is a service account.",
- "type": "boolean"
- },
- "status": {
- "description": "Status of the user.",
+ "description": "Name of the application key.",
+ "example": "Application Key for managing dashboards",
"type": "string"
},
- "title": {
- "description": "Title of the user.",
+ "scopes": {
+ "description": "Array of scopes to grant the application key.",
+ "example": [
+ "dashboards_read",
+ "dashboards_write",
+ "dashboards_public_share"
+ ],
+ "items": {
+ "description": "Name of scope.",
+ "type": "string"
+ },
"nullable": true,
- "type": "string"
- },
- "verified": {
- "description": "Whether the user is verified.",
- "type": "boolean"
+ "type": "array"
}
},
- "type": "object"
+ "type": "object",
+ "x-merge-override": {
+ "properties": false
+ }
},
"id": {
- "description": "ID of the user.",
+ "description": "ID of the application key.",
"type": "string"
},
"relationships": {
- "description": "Relationships of the user object returned by the API.",
+ "description": "Resources related to the application key.",
"properties": {
- "org": {
- "description": "Relationship to an organization.",
+ "owned_by": {
+ "description": "Relationship to user.",
"properties": {
"data": {
- "description": "Relationship to organization object.",
+ "description": "Relationship to user object.",
"properties": {
"id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
"type": "string"
},
"type": {
- "default": "orgs",
- "description": "Organizations resource type.",
+ "default": "users",
+ "description": "Users resource type.",
"enum": [
- "orgs"
+ "users"
],
- "example": "orgs",
+ "example": "users",
"type": "string",
"x-enum-varnames": [
- "ORGS"
+ "USERS"
]
}
},
@@ -375075,137 +397022,16 @@
"id",
"type"
],
- "type": "object"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "other_orgs": {
- "description": "Relationship to organizations.",
- "properties": {
- "data": {
- "description": "Relationships to organization objects.",
- "example": [],
- "items": {
- "description": "Relationship to organization object.",
- "properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
- "type": "string"
- },
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- },
- "type": "array"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "other_users": {
- "description": "Relationship to users.",
- "properties": {
- "data": {
- "description": "Relationships to user objects.",
- "example": [],
- "items": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
"required": [
"data"
],
"type": "object"
- },
- "roles": {
- "description": "Relationship to roles.",
- "properties": {
- "data": {
- "description": "An array containing type and the unique identifier of a role.",
- "items": {
- "description": "Relationship to role object.",
- "properties": {
- "id": {
- "description": "The unique identifier of the role.",
- "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
- "type": "string"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
}
},
"type": "object",
@@ -375214,15 +397040,15 @@
}
},
"type": {
- "default": "users",
- "description": "Users resource type.",
+ "default": "application_keys",
+ "description": "Application Keys resource type.",
"enum": [
- "users"
+ "application_keys"
],
- "example": "users",
+ "example": "application_keys",
"type": "string",
"x-enum-varnames": [
- "USERS"
+ "APPLICATION_KEYS"
]
}
},
@@ -375232,134 +397058,262 @@
}
},
"included": {
- "description": "Array of objects related to the user.",
+ "description": "Array of objects related to the application key.",
"items": {
- "description": "An object related to a user.",
+ "description": "An object related to an application key.",
"oneOf": [
{
- "description": "Organization object.",
+ "description": "User object returned by the API.",
"properties": {
"attributes": {
- "description": "Attributes of the organization.",
+ "description": "Attributes of user object returned by the API.",
"properties": {
"created_at": {
- "description": "Creation time of the organization.",
+ "description": "Creation time of the user.",
"format": "date-time",
"type": "string"
},
- "description": {
- "description": "Description of the organization.",
+ "disabled": {
+ "description": "Whether the user is disabled.",
+ "type": "boolean"
+ },
+ "email": {
+ "description": "Email of the user.",
"type": "string"
},
- "disabled": {
- "description": "Whether or not the organization is disabled.",
+ "handle": {
+ "description": "Handle of the user.",
+ "type": "string"
+ },
+ "icon": {
+ "description": "URL of the user's icon.",
+ "type": "string"
+ },
+ "mfa_enabled": {
+ "description": "If user has MFA enabled.",
+ "readOnly": true,
"type": "boolean"
},
"modified_at": {
- "description": "Time of last organization modification.",
+ "description": "Time that the user was last modified.",
"format": "date-time",
"type": "string"
},
"name": {
- "description": "Name of the organization.",
+ "description": "Name of the user.",
+ "nullable": true,
"type": "string"
},
- "public_id": {
- "description": "Public ID of the organization.",
- "type": "string"
+ "service_account": {
+ "description": "Whether the user is a service account.",
+ "type": "boolean"
},
- "sharing": {
- "description": "Sharing type of the organization.",
+ "status": {
+ "description": "Status of the user.",
"type": "string"
},
- "url": {
- "description": "URL of the site that this organization exists at.",
+ "title": {
+ "description": "Title of the user.",
+ "nullable": true,
"type": "string"
+ },
+ "verified": {
+ "description": "Whether the user is verified.",
+ "type": "boolean"
}
},
"type": "object"
},
"id": {
- "description": "ID of the organization.",
+ "description": "ID of the user.",
"type": "string"
},
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object"
- },
- {
- "description": "Permission object.",
- "properties": {
- "attributes": {
- "description": "Attributes of a permission.",
+ "relationships": {
+ "description": "Relationships of the user object returned by the API.",
"properties": {
- "created": {
- "description": "Creation time of the permission.",
- "format": "date-time",
- "type": "string"
- },
- "description": {
- "description": "Description of the permission.",
- "type": "string"
- },
- "display_name": {
- "description": "Displayed name for the permission.",
- "type": "string"
- },
- "display_type": {
- "description": "Display type.",
- "type": "string"
+ "org": {
+ "description": "Relationship to an organization.",
+ "properties": {
+ "data": {
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
},
- "group_name": {
- "description": "Name of the permission group.",
- "type": "string"
+ "other_orgs": {
+ "description": "Relationship to organizations.",
+ "properties": {
+ "data": {
+ "description": "Relationships to organization objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
},
- "name": {
- "description": "Name of the permission.",
- "type": "string"
+ "other_users": {
+ "description": "Relationship to users.",
+ "properties": {
+ "data": {
+ "description": "Relationships to user objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
},
- "restricted": {
- "description": "Whether or not the permission is restricted.",
- "type": "boolean"
+ "roles": {
+ "description": "Relationship to roles.",
+ "properties": {
+ "data": {
+ "description": "An array containing type and the unique identifier of a role.",
+ "items": {
+ "description": "Relationship to role object.",
+ "properties": {
+ "id": {
+ "description": "The unique identifier of the role.",
+ "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "type": "string"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
- "type": "object"
- },
- "id": {
- "description": "ID of the permission.",
- "type": "string"
+ "type": "object",
+ "x-merge-override": {
+ "properties": false
+ }
},
"type": {
- "default": "permissions",
- "description": "Permissions resource type.",
+ "default": "users",
+ "description": "Users resource type.",
"enum": [
- "permissions"
+ "users"
],
- "example": "permissions",
+ "example": "users",
"type": "string",
"x-enum-varnames": [
- "PERMISSIONS"
+ "USERS"
]
}
},
- "required": [
- "type"
- ],
- "type": "object"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
},
{
"description": "Role object returned by the API.",
@@ -375460,6 +397414,53 @@
"x-merge-override": {
"required": false
}
+ },
+ {
+ "description": "The definition of LeakedKey object.",
+ "properties": {
+ "attributes": {
+ "description": "The definition of LeakedKeyAttributes object.",
+ "properties": {
+ "date": {
+ "description": "The LeakedKeyAttributes date.",
+ "example": "2017-07-21T17:32:28Z",
+ "format": "date-time",
+ "type": "string"
+ },
+ "leak_source": {
+ "description": "The LeakedKeyAttributes leak_source.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "date"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "description": "The LeakedKey id.",
+ "example": "id",
+ "type": "string"
+ },
+ "type": {
+ "default": "leaked_keys",
+ "description": "The definition of LeakedKeyType object.",
+ "enum": [
+ "leaked_keys"
+ ],
+ "example": "leaked_keys",
+ "type": "string",
+ "x-enum-varnames": [
+ "LEAKED_KEYS"
+ ]
+ }
+ },
+ "required": [
+ "attributes",
+ "id",
+ "type"
+ ],
+ "type": "object"
}
]
},
@@ -375470,7 +397471,7 @@
}
}
},
- "description": "OK"
+ "description": "Created"
},
"400": {
"content": {
@@ -375526,7 +397527,167 @@
}
}
},
- "description": "Authentication error"
+ "description": "Forbidden"
+ },
+ "429": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Too many requests"
+ }
+ },
+ "summary": "Create an application key for this service account",
+ "tags": [
+ "Service Accounts"
+ ],
+ "x-codegen-request-body-name": "body",
+ "x-given": {
+ "service_account_application_key": {
+ "parameters": [
+ {
+ "name": "service_account_id",
+ "value": "\"{{ service_account_user.data.id }}\""
+ },
+ {
+ "name": "body",
+ "value": "{\n \"data\": {\n \"attributes\": {\n \"name\": \"{{ unique }}\"\n },\n \"type\": \"application_keys\"\n }\n}"
+ }
+ ],
+ "step": "there is a valid \"service_account_application_key\" for \"service_account_user\""
+ }
+ },
+ "x-menu-order": 5,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "service_account_write"
+ ]
+ },
+ "x-undo": {
+ "operationId": "DeleteServiceAccountApplicationKey",
+ "parameters": [
+ {
+ "name": "app_key_id",
+ "source": "data.id"
+ },
+ {
+ "name": "service_account_id",
+ "source": "data.relationships.owned_by.data.id"
+ }
+ ],
+ "type": "unsafe"
+ }
+ },
+ "x-merge-override": {
+ "get": false
+ }
+ },
+ "/api/v2/service_accounts/{service_account_id}/application_keys/{app_key_id}": {
+ "delete": {
+ "description": "Delete an application key owned by this service account.",
+ "operationId": "DeleteServiceAccountApplicationKey",
+ "parameters": [
+ {
+ "description": "The ID of the service account.",
+ "in": "path",
+ "name": "service_account_id",
+ "required": true,
+ "schema": {
+ "example": "00000000-0000-1234-0000-000000000000",
+ "type": "string"
+ }
+ },
+ {
+ "description": "The ID of the application key.",
+ "in": "path",
+ "name": "app_key_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "No Content"
+ },
+ "403": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Forbidden"
+ },
+ "404": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Not Found"
},
"429": {
"content": {
@@ -375557,23 +397718,11 @@
"description": "Too many requests"
}
},
- "summary": "Create a service account",
+ "summary": "Delete an application key for this service account",
"tags": [
"Service Accounts"
],
- "x-codegen-request-body-name": "body",
- "x-given": {
- "service_account_user": {
- "parameters": [
- {
- "name": "body",
- "value": "{\n \"data\": {\n \"attributes\": {\n \"email\": \"{{ unique }}@datadoghq.com\",\n \"title\": \"user title\",\n \"service_account\": true\n },\n \"type\": \"users\"\n }\n}"
- }
- ],
- "step": "there is a valid \"service_account_user\" in the system"
- }
- },
- "x-menu-order": 1,
+ "x-menu-order": 3,
"x-permission": {
"operator": "OR",
"permissions": [
@@ -375581,22 +397730,12 @@
]
},
"x-undo": {
- "operationId": "DisableUser",
- "parameters": [
- {
- "name": "user_id",
- "source": "data.id"
- }
- ],
- "tag": "Users",
- "type": "unsafe"
+ "type": "idempotent"
}
- }
- },
- "/api/v2/service_accounts/{service_account_id}/application_keys": {
+ },
"get": {
- "description": "List all application keys available for this service account.",
- "operationId": "ListServiceAccountApplicationKeys",
+ "description": "Get an application key owned by this service account.",
+ "operationId": "GetServiceAccountApplicationKey",
"parameters": [
{
"description": "The ID of the service account.",
@@ -375609,90 +397748,13 @@
}
},
{
- "description": "Size for a given page. The maximum allowed value is 100.",
- "in": "query",
- "name": "page[size]",
- "required": false,
- "schema": {
- "default": 10,
- "example": 10,
- "format": "int64",
- "type": "integer"
- }
- },
- {
- "description": "Specific page number to return.",
- "in": "query",
- "name": "page[number]",
- "required": false,
- "schema": {
- "default": 0,
- "example": 0,
- "format": "int64",
- "type": "integer"
- }
- },
- {
- "description": "Application key attribute used to sort results. Sort order is ascending\nby default. In order to specify a descending sort, prefix the\nattribute with a minus sign.",
- "in": "query",
- "name": "sort",
- "required": false,
- "schema": {
- "default": "name",
- "description": "Sorting options",
- "enum": [
- "created_at",
- "-created_at",
- "last4",
- "-last4",
- "name",
- "-name"
- ],
- "type": "string",
- "x-enum-varnames": [
- "CREATED_AT_ASCENDING",
- "CREATED_AT_DESCENDING",
- "LAST4_ASCENDING",
- "LAST4_DESCENDING",
- "NAME_ASCENDING",
- "NAME_DESCENDING"
- ]
- }
- },
- {
- "description": "Filter application keys by the specified string.",
- "in": "query",
- "name": "filter",
- "required": false,
+ "description": "The ID of the application key.",
+ "in": "path",
+ "name": "app_key_id",
+ "required": true,
"schema": {
"type": "string"
}
- },
- {
- "description": "Only include application keys created on or after the specified date.",
- "in": "query",
- "name": "filter[created_at][start]",
- "required": false,
- "schema": {
- "example": "2020-11-24T18:46:21+00:00",
- "type": "string",
- "x-merge-override": {
- "format": false
- }
- }
- },
- {
- "description": "Only include application keys created on or before the specified date.",
- "in": "query",
- "name": "filter[created_at][end]",
- "required": false,
- "schema": {
- "example": "2020-11-24T18:46:21+00:00",
- "type": "string",
- "x-merge-override": {
- "format": false
- }
- }
}
],
"responses": {
@@ -375700,127 +397762,123 @@
"content": {
"application/json": {
"schema": {
- "description": "Response for a list of application keys.",
+ "description": "Response for retrieving a partial application key.",
"properties": {
"data": {
- "description": "Array of application keys.",
- "items": {
- "description": "Partial Datadog application key.",
- "properties": {
- "attributes": {
- "description": "Attributes of a partial application key.",
- "properties": {
- "created_at": {
- "description": "Creation date of the application key.",
- "example": "2020-11-23T10:00:00.000Z",
- "readOnly": true,
- "type": "string",
- "x-merge-override": {
- "format": false
- }
- },
- "last4": {
- "description": "The last four characters of the application key.",
- "example": "abcd",
- "maxLength": 4,
- "minLength": 4,
- "readOnly": true,
- "type": "string",
- "x-secret": true
- },
- "name": {
- "description": "Name of the application key.",
- "example": "Application Key for managing dashboards",
- "type": "string"
- },
- "scopes": {
- "description": "Array of scopes to grant the application key.",
- "example": [
- "dashboards_read",
- "dashboards_write",
- "dashboards_public_share"
- ],
- "items": {
- "description": "Name of scope.",
- "type": "string"
- },
- "nullable": true,
- "type": "array"
+ "description": "Partial Datadog application key.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of a partial application key.",
+ "properties": {
+ "created_at": {
+ "description": "Creation date of the application key.",
+ "example": "2020-11-23T10:00:00.000Z",
+ "readOnly": true,
+ "type": "string",
+ "x-merge-override": {
+ "format": false
}
},
- "type": "object"
- },
- "id": {
- "description": "ID of the application key.",
- "type": "string"
+ "last4": {
+ "description": "The last four characters of the application key.",
+ "example": "abcd",
+ "maxLength": 4,
+ "minLength": 4,
+ "readOnly": true,
+ "type": "string",
+ "x-secret": true
+ },
+ "name": {
+ "description": "Name of the application key.",
+ "example": "Application Key for managing dashboards",
+ "type": "string"
+ },
+ "scopes": {
+ "description": "Array of scopes to grant the application key.",
+ "example": [
+ "dashboards_read",
+ "dashboards_write",
+ "dashboards_public_share"
+ ],
+ "items": {
+ "description": "Name of scope.",
+ "type": "string"
+ },
+ "nullable": true,
+ "type": "array"
+ }
},
- "relationships": {
- "description": "Resources related to the application key.",
- "properties": {
- "owned_by": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the application key.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Resources related to the application key.",
+ "properties": {
+ "owned_by": {
+ "description": "Relationship to user.",
+ "properties": {
+ "data": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
},
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
}
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
}
- },
- "required": [
- "data"
- ],
- "type": "object"
- }
- },
- "type": "object",
- "x-merge-override": {
- "properties": false
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
}
},
- "type": {
- "default": "application_keys",
- "description": "Application Keys resource type.",
- "enum": [
- "application_keys"
- ],
- "example": "application_keys",
- "type": "string",
- "x-enum-varnames": [
- "APPLICATION_KEYS"
- ]
+ "type": "object",
+ "x-merge-override": {
+ "properties": false
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
+ "type": {
+ "default": "application_keys",
+ "description": "Application Keys resource type.",
+ "enum": [
+ "application_keys"
+ ],
+ "example": "application_keys",
+ "type": "string",
+ "x-enum-varnames": [
+ "APPLICATION_KEYS"
+ ]
}
},
- "type": "array"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
},
"included": {
"description": "Array of objects related to the application key.",
@@ -376230,28 +398288,6 @@
]
},
"type": "array"
- },
- "meta": {
- "description": "Additional information related to the application key response.",
- "properties": {
- "max_allowed_per_user": {
- "description": "Max allowed number of application keys per user.",
- "format": "int64",
- "type": "integer"
- },
- "page": {
- "description": "Additional information related to the application key response.",
- "properties": {
- "total_filtered_count": {
- "description": "Total filtered application key count.",
- "format": "int64",
- "type": "integer"
- }
- },
- "type": "object"
- }
- },
- "type": "object"
}
},
"type": "object"
@@ -376260,34 +398296,6 @@
},
"description": "OK"
},
- "400": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Bad Request"
- },
"403": {
"content": {
"application/json": {
@@ -376373,11 +398381,11 @@
"description": "Too many requests"
}
},
- "summary": "List application keys for this service account",
+ "summary": "Get one application key for this service account",
"tags": [
"Service Accounts"
],
- "x-menu-order": 6,
+ "x-menu-order": 1,
"x-permission": {
"operator": "OR",
"permissions": [
@@ -376388,9 +398396,9 @@
"type": "safe"
}
},
- "post": {
- "description": "Create an application key for this service account.",
- "operationId": "CreateServiceAccountApplicationKey",
+ "patch": {
+ "description": "Edit an application key owned by this service account.",
+ "operationId": "UpdateServiceAccountApplicationKey",
"parameters": [
{
"description": "The ID of the service account.",
@@ -376401,19 +398409,28 @@
"example": "00000000-0000-1234-0000-000000000000",
"type": "string"
}
+ },
+ {
+ "description": "The ID of the application key.",
+ "in": "path",
+ "name": "app_key_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
- "description": "Request used to create an application key.",
+ "description": "Request used to update an application key.",
"properties": {
"data": {
- "description": "Object used to create an application key.",
+ "description": "Object used to update an application key.",
"properties": {
"attributes": {
- "description": "Attributes used to create an application Key.",
+ "description": "Attributes used to update an application Key.",
"properties": {
"name": {
"description": "Name of the application key.",
@@ -376435,14 +398452,16 @@
"type": "array"
}
},
- "required": [
- "name"
- ],
"type": "object",
"x-merge-override": {
"properties": false
}
},
+ "id": {
+ "description": "ID of the application key.",
+ "example": "00112233-4455-6677-8899-aabbccddeeff",
+ "type": "string"
+ },
"type": {
"default": "application_keys",
"description": "Application Keys resource type.",
@@ -376458,6 +398477,7 @@
},
"required": [
"attributes",
+ "id",
"type"
],
"type": "object",
@@ -376476,30 +398496,26 @@
"required": true
},
"responses": {
- "201": {
+ "200": {
"content": {
"application/json": {
"schema": {
- "description": "Response for retrieving an application key.",
+ "description": "Response for retrieving a partial application key.",
"properties": {
"data": {
- "description": "Datadog application key.",
+ "description": "Partial Datadog application key.",
"properties": {
"attributes": {
- "description": "Attributes of a full application key.",
+ "description": "Attributes of a partial application key.",
"properties": {
"created_at": {
"description": "Creation date of the application key.",
"example": "2020-11-23T10:00:00.000Z",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "key": {
- "description": "The application key.",
"readOnly": true,
"type": "string",
- "x-secret": true
+ "x-merge-override": {
+ "format": false
+ }
},
"last4": {
"description": "The last four characters of the application key.",
@@ -376530,10 +398546,7 @@
"type": "array"
}
},
- "type": "object",
- "x-merge-override": {
- "properties": false
- }
+ "type": "object"
},
"id": {
"description": "ID of the application key.",
@@ -377019,7 +399032,7 @@
}
}
},
- "description": "Created"
+ "description": "OK"
},
"400": {
"content": {
@@ -377077,138 +399090,6 @@
},
"description": "Forbidden"
},
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Too many requests"
- }
- },
- "summary": "Create an application key for this service account",
- "tags": [
- "Service Accounts"
- ],
- "x-codegen-request-body-name": "body",
- "x-given": {
- "service_account_application_key": {
- "parameters": [
- {
- "name": "service_account_id",
- "value": "\"{{ service_account_user.data.id }}\""
- },
- {
- "name": "body",
- "value": "{\n \"data\": {\n \"attributes\": {\n \"name\": \"{{ unique }}\"\n },\n \"type\": \"application_keys\"\n }\n}"
- }
- ],
- "step": "there is a valid \"service_account_application_key\" for \"service_account_user\""
- }
- },
- "x-menu-order": 5,
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "service_account_write"
- ]
- },
- "x-undo": {
- "operationId": "DeleteServiceAccountApplicationKey",
- "parameters": [
- {
- "name": "app_key_id",
- "source": "data.id"
- },
- {
- "name": "service_account_id",
- "source": "data.relationships.owned_by.data.id"
- }
- ],
- "type": "unsafe"
- }
- },
- "x-merge-override": {
- "get": false
- }
- },
- "/api/v2/service_accounts/{service_account_id}/application_keys/{app_key_id}": {
- "delete": {
- "description": "Delete an application key owned by this service account.",
- "operationId": "DeleteServiceAccountApplicationKey",
- "parameters": [
- {
- "description": "The ID of the service account.",
- "in": "path",
- "name": "service_account_id",
- "required": true,
- "schema": {
- "example": "00000000-0000-1234-0000-000000000000",
- "type": "string"
- }
- },
- {
- "description": "The ID of the application key.",
- "in": "path",
- "name": "app_key_id",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "204": {
- "description": "No Content"
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Forbidden"
- },
"404": {
"content": {
"application/json": {
@@ -377266,11 +399147,12 @@
"description": "Too many requests"
}
},
- "summary": "Delete an application key for this service account",
+ "summary": "Edit an application key for this service account",
"tags": [
"Service Accounts"
],
- "x-menu-order": 3,
+ "x-codegen-request-body-name": "body",
+ "x-menu-order": 2,
"x-permission": {
"operator": "OR",
"permissions": [
@@ -377281,26 +399163,65 @@
"type": "idempotent"
}
},
+ "x-merge-override": {
+ "delete": true
+ }
+ },
+ "/api/v2/services": {
"get": {
- "description": "Get an application key owned by this service account.",
- "operationId": "GetServiceAccountApplicationKey",
+ "deprecated": true,
+ "description": "Get all incident services uploaded for the requesting user's organization. If the `include[users]` query parameter is provided, the included attribute will contain the users related to these incident services.",
+ "operationId": "ListIncidentServices",
"parameters": [
{
- "description": "The ID of the service account.",
- "in": "path",
- "name": "service_account_id",
- "required": true,
+ "description": "Specifies which types of related objects should be included in the response.",
+ "in": "query",
+ "name": "include",
+ "required": false,
"schema": {
- "example": "00000000-0000-1234-0000-000000000000",
- "type": "string"
+ "description": "Object related to an incident.",
+ "enum": [
+ "users",
+ "attachments"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS",
+ "ATTACHMENTS"
+ ]
}
},
{
- "description": "The ID of the application key.",
- "in": "path",
- "name": "app_key_id",
- "required": true,
+ "description": "Size for a given page. The maximum allowed value is 100.",
+ "in": "query",
+ "name": "page[size]",
+ "required": false,
+ "schema": {
+ "default": 10,
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ {
+ "description": "Specific offset to use as the beginning of the returned page.",
+ "in": "query",
+ "name": "page[offset]",
+ "required": false,
"schema": {
+ "default": 0,
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ {
+ "description": "A search query that filters services by name.",
+ "in": "query",
+ "name": "filter",
+ "required": false,
+ "schema": {
+ "example": "ExampleServiceName",
"type": "string"
}
}
@@ -377310,128 +399231,157 @@
"content": {
"application/json": {
"schema": {
- "description": "Response for retrieving a partial application key.",
+ "description": "Response with a list of incident service payloads.",
"properties": {
"data": {
- "description": "Partial Datadog application key.",
- "properties": {
- "attributes": {
- "description": "Attributes of a partial application key.",
- "properties": {
- "created_at": {
- "description": "Creation date of the application key.",
- "example": "2020-11-23T10:00:00.000Z",
- "readOnly": true,
- "type": "string",
- "x-merge-override": {
- "format": false
- }
- },
- "last4": {
- "description": "The last four characters of the application key.",
- "example": "abcd",
- "maxLength": 4,
- "minLength": 4,
- "readOnly": true,
- "type": "string",
- "x-secret": true
- },
- "name": {
- "description": "Name of the application key.",
- "example": "Application Key for managing dashboards",
- "type": "string"
- },
- "scopes": {
- "description": "Array of scopes to grant the application key.",
- "example": [
- "dashboards_read",
- "dashboards_write",
- "dashboards_public_share"
- ],
- "items": {
- "description": "Name of scope.",
+ "description": "An array of incident services.",
+ "example": [
+ {
+ "id": "00000000-0000-0000-0000-000000000000",
+ "type": "services"
+ }
+ ],
+ "items": {
+ "description": "Incident Service data from responses.",
+ "properties": {
+ "attributes": {
+ "description": "The incident service's attributes from a response.",
+ "properties": {
+ "created": {
+ "description": "Timestamp of when the incident service was created.",
+ "format": "date-time",
+ "readOnly": true,
"type": "string"
},
- "nullable": true,
- "type": "array"
- }
+ "modified": {
+ "description": "Timestamp of when the incident service was modified.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the incident service.",
+ "example": "service name",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
- "type": "object"
- },
- "id": {
- "description": "ID of the application key.",
- "type": "string"
- },
- "relationships": {
- "description": "Resources related to the application key.",
- "properties": {
- "owned_by": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
+ "id": {
+ "description": "The incident service's ID.",
+ "example": "00000000-0000-0000-0000-000000000000",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "The incident service's relationships.",
+ "properties": {
+ "created_by": {
+ "description": "Relationship to user.",
+ "properties": {
+ "data": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
},
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
}
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
}
- }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
},
- "required": [
- "data"
- ],
- "type": "object"
- }
+ "last_modified_by": {
+ "description": "Relationship to user.",
+ "properties": {
+ "data": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
+ },
+ "readOnly": true,
+ "type": "object"
},
- "type": "object",
- "x-merge-override": {
- "properties": false
+ "type": {
+ "default": "services",
+ "description": "Incident service resource type.",
+ "enum": [
+ "services"
+ ],
+ "example": "services",
+ "type": "string",
+ "x-enum-varnames": [
+ "SERVICES"
+ ]
}
},
- "type": {
- "default": "application_keys",
- "description": "Application Keys resource type.",
- "enum": [
- "application_keys"
- ],
- "example": "application_keys",
- "type": "string",
- "x-enum-varnames": [
- "APPLICATION_KEYS"
- ]
- }
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "array"
},
"included": {
- "description": "Array of objects related to the application key.",
+ "description": "Included related resources which the user requested.",
"items": {
- "description": "An object related to an application key.",
+ "description": "An object related to an incident service which is present in the included payload.",
"oneOf": [
{
"description": "User object returned by the API.",
@@ -377685,165 +399635,109 @@
"x-merge-override": {
"required": false
}
- },
- {
- "description": "Role object returned by the API.",
- "properties": {
- "attributes": {
- "description": "Attributes of the role.",
- "properties": {
- "created_at": {
- "description": "Creation time of the role.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified_at": {
- "description": "Time of last role modification.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "name": {
- "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
- "type": "string"
- },
- "user_count": {
- "description": "Number of users with that role.",
- "format": "int64",
- "readOnly": true,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "The unique identifier of the role.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the role object returned by the API.",
- "properties": {
- "permissions": {
- "description": "Relationship to multiple permissions objects.",
- "properties": {
- "data": {
- "description": "Relationships to permission objects.",
- "items": {
- "description": "Relationship to permission object.",
- "properties": {
- "id": {
- "description": "ID of the permission.",
- "type": "string"
- },
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
- "enum": [
- "permissions"
- ],
- "example": "permissions",
- "type": "string",
- "x-enum-varnames": [
- "PERMISSIONS"
- ]
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- {
- "description": "The definition of LeakedKey object.",
- "properties": {
- "attributes": {
- "description": "The definition of LeakedKeyAttributes object.",
- "properties": {
- "date": {
- "description": "The LeakedKeyAttributes date.",
- "example": "2017-07-21T17:32:28Z",
- "format": "date-time",
- "type": "string"
- },
- "leak_source": {
- "description": "The LeakedKeyAttributes leak_source.",
- "type": "string"
- }
- },
- "required": [
- "date"
- ],
- "type": "object"
- },
- "id": {
- "description": "The LeakedKey id.",
- "example": "id",
- "type": "string"
- },
- "type": {
- "default": "leaked_keys",
- "description": "The definition of LeakedKeyType object.",
- "enum": [
- "leaked_keys"
- ],
- "example": "leaked_keys",
- "type": "string",
- "x-enum-varnames": [
- "LEAKED_KEYS"
- ]
- }
- },
- "required": [
- "attributes",
- "id",
- "type"
- ],
- "type": "object"
}
]
},
+ "readOnly": true,
"type": "array"
+ },
+ "meta": {
+ "description": "The metadata object containing pagination metadata.",
+ "properties": {
+ "pagination": {
+ "description": "Pagination properties.",
+ "properties": {
+ "next_offset": {
+ "description": "The index of the first element in the next page of results. Equal to page size added to the current offset.",
+ "example": 1000,
+ "format": "int64",
+ "type": "integer"
+ },
+ "offset": {
+ "description": "The index of the first element in the results.",
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ },
+ "size": {
+ "description": "Maximum size of pages to return.",
+ "example": 1000,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "readOnly": true,
+ "type": "object"
}
},
+ "required": [
+ "data"
+ ],
"type": "object"
}
}
},
"description": "OK"
},
+ "400": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Bad Request"
+ },
+ "401": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Unauthorized"
+ },
"403": {
"content": {
"application/json": {
@@ -377929,109 +399823,162 @@
"description": "Too many requests"
}
},
- "summary": "Get one application key for this service account",
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
+ },
+ {
+ "AuthZ": [
+ "incident_read"
+ ]
+ }
+ ],
+ "summary": "Get a list of all incident services",
"tags": [
- "Service Accounts"
+ "Incident Services"
],
- "x-menu-order": 1,
+ "x-menu-order": 4,
"x-permission": {
"operator": "OR",
"permissions": [
- "service_account_write"
+ "incident_read"
]
},
"x-undo": {
"type": "safe"
- }
+ },
+ "x-unstable": "**Note**: This endpoint is deprecated."
},
- "patch": {
- "description": "Edit an application key owned by this service account.",
- "operationId": "UpdateServiceAccountApplicationKey",
- "parameters": [
- {
- "description": "The ID of the service account.",
- "in": "path",
- "name": "service_account_id",
- "required": true,
- "schema": {
- "example": "00000000-0000-1234-0000-000000000000",
- "type": "string"
- }
- },
- {
- "description": "The ID of the application key.",
- "in": "path",
- "name": "app_key_id",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
+ "post": {
+ "deprecated": true,
+ "description": "Creates a new incident service.",
+ "operationId": "CreateIncidentService",
"requestBody": {
"content": {
"application/json": {
"schema": {
- "description": "Request used to update an application key.",
+ "description": "Create request with an incident service payload.",
"properties": {
"data": {
- "description": "Object used to update an application key.",
+ "description": "Incident Service payload for create requests.",
"properties": {
"attributes": {
- "description": "Attributes used to update an application Key.",
+ "description": "The incident service's attributes for a create request.",
"properties": {
"name": {
- "description": "Name of the application key.",
- "example": "Application Key for managing dashboards",
+ "description": "Name of the incident service.",
+ "example": "an example service name",
"type": "string"
- },
- "scopes": {
- "description": "Array of scopes to grant the application key.",
- "example": [
- "dashboards_read",
- "dashboards_write",
- "dashboards_public_share"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "type": "object"
+ },
+ "relationships": {
+ "description": "The incident service's relationships.",
+ "properties": {
+ "created_by": {
+ "description": "Relationship to user.",
+ "properties": {
+ "data": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "required": [
+ "data"
],
- "items": {
- "description": "Name of scope.",
- "type": "string"
+ "type": "object"
+ },
+ "last_modified_by": {
+ "description": "Relationship to user.",
+ "properties": {
+ "data": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
},
- "nullable": true,
- "type": "array"
+ "required": [
+ "data"
+ ],
+ "type": "object"
}
},
- "type": "object",
- "x-merge-override": {
- "properties": false
- }
- },
- "id": {
- "description": "ID of the application key.",
- "example": "00112233-4455-6677-8899-aabbccddeeff",
- "type": "string"
+ "readOnly": true,
+ "type": "object"
},
"type": {
- "default": "application_keys",
- "description": "Application Keys resource type.",
+ "default": "services",
+ "description": "Incident service resource type.",
"enum": [
- "application_keys"
+ "services"
],
- "example": "application_keys",
+ "example": "services",
"type": "string",
"x-enum-varnames": [
- "APPLICATION_KEYS"
+ "SERVICES"
]
}
},
"required": [
- "attributes",
- "id",
"type"
],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "object"
}
},
"required": [
@@ -378041,69 +399988,90 @@
}
}
},
+ "description": "Incident Service Payload.",
"required": true
},
"responses": {
- "200": {
+ "201": {
"content": {
"application/json": {
"schema": {
- "description": "Response for retrieving a partial application key.",
+ "description": "Response with an incident service payload.",
"properties": {
"data": {
- "description": "Partial Datadog application key.",
+ "description": "Incident Service data from responses.",
"properties": {
"attributes": {
- "description": "Attributes of a partial application key.",
+ "description": "The incident service's attributes from a response.",
"properties": {
- "created_at": {
- "description": "Creation date of the application key.",
- "example": "2020-11-23T10:00:00.000Z",
+ "created": {
+ "description": "Timestamp of when the incident service was created.",
+ "format": "date-time",
"readOnly": true,
- "type": "string",
- "x-merge-override": {
- "format": false
- }
+ "type": "string"
},
- "last4": {
- "description": "The last four characters of the application key.",
- "example": "abcd",
- "maxLength": 4,
- "minLength": 4,
+ "modified": {
+ "description": "Timestamp of when the incident service was modified.",
+ "format": "date-time",
"readOnly": true,
- "type": "string",
- "x-secret": true
+ "type": "string"
},
"name": {
- "description": "Name of the application key.",
- "example": "Application Key for managing dashboards",
+ "description": "Name of the incident service.",
+ "example": "service name",
"type": "string"
- },
- "scopes": {
- "description": "Array of scopes to grant the application key.",
- "example": [
- "dashboards_read",
- "dashboards_write",
- "dashboards_public_share"
- ],
- "items": {
- "description": "Name of scope.",
- "type": "string"
- },
- "nullable": true,
- "type": "array"
}
},
"type": "object"
},
"id": {
- "description": "ID of the application key.",
+ "description": "The incident service's ID.",
+ "example": "00000000-0000-0000-0000-000000000000",
"type": "string"
},
"relationships": {
- "description": "Resources related to the application key.",
+ "description": "The incident service's relationships.",
"properties": {
- "owned_by": {
+ "created_by": {
+ "description": "Relationship to user.",
+ "properties": {
+ "data": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "last_modified_by": {
"description": "Relationship to user.",
"properties": {
"data": {
@@ -378143,33 +400111,32 @@
"type": "object"
}
},
- "type": "object",
- "x-merge-override": {
- "properties": false
- }
+ "readOnly": true,
+ "type": "object"
},
"type": {
- "default": "application_keys",
- "description": "Application Keys resource type.",
+ "default": "services",
+ "description": "Incident service resource type.",
"enum": [
- "application_keys"
+ "services"
],
- "example": "application_keys",
+ "example": "services",
"type": "string",
"x-enum-varnames": [
- "APPLICATION_KEYS"
+ "SERVICES"
]
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
},
"included": {
- "description": "Array of objects related to the application key.",
+ "description": "Included objects from relationships.",
"items": {
- "description": "An object related to an application key.",
+ "description": "An object related to an incident service which is present in the included payload.",
"oneOf": [
{
"description": "User object returned by the API.",
@@ -378423,164 +400390,21 @@
"x-merge-override": {
"required": false
}
- },
- {
- "description": "Role object returned by the API.",
- "properties": {
- "attributes": {
- "description": "Attributes of the role.",
- "properties": {
- "created_at": {
- "description": "Creation time of the role.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified_at": {
- "description": "Time of last role modification.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "name": {
- "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
- "type": "string"
- },
- "user_count": {
- "description": "Number of users with that role.",
- "format": "int64",
- "readOnly": true,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "The unique identifier of the role.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the role object returned by the API.",
- "properties": {
- "permissions": {
- "description": "Relationship to multiple permissions objects.",
- "properties": {
- "data": {
- "description": "Relationships to permission objects.",
- "items": {
- "description": "Relationship to permission object.",
- "properties": {
- "id": {
- "description": "ID of the permission.",
- "type": "string"
- },
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
- "enum": [
- "permissions"
- ],
- "example": "permissions",
- "type": "string",
- "x-enum-varnames": [
- "PERMISSIONS"
- ]
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- {
- "description": "The definition of LeakedKey object.",
- "properties": {
- "attributes": {
- "description": "The definition of LeakedKeyAttributes object.",
- "properties": {
- "date": {
- "description": "The LeakedKeyAttributes date.",
- "example": "2017-07-21T17:32:28Z",
- "format": "date-time",
- "type": "string"
- },
- "leak_source": {
- "description": "The LeakedKeyAttributes leak_source.",
- "type": "string"
- }
- },
- "required": [
- "date"
- ],
- "type": "object"
- },
- "id": {
- "description": "The LeakedKey id.",
- "example": "id",
- "type": "string"
- },
- "type": {
- "default": "leaked_keys",
- "description": "The definition of LeakedKeyType object.",
- "enum": [
- "leaked_keys"
- ],
- "example": "leaked_keys",
- "type": "string",
- "x-enum-varnames": [
- "LEAKED_KEYS"
- ]
- }
- },
- "required": [
- "attributes",
- "id",
- "type"
- ],
- "type": "object"
}
]
},
+ "readOnly": true,
"type": "array"
}
},
+ "required": [
+ "data"
+ ],
"type": "object"
}
}
},
- "description": "OK"
+ "description": "CREATED"
},
"400": {
"content": {
@@ -378610,6 +400434,34 @@
},
"description": "Bad Request"
},
+ "401": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Unauthorized"
+ },
"403": {
"content": {
"application/json": {
@@ -378695,50 +400547,58 @@
"description": "Too many requests"
}
},
- "summary": "Edit an application key for this service account",
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
+ },
+ {
+ "AuthZ": [
+ "incident_settings_write"
+ ]
+ }
+ ],
+ "summary": "Create a new incident service",
"tags": [
- "Service Accounts"
+ "Incident Services"
],
"x-codegen-request-body-name": "body",
- "x-menu-order": 2,
+ "x-given": {
+ "service": {
+ "parameters": [
+ {
+ "name": "body",
+ "value": "{\n \"data\": {\n \"attributes\": {\n \"name\": \"{{ unique }}\"\n },\n \"type\": \"services\"\n }\n}"
+ }
+ ],
+ "step": "there is a valid \"service\" in the system"
+ }
+ },
+ "x-menu-order": 5,
"x-permission": {
"operator": "OR",
"permissions": [
- "service_account_write"
+ "incident_settings_write"
]
},
"x-undo": {
- "type": "idempotent"
- }
- },
- "x-merge-override": {
- "delete": true
+ "operationId": "DeleteIncidentService",
+ "parameters": [
+ {
+ "name": "service_id",
+ "source": "data.id"
+ }
+ ],
+ "type": "unsafe"
+ },
+ "x-unstable": "**Note**: This endpoint is deprecated."
}
},
- "/api/v2/services": {
+ "/api/v2/services/definitions": {
"get": {
- "deprecated": true,
- "description": "Get all incident services uploaded for the requesting user's organization. If the `include[users]` query parameter is provided, the included attribute will contain the users related to these incident services.",
- "operationId": "ListIncidentServices",
+ "description": "Get a list of all service definitions from the Datadog Service Catalog.",
+ "operationId": "ListServiceDefinitions",
"parameters": [
- {
- "description": "Specifies which types of related objects should be included in the response.",
- "in": "query",
- "name": "include",
- "required": false,
- "schema": {
- "description": "Object related to an incident.",
- "enum": [
- "users",
- "attachments"
- ],
- "type": "string",
- "x-enum-varnames": [
- "USERS",
- "ATTACHMENTS"
- ]
- }
- },
{
"description": "Size for a given page. The maximum allowed value is 100.",
"in": "query",
@@ -378752,540 +400612,1105 @@
}
},
{
- "description": "Specific offset to use as the beginning of the returned page.",
- "in": "query",
- "name": "page[offset]",
- "required": false,
- "schema": {
- "default": 0,
- "example": 0,
- "format": "int64",
- "type": "integer"
- }
- },
- {
- "description": "A search query that filters services by name.",
- "in": "query",
- "name": "filter",
- "required": false,
- "schema": {
- "example": "ExampleServiceName",
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Response with a list of incident service payloads.",
- "properties": {
- "data": {
- "description": "An array of incident services.",
- "example": [
- {
- "id": "00000000-0000-0000-0000-000000000000",
- "type": "services"
- }
- ],
- "items": {
- "description": "Incident Service data from responses.",
- "properties": {
- "attributes": {
- "description": "The incident service's attributes from a response.",
- "properties": {
- "created": {
- "description": "Timestamp of when the incident service was created.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified": {
- "description": "Timestamp of when the incident service was modified.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "name": {
- "description": "Name of the incident service.",
- "example": "service name",
- "type": "string"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "The incident service's ID.",
- "example": "00000000-0000-0000-0000-000000000000",
- "type": "string"
- },
- "relationships": {
- "description": "The incident service's relationships.",
- "properties": {
- "created_by": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "last_modified_by": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- }
- },
- "readOnly": true,
- "type": "object"
- },
- "type": {
- "default": "services",
- "description": "Incident service resource type.",
- "enum": [
- "services"
- ],
- "example": "services",
- "type": "string",
- "x-enum-varnames": [
- "SERVICES"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "included": {
- "description": "Included related resources which the user requested.",
+ "description": "Specific page number to return.",
+ "in": "query",
+ "name": "page[number]",
+ "required": false,
+ "schema": {
+ "default": 0,
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ {
+ "description": "The schema version desired in the response.",
+ "in": "query",
+ "name": "schema_version",
+ "required": false,
+ "schema": {
+ "description": "Schema versions",
+ "enum": [
+ "v1",
+ "v2",
+ "v2.1",
+ "v2.2"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "V1",
+ "V2",
+ "V2_1",
+ "V2_2"
+ ]
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Create service definitions response.",
+ "properties": {
+ "data": {
+ "description": "Data representing service definitions.",
"items": {
- "description": "An object related to an incident service which is present in the included payload.",
- "oneOf": [
- {
- "description": "User object returned by the API.",
+ "description": "Service definition data.",
+ "properties": {
+ "attributes": {
+ "description": "Service definition attributes.",
"properties": {
- "attributes": {
- "description": "Attributes of user object returned by the API.",
+ "meta": {
+ "description": "Metadata about a service definition.",
"properties": {
- "created_at": {
- "description": "Creation time of the user.",
- "format": "date-time",
- "type": "string"
- },
- "disabled": {
- "description": "Whether the user is disabled.",
- "type": "boolean"
- },
- "email": {
- "description": "Email of the user.",
- "type": "string"
- },
- "handle": {
- "description": "Handle of the user.",
+ "github-html-url": {
+ "description": "GitHub HTML URL.",
"type": "string"
},
- "icon": {
- "description": "URL of the user's icon.",
+ "ingested-schema-version": {
+ "description": "Ingestion schema version.",
"type": "string"
},
- "mfa_enabled": {
- "description": "If user has MFA enabled.",
- "readOnly": true,
- "type": "boolean"
- },
- "modified_at": {
- "description": "Time that the user was last modified.",
- "format": "date-time",
+ "ingestion-source": {
+ "description": "Ingestion source of the service definition.",
"type": "string"
},
- "name": {
- "description": "Name of the user.",
- "nullable": true,
+ "last-modified-time": {
+ "description": "Last modified time of the service definition.",
"type": "string"
},
- "service_account": {
- "description": "Whether the user is a service account.",
- "type": "boolean"
- },
- "status": {
- "description": "Status of the user.",
+ "origin": {
+ "description": "User defined origin of the service definition.",
"type": "string"
},
- "title": {
- "description": "Title of the user.",
- "nullable": true,
+ "origin-detail": {
+ "description": "User defined origin's detail of the service definition.",
"type": "string"
},
- "verified": {
- "description": "Whether the user is verified.",
- "type": "boolean"
+ "warnings": {
+ "description": "A list of schema validation warnings.",
+ "items": {
+ "description": "Schema validation warnings.",
+ "properties": {
+ "instance-location": {
+ "description": "The warning instance location.",
+ "type": "string"
+ },
+ "keyword-location": {
+ "description": "The warning keyword location.",
+ "type": "string"
+ },
+ "message": {
+ "description": "The warning message.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
}
},
"type": "object"
},
- "id": {
- "description": "ID of the user.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the user object returned by the API.",
- "properties": {
- "org": {
- "description": "Relationship to an organization.",
+ "schema": {
+ "description": "Service definition schema.",
+ "oneOf": [
+ {
+ "deprecated": true,
+ "description": "Deprecated - Service definition V1 for providing additional service metadata and integrations.",
"properties": {
- "data": {
- "description": "Relationship to organization object.",
+ "contact": {
+ "description": "Contact information about the service.",
"properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
+ "email": {
+ "description": "Service owner’s email.",
+ "example": "contact@datadoghq.com",
"type": "string"
},
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
+ "slack": {
+ "description": "Service owner’s Slack channel.",
+ "example": "https://yourcompany.slack.com/archives/channel123",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "extensions": {
+ "additionalProperties": {},
+ "description": "Extensions to V1 schema.",
+ "example": {
+ "myorg/extension": "extensionValue"
+ },
+ "type": "object"
+ },
+ "external-resources": {
+ "description": "A list of external links related to the services.",
+ "items": {
+ "description": "Service's external links.",
+ "properties": {
+ "name": {
+ "description": "Link name.",
+ "example": "Runbook",
+ "type": "string"
+ },
+ "type": {
+ "description": "Link type.",
+ "enum": [
+ "doc",
+ "wiki",
+ "runbook",
+ "url",
+ "repo",
+ "dashboard",
+ "oncall",
+ "code",
+ "link"
+ ],
+ "example": "runbook",
+ "type": "string",
+ "x-enum-varnames": [
+ "DOC",
+ "WIKI",
+ "RUNBOOK",
+ "URL",
+ "REPO",
+ "DASHBOARD",
+ "ONCALL",
+ "CODE",
+ "LINK"
+ ]
+ },
+ "url": {
+ "description": "Link URL.",
+ "example": "https://my-runbook",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "type",
+ "url"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "info": {
+ "description": "Basic information about a service.",
+ "properties": {
+ "dd-service": {
+ "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
+ "example": "myservice",
+ "type": "string"
+ },
+ "description": {
+ "description": "A short description of the service.",
+ "example": "A shopping cart service",
+ "type": "string"
+ },
+ "display-name": {
+ "description": "A friendly name of the service.",
+ "example": "My Service",
+ "type": "string"
+ },
+ "service-tier": {
+ "description": "Service tier.",
+ "example": "Tier 1",
+ "type": "string"
}
},
"required": [
- "id",
- "type"
+ "dd-service"
],
"type": "object"
+ },
+ "integrations": {
+ "description": "Third party integrations that Datadog supports.",
+ "properties": {
+ "pagerduty": {
+ "description": "PagerDuty service URL for the service.",
+ "example": "https://my-org.pagerduty.com/service-directory/PMyService",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "org": {
+ "description": "Org related information about the service.",
+ "properties": {
+ "application": {
+ "description": "App feature this service supports.",
+ "example": "E-Commerce",
+ "type": "string"
+ },
+ "team": {
+ "description": "Team that owns the service.",
+ "example": "my-team",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "schema-version": {
+ "default": "v1",
+ "description": "Schema version being used.",
+ "enum": [
+ "v1"
+ ],
+ "example": "v1",
+ "type": "string",
+ "x-enum-varnames": [
+ "V1"
+ ]
+ },
+ "tags": {
+ "description": "A set of custom tags.",
+ "example": [
+ "my:tag",
+ "service:tag"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
}
},
"required": [
- "data"
+ "schema-version",
+ "info"
],
"type": "object"
},
- "other_orgs": {
- "description": "Relationship to organizations.",
+ {
+ "description": "Service definition V2 for providing service metadata and integrations.",
"properties": {
- "data": {
- "description": "Relationships to organization objects.",
- "example": [],
+ "contacts": {
+ "description": "A list of contacts related to the services.",
"items": {
- "description": "Relationship to organization object.",
+ "description": "Service owner's contacts information.",
+ "oneOf": [
+ {
+ "description": "Service owner's email.",
+ "properties": {
+ "contact": {
+ "description": "Contact value.",
+ "example": "contact@datadoghq.com",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact email.",
+ "example": "Team Email",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "email"
+ ],
+ "example": "email",
+ "type": "string",
+ "x-enum-varnames": [
+ "EMAIL"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Service owner's Slack channel.",
+ "properties": {
+ "contact": {
+ "description": "Slack Channel.",
+ "example": "https://yourcompany.slack.com/archives/channel123",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact Slack.",
+ "example": "Team Slack",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "slack"
+ ],
+ "example": "slack",
+ "type": "string",
+ "x-enum-varnames": [
+ "SLACK"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Service owner's Microsoft Teams.",
+ "properties": {
+ "contact": {
+ "description": "Contact value.",
+ "example": "https://teams.microsoft.com/myteam",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact Microsoft Teams.",
+ "example": "My team channel",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "microsoft-teams"
+ ],
+ "example": "microsoft-teams",
+ "type": "string",
+ "x-enum-varnames": [
+ "MICROSOFT_TEAMS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "type": "array"
+ },
+ "dd-service": {
+ "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
+ "example": "my-service",
+ "type": "string"
+ },
+ "dd-team": {
+ "description": "Experimental feature. A Team handle that matches a Team in the Datadog Teams product.",
+ "example": "my-team",
+ "type": "string"
+ },
+ "docs": {
+ "description": "A list of documentation related to the services.",
+ "items": {
+ "description": "Service documents.",
"properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
+ "name": {
+ "description": "Document name.",
+ "example": "Architecture",
+ "type": "string"
+ },
+ "provider": {
+ "description": "Document provider.",
+ "example": "google drive",
+ "type": "string"
+ },
+ "url": {
+ "description": "Document URL.",
+ "example": "https://gdrive/mydoc",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "url"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "extensions": {
+ "additionalProperties": {},
+ "description": "Extensions to V2 schema.",
+ "example": {
+ "myorg/extension": "extensionValue"
+ },
+ "type": "object"
+ },
+ "integrations": {
+ "description": "Third party integrations that Datadog supports.",
+ "properties": {
+ "opsgenie": {
+ "description": "Opsgenie integration for the service.",
+ "properties": {
+ "region": {
+ "description": "Opsgenie instance region.",
+ "enum": [
+ "US",
+ "EU"
+ ],
+ "example": "US",
+ "type": "string",
+ "x-enum-varnames": [
+ "US",
+ "EU"
+ ]
+ },
+ "service-url": {
+ "description": "Opsgenie service url.",
+ "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
+ "type": "string"
+ }
+ },
+ "required": [
+ "service-url"
+ ],
+ "type": "object"
+ },
+ "pagerduty": {
+ "description": "PagerDuty service URL for the service.",
+ "example": "https://my-org.pagerduty.com/service-directory/PMyService",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "links": {
+ "description": "A list of links related to the services.",
+ "items": {
+ "description": "Service's external links.",
+ "properties": {
+ "name": {
+ "description": "Link name.",
+ "example": "Runbook",
"type": "string"
},
"type": {
- "default": "orgs",
- "description": "Organizations resource type.",
+ "description": "Link type.",
"enum": [
- "orgs"
+ "doc",
+ "wiki",
+ "runbook",
+ "url",
+ "repo",
+ "dashboard",
+ "oncall",
+ "code",
+ "link"
],
- "example": "orgs",
+ "example": "runbook",
"type": "string",
"x-enum-varnames": [
- "ORGS"
+ "DOC",
+ "WIKI",
+ "RUNBOOK",
+ "URL",
+ "REPO",
+ "DASHBOARD",
+ "ONCALL",
+ "CODE",
+ "LINK"
]
+ },
+ "url": {
+ "description": "Link URL.",
+ "example": "https://my-runbook",
+ "type": "string"
}
},
"required": [
- "id",
- "type"
+ "name",
+ "type",
+ "url"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "repos": {
+ "description": "A list of code repositories related to the services.",
+ "items": {
+ "description": "Service code repositories.",
+ "properties": {
+ "name": {
+ "description": "Repository name.",
+ "example": "Source Code",
+ "type": "string"
+ },
+ "provider": {
+ "description": "Repository provider.",
+ "example": "GitHub",
+ "type": "string"
+ },
+ "url": {
+ "description": "Repository URL.",
+ "example": "https://github.com/DataDog/schema",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "url"
],
"type": "object"
},
"type": "array"
+ },
+ "schema-version": {
+ "default": "v2",
+ "description": "Schema version being used.",
+ "enum": [
+ "v2"
+ ],
+ "example": "v2",
+ "type": "string",
+ "x-enum-varnames": [
+ "V2"
+ ]
+ },
+ "tags": {
+ "description": "A set of custom tags.",
+ "example": [
+ "my:tag",
+ "service:tag"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "team": {
+ "description": "Team that owns the service.",
+ "example": "my-team",
+ "type": "string"
}
},
"required": [
- "data"
+ "schema-version",
+ "dd-service"
],
"type": "object"
},
- "other_users": {
- "description": "Relationship to users.",
+ {
+ "description": "Service definition v2.1 for providing service metadata and integrations.",
"properties": {
- "data": {
- "description": "Relationships to user objects.",
- "example": [],
+ "application": {
+ "description": "Identifier for a group of related services serving a product feature, which the service is a part of.",
+ "example": "my-app",
+ "type": "string"
+ },
+ "contacts": {
+ "description": "A list of contacts related to the services.",
"items": {
- "description": "Relationship to user object.",
+ "description": "Service owner's contacts information.",
+ "oneOf": [
+ {
+ "description": "Service owner's email.",
+ "properties": {
+ "contact": {
+ "description": "Contact value.",
+ "example": "contact@datadoghq.com",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact email.",
+ "example": "Team Email",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "email"
+ ],
+ "example": "email",
+ "type": "string",
+ "x-enum-varnames": [
+ "EMAIL"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Service owner's Slack channel.",
+ "properties": {
+ "contact": {
+ "description": "Slack Channel.",
+ "example": "https://yourcompany.slack.com/archives/channel123",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact Slack.",
+ "example": "Team Slack",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "slack"
+ ],
+ "example": "slack",
+ "type": "string",
+ "x-enum-varnames": [
+ "SLACK"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Service owner's Microsoft Teams.",
+ "properties": {
+ "contact": {
+ "description": "Contact value.",
+ "example": "https://teams.microsoft.com/myteam",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact Microsoft Teams.",
+ "example": "My team channel",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "microsoft-teams"
+ ],
+ "example": "microsoft-teams",
+ "type": "string",
+ "x-enum-varnames": [
+ "MICROSOFT_TEAMS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "type": "array"
+ },
+ "dd-service": {
+ "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
+ "example": "my-service",
+ "type": "string"
+ },
+ "description": {
+ "description": "A short description of the service.",
+ "example": "My service description",
+ "type": "string"
+ },
+ "extensions": {
+ "additionalProperties": {},
+ "description": "Extensions to v2.1 schema.",
+ "example": {
+ "myorg/extension": "extensionValue"
+ },
+ "type": "object"
+ },
+ "integrations": {
+ "description": "Third party integrations that Datadog supports.",
+ "properties": {
+ "opsgenie": {
+ "description": "Opsgenie integration for the service.",
+ "properties": {
+ "region": {
+ "description": "Opsgenie instance region.",
+ "enum": [
+ "US",
+ "EU"
+ ],
+ "example": "US",
+ "type": "string",
+ "x-enum-varnames": [
+ "US",
+ "EU"
+ ]
+ },
+ "service-url": {
+ "description": "Opsgenie service url.",
+ "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
+ "type": "string"
+ }
+ },
+ "required": [
+ "service-url"
+ ],
+ "type": "object"
+ },
+ "pagerduty": {
+ "description": "PagerDuty integration for the service.",
+ "properties": {
+ "service-url": {
+ "description": "PagerDuty service url.",
+ "example": "https://my-org.pagerduty.com/service-directory/PMyService",
+ "type": "string"
+ }
+ },
+ "type": "object",
+ "x-ignore-duplicate-object": true
+ }
+ },
+ "type": "object"
+ },
+ "lifecycle": {
+ "description": "The current life cycle phase of the service.",
+ "example": "sandbox",
+ "type": "string"
+ },
+ "links": {
+ "description": "A list of links related to the services.",
+ "items": {
+ "description": "Service's external links.",
"properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
+ "name": {
+ "description": "Link name.",
+ "example": "Runbook",
+ "type": "string"
+ },
+ "provider": {
+ "description": "Link provider.",
+ "example": "Github",
"type": "string"
},
"type": {
- "default": "users",
- "description": "Users resource type.",
+ "description": "Link type.",
"enum": [
- "users"
+ "doc",
+ "repo",
+ "runbook",
+ "dashboard",
+ "other"
],
- "example": "users",
+ "example": "runbook",
"type": "string",
"x-enum-varnames": [
- "USERS"
+ "DOC",
+ "REPO",
+ "RUNBOOK",
+ "DASHBOARD",
+ "OTHER"
]
+ },
+ "url": {
+ "description": "Link URL.",
+ "example": "https://my-runbook",
+ "type": "string"
}
},
"required": [
- "id",
- "type"
+ "name",
+ "type",
+ "url"
],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "schema-version": {
+ "default": "v2.1",
+ "description": "Schema version being used.",
+ "enum": [
+ "v2.1"
+ ],
+ "example": "v2.1",
+ "type": "string",
+ "x-enum-varnames": [
+ "V2_1"
+ ]
+ },
+ "tags": {
+ "description": "A set of custom tags.",
+ "example": [
+ "my:tag",
+ "service:tag"
+ ],
+ "items": {
+ "type": "string"
},
"type": "array"
+ },
+ "team": {
+ "description": "Team that owns the service. It is used to locate a team defined in Datadog Teams if it exists.",
+ "example": "my-team",
+ "type": "string"
+ },
+ "tier": {
+ "description": "Importance of the service.",
+ "example": "High",
+ "type": "string"
}
},
"required": [
- "data"
+ "schema-version",
+ "dd-service"
],
"type": "object"
},
- "roles": {
- "description": "Relationship to roles.",
+ {
+ "description": "Service definition v2.2 for providing service metadata and integrations.",
"properties": {
- "data": {
- "description": "An array containing type and the unique identifier of a role.",
+ "application": {
+ "description": "Identifier for a group of related services serving a product feature, which the service is a part of.",
+ "example": "my-app",
+ "type": "string"
+ },
+ "ci-pipeline-fingerprints": {
+ "description": "A set of CI fingerprints.",
+ "example": [
+ "j88xdEy0J5lc",
+ "eZ7LMljCk8vo"
+ ],
"items": {
- "description": "Relationship to role object.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "contacts": {
+ "description": "A list of contacts related to the services.",
+ "items": {
+ "description": "Service owner's contacts information.",
"properties": {
- "id": {
- "description": "The unique identifier of the role.",
- "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "contact": {
+ "description": "Contact value.",
+ "example": "https://teams.microsoft.com/myteam",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact Name.",
+ "example": "My team channel",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type. Datadog recognizes the following types: `email`, `slack`, and `microsoft-teams`.",
+ "example": "slack",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "dd-service": {
+ "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
+ "example": "my-service",
+ "type": "string"
+ },
+ "description": {
+ "description": "A short description of the service.",
+ "example": "My service description",
+ "type": "string"
+ },
+ "extensions": {
+ "additionalProperties": {},
+ "description": "Extensions to v2.2 schema.",
+ "example": {
+ "myorg/extension": "extensionValue"
+ },
+ "type": "object"
+ },
+ "integrations": {
+ "description": "Third party integrations that Datadog supports.",
+ "properties": {
+ "opsgenie": {
+ "description": "Opsgenie integration for the service.",
+ "properties": {
+ "region": {
+ "description": "Opsgenie instance region.",
+ "enum": [
+ "US",
+ "EU"
+ ],
+ "example": "US",
+ "type": "string",
+ "x-enum-varnames": [
+ "US",
+ "EU"
+ ]
+ },
+ "service-url": {
+ "description": "Opsgenie service url.",
+ "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
+ "type": "string"
+ }
+ },
+ "required": [
+ "service-url"
+ ],
+ "type": "object"
+ },
+ "pagerduty": {
+ "description": "PagerDuty integration for the service.",
+ "properties": {
+ "service-url": {
+ "description": "PagerDuty service url.",
+ "example": "https://my-org.pagerduty.com/service-directory/PMyService",
+ "type": "string"
+ }
+ },
+ "type": "object",
+ "x-ignore-duplicate-object": true
+ }
+ },
+ "type": "object"
+ },
+ "languages": {
+ "description": "The service's programming language. Datadog recognizes the following languages: `dotnet`, `go`, `java`, `js`, `php`, `python`, `ruby`, and `c++`.",
+ "example": [
+ "dotnet",
+ "go",
+ "java",
+ "js",
+ "php",
+ "python",
+ "ruby",
+ "c++"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "lifecycle": {
+ "description": "The current life cycle phase of the service.",
+ "example": "sandbox",
+ "type": "string"
+ },
+ "links": {
+ "description": "A list of links related to the services.",
+ "items": {
+ "description": "Service's external links.",
+ "properties": {
+ "name": {
+ "description": "Link name.",
+ "example": "Runbook",
+ "type": "string"
+ },
+ "provider": {
+ "description": "Link provider.",
+ "example": "Github",
"type": "string"
},
"type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
+ "description": "Link type. Datadog recognizes the following types: `runbook`, `doc`, `repo`, `dashboard`, and `other`.",
+ "example": "runbook",
+ "type": "string"
+ },
+ "url": {
+ "description": "Link URL.",
+ "example": "https://my-runbook",
+ "type": "string"
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "required": [
+ "name",
+ "type",
+ "url"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "schema-version": {
+ "default": "v2.2",
+ "description": "Schema version being used.",
+ "enum": [
+ "v2.2"
+ ],
+ "example": "v2.2",
+ "type": "string",
+ "x-enum-varnames": [
+ "V2_2"
+ ]
+ },
+ "tags": {
+ "description": "A set of custom tags.",
+ "example": [
+ "my:tag",
+ "service:tag"
+ ],
+ "items": {
+ "type": "string"
},
"type": "array"
+ },
+ "team": {
+ "description": "Team that owns the service. It is used to locate a team defined in Datadog Teams if it exists.",
+ "example": "my-team",
+ "type": "string"
+ },
+ "tier": {
+ "description": "Importance of the service.",
+ "example": "High",
+ "type": "string"
+ },
+ "type": {
+ "description": "The type of service.",
+ "enum": [
+ "web",
+ "db",
+ "cache",
+ "function",
+ "browser",
+ "mobile",
+ "custom"
+ ],
+ "example": "web",
+ "type": "string",
+ "x-enum-varnames": [
+ "WEB",
+ "DB",
+ "CACHE",
+ "FUNCTION",
+ "BROSWER",
+ "MOBILE",
+ "CUSTOM"
+ ]
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "required": [
+ "schema-version",
+ "dd-service"
+ ],
+ "type": "object"
}
- },
- "type": "object",
- "x-merge-override": {
- "properties": false
- }
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
]
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "object"
+ },
+ "id": {
+ "description": "Service definition id.",
+ "type": "string"
+ },
+ "type": {
+ "description": "Service definition type.",
+ "type": "string"
}
- ]
+ },
+ "type": "object"
},
- "readOnly": true,
"type": "array"
- },
- "meta": {
- "description": "The metadata object containing pagination metadata.",
- "properties": {
- "pagination": {
- "description": "Pagination properties.",
- "properties": {
- "next_offset": {
- "description": "The index of the first element in the next page of results. Equal to page size added to the current offset.",
- "example": 1000,
- "format": "int64",
- "type": "integer"
- },
- "offset": {
- "description": "The index of the first element in the results.",
- "example": 10,
- "format": "int64",
- "type": "integer"
- },
- "size": {
- "description": "Maximum size of pages to return.",
- "example": 1000,
- "format": "int64",
- "type": "integer"
- }
- },
- "type": "object"
- }
- },
- "readOnly": true,
- "type": "object"
}
},
- "required": [
- "data"
- ],
"type": "object"
}
}
},
"description": "OK"
},
- "400": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Bad Request"
- },
- "401": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Unauthorized"
- },
"403": {
"content": {
"application/json": {
@@ -379314,34 +401739,6 @@
},
"description": "Forbidden"
},
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Not Found"
- },
"429": {
"content": {
"application/json": {
@@ -379378,576 +401775,1914 @@
},
{
"AuthZ": [
- "incident_read"
+ "apm_service_catalog_read"
]
}
],
- "summary": "Get a list of all incident services",
+ "summary": "Get all service definitions",
"tags": [
- "Incident Services"
+ "Service Definition"
],
- "x-menu-order": 4,
+ "x-menu-order": 1,
+ "x-pagination": {
+ "limitParam": "page[size]",
+ "pageParam": "page[number]",
+ "resultsPath": "data"
+ },
"x-permission": {
"operator": "OR",
"permissions": [
- "incident_read"
+ "apm_service_catalog_read"
]
},
"x-undo": {
"type": "safe"
- },
- "x-unstable": "**Note**: This endpoint is deprecated."
+ }
},
"post": {
- "deprecated": true,
- "description": "Creates a new incident service.",
- "operationId": "CreateIncidentService",
+ "description": "Create or update service definition in the Datadog Service Catalog.",
+ "operationId": "CreateOrUpdateServiceDefinitions",
"requestBody": {
"content": {
"application/json": {
"schema": {
- "description": "Create request with an incident service payload.",
- "properties": {
- "data": {
- "description": "Incident Service payload for create requests.",
+ "description": "Create service definitions request.",
+ "oneOf": [
+ {
+ "description": "Service definition v2.2 for providing service metadata and integrations.",
"properties": {
- "attributes": {
- "description": "The incident service's attributes for a create request.",
+ "application": {
+ "description": "Identifier for a group of related services serving a product feature, which the service is a part of.",
+ "example": "my-app",
+ "type": "string"
+ },
+ "ci-pipeline-fingerprints": {
+ "description": "A set of CI fingerprints.",
+ "example": [
+ "j88xdEy0J5lc",
+ "eZ7LMljCk8vo"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "contacts": {
+ "description": "A list of contacts related to the services.",
+ "items": {
+ "description": "Service owner's contacts information.",
+ "properties": {
+ "contact": {
+ "description": "Contact value.",
+ "example": "https://teams.microsoft.com/myteam",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact Name.",
+ "example": "My team channel",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type. Datadog recognizes the following types: `email`, `slack`, and `microsoft-teams`.",
+ "example": "slack",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "dd-service": {
+ "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
+ "example": "my-service",
+ "type": "string"
+ },
+ "description": {
+ "description": "A short description of the service.",
+ "example": "My service description",
+ "type": "string"
+ },
+ "extensions": {
+ "additionalProperties": {},
+ "description": "Extensions to v2.2 schema.",
+ "example": {
+ "myorg/extension": "extensionValue"
+ },
+ "type": "object"
+ },
+ "integrations": {
+ "description": "Third party integrations that Datadog supports.",
"properties": {
- "name": {
- "description": "Name of the incident service.",
- "example": "an example service name",
- "type": "string"
+ "opsgenie": {
+ "description": "Opsgenie integration for the service.",
+ "properties": {
+ "region": {
+ "description": "Opsgenie instance region.",
+ "enum": [
+ "US",
+ "EU"
+ ],
+ "example": "US",
+ "type": "string",
+ "x-enum-varnames": [
+ "US",
+ "EU"
+ ]
+ },
+ "service-url": {
+ "description": "Opsgenie service url.",
+ "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
+ "type": "string"
+ }
+ },
+ "required": [
+ "service-url"
+ ],
+ "type": "object"
+ },
+ "pagerduty": {
+ "description": "PagerDuty integration for the service.",
+ "properties": {
+ "service-url": {
+ "description": "PagerDuty service url.",
+ "example": "https://my-org.pagerduty.com/service-directory/PMyService",
+ "type": "string"
+ }
+ },
+ "type": "object",
+ "x-ignore-duplicate-object": true
}
},
- "required": [
- "name"
+ "type": "object"
+ },
+ "languages": {
+ "description": "The service's programming language. Datadog recognizes the following languages: `dotnet`, `go`, `java`, `js`, `php`, `python`, `ruby`, and `c++`.",
+ "example": [
+ "dotnet",
+ "go",
+ "java",
+ "js",
+ "php",
+ "python",
+ "ruby",
+ "c++"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "lifecycle": {
+ "description": "The current life cycle phase of the service.",
+ "example": "sandbox",
+ "type": "string"
+ },
+ "links": {
+ "description": "A list of links related to the services.",
+ "items": {
+ "description": "Service's external links.",
+ "properties": {
+ "name": {
+ "description": "Link name.",
+ "example": "Runbook",
+ "type": "string"
+ },
+ "provider": {
+ "description": "Link provider.",
+ "example": "Github",
+ "type": "string"
+ },
+ "type": {
+ "description": "Link type. Datadog recognizes the following types: `runbook`, `doc`, `repo`, `dashboard`, and `other`.",
+ "example": "runbook",
+ "type": "string"
+ },
+ "url": {
+ "description": "Link URL.",
+ "example": "https://my-runbook",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "type",
+ "url"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "schema-version": {
+ "default": "v2.2",
+ "description": "Schema version being used.",
+ "enum": [
+ "v2.2"
+ ],
+ "example": "v2.2",
+ "type": "string",
+ "x-enum-varnames": [
+ "V2_2"
+ ]
+ },
+ "tags": {
+ "description": "A set of custom tags.",
+ "example": [
+ "my:tag",
+ "service:tag"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "team": {
+ "description": "Team that owns the service. It is used to locate a team defined in Datadog Teams if it exists.",
+ "example": "my-team",
+ "type": "string"
+ },
+ "tier": {
+ "description": "Importance of the service.",
+ "example": "High",
+ "type": "string"
+ },
+ "type": {
+ "description": "The type of service.",
+ "enum": [
+ "web",
+ "db",
+ "cache",
+ "function",
+ "browser",
+ "mobile",
+ "custom"
],
+ "example": "web",
+ "type": "string",
+ "x-enum-varnames": [
+ "WEB",
+ "DB",
+ "CACHE",
+ "FUNCTION",
+ "BROSWER",
+ "MOBILE",
+ "CUSTOM"
+ ]
+ }
+ },
+ "required": [
+ "schema-version",
+ "dd-service"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Service definition v2.1 for providing service metadata and integrations.",
+ "properties": {
+ "application": {
+ "description": "Identifier for a group of related services serving a product feature, which the service is a part of.",
+ "example": "my-app",
+ "type": "string"
+ },
+ "contacts": {
+ "description": "A list of contacts related to the services.",
+ "items": {
+ "description": "Service owner's contacts information.",
+ "oneOf": [
+ {
+ "description": "Service owner's email.",
+ "properties": {
+ "contact": {
+ "description": "Contact value.",
+ "example": "contact@datadoghq.com",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact email.",
+ "example": "Team Email",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "email"
+ ],
+ "example": "email",
+ "type": "string",
+ "x-enum-varnames": [
+ "EMAIL"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Service owner's Slack channel.",
+ "properties": {
+ "contact": {
+ "description": "Slack Channel.",
+ "example": "https://yourcompany.slack.com/archives/channel123",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact Slack.",
+ "example": "Team Slack",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "slack"
+ ],
+ "example": "slack",
+ "type": "string",
+ "x-enum-varnames": [
+ "SLACK"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Service owner's Microsoft Teams.",
+ "properties": {
+ "contact": {
+ "description": "Contact value.",
+ "example": "https://teams.microsoft.com/myteam",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact Microsoft Teams.",
+ "example": "My team channel",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "microsoft-teams"
+ ],
+ "example": "microsoft-teams",
+ "type": "string",
+ "x-enum-varnames": [
+ "MICROSOFT_TEAMS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "type": "array"
+ },
+ "dd-service": {
+ "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
+ "example": "my-service",
+ "type": "string"
+ },
+ "description": {
+ "description": "A short description of the service.",
+ "example": "My service description",
+ "type": "string"
+ },
+ "extensions": {
+ "additionalProperties": {},
+ "description": "Extensions to v2.1 schema.",
+ "example": {
+ "myorg/extension": "extensionValue"
+ },
"type": "object"
},
- "relationships": {
- "description": "The incident service's relationships.",
+ "integrations": {
+ "description": "Third party integrations that Datadog supports.",
"properties": {
- "created_by": {
- "description": "Relationship to user.",
+ "opsgenie": {
+ "description": "Opsgenie integration for the service.",
"properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
+ "region": {
+ "description": "Opsgenie instance region.",
+ "enum": [
+ "US",
+ "EU"
],
- "type": "object",
- "x-merge-override": {
- "required": false
+ "example": "US",
+ "type": "string",
+ "x-enum-varnames": [
+ "US",
+ "EU"
+ ]
+ },
+ "service-url": {
+ "description": "Opsgenie service url.",
+ "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
+ "type": "string"
+ }
+ },
+ "required": [
+ "service-url"
+ ],
+ "type": "object"
+ },
+ "pagerduty": {
+ "description": "PagerDuty integration for the service.",
+ "properties": {
+ "service-url": {
+ "description": "PagerDuty service url.",
+ "example": "https://my-org.pagerduty.com/service-directory/PMyService",
+ "type": "string"
+ }
+ },
+ "type": "object",
+ "x-ignore-duplicate-object": true
+ }
+ },
+ "type": "object"
+ },
+ "lifecycle": {
+ "description": "The current life cycle phase of the service.",
+ "example": "sandbox",
+ "type": "string"
+ },
+ "links": {
+ "description": "A list of links related to the services.",
+ "items": {
+ "description": "Service's external links.",
+ "properties": {
+ "name": {
+ "description": "Link name.",
+ "example": "Runbook",
+ "type": "string"
+ },
+ "provider": {
+ "description": "Link provider.",
+ "example": "Github",
+ "type": "string"
+ },
+ "type": {
+ "description": "Link type.",
+ "enum": [
+ "doc",
+ "repo",
+ "runbook",
+ "dashboard",
+ "other"
+ ],
+ "example": "runbook",
+ "type": "string",
+ "x-enum-varnames": [
+ "DOC",
+ "REPO",
+ "RUNBOOK",
+ "DASHBOARD",
+ "OTHER"
+ ]
+ },
+ "url": {
+ "description": "Link URL.",
+ "example": "https://my-runbook",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "type",
+ "url"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "schema-version": {
+ "default": "v2.1",
+ "description": "Schema version being used.",
+ "enum": [
+ "v2.1"
+ ],
+ "example": "v2.1",
+ "type": "string",
+ "x-enum-varnames": [
+ "V2_1"
+ ]
+ },
+ "tags": {
+ "description": "A set of custom tags.",
+ "example": [
+ "my:tag",
+ "service:tag"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "team": {
+ "description": "Team that owns the service. It is used to locate a team defined in Datadog Teams if it exists.",
+ "example": "my-team",
+ "type": "string"
+ },
+ "tier": {
+ "description": "Importance of the service.",
+ "example": "High",
+ "type": "string"
+ }
+ },
+ "required": [
+ "schema-version",
+ "dd-service"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Service definition V2 for providing service metadata and integrations.",
+ "properties": {
+ "contacts": {
+ "description": "A list of contacts related to the services.",
+ "items": {
+ "description": "Service owner's contacts information.",
+ "oneOf": [
+ {
+ "description": "Service owner's email.",
+ "properties": {
+ "contact": {
+ "description": "Contact value.",
+ "example": "contact@datadoghq.com",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact email.",
+ "example": "Team Email",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "email"
+ ],
+ "example": "email",
+ "type": "string",
+ "x-enum-varnames": [
+ "EMAIL"
+ ]
}
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Service owner's Slack channel.",
+ "properties": {
+ "contact": {
+ "description": "Slack Channel.",
+ "example": "https://yourcompany.slack.com/archives/channel123",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact Slack.",
+ "example": "Team Slack",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "slack"
+ ],
+ "example": "slack",
+ "type": "string",
+ "x-enum-varnames": [
+ "SLACK"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Service owner's Microsoft Teams.",
+ "properties": {
+ "contact": {
+ "description": "Contact value.",
+ "example": "https://teams.microsoft.com/myteam",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact Microsoft Teams.",
+ "example": "My team channel",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "microsoft-teams"
+ ],
+ "example": "microsoft-teams",
+ "type": "string",
+ "x-enum-varnames": [
+ "MICROSOFT_TEAMS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "type": "array"
+ },
+ "dd-service": {
+ "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
+ "example": "my-service",
+ "type": "string"
+ },
+ "dd-team": {
+ "description": "Experimental feature. A Team handle that matches a Team in the Datadog Teams product.",
+ "example": "my-team",
+ "type": "string"
+ },
+ "docs": {
+ "description": "A list of documentation related to the services.",
+ "items": {
+ "description": "Service documents.",
+ "properties": {
+ "name": {
+ "description": "Document name.",
+ "example": "Architecture",
+ "type": "string"
+ },
+ "provider": {
+ "description": "Document provider.",
+ "example": "google drive",
+ "type": "string"
+ },
+ "url": {
+ "description": "Document URL.",
+ "example": "https://gdrive/mydoc",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "url"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "extensions": {
+ "additionalProperties": {},
+ "description": "Extensions to V2 schema.",
+ "example": {
+ "myorg/extension": "extensionValue"
+ },
+ "type": "object"
+ },
+ "integrations": {
+ "description": "Third party integrations that Datadog supports.",
+ "properties": {
+ "opsgenie": {
+ "description": "Opsgenie integration for the service.",
+ "properties": {
+ "region": {
+ "description": "Opsgenie instance region.",
+ "enum": [
+ "US",
+ "EU"
+ ],
+ "example": "US",
+ "type": "string",
+ "x-enum-varnames": [
+ "US",
+ "EU"
+ ]
+ },
+ "service-url": {
+ "description": "Opsgenie service url.",
+ "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
+ "type": "string"
}
},
"required": [
- "data"
+ "service-url"
],
"type": "object"
},
- "last_modified_by": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
+ "pagerduty": {
+ "description": "PagerDuty service URL for the service.",
+ "example": "https://my-org.pagerduty.com/service-directory/PMyService",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "links": {
+ "description": "A list of links related to the services.",
+ "items": {
+ "description": "Service's external links.",
+ "properties": {
+ "name": {
+ "description": "Link name.",
+ "example": "Runbook",
+ "type": "string"
+ },
+ "type": {
+ "description": "Link type.",
+ "enum": [
+ "doc",
+ "wiki",
+ "runbook",
+ "url",
+ "repo",
+ "dashboard",
+ "oncall",
+ "code",
+ "link"
+ ],
+ "example": "runbook",
+ "type": "string",
+ "x-enum-varnames": [
+ "DOC",
+ "WIKI",
+ "RUNBOOK",
+ "URL",
+ "REPO",
+ "DASHBOARD",
+ "ONCALL",
+ "CODE",
+ "LINK"
+ ]
+ },
+ "url": {
+ "description": "Link URL.",
+ "example": "https://my-runbook",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "type",
+ "url"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "repos": {
+ "description": "A list of code repositories related to the services.",
+ "items": {
+ "description": "Service code repositories.",
+ "properties": {
+ "name": {
+ "description": "Repository name.",
+ "example": "Source Code",
+ "type": "string"
},
- "required": [
- "data"
- ],
- "type": "object"
- }
+ "provider": {
+ "description": "Repository provider.",
+ "example": "GitHub",
+ "type": "string"
+ },
+ "url": {
+ "description": "Repository URL.",
+ "example": "https://github.com/DataDog/schema",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "url"
+ ],
+ "type": "object"
},
- "readOnly": true,
- "type": "object"
+ "type": "array"
},
- "type": {
- "default": "services",
- "description": "Incident service resource type.",
+ "schema-version": {
+ "default": "v2",
+ "description": "Schema version being used.",
"enum": [
- "services"
+ "v2"
],
- "example": "services",
+ "example": "v2",
"type": "string",
"x-enum-varnames": [
- "SERVICES"
+ "V2"
]
+ },
+ "tags": {
+ "description": "A set of custom tags.",
+ "example": [
+ "my:tag",
+ "service:tag"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "team": {
+ "description": "Team that owns the service.",
+ "example": "my-team",
+ "type": "string"
}
},
"required": [
- "type"
+ "schema-version",
+ "dd-service"
],
"type": "object"
+ },
+ {
+ "description": "Service Definition in raw JSON/YAML representation.",
+ "example": "---\nschema-version: v2\ndd-service: my-service\n",
+ "type": "string"
}
- },
- "required": [
- "data"
- ],
- "type": "object"
+ ]
}
}
},
- "description": "Incident Service Payload.",
+ "description": "Service Definition YAML/JSON.",
"required": true
},
"responses": {
- "201": {
+ "200": {
"content": {
"application/json": {
"schema": {
- "description": "Response with an incident service payload.",
+ "description": "Create service definitions response.",
"properties": {
"data": {
- "description": "Incident Service data from responses.",
- "properties": {
- "attributes": {
- "description": "The incident service's attributes from a response.",
- "properties": {
- "created": {
- "description": "Timestamp of when the incident service was created.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified": {
- "description": "Timestamp of when the incident service was modified.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "name": {
- "description": "Name of the incident service.",
- "example": "service name",
- "type": "string"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "The incident service's ID.",
- "example": "00000000-0000-0000-0000-000000000000",
- "type": "string"
- },
- "relationships": {
- "description": "The incident service's relationships.",
- "properties": {
- "created_by": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "last_modified_by": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- }
- },
- "readOnly": true,
- "type": "object"
- },
- "type": {
- "default": "services",
- "description": "Incident service resource type.",
- "enum": [
- "services"
- ],
- "example": "services",
- "type": "string",
- "x-enum-varnames": [
- "SERVICES"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- },
- "included": {
- "description": "Included objects from relationships.",
+ "description": "Create service definitions response payload.",
"items": {
- "description": "An object related to an incident service which is present in the included payload.",
- "oneOf": [
- {
- "description": "User object returned by the API.",
+ "description": "Service definition data.",
+ "properties": {
+ "attributes": {
+ "description": "Service definition attributes.",
"properties": {
- "attributes": {
- "description": "Attributes of user object returned by the API.",
+ "meta": {
+ "description": "Metadata about a service definition.",
"properties": {
- "created_at": {
- "description": "Creation time of the user.",
- "format": "date-time",
- "type": "string"
- },
- "disabled": {
- "description": "Whether the user is disabled.",
- "type": "boolean"
- },
- "email": {
- "description": "Email of the user.",
- "type": "string"
- },
- "handle": {
- "description": "Handle of the user.",
+ "github-html-url": {
+ "description": "GitHub HTML URL.",
"type": "string"
},
- "icon": {
- "description": "URL of the user's icon.",
+ "ingested-schema-version": {
+ "description": "Ingestion schema version.",
"type": "string"
},
- "mfa_enabled": {
- "description": "If user has MFA enabled.",
- "readOnly": true,
- "type": "boolean"
- },
- "modified_at": {
- "description": "Time that the user was last modified.",
- "format": "date-time",
+ "ingestion-source": {
+ "description": "Ingestion source of the service definition.",
"type": "string"
},
- "name": {
- "description": "Name of the user.",
- "nullable": true,
+ "last-modified-time": {
+ "description": "Last modified time of the service definition.",
"type": "string"
},
- "service_account": {
- "description": "Whether the user is a service account.",
- "type": "boolean"
- },
- "status": {
- "description": "Status of the user.",
+ "origin": {
+ "description": "User defined origin of the service definition.",
"type": "string"
},
- "title": {
- "description": "Title of the user.",
- "nullable": true,
+ "origin-detail": {
+ "description": "User defined origin's detail of the service definition.",
"type": "string"
},
- "verified": {
- "description": "Whether the user is verified.",
- "type": "boolean"
+ "warnings": {
+ "description": "A list of schema validation warnings.",
+ "items": {
+ "description": "Schema validation warnings.",
+ "properties": {
+ "instance-location": {
+ "description": "The warning instance location.",
+ "type": "string"
+ },
+ "keyword-location": {
+ "description": "The warning keyword location.",
+ "type": "string"
+ },
+ "message": {
+ "description": "The warning message.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
}
},
"type": "object"
},
- "id": {
- "description": "ID of the user.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the user object returned by the API.",
- "properties": {
- "org": {
- "description": "Relationship to an organization.",
+ "schema": {
+ "description": "Service definition schema.",
+ "oneOf": [
+ {
+ "deprecated": true,
+ "description": "Deprecated - Service definition V1 for providing additional service metadata and integrations.",
"properties": {
- "data": {
- "description": "Relationship to organization object.",
+ "contact": {
+ "description": "Contact information about the service.",
"properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
+ "email": {
+ "description": "Service owner’s email.",
+ "example": "contact@datadoghq.com",
"type": "string"
},
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
+ "slack": {
+ "description": "Service owner’s Slack channel.",
+ "example": "https://yourcompany.slack.com/archives/channel123",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "extensions": {
+ "additionalProperties": {},
+ "description": "Extensions to V1 schema.",
+ "example": {
+ "myorg/extension": "extensionValue"
+ },
+ "type": "object"
+ },
+ "external-resources": {
+ "description": "A list of external links related to the services.",
+ "items": {
+ "description": "Service's external links.",
+ "properties": {
+ "name": {
+ "description": "Link name.",
+ "example": "Runbook",
+ "type": "string"
+ },
+ "type": {
+ "description": "Link type.",
+ "enum": [
+ "doc",
+ "wiki",
+ "runbook",
+ "url",
+ "repo",
+ "dashboard",
+ "oncall",
+ "code",
+ "link"
+ ],
+ "example": "runbook",
+ "type": "string",
+ "x-enum-varnames": [
+ "DOC",
+ "WIKI",
+ "RUNBOOK",
+ "URL",
+ "REPO",
+ "DASHBOARD",
+ "ONCALL",
+ "CODE",
+ "LINK"
+ ]
+ },
+ "url": {
+ "description": "Link URL.",
+ "example": "https://my-runbook",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "type",
+ "url"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "info": {
+ "description": "Basic information about a service.",
+ "properties": {
+ "dd-service": {
+ "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
+ "example": "myservice",
+ "type": "string"
+ },
+ "description": {
+ "description": "A short description of the service.",
+ "example": "A shopping cart service",
+ "type": "string"
+ },
+ "display-name": {
+ "description": "A friendly name of the service.",
+ "example": "My Service",
+ "type": "string"
+ },
+ "service-tier": {
+ "description": "Service tier.",
+ "example": "Tier 1",
+ "type": "string"
}
},
"required": [
- "id",
- "type"
+ "dd-service"
],
"type": "object"
+ },
+ "integrations": {
+ "description": "Third party integrations that Datadog supports.",
+ "properties": {
+ "pagerduty": {
+ "description": "PagerDuty service URL for the service.",
+ "example": "https://my-org.pagerduty.com/service-directory/PMyService",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "org": {
+ "description": "Org related information about the service.",
+ "properties": {
+ "application": {
+ "description": "App feature this service supports.",
+ "example": "E-Commerce",
+ "type": "string"
+ },
+ "team": {
+ "description": "Team that owns the service.",
+ "example": "my-team",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "schema-version": {
+ "default": "v1",
+ "description": "Schema version being used.",
+ "enum": [
+ "v1"
+ ],
+ "example": "v1",
+ "type": "string",
+ "x-enum-varnames": [
+ "V1"
+ ]
+ },
+ "tags": {
+ "description": "A set of custom tags.",
+ "example": [
+ "my:tag",
+ "service:tag"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
}
},
"required": [
- "data"
+ "schema-version",
+ "info"
],
"type": "object"
},
- "other_orgs": {
- "description": "Relationship to organizations.",
+ {
+ "description": "Service definition V2 for providing service metadata and integrations.",
"properties": {
- "data": {
- "description": "Relationships to organization objects.",
- "example": [],
+ "contacts": {
+ "description": "A list of contacts related to the services.",
"items": {
- "description": "Relationship to organization object.",
+ "description": "Service owner's contacts information.",
+ "oneOf": [
+ {
+ "description": "Service owner's email.",
+ "properties": {
+ "contact": {
+ "description": "Contact value.",
+ "example": "contact@datadoghq.com",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact email.",
+ "example": "Team Email",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "email"
+ ],
+ "example": "email",
+ "type": "string",
+ "x-enum-varnames": [
+ "EMAIL"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Service owner's Slack channel.",
+ "properties": {
+ "contact": {
+ "description": "Slack Channel.",
+ "example": "https://yourcompany.slack.com/archives/channel123",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact Slack.",
+ "example": "Team Slack",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "slack"
+ ],
+ "example": "slack",
+ "type": "string",
+ "x-enum-varnames": [
+ "SLACK"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Service owner's Microsoft Teams.",
+ "properties": {
+ "contact": {
+ "description": "Contact value.",
+ "example": "https://teams.microsoft.com/myteam",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact Microsoft Teams.",
+ "example": "My team channel",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "microsoft-teams"
+ ],
+ "example": "microsoft-teams",
+ "type": "string",
+ "x-enum-varnames": [
+ "MICROSOFT_TEAMS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "type": "array"
+ },
+ "dd-service": {
+ "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
+ "example": "my-service",
+ "type": "string"
+ },
+ "dd-team": {
+ "description": "Experimental feature. A Team handle that matches a Team in the Datadog Teams product.",
+ "example": "my-team",
+ "type": "string"
+ },
+ "docs": {
+ "description": "A list of documentation related to the services.",
+ "items": {
+ "description": "Service documents.",
"properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
+ "name": {
+ "description": "Document name.",
+ "example": "Architecture",
+ "type": "string"
+ },
+ "provider": {
+ "description": "Document provider.",
+ "example": "google drive",
+ "type": "string"
+ },
+ "url": {
+ "description": "Document URL.",
+ "example": "https://gdrive/mydoc",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "url"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "extensions": {
+ "additionalProperties": {},
+ "description": "Extensions to V2 schema.",
+ "example": {
+ "myorg/extension": "extensionValue"
+ },
+ "type": "object"
+ },
+ "integrations": {
+ "description": "Third party integrations that Datadog supports.",
+ "properties": {
+ "opsgenie": {
+ "description": "Opsgenie integration for the service.",
+ "properties": {
+ "region": {
+ "description": "Opsgenie instance region.",
+ "enum": [
+ "US",
+ "EU"
+ ],
+ "example": "US",
+ "type": "string",
+ "x-enum-varnames": [
+ "US",
+ "EU"
+ ]
+ },
+ "service-url": {
+ "description": "Opsgenie service url.",
+ "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
+ "type": "string"
+ }
+ },
+ "required": [
+ "service-url"
+ ],
+ "type": "object"
+ },
+ "pagerduty": {
+ "description": "PagerDuty service URL for the service.",
+ "example": "https://my-org.pagerduty.com/service-directory/PMyService",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "links": {
+ "description": "A list of links related to the services.",
+ "items": {
+ "description": "Service's external links.",
+ "properties": {
+ "name": {
+ "description": "Link name.",
+ "example": "Runbook",
+ "type": "string"
+ },
+ "type": {
+ "description": "Link type.",
+ "enum": [
+ "doc",
+ "wiki",
+ "runbook",
+ "url",
+ "repo",
+ "dashboard",
+ "oncall",
+ "code",
+ "link"
+ ],
+ "example": "runbook",
+ "type": "string",
+ "x-enum-varnames": [
+ "DOC",
+ "WIKI",
+ "RUNBOOK",
+ "URL",
+ "REPO",
+ "DASHBOARD",
+ "ONCALL",
+ "CODE",
+ "LINK"
+ ]
+ },
+ "url": {
+ "description": "Link URL.",
+ "example": "https://my-runbook",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "type",
+ "url"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "repos": {
+ "description": "A list of code repositories related to the services.",
+ "items": {
+ "description": "Service code repositories.",
+ "properties": {
+ "name": {
+ "description": "Repository name.",
+ "example": "Source Code",
+ "type": "string"
+ },
+ "provider": {
+ "description": "Repository provider.",
+ "example": "GitHub",
+ "type": "string"
+ },
+ "url": {
+ "description": "Repository URL.",
+ "example": "https://github.com/DataDog/schema",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "url"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "schema-version": {
+ "default": "v2",
+ "description": "Schema version being used.",
+ "enum": [
+ "v2"
+ ],
+ "example": "v2",
+ "type": "string",
+ "x-enum-varnames": [
+ "V2"
+ ]
+ },
+ "tags": {
+ "description": "A set of custom tags.",
+ "example": [
+ "my:tag",
+ "service:tag"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "team": {
+ "description": "Team that owns the service.",
+ "example": "my-team",
+ "type": "string"
+ }
+ },
+ "required": [
+ "schema-version",
+ "dd-service"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Service definition v2.1 for providing service metadata and integrations.",
+ "properties": {
+ "application": {
+ "description": "Identifier for a group of related services serving a product feature, which the service is a part of.",
+ "example": "my-app",
+ "type": "string"
+ },
+ "contacts": {
+ "description": "A list of contacts related to the services.",
+ "items": {
+ "description": "Service owner's contacts information.",
+ "oneOf": [
+ {
+ "description": "Service owner's email.",
+ "properties": {
+ "contact": {
+ "description": "Contact value.",
+ "example": "contact@datadoghq.com",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact email.",
+ "example": "Team Email",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "email"
+ ],
+ "example": "email",
+ "type": "string",
+ "x-enum-varnames": [
+ "EMAIL"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Service owner's Slack channel.",
+ "properties": {
+ "contact": {
+ "description": "Slack Channel.",
+ "example": "https://yourcompany.slack.com/archives/channel123",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact Slack.",
+ "example": "Team Slack",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "slack"
+ ],
+ "example": "slack",
+ "type": "string",
+ "x-enum-varnames": [
+ "SLACK"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Service owner's Microsoft Teams.",
+ "properties": {
+ "contact": {
+ "description": "Contact value.",
+ "example": "https://teams.microsoft.com/myteam",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact Microsoft Teams.",
+ "example": "My team channel",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "microsoft-teams"
+ ],
+ "example": "microsoft-teams",
+ "type": "string",
+ "x-enum-varnames": [
+ "MICROSOFT_TEAMS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "type": "array"
+ },
+ "dd-service": {
+ "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
+ "example": "my-service",
+ "type": "string"
+ },
+ "description": {
+ "description": "A short description of the service.",
+ "example": "My service description",
+ "type": "string"
+ },
+ "extensions": {
+ "additionalProperties": {},
+ "description": "Extensions to v2.1 schema.",
+ "example": {
+ "myorg/extension": "extensionValue"
+ },
+ "type": "object"
+ },
+ "integrations": {
+ "description": "Third party integrations that Datadog supports.",
+ "properties": {
+ "opsgenie": {
+ "description": "Opsgenie integration for the service.",
+ "properties": {
+ "region": {
+ "description": "Opsgenie instance region.",
+ "enum": [
+ "US",
+ "EU"
+ ],
+ "example": "US",
+ "type": "string",
+ "x-enum-varnames": [
+ "US",
+ "EU"
+ ]
+ },
+ "service-url": {
+ "description": "Opsgenie service url.",
+ "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
+ "type": "string"
+ }
+ },
+ "required": [
+ "service-url"
+ ],
+ "type": "object"
+ },
+ "pagerduty": {
+ "description": "PagerDuty integration for the service.",
+ "properties": {
+ "service-url": {
+ "description": "PagerDuty service url.",
+ "example": "https://my-org.pagerduty.com/service-directory/PMyService",
+ "type": "string"
+ }
+ },
+ "type": "object",
+ "x-ignore-duplicate-object": true
+ }
+ },
+ "type": "object"
+ },
+ "lifecycle": {
+ "description": "The current life cycle phase of the service.",
+ "example": "sandbox",
+ "type": "string"
+ },
+ "links": {
+ "description": "A list of links related to the services.",
+ "items": {
+ "description": "Service's external links.",
+ "properties": {
+ "name": {
+ "description": "Link name.",
+ "example": "Runbook",
+ "type": "string"
+ },
+ "provider": {
+ "description": "Link provider.",
+ "example": "Github",
"type": "string"
},
"type": {
- "default": "orgs",
- "description": "Organizations resource type.",
+ "description": "Link type.",
"enum": [
- "orgs"
+ "doc",
+ "repo",
+ "runbook",
+ "dashboard",
+ "other"
],
- "example": "orgs",
+ "example": "runbook",
"type": "string",
"x-enum-varnames": [
- "ORGS"
+ "DOC",
+ "REPO",
+ "RUNBOOK",
+ "DASHBOARD",
+ "OTHER"
]
+ },
+ "url": {
+ "description": "Link URL.",
+ "example": "https://my-runbook",
+ "type": "string"
}
},
"required": [
- "id",
- "type"
+ "name",
+ "type",
+ "url"
],
"type": "object"
},
"type": "array"
+ },
+ "schema-version": {
+ "default": "v2.1",
+ "description": "Schema version being used.",
+ "enum": [
+ "v2.1"
+ ],
+ "example": "v2.1",
+ "type": "string",
+ "x-enum-varnames": [
+ "V2_1"
+ ]
+ },
+ "tags": {
+ "description": "A set of custom tags.",
+ "example": [
+ "my:tag",
+ "service:tag"
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "team": {
+ "description": "Team that owns the service. It is used to locate a team defined in Datadog Teams if it exists.",
+ "example": "my-team",
+ "type": "string"
+ },
+ "tier": {
+ "description": "Importance of the service.",
+ "example": "High",
+ "type": "string"
}
},
"required": [
- "data"
+ "schema-version",
+ "dd-service"
],
"type": "object"
},
- "other_users": {
- "description": "Relationship to users.",
+ {
+ "description": "Service definition v2.2 for providing service metadata and integrations.",
"properties": {
- "data": {
- "description": "Relationships to user objects.",
- "example": [],
+ "application": {
+ "description": "Identifier for a group of related services serving a product feature, which the service is a part of.",
+ "example": "my-app",
+ "type": "string"
+ },
+ "ci-pipeline-fingerprints": {
+ "description": "A set of CI fingerprints.",
+ "example": [
+ "j88xdEy0J5lc",
+ "eZ7LMljCk8vo"
+ ],
"items": {
- "description": "Relationship to user object.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "contacts": {
+ "description": "A list of contacts related to the services.",
+ "items": {
+ "description": "Service owner's contacts information.",
"properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
+ "contact": {
+ "description": "Contact value.",
+ "example": "https://teams.microsoft.com/myteam",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact Name.",
+ "example": "My team channel",
"type": "string"
},
"type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
+ "description": "Contact type. Datadog recognizes the following types: `email`, `slack`, and `microsoft-teams`.",
+ "example": "slack",
+ "type": "string"
}
},
"required": [
- "id",
- "type"
+ "type",
+ "contact"
],
- "type": "object",
- "x-merge-override": {
- "required": false
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "dd-service": {
+ "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
+ "example": "my-service",
+ "type": "string"
+ },
+ "description": {
+ "description": "A short description of the service.",
+ "example": "My service description",
+ "type": "string"
+ },
+ "extensions": {
+ "additionalProperties": {},
+ "description": "Extensions to v2.2 schema.",
+ "example": {
+ "myorg/extension": "extensionValue"
+ },
+ "type": "object"
+ },
+ "integrations": {
+ "description": "Third party integrations that Datadog supports.",
+ "properties": {
+ "opsgenie": {
+ "description": "Opsgenie integration for the service.",
+ "properties": {
+ "region": {
+ "description": "Opsgenie instance region.",
+ "enum": [
+ "US",
+ "EU"
+ ],
+ "example": "US",
+ "type": "string",
+ "x-enum-varnames": [
+ "US",
+ "EU"
+ ]
+ },
+ "service-url": {
+ "description": "Opsgenie service url.",
+ "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
+ "type": "string"
+ }
+ },
+ "required": [
+ "service-url"
+ ],
+ "type": "object"
+ },
+ "pagerduty": {
+ "description": "PagerDuty integration for the service.",
+ "properties": {
+ "service-url": {
+ "description": "PagerDuty service url.",
+ "example": "https://my-org.pagerduty.com/service-directory/PMyService",
+ "type": "string"
+ }
+ },
+ "type": "object",
+ "x-ignore-duplicate-object": true
}
},
+ "type": "object"
+ },
+ "languages": {
+ "description": "The service's programming language. Datadog recognizes the following languages: `dotnet`, `go`, `java`, `js`, `php`, `python`, `ruby`, and `c++`.",
+ "example": [
+ "dotnet",
+ "go",
+ "java",
+ "js",
+ "php",
+ "python",
+ "ruby",
+ "c++"
+ ],
+ "items": {
+ "type": "string"
+ },
"type": "array"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "roles": {
- "description": "Relationship to roles.",
- "properties": {
- "data": {
- "description": "An array containing type and the unique identifier of a role.",
+ },
+ "lifecycle": {
+ "description": "The current life cycle phase of the service.",
+ "example": "sandbox",
+ "type": "string"
+ },
+ "links": {
+ "description": "A list of links related to the services.",
"items": {
- "description": "Relationship to role object.",
+ "description": "Service's external links.",
"properties": {
- "id": {
- "description": "The unique identifier of the role.",
- "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "name": {
+ "description": "Link name.",
+ "example": "Runbook",
+ "type": "string"
+ },
+ "provider": {
+ "description": "Link provider.",
+ "example": "Github",
"type": "string"
},
"type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
+ "description": "Link type. Datadog recognizes the following types: `runbook`, `doc`, `repo`, `dashboard`, and `other`.",
+ "example": "runbook",
+ "type": "string"
+ },
+ "url": {
+ "description": "Link URL.",
+ "example": "https://my-runbook",
+ "type": "string"
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "required": [
+ "name",
+ "type",
+ "url"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "schema-version": {
+ "default": "v2.2",
+ "description": "Schema version being used.",
+ "enum": [
+ "v2.2"
+ ],
+ "example": "v2.2",
+ "type": "string",
+ "x-enum-varnames": [
+ "V2_2"
+ ]
+ },
+ "tags": {
+ "description": "A set of custom tags.",
+ "example": [
+ "my:tag",
+ "service:tag"
+ ],
+ "items": {
+ "type": "string"
},
"type": "array"
+ },
+ "team": {
+ "description": "Team that owns the service. It is used to locate a team defined in Datadog Teams if it exists.",
+ "example": "my-team",
+ "type": "string"
+ },
+ "tier": {
+ "description": "Importance of the service.",
+ "example": "High",
+ "type": "string"
+ },
+ "type": {
+ "description": "The type of service.",
+ "enum": [
+ "web",
+ "db",
+ "cache",
+ "function",
+ "browser",
+ "mobile",
+ "custom"
+ ],
+ "example": "web",
+ "type": "string",
+ "x-enum-varnames": [
+ "WEB",
+ "DB",
+ "CACHE",
+ "FUNCTION",
+ "BROSWER",
+ "MOBILE",
+ "CUSTOM"
+ ]
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "required": [
+ "schema-version",
+ "dd-service"
+ ],
+ "type": "object"
}
- },
- "type": "object",
- "x-merge-override": {
- "properties": false
- }
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
]
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "object"
+ },
+ "id": {
+ "description": "Service definition id.",
+ "type": "string"
+ },
+ "type": {
+ "description": "Service definition type.",
+ "type": "string"
}
- ]
+ },
+ "type": "object"
},
- "readOnly": true,
"type": "array"
}
},
- "required": [
- "data"
- ],
"type": "object"
}
}
@@ -379982,7 +403717,7 @@
},
"description": "Bad Request"
},
- "401": {
+ "403": {
"content": {
"application/json": {
"schema": {
@@ -380008,7 +403743,158 @@
}
}
},
- "description": "Unauthorized"
+ "description": "Forbidden"
+ },
+ "409": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Conflict"
+ },
+ "429": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Too many requests"
+ }
+ },
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
+ },
+ {
+ "AuthZ": [
+ "apm_service_catalog_write"
+ ]
+ }
+ ],
+ "summary": "Create or update service definition",
+ "tags": [
+ "Service Definition"
+ ],
+ "x-codegen-request-body-name": "body",
+ "x-given": {
+ "service_definition": {
+ "parameters": [
+ {
+ "name": "body",
+ "value": "{\n \"dd-service\": \"service-{{ unique_lower_alnum }}\",\n \"dd-team\": \"my-team\",\n \"docs\": [{\"name\": \"Architecture\",\n \"provider\": \"google drive\",\n \"url\": \"https://gdrive/mygivedoc\"}],\n \"extensions\": {\"frogextension\": \"extensionfrogvalue\"},\n \"integrations\": {\"opsgenie\": {\"region\": \"US\",\n \"service-url\": \"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\"},\n \"pagerduty\": \"https://my-org.pagerduty.com/service-directory/PMyService\"},\n \"links\": [{\"name\": \"Runbook\", \"type\": \"runbook\", \"url\": \"https://my-runbook\"}],\n \"repos\": [{\"name\": \"Source Code\",\n \"provider\": \"GitHub\",\n \"url\": \"https://github.com/DataDog/given\"}],\n \"schema-version\": \"v2\",\n \"tags\": [\"this:tag\", \"service:tag\"],\n \"team\": \"super-team\"\n}"
+ }
+ ],
+ "step": "there is a valid \"service_definition\" in the system"
+ }
+ },
+ "x-menu-order": 2,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "apm_service_catalog_write"
+ ]
+ },
+ "x-undo": {
+ "operationId": "DeleteServiceDefinition",
+ "parameters": [
+ {
+ "name": "service_name",
+ "source": "data[0].attributes.schema.dd-service"
+ }
+ ],
+ "type": "unsafe"
+ }
+ }
+ },
+ "/api/v2/services/definitions/{service_name}": {
+ "delete": {
+ "description": "Delete a single service definition in the Datadog Service Catalog.",
+ "operationId": "DeleteServiceDefinition",
+ "parameters": [
+ {
+ "description": "The name of the service.",
+ "in": "path",
+ "name": "service_name",
+ "required": true,
+ "schema": {
+ "example": "my-service",
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "OK"
+ },
+ "400": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Bad Request"
},
"403": {
"content": {
@@ -380102,73 +403988,37 @@
},
{
"AuthZ": [
- "incident_settings_write"
+ "apm_service_catalog_write"
]
}
],
- "summary": "Create a new incident service",
+ "summary": "Delete a single service definition",
"tags": [
- "Incident Services"
+ "Service Definition"
],
- "x-codegen-request-body-name": "body",
- "x-given": {
- "service": {
- "parameters": [
- {
- "name": "body",
- "value": "{\n \"data\": {\n \"attributes\": {\n \"name\": \"{{ unique }}\"\n },\n \"type\": \"services\"\n }\n}"
- }
- ],
- "step": "there is a valid \"service\" in the system"
- }
- },
- "x-menu-order": 5,
+ "x-menu-order": 4,
"x-permission": {
"operator": "OR",
"permissions": [
- "incident_settings_write"
+ "apm_service_catalog_write"
]
},
"x-undo": {
- "operationId": "DeleteIncidentService",
- "parameters": [
- {
- "name": "service_id",
- "source": "data.id"
- }
- ],
- "type": "unsafe"
- },
- "x-unstable": "**Note**: This endpoint is deprecated."
- }
- },
- "/api/v2/services/definitions": {
+ "type": "idempotent"
+ }
+ },
"get": {
- "description": "Get a list of all service definitions from the Datadog Service Catalog.",
- "operationId": "ListServiceDefinitions",
+ "description": "Get a single service definition from the Datadog Service Catalog.",
+ "operationId": "GetServiceDefinition",
"parameters": [
{
- "description": "Size for a given page. The maximum allowed value is 100.",
- "in": "query",
- "name": "page[size]",
- "required": false,
- "schema": {
- "default": 10,
- "example": 10,
- "format": "int64",
- "type": "integer"
- }
- },
- {
- "description": "Specific page number to return.",
- "in": "query",
- "name": "page[number]",
- "required": false,
+ "description": "The name of the service.",
+ "in": "path",
+ "name": "service_name",
+ "required": true,
"schema": {
- "default": 0,
- "example": 0,
- "format": "int64",
- "type": "integer"
+ "example": "my-service",
+ "type": "string"
}
},
{
@@ -380199,1058 +404049,1054 @@
"content": {
"application/json": {
"schema": {
- "description": "Create service definitions response.",
+ "description": "Get service definition response.",
"properties": {
"data": {
- "description": "Data representing service definitions.",
- "items": {
- "description": "Service definition data.",
- "properties": {
- "attributes": {
- "description": "Service definition attributes.",
- "properties": {
- "meta": {
- "description": "Metadata about a service definition.",
- "properties": {
- "github-html-url": {
- "description": "GitHub HTML URL.",
- "type": "string"
- },
- "ingested-schema-version": {
- "description": "Ingestion schema version.",
- "type": "string"
- },
- "ingestion-source": {
- "description": "Ingestion source of the service definition.",
- "type": "string"
- },
- "last-modified-time": {
- "description": "Last modified time of the service definition.",
- "type": "string"
- },
- "origin": {
- "description": "User defined origin of the service definition.",
- "type": "string"
- },
- "origin-detail": {
- "description": "User defined origin's detail of the service definition.",
- "type": "string"
+ "description": "Service definition data.",
+ "properties": {
+ "attributes": {
+ "description": "Service definition attributes.",
+ "properties": {
+ "meta": {
+ "description": "Metadata about a service definition.",
+ "properties": {
+ "github-html-url": {
+ "description": "GitHub HTML URL.",
+ "type": "string"
+ },
+ "ingested-schema-version": {
+ "description": "Ingestion schema version.",
+ "type": "string"
+ },
+ "ingestion-source": {
+ "description": "Ingestion source of the service definition.",
+ "type": "string"
+ },
+ "last-modified-time": {
+ "description": "Last modified time of the service definition.",
+ "type": "string"
+ },
+ "origin": {
+ "description": "User defined origin of the service definition.",
+ "type": "string"
+ },
+ "origin-detail": {
+ "description": "User defined origin's detail of the service definition.",
+ "type": "string"
+ },
+ "warnings": {
+ "description": "A list of schema validation warnings.",
+ "items": {
+ "description": "Schema validation warnings.",
+ "properties": {
+ "instance-location": {
+ "description": "The warning instance location.",
+ "type": "string"
+ },
+ "keyword-location": {
+ "description": "The warning keyword location.",
+ "type": "string"
+ },
+ "message": {
+ "description": "The warning message.",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
- "warnings": {
- "description": "A list of schema validation warnings.",
- "items": {
- "description": "Schema validation warnings.",
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "schema": {
+ "description": "Service definition schema.",
+ "oneOf": [
+ {
+ "deprecated": true,
+ "description": "Deprecated - Service definition V1 for providing additional service metadata and integrations.",
+ "properties": {
+ "contact": {
+ "description": "Contact information about the service.",
"properties": {
- "instance-location": {
- "description": "The warning instance location.",
- "type": "string"
- },
- "keyword-location": {
- "description": "The warning keyword location.",
+ "email": {
+ "description": "Service owner’s email.",
+ "example": "contact@datadoghq.com",
"type": "string"
},
- "message": {
- "description": "The warning message.",
+ "slack": {
+ "description": "Service owner’s Slack channel.",
+ "example": "https://yourcompany.slack.com/archives/channel123",
"type": "string"
}
},
"type": "object"
},
- "type": "array"
- }
- },
- "type": "object"
- },
- "schema": {
- "description": "Service definition schema.",
- "oneOf": [
- {
- "deprecated": true,
- "description": "Deprecated - Service definition V1 for providing additional service metadata and integrations.",
- "properties": {
- "contact": {
- "description": "Contact information about the service.",
- "properties": {
- "email": {
- "description": "Service owner’s email.",
- "example": "contact@datadoghq.com",
- "type": "string"
- },
- "slack": {
- "description": "Service owner’s Slack channel.",
- "example": "https://yourcompany.slack.com/archives/channel123",
- "type": "string"
- }
- },
- "type": "object"
- },
- "extensions": {
- "additionalProperties": {},
- "description": "Extensions to V1 schema.",
- "example": {
- "myorg/extension": "extensionValue"
- },
- "type": "object"
- },
- "external-resources": {
- "description": "A list of external links related to the services.",
- "items": {
- "description": "Service's external links.",
- "properties": {
- "name": {
- "description": "Link name.",
- "example": "Runbook",
- "type": "string"
- },
- "type": {
- "description": "Link type.",
- "enum": [
- "doc",
- "wiki",
- "runbook",
- "url",
- "repo",
- "dashboard",
- "oncall",
- "code",
- "link"
- ],
- "example": "runbook",
- "type": "string",
- "x-enum-varnames": [
- "DOC",
- "WIKI",
- "RUNBOOK",
- "URL",
- "REPO",
- "DASHBOARD",
- "ONCALL",
- "CODE",
- "LINK"
- ]
- },
- "url": {
- "description": "Link URL.",
- "example": "https://my-runbook",
- "type": "string"
- }
- },
- "required": [
- "name",
- "type",
- "url"
- ],
- "type": "object"
- },
- "type": "array"
+ "extensions": {
+ "additionalProperties": {},
+ "description": "Extensions to V1 schema.",
+ "example": {
+ "myorg/extension": "extensionValue"
},
- "info": {
- "description": "Basic information about a service.",
+ "type": "object"
+ },
+ "external-resources": {
+ "description": "A list of external links related to the services.",
+ "items": {
+ "description": "Service's external links.",
"properties": {
- "dd-service": {
- "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
- "example": "myservice",
- "type": "string"
- },
- "description": {
- "description": "A short description of the service.",
- "example": "A shopping cart service",
+ "name": {
+ "description": "Link name.",
+ "example": "Runbook",
"type": "string"
},
- "display-name": {
- "description": "A friendly name of the service.",
- "example": "My Service",
- "type": "string"
+ "type": {
+ "description": "Link type.",
+ "enum": [
+ "doc",
+ "wiki",
+ "runbook",
+ "url",
+ "repo",
+ "dashboard",
+ "oncall",
+ "code",
+ "link"
+ ],
+ "example": "runbook",
+ "type": "string",
+ "x-enum-varnames": [
+ "DOC",
+ "WIKI",
+ "RUNBOOK",
+ "URL",
+ "REPO",
+ "DASHBOARD",
+ "ONCALL",
+ "CODE",
+ "LINK"
+ ]
},
- "service-tier": {
- "description": "Service tier.",
- "example": "Tier 1",
+ "url": {
+ "description": "Link URL.",
+ "example": "https://my-runbook",
"type": "string"
}
},
"required": [
- "dd-service"
+ "name",
+ "type",
+ "url"
],
"type": "object"
},
- "integrations": {
- "description": "Third party integrations that Datadog supports.",
- "properties": {
- "pagerduty": {
- "description": "PagerDuty service URL for the service.",
- "example": "https://my-org.pagerduty.com/service-directory/PMyService",
- "type": "string"
- }
- },
- "type": "object"
- },
- "org": {
- "description": "Org related information about the service.",
- "properties": {
- "application": {
- "description": "App feature this service supports.",
- "example": "E-Commerce",
- "type": "string"
- },
- "team": {
- "description": "Team that owns the service.",
- "example": "my-team",
- "type": "string"
- }
- },
- "type": "object"
- },
- "schema-version": {
- "default": "v1",
- "description": "Schema version being used.",
- "enum": [
- "v1"
- ],
- "example": "v1",
- "type": "string",
- "x-enum-varnames": [
- "V1"
- ]
- },
- "tags": {
- "description": "A set of custom tags.",
- "example": [
- "my:tag",
- "service:tag"
- ],
- "items": {
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "schema-version",
- "info"
- ],
- "type": "object"
- },
- {
- "description": "Service definition V2 for providing service metadata and integrations.",
- "properties": {
- "contacts": {
- "description": "A list of contacts related to the services.",
- "items": {
- "description": "Service owner's contacts information.",
- "oneOf": [
- {
- "description": "Service owner's email.",
- "properties": {
- "contact": {
- "description": "Contact value.",
- "example": "contact@datadoghq.com",
- "type": "string"
- },
- "name": {
- "description": "Contact email.",
- "example": "Team Email",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "email"
- ],
- "example": "email",
- "type": "string",
- "x-enum-varnames": [
- "EMAIL"
- ]
- }
- },
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- },
- {
- "description": "Service owner's Slack channel.",
- "properties": {
- "contact": {
- "description": "Slack Channel.",
- "example": "https://yourcompany.slack.com/archives/channel123",
- "type": "string"
- },
- "name": {
- "description": "Contact Slack.",
- "example": "Team Slack",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "slack"
- ],
- "example": "slack",
- "type": "string",
- "x-enum-varnames": [
- "SLACK"
- ]
- }
- },
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- },
- {
- "description": "Service owner's Microsoft Teams.",
- "properties": {
- "contact": {
- "description": "Contact value.",
- "example": "https://teams.microsoft.com/myteam",
- "type": "string"
- },
- "name": {
- "description": "Contact Microsoft Teams.",
- "example": "My team channel",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "microsoft-teams"
- ],
- "example": "microsoft-teams",
- "type": "string",
- "x-enum-varnames": [
- "MICROSOFT_TEAMS"
- ]
- }
- },
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- }
- ]
+ "type": "array"
+ },
+ "info": {
+ "description": "Basic information about a service.",
+ "properties": {
+ "dd-service": {
+ "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
+ "example": "myservice",
+ "type": "string"
},
- "type": "array"
+ "description": {
+ "description": "A short description of the service.",
+ "example": "A shopping cart service",
+ "type": "string"
+ },
+ "display-name": {
+ "description": "A friendly name of the service.",
+ "example": "My Service",
+ "type": "string"
+ },
+ "service-tier": {
+ "description": "Service tier.",
+ "example": "Tier 1",
+ "type": "string"
+ }
},
- "dd-service": {
- "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
- "example": "my-service",
- "type": "string"
+ "required": [
+ "dd-service"
+ ],
+ "type": "object"
+ },
+ "integrations": {
+ "description": "Third party integrations that Datadog supports.",
+ "properties": {
+ "pagerduty": {
+ "description": "PagerDuty service URL for the service.",
+ "example": "https://my-org.pagerduty.com/service-directory/PMyService",
+ "type": "string"
+ }
},
- "dd-team": {
- "description": "Experimental feature. A Team handle that matches a Team in the Datadog Teams product.",
- "example": "my-team",
+ "type": "object"
+ },
+ "org": {
+ "description": "Org related information about the service.",
+ "properties": {
+ "application": {
+ "description": "App feature this service supports.",
+ "example": "E-Commerce",
+ "type": "string"
+ },
+ "team": {
+ "description": "Team that owns the service.",
+ "example": "my-team",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "schema-version": {
+ "default": "v1",
+ "description": "Schema version being used.",
+ "enum": [
+ "v1"
+ ],
+ "example": "v1",
+ "type": "string",
+ "x-enum-varnames": [
+ "V1"
+ ]
+ },
+ "tags": {
+ "description": "A set of custom tags.",
+ "example": [
+ "my:tag",
+ "service:tag"
+ ],
+ "items": {
"type": "string"
},
- "docs": {
- "description": "A list of documentation related to the services.",
- "items": {
- "description": "Service documents.",
- "properties": {
- "name": {
- "description": "Document name.",
- "example": "Architecture",
- "type": "string"
- },
- "provider": {
- "description": "Document provider.",
- "example": "google drive",
- "type": "string"
+ "type": "array"
+ }
+ },
+ "required": [
+ "schema-version",
+ "info"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Service definition V2 for providing service metadata and integrations.",
+ "properties": {
+ "contacts": {
+ "description": "A list of contacts related to the services.",
+ "items": {
+ "description": "Service owner's contacts information.",
+ "oneOf": [
+ {
+ "description": "Service owner's email.",
+ "properties": {
+ "contact": {
+ "description": "Contact value.",
+ "example": "contact@datadoghq.com",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact email.",
+ "example": "Team Email",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "email"
+ ],
+ "example": "email",
+ "type": "string",
+ "x-enum-varnames": [
+ "EMAIL"
+ ]
+ }
},
- "url": {
- "description": "Document URL.",
- "example": "https://gdrive/mydoc",
- "type": "string"
- }
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
},
- "required": [
- "name",
- "url"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "extensions": {
- "additionalProperties": {},
- "description": "Extensions to V2 schema.",
- "example": {
- "myorg/extension": "extensionValue"
- },
- "type": "object"
- },
- "integrations": {
- "description": "Third party integrations that Datadog supports.",
- "properties": {
- "opsgenie": {
- "description": "Opsgenie integration for the service.",
+ {
+ "description": "Service owner's Slack channel.",
"properties": {
- "region": {
- "description": "Opsgenie instance region.",
+ "contact": {
+ "description": "Slack Channel.",
+ "example": "https://yourcompany.slack.com/archives/channel123",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact Slack.",
+ "example": "Team Slack",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
"enum": [
- "US",
- "EU"
+ "slack"
],
- "example": "US",
+ "example": "slack",
"type": "string",
"x-enum-varnames": [
- "US",
- "EU"
+ "SLACK"
]
+ }
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Service owner's Microsoft Teams.",
+ "properties": {
+ "contact": {
+ "description": "Contact value.",
+ "example": "https://teams.microsoft.com/myteam",
+ "type": "string"
},
- "service-url": {
- "description": "Opsgenie service url.",
- "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
+ "name": {
+ "description": "Contact Microsoft Teams.",
+ "example": "My team channel",
"type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "microsoft-teams"
+ ],
+ "example": "microsoft-teams",
+ "type": "string",
+ "x-enum-varnames": [
+ "MICROSOFT_TEAMS"
+ ]
}
},
"required": [
- "service-url"
+ "type",
+ "contact"
],
"type": "object"
+ }
+ ]
+ },
+ "type": "array"
+ },
+ "dd-service": {
+ "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
+ "example": "my-service",
+ "type": "string"
+ },
+ "dd-team": {
+ "description": "Experimental feature. A Team handle that matches a Team in the Datadog Teams product.",
+ "example": "my-team",
+ "type": "string"
+ },
+ "docs": {
+ "description": "A list of documentation related to the services.",
+ "items": {
+ "description": "Service documents.",
+ "properties": {
+ "name": {
+ "description": "Document name.",
+ "example": "Architecture",
+ "type": "string"
},
- "pagerduty": {
- "description": "PagerDuty service URL for the service.",
- "example": "https://my-org.pagerduty.com/service-directory/PMyService",
+ "provider": {
+ "description": "Document provider.",
+ "example": "google drive",
+ "type": "string"
+ },
+ "url": {
+ "description": "Document URL.",
+ "example": "https://gdrive/mydoc",
"type": "string"
}
},
+ "required": [
+ "name",
+ "url"
+ ],
"type": "object"
},
- "links": {
- "description": "A list of links related to the services.",
- "items": {
- "description": "Service's external links.",
+ "type": "array"
+ },
+ "extensions": {
+ "additionalProperties": {},
+ "description": "Extensions to V2 schema.",
+ "example": {
+ "myorg/extension": "extensionValue"
+ },
+ "type": "object"
+ },
+ "integrations": {
+ "description": "Third party integrations that Datadog supports.",
+ "properties": {
+ "opsgenie": {
+ "description": "Opsgenie integration for the service.",
"properties": {
- "name": {
- "description": "Link name.",
- "example": "Runbook",
- "type": "string"
- },
- "type": {
- "description": "Link type.",
+ "region": {
+ "description": "Opsgenie instance region.",
"enum": [
- "doc",
- "wiki",
- "runbook",
- "url",
- "repo",
- "dashboard",
- "oncall",
- "code",
- "link"
+ "US",
+ "EU"
],
- "example": "runbook",
+ "example": "US",
"type": "string",
"x-enum-varnames": [
- "DOC",
- "WIKI",
- "RUNBOOK",
- "URL",
- "REPO",
- "DASHBOARD",
- "ONCALL",
- "CODE",
- "LINK"
+ "US",
+ "EU"
]
},
- "url": {
- "description": "Link URL.",
- "example": "https://my-runbook",
+ "service-url": {
+ "description": "Opsgenie service url.",
+ "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
"type": "string"
}
},
"required": [
- "name",
- "type",
- "url"
+ "service-url"
],
"type": "object"
},
- "type": "array"
+ "pagerduty": {
+ "description": "PagerDuty service URL for the service.",
+ "example": "https://my-org.pagerduty.com/service-directory/PMyService",
+ "type": "string"
+ }
},
- "repos": {
- "description": "A list of code repositories related to the services.",
- "items": {
- "description": "Service code repositories.",
- "properties": {
- "name": {
- "description": "Repository name.",
- "example": "Source Code",
- "type": "string"
- },
- "provider": {
- "description": "Repository provider.",
- "example": "GitHub",
- "type": "string"
- },
- "url": {
- "description": "Repository URL.",
- "example": "https://github.com/DataDog/schema",
- "type": "string"
- }
+ "type": "object"
+ },
+ "links": {
+ "description": "A list of links related to the services.",
+ "items": {
+ "description": "Service's external links.",
+ "properties": {
+ "name": {
+ "description": "Link name.",
+ "example": "Runbook",
+ "type": "string"
},
- "required": [
- "name",
- "url"
- ],
- "type": "object"
+ "type": {
+ "description": "Link type.",
+ "enum": [
+ "doc",
+ "wiki",
+ "runbook",
+ "url",
+ "repo",
+ "dashboard",
+ "oncall",
+ "code",
+ "link"
+ ],
+ "example": "runbook",
+ "type": "string",
+ "x-enum-varnames": [
+ "DOC",
+ "WIKI",
+ "RUNBOOK",
+ "URL",
+ "REPO",
+ "DASHBOARD",
+ "ONCALL",
+ "CODE",
+ "LINK"
+ ]
+ },
+ "url": {
+ "description": "Link URL.",
+ "example": "https://my-runbook",
+ "type": "string"
+ }
},
- "type": "array"
- },
- "schema-version": {
- "default": "v2",
- "description": "Schema version being used.",
- "enum": [
- "v2"
+ "required": [
+ "name",
+ "type",
+ "url"
],
- "example": "v2",
- "type": "string",
- "x-enum-varnames": [
- "V2"
- ]
+ "type": "object"
},
- "tags": {
- "description": "A set of custom tags.",
- "example": [
- "my:tag",
- "service:tag"
- ],
- "items": {
- "type": "string"
+ "type": "array"
+ },
+ "repos": {
+ "description": "A list of code repositories related to the services.",
+ "items": {
+ "description": "Service code repositories.",
+ "properties": {
+ "name": {
+ "description": "Repository name.",
+ "example": "Source Code",
+ "type": "string"
+ },
+ "provider": {
+ "description": "Repository provider.",
+ "example": "GitHub",
+ "type": "string"
+ },
+ "url": {
+ "description": "Repository URL.",
+ "example": "https://github.com/DataDog/schema",
+ "type": "string"
+ }
},
- "type": "array"
+ "required": [
+ "name",
+ "url"
+ ],
+ "type": "object"
},
- "team": {
- "description": "Team that owns the service.",
- "example": "my-team",
- "type": "string"
- }
+ "type": "array"
},
- "required": [
- "schema-version",
- "dd-service"
- ],
- "type": "object"
- },
- {
- "description": "Service definition v2.1 for providing service metadata and integrations.",
- "properties": {
- "application": {
- "description": "Identifier for a group of related services serving a product feature, which the service is a part of.",
- "example": "my-app",
+ "schema-version": {
+ "default": "v2",
+ "description": "Schema version being used.",
+ "enum": [
+ "v2"
+ ],
+ "example": "v2",
+ "type": "string",
+ "x-enum-varnames": [
+ "V2"
+ ]
+ },
+ "tags": {
+ "description": "A set of custom tags.",
+ "example": [
+ "my:tag",
+ "service:tag"
+ ],
+ "items": {
"type": "string"
},
- "contacts": {
- "description": "A list of contacts related to the services.",
- "items": {
- "description": "Service owner's contacts information.",
- "oneOf": [
- {
- "description": "Service owner's email.",
- "properties": {
- "contact": {
- "description": "Contact value.",
- "example": "contact@datadoghq.com",
- "type": "string"
- },
- "name": {
- "description": "Contact email.",
- "example": "Team Email",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "email"
- ],
- "example": "email",
- "type": "string",
- "x-enum-varnames": [
- "EMAIL"
- ]
- }
- },
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- },
- {
- "description": "Service owner's Slack channel.",
- "properties": {
- "contact": {
- "description": "Slack Channel.",
- "example": "https://yourcompany.slack.com/archives/channel123",
- "type": "string"
- },
- "name": {
- "description": "Contact Slack.",
- "example": "Team Slack",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "slack"
- ],
- "example": "slack",
- "type": "string",
- "x-enum-varnames": [
- "SLACK"
- ]
- }
+ "type": "array"
+ },
+ "team": {
+ "description": "Team that owns the service.",
+ "example": "my-team",
+ "type": "string"
+ }
+ },
+ "required": [
+ "schema-version",
+ "dd-service"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Service definition v2.1 for providing service metadata and integrations.",
+ "properties": {
+ "application": {
+ "description": "Identifier for a group of related services serving a product feature, which the service is a part of.",
+ "example": "my-app",
+ "type": "string"
+ },
+ "contacts": {
+ "description": "A list of contacts related to the services.",
+ "items": {
+ "description": "Service owner's contacts information.",
+ "oneOf": [
+ {
+ "description": "Service owner's email.",
+ "properties": {
+ "contact": {
+ "description": "Contact value.",
+ "example": "contact@datadoghq.com",
+ "type": "string"
},
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- },
- {
- "description": "Service owner's Microsoft Teams.",
- "properties": {
- "contact": {
- "description": "Contact value.",
- "example": "https://teams.microsoft.com/myteam",
- "type": "string"
- },
- "name": {
- "description": "Contact Microsoft Teams.",
- "example": "My team channel",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "microsoft-teams"
- ],
- "example": "microsoft-teams",
- "type": "string",
- "x-enum-varnames": [
- "MICROSOFT_TEAMS"
- ]
- }
+ "name": {
+ "description": "Contact email.",
+ "example": "Team Email",
+ "type": "string"
},
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- }
- ]
- },
- "type": "array"
- },
- "dd-service": {
- "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
- "example": "my-service",
- "type": "string"
- },
- "description": {
- "description": "A short description of the service.",
- "example": "My service description",
- "type": "string"
- },
- "extensions": {
- "additionalProperties": {},
- "description": "Extensions to v2.1 schema.",
- "example": {
- "myorg/extension": "extensionValue"
- },
- "type": "object"
- },
- "integrations": {
- "description": "Third party integrations that Datadog supports.",
- "properties": {
- "opsgenie": {
- "description": "Opsgenie integration for the service.",
- "properties": {
- "region": {
- "description": "Opsgenie instance region.",
+ "type": {
+ "description": "Contact type.",
"enum": [
- "US",
- "EU"
+ "email"
],
- "example": "US",
+ "example": "email",
"type": "string",
"x-enum-varnames": [
- "US",
- "EU"
+ "EMAIL"
]
+ }
+ },
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Service owner's Slack channel.",
+ "properties": {
+ "contact": {
+ "description": "Slack Channel.",
+ "example": "https://yourcompany.slack.com/archives/channel123",
+ "type": "string"
},
- "service-url": {
- "description": "Opsgenie service url.",
- "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
+ "name": {
+ "description": "Contact Slack.",
+ "example": "Team Slack",
"type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "slack"
+ ],
+ "example": "slack",
+ "type": "string",
+ "x-enum-varnames": [
+ "SLACK"
+ ]
}
},
"required": [
- "service-url"
+ "type",
+ "contact"
],
"type": "object"
},
- "pagerduty": {
- "description": "PagerDuty integration for the service.",
+ {
+ "description": "Service owner's Microsoft Teams.",
"properties": {
- "service-url": {
- "description": "PagerDuty service url.",
- "example": "https://my-org.pagerduty.com/service-directory/PMyService",
+ "contact": {
+ "description": "Contact value.",
+ "example": "https://teams.microsoft.com/myteam",
+ "type": "string"
+ },
+ "name": {
+ "description": "Contact Microsoft Teams.",
+ "example": "My team channel",
"type": "string"
+ },
+ "type": {
+ "description": "Contact type.",
+ "enum": [
+ "microsoft-teams"
+ ],
+ "example": "microsoft-teams",
+ "type": "string",
+ "x-enum-varnames": [
+ "MICROSOFT_TEAMS"
+ ]
}
},
- "type": "object",
- "x-ignore-duplicate-object": true
+ "required": [
+ "type",
+ "contact"
+ ],
+ "type": "object"
}
- },
- "type": "object"
+ ]
},
- "lifecycle": {
- "description": "The current life cycle phase of the service.",
- "example": "sandbox",
- "type": "string"
+ "type": "array"
+ },
+ "dd-service": {
+ "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
+ "example": "my-service",
+ "type": "string"
+ },
+ "description": {
+ "description": "A short description of the service.",
+ "example": "My service description",
+ "type": "string"
+ },
+ "extensions": {
+ "additionalProperties": {},
+ "description": "Extensions to v2.1 schema.",
+ "example": {
+ "myorg/extension": "extensionValue"
},
- "links": {
- "description": "A list of links related to the services.",
- "items": {
- "description": "Service's external links.",
+ "type": "object"
+ },
+ "integrations": {
+ "description": "Third party integrations that Datadog supports.",
+ "properties": {
+ "opsgenie": {
+ "description": "Opsgenie integration for the service.",
"properties": {
- "name": {
- "description": "Link name.",
- "example": "Runbook",
- "type": "string"
- },
- "provider": {
- "description": "Link provider.",
- "example": "Github",
- "type": "string"
- },
- "type": {
- "description": "Link type.",
+ "region": {
+ "description": "Opsgenie instance region.",
"enum": [
- "doc",
- "repo",
- "runbook",
- "dashboard",
- "other"
+ "US",
+ "EU"
],
- "example": "runbook",
+ "example": "US",
"type": "string",
"x-enum-varnames": [
- "DOC",
- "REPO",
- "RUNBOOK",
- "DASHBOARD",
- "OTHER"
+ "US",
+ "EU"
]
},
- "url": {
- "description": "Link URL.",
- "example": "https://my-runbook",
+ "service-url": {
+ "description": "Opsgenie service url.",
+ "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
"type": "string"
}
},
"required": [
- "name",
- "type",
- "url"
+ "service-url"
],
"type": "object"
},
- "type": "array"
- },
- "schema-version": {
- "default": "v2.1",
- "description": "Schema version being used.",
- "enum": [
- "v2.1"
- ],
- "example": "v2.1",
- "type": "string",
- "x-enum-varnames": [
- "V2_1"
- ]
- },
- "tags": {
- "description": "A set of custom tags.",
- "example": [
- "my:tag",
- "service:tag"
- ],
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "team": {
- "description": "Team that owns the service. It is used to locate a team defined in Datadog Teams if it exists.",
- "example": "my-team",
- "type": "string"
- },
- "tier": {
- "description": "Importance of the service.",
- "example": "High",
- "type": "string"
- }
- },
- "required": [
- "schema-version",
- "dd-service"
- ],
- "type": "object"
- },
- {
- "description": "Service definition v2.2 for providing service metadata and integrations.",
- "properties": {
- "application": {
- "description": "Identifier for a group of related services serving a product feature, which the service is a part of.",
- "example": "my-app",
- "type": "string"
- },
- "ci-pipeline-fingerprints": {
- "description": "A set of CI fingerprints.",
- "example": [
- "j88xdEy0J5lc",
- "eZ7LMljCk8vo"
- ],
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "contacts": {
- "description": "A list of contacts related to the services.",
- "items": {
- "description": "Service owner's contacts information.",
+ "pagerduty": {
+ "description": "PagerDuty integration for the service.",
"properties": {
- "contact": {
- "description": "Contact value.",
- "example": "https://teams.microsoft.com/myteam",
- "type": "string"
- },
- "name": {
- "description": "Contact Name.",
- "example": "My team channel",
- "type": "string"
- },
- "type": {
- "description": "Contact type. Datadog recognizes the following types: `email`, `slack`, and `microsoft-teams`.",
- "example": "slack",
+ "service-url": {
+ "description": "PagerDuty service url.",
+ "example": "https://my-org.pagerduty.com/service-directory/PMyService",
"type": "string"
}
},
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- },
- "type": "array"
+ "type": "object",
+ "x-ignore-duplicate-object": true
+ }
},
- "dd-service": {
- "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
- "example": "my-service",
- "type": "string"
+ "type": "object"
+ },
+ "lifecycle": {
+ "description": "The current life cycle phase of the service.",
+ "example": "sandbox",
+ "type": "string"
+ },
+ "links": {
+ "description": "A list of links related to the services.",
+ "items": {
+ "description": "Service's external links.",
+ "properties": {
+ "name": {
+ "description": "Link name.",
+ "example": "Runbook",
+ "type": "string"
+ },
+ "provider": {
+ "description": "Link provider.",
+ "example": "Github",
+ "type": "string"
+ },
+ "type": {
+ "description": "Link type.",
+ "enum": [
+ "doc",
+ "repo",
+ "runbook",
+ "dashboard",
+ "other"
+ ],
+ "example": "runbook",
+ "type": "string",
+ "x-enum-varnames": [
+ "DOC",
+ "REPO",
+ "RUNBOOK",
+ "DASHBOARD",
+ "OTHER"
+ ]
+ },
+ "url": {
+ "description": "Link URL.",
+ "example": "https://my-runbook",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "type",
+ "url"
+ ],
+ "type": "object"
},
- "description": {
- "description": "A short description of the service.",
- "example": "My service description",
+ "type": "array"
+ },
+ "schema-version": {
+ "default": "v2.1",
+ "description": "Schema version being used.",
+ "enum": [
+ "v2.1"
+ ],
+ "example": "v2.1",
+ "type": "string",
+ "x-enum-varnames": [
+ "V2_1"
+ ]
+ },
+ "tags": {
+ "description": "A set of custom tags.",
+ "example": [
+ "my:tag",
+ "service:tag"
+ ],
+ "items": {
"type": "string"
},
- "extensions": {
- "additionalProperties": {},
- "description": "Extensions to v2.2 schema.",
- "example": {
- "myorg/extension": "extensionValue"
- },
- "type": "object"
+ "type": "array"
+ },
+ "team": {
+ "description": "Team that owns the service. It is used to locate a team defined in Datadog Teams if it exists.",
+ "example": "my-team",
+ "type": "string"
+ },
+ "tier": {
+ "description": "Importance of the service.",
+ "example": "High",
+ "type": "string"
+ }
+ },
+ "required": [
+ "schema-version",
+ "dd-service"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Service definition v2.2 for providing service metadata and integrations.",
+ "properties": {
+ "application": {
+ "description": "Identifier for a group of related services serving a product feature, which the service is a part of.",
+ "example": "my-app",
+ "type": "string"
+ },
+ "ci-pipeline-fingerprints": {
+ "description": "A set of CI fingerprints.",
+ "example": [
+ "j88xdEy0J5lc",
+ "eZ7LMljCk8vo"
+ ],
+ "items": {
+ "type": "string"
},
- "integrations": {
- "description": "Third party integrations that Datadog supports.",
+ "type": "array"
+ },
+ "contacts": {
+ "description": "A list of contacts related to the services.",
+ "items": {
+ "description": "Service owner's contacts information.",
"properties": {
- "opsgenie": {
- "description": "Opsgenie integration for the service.",
- "properties": {
- "region": {
- "description": "Opsgenie instance region.",
- "enum": [
- "US",
- "EU"
- ],
- "example": "US",
- "type": "string",
- "x-enum-varnames": [
- "US",
- "EU"
- ]
- },
- "service-url": {
- "description": "Opsgenie service url.",
- "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
- "type": "string"
- }
- },
- "required": [
- "service-url"
- ],
- "type": "object"
+ "contact": {
+ "description": "Contact value.",
+ "example": "https://teams.microsoft.com/myteam",
+ "type": "string"
},
- "pagerduty": {
- "description": "PagerDuty integration for the service.",
- "properties": {
- "service-url": {
- "description": "PagerDuty service url.",
- "example": "https://my-org.pagerduty.com/service-directory/PMyService",
- "type": "string"
- }
- },
- "type": "object",
- "x-ignore-duplicate-object": true
+ "name": {
+ "description": "Contact Name.",
+ "example": "My team channel",
+ "type": "string"
+ },
+ "type": {
+ "description": "Contact type. Datadog recognizes the following types: `email`, `slack`, and `microsoft-teams`.",
+ "example": "slack",
+ "type": "string"
}
},
- "type": "object"
- },
- "languages": {
- "description": "The service's programming language. Datadog recognizes the following languages: `dotnet`, `go`, `java`, `js`, `php`, `python`, `ruby`, and `c++`.",
- "example": [
- "dotnet",
- "go",
- "java",
- "js",
- "php",
- "python",
- "ruby",
- "c++"
+ "required": [
+ "type",
+ "contact"
],
- "items": {
- "type": "string"
- },
- "type": "array"
+ "type": "object"
},
- "lifecycle": {
- "description": "The current life cycle phase of the service.",
- "example": "sandbox",
- "type": "string"
+ "type": "array"
+ },
+ "dd-service": {
+ "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
+ "example": "my-service",
+ "type": "string"
+ },
+ "description": {
+ "description": "A short description of the service.",
+ "example": "My service description",
+ "type": "string"
+ },
+ "extensions": {
+ "additionalProperties": {},
+ "description": "Extensions to v2.2 schema.",
+ "example": {
+ "myorg/extension": "extensionValue"
},
- "links": {
- "description": "A list of links related to the services.",
- "items": {
- "description": "Service's external links.",
+ "type": "object"
+ },
+ "integrations": {
+ "description": "Third party integrations that Datadog supports.",
+ "properties": {
+ "opsgenie": {
+ "description": "Opsgenie integration for the service.",
"properties": {
- "name": {
- "description": "Link name.",
- "example": "Runbook",
- "type": "string"
- },
- "provider": {
- "description": "Link provider.",
- "example": "Github",
- "type": "string"
- },
- "type": {
- "description": "Link type. Datadog recognizes the following types: `runbook`, `doc`, `repo`, `dashboard`, and `other`.",
- "example": "runbook",
- "type": "string"
+ "region": {
+ "description": "Opsgenie instance region.",
+ "enum": [
+ "US",
+ "EU"
+ ],
+ "example": "US",
+ "type": "string",
+ "x-enum-varnames": [
+ "US",
+ "EU"
+ ]
},
- "url": {
- "description": "Link URL.",
- "example": "https://my-runbook",
+ "service-url": {
+ "description": "Opsgenie service url.",
+ "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
"type": "string"
}
},
"required": [
- "name",
- "type",
- "url"
+ "service-url"
],
"type": "object"
},
- "type": "array"
+ "pagerduty": {
+ "description": "PagerDuty integration for the service.",
+ "properties": {
+ "service-url": {
+ "description": "PagerDuty service url.",
+ "example": "https://my-org.pagerduty.com/service-directory/PMyService",
+ "type": "string"
+ }
+ },
+ "type": "object",
+ "x-ignore-duplicate-object": true
+ }
},
- "schema-version": {
- "default": "v2.2",
- "description": "Schema version being used.",
- "enum": [
- "v2.2"
- ],
- "example": "v2.2",
- "type": "string",
- "x-enum-varnames": [
- "V2_2"
- ]
+ "type": "object"
+ },
+ "languages": {
+ "description": "The service's programming language. Datadog recognizes the following languages: `dotnet`, `go`, `java`, `js`, `php`, `python`, `ruby`, and `c++`.",
+ "example": [
+ "dotnet",
+ "go",
+ "java",
+ "js",
+ "php",
+ "python",
+ "ruby",
+ "c++"
+ ],
+ "items": {
+ "type": "string"
},
- "tags": {
- "description": "A set of custom tags.",
- "example": [
- "my:tag",
- "service:tag"
- ],
- "items": {
- "type": "string"
+ "type": "array"
+ },
+ "lifecycle": {
+ "description": "The current life cycle phase of the service.",
+ "example": "sandbox",
+ "type": "string"
+ },
+ "links": {
+ "description": "A list of links related to the services.",
+ "items": {
+ "description": "Service's external links.",
+ "properties": {
+ "name": {
+ "description": "Link name.",
+ "example": "Runbook",
+ "type": "string"
+ },
+ "provider": {
+ "description": "Link provider.",
+ "example": "Github",
+ "type": "string"
+ },
+ "type": {
+ "description": "Link type. Datadog recognizes the following types: `runbook`, `doc`, `repo`, `dashboard`, and `other`.",
+ "example": "runbook",
+ "type": "string"
+ },
+ "url": {
+ "description": "Link URL.",
+ "example": "https://my-runbook",
+ "type": "string"
+ }
},
- "type": "array"
- },
- "team": {
- "description": "Team that owns the service. It is used to locate a team defined in Datadog Teams if it exists.",
- "example": "my-team",
- "type": "string"
+ "required": [
+ "name",
+ "type",
+ "url"
+ ],
+ "type": "object"
},
- "tier": {
- "description": "Importance of the service.",
- "example": "High",
+ "type": "array"
+ },
+ "schema-version": {
+ "default": "v2.2",
+ "description": "Schema version being used.",
+ "enum": [
+ "v2.2"
+ ],
+ "example": "v2.2",
+ "type": "string",
+ "x-enum-varnames": [
+ "V2_2"
+ ]
+ },
+ "tags": {
+ "description": "A set of custom tags.",
+ "example": [
+ "my:tag",
+ "service:tag"
+ ],
+ "items": {
"type": "string"
},
- "type": {
- "description": "The type of service.",
- "enum": [
- "web",
- "db",
- "cache",
- "function",
- "browser",
- "mobile",
- "custom"
- ],
- "example": "web",
- "type": "string",
- "x-enum-varnames": [
- "WEB",
- "DB",
- "CACHE",
- "FUNCTION",
- "BROSWER",
- "MOBILE",
- "CUSTOM"
- ]
- }
+ "type": "array"
},
- "required": [
- "schema-version",
- "dd-service"
- ],
- "type": "object"
- }
- ]
- }
- },
- "type": "object"
- },
- "id": {
- "description": "Service definition id.",
- "type": "string"
+ "team": {
+ "description": "Team that owns the service. It is used to locate a team defined in Datadog Teams if it exists.",
+ "example": "my-team",
+ "type": "string"
+ },
+ "tier": {
+ "description": "Importance of the service.",
+ "example": "High",
+ "type": "string"
+ },
+ "type": {
+ "description": "The type of service.",
+ "enum": [
+ "web",
+ "db",
+ "cache",
+ "function",
+ "browser",
+ "mobile",
+ "custom"
+ ],
+ "example": "web",
+ "type": "string",
+ "x-enum-varnames": [
+ "WEB",
+ "DB",
+ "CACHE",
+ "FUNCTION",
+ "BROSWER",
+ "MOBILE",
+ "CUSTOM"
+ ]
+ }
+ },
+ "required": [
+ "schema-version",
+ "dd-service"
+ ],
+ "type": "object"
+ }
+ ]
+ }
},
- "type": {
- "description": "Service definition type.",
- "type": "string"
- }
+ "type": "object"
},
- "type": "object"
+ "id": {
+ "description": "Service definition id.",
+ "type": "string"
+ },
+ "type": {
+ "description": "Service definition type.",
+ "type": "string"
+ }
},
- "type": "array"
+ "type": "object"
}
},
"type": "object"
@@ -381259,6 +405105,34 @@
},
"description": "OK"
},
+ "400": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Bad Request"
+ },
"403": {
"content": {
"application/json": {
@@ -381287,6 +405161,62 @@
},
"description": "Forbidden"
},
+ "404": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Not Found"
+ },
+ "409": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Conflict"
+ },
"429": {
"content": {
"application/json": {
@@ -381327,16 +405257,11 @@
]
}
],
- "summary": "Get all service definitions",
+ "summary": "Get a single service definition",
"tags": [
"Service Definition"
],
- "x-menu-order": 1,
- "x-pagination": {
- "limitParam": "page[size]",
- "pageParam": "page[number]",
- "resultsPath": "data"
- },
+ "x-menu-order": 3,
"x-permission": {
"operator": "OR",
"permissions": [
@@ -381346,1896 +405271,1383 @@
"x-undo": {
"type": "safe"
}
- },
- "post": {
- "description": "Create or update service definition in the Datadog Service Catalog.",
- "operationId": "CreateOrUpdateServiceDefinitions",
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Create service definitions request.",
- "oneOf": [
- {
- "description": "Service definition v2.2 for providing service metadata and integrations.",
- "properties": {
- "application": {
- "description": "Identifier for a group of related services serving a product feature, which the service is a part of.",
- "example": "my-app",
- "type": "string"
- },
- "ci-pipeline-fingerprints": {
- "description": "A set of CI fingerprints.",
- "example": [
- "j88xdEy0J5lc",
- "eZ7LMljCk8vo"
- ],
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "contacts": {
- "description": "A list of contacts related to the services.",
- "items": {
- "description": "Service owner's contacts information.",
- "properties": {
- "contact": {
- "description": "Contact value.",
- "example": "https://teams.microsoft.com/myteam",
- "type": "string"
- },
- "name": {
- "description": "Contact Name.",
- "example": "My team channel",
- "type": "string"
- },
- "type": {
- "description": "Contact type. Datadog recognizes the following types: `email`, `slack`, and `microsoft-teams`.",
- "example": "slack",
- "type": "string"
- }
- },
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "dd-service": {
- "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
- "example": "my-service",
- "type": "string"
- },
- "description": {
- "description": "A short description of the service.",
- "example": "My service description",
- "type": "string"
- },
- "extensions": {
- "additionalProperties": {},
- "description": "Extensions to v2.2 schema.",
- "example": {
- "myorg/extension": "extensionValue"
- },
- "type": "object"
- },
- "integrations": {
- "description": "Third party integrations that Datadog supports.",
- "properties": {
- "opsgenie": {
- "description": "Opsgenie integration for the service.",
- "properties": {
- "region": {
- "description": "Opsgenie instance region.",
- "enum": [
- "US",
- "EU"
- ],
- "example": "US",
- "type": "string",
- "x-enum-varnames": [
- "US",
- "EU"
- ]
- },
- "service-url": {
- "description": "Opsgenie service url.",
- "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
- "type": "string"
- }
- },
- "required": [
- "service-url"
- ],
- "type": "object"
- },
- "pagerduty": {
- "description": "PagerDuty integration for the service.",
- "properties": {
- "service-url": {
- "description": "PagerDuty service url.",
- "example": "https://my-org.pagerduty.com/service-directory/PMyService",
- "type": "string"
- }
- },
- "type": "object",
- "x-ignore-duplicate-object": true
- }
- },
- "type": "object"
- },
- "languages": {
- "description": "The service's programming language. Datadog recognizes the following languages: `dotnet`, `go`, `java`, `js`, `php`, `python`, `ruby`, and `c++`.",
- "example": [
- "dotnet",
- "go",
- "java",
- "js",
- "php",
- "python",
- "ruby",
- "c++"
- ],
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "lifecycle": {
- "description": "The current life cycle phase of the service.",
- "example": "sandbox",
- "type": "string"
- },
- "links": {
- "description": "A list of links related to the services.",
- "items": {
- "description": "Service's external links.",
- "properties": {
- "name": {
- "description": "Link name.",
- "example": "Runbook",
- "type": "string"
- },
- "provider": {
- "description": "Link provider.",
- "example": "Github",
- "type": "string"
- },
- "type": {
- "description": "Link type. Datadog recognizes the following types: `runbook`, `doc`, `repo`, `dashboard`, and `other`.",
- "example": "runbook",
- "type": "string"
- },
- "url": {
- "description": "Link URL.",
- "example": "https://my-runbook",
- "type": "string"
- }
- },
- "required": [
- "name",
- "type",
- "url"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "schema-version": {
- "default": "v2.2",
- "description": "Schema version being used.",
- "enum": [
- "v2.2"
- ],
- "example": "v2.2",
- "type": "string",
- "x-enum-varnames": [
- "V2_2"
- ]
- },
- "tags": {
- "description": "A set of custom tags.",
- "example": [
- "my:tag",
- "service:tag"
- ],
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "team": {
- "description": "Team that owns the service. It is used to locate a team defined in Datadog Teams if it exists.",
- "example": "my-team",
- "type": "string"
- },
- "tier": {
- "description": "Importance of the service.",
- "example": "High",
+ }
+ },
+ "/api/v2/services/{service_id}": {
+ "delete": {
+ "deprecated": true,
+ "description": "Deletes an existing incident service.",
+ "operationId": "DeleteIncidentService",
+ "parameters": [
+ {
+ "description": "The ID of the incident service.",
+ "in": "path",
+ "name": "service_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "OK"
+ },
+ "400": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
"type": "string"
},
- "type": {
- "description": "The type of service.",
- "enum": [
- "web",
- "db",
- "cache",
- "function",
- "browser",
- "mobile",
- "custom"
- ],
- "example": "web",
- "type": "string",
- "x-enum-varnames": [
- "WEB",
- "DB",
- "CACHE",
- "FUNCTION",
- "BROSWER",
- "MOBILE",
- "CUSTOM"
- ]
- }
- },
- "required": [
- "schema-version",
- "dd-service"
- ],
- "type": "object"
+ "type": "array"
+ }
},
- {
- "description": "Service definition v2.1 for providing service metadata and integrations.",
- "properties": {
- "application": {
- "description": "Identifier for a group of related services serving a product feature, which the service is a part of.",
- "example": "my-app",
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Bad Request"
+ },
+ "401": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
"type": "string"
},
- "contacts": {
- "description": "A list of contacts related to the services.",
- "items": {
- "description": "Service owner's contacts information.",
- "oneOf": [
- {
- "description": "Service owner's email.",
- "properties": {
- "contact": {
- "description": "Contact value.",
- "example": "contact@datadoghq.com",
- "type": "string"
- },
- "name": {
- "description": "Contact email.",
- "example": "Team Email",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "email"
- ],
- "example": "email",
- "type": "string",
- "x-enum-varnames": [
- "EMAIL"
- ]
- }
- },
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- },
- {
- "description": "Service owner's Slack channel.",
- "properties": {
- "contact": {
- "description": "Slack Channel.",
- "example": "https://yourcompany.slack.com/archives/channel123",
- "type": "string"
- },
- "name": {
- "description": "Contact Slack.",
- "example": "Team Slack",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "slack"
- ],
- "example": "slack",
- "type": "string",
- "x-enum-varnames": [
- "SLACK"
- ]
- }
- },
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- },
- {
- "description": "Service owner's Microsoft Teams.",
- "properties": {
- "contact": {
- "description": "Contact value.",
- "example": "https://teams.microsoft.com/myteam",
- "type": "string"
- },
- "name": {
- "description": "Contact Microsoft Teams.",
- "example": "My team channel",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "microsoft-teams"
- ],
- "example": "microsoft-teams",
- "type": "string",
- "x-enum-varnames": [
- "MICROSOFT_TEAMS"
- ]
- }
- },
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- }
- ]
- },
- "type": "array"
- },
- "dd-service": {
- "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
- "example": "my-service",
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Unauthorized"
+ },
+ "403": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
"type": "string"
},
- "description": {
- "description": "A short description of the service.",
- "example": "My service description",
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Forbidden"
+ },
+ "404": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
"type": "string"
},
- "extensions": {
- "additionalProperties": {},
- "description": "Extensions to v2.1 schema.",
- "example": {
- "myorg/extension": "extensionValue"
- },
- "type": "object"
- },
- "integrations": {
- "description": "Third party integrations that Datadog supports.",
- "properties": {
- "opsgenie": {
- "description": "Opsgenie integration for the service.",
- "properties": {
- "region": {
- "description": "Opsgenie instance region.",
- "enum": [
- "US",
- "EU"
- ],
- "example": "US",
- "type": "string",
- "x-enum-varnames": [
- "US",
- "EU"
- ]
- },
- "service-url": {
- "description": "Opsgenie service url.",
- "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
- "type": "string"
- }
- },
- "required": [
- "service-url"
- ],
- "type": "object"
- },
- "pagerduty": {
- "description": "PagerDuty integration for the service.",
- "properties": {
- "service-url": {
- "description": "PagerDuty service url.",
- "example": "https://my-org.pagerduty.com/service-directory/PMyService",
- "type": "string"
- }
- },
- "type": "object",
- "x-ignore-duplicate-object": true
- }
- },
- "type": "object"
- },
- "lifecycle": {
- "description": "The current life cycle phase of the service.",
- "example": "sandbox",
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Not Found"
+ },
+ "429": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
"type": "string"
},
- "links": {
- "description": "A list of links related to the services.",
- "items": {
- "description": "Service's external links.",
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Too many requests"
+ }
+ },
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
+ },
+ {
+ "AuthZ": [
+ "incident_settings_write"
+ ]
+ }
+ ],
+ "summary": "Delete an existing incident service",
+ "tags": [
+ "Incident Services"
+ ],
+ "x-menu-order": 2,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "incident_settings_write"
+ ]
+ },
+ "x-undo": {
+ "type": "idempotent"
+ },
+ "x-unstable": "**Note**: This endpoint is deprecated."
+ },
+ "get": {
+ "deprecated": true,
+ "description": "Get details of an incident service. If the `include[users]` query parameter is provided,\nthe included attribute will contain the users related to these incident services.",
+ "operationId": "GetIncidentService",
+ "parameters": [
+ {
+ "description": "The ID of the incident service.",
+ "in": "path",
+ "name": "service_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "Specifies which types of related objects should be included in the response.",
+ "in": "query",
+ "name": "include",
+ "required": false,
+ "schema": {
+ "description": "Object related to an incident.",
+ "enum": [
+ "users",
+ "attachments"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS",
+ "ATTACHMENTS"
+ ]
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Response with an incident service payload.",
+ "properties": {
+ "data": {
+ "description": "Incident Service data from responses.",
+ "properties": {
+ "attributes": {
+ "description": "The incident service's attributes from a response.",
"properties": {
- "name": {
- "description": "Link name.",
- "example": "Runbook",
+ "created": {
+ "description": "Timestamp of when the incident service was created.",
+ "format": "date-time",
+ "readOnly": true,
"type": "string"
},
- "provider": {
- "description": "Link provider.",
- "example": "Github",
+ "modified": {
+ "description": "Timestamp of when the incident service was modified.",
+ "format": "date-time",
+ "readOnly": true,
"type": "string"
},
- "type": {
- "description": "Link type.",
- "enum": [
- "doc",
- "repo",
- "runbook",
- "dashboard",
- "other"
- ],
- "example": "runbook",
- "type": "string",
- "x-enum-varnames": [
- "DOC",
- "REPO",
- "RUNBOOK",
- "DASHBOARD",
- "OTHER"
- ]
- },
- "url": {
- "description": "Link URL.",
- "example": "https://my-runbook",
+ "name": {
+ "description": "Name of the incident service.",
+ "example": "service name",
"type": "string"
}
},
- "required": [
- "name",
- "type",
- "url"
- ],
"type": "object"
},
- "type": "array"
- },
- "schema-version": {
- "default": "v2.1",
- "description": "Schema version being used.",
- "enum": [
- "v2.1"
- ],
- "example": "v2.1",
- "type": "string",
- "x-enum-varnames": [
- "V2_1"
- ]
- },
- "tags": {
- "description": "A set of custom tags.",
- "example": [
- "my:tag",
- "service:tag"
- ],
- "items": {
+ "id": {
+ "description": "The incident service's ID.",
+ "example": "00000000-0000-0000-0000-000000000000",
"type": "string"
},
- "type": "array"
- },
- "team": {
- "description": "Team that owns the service. It is used to locate a team defined in Datadog Teams if it exists.",
- "example": "my-team",
- "type": "string"
- },
- "tier": {
- "description": "Importance of the service.",
- "example": "High",
- "type": "string"
- }
- },
- "required": [
- "schema-version",
- "dd-service"
- ],
- "type": "object"
- },
- {
- "description": "Service definition V2 for providing service metadata and integrations.",
- "properties": {
- "contacts": {
- "description": "A list of contacts related to the services.",
- "items": {
- "description": "Service owner's contacts information.",
- "oneOf": [
- {
- "description": "Service owner's email.",
- "properties": {
- "contact": {
- "description": "Contact value.",
- "example": "contact@datadoghq.com",
- "type": "string"
- },
- "name": {
- "description": "Contact email.",
- "example": "Team Email",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "email"
- ],
- "example": "email",
- "type": "string",
- "x-enum-varnames": [
- "EMAIL"
- ]
- }
- },
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- },
- {
- "description": "Service owner's Slack channel.",
+ "relationships": {
+ "description": "The incident service's relationships.",
+ "properties": {
+ "created_by": {
+ "description": "Relationship to user.",
"properties": {
- "contact": {
- "description": "Slack Channel.",
- "example": "https://yourcompany.slack.com/archives/channel123",
- "type": "string"
- },
- "name": {
- "description": "Contact Slack.",
- "example": "Team Slack",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "slack"
+ "data": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
],
- "example": "slack",
- "type": "string",
- "x-enum-varnames": [
- "SLACK"
- ]
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
"required": [
- "type",
- "contact"
+ "data"
],
"type": "object"
},
- {
- "description": "Service owner's Microsoft Teams.",
+ "last_modified_by": {
+ "description": "Relationship to user.",
"properties": {
- "contact": {
- "description": "Contact value.",
- "example": "https://teams.microsoft.com/myteam",
- "type": "string"
- },
- "name": {
- "description": "Contact Microsoft Teams.",
- "example": "My team channel",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "microsoft-teams"
+ "data": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
],
- "example": "microsoft-teams",
- "type": "string",
- "x-enum-varnames": [
- "MICROSOFT_TEAMS"
- ]
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
"required": [
- "type",
- "contact"
+ "data"
],
"type": "object"
}
- ]
- },
- "type": "array"
- },
- "dd-service": {
- "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
- "example": "my-service",
- "type": "string"
- },
- "dd-team": {
- "description": "Experimental feature. A Team handle that matches a Team in the Datadog Teams product.",
- "example": "my-team",
- "type": "string"
- },
- "docs": {
- "description": "A list of documentation related to the services.",
- "items": {
- "description": "Service documents.",
- "properties": {
- "name": {
- "description": "Document name.",
- "example": "Architecture",
- "type": "string"
- },
- "provider": {
- "description": "Document provider.",
- "example": "google drive",
- "type": "string"
- },
- "url": {
- "description": "Document URL.",
- "example": "https://gdrive/mydoc",
- "type": "string"
- }
- },
- "required": [
- "name",
- "url"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "extensions": {
- "additionalProperties": {},
- "description": "Extensions to V2 schema.",
- "example": {
- "myorg/extension": "extensionValue"
- },
- "type": "object"
- },
- "integrations": {
- "description": "Third party integrations that Datadog supports.",
- "properties": {
- "opsgenie": {
- "description": "Opsgenie integration for the service.",
- "properties": {
- "region": {
- "description": "Opsgenie instance region.",
- "enum": [
- "US",
- "EU"
- ],
- "example": "US",
- "type": "string",
- "x-enum-varnames": [
- "US",
- "EU"
- ]
- },
- "service-url": {
- "description": "Opsgenie service url.",
- "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
- "type": "string"
- }
- },
- "required": [
- "service-url"
- ],
- "type": "object"
- },
- "pagerduty": {
- "description": "PagerDuty service URL for the service.",
- "example": "https://my-org.pagerduty.com/service-directory/PMyService",
- "type": "string"
- }
- },
- "type": "object"
- },
- "links": {
- "description": "A list of links related to the services.",
- "items": {
- "description": "Service's external links.",
- "properties": {
- "name": {
- "description": "Link name.",
- "example": "Runbook",
- "type": "string"
- },
- "type": {
- "description": "Link type.",
- "enum": [
- "doc",
- "wiki",
- "runbook",
- "url",
- "repo",
- "dashboard",
- "oncall",
- "code",
- "link"
- ],
- "example": "runbook",
- "type": "string",
- "x-enum-varnames": [
- "DOC",
- "WIKI",
- "RUNBOOK",
- "URL",
- "REPO",
- "DASHBOARD",
- "ONCALL",
- "CODE",
- "LINK"
- ]
- },
- "url": {
- "description": "Link URL.",
- "example": "https://my-runbook",
- "type": "string"
- }
},
- "required": [
- "name",
- "type",
- "url"
- ],
+ "readOnly": true,
"type": "object"
},
- "type": "array"
- },
- "repos": {
- "description": "A list of code repositories related to the services.",
- "items": {
- "description": "Service code repositories.",
- "properties": {
- "name": {
- "description": "Repository name.",
- "example": "Source Code",
- "type": "string"
- },
- "provider": {
- "description": "Repository provider.",
- "example": "GitHub",
- "type": "string"
- },
- "url": {
- "description": "Repository URL.",
- "example": "https://github.com/DataDog/schema",
- "type": "string"
- }
- },
- "required": [
- "name",
- "url"
+ "type": {
+ "default": "services",
+ "description": "Incident service resource type.",
+ "enum": [
+ "services"
],
- "type": "object"
- },
- "type": "array"
- },
- "schema-version": {
- "default": "v2",
- "description": "Schema version being used.",
- "enum": [
- "v2"
- ],
- "example": "v2",
- "type": "string",
- "x-enum-varnames": [
- "V2"
- ]
- },
- "tags": {
- "description": "A set of custom tags.",
- "example": [
- "my:tag",
- "service:tag"
- ],
- "items": {
- "type": "string"
- },
- "type": "array"
+ "example": "services",
+ "type": "string",
+ "x-enum-varnames": [
+ "SERVICES"
+ ]
+ }
},
- "team": {
- "description": "Team that owns the service.",
- "example": "my-team",
- "type": "string"
- }
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
},
- "required": [
- "schema-version",
- "dd-service"
- ],
- "type": "object"
- },
- {
- "description": "Service Definition in raw JSON/YAML representation.",
- "example": "---\nschema-version: v2\ndd-service: my-service\n",
- "type": "string"
- }
- ]
- }
- }
- },
- "description": "Service Definition YAML/JSON.",
- "required": true
- },
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Create service definitions response.",
- "properties": {
- "data": {
- "description": "Create service definitions response payload.",
+ "included": {
+ "description": "Included objects from relationships.",
"items": {
- "description": "Service definition data.",
- "properties": {
- "attributes": {
- "description": "Service definition attributes.",
+ "description": "An object related to an incident service which is present in the included payload.",
+ "oneOf": [
+ {
+ "description": "User object returned by the API.",
"properties": {
- "meta": {
- "description": "Metadata about a service definition.",
+ "attributes": {
+ "description": "Attributes of user object returned by the API.",
"properties": {
- "github-html-url": {
- "description": "GitHub HTML URL.",
+ "created_at": {
+ "description": "Creation time of the user.",
+ "format": "date-time",
"type": "string"
},
- "ingested-schema-version": {
- "description": "Ingestion schema version.",
+ "disabled": {
+ "description": "Whether the user is disabled.",
+ "type": "boolean"
+ },
+ "email": {
+ "description": "Email of the user.",
"type": "string"
},
- "ingestion-source": {
- "description": "Ingestion source of the service definition.",
+ "handle": {
+ "description": "Handle of the user.",
"type": "string"
},
- "last-modified-time": {
- "description": "Last modified time of the service definition.",
+ "icon": {
+ "description": "URL of the user's icon.",
"type": "string"
},
- "origin": {
- "description": "User defined origin of the service definition.",
+ "mfa_enabled": {
+ "description": "If user has MFA enabled.",
+ "readOnly": true,
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time that the user was last modified.",
+ "format": "date-time",
"type": "string"
},
- "origin-detail": {
- "description": "User defined origin's detail of the service definition.",
+ "name": {
+ "description": "Name of the user.",
+ "nullable": true,
"type": "string"
},
- "warnings": {
- "description": "A list of schema validation warnings.",
- "items": {
- "description": "Schema validation warnings.",
- "properties": {
- "instance-location": {
- "description": "The warning instance location.",
- "type": "string"
- },
- "keyword-location": {
- "description": "The warning keyword location.",
- "type": "string"
- },
- "message": {
- "description": "The warning message.",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
+ "service_account": {
+ "description": "Whether the user is a service account.",
+ "type": "boolean"
+ },
+ "status": {
+ "description": "Status of the user.",
+ "type": "string"
+ },
+ "title": {
+ "description": "Title of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "verified": {
+ "description": "Whether the user is verified.",
+ "type": "boolean"
}
},
"type": "object"
},
- "schema": {
- "description": "Service definition schema.",
- "oneOf": [
- {
- "deprecated": true,
- "description": "Deprecated - Service definition V1 for providing additional service metadata and integrations.",
+ "id": {
+ "description": "ID of the user.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships of the user object returned by the API.",
+ "properties": {
+ "org": {
+ "description": "Relationship to an organization.",
"properties": {
- "contact": {
- "description": "Contact information about the service.",
- "properties": {
- "email": {
- "description": "Service owner’s email.",
- "example": "contact@datadoghq.com",
- "type": "string"
- },
- "slack": {
- "description": "Service owner’s Slack channel.",
- "example": "https://yourcompany.slack.com/archives/channel123",
- "type": "string"
- }
- },
- "type": "object"
- },
- "extensions": {
- "additionalProperties": {},
- "description": "Extensions to V1 schema.",
- "example": {
- "myorg/extension": "extensionValue"
- },
- "type": "object"
- },
- "external-resources": {
- "description": "A list of external links related to the services.",
- "items": {
- "description": "Service's external links.",
- "properties": {
- "name": {
- "description": "Link name.",
- "example": "Runbook",
- "type": "string"
- },
- "type": {
- "description": "Link type.",
- "enum": [
- "doc",
- "wiki",
- "runbook",
- "url",
- "repo",
- "dashboard",
- "oncall",
- "code",
- "link"
- ],
- "example": "runbook",
- "type": "string",
- "x-enum-varnames": [
- "DOC",
- "WIKI",
- "RUNBOOK",
- "URL",
- "REPO",
- "DASHBOARD",
- "ONCALL",
- "CODE",
- "LINK"
- ]
- },
- "url": {
- "description": "Link URL.",
- "example": "https://my-runbook",
- "type": "string"
- }
- },
- "required": [
- "name",
- "type",
- "url"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "info": {
- "description": "Basic information about a service.",
+ "data": {
+ "description": "Relationship to organization object.",
"properties": {
- "dd-service": {
- "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
- "example": "myservice",
- "type": "string"
- },
- "description": {
- "description": "A short description of the service.",
- "example": "A shopping cart service",
- "type": "string"
- },
- "display-name": {
- "description": "A friendly name of the service.",
- "example": "My Service",
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
"type": "string"
},
- "service-tier": {
- "description": "Service tier.",
- "example": "Tier 1",
- "type": "string"
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
}
},
"required": [
- "dd-service"
+ "id",
+ "type"
],
"type": "object"
- },
- "integrations": {
- "description": "Third party integrations that Datadog supports.",
- "properties": {
- "pagerduty": {
- "description": "PagerDuty service URL for the service.",
- "example": "https://my-org.pagerduty.com/service-directory/PMyService",
- "type": "string"
- }
- },
- "type": "object"
- },
- "org": {
- "description": "Org related information about the service.",
- "properties": {
- "application": {
- "description": "App feature this service supports.",
- "example": "E-Commerce",
- "type": "string"
- },
- "team": {
- "description": "Team that owns the service.",
- "example": "my-team",
- "type": "string"
- }
- },
- "type": "object"
- },
- "schema-version": {
- "default": "v1",
- "description": "Schema version being used.",
- "enum": [
- "v1"
- ],
- "example": "v1",
- "type": "string",
- "x-enum-varnames": [
- "V1"
- ]
- },
- "tags": {
- "description": "A set of custom tags.",
- "example": [
- "my:tag",
- "service:tag"
- ],
- "items": {
- "type": "string"
- },
- "type": "array"
}
},
"required": [
- "schema-version",
- "info"
+ "data"
],
"type": "object"
},
- {
- "description": "Service definition V2 for providing service metadata and integrations.",
+ "other_orgs": {
+ "description": "Relationship to organizations.",
"properties": {
- "contacts": {
- "description": "A list of contacts related to the services.",
- "items": {
- "description": "Service owner's contacts information.",
- "oneOf": [
- {
- "description": "Service owner's email.",
- "properties": {
- "contact": {
- "description": "Contact value.",
- "example": "contact@datadoghq.com",
- "type": "string"
- },
- "name": {
- "description": "Contact email.",
- "example": "Team Email",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "email"
- ],
- "example": "email",
- "type": "string",
- "x-enum-varnames": [
- "EMAIL"
- ]
- }
- },
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- },
- {
- "description": "Service owner's Slack channel.",
- "properties": {
- "contact": {
- "description": "Slack Channel.",
- "example": "https://yourcompany.slack.com/archives/channel123",
- "type": "string"
- },
- "name": {
- "description": "Contact Slack.",
- "example": "Team Slack",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "slack"
- ],
- "example": "slack",
- "type": "string",
- "x-enum-varnames": [
- "SLACK"
- ]
- }
- },
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- },
- {
- "description": "Service owner's Microsoft Teams.",
- "properties": {
- "contact": {
- "description": "Contact value.",
- "example": "https://teams.microsoft.com/myteam",
- "type": "string"
- },
- "name": {
- "description": "Contact Microsoft Teams.",
- "example": "My team channel",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "microsoft-teams"
- ],
- "example": "microsoft-teams",
- "type": "string",
- "x-enum-varnames": [
- "MICROSOFT_TEAMS"
- ]
- }
- },
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- }
- ]
- },
- "type": "array"
- },
- "dd-service": {
- "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
- "example": "my-service",
- "type": "string"
- },
- "dd-team": {
- "description": "Experimental feature. A Team handle that matches a Team in the Datadog Teams product.",
- "example": "my-team",
- "type": "string"
- },
- "docs": {
- "description": "A list of documentation related to the services.",
- "items": {
- "description": "Service documents.",
- "properties": {
- "name": {
- "description": "Document name.",
- "example": "Architecture",
- "type": "string"
- },
- "provider": {
- "description": "Document provider.",
- "example": "google drive",
- "type": "string"
- },
- "url": {
- "description": "Document URL.",
- "example": "https://gdrive/mydoc",
- "type": "string"
- }
- },
- "required": [
- "name",
- "url"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "extensions": {
- "additionalProperties": {},
- "description": "Extensions to V2 schema.",
- "example": {
- "myorg/extension": "extensionValue"
- },
- "type": "object"
- },
- "integrations": {
- "description": "Third party integrations that Datadog supports.",
- "properties": {
- "opsgenie": {
- "description": "Opsgenie integration for the service.",
- "properties": {
- "region": {
- "description": "Opsgenie instance region.",
- "enum": [
- "US",
- "EU"
- ],
- "example": "US",
- "type": "string",
- "x-enum-varnames": [
- "US",
- "EU"
- ]
- },
- "service-url": {
- "description": "Opsgenie service url.",
- "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
- "type": "string"
- }
- },
- "required": [
- "service-url"
- ],
- "type": "object"
- },
- "pagerduty": {
- "description": "PagerDuty service URL for the service.",
- "example": "https://my-org.pagerduty.com/service-directory/PMyService",
- "type": "string"
- }
- },
- "type": "object"
- },
- "links": {
- "description": "A list of links related to the services.",
+ "data": {
+ "description": "Relationships to organization objects.",
+ "example": [],
"items": {
- "description": "Service's external links.",
+ "description": "Relationship to organization object.",
"properties": {
- "name": {
- "description": "Link name.",
- "example": "Runbook",
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
"type": "string"
},
- "type": {
- "description": "Link type.",
- "enum": [
- "doc",
- "wiki",
- "runbook",
- "url",
- "repo",
- "dashboard",
- "oncall",
- "code",
- "link"
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
],
- "example": "runbook",
+ "example": "orgs",
"type": "string",
"x-enum-varnames": [
- "DOC",
- "WIKI",
- "RUNBOOK",
- "URL",
- "REPO",
- "DASHBOARD",
- "ONCALL",
- "CODE",
- "LINK"
+ "ORGS"
]
- },
- "url": {
- "description": "Link URL.",
- "example": "https://my-runbook",
- "type": "string"
}
},
"required": [
- "name",
- "type",
- "url"
+ "id",
+ "type"
],
"type": "object"
},
"type": "array"
- },
- "repos": {
- "description": "A list of code repositories related to the services.",
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_users": {
+ "description": "Relationship to users.",
+ "properties": {
+ "data": {
+ "description": "Relationships to user objects.",
+ "example": [],
"items": {
- "description": "Service code repositories.",
+ "description": "Relationship to user object.",
"properties": {
- "name": {
- "description": "Repository name.",
- "example": "Source Code",
- "type": "string"
- },
- "provider": {
- "description": "Repository provider.",
- "example": "GitHub",
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
"type": "string"
},
- "url": {
- "description": "Repository URL.",
- "example": "https://github.com/DataDog/schema",
- "type": "string"
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
}
},
"required": [
- "name",
- "url"
+ "id",
+ "type"
],
- "type": "object"
- },
- "type": "array"
- },
- "schema-version": {
- "default": "v2",
- "description": "Schema version being used.",
- "enum": [
- "v2"
- ],
- "example": "v2",
- "type": "string",
- "x-enum-varnames": [
- "V2"
- ]
- },
- "tags": {
- "description": "A set of custom tags.",
- "example": [
- "my:tag",
- "service:tag"
- ],
- "items": {
- "type": "string"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
},
"type": "array"
- },
- "team": {
- "description": "Team that owns the service.",
- "example": "my-team",
- "type": "string"
}
},
"required": [
- "schema-version",
- "dd-service"
+ "data"
],
"type": "object"
},
- {
- "description": "Service definition v2.1 for providing service metadata and integrations.",
+ "roles": {
+ "description": "Relationship to roles.",
"properties": {
- "application": {
- "description": "Identifier for a group of related services serving a product feature, which the service is a part of.",
- "example": "my-app",
- "type": "string"
- },
- "contacts": {
- "description": "A list of contacts related to the services.",
- "items": {
- "description": "Service owner's contacts information.",
- "oneOf": [
- {
- "description": "Service owner's email.",
- "properties": {
- "contact": {
- "description": "Contact value.",
- "example": "contact@datadoghq.com",
- "type": "string"
- },
- "name": {
- "description": "Contact email.",
- "example": "Team Email",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "email"
- ],
- "example": "email",
- "type": "string",
- "x-enum-varnames": [
- "EMAIL"
- ]
- }
- },
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- },
- {
- "description": "Service owner's Slack channel.",
- "properties": {
- "contact": {
- "description": "Slack Channel.",
- "example": "https://yourcompany.slack.com/archives/channel123",
- "type": "string"
- },
- "name": {
- "description": "Contact Slack.",
- "example": "Team Slack",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "slack"
- ],
- "example": "slack",
- "type": "string",
- "x-enum-varnames": [
- "SLACK"
- ]
- }
- },
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- },
- {
- "description": "Service owner's Microsoft Teams.",
- "properties": {
- "contact": {
- "description": "Contact value.",
- "example": "https://teams.microsoft.com/myteam",
- "type": "string"
- },
- "name": {
- "description": "Contact Microsoft Teams.",
- "example": "My team channel",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "microsoft-teams"
- ],
- "example": "microsoft-teams",
- "type": "string",
- "x-enum-varnames": [
- "MICROSOFT_TEAMS"
- ]
- }
- },
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- }
- ]
- },
- "type": "array"
- },
- "dd-service": {
- "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
- "example": "my-service",
- "type": "string"
- },
- "description": {
- "description": "A short description of the service.",
- "example": "My service description",
- "type": "string"
- },
- "extensions": {
- "additionalProperties": {},
- "description": "Extensions to v2.1 schema.",
- "example": {
- "myorg/extension": "extensionValue"
- },
- "type": "object"
- },
- "integrations": {
- "description": "Third party integrations that Datadog supports.",
- "properties": {
- "opsgenie": {
- "description": "Opsgenie integration for the service.",
- "properties": {
- "region": {
- "description": "Opsgenie instance region.",
- "enum": [
- "US",
- "EU"
- ],
- "example": "US",
- "type": "string",
- "x-enum-varnames": [
- "US",
- "EU"
- ]
- },
- "service-url": {
- "description": "Opsgenie service url.",
- "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
- "type": "string"
- }
- },
- "required": [
- "service-url"
- ],
- "type": "object"
- },
- "pagerduty": {
- "description": "PagerDuty integration for the service.",
- "properties": {
- "service-url": {
- "description": "PagerDuty service url.",
- "example": "https://my-org.pagerduty.com/service-directory/PMyService",
- "type": "string"
- }
- },
- "type": "object",
- "x-ignore-duplicate-object": true
- }
- },
- "type": "object"
- },
- "lifecycle": {
- "description": "The current life cycle phase of the service.",
- "example": "sandbox",
- "type": "string"
- },
- "links": {
- "description": "A list of links related to the services.",
+ "data": {
+ "description": "An array containing type and the unique identifier of a role.",
"items": {
- "description": "Service's external links.",
+ "description": "Relationship to role object.",
"properties": {
- "name": {
- "description": "Link name.",
- "example": "Runbook",
- "type": "string"
- },
- "provider": {
- "description": "Link provider.",
- "example": "Github",
+ "id": {
+ "description": "The unique identifier of the role.",
+ "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
"type": "string"
},
"type": {
- "description": "Link type.",
+ "default": "roles",
+ "description": "Roles type.",
"enum": [
- "doc",
- "repo",
- "runbook",
- "dashboard",
- "other"
+ "roles"
],
- "example": "runbook",
+ "example": "roles",
"type": "string",
"x-enum-varnames": [
- "DOC",
- "REPO",
- "RUNBOOK",
- "DASHBOARD",
- "OTHER"
+ "ROLES"
]
- },
- "url": {
- "description": "Link URL.",
- "example": "https://my-runbook",
- "type": "string"
}
},
- "required": [
- "name",
- "type",
- "url"
- ],
- "type": "object"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
},
"type": "array"
- },
- "schema-version": {
- "default": "v2.1",
- "description": "Schema version being used.",
- "enum": [
- "v2.1"
- ],
- "example": "v2.1",
- "type": "string",
- "x-enum-varnames": [
- "V2_1"
- ]
- },
- "tags": {
- "description": "A set of custom tags.",
- "example": [
- "my:tag",
- "service:tag"
- ],
- "items": {
- "type": "string"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "properties": false
+ }
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ ]
+ },
+ "readOnly": true,
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "OK"
+ },
+ "400": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Bad Request"
+ },
+ "401": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Unauthorized"
+ },
+ "403": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Forbidden"
+ },
+ "404": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Not Found"
+ },
+ "429": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Too many requests"
+ }
+ },
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
+ },
+ {
+ "AuthZ": [
+ "incident_read"
+ ]
+ }
+ ],
+ "summary": "Get details of an incident service",
+ "tags": [
+ "Incident Services"
+ ],
+ "x-menu-order": 1,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "incident_read"
+ ]
+ },
+ "x-undo": {
+ "type": "safe"
+ },
+ "x-unstable": "**Note**: This endpoint is deprecated."
+ },
+ "patch": {
+ "deprecated": true,
+ "description": "Updates an existing incident service. Only provide the attributes which should be updated as this request is a partial update.",
+ "operationId": "UpdateIncidentService",
+ "parameters": [
+ {
+ "description": "The ID of the incident service.",
+ "in": "path",
+ "name": "service_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Update request with an incident service payload.",
+ "properties": {
+ "data": {
+ "description": "Incident Service payload for update requests.",
+ "properties": {
+ "attributes": {
+ "description": "The incident service's attributes for an update request.",
+ "properties": {
+ "name": {
+ "description": "Name of the incident service.",
+ "example": "an example service name",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "description": "The incident service's ID.",
+ "example": "00000000-0000-0000-0000-000000000000",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "The incident service's relationships.",
+ "properties": {
+ "created_by": {
+ "description": "Relationship to user.",
+ "properties": {
+ "data": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "last_modified_by": {
+ "description": "Relationship to user.",
+ "properties": {
+ "data": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
+ },
+ "readOnly": true,
+ "type": "object"
+ },
+ "type": {
+ "default": "services",
+ "description": "Incident service resource type.",
+ "enum": [
+ "services"
+ ],
+ "example": "services",
+ "type": "string",
+ "x-enum-varnames": [
+ "SERVICES"
+ ]
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Incident Service Payload.",
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Response with an incident service payload.",
+ "properties": {
+ "data": {
+ "description": "Incident Service data from responses.",
+ "properties": {
+ "attributes": {
+ "description": "The incident service's attributes from a response.",
+ "properties": {
+ "created": {
+ "description": "Timestamp of when the incident service was created.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "modified": {
+ "description": "Timestamp of when the incident service was modified.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the incident service.",
+ "example": "service name",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The incident service's ID.",
+ "example": "00000000-0000-0000-0000-000000000000",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "The incident service's relationships.",
+ "properties": {
+ "created_by": {
+ "description": "Relationship to user.",
+ "properties": {
+ "data": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "last_modified_by": {
+ "description": "Relationship to user.",
+ "properties": {
+ "data": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
+ },
+ "readOnly": true,
+ "type": "object"
+ },
+ "type": {
+ "default": "services",
+ "description": "Incident service resource type.",
+ "enum": [
+ "services"
+ ],
+ "example": "services",
+ "type": "string",
+ "x-enum-varnames": [
+ "SERVICES"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ },
+ "included": {
+ "description": "Included objects from relationships.",
+ "items": {
+ "description": "An object related to an incident service which is present in the included payload.",
+ "oneOf": [
+ {
+ "description": "User object returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of user object returned by the API.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the user.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "disabled": {
+ "description": "Whether the user is disabled.",
+ "type": "boolean"
+ },
+ "email": {
+ "description": "Email of the user.",
+ "type": "string"
+ },
+ "handle": {
+ "description": "Handle of the user.",
+ "type": "string"
+ },
+ "icon": {
+ "description": "URL of the user's icon.",
+ "type": "string"
+ },
+ "mfa_enabled": {
+ "description": "If user has MFA enabled.",
+ "readOnly": true,
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time that the user was last modified.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "service_account": {
+ "description": "Whether the user is a service account.",
+ "type": "boolean"
+ },
+ "status": {
+ "description": "Status of the user.",
+ "type": "string"
+ },
+ "title": {
+ "description": "Title of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "verified": {
+ "description": "Whether the user is verified.",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the user.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships of the user object returned by the API.",
+ "properties": {
+ "org": {
+ "description": "Relationship to an organization.",
+ "properties": {
+ "data": {
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
},
- "type": "array"
- },
- "team": {
- "description": "Team that owns the service. It is used to locate a team defined in Datadog Teams if it exists.",
- "example": "my-team",
- "type": "string"
- },
- "tier": {
- "description": "Importance of the service.",
- "example": "High",
- "type": "string"
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
}
},
"required": [
- "schema-version",
- "dd-service"
+ "data"
],
"type": "object"
},
- {
- "description": "Service definition v2.2 for providing service metadata and integrations.",
+ "other_orgs": {
+ "description": "Relationship to organizations.",
"properties": {
- "application": {
- "description": "Identifier for a group of related services serving a product feature, which the service is a part of.",
- "example": "my-app",
- "type": "string"
- },
- "ci-pipeline-fingerprints": {
- "description": "A set of CI fingerprints.",
- "example": [
- "j88xdEy0J5lc",
- "eZ7LMljCk8vo"
- ],
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "contacts": {
- "description": "A list of contacts related to the services.",
+ "data": {
+ "description": "Relationships to organization objects.",
+ "example": [],
"items": {
- "description": "Service owner's contacts information.",
+ "description": "Relationship to organization object.",
"properties": {
- "contact": {
- "description": "Contact value.",
- "example": "https://teams.microsoft.com/myteam",
- "type": "string"
- },
- "name": {
- "description": "Contact Name.",
- "example": "My team channel",
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
"type": "string"
},
"type": {
- "description": "Contact type. Datadog recognizes the following types: `email`, `slack`, and `microsoft-teams`.",
- "example": "slack",
- "type": "string"
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
}
},
"required": [
- "type",
- "contact"
+ "id",
+ "type"
],
"type": "object"
},
"type": "array"
- },
- "dd-service": {
- "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
- "example": "my-service",
- "type": "string"
- },
- "description": {
- "description": "A short description of the service.",
- "example": "My service description",
- "type": "string"
- },
- "extensions": {
- "additionalProperties": {},
- "description": "Extensions to v2.2 schema.",
- "example": {
- "myorg/extension": "extensionValue"
- },
- "type": "object"
- },
- "integrations": {
- "description": "Third party integrations that Datadog supports.",
- "properties": {
- "opsgenie": {
- "description": "Opsgenie integration for the service.",
- "properties": {
- "region": {
- "description": "Opsgenie instance region.",
- "enum": [
- "US",
- "EU"
- ],
- "example": "US",
- "type": "string",
- "x-enum-varnames": [
- "US",
- "EU"
- ]
- },
- "service-url": {
- "description": "Opsgenie service url.",
- "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
- "type": "string"
- }
- },
- "required": [
- "service-url"
- ],
- "type": "object"
- },
- "pagerduty": {
- "description": "PagerDuty integration for the service.",
- "properties": {
- "service-url": {
- "description": "PagerDuty service url.",
- "example": "https://my-org.pagerduty.com/service-directory/PMyService",
- "type": "string"
- }
- },
- "type": "object",
- "x-ignore-duplicate-object": true
- }
- },
- "type": "object"
- },
- "languages": {
- "description": "The service's programming language. Datadog recognizes the following languages: `dotnet`, `go`, `java`, `js`, `php`, `python`, `ruby`, and `c++`.",
- "example": [
- "dotnet",
- "go",
- "java",
- "js",
- "php",
- "python",
- "ruby",
- "c++"
- ],
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "lifecycle": {
- "description": "The current life cycle phase of the service.",
- "example": "sandbox",
- "type": "string"
- },
- "links": {
- "description": "A list of links related to the services.",
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_users": {
+ "description": "Relationship to users.",
+ "properties": {
+ "data": {
+ "description": "Relationships to user objects.",
+ "example": [],
"items": {
- "description": "Service's external links.",
+ "description": "Relationship to user object.",
"properties": {
- "name": {
- "description": "Link name.",
- "example": "Runbook",
- "type": "string"
- },
- "provider": {
- "description": "Link provider.",
- "example": "Github",
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
"type": "string"
},
"type": {
- "description": "Link type. Datadog recognizes the following types: `runbook`, `doc`, `repo`, `dashboard`, and `other`.",
- "example": "runbook",
- "type": "string"
- },
- "url": {
- "description": "Link URL.",
- "example": "https://my-runbook",
- "type": "string"
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
}
},
"required": [
- "name",
- "type",
- "url"
+ "id",
+ "type"
],
- "type": "object"
- },
- "type": "array"
- },
- "schema-version": {
- "default": "v2.2",
- "description": "Schema version being used.",
- "enum": [
- "v2.2"
- ],
- "example": "v2.2",
- "type": "string",
- "x-enum-varnames": [
- "V2_2"
- ]
- },
- "tags": {
- "description": "A set of custom tags.",
- "example": [
- "my:tag",
- "service:tag"
- ],
- "items": {
- "type": "string"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
},
"type": "array"
- },
- "team": {
- "description": "Team that owns the service. It is used to locate a team defined in Datadog Teams if it exists.",
- "example": "my-team",
- "type": "string"
- },
- "tier": {
- "description": "Importance of the service.",
- "example": "High",
- "type": "string"
- },
- "type": {
- "description": "The type of service.",
- "enum": [
- "web",
- "db",
- "cache",
- "function",
- "browser",
- "mobile",
- "custom"
- ],
- "example": "web",
- "type": "string",
- "x-enum-varnames": [
- "WEB",
- "DB",
- "CACHE",
- "FUNCTION",
- "BROSWER",
- "MOBILE",
- "CUSTOM"
- ]
}
},
"required": [
- "schema-version",
- "dd-service"
+ "data"
],
"type": "object"
+ },
+ "roles": {
+ "description": "Relationship to roles.",
+ "properties": {
+ "data": {
+ "description": "An array containing type and the unique identifier of a role.",
+ "items": {
+ "description": "Relationship to role object.",
+ "properties": {
+ "id": {
+ "description": "The unique identifier of the role.",
+ "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "type": "string"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
+ },
+ "type": "object",
+ "x-merge-override": {
+ "properties": false
+ }
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
]
}
},
- "type": "object"
- },
- "id": {
- "description": "Service definition id.",
- "type": "string"
- },
- "type": {
- "description": "Service definition type.",
- "type": "string"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
- },
- "type": "object"
+ ]
},
+ "readOnly": true,
"type": "array"
}
},
+ "required": [
+ "data"
+ ],
"type": "object"
}
}
},
- "description": "CREATED"
+ "description": "OK"
},
"400": {
"content": {
@@ -383265,6 +406677,34 @@
},
"description": "Bad Request"
},
+ "401": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Unauthorized"
+ },
"403": {
"content": {
"application/json": {
@@ -383293,7 +406733,35 @@
},
"description": "Forbidden"
},
- "409": {
+ "404": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Not Found"
+ },
+ "429": {
"content": {
"application/json": {
"schema": {
@@ -383310,110 +406778,758 @@
"type": "string"
},
"type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Conflict"
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Too many requests"
+ }
+ },
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
+ },
+ {
+ "AuthZ": [
+ "incident_settings_write"
+ ]
+ }
+ ],
+ "summary": "Update an existing incident service",
+ "tags": [
+ "Incident Services"
+ ],
+ "x-codegen-request-body-name": "body",
+ "x-menu-order": 3,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "incident_settings_write"
+ ]
+ },
+ "x-undo": {
+ "type": "idempotent"
+ },
+ "x-unstable": "**Note**: This endpoint is deprecated."
+ }
+ },
+ "/api/v2/siem-historical-detections/jobs": {
+ "get": {
+ "description": "List historical jobs.",
+ "operationId": "ListHistoricalJobs",
+ "parameters": [
+ {
+ "description": "Size for a given page. The maximum allowed value is 100.",
+ "in": "query",
+ "name": "page[size]",
+ "required": false,
+ "schema": {
+ "default": 10,
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ {
+ "description": "Specific page number to return.",
+ "in": "query",
+ "name": "page[number]",
+ "required": false,
+ "schema": {
+ "default": 0,
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ {
+ "description": "The order of the jobs in results.",
+ "example": "status",
+ "in": "query",
+ "name": "sort",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "Query used to filter items from the fetched list.",
+ "example": "security:attack status:high",
+ "in": "query",
+ "name": "filter[query]",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "List of historical jobs.",
+ "properties": {
+ "data": {
+ "description": "Array containing the list of historical jobs.",
+ "items": {
+ "description": "Historical job response data.",
+ "properties": {
+ "attributes": {
+ "description": "Historical job attributes.",
+ "properties": {
+ "createdAt": {
+ "description": "Time when the job was created.",
+ "type": "string"
+ },
+ "createdByHandle": {
+ "description": "The handle of the user who created the job.",
+ "type": "string"
+ },
+ "createdByName": {
+ "description": "The name of the user who created the job.",
+ "type": "string"
+ },
+ "createdFromRuleId": {
+ "description": "ID of the rule used to create the job (if it is created from a rule).",
+ "type": "string"
+ },
+ "jobDefinition": {
+ "description": "Definition of a historical job.",
+ "properties": {
+ "calculatedFields": {
+ "description": "Calculated fields.",
+ "items": {
+ "description": "Calculated field.",
+ "properties": {
+ "expression": {
+ "description": "Expression.",
+ "example": "@request_end_timestamp - @request_start_timestamp",
+ "type": "string"
+ },
+ "name": {
+ "description": "Field name.",
+ "example": "response_time",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "expression"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "cases": {
+ "description": "Cases used for generating job results.",
+ "items": {
+ "description": "Case when signal is generated.",
+ "properties": {
+ "actions": {
+ "description": "Action to perform for each rule case.",
+ "items": {
+ "description": "Action to perform when a signal is triggered. Only available for Application Security rule type.",
+ "properties": {
+ "options": {
+ "description": "Options for the rule action",
+ "properties": {
+ "duration": {
+ "description": "Duration of the action in seconds. 0 indicates no expiration.",
+ "example": 0,
+ "format": "int64",
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "description": "The action type.",
+ "enum": [
+ "block_ip",
+ "block_user"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "BLOCK_IP",
+ "BLOCK_USER"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "condition": {
+ "description": "A case contains logical operations (`>`,`>=`, `&&`, `||`) to determine if a signal should be generated\nbased on the event counts in the previously defined queries.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the case.",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notification targets.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "status": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ }
+ },
+ "required": [
+ "status"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "from": {
+ "description": "Starting time of data analyzed by the job.",
+ "example": 1729843470000,
+ "format": "int64",
+ "type": "integer"
+ },
+ "groupSignalsBy": {
+ "description": "Additional grouping to perform on top of the existing groups in the query section. Must be a subset of the existing groups.",
+ "example": [
+ "service"
+ ],
+ "items": {
+ "description": "Field to group by.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "index": {
+ "description": "Index used to load the data.",
+ "example": "cloud_siem",
+ "type": "string"
+ },
+ "message": {
+ "description": "Message for generated results.",
+ "example": "A large number of failed login attempts.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Job name.",
+ "example": "Excessive number of failed attempts.",
+ "type": "string"
+ },
+ "options": {
+ "description": "Job options.",
+ "properties": {
+ "detectionMethod": {
+ "description": "The detection method.",
+ "enum": [
+ "threshold",
+ "new_value",
+ "anomaly_detection",
+ "impossible_travel",
+ "hardcoded",
+ "third_party",
+ "anomaly_threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "THRESHOLD",
+ "NEW_VALUE",
+ "ANOMALY_DETECTION",
+ "IMPOSSIBLE_TRAVEL",
+ "HARDCODED",
+ "THIRD_PARTY",
+ "ANOMALY_THRESHOLD"
+ ]
+ },
+ "evaluationWindow": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS"
+ ]
+ },
+ "impossibleTravelOptions": {
+ "description": "Options on impossible travel detection method.",
+ "properties": {
+ "baselineUserLocations": {
+ "description": "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.",
+ "example": true,
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "keepAlive": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS"
+ ]
+ },
+ "maxSignalDuration": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600,
+ 43200,
+ 86400
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS",
+ "TWELVE_HOURS",
+ "ONE_DAY"
+ ]
+ },
+ "newValueOptions": {
+ "description": "Options on new value detection method.",
+ "properties": {
+ "forgetAfter": {
+ "description": "The duration in days after which a learned value is forgotten.",
+ "enum": [
+ 1,
+ 2,
+ 7,
+ 14,
+ 21,
+ 28
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ONE_DAY",
+ "TWO_DAYS",
+ "ONE_WEEK",
+ "TWO_WEEKS",
+ "THREE_WEEKS",
+ "FOUR_WEEKS"
+ ]
+ },
+ "learningDuration": {
+ "default": 0,
+ "description": "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.",
+ "enum": [
+ 0,
+ 1,
+ 7
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_DAYS",
+ "ONE_DAY",
+ "SEVEN_DAYS"
+ ]
+ },
+ "learningMethod": {
+ "default": "duration",
+ "description": "The learning method used to determine when signals should be generated for values that weren't learned.",
+ "enum": [
+ "duration",
+ "threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "DURATION",
+ "THRESHOLD"
+ ]
+ },
+ "learningThreshold": {
+ "default": 0,
+ "description": "A number of occurrences after which signals will be generated for values that weren't learned.",
+ "enum": [
+ 0,
+ 1
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_OCCURRENCES",
+ "ONE_OCCURRENCE"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "thirdPartyRuleOptions": {
+ "description": "Options on third party detection method.",
+ "properties": {
+ "defaultNotifications": {
+ "description": "Notification targets for the logs that do not correspond to any of the cases.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "defaultStatus": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ },
+ "rootQueries": {
+ "description": "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.",
+ "items": {
+ "description": "A query to be combined with the third party case query.",
+ "properties": {
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "query": {
+ "description": "Query to run on logs.",
+ "example": "source:cloudtrail",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "signalTitleTemplate": {
+ "description": "A template for the signal title; if omitted, the title is generated based on the case name.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "queries": {
+ "description": "Queries for selecting logs analyzed by the job.",
+ "items": {
+ "description": "Query for selecting logs analyzed by the historical job.",
+ "properties": {
+ "aggregation": {
+ "description": "The aggregation type.",
+ "enum": [
+ "count",
+ "cardinality",
+ "sum",
+ "max",
+ "new_value",
+ "geo_data",
+ "event_count",
+ "none"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "COUNT",
+ "CARDINALITY",
+ "SUM",
+ "MAX",
+ "NEW_VALUE",
+ "GEO_DATA",
+ "EVENT_COUNT",
+ "NONE"
+ ]
+ },
+ "distinctFields": {
+ "description": "Field for which the cardinality is measured. Sent as an array.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "hasOptionalGroupByFields": {
+ "description": "When false, events without a group-by value are ignored by the query. When true, events with missing group-by fields are processed with `N/A`, replacing the missing values.",
+ "example": false,
+ "readOnly": true,
+ "type": "boolean"
+ },
+ "metrics": {
+ "description": "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.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the query.",
+ "type": "string"
+ },
+ "query": {
+ "description": "Query to run on logs.",
+ "example": "a > 3",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "referenceTables": {
+ "description": "Reference tables used in the queries.",
+ "items": {
+ "description": "Reference tables used in the queries.",
+ "properties": {
+ "checkPresence": {
+ "description": "Whether to include or exclude the matched values.",
+ "type": "boolean"
+ },
+ "columnName": {
+ "description": "The name of the column in the reference table.",
+ "type": "string"
+ },
+ "logFieldPath": {
+ "description": "The field in the log to match against the reference table.",
+ "type": "string"
+ },
+ "ruleQueryName": {
+ "description": "The name of the query to apply the reference table to.",
+ "type": "string"
+ },
+ "tableName": {
+ "description": "The name of the reference table.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "tags": {
+ "description": "Tags for generated signals.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "thirdPartyCases": {
+ "description": "Cases for generating results from third-party detection method. Only available for third-party detection method.",
+ "example": [],
+ "items": {
+ "description": "Case when a signal is generated by a third party rule.",
+ "properties": {
+ "name": {
+ "description": "Name of the case.",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notification targets for each case.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "query": {
+ "description": "A query to map a third party event to this case.",
+ "type": "string"
+ },
+ "status": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ }
+ },
+ "required": [
+ "status"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "to": {
+ "description": "Ending time of data analyzed by the job.",
+ "example": 1729847070000,
+ "format": "int64",
+ "type": "integer"
+ },
+ "type": {
+ "description": "Job type.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "from",
+ "to",
+ "index",
+ "name",
+ "cases",
+ "queries",
+ "message"
+ ],
+ "type": "object"
+ },
+ "jobName": {
+ "description": "Job name.",
+ "type": "string"
+ },
+ "jobStatus": {
+ "description": "Job status.",
+ "type": "string"
+ },
+ "modifiedAt": {
+ "description": "Last modification time of the job.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the job.",
+ "type": "string"
+ },
+ "type": {
+ "description": "Type of payload.",
+ "enum": [
+ "historicalDetectionsJob"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "HISTORICALDETECTIONSJOB"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "meta": {
+ "description": "Metadata about the list of jobs.",
+ "properties": {
+ "totalCount": {
+ "description": "Number of jobs in the list.",
+ "format": "int32",
+ "maximum": 2147483647,
+ "type": "integer"
+ }
},
- "type": "array"
+ "type": "object"
}
},
- "required": [
- "errors"
- ],
"type": "object"
}
}
},
- "description": "Too many requests"
- }
- },
- "security": [
- {
- "apiKeyAuth": [],
- "appKeyAuth": []
- },
- {
- "AuthZ": [
- "apm_service_catalog_write"
- ]
- }
- ],
- "summary": "Create or update service definition",
- "tags": [
- "Service Definition"
- ],
- "x-codegen-request-body-name": "body",
- "x-given": {
- "service_definition": {
- "parameters": [
- {
- "name": "body",
- "value": "{\n \"dd-service\": \"service-{{ unique_lower_alnum }}\",\n \"dd-team\": \"my-team\",\n \"docs\": [{\"name\": \"Architecture\",\n \"provider\": \"google drive\",\n \"url\": \"https://gdrive/mygivedoc\"}],\n \"extensions\": {\"frogextension\": \"extensionfrogvalue\"},\n \"integrations\": {\"opsgenie\": {\"region\": \"US\",\n \"service-url\": \"https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000\"},\n \"pagerduty\": \"https://my-org.pagerduty.com/service-directory/PMyService\"},\n \"links\": [{\"name\": \"Runbook\", \"type\": \"runbook\", \"url\": \"https://my-runbook\"}],\n \"repos\": [{\"name\": \"Source Code\",\n \"provider\": \"GitHub\",\n \"url\": \"https://github.com/DataDog/given\"}],\n \"schema-version\": \"v2\",\n \"tags\": [\"this:tag\", \"service:tag\"],\n \"team\": \"super-team\"\n}"
- }
- ],
- "step": "there is a valid \"service_definition\" in the system"
- }
- },
- "x-menu-order": 2,
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "apm_service_catalog_write"
- ]
- },
- "x-undo": {
- "operationId": "DeleteServiceDefinition",
- "parameters": [
- {
- "name": "service_name",
- "source": "data[0].attributes.schema.dd-service"
- }
- ],
- "type": "unsafe"
- }
- }
- },
- "/api/v2/services/definitions/{service_name}": {
- "delete": {
- "description": "Delete a single service definition in the Datadog Service Catalog.",
- "operationId": "DeleteServiceDefinition",
- "parameters": [
- {
- "description": "The name of the service.",
- "in": "path",
- "name": "service_name",
- "required": true,
- "schema": {
- "example": "my-service",
- "type": "string"
- }
- }
- ],
- "responses": {
- "204": {
"description": "OK"
},
"400": {
@@ -383470,35 +407586,7 @@
}
}
},
- "description": "Forbidden"
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Not Found"
+ "description": "Not Authorized"
},
"429": {
"content": {
@@ -383535,1122 +407623,1002 @@
"appKeyAuth": []
},
{
- "AuthZ": [
- "apm_service_catalog_write"
- ]
+ "AuthZ": []
}
],
- "summary": "Delete a single service definition",
+ "summary": "List historical jobs",
"tags": [
- "Service Definition"
+ "Security Monitoring"
],
- "x-menu-order": 4,
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "apm_service_catalog_write"
- ]
- },
+ "x-menu-order": 20,
"x-undo": {
- "type": "idempotent"
- }
+ "type": "safe"
+ },
+ "x-unstable": "**Note**: This endpoint is in beta and may be subject to changes.\nPlease check the documentation regularly for updates."
},
- "get": {
- "description": "Get a single service definition from the Datadog Service Catalog.",
- "operationId": "GetServiceDefinition",
- "parameters": [
- {
- "description": "The name of the service.",
- "in": "path",
- "name": "service_name",
- "required": true,
- "schema": {
- "example": "my-service",
- "type": "string"
- }
- },
- {
- "description": "The schema version desired in the response.",
- "in": "query",
- "name": "schema_version",
- "required": false,
- "schema": {
- "description": "Schema versions",
- "enum": [
- "v1",
- "v2",
- "v2.1",
- "v2.2"
- ],
- "type": "string",
- "x-enum-varnames": [
- "V1",
- "V2",
- "V2_1",
- "V2_2"
- ]
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Get service definition response.",
- "properties": {
- "data": {
- "description": "Service definition data.",
- "properties": {
- "attributes": {
- "description": "Service definition attributes.",
- "properties": {
- "meta": {
- "description": "Metadata about a service definition.",
- "properties": {
- "github-html-url": {
- "description": "GitHub HTML URL.",
- "type": "string"
- },
- "ingested-schema-version": {
- "description": "Ingestion schema version.",
- "type": "string"
- },
- "ingestion-source": {
- "description": "Ingestion source of the service definition.",
- "type": "string"
- },
- "last-modified-time": {
- "description": "Last modified time of the service definition.",
- "type": "string"
- },
- "origin": {
- "description": "User defined origin of the service definition.",
- "type": "string"
- },
- "origin-detail": {
- "description": "User defined origin's detail of the service definition.",
+ "post": {
+ "description": "Run a historical job.",
+ "operationId": "RunHistoricalJob",
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Run a historical job request.",
+ "properties": {
+ "data": {
+ "description": "Data for running a historical job request.",
+ "properties": {
+ "attributes": {
+ "description": "Run a historical job request.",
+ "properties": {
+ "fromRule": {
+ "description": "Definition of a historical job based on a security monitoring rule.",
+ "properties": {
+ "caseIndex": {
+ "description": "Index of the rule case applied by the job.",
+ "example": 0,
+ "format": "int32",
+ "maximum": 9,
+ "type": "integer"
+ },
+ "from": {
+ "description": "Starting time of data analyzed by the job.",
+ "example": 1729843470000,
+ "format": "int64",
+ "type": "integer"
+ },
+ "id": {
+ "description": "ID of the detection rule used to create the job.",
+ "example": "abc-def-ghi",
+ "type": "string"
+ },
+ "index": {
+ "description": "Index used to load the data.",
+ "example": "cloud_siem",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notifications sent when the job is completed.",
+ "example": [
+ "@sns-cloudtrail-results"
+ ],
+ "items": {
"type": "string"
},
- "warnings": {
- "description": "A list of schema validation warnings.",
- "items": {
- "description": "Schema validation warnings.",
- "properties": {
- "instance-location": {
- "description": "The warning instance location.",
- "type": "string"
- },
- "keyword-location": {
- "description": "The warning keyword location.",
- "type": "string"
- },
- "message": {
- "description": "The warning message.",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
- }
+ "type": "array"
},
- "type": "object"
- },
- "schema": {
- "description": "Service definition schema.",
- "oneOf": [
- {
- "deprecated": true,
- "description": "Deprecated - Service definition V1 for providing additional service metadata and integrations.",
- "properties": {
- "contact": {
- "description": "Contact information about the service.",
- "properties": {
- "email": {
- "description": "Service owner’s email.",
- "example": "contact@datadoghq.com",
- "type": "string"
- },
- "slack": {
- "description": "Service owner’s Slack channel.",
- "example": "https://yourcompany.slack.com/archives/channel123",
- "type": "string"
- }
- },
- "type": "object"
- },
- "extensions": {
- "additionalProperties": {},
- "description": "Extensions to V1 schema.",
- "example": {
- "myorg/extension": "extensionValue"
- },
- "type": "object"
- },
- "external-resources": {
- "description": "A list of external links related to the services.",
- "items": {
- "description": "Service's external links.",
- "properties": {
- "name": {
- "description": "Link name.",
- "example": "Runbook",
- "type": "string"
- },
- "type": {
- "description": "Link type.",
- "enum": [
- "doc",
- "wiki",
- "runbook",
- "url",
- "repo",
- "dashboard",
- "oncall",
- "code",
- "link"
- ],
- "example": "runbook",
- "type": "string",
- "x-enum-varnames": [
- "DOC",
- "WIKI",
- "RUNBOOK",
- "URL",
- "REPO",
- "DASHBOARD",
- "ONCALL",
- "CODE",
- "LINK"
- ]
- },
- "url": {
- "description": "Link URL.",
- "example": "https://my-runbook",
- "type": "string"
- }
- },
- "required": [
- "name",
- "type",
- "url"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "info": {
- "description": "Basic information about a service.",
- "properties": {
- "dd-service": {
- "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
- "example": "myservice",
- "type": "string"
- },
- "description": {
- "description": "A short description of the service.",
- "example": "A shopping cart service",
- "type": "string"
- },
- "display-name": {
- "description": "A friendly name of the service.",
- "example": "My Service",
- "type": "string"
- },
- "service-tier": {
- "description": "Service tier.",
- "example": "Tier 1",
- "type": "string"
- }
- },
- "required": [
- "dd-service"
- ],
- "type": "object"
- },
- "integrations": {
- "description": "Third party integrations that Datadog supports.",
- "properties": {
- "pagerduty": {
- "description": "PagerDuty service URL for the service.",
- "example": "https://my-org.pagerduty.com/service-directory/PMyService",
- "type": "string"
- }
- },
- "type": "object"
- },
- "org": {
- "description": "Org related information about the service.",
- "properties": {
- "application": {
- "description": "App feature this service supports.",
- "example": "E-Commerce",
- "type": "string"
- },
- "team": {
- "description": "Team that owns the service.",
- "example": "my-team",
- "type": "string"
- }
- },
- "type": "object"
- },
- "schema-version": {
- "default": "v1",
- "description": "Schema version being used.",
- "enum": [
- "v1"
- ],
- "example": "v1",
- "type": "string",
- "x-enum-varnames": [
- "V1"
- ]
- },
- "tags": {
- "description": "A set of custom tags.",
- "example": [
- "my:tag",
- "service:tag"
- ],
- "items": {
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "schema-version",
- "info"
- ],
- "type": "object"
- },
- {
- "description": "Service definition V2 for providing service metadata and integrations.",
- "properties": {
- "contacts": {
- "description": "A list of contacts related to the services.",
- "items": {
- "description": "Service owner's contacts information.",
- "oneOf": [
- {
- "description": "Service owner's email.",
- "properties": {
- "contact": {
- "description": "Contact value.",
- "example": "contact@datadoghq.com",
- "type": "string"
- },
- "name": {
- "description": "Contact email.",
- "example": "Team Email",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "email"
- ],
- "example": "email",
- "type": "string",
- "x-enum-varnames": [
- "EMAIL"
- ]
- }
- },
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- },
- {
- "description": "Service owner's Slack channel.",
- "properties": {
- "contact": {
- "description": "Slack Channel.",
- "example": "https://yourcompany.slack.com/archives/channel123",
- "type": "string"
- },
- "name": {
- "description": "Contact Slack.",
- "example": "Team Slack",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "slack"
- ],
- "example": "slack",
- "type": "string",
- "x-enum-varnames": [
- "SLACK"
- ]
- }
- },
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- },
- {
- "description": "Service owner's Microsoft Teams.",
- "properties": {
- "contact": {
- "description": "Contact value.",
- "example": "https://teams.microsoft.com/myteam",
- "type": "string"
- },
- "name": {
- "description": "Contact Microsoft Teams.",
- "example": "My team channel",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "microsoft-teams"
- ],
- "example": "microsoft-teams",
- "type": "string",
- "x-enum-varnames": [
- "MICROSOFT_TEAMS"
- ]
- }
- },
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- }
- ]
- },
- "type": "array"
- },
- "dd-service": {
- "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
- "example": "my-service",
- "type": "string"
- },
- "dd-team": {
- "description": "Experimental feature. A Team handle that matches a Team in the Datadog Teams product.",
- "example": "my-team",
- "type": "string"
- },
- "docs": {
- "description": "A list of documentation related to the services.",
- "items": {
- "description": "Service documents.",
- "properties": {
- "name": {
- "description": "Document name.",
- "example": "Architecture",
- "type": "string"
- },
- "provider": {
- "description": "Document provider.",
- "example": "google drive",
- "type": "string"
- },
- "url": {
- "description": "Document URL.",
- "example": "https://gdrive/mydoc",
- "type": "string"
- }
- },
- "required": [
- "name",
- "url"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "extensions": {
- "additionalProperties": {},
- "description": "Extensions to V2 schema.",
- "example": {
- "myorg/extension": "extensionValue"
- },
- "type": "object"
- },
- "integrations": {
- "description": "Third party integrations that Datadog supports.",
- "properties": {
- "opsgenie": {
- "description": "Opsgenie integration for the service.",
- "properties": {
- "region": {
- "description": "Opsgenie instance region.",
- "enum": [
- "US",
- "EU"
- ],
- "example": "US",
- "type": "string",
- "x-enum-varnames": [
- "US",
- "EU"
- ]
- },
- "service-url": {
- "description": "Opsgenie service url.",
- "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
- "type": "string"
- }
- },
- "required": [
- "service-url"
- ],
- "type": "object"
- },
- "pagerduty": {
- "description": "PagerDuty service URL for the service.",
- "example": "https://my-org.pagerduty.com/service-directory/PMyService",
- "type": "string"
- }
- },
- "type": "object"
- },
- "links": {
- "description": "A list of links related to the services.",
- "items": {
- "description": "Service's external links.",
- "properties": {
- "name": {
- "description": "Link name.",
- "example": "Runbook",
- "type": "string"
- },
- "type": {
- "description": "Link type.",
- "enum": [
- "doc",
- "wiki",
- "runbook",
- "url",
- "repo",
- "dashboard",
- "oncall",
- "code",
- "link"
- ],
- "example": "runbook",
- "type": "string",
- "x-enum-varnames": [
- "DOC",
- "WIKI",
- "RUNBOOK",
- "URL",
- "REPO",
- "DASHBOARD",
- "ONCALL",
- "CODE",
- "LINK"
- ]
- },
- "url": {
- "description": "Link URL.",
- "example": "https://my-runbook",
- "type": "string"
- }
- },
- "required": [
- "name",
- "type",
- "url"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "repos": {
- "description": "A list of code repositories related to the services.",
- "items": {
- "description": "Service code repositories.",
- "properties": {
- "name": {
- "description": "Repository name.",
- "example": "Source Code",
- "type": "string"
- },
- "provider": {
- "description": "Repository provider.",
- "example": "GitHub",
- "type": "string"
- },
- "url": {
- "description": "Repository URL.",
- "example": "https://github.com/DataDog/schema",
- "type": "string"
- }
- },
- "required": [
- "name",
- "url"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "schema-version": {
- "default": "v2",
- "description": "Schema version being used.",
- "enum": [
- "v2"
- ],
- "example": "v2",
- "type": "string",
- "x-enum-varnames": [
- "V2"
- ]
- },
- "tags": {
- "description": "A set of custom tags.",
- "example": [
- "my:tag",
- "service:tag"
- ],
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "team": {
- "description": "Team that owns the service.",
- "example": "my-team",
- "type": "string"
- }
- },
- "required": [
- "schema-version",
- "dd-service"
- ],
- "type": "object"
- },
- {
- "description": "Service definition v2.1 for providing service metadata and integrations.",
- "properties": {
- "application": {
- "description": "Identifier for a group of related services serving a product feature, which the service is a part of.",
- "example": "my-app",
- "type": "string"
- },
- "contacts": {
- "description": "A list of contacts related to the services.",
- "items": {
- "description": "Service owner's contacts information.",
- "oneOf": [
- {
- "description": "Service owner's email.",
- "properties": {
- "contact": {
- "description": "Contact value.",
- "example": "contact@datadoghq.com",
- "type": "string"
- },
- "name": {
- "description": "Contact email.",
- "example": "Team Email",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "email"
- ],
- "example": "email",
- "type": "string",
- "x-enum-varnames": [
- "EMAIL"
- ]
- }
- },
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- },
- {
- "description": "Service owner's Slack channel.",
- "properties": {
- "contact": {
- "description": "Slack Channel.",
- "example": "https://yourcompany.slack.com/archives/channel123",
- "type": "string"
- },
- "name": {
- "description": "Contact Slack.",
- "example": "Team Slack",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "slack"
- ],
- "example": "slack",
- "type": "string",
- "x-enum-varnames": [
- "SLACK"
- ]
- }
- },
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- },
- {
- "description": "Service owner's Microsoft Teams.",
- "properties": {
- "contact": {
- "description": "Contact value.",
- "example": "https://teams.microsoft.com/myteam",
- "type": "string"
- },
- "name": {
- "description": "Contact Microsoft Teams.",
- "example": "My team channel",
- "type": "string"
- },
- "type": {
- "description": "Contact type.",
- "enum": [
- "microsoft-teams"
- ],
- "example": "microsoft-teams",
- "type": "string",
- "x-enum-varnames": [
- "MICROSOFT_TEAMS"
- ]
- }
- },
- "required": [
- "type",
- "contact"
- ],
- "type": "object"
- }
- ]
- },
- "type": "array"
- },
- "dd-service": {
- "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
- "example": "my-service",
- "type": "string"
- },
- "description": {
- "description": "A short description of the service.",
- "example": "My service description",
- "type": "string"
- },
- "extensions": {
- "additionalProperties": {},
- "description": "Extensions to v2.1 schema.",
- "example": {
- "myorg/extension": "extensionValue"
- },
- "type": "object"
- },
- "integrations": {
- "description": "Third party integrations that Datadog supports.",
- "properties": {
- "opsgenie": {
- "description": "Opsgenie integration for the service.",
- "properties": {
- "region": {
- "description": "Opsgenie instance region.",
- "enum": [
- "US",
- "EU"
- ],
- "example": "US",
- "type": "string",
- "x-enum-varnames": [
- "US",
- "EU"
- ]
- },
- "service-url": {
- "description": "Opsgenie service url.",
- "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
- "type": "string"
- }
- },
- "required": [
- "service-url"
- ],
- "type": "object"
- },
- "pagerduty": {
- "description": "PagerDuty integration for the service.",
- "properties": {
- "service-url": {
- "description": "PagerDuty service url.",
- "example": "https://my-org.pagerduty.com/service-directory/PMyService",
- "type": "string"
- }
- },
- "type": "object",
- "x-ignore-duplicate-object": true
- }
- },
- "type": "object"
- },
- "lifecycle": {
- "description": "The current life cycle phase of the service.",
- "example": "sandbox",
+ "to": {
+ "description": "Ending time of data analyzed by the job.",
+ "example": 1729847070000,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ "required": [
+ "id",
+ "from",
+ "to",
+ "index",
+ "caseIndex"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "description": "Request ID.",
+ "type": "string"
+ },
+ "jobDefinition": {
+ "description": "Definition of a historical job.",
+ "properties": {
+ "calculatedFields": {
+ "description": "Calculated fields.",
+ "items": {
+ "description": "Calculated field.",
+ "properties": {
+ "expression": {
+ "description": "Expression.",
+ "example": "@request_end_timestamp - @request_start_timestamp",
"type": "string"
},
- "links": {
- "description": "A list of links related to the services.",
+ "name": {
+ "description": "Field name.",
+ "example": "response_time",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "expression"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "cases": {
+ "description": "Cases used for generating job results.",
+ "items": {
+ "description": "Case when signal is generated.",
+ "properties": {
+ "actions": {
+ "description": "Action to perform for each rule case.",
"items": {
- "description": "Service's external links.",
+ "description": "Action to perform when a signal is triggered. Only available for Application Security rule type.",
"properties": {
- "name": {
- "description": "Link name.",
- "example": "Runbook",
- "type": "string"
- },
- "provider": {
- "description": "Link provider.",
- "example": "Github",
- "type": "string"
+ "options": {
+ "description": "Options for the rule action",
+ "properties": {
+ "duration": {
+ "description": "Duration of the action in seconds. 0 indicates no expiration.",
+ "example": 0,
+ "format": "int64",
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "type": "object"
},
"type": {
- "description": "Link type.",
+ "description": "The action type.",
"enum": [
- "doc",
- "repo",
- "runbook",
- "dashboard",
- "other"
+ "block_ip",
+ "block_user"
],
- "example": "runbook",
"type": "string",
"x-enum-varnames": [
- "DOC",
- "REPO",
- "RUNBOOK",
- "DASHBOARD",
- "OTHER"
+ "BLOCK_IP",
+ "BLOCK_USER"
]
- },
- "url": {
- "description": "Link URL.",
- "example": "https://my-runbook",
- "type": "string"
}
},
- "required": [
- "name",
- "type",
- "url"
- ],
"type": "object"
},
"type": "array"
},
- "schema-version": {
- "default": "v2.1",
- "description": "Schema version being used.",
- "enum": [
- "v2.1"
- ],
- "example": "v2.1",
- "type": "string",
- "x-enum-varnames": [
- "V2_1"
- ]
+ "condition": {
+ "description": "A case contains logical operations (`>`,`>=`, `&&`, `||`) to determine if a signal should be generated\nbased on the event counts in the previously defined queries.",
+ "type": "string"
},
- "tags": {
- "description": "A set of custom tags.",
- "example": [
- "my:tag",
- "service:tag"
- ],
+ "name": {
+ "description": "Name of the case.",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notification targets.",
"items": {
+ "description": "Notification.",
"type": "string"
},
"type": "array"
},
- "team": {
- "description": "Team that owns the service. It is used to locate a team defined in Datadog Teams if it exists.",
- "example": "my-team",
- "type": "string"
- },
- "tier": {
- "description": "Importance of the service.",
- "example": "High",
- "type": "string"
+ "status": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
}
},
"required": [
- "schema-version",
- "dd-service"
+ "status"
],
"type": "object"
},
- {
- "description": "Service definition v2.2 for providing service metadata and integrations.",
- "properties": {
- "application": {
- "description": "Identifier for a group of related services serving a product feature, which the service is a part of.",
- "example": "my-app",
- "type": "string"
+ "type": "array"
+ },
+ "from": {
+ "description": "Starting time of data analyzed by the job.",
+ "example": 1729843470000,
+ "format": "int64",
+ "type": "integer"
+ },
+ "groupSignalsBy": {
+ "description": "Additional grouping to perform on top of the existing groups in the query section. Must be a subset of the existing groups.",
+ "example": [
+ "service"
+ ],
+ "items": {
+ "description": "Field to group by.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "index": {
+ "description": "Index used to load the data.",
+ "example": "cloud_siem",
+ "type": "string"
+ },
+ "message": {
+ "description": "Message for generated results.",
+ "example": "A large number of failed login attempts.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Job name.",
+ "example": "Excessive number of failed attempts.",
+ "type": "string"
+ },
+ "options": {
+ "description": "Job options.",
+ "properties": {
+ "detectionMethod": {
+ "description": "The detection method.",
+ "enum": [
+ "threshold",
+ "new_value",
+ "anomaly_detection",
+ "impossible_travel",
+ "hardcoded",
+ "third_party",
+ "anomaly_threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "THRESHOLD",
+ "NEW_VALUE",
+ "ANOMALY_DETECTION",
+ "IMPOSSIBLE_TRAVEL",
+ "HARDCODED",
+ "THIRD_PARTY",
+ "ANOMALY_THRESHOLD"
+ ]
+ },
+ "evaluationWindow": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS"
+ ]
+ },
+ "impossibleTravelOptions": {
+ "description": "Options on impossible travel detection method.",
+ "properties": {
+ "baselineUserLocations": {
+ "description": "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.",
+ "example": true,
+ "type": "boolean"
+ }
},
- "ci-pipeline-fingerprints": {
- "description": "A set of CI fingerprints.",
- "example": [
- "j88xdEy0J5lc",
- "eZ7LMljCk8vo"
- ],
- "items": {
- "type": "string"
+ "type": "object"
+ },
+ "keepAlive": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS"
+ ]
+ },
+ "maxSignalDuration": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600,
+ 43200,
+ 86400
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS",
+ "TWELVE_HOURS",
+ "ONE_DAY"
+ ]
+ },
+ "newValueOptions": {
+ "description": "Options on new value detection method.",
+ "properties": {
+ "forgetAfter": {
+ "description": "The duration in days after which a learned value is forgotten.",
+ "enum": [
+ 1,
+ 2,
+ 7,
+ 14,
+ 21,
+ 28
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ONE_DAY",
+ "TWO_DAYS",
+ "ONE_WEEK",
+ "TWO_WEEKS",
+ "THREE_WEEKS",
+ "FOUR_WEEKS"
+ ]
},
- "type": "array"
- },
- "contacts": {
- "description": "A list of contacts related to the services.",
- "items": {
- "description": "Service owner's contacts information.",
- "properties": {
- "contact": {
- "description": "Contact value.",
- "example": "https://teams.microsoft.com/myteam",
- "type": "string"
- },
- "name": {
- "description": "Contact Name.",
- "example": "My team channel",
- "type": "string"
- },
- "type": {
- "description": "Contact type. Datadog recognizes the following types: `email`, `slack`, and `microsoft-teams`.",
- "example": "slack",
- "type": "string"
- }
- },
- "required": [
- "type",
- "contact"
+ "learningDuration": {
+ "default": 0,
+ "description": "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.",
+ "enum": [
+ 0,
+ 1,
+ 7
],
- "type": "object"
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_DAYS",
+ "ONE_DAY",
+ "SEVEN_DAYS"
+ ]
},
- "type": "array"
- },
- "dd-service": {
- "description": "Unique identifier of the service. Must be unique across all services and is used to match with a service in Datadog.",
- "example": "my-service",
- "type": "string"
- },
- "description": {
- "description": "A short description of the service.",
- "example": "My service description",
- "type": "string"
- },
- "extensions": {
- "additionalProperties": {},
- "description": "Extensions to v2.2 schema.",
- "example": {
- "myorg/extension": "extensionValue"
+ "learningMethod": {
+ "default": "duration",
+ "description": "The learning method used to determine when signals should be generated for values that weren't learned.",
+ "enum": [
+ "duration",
+ "threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "DURATION",
+ "THRESHOLD"
+ ]
},
- "type": "object"
+ "learningThreshold": {
+ "default": 0,
+ "description": "A number of occurrences after which signals will be generated for values that weren't learned.",
+ "enum": [
+ 0,
+ 1
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_OCCURRENCES",
+ "ONE_OCCURRENCE"
+ ]
+ }
},
- "integrations": {
- "description": "Third party integrations that Datadog supports.",
- "properties": {
- "opsgenie": {
- "description": "Opsgenie integration for the service.",
+ "type": "object"
+ },
+ "thirdPartyRuleOptions": {
+ "description": "Options on third party detection method.",
+ "properties": {
+ "defaultNotifications": {
+ "description": "Notification targets for the logs that do not correspond to any of the cases.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "defaultStatus": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ },
+ "rootQueries": {
+ "description": "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.",
+ "items": {
+ "description": "A query to be combined with the third party case query.",
"properties": {
- "region": {
- "description": "Opsgenie instance region.",
- "enum": [
- "US",
- "EU"
- ],
- "example": "US",
- "type": "string",
- "x-enum-varnames": [
- "US",
- "EU"
- ]
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
},
- "service-url": {
- "description": "Opsgenie service url.",
- "example": "https://my-org.opsgenie.com/service/123e4567-e89b-12d3-a456-426614174000",
+ "query": {
+ "description": "Query to run on logs.",
+ "example": "source:cloudtrail",
"type": "string"
}
},
- "required": [
- "service-url"
- ],
"type": "object"
},
- "pagerduty": {
- "description": "PagerDuty integration for the service.",
- "properties": {
- "service-url": {
- "description": "PagerDuty service url.",
- "example": "https://my-org.pagerduty.com/service-directory/PMyService",
- "type": "string"
- }
- },
- "type": "object",
- "x-ignore-duplicate-object": true
- }
+ "type": "array"
},
- "type": "object"
+ "signalTitleTemplate": {
+ "description": "A template for the signal title; if omitted, the title is generated based on the case name.",
+ "type": "string"
+ }
},
- "languages": {
- "description": "The service's programming language. Datadog recognizes the following languages: `dotnet`, `go`, `java`, `js`, `php`, `python`, `ruby`, and `c++`.",
- "example": [
- "dotnet",
- "go",
- "java",
- "js",
- "php",
- "python",
- "ruby",
- "c++"
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "queries": {
+ "description": "Queries for selecting logs analyzed by the job.",
+ "items": {
+ "description": "Query for selecting logs analyzed by the historical job.",
+ "properties": {
+ "aggregation": {
+ "description": "The aggregation type.",
+ "enum": [
+ "count",
+ "cardinality",
+ "sum",
+ "max",
+ "new_value",
+ "geo_data",
+ "event_count",
+ "none"
],
+ "type": "string",
+ "x-enum-varnames": [
+ "COUNT",
+ "CARDINALITY",
+ "SUM",
+ "MAX",
+ "NEW_VALUE",
+ "GEO_DATA",
+ "EVENT_COUNT",
+ "NONE"
+ ]
+ },
+ "distinctFields": {
+ "description": "Field for which the cardinality is measured. Sent as an array.",
"items": {
+ "description": "Field.",
"type": "string"
},
"type": "array"
},
- "lifecycle": {
- "description": "The current life cycle phase of the service.",
- "example": "sandbox",
- "type": "string"
- },
- "links": {
- "description": "A list of links related to the services.",
+ "groupByFields": {
+ "description": "Fields to group by.",
"items": {
- "description": "Service's external links.",
- "properties": {
- "name": {
- "description": "Link name.",
- "example": "Runbook",
- "type": "string"
- },
- "provider": {
- "description": "Link provider.",
- "example": "Github",
- "type": "string"
- },
- "type": {
- "description": "Link type. Datadog recognizes the following types: `runbook`, `doc`, `repo`, `dashboard`, and `other`.",
- "example": "runbook",
- "type": "string"
- },
- "url": {
- "description": "Link URL.",
- "example": "https://my-runbook",
- "type": "string"
- }
- },
- "required": [
- "name",
- "type",
- "url"
- ],
- "type": "object"
+ "description": "Field.",
+ "type": "string"
},
"type": "array"
},
- "schema-version": {
- "default": "v2.2",
- "description": "Schema version being used.",
- "enum": [
- "v2.2"
- ],
- "example": "v2.2",
- "type": "string",
- "x-enum-varnames": [
- "V2_2"
- ]
+ "hasOptionalGroupByFields": {
+ "description": "When false, events without a group-by value are ignored by the query. When true, events with missing group-by fields are processed with `N/A`, replacing the missing values.",
+ "example": false,
+ "readOnly": true,
+ "type": "boolean"
},
- "tags": {
- "description": "A set of custom tags.",
- "example": [
- "my:tag",
- "service:tag"
- ],
+ "metrics": {
+ "description": "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.",
"items": {
+ "description": "Field.",
"type": "string"
},
"type": "array"
},
- "team": {
- "description": "Team that owns the service. It is used to locate a team defined in Datadog Teams if it exists.",
- "example": "my-team",
+ "name": {
+ "description": "Name of the query.",
"type": "string"
},
- "tier": {
- "description": "Importance of the service.",
- "example": "High",
+ "query": {
+ "description": "Query to run on logs.",
+ "example": "a > 3",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "referenceTables": {
+ "description": "Reference tables used in the queries.",
+ "items": {
+ "description": "Reference tables used in the queries.",
+ "properties": {
+ "checkPresence": {
+ "description": "Whether to include or exclude the matched values.",
+ "type": "boolean"
+ },
+ "columnName": {
+ "description": "The name of the column in the reference table.",
"type": "string"
},
- "type": {
- "description": "The type of service.",
+ "logFieldPath": {
+ "description": "The field in the log to match against the reference table.",
+ "type": "string"
+ },
+ "ruleQueryName": {
+ "description": "The name of the query to apply the reference table to.",
+ "type": "string"
+ },
+ "tableName": {
+ "description": "The name of the reference table.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "tags": {
+ "description": "Tags for generated signals.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "thirdPartyCases": {
+ "description": "Cases for generating results from third-party detection method. Only available for third-party detection method.",
+ "example": [],
+ "items": {
+ "description": "Case when a signal is generated by a third party rule.",
+ "properties": {
+ "name": {
+ "description": "Name of the case.",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notification targets for each case.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "query": {
+ "description": "A query to map a third party event to this case.",
+ "type": "string"
+ },
+ "status": {
+ "description": "Severity of the Security Signal.",
"enum": [
- "web",
- "db",
- "cache",
- "function",
- "browser",
- "mobile",
- "custom"
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
],
- "example": "web",
+ "example": "critical",
"type": "string",
"x-enum-varnames": [
- "WEB",
- "DB",
- "CACHE",
- "FUNCTION",
- "BROSWER",
- "MOBILE",
- "CUSTOM"
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
]
}
},
"required": [
- "schema-version",
- "dd-service"
+ "status"
],
"type": "object"
- }
- ]
- }
+ },
+ "type": "array"
+ },
+ "to": {
+ "description": "Ending time of data analyzed by the job.",
+ "example": 1729847070000,
+ "format": "int64",
+ "type": "integer"
+ },
+ "type": {
+ "description": "Job type.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "from",
+ "to",
+ "index",
+ "name",
+ "cases",
+ "queries",
+ "message"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "description": "Type of data.",
+ "enum": [
+ "historicalDetectionsJobCreate"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "HISTORICALDETECTIONSJOBCREATE"
+ ]
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Run a historical job response.",
+ "properties": {
+ "data": {
+ "description": "The definition of `JobCreateResponseData` object.",
+ "properties": {
+ "id": {
+ "description": "ID of the created job.",
+ "type": "string"
+ },
+ "type": {
+ "description": "Type of payload.",
+ "enum": [
+ "historicalDetectionsJob"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "HISTORICALDETECTIONSJOB"
+ ]
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "Status created"
+ },
+ "400": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Bad Request"
+ },
+ "401": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Concurrent Modification"
+ },
+ "403": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Not Authorized"
+ },
+ "404": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Not Found"
+ },
+ "429": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Too many requests"
+ }
+ },
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
+ },
+ {
+ "AuthZ": [
+ "security_monitoring_rules_write"
+ ]
+ }
+ ],
+ "summary": "Run a historical job",
+ "tags": [
+ "Security Monitoring"
+ ],
+ "x-codegen-request-body-name": "body",
+ "x-given": {
+ "historical_job": {
+ "parameters": [
+ {
+ "name": "body",
+ "value": "{\n \"data\": {\n \"type\": \"historicalDetectionsJobCreate\",\n \"attributes\": {\n \"jobDefinition\": {\n \"type\": \"log_detection\",\n \"name\": \"Excessive number of failed attempts.\",\n \"queries\": [\n {\n \"query\": \"source:non_existing_src_weekend\",\n \"aggregation\": \"count\",\n \"groupByFields\": [],\n \"distinctFields\": []\n }\n ],\n \"cases\": [\n {\n \"name\": \"Condition 1\",\n \"status\": \"info\",\n \"notifications\": [],\n \"condition\": \"a > 1\"\n }\n ],\n \"options\": {\n \"keepAlive\": 3600,\n \"maxSignalDuration\": 86400,\n \"evaluationWindow\": 900\n },\n \"message\": \"A large number of failed login attempts.\",\n \"tags\": [],\n \"from\": 1730387522611,\n \"to\": 1730387532611,\n \"index\": \"main\"\n }\n }\n }\n}"
+ }
+ ],
+ "step": "there is a valid \"historical_job\" in the system"
+ }
+ },
+ "x-menu-order": 19,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "security_monitoring_rules_write"
+ ]
+ },
+ "x-undo": {
+ "type": "idempotent"
+ },
+ "x-unstable": "**Note**: This endpoint is in beta and may be subject to changes.\nPlease check the documentation regularly for updates."
+ }
+ },
+ "/api/v2/siem-historical-detections/jobs/signal_convert": {
+ "post": {
+ "description": "Convert a job result to a signal.",
+ "operationId": "ConvertJobResultToSignal",
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Request for converting historical job results to signals.",
+ "properties": {
+ "data": {
+ "description": "Data for converting historical job results to signals.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes for converting historical job results to signals.",
+ "properties": {
+ "id": {
+ "description": "Request ID.",
+ "type": "string"
},
- "type": "object"
- },
- "id": {
- "description": "Service definition id.",
- "type": "string"
+ "jobResultIds": {
+ "description": "Job result IDs.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "notifications": {
+ "description": "Notifications sent.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "signalMessage": {
+ "description": "Message of generated signals.",
+ "example": "A large number of failed login attempts.",
+ "type": "string"
+ },
+ "signalSeverity": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ }
},
- "type": {
- "description": "Service definition type.",
- "type": "string"
- }
+ "required": [
+ "jobResultIds",
+ "signalSeverity",
+ "signalMessage",
+ "notifications"
+ ],
+ "type": "object"
},
- "type": "object"
- }
- },
- "type": "object"
- }
+ "type": {
+ "description": "Type of payload.",
+ "enum": [
+ "historicalDetectionsJobResultSignalConversion"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "HISTORICALDETECTIONSJOBRESULTSIGNALCONVERSION"
+ ]
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
}
- },
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "204": {
"description": "OK"
},
"400": {
@@ -384681,7 +408649,7 @@
},
"description": "Bad Request"
},
- "403": {
+ "401": {
"content": {
"application/json": {
"schema": {
@@ -384707,9 +408675,9 @@
}
}
},
- "description": "Forbidden"
+ "description": "Concurrent Modification"
},
- "404": {
+ "403": {
"content": {
"application/json": {
"schema": {
@@ -384735,9 +408703,9 @@
}
}
},
- "description": "Not Found"
+ "description": "Not Authorized"
},
- "409": {
+ "404": {
"content": {
"application/json": {
"schema": {
@@ -384763,7 +408731,7 @@
}
}
},
- "description": "Conflict"
+ "description": "Not Found"
},
"429": {
"content": {
@@ -384794,43 +408762,33 @@
"description": "Too many requests"
}
},
- "security": [
- {
- "apiKeyAuth": [],
- "appKeyAuth": []
- },
- {
- "AuthZ": [
- "apm_service_catalog_read"
- ]
- }
- ],
- "summary": "Get a single service definition",
+ "summary": "Convert a job result to a signal",
"tags": [
- "Service Definition"
+ "Security Monitoring"
],
- "x-menu-order": 3,
+ "x-codegen-request-body-name": "body",
+ "x-menu-order": 24,
"x-permission": {
"operator": "OR",
"permissions": [
- "apm_service_catalog_read"
+ "security_monitoring_signals_write"
]
},
"x-undo": {
- "type": "safe"
- }
+ "type": "idempotent"
+ },
+ "x-unstable": "**Note**: This endpoint is in beta and may be subject to changes.\nPlease check the documentation regularly for updates."
}
},
- "/api/v2/services/{service_id}": {
+ "/api/v2/siem-historical-detections/jobs/{job_id}": {
"delete": {
- "deprecated": true,
- "description": "Deletes an existing incident service.",
- "operationId": "DeleteIncidentService",
+ "description": "Delete an existing job.",
+ "operationId": "DeleteHistoricalJob",
"parameters": [
{
- "description": "The ID of the incident service.",
+ "description": "The ID of the job.",
"in": "path",
- "name": "service_id",
+ "name": "job_id",
"required": true,
"schema": {
"type": "string"
@@ -384895,7 +408853,7 @@
}
}
},
- "description": "Unauthorized"
+ "description": "Concurrent Modification"
},
"403": {
"content": {
@@ -384923,7 +408881,7 @@
}
}
},
- "description": "Forbidden"
+ "description": "Not Authorized"
},
"404": {
"content": {
@@ -384953,6 +408911,34 @@
},
"description": "Not Found"
},
+ "409": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Conflict"
+ },
"429": {
"content": {
"application/json": {
@@ -384988,58 +408974,31 @@
"appKeyAuth": []
},
{
- "AuthZ": [
- "incident_settings_write"
- ]
+ "AuthZ": []
}
],
- "summary": "Delete an existing incident service",
+ "summary": "Delete an existing job",
"tags": [
- "Incident Services"
+ "Security Monitoring"
],
- "x-menu-order": 2,
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "incident_settings_write"
- ]
- },
+ "x-menu-order": 23,
"x-undo": {
"type": "idempotent"
},
- "x-unstable": "**Note**: This endpoint is deprecated."
+ "x-unstable": "**Note**: This endpoint is in beta and may be subject to changes.\nPlease check the documentation regularly for updates."
},
"get": {
- "deprecated": true,
- "description": "Get details of an incident service. If the `include[users]` query parameter is provided,\nthe included attribute will contain the users related to these incident services.",
- "operationId": "GetIncidentService",
+ "description": "Get a job's details.",
+ "operationId": "GetHistoricalJob",
"parameters": [
{
- "description": "The ID of the incident service.",
+ "description": "The ID of the job.",
"in": "path",
- "name": "service_id",
+ "name": "job_id",
"required": true,
"schema": {
"type": "string"
}
- },
- {
- "description": "Specifies which types of related objects should be included in the response.",
- "in": "query",
- "name": "include",
- "required": false,
- "schema": {
- "description": "Object related to an incident.",
- "enum": [
- "users",
- "attachments"
- ],
- "type": "string",
- "x-enum-varnames": [
- "USERS",
- "ATTACHMENTS"
- ]
- }
}
],
"responses": {
@@ -385047,414 +409006,806 @@
"content": {
"application/json": {
"schema": {
- "description": "Response with an incident service payload.",
+ "description": "Historical job response.",
"properties": {
"data": {
- "description": "Incident Service data from responses.",
+ "description": "Historical job response data.",
"properties": {
"attributes": {
- "description": "The incident service's attributes from a response.",
+ "description": "Historical job attributes.",
"properties": {
- "created": {
- "description": "Timestamp of when the incident service was created.",
- "format": "date-time",
- "readOnly": true,
+ "createdAt": {
+ "description": "Time when the job was created.",
"type": "string"
},
- "modified": {
- "description": "Timestamp of when the incident service was modified.",
- "format": "date-time",
- "readOnly": true,
+ "createdByHandle": {
+ "description": "The handle of the user who created the job.",
"type": "string"
},
- "name": {
- "description": "Name of the incident service.",
- "example": "service name",
+ "createdByName": {
+ "description": "The name of the user who created the job.",
"type": "string"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "The incident service's ID.",
- "example": "00000000-0000-0000-0000-000000000000",
- "type": "string"
- },
- "relationships": {
- "description": "The incident service's relationships.",
- "properties": {
- "created_by": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
},
- "last_modified_by": {
- "description": "Relationship to user.",
+ "createdFromRuleId": {
+ "description": "ID of the rule used to create the job (if it is created from a rule).",
+ "type": "string"
+ },
+ "jobDefinition": {
+ "description": "Definition of a historical job.",
"properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- }
- },
- "readOnly": true,
- "type": "object"
- },
- "type": {
- "default": "services",
- "description": "Incident service resource type.",
- "enum": [
- "services"
- ],
- "example": "services",
- "type": "string",
- "x-enum-varnames": [
- "SERVICES"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- },
- "included": {
- "description": "Included objects from relationships.",
- "items": {
- "description": "An object related to an incident service which is present in the included payload.",
- "oneOf": [
- {
- "description": "User object returned by the API.",
- "properties": {
- "attributes": {
- "description": "Attributes of user object returned by the API.",
- "properties": {
- "created_at": {
- "description": "Creation time of the user.",
- "format": "date-time",
- "type": "string"
- },
- "disabled": {
- "description": "Whether the user is disabled.",
- "type": "boolean"
- },
- "email": {
- "description": "Email of the user.",
- "type": "string"
- },
- "handle": {
- "description": "Handle of the user.",
- "type": "string"
- },
- "icon": {
- "description": "URL of the user's icon.",
- "type": "string"
- },
- "mfa_enabled": {
- "description": "If user has MFA enabled.",
- "readOnly": true,
- "type": "boolean"
- },
- "modified_at": {
- "description": "Time that the user was last modified.",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "Name of the user.",
- "nullable": true,
- "type": "string"
- },
- "service_account": {
- "description": "Whether the user is a service account.",
- "type": "boolean"
- },
- "status": {
- "description": "Status of the user.",
- "type": "string"
- },
- "title": {
- "description": "Title of the user.",
- "nullable": true,
- "type": "string"
- },
- "verified": {
- "description": "Whether the user is verified.",
- "type": "boolean"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "ID of the user.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the user object returned by the API.",
- "properties": {
- "org": {
- "description": "Relationship to an organization.",
+ "calculatedFields": {
+ "description": "Calculated fields.",
+ "items": {
+ "description": "Calculated field.",
"properties": {
- "data": {
- "description": "Relationship to organization object.",
- "properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
- "type": "string"
- },
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object"
+ "expression": {
+ "description": "Expression.",
+ "example": "@request_end_timestamp - @request_start_timestamp",
+ "type": "string"
+ },
+ "name": {
+ "description": "Field name.",
+ "example": "response_time",
+ "type": "string"
}
},
"required": [
- "data"
+ "name",
+ "expression"
],
"type": "object"
},
- "other_orgs": {
- "description": "Relationship to organizations.",
+ "type": "array"
+ },
+ "cases": {
+ "description": "Cases used for generating job results.",
+ "items": {
+ "description": "Case when signal is generated.",
"properties": {
- "data": {
- "description": "Relationships to organization objects.",
- "example": [],
+ "actions": {
+ "description": "Action to perform for each rule case.",
"items": {
- "description": "Relationship to organization object.",
+ "description": "Action to perform when a signal is triggered. Only available for Application Security rule type.",
"properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
- "type": "string"
+ "options": {
+ "description": "Options for the rule action",
+ "properties": {
+ "duration": {
+ "description": "Duration of the action in seconds. 0 indicates no expiration.",
+ "example": 0,
+ "format": "int64",
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "type": "object"
},
"type": {
- "default": "orgs",
- "description": "Organizations resource type.",
+ "description": "The action type.",
"enum": [
- "orgs"
+ "block_ip",
+ "block_user"
],
- "example": "orgs",
"type": "string",
"x-enum-varnames": [
- "ORGS"
+ "BLOCK_IP",
+ "BLOCK_USER"
]
}
},
- "required": [
- "id",
- "type"
- ],
"type": "object"
},
"type": "array"
+ },
+ "condition": {
+ "description": "A case contains logical operations (`>`,`>=`, `&&`, `||`) to determine if a signal should be generated\nbased on the event counts in the previously defined queries.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the case.",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notification targets.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "status": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
}
},
"required": [
- "data"
+ "status"
],
"type": "object"
},
- "other_users": {
- "description": "Relationship to users.",
- "properties": {
- "data": {
- "description": "Relationships to user objects.",
- "example": [],
- "items": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
+ "type": "array"
+ },
+ "from": {
+ "description": "Starting time of data analyzed by the job.",
+ "example": 1729843470000,
+ "format": "int64",
+ "type": "integer"
+ },
+ "groupSignalsBy": {
+ "description": "Additional grouping to perform on top of the existing groups in the query section. Must be a subset of the existing groups.",
+ "example": [
+ "service"
+ ],
+ "items": {
+ "description": "Field to group by.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "index": {
+ "description": "Index used to load the data.",
+ "example": "cloud_siem",
+ "type": "string"
+ },
+ "message": {
+ "description": "Message for generated results.",
+ "example": "A large number of failed login attempts.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Job name.",
+ "example": "Excessive number of failed attempts.",
+ "type": "string"
+ },
+ "options": {
+ "description": "Job options.",
+ "properties": {
+ "detectionMethod": {
+ "description": "The detection method.",
+ "enum": [
+ "threshold",
+ "new_value",
+ "anomaly_detection",
+ "impossible_travel",
+ "hardcoded",
+ "third_party",
+ "anomaly_threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "THRESHOLD",
+ "NEW_VALUE",
+ "ANOMALY_DETECTION",
+ "IMPOSSIBLE_TRAVEL",
+ "HARDCODED",
+ "THIRD_PARTY",
+ "ANOMALY_THRESHOLD"
+ ]
+ },
+ "evaluationWindow": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS"
+ ]
+ },
+ "impossibleTravelOptions": {
+ "description": "Options on impossible travel detection method.",
+ "properties": {
+ "baselineUserLocations": {
+ "description": "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.",
+ "example": true,
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "keepAlive": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS"
+ ]
+ },
+ "maxSignalDuration": {
+ "description": "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.",
+ "enum": [
+ 0,
+ 60,
+ 300,
+ 600,
+ 900,
+ 1800,
+ 3600,
+ 7200,
+ 10800,
+ 21600,
+ 43200,
+ 86400
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_MINUTES",
+ "ONE_MINUTE",
+ "FIVE_MINUTES",
+ "TEN_MINUTES",
+ "FIFTEEN_MINUTES",
+ "THIRTY_MINUTES",
+ "ONE_HOUR",
+ "TWO_HOURS",
+ "THREE_HOURS",
+ "SIX_HOURS",
+ "TWELVE_HOURS",
+ "ONE_DAY"
+ ]
+ },
+ "newValueOptions": {
+ "description": "Options on new value detection method.",
+ "properties": {
+ "forgetAfter": {
+ "description": "The duration in days after which a learned value is forgotten.",
+ "enum": [
+ 1,
+ 2,
+ 7,
+ 14,
+ 21,
+ 28
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ONE_DAY",
+ "TWO_DAYS",
+ "ONE_WEEK",
+ "TWO_WEEKS",
+ "THREE_WEEKS",
+ "FOUR_WEEKS"
+ ]
+ },
+ "learningDuration": {
+ "default": 0,
+ "description": "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.",
+ "enum": [
+ 0,
+ 1,
+ 7
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_DAYS",
+ "ONE_DAY",
+ "SEVEN_DAYS"
+ ]
+ },
+ "learningMethod": {
+ "default": "duration",
+ "description": "The learning method used to determine when signals should be generated for values that weren't learned.",
+ "enum": [
+ "duration",
+ "threshold"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "DURATION",
+ "THRESHOLD"
+ ]
+ },
+ "learningThreshold": {
+ "default": 0,
+ "description": "A number of occurrences after which signals will be generated for values that weren't learned.",
+ "enum": [
+ 0,
+ 1
+ ],
+ "format": "int32",
+ "type": "integer",
+ "x-enum-varnames": [
+ "ZERO_OCCURRENCES",
+ "ONE_OCCURRENCE"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "thirdPartyRuleOptions": {
+ "description": "Options on third party detection method.",
+ "properties": {
+ "defaultNotifications": {
+ "description": "Notification targets for the logs that do not correspond to any of the cases.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
},
- "required": [
- "id",
- "type"
+ "type": "array"
+ },
+ "defaultStatus": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
+ },
+ "rootQueries": {
+ "description": "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.",
+ "items": {
+ "description": "A query to be combined with the third party case query.",
+ "properties": {
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "query": {
+ "description": "Query to run on logs.",
+ "example": "source:cloudtrail",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "signalTitleTemplate": {
+ "description": "A template for the signal title; if omitted, the title is generated based on the case name.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "queries": {
+ "description": "Queries for selecting logs analyzed by the job.",
+ "items": {
+ "description": "Query for selecting logs analyzed by the historical job.",
+ "properties": {
+ "aggregation": {
+ "description": "The aggregation type.",
+ "enum": [
+ "count",
+ "cardinality",
+ "sum",
+ "max",
+ "new_value",
+ "geo_data",
+ "event_count",
+ "none"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "COUNT",
+ "CARDINALITY",
+ "SUM",
+ "MAX",
+ "NEW_VALUE",
+ "GEO_DATA",
+ "EVENT_COUNT",
+ "NONE"
+ ]
+ },
+ "distinctFields": {
+ "description": "Field for which the cardinality is measured. Sent as an array.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "groupByFields": {
+ "description": "Fields to group by.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "hasOptionalGroupByFields": {
+ "description": "When false, events without a group-by value are ignored by the query. When true, events with missing group-by fields are processed with `N/A`, replacing the missing values.",
+ "example": false,
+ "readOnly": true,
+ "type": "boolean"
+ },
+ "metrics": {
+ "description": "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.",
+ "items": {
+ "description": "Field.",
+ "type": "string"
},
"type": "array"
+ },
+ "name": {
+ "description": "Name of the query.",
+ "type": "string"
+ },
+ "query": {
+ "description": "Query to run on logs.",
+ "example": "a > 3",
+ "type": "string"
}
},
- "required": [
- "data"
- ],
"type": "object"
},
- "roles": {
- "description": "Relationship to roles.",
+ "type": "array"
+ },
+ "referenceTables": {
+ "description": "Reference tables used in the queries.",
+ "items": {
+ "description": "Reference tables used in the queries.",
"properties": {
- "data": {
- "description": "An array containing type and the unique identifier of a role.",
- "items": {
- "description": "Relationship to role object.",
- "properties": {
- "id": {
- "description": "The unique identifier of the role.",
- "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
- "type": "string"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "checkPresence": {
+ "description": "Whether to include or exclude the matched values.",
+ "type": "boolean"
+ },
+ "columnName": {
+ "description": "The name of the column in the reference table.",
+ "type": "string"
+ },
+ "logFieldPath": {
+ "description": "The field in the log to match against the reference table.",
+ "type": "string"
+ },
+ "ruleQueryName": {
+ "description": "The name of the query to apply the reference table to.",
+ "type": "string"
+ },
+ "tableName": {
+ "description": "The name of the reference table.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "tags": {
+ "description": "Tags for generated signals.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "thirdPartyCases": {
+ "description": "Cases for generating results from third-party detection method. Only available for third-party detection method.",
+ "example": [],
+ "items": {
+ "description": "Case when a signal is generated by a third party rule.",
+ "properties": {
+ "name": {
+ "description": "Name of the case.",
+ "type": "string"
+ },
+ "notifications": {
+ "description": "Notification targets for each case.",
+ "items": {
+ "description": "Notification.",
+ "type": "string"
},
"type": "array"
+ },
+ "query": {
+ "description": "A query to map a third party event to this case.",
+ "type": "string"
+ },
+ "status": {
+ "description": "Severity of the Security Signal.",
+ "enum": [
+ "info",
+ "low",
+ "medium",
+ "high",
+ "critical"
+ ],
+ "example": "critical",
+ "type": "string",
+ "x-enum-varnames": [
+ "INFO",
+ "LOW",
+ "MEDIUM",
+ "HIGH",
+ "CRITICAL"
+ ]
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
+ "required": [
+ "status"
+ ],
+ "type": "object"
+ },
+ "type": "array"
},
- "type": "object",
- "x-merge-override": {
- "properties": false
+ "to": {
+ "description": "Ending time of data analyzed by the job.",
+ "example": 1729847070000,
+ "format": "int64",
+ "type": "integer"
+ },
+ "type": {
+ "description": "Job type.",
+ "type": "string"
}
},
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
+ "required": [
+ "from",
+ "to",
+ "index",
+ "name",
+ "cases",
+ "queries",
+ "message"
+ ],
+ "type": "object"
},
- "type": "object",
- "x-merge-override": {
- "required": false
+ "jobName": {
+ "description": "Job name.",
+ "type": "string"
+ },
+ "jobStatus": {
+ "description": "Job status.",
+ "type": "string"
+ },
+ "modifiedAt": {
+ "description": "Last modification time of the job.",
+ "type": "string"
}
- }
- ]
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the job.",
+ "type": "string"
+ },
+ "type": {
+ "description": "Type of payload.",
+ "enum": [
+ "historicalDetectionsJob"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "HISTORICALDETECTIONSJOB"
+ ]
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "OK"
+ },
+ "400": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
},
- "readOnly": true,
"type": "array"
}
},
"required": [
- "data"
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Bad Request"
+ },
+ "403": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Not Authorized"
+ },
+ "404": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Not Found"
+ },
+ "429": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
],
"type": "object"
}
}
},
+ "description": "Too many requests"
+ }
+ },
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
+ },
+ {
+ "AuthZ": [
+ "security_monitoring_rules_read"
+ ]
+ }
+ ],
+ "summary": "Get a job's details",
+ "tags": [
+ "Security Monitoring"
+ ],
+ "x-menu-order": 21,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "security_monitoring_rules_read"
+ ]
+ },
+ "x-undo": {
+ "type": "safe"
+ },
+ "x-unstable": "**Note**: This endpoint is in beta and may be subject to changes.\nPlease check the documentation regularly for updates."
+ }
+ },
+ "/api/v2/siem-historical-detections/jobs/{job_id}/cancel": {
+ "patch": {
+ "description": "Cancel a historical job.",
+ "operationId": "CancelHistoricalJob",
+ "parameters": [
+ {
+ "description": "The ID of the job.",
+ "in": "path",
+ "name": "job_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "204": {
"description": "OK"
},
"400": {
@@ -385511,7 +409862,7 @@
}
}
},
- "description": "Unauthorized"
+ "description": "Concurrent Modification"
},
"403": {
"content": {
@@ -385539,7 +409890,7 @@
}
}
},
- "description": "Forbidden"
+ "description": "Not Authorized"
},
"404": {
"content": {
@@ -385569,6 +409920,34 @@
},
"description": "Not Found"
},
+ "409": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Conflict"
+ },
"429": {
"content": {
"application/json": {
@@ -385605,169 +409984,91 @@
},
{
"AuthZ": [
- "incident_read"
+ "security_monitoring_rules_write"
]
}
],
- "summary": "Get details of an incident service",
+ "summary": "Cancel a historical job",
"tags": [
- "Incident Services"
+ "Security Monitoring"
],
- "x-menu-order": 1,
+ "x-menu-order": 22,
"x-permission": {
"operator": "OR",
"permissions": [
- "incident_read"
+ "security_monitoring_rules_write"
]
},
"x-undo": {
- "type": "safe"
+ "type": "idempotent"
},
- "x-unstable": "**Note**: This endpoint is deprecated."
- },
- "patch": {
- "deprecated": true,
- "description": "Updates an existing incident service. Only provide the attributes which should be updated as this request is a partial update.",
- "operationId": "UpdateIncidentService",
- "parameters": [
- {
- "description": "The ID of the incident service.",
- "in": "path",
- "name": "service_id",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
+ "x-unstable": "**Note**: This endpoint is in beta and may be subject to changes.\nPlease check the documentation regularly for updates."
+ }
+ },
+ "/api/v2/slo/report": {
+ "post": {
+ "description": "Create a job to generate an SLO report. The report job is processed asynchronously and eventually results in a CSV report being available for download.\n\nCheck the status of the job and download the CSV report using the returned `report_id`.",
+ "operationId": "CreateSLOReportJob",
"requestBody": {
"content": {
"application/json": {
"schema": {
- "description": "Update request with an incident service payload.",
+ "description": "The SLO report request body.",
"properties": {
"data": {
- "description": "Incident Service payload for update requests.",
+ "description": "The data portion of the SLO report request.",
"properties": {
"attributes": {
- "description": "The incident service's attributes for an update request.",
+ "description": "The attributes portion of the SLO report request.",
"properties": {
- "name": {
- "description": "Name of the incident service.",
- "example": "an example service name",
+ "from_ts": {
+ "description": "The `from` timestamp for the report in epoch seconds.",
+ "example": 1690901870,
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The frequency at which report data is to be generated.",
+ "enum": [
+ "daily",
+ "weekly",
+ "monthly"
+ ],
+ "example": "weekly",
+ "type": "string",
+ "x-enum-varnames": [
+ "DAILY",
+ "WEEKLY",
+ "MONTHLY"
+ ]
+ },
+ "query": {
+ "description": "The query string used to filter SLO results. Some examples of queries include `service:` and `slo-name`.",
+ "example": "slo_type:metric",
"type": "string"
+ },
+ "timezone": {
+ "description": "The timezone used to determine the start and end of each interval. For example, weekly intervals start at 12am on Sunday in the specified timezone.",
+ "example": "America/New_York",
+ "type": "string"
+ },
+ "to_ts": {
+ "description": "The `to` timestamp for the report in epoch seconds.",
+ "example": 1706803070,
+ "format": "int64",
+ "type": "integer"
}
},
"required": [
- "name"
+ "query",
+ "from_ts",
+ "to_ts"
],
"type": "object"
- },
- "id": {
- "description": "The incident service's ID.",
- "example": "00000000-0000-0000-0000-000000000000",
- "type": "string"
- },
- "relationships": {
- "description": "The incident service's relationships.",
- "properties": {
- "created_by": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "last_modified_by": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- }
- },
- "readOnly": true,
- "type": "object"
- },
- "type": {
- "default": "services",
- "description": "Incident service resource type.",
- "enum": [
- "services"
- ],
- "example": "services",
- "type": "string",
- "x-enum-varnames": [
- "SERVICES"
- ]
}
},
"required": [
- "type"
+ "attributes"
],
"type": "object"
}
@@ -385779,7 +410080,7 @@
}
}
},
- "description": "Incident Service Payload.",
+ "description": "Create SLO report job request body.",
"required": true
},
"responses": {
@@ -385787,417 +410088,211 @@
"content": {
"application/json": {
"schema": {
- "description": "Response with an incident service payload.",
+ "description": "The SLO report response.",
"properties": {
"data": {
- "description": "Incident Service data from responses.",
+ "description": "The data portion of the SLO report response.",
"properties": {
- "attributes": {
- "description": "The incident service's attributes from a response.",
- "properties": {
- "created": {
- "description": "Timestamp of when the incident service was created.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified": {
- "description": "Timestamp of when the incident service was modified.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "name": {
- "description": "Name of the incident service.",
- "example": "service name",
- "type": "string"
- }
- },
- "type": "object"
- },
"id": {
- "description": "The incident service's ID.",
- "example": "00000000-0000-0000-0000-000000000000",
+ "description": "The ID of the report job.",
+ "example": "dc8d92aa-e0af-11ee-af21-1feeaccaa3a3",
"type": "string"
},
- "relationships": {
- "description": "The incident service's relationships.",
- "properties": {
- "created_by": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "last_modified_by": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- }
- },
- "readOnly": true,
- "type": "object"
- },
"type": {
- "default": "services",
- "description": "Incident service resource type.",
- "enum": [
- "services"
- ],
- "example": "services",
- "type": "string",
- "x-enum-varnames": [
- "SERVICES"
- ]
+ "description": "The type of ID.",
+ "example": "report_id",
+ "type": "string"
}
},
- "required": [
- "id",
- "type"
- ],
"type": "object"
- },
- "included": {
- "description": "Included objects from relationships.",
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "OK"
+ },
+ "400": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
"items": {
- "description": "An object related to an incident service which is present in the included payload.",
- "oneOf": [
- {
- "description": "User object returned by the API.",
- "properties": {
- "attributes": {
- "description": "Attributes of user object returned by the API.",
- "properties": {
- "created_at": {
- "description": "Creation time of the user.",
- "format": "date-time",
- "type": "string"
- },
- "disabled": {
- "description": "Whether the user is disabled.",
- "type": "boolean"
- },
- "email": {
- "description": "Email of the user.",
- "type": "string"
- },
- "handle": {
- "description": "Handle of the user.",
- "type": "string"
- },
- "icon": {
- "description": "URL of the user's icon.",
- "type": "string"
- },
- "mfa_enabled": {
- "description": "If user has MFA enabled.",
- "readOnly": true,
- "type": "boolean"
- },
- "modified_at": {
- "description": "Time that the user was last modified.",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "Name of the user.",
- "nullable": true,
- "type": "string"
- },
- "service_account": {
- "description": "Whether the user is a service account.",
- "type": "boolean"
- },
- "status": {
- "description": "Status of the user.",
- "type": "string"
- },
- "title": {
- "description": "Title of the user.",
- "nullable": true,
- "type": "string"
- },
- "verified": {
- "description": "Whether the user is verified.",
- "type": "boolean"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "ID of the user.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the user object returned by the API.",
- "properties": {
- "org": {
- "description": "Relationship to an organization.",
- "properties": {
- "data": {
- "description": "Relationship to organization object.",
- "properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
- "type": "string"
- },
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "other_orgs": {
- "description": "Relationship to organizations.",
- "properties": {
- "data": {
- "description": "Relationships to organization objects.",
- "example": [],
- "items": {
- "description": "Relationship to organization object.",
- "properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
- "type": "string"
- },
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- },
- "type": "array"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "other_users": {
- "description": "Relationship to users.",
- "properties": {
- "data": {
- "description": "Relationships to user objects.",
- "example": [],
- "items": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "roles": {
- "description": "Relationship to roles.",
- "properties": {
- "data": {
- "description": "An array containing type and the unique identifier of a role.",
- "items": {
- "description": "Relationship to role object.",
- "properties": {
- "id": {
- "description": "The unique identifier of the role.",
- "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
- "type": "string"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object",
- "x-merge-override": {
- "properties": false
- }
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- ]
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Bad Request"
+ },
+ "403": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Forbidden"
+ },
+ "429": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Too many requests"
+ }
+ },
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
+ },
+ {
+ "AuthZ": [
+ "slos_read"
+ ]
+ }
+ ],
+ "summary": "Create a new SLO report",
+ "tags": [
+ "Service Level Objectives"
+ ],
+ "x-codegen-request-body-name": "body",
+ "x-given": {
+ "report": {
+ "parameters": [
+ {
+ "name": "body",
+ "value": "{\n \"data\": {\n \"attributes\": {\n \"query\": \"slo_type:metric \\\"SLO Reporting Test\\\"\",\n \"interval\": \"monthly\",\n \"from_ts\": {{ timestamp(\"now - 21d\") }},\n \"to_ts\": {{ timestamp(\"now\") }}\n }\n }\n}"
+ }
+ ],
+ "step": "there is a valid \"report\" in the system"
+ }
+ },
+ "x-menu-order": 101,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "slos_read"
+ ]
+ },
+ "x-undo": {
+ "type": "safe"
+ },
+ "x-unstable": "**Note**: This feature is in private beta. To request access, use the request access form in the [Service Level Objectives](https://docs.datadoghq.com/service_management/service_level_objectives/#slo-csv-export) docs."
+ }
+ },
+ "/api/v2/slo/report/{report_id}/download": {
+ "get": {
+ "description": "Download an SLO report. This can only be performed after the report job has completed.\n\nReports are not guaranteed to exist indefinitely. Datadog recommends that you download the report as soon as it is available.",
+ "operationId": "GetSLOReport",
+ "parameters": [
+ {
+ "description": "The ID of the report job.",
+ "in": "path",
+ "name": "report_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "text/csv": {
+ "schema": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "OK"
+ },
+ "400": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
},
- "readOnly": true,
"type": "array"
}
},
"required": [
- "data"
+ "errors"
],
"type": "object"
}
}
},
- "description": "OK"
+ "description": "Bad Request"
},
- "400": {
+ "403": {
"content": {
"application/json": {
"schema": {
@@ -386223,9 +410318,9 @@
}
}
},
- "description": "Bad Request"
+ "description": "Forbidden"
},
- "401": {
+ "404": {
"content": {
"application/json": {
"schema": {
@@ -386251,7 +410346,154 @@
}
}
},
- "description": "Unauthorized"
+ "description": "Not Found"
+ },
+ "429": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Too many requests"
+ }
+ },
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
+ },
+ {
+ "AuthZ": [
+ "slos_read"
+ ]
+ }
+ ],
+ "summary": "Get SLO report",
+ "tags": [
+ "Service Level Objectives"
+ ],
+ "x-menu-order": 103,
+ "x-undo": {
+ "type": "safe"
+ },
+ "x-unstable": "**Note**: This feature is in private beta. To request access, use the request access form in the [Service Level Objectives](https://docs.datadoghq.com/service_management/service_level_objectives/#slo-csv-export) docs."
+ }
+ },
+ "/api/v2/slo/report/{report_id}/status": {
+ "get": {
+ "description": "Get the status of the SLO report job.",
+ "operationId": "GetSLOReportJobStatus",
+ "parameters": [
+ {
+ "description": "The ID of the report job.",
+ "in": "path",
+ "name": "report_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "The SLO report status response.",
+ "properties": {
+ "data": {
+ "description": "The data portion of the SLO report status response.",
+ "properties": {
+ "attributes": {
+ "description": "The attributes portion of the SLO report status response.",
+ "properties": {
+ "status": {
+ "description": "The status of the SLO report job.",
+ "enum": [
+ "in_progress",
+ "completed",
+ "completed_with_errors",
+ "failed"
+ ],
+ "example": "completed",
+ "type": "string",
+ "x-enum-varnames": [
+ "IN_PROGRESS",
+ "COMPLETED",
+ "COMPLETED_WITH_ERRORS",
+ "FAILED"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The ID of the report job.",
+ "example": "dc8d92aa-e0af-11ee-af21-1feeaccaa3a3",
+ "type": "string"
+ },
+ "type": {
+ "description": "The type of ID.",
+ "example": "report_id",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "OK"
+ },
+ "400": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Bad Request"
},
"403": {
"content": {
@@ -386345,715 +410587,418 @@
},
{
"AuthZ": [
- "incident_settings_write"
+ "slos_read"
]
}
],
- "summary": "Update an existing incident service",
+ "summary": "Get SLO report status",
"tags": [
- "Incident Services"
+ "Service Level Objectives"
],
- "x-codegen-request-body-name": "body",
- "x-menu-order": 3,
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "incident_settings_write"
- ]
- },
+ "x-menu-order": 102,
"x-undo": {
- "type": "idempotent"
+ "type": "safe"
},
- "x-unstable": "**Note**: This endpoint is deprecated."
+ "x-unstable": "**Note**: This feature is in private beta. To request access, use the request access form in the [Service Level Objectives](https://docs.datadoghq.com/service_management/service_level_objectives/#slo-csv-export) docs."
}
},
- "/api/v2/siem-historical-detections/jobs": {
- "get": {
- "description": "List historical jobs.",
- "operationId": "ListHistoricalJobs",
- "parameters": [
- {
- "description": "Size for a given page. The maximum allowed value is 100.",
- "in": "query",
- "name": "page[size]",
- "required": false,
- "schema": {
- "default": 10,
- "example": 10,
- "format": "int64",
- "type": "integer"
- }
- },
- {
- "description": "Specific page number to return.",
- "in": "query",
- "name": "page[number]",
- "required": false,
- "schema": {
- "default": 0,
- "example": 0,
- "format": "int64",
- "type": "integer"
- }
- },
- {
- "description": "The order of the jobs in results.",
- "example": "status",
- "in": "query",
- "name": "sort",
- "required": false,
- "schema": {
- "type": "string"
- }
- },
- {
- "description": "Query used to filter items from the fetched list.",
- "example": "security:attack status:high",
- "in": "query",
- "name": "filter[query]",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "description": "List of historical jobs.",
- "properties": {
- "data": {
- "description": "Array containing the list of historical jobs.",
- "items": {
- "description": "Historical job response data.",
+ "/api/v2/spans/analytics/aggregate": {
+ "post": {
+ "description": "The API endpoint to aggregate spans into buckets and compute metrics and timeseries.\nThis endpoint is rate limited to `300` requests per hour.",
+ "operationId": "AggregateSpans",
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "The object sent with the request to retrieve a list of aggregated spans from your organization.",
+ "properties": {
+ "data": {
+ "description": "The object containing the query content.",
+ "properties": {
+ "attributes": {
+ "description": "The object containing all the query parameters.",
"properties": {
- "attributes": {
- "description": "Historical job attributes.",
- "properties": {
- "createdAt": {
- "description": "Time when the job was created.",
- "type": "string"
+ "compute": {
+ "description": "The list of metrics or timeseries to compute for the retrieved buckets.",
+ "items": {
+ "description": "A compute rule to compute metrics or timeseries.",
+ "properties": {
+ "aggregation": {
+ "description": "An aggregation function.",
+ "enum": [
+ "count",
+ "cardinality",
+ "pc75",
+ "pc90",
+ "pc95",
+ "pc98",
+ "pc99",
+ "sum",
+ "min",
+ "max",
+ "avg",
+ "median"
+ ],
+ "example": "pc90",
+ "type": "string",
+ "x-enum-varnames": [
+ "COUNT",
+ "CARDINALITY",
+ "PERCENTILE_75",
+ "PERCENTILE_90",
+ "PERCENTILE_95",
+ "PERCENTILE_98",
+ "PERCENTILE_99",
+ "SUM",
+ "MIN",
+ "MAX",
+ "AVG",
+ "MEDIAN"
+ ]
+ },
+ "interval": {
+ "description": "The time buckets' size (only used for type=timeseries)\nDefaults to a resolution of 150 points.",
+ "example": "5m",
+ "type": "string"
+ },
+ "metric": {
+ "description": "The metric to use.",
+ "example": "@duration",
+ "type": "string"
+ },
+ "type": {
+ "default": "total",
+ "description": "The type of compute.",
+ "enum": [
+ "timeseries",
+ "total"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "TIMESERIES",
+ "TOTAL"
+ ]
+ }
},
- "createdByHandle": {
- "description": "The handle of the user who created the job.",
+ "required": [
+ "aggregation"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "filter": {
+ "description": "The search and filter query settings.",
+ "properties": {
+ "from": {
+ "default": "now-15m",
+ "description": "The minimum time for the requested spans, supports date-time ISO8601, date math, and regular timestamps (milliseconds).",
+ "example": "now-15m",
"type": "string"
},
- "createdByName": {
- "description": "The name of the user who created the job.",
+ "query": {
+ "default": "*",
+ "description": "The search query - following the span search syntax.",
+ "example": "service:web* AND @http.status_code:[200 TO 299]",
"type": "string"
},
- "createdFromRuleId": {
- "description": "ID of the rule used to create the job (if it is created from a rule).",
+ "to": {
+ "default": "now",
+ "description": "The maximum time for the requested spans, supports date-time ISO8601, date math, and regular timestamps (milliseconds).",
+ "example": "now",
"type": "string"
- },
- "jobDefinition": {
- "description": "Definition of a historical job.",
- "properties": {
- "calculatedFields": {
- "description": "Calculated fields.",
- "items": {
- "description": "Calculated field.",
- "properties": {
- "expression": {
- "description": "Expression.",
- "example": "@request_end_timestamp - @request_start_timestamp",
- "type": "string"
- },
- "name": {
- "description": "Field name.",
- "example": "response_time",
- "type": "string"
- }
- },
- "required": [
- "name",
- "expression"
- ],
- "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "group_by": {
+ "description": "The rules for the group by.",
+ "items": {
+ "description": "A group by rule.",
+ "properties": {
+ "facet": {
+ "description": "The name of the facet to use (required).",
+ "example": "host",
+ "type": "string"
+ },
+ "histogram": {
+ "description": "Used to perform a histogram computation (only for measure facets).\nNote: At most 100 buckets are allowed, the number of buckets is (max - min)/interval.",
+ "properties": {
+ "interval": {
+ "description": "The bin size of the histogram buckets.",
+ "example": 10,
+ "format": "double",
+ "type": "number"
},
- "type": "array"
- },
- "cases": {
- "description": "Cases used for generating job results.",
- "items": {
- "description": "Case when signal is generated.",
- "properties": {
- "actions": {
- "description": "Action to perform for each rule case.",
- "items": {
- "description": "Action to perform when a signal is triggered. Only available for Application Security rule type.",
- "properties": {
- "options": {
- "description": "Options for the rule action",
- "properties": {
- "duration": {
- "description": "Duration of the action in seconds. 0 indicates no expiration.",
- "example": 0,
- "format": "int64",
- "minimum": 0,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "type": {
- "description": "The action type.",
- "enum": [
- "block_ip",
- "block_user"
- ],
- "type": "string",
- "x-enum-varnames": [
- "BLOCK_IP",
- "BLOCK_USER"
- ]
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "condition": {
- "description": "A case contains logical operations (`>`,`>=`, `&&`, `||`) to determine if a signal should be generated\nbased on the event counts in the previously defined queries.",
- "type": "string"
- },
- "name": {
- "description": "Name of the case.",
- "type": "string"
- },
- "notifications": {
- "description": "Notification targets.",
- "items": {
- "description": "Notification.",
- "type": "string"
- },
- "type": "array"
- },
- "status": {
- "description": "Severity of the Security Signal.",
- "enum": [
- "info",
- "low",
- "medium",
- "high",
- "critical"
- ],
- "example": "critical",
- "type": "string",
- "x-enum-varnames": [
- "INFO",
- "LOW",
- "MEDIUM",
- "HIGH",
- "CRITICAL"
- ]
- }
- },
- "required": [
- "status"
- ],
- "type": "object"
+ "max": {
+ "description": "The maximum value for the measure used in the histogram\n(values greater than this one are filtered out).",
+ "example": 100,
+ "format": "double",
+ "type": "number"
},
- "type": "array"
- },
- "from": {
- "description": "Starting time of data analyzed by the job.",
- "example": 1729843470000,
- "format": "int64",
- "type": "integer"
+ "min": {
+ "description": "The minimum value for the measure used in the histogram\n(values smaller than this one are filtered out).",
+ "example": 50,
+ "format": "double",
+ "type": "number"
+ }
},
- "groupSignalsBy": {
- "description": "Additional grouping to perform on top of the existing groups in the query section. Must be a subset of the existing groups.",
- "example": [
- "service"
- ],
- "items": {
- "description": "Field to group by.",
+ "required": [
+ "interval",
+ "min",
+ "max"
+ ],
+ "type": "object"
+ },
+ "limit": {
+ "default": 10,
+ "description": "The maximum buckets to return for this group by.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "missing": {
+ "description": "The value to use for spans that don't have the facet used to group by.",
+ "oneOf": [
+ {
+ "description": "The missing value to use if there is string valued facet.",
"type": "string"
},
- "type": "array"
- },
- "index": {
- "description": "Index used to load the data.",
- "example": "cloud_siem",
- "type": "string"
- },
- "message": {
- "description": "Message for generated results.",
- "example": "A large number of failed login attempts.",
- "type": "string"
- },
- "name": {
- "description": "Job name.",
- "example": "Excessive number of failed attempts.",
- "type": "string"
- },
- "options": {
- "description": "Job options.",
- "properties": {
- "detectionMethod": {
- "description": "The detection method.",
- "enum": [
- "threshold",
- "new_value",
- "anomaly_detection",
- "impossible_travel",
- "hardcoded",
- "third_party",
- "anomaly_threshold"
- ],
- "type": "string",
- "x-enum-varnames": [
- "THRESHOLD",
- "NEW_VALUE",
- "ANOMALY_DETECTION",
- "IMPOSSIBLE_TRAVEL",
- "HARDCODED",
- "THIRD_PARTY",
- "ANOMALY_THRESHOLD"
- ]
- },
- "evaluationWindow": {
- "description": "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.",
- "enum": [
- 0,
- 60,
- 300,
- 600,
- 900,
- 1800,
- 3600,
- 7200
- ],
- "format": "int32",
- "type": "integer",
- "x-enum-varnames": [
- "ZERO_MINUTES",
- "ONE_MINUTE",
- "FIVE_MINUTES",
- "TEN_MINUTES",
- "FIFTEEN_MINUTES",
- "THIRTY_MINUTES",
- "ONE_HOUR",
- "TWO_HOURS"
- ]
- },
- "impossibleTravelOptions": {
- "description": "Options on impossible travel detection method.",
- "properties": {
- "baselineUserLocations": {
- "description": "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.",
- "example": true,
- "type": "boolean"
- }
- },
- "type": "object"
- },
- "keepAlive": {
- "description": "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.",
- "enum": [
- 0,
- 60,
- 300,
- 600,
- 900,
- 1800,
- 3600,
- 7200,
- 10800,
- 21600
- ],
- "format": "int32",
- "type": "integer",
- "x-enum-varnames": [
- "ZERO_MINUTES",
- "ONE_MINUTE",
- "FIVE_MINUTES",
- "TEN_MINUTES",
- "FIFTEEN_MINUTES",
- "THIRTY_MINUTES",
- "ONE_HOUR",
- "TWO_HOURS",
- "THREE_HOURS",
- "SIX_HOURS"
- ]
- },
- "maxSignalDuration": {
- "description": "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.",
- "enum": [
- 0,
- 60,
- 300,
- 600,
- 900,
- 1800,
- 3600,
- 7200,
- 10800,
- 21600,
- 43200,
- 86400
- ],
- "format": "int32",
- "type": "integer",
- "x-enum-varnames": [
- "ZERO_MINUTES",
- "ONE_MINUTE",
- "FIVE_MINUTES",
- "TEN_MINUTES",
- "FIFTEEN_MINUTES",
- "THIRTY_MINUTES",
- "ONE_HOUR",
- "TWO_HOURS",
- "THREE_HOURS",
- "SIX_HOURS",
- "TWELVE_HOURS",
- "ONE_DAY"
- ]
- },
- "newValueOptions": {
- "description": "Options on new value detection method.",
- "properties": {
- "forgetAfter": {
- "description": "The duration in days after which a learned value is forgotten.",
- "enum": [
- 1,
- 2,
- 7,
- 14,
- 21,
- 28
- ],
- "format": "int32",
- "type": "integer",
- "x-enum-varnames": [
- "ONE_DAY",
- "TWO_DAYS",
- "ONE_WEEK",
- "TWO_WEEKS",
- "THREE_WEEKS",
- "FOUR_WEEKS"
- ]
- },
- "learningDuration": {
- "default": 0,
- "description": "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.",
- "enum": [
- 0,
- 1,
- 7
- ],
- "format": "int32",
- "type": "integer",
- "x-enum-varnames": [
- "ZERO_DAYS",
- "ONE_DAY",
- "SEVEN_DAYS"
- ]
- },
- "learningMethod": {
- "default": "duration",
- "description": "The learning method used to determine when signals should be generated for values that weren't learned.",
- "enum": [
- "duration",
- "threshold"
- ],
- "type": "string",
- "x-enum-varnames": [
- "DURATION",
- "THRESHOLD"
- ]
- },
- "learningThreshold": {
- "default": 0,
- "description": "A number of occurrences after which signals will be generated for values that weren't learned.",
- "enum": [
- 0,
- 1
- ],
- "format": "int32",
- "type": "integer",
- "x-enum-varnames": [
- "ZERO_OCCURRENCES",
- "ONE_OCCURRENCE"
- ]
- }
- },
- "type": "object"
- },
- "thirdPartyRuleOptions": {
- "description": "Options on third party detection method.",
- "properties": {
- "defaultNotifications": {
- "description": "Notification targets for the logs that do not correspond to any of the cases.",
- "items": {
- "description": "Notification.",
- "type": "string"
- },
- "type": "array"
- },
- "defaultStatus": {
- "description": "Severity of the Security Signal.",
- "enum": [
- "info",
- "low",
- "medium",
- "high",
- "critical"
- ],
- "example": "critical",
- "type": "string",
- "x-enum-varnames": [
- "INFO",
- "LOW",
- "MEDIUM",
- "HIGH",
- "CRITICAL"
- ]
- },
- "rootQueries": {
- "description": "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.",
- "items": {
- "description": "A query to be combined with the third party case query.",
- "properties": {
- "groupByFields": {
- "description": "Fields to group by.",
- "items": {
- "description": "Field.",
- "type": "string"
- },
- "type": "array"
- },
- "query": {
- "description": "Query to run on logs.",
- "example": "source:cloudtrail",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "signalTitleTemplate": {
- "description": "A template for the signal title; if omitted, the title is generated based on the case name.",
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "type": "object"
- },
- "queries": {
- "description": "Queries for selecting logs analyzed by the job.",
- "items": {
- "description": "Query for selecting logs analyzed by the historical job.",
- "properties": {
- "aggregation": {
- "description": "The aggregation type.",
- "enum": [
- "count",
- "cardinality",
- "sum",
- "max",
- "new_value",
- "geo_data",
- "event_count",
- "none"
- ],
- "type": "string",
- "x-enum-varnames": [
- "COUNT",
- "CARDINALITY",
- "SUM",
- "MAX",
- "NEW_VALUE",
- "GEO_DATA",
- "EVENT_COUNT",
- "NONE"
- ]
- },
- "distinctFields": {
- "description": "Field for which the cardinality is measured. Sent as an array.",
- "items": {
- "description": "Field.",
- "type": "string"
- },
- "type": "array"
- },
- "groupByFields": {
- "description": "Fields to group by.",
- "items": {
- "description": "Field.",
- "type": "string"
- },
- "type": "array"
- },
- "hasOptionalGroupByFields": {
- "description": "When false, events without a group-by value are ignored by the query. When true, events with missing group-by fields are processed with `N/A`, replacing the missing values.",
- "example": false,
- "readOnly": true,
- "type": "boolean"
- },
- "metrics": {
- "description": "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.",
- "items": {
- "description": "Field.",
- "type": "string"
- },
- "type": "array"
- },
- "name": {
- "description": "Name of the query.",
- "type": "string"
- },
- "query": {
- "description": "Query to run on logs.",
- "example": "a > 3",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
+ {
+ "description": "The missing value to use if there is a number valued facet.",
+ "format": "double",
+ "type": "number"
+ }
+ ]
+ },
+ "sort": {
+ "description": "A sort rule.",
+ "example": {
+ "aggregation": "count",
+ "order": "asc"
},
- "referenceTables": {
- "description": "Reference tables used in the queries.",
- "items": {
- "description": "Reference tables used in the queries.",
- "properties": {
- "checkPresence": {
- "description": "Whether to include or exclude the matched values.",
- "type": "boolean"
- },
- "columnName": {
- "description": "The name of the column in the reference table.",
- "type": "string"
- },
- "logFieldPath": {
- "description": "The field in the log to match against the reference table.",
- "type": "string"
- },
- "ruleQueryName": {
- "description": "The name of the query to apply the reference table to.",
- "type": "string"
- },
- "tableName": {
- "description": "The name of the reference table.",
- "type": "string"
- }
- },
- "type": "object"
+ "properties": {
+ "aggregation": {
+ "description": "An aggregation function.",
+ "enum": [
+ "count",
+ "cardinality",
+ "pc75",
+ "pc90",
+ "pc95",
+ "pc98",
+ "pc99",
+ "sum",
+ "min",
+ "max",
+ "avg",
+ "median"
+ ],
+ "example": "pc90",
+ "type": "string",
+ "x-enum-varnames": [
+ "COUNT",
+ "CARDINALITY",
+ "PERCENTILE_75",
+ "PERCENTILE_90",
+ "PERCENTILE_95",
+ "PERCENTILE_98",
+ "PERCENTILE_99",
+ "SUM",
+ "MIN",
+ "MAX",
+ "AVG",
+ "MEDIAN"
+ ]
},
- "type": "array"
- },
- "tags": {
- "description": "Tags for generated signals.",
- "items": {
+ "metric": {
+ "description": "The metric to sort by (only used for `type=measure`).",
+ "example": "@duration",
"type": "string"
- },
- "type": "array"
- },
- "thirdPartyCases": {
- "description": "Cases for generating results from third-party detection method. Only available for third-party detection method.",
- "example": [],
- "items": {
- "description": "Case when a signal is generated by a third party rule.",
- "properties": {
- "name": {
- "description": "Name of the case.",
- "type": "string"
- },
- "notifications": {
- "description": "Notification targets for each case.",
- "items": {
- "description": "Notification.",
- "type": "string"
- },
- "type": "array"
- },
- "query": {
- "description": "A query to map a third party event to this case.",
- "type": "string"
- },
- "status": {
- "description": "Severity of the Security Signal.",
- "enum": [
- "info",
- "low",
- "medium",
- "high",
- "critical"
- ],
- "example": "critical",
- "type": "string",
- "x-enum-varnames": [
- "INFO",
- "LOW",
- "MEDIUM",
- "HIGH",
- "CRITICAL"
- ]
- }
- },
- "required": [
- "status"
+ },
+ "order": {
+ "description": "The order to use, ascending or descending.",
+ "enum": [
+ "asc",
+ "desc"
],
- "type": "object"
+ "example": "asc",
+ "type": "string",
+ "x-enum-varnames": [
+ "ASCENDING",
+ "DESCENDING"
+ ]
},
- "type": "array"
- },
- "to": {
- "description": "Ending time of data analyzed by the job.",
- "example": 1729847070000,
- "format": "int64",
- "type": "integer"
+ "type": {
+ "default": "alphabetical",
+ "description": "The type of sorting algorithm.",
+ "enum": [
+ "alphabetical",
+ "measure"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "ALPHABETICAL",
+ "MEASURE"
+ ]
+ }
},
- "type": {
- "description": "Job type.",
- "type": "string"
- }
+ "type": "object"
},
- "required": [
- "from",
- "to",
- "index",
- "name",
- "cases",
- "queries",
- "message"
- ],
- "type": "object"
+ "total": {
+ "default": false,
+ "description": "A resulting object to put the given computes in over all the matching records.",
+ "oneOf": [
+ {
+ "description": "If set to true, creates an additional bucket labeled \"$facet_total\".",
+ "type": "boolean"
+ },
+ {
+ "description": "A string to use as the key value for the total bucket.",
+ "type": "string"
+ },
+ {
+ "description": "A number to use as the key value for the total bucket.",
+ "format": "double",
+ "type": "number"
+ }
+ ]
+ }
},
- "jobName": {
- "description": "Job name.",
- "type": "string"
+ "required": [
+ "facet"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "options": {
+ "description": "Global query options that are used during the query.\nNote: You should only supply timezone or time offset but not both otherwise the query will fail.",
+ "properties": {
+ "timeOffset": {
+ "description": "The time offset (in seconds) to apply to the query.",
+ "format": "int64",
+ "type": "integer"
},
- "jobStatus": {
- "description": "Job status.",
+ "timezone": {
+ "default": "UTC",
+ "description": "The timezone can be specified as GMT, UTC, an offset from UTC (like UTC+1), or as a Timezone Database identifier (like America/New_York).",
+ "example": "GMT",
"type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "default": "aggregate_request",
+ "description": "The type of resource. The value should always be aggregate_request.",
+ "enum": [
+ "aggregate_request"
+ ],
+ "example": "aggregate_request",
+ "type": "string",
+ "x-enum-varnames": [
+ "AGGREGATE_REQUEST"
+ ]
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "The response object for the spans aggregate API endpoint.",
+ "properties": {
+ "data": {
+ "description": "The list of matching buckets, one item per bucket.",
+ "items": {
+ "description": "Spans aggregate.",
+ "properties": {
+ "attributes": {
+ "description": "A bucket values.",
+ "properties": {
+ "by": {
+ "additionalProperties": {
+ "description": "The values for each group by."
+ },
+ "description": "The key, value pairs for each group by.",
+ "example": {
+ "@state": "success",
+ "@version": "abc"
+ },
+ "type": "object"
},
- "modifiedAt": {
- "description": "Last modification time of the job.",
- "type": "string"
+ "compute": {
+ "description": "The compute data.",
+ "type": "object"
+ },
+ "computes": {
+ "additionalProperties": {
+ "description": "A bucket value, can be either a timeseries or a single value.",
+ "oneOf": [
+ {
+ "description": "A single string value.",
+ "type": "string"
+ },
+ {
+ "description": "A single number value.",
+ "format": "double",
+ "type": "number"
+ },
+ {
+ "description": "A timeseries array.",
+ "items": {
+ "description": "A timeseries point.",
+ "properties": {
+ "time": {
+ "description": "The time value for this point.",
+ "example": "2023-06-08T11:55:00Z",
+ "type": "string"
+ },
+ "value": {
+ "description": "The value for this point.",
+ "example": 19,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array",
+ "x-generate-alias-as-model": true
+ }
+ ]
+ },
+ "description": "A map of the metric name -> value for regular compute or list of values for a timeseries.",
+ "type": "object"
}
},
"type": "object"
},
"id": {
- "description": "ID of the job.",
+ "description": "ID of the spans aggregate.",
"type": "string"
},
"type": {
- "description": "Type of payload.",
+ "description": "The spans aggregate bucket type.",
"enum": [
- "historicalDetectionsJob"
+ "bucket"
],
+ "example": "bucket",
"type": "string",
"x-enum-varnames": [
- "HISTORICALDETECTIONSJOB"
+ "BUCKET"
]
}
},
@@ -387062,13 +411007,56 @@
"type": "array"
},
"meta": {
- "description": "Metadata about the list of jobs.",
+ "description": "The metadata associated with a request.",
"properties": {
- "totalCount": {
- "description": "Number of jobs in the list.",
- "format": "int32",
- "maximum": 2147483647,
+ "elapsed": {
+ "description": "The time elapsed in milliseconds.",
+ "example": 132,
+ "format": "int64",
"type": "integer"
+ },
+ "request_id": {
+ "description": "The identifier of the request.",
+ "example": "MWlFUjVaWGZTTTZPYzM0VXp1OXU2d3xLSVpEMjZKQ0VKUTI0dEYtM3RSOFVR",
+ "type": "string"
+ },
+ "status": {
+ "description": "The status of the response.",
+ "enum": [
+ "done",
+ "timeout"
+ ],
+ "example": "done",
+ "type": "string",
+ "x-enum-varnames": [
+ "DONE",
+ "TIMEOUT"
+ ]
+ },
+ "warnings": {
+ "description": "A list of warnings (non fatal errors) encountered, partial results might be returned if\nwarnings are present in the response.",
+ "items": {
+ "description": "A warning message indicating something that went wrong with the query.",
+ "properties": {
+ "code": {
+ "description": "A unique code for this type of warning.",
+ "example": "unknown_index",
+ "type": "string"
+ },
+ "detail": {
+ "description": "A detailed explanation of this specific warning.",
+ "example": "indexes: foo, bar",
+ "type": "string"
+ },
+ "title": {
+ "description": "A short human-readable summary of the warning.",
+ "example": "One or several indexes are missing or invalid, results hold data from the other indexes",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
}
},
"type": "object"
@@ -387134,7 +411122,7 @@
}
}
},
- "description": "Not Authorized"
+ "description": "Forbidden"
},
"429": {
"content": {
@@ -387171,715 +411159,315 @@
"appKeyAuth": []
},
{
- "AuthZ": []
+ "AuthZ": [
+ "apm_read"
+ ]
}
],
- "summary": "List historical jobs",
+ "summary": "Aggregate spans",
"tags": [
- "Security Monitoring"
+ "Spans"
],
- "x-menu-order": 20,
+ "x-codegen-request-body-name": "body",
+ "x-menu-order": 3,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "apm_read"
+ ]
+ },
"x-undo": {
"type": "safe"
- },
- "x-unstable": "**Note**: This endpoint is in beta and may be subject to changes.\nPlease check the documentation regularly for updates."
- },
- "post": {
- "description": "Run a historical job.",
- "operationId": "RunHistoricalJob",
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Run a historical job request.",
- "properties": {
- "data": {
- "description": "Data for running a historical job request.",
- "properties": {
- "attributes": {
- "description": "Run a historical job request.",
+ }
+ }
+ },
+ "/api/v2/spans/events": {
+ "get": {
+ "description": "List endpoint returns spans that match a span search query.\n[Results are paginated][1].\n\nUse this endpoint to see your latest spans.\nThis endpoint is rate limited to `300` requests per hour.\n\n[1]: /logs/guide/collect-multiple-logs-with-pagination?tab=v2api",
+ "operationId": "ListSpansGet",
+ "parameters": [
+ {
+ "description": "Search query following spans syntax.",
+ "example": "@datacenter:us @role:db",
+ "in": "query",
+ "name": "filter[query]",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "Minimum timestamp for requested spans. Supports date-time ISO8601, date math, and regular timestamps (milliseconds).",
+ "example": "2023-01-02T09:42:36.320Z",
+ "in": "query",
+ "name": "filter[from]",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "Maximum timestamp for requested spans. Supports date-time ISO8601, date math, and regular timestamps (milliseconds).",
+ "example": "2023-01-03T09:42:36.320Z",
+ "in": "query",
+ "name": "filter[to]",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "Order of spans in results.",
+ "in": "query",
+ "name": "sort",
+ "required": false,
+ "schema": {
+ "description": "Sort parameters when querying spans.",
+ "enum": [
+ "timestamp",
+ "-timestamp"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "TIMESTAMP_ASCENDING",
+ "TIMESTAMP_DESCENDING"
+ ]
+ }
+ },
+ {
+ "description": "List following results with a cursor provided in the previous query.",
+ "example": "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==",
+ "in": "query",
+ "name": "page[cursor]",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "Maximum number of spans in the response.",
+ "example": 25,
+ "in": "query",
+ "name": "page[limit]",
+ "required": false,
+ "schema": {
+ "default": 10,
+ "format": "int32",
+ "maximum": 1000,
+ "type": "integer"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Response object with all spans matching the request and pagination information.",
+ "properties": {
+ "data": {
+ "description": "Array of spans matching the request.",
+ "items": {
+ "description": "Object description of a spans after being processed and stored by Datadog.",
"properties": {
- "fromRule": {
- "description": "Definition of a historical job based on a security monitoring rule.",
+ "attributes": {
+ "description": "JSON object containing all span attributes and their associated values.",
"properties": {
- "caseIndex": {
- "description": "Index of the rule case applied by the job.",
- "example": 0,
- "format": "int32",
- "maximum": 9,
- "type": "integer"
+ "attributes": {
+ "additionalProperties": {},
+ "description": "JSON object of attributes from your span.",
+ "example": {
+ "customAttribute": 123,
+ "duration": 2345
+ },
+ "type": "object"
},
- "from": {
- "description": "Starting time of data analyzed by the job.",
- "example": 1729843470000,
- "format": "int64",
- "type": "integer"
+ "custom": {
+ "additionalProperties": {},
+ "description": "JSON object of custom spans data.",
+ "type": "object"
},
- "id": {
- "description": "ID of the detection rule used to create the job.",
- "example": "abc-def-ghi",
+ "end_timestamp": {
+ "description": "End timestamp of your span.",
+ "example": "2023-01-02T09:42:36.420Z",
+ "format": "date-time",
"type": "string"
},
- "index": {
- "description": "Index used to load the data.",
- "example": "cloud_siem",
+ "env": {
+ "description": "Name of the environment from where the spans are being sent.",
+ "example": "prod",
"type": "string"
},
- "notifications": {
- "description": "Notifications sent when the job is completed.",
- "example": [
- "@sns-cloudtrail-results"
- ],
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "to": {
- "description": "Ending time of data analyzed by the job.",
- "example": 1729847070000,
- "format": "int64",
- "type": "integer"
- }
- },
- "required": [
- "id",
- "from",
- "to",
- "index",
- "caseIndex"
- ],
- "type": "object"
- },
- "id": {
- "description": "Request ID.",
- "type": "string"
- },
- "jobDefinition": {
- "description": "Definition of a historical job.",
- "properties": {
- "calculatedFields": {
- "description": "Calculated fields.",
- "items": {
- "description": "Calculated field.",
- "properties": {
- "expression": {
- "description": "Expression.",
- "example": "@request_end_timestamp - @request_start_timestamp",
- "type": "string"
- },
- "name": {
- "description": "Field name.",
- "example": "response_time",
- "type": "string"
- }
- },
- "required": [
- "name",
- "expression"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "cases": {
- "description": "Cases used for generating job results.",
- "items": {
- "description": "Case when signal is generated.",
- "properties": {
- "actions": {
- "description": "Action to perform for each rule case.",
- "items": {
- "description": "Action to perform when a signal is triggered. Only available for Application Security rule type.",
- "properties": {
- "options": {
- "description": "Options for the rule action",
- "properties": {
- "duration": {
- "description": "Duration of the action in seconds. 0 indicates no expiration.",
- "example": 0,
- "format": "int64",
- "minimum": 0,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "type": {
- "description": "The action type.",
- "enum": [
- "block_ip",
- "block_user"
- ],
- "type": "string",
- "x-enum-varnames": [
- "BLOCK_IP",
- "BLOCK_USER"
- ]
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "condition": {
- "description": "A case contains logical operations (`>`,`>=`, `&&`, `||`) to determine if a signal should be generated\nbased on the event counts in the previously defined queries.",
- "type": "string"
- },
- "name": {
- "description": "Name of the case.",
- "type": "string"
- },
- "notifications": {
- "description": "Notification targets.",
- "items": {
- "description": "Notification.",
- "type": "string"
- },
- "type": "array"
- },
- "status": {
- "description": "Severity of the Security Signal.",
- "enum": [
- "info",
- "low",
- "medium",
- "high",
- "critical"
- ],
- "example": "critical",
- "type": "string",
- "x-enum-varnames": [
- "INFO",
- "LOW",
- "MEDIUM",
- "HIGH",
- "CRITICAL"
- ]
- }
- },
- "required": [
- "status"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "from": {
- "description": "Starting time of data analyzed by the job.",
- "example": 1729843470000,
- "format": "int64",
- "type": "integer"
+ "host": {
+ "description": "Name of the machine from where the spans are being sent.",
+ "example": "i-0123",
+ "type": "string"
},
- "groupSignalsBy": {
- "description": "Additional grouping to perform on top of the existing groups in the query section. Must be a subset of the existing groups.",
- "example": [
- "service"
- ],
- "items": {
- "description": "Field to group by.",
- "type": "string"
- },
- "type": "array"
+ "ingestion_reason": {
+ "description": "The reason why the span was ingested.",
+ "example": "rule",
+ "type": "string"
},
- "index": {
- "description": "Index used to load the data.",
- "example": "cloud_siem",
+ "parent_id": {
+ "description": "Id of the span that's parent of this span.",
+ "example": "0",
"type": "string"
},
- "message": {
- "description": "Message for generated results.",
- "example": "A large number of failed login attempts.",
+ "resource_hash": {
+ "description": "Unique identifier of the resource.",
+ "example": "a12345678b91c23d",
"type": "string"
},
- "name": {
- "description": "Job name.",
- "example": "Excessive number of failed attempts.",
+ "resource_name": {
+ "description": "The name of the resource.",
+ "example": "agent",
"type": "string"
},
- "options": {
- "description": "Job options.",
- "properties": {
- "detectionMethod": {
- "description": "The detection method.",
- "enum": [
- "threshold",
- "new_value",
- "anomaly_detection",
- "impossible_travel",
- "hardcoded",
- "third_party",
- "anomaly_threshold"
- ],
- "type": "string",
- "x-enum-varnames": [
- "THRESHOLD",
- "NEW_VALUE",
- "ANOMALY_DETECTION",
- "IMPOSSIBLE_TRAVEL",
- "HARDCODED",
- "THIRD_PARTY",
- "ANOMALY_THRESHOLD"
- ]
- },
- "evaluationWindow": {
- "description": "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.",
- "enum": [
- 0,
- 60,
- 300,
- 600,
- 900,
- 1800,
- 3600,
- 7200
- ],
- "format": "int32",
- "type": "integer",
- "x-enum-varnames": [
- "ZERO_MINUTES",
- "ONE_MINUTE",
- "FIVE_MINUTES",
- "TEN_MINUTES",
- "FIFTEEN_MINUTES",
- "THIRTY_MINUTES",
- "ONE_HOUR",
- "TWO_HOURS"
- ]
- },
- "impossibleTravelOptions": {
- "description": "Options on impossible travel detection method.",
- "properties": {
- "baselineUserLocations": {
- "description": "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.",
- "example": true,
- "type": "boolean"
- }
- },
- "type": "object"
- },
- "keepAlive": {
- "description": "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.",
- "enum": [
- 0,
- 60,
- 300,
- 600,
- 900,
- 1800,
- 3600,
- 7200,
- 10800,
- 21600
- ],
- "format": "int32",
- "type": "integer",
- "x-enum-varnames": [
- "ZERO_MINUTES",
- "ONE_MINUTE",
- "FIVE_MINUTES",
- "TEN_MINUTES",
- "FIFTEEN_MINUTES",
- "THIRTY_MINUTES",
- "ONE_HOUR",
- "TWO_HOURS",
- "THREE_HOURS",
- "SIX_HOURS"
- ]
- },
- "maxSignalDuration": {
- "description": "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.",
- "enum": [
- 0,
- 60,
- 300,
- 600,
- 900,
- 1800,
- 3600,
- 7200,
- 10800,
- 21600,
- 43200,
- 86400
- ],
- "format": "int32",
- "type": "integer",
- "x-enum-varnames": [
- "ZERO_MINUTES",
- "ONE_MINUTE",
- "FIVE_MINUTES",
- "TEN_MINUTES",
- "FIFTEEN_MINUTES",
- "THIRTY_MINUTES",
- "ONE_HOUR",
- "TWO_HOURS",
- "THREE_HOURS",
- "SIX_HOURS",
- "TWELVE_HOURS",
- "ONE_DAY"
- ]
- },
- "newValueOptions": {
- "description": "Options on new value detection method.",
- "properties": {
- "forgetAfter": {
- "description": "The duration in days after which a learned value is forgotten.",
- "enum": [
- 1,
- 2,
- 7,
- 14,
- 21,
- 28
- ],
- "format": "int32",
- "type": "integer",
- "x-enum-varnames": [
- "ONE_DAY",
- "TWO_DAYS",
- "ONE_WEEK",
- "TWO_WEEKS",
- "THREE_WEEKS",
- "FOUR_WEEKS"
- ]
- },
- "learningDuration": {
- "default": 0,
- "description": "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.",
- "enum": [
- 0,
- 1,
- 7
- ],
- "format": "int32",
- "type": "integer",
- "x-enum-varnames": [
- "ZERO_DAYS",
- "ONE_DAY",
- "SEVEN_DAYS"
- ]
- },
- "learningMethod": {
- "default": "duration",
- "description": "The learning method used to determine when signals should be generated for values that weren't learned.",
- "enum": [
- "duration",
- "threshold"
- ],
- "type": "string",
- "x-enum-varnames": [
- "DURATION",
- "THRESHOLD"
- ]
- },
- "learningThreshold": {
- "default": 0,
- "description": "A number of occurrences after which signals will be generated for values that weren't learned.",
- "enum": [
- 0,
- 1
- ],
- "format": "int32",
- "type": "integer",
- "x-enum-varnames": [
- "ZERO_OCCURRENCES",
- "ONE_OCCURRENCE"
- ]
- }
- },
- "type": "object"
- },
- "thirdPartyRuleOptions": {
- "description": "Options on third party detection method.",
- "properties": {
- "defaultNotifications": {
- "description": "Notification targets for the logs that do not correspond to any of the cases.",
- "items": {
- "description": "Notification.",
- "type": "string"
- },
- "type": "array"
- },
- "defaultStatus": {
- "description": "Severity of the Security Signal.",
- "enum": [
- "info",
- "low",
- "medium",
- "high",
- "critical"
- ],
- "example": "critical",
- "type": "string",
- "x-enum-varnames": [
- "INFO",
- "LOW",
- "MEDIUM",
- "HIGH",
- "CRITICAL"
- ]
- },
- "rootQueries": {
- "description": "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.",
- "items": {
- "description": "A query to be combined with the third party case query.",
- "properties": {
- "groupByFields": {
- "description": "Fields to group by.",
- "items": {
- "description": "Field.",
- "type": "string"
- },
- "type": "array"
- },
- "query": {
- "description": "Query to run on logs.",
- "example": "source:cloudtrail",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "signalTitleTemplate": {
- "description": "A template for the signal title; if omitted, the title is generated based on the case name.",
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "type": "object"
+ "retained_by": {
+ "description": "The reason why the span was indexed.",
+ "example": "retention_filter",
+ "type": "string"
},
- "queries": {
- "description": "Queries for selecting logs analyzed by the job.",
- "items": {
- "description": "Query for selecting logs analyzed by the historical job.",
- "properties": {
- "aggregation": {
- "description": "The aggregation type.",
- "enum": [
- "count",
- "cardinality",
- "sum",
- "max",
- "new_value",
- "geo_data",
- "event_count",
- "none"
- ],
- "type": "string",
- "x-enum-varnames": [
- "COUNT",
- "CARDINALITY",
- "SUM",
- "MAX",
- "NEW_VALUE",
- "GEO_DATA",
- "EVENT_COUNT",
- "NONE"
- ]
- },
- "distinctFields": {
- "description": "Field for which the cardinality is measured. Sent as an array.",
- "items": {
- "description": "Field.",
- "type": "string"
- },
- "type": "array"
- },
- "groupByFields": {
- "description": "Fields to group by.",
- "items": {
- "description": "Field.",
- "type": "string"
- },
- "type": "array"
- },
- "hasOptionalGroupByFields": {
- "description": "When false, events without a group-by value are ignored by the query. When true, events with missing group-by fields are processed with `N/A`, replacing the missing values.",
- "example": false,
- "readOnly": true,
- "type": "boolean"
- },
- "metrics": {
- "description": "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.",
- "items": {
- "description": "Field.",
- "type": "string"
- },
- "type": "array"
- },
- "name": {
- "description": "Name of the query.",
- "type": "string"
- },
- "query": {
- "description": "Query to run on logs.",
- "example": "a > 3",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
+ "service": {
+ "description": "The name of the application or service generating the span events.\nIt is used to switch from APM to Logs, so make sure you define the same\nvalue when you use both products.",
+ "example": "agent",
+ "type": "string"
},
- "referenceTables": {
- "description": "Reference tables used in the queries.",
- "items": {
- "description": "Reference tables used in the queries.",
- "properties": {
- "checkPresence": {
- "description": "Whether to include or exclude the matched values.",
- "type": "boolean"
- },
- "columnName": {
- "description": "The name of the column in the reference table.",
- "type": "string"
- },
- "logFieldPath": {
- "description": "The field in the log to match against the reference table.",
- "type": "string"
- },
- "ruleQueryName": {
- "description": "The name of the query to apply the reference table to.",
- "type": "string"
- },
- "tableName": {
- "description": "The name of the reference table.",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
+ "single_span": {
+ "description": "Whether or not the span was collected as a stand-alone span. Always associated to \"single_span\" ingestion_reason if true.",
+ "example": true,
+ "type": "boolean"
},
- "tags": {
- "description": "Tags for generated signals.",
- "items": {
- "type": "string"
- },
- "type": "array"
+ "span_id": {
+ "description": "Id of the span.",
+ "example": "1234567890987654321",
+ "type": "string"
},
- "thirdPartyCases": {
- "description": "Cases for generating results from third-party detection method. Only available for third-party detection method.",
- "example": [],
- "items": {
- "description": "Case when a signal is generated by a third party rule.",
- "properties": {
- "name": {
- "description": "Name of the case.",
- "type": "string"
- },
- "notifications": {
- "description": "Notification targets for each case.",
- "items": {
- "description": "Notification.",
- "type": "string"
- },
- "type": "array"
- },
- "query": {
- "description": "A query to map a third party event to this case.",
- "type": "string"
- },
- "status": {
- "description": "Severity of the Security Signal.",
- "enum": [
- "info",
- "low",
- "medium",
- "high",
- "critical"
- ],
- "example": "critical",
- "type": "string",
- "x-enum-varnames": [
- "INFO",
- "LOW",
- "MEDIUM",
- "HIGH",
- "CRITICAL"
- ]
- }
- },
- "required": [
- "status"
- ],
- "type": "object"
+ "start_timestamp": {
+ "description": "Start timestamp of your span.",
+ "example": "2023-01-02T09:42:36.320Z",
+ "format": "date-time",
+ "type": "string"
+ },
+ "tags": {
+ "description": "Array of tags associated with your span.",
+ "example": [
+ "team:A"
+ ],
+ "items": {
+ "description": "Tag associated with your span.",
+ "type": "string"
},
"type": "array"
},
- "to": {
- "description": "Ending time of data analyzed by the job.",
- "example": 1729847070000,
- "format": "int64",
- "type": "integer"
+ "trace_id": {
+ "description": "Id of the trace to which the span belongs.",
+ "example": "1234567890987654321",
+ "type": "string"
},
"type": {
- "description": "Job type.",
+ "description": "The type of the span.",
+ "example": "web",
"type": "string"
}
},
- "required": [
- "from",
- "to",
- "index",
- "name",
- "cases",
- "queries",
- "message"
- ],
"type": "object"
+ },
+ "id": {
+ "description": "Unique ID of the Span.",
+ "example": "AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA",
+ "type": "string"
+ },
+ "type": {
+ "default": "spans",
+ "description": "Type of the span.",
+ "enum": [
+ "spans"
+ ],
+ "example": "spans",
+ "type": "string",
+ "x-enum-varnames": [
+ "SPANS"
+ ]
}
},
"type": "object"
},
- "type": {
- "description": "Type of data.",
- "enum": [
- "historicalDetectionsJobCreate"
- ],
- "type": "string",
- "x-enum-varnames": [
- "HISTORICALDETECTIONSJOBCREATE"
- ]
- }
+ "type": "array"
},
- "type": "object"
- }
- },
- "type": "object"
- }
- }
- },
- "required": true
- },
- "responses": {
- "201": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Run a historical job response.",
- "properties": {
- "data": {
- "description": "The definition of `JobCreateResponseData` object.",
+ "links": {
+ "description": "Links attributes.",
"properties": {
- "id": {
- "description": "ID of the created job.",
+ "next": {
+ "description": "Link for the next set of results. Note that the request can also be made using the\nPOST endpoint.",
+ "example": "https://app.datadoghq.com/api/v2/spans/event?filter[query]=foo&page[cursor]=eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "meta": {
+ "description": "The metadata associated with a request.",
+ "properties": {
+ "elapsed": {
+ "description": "The time elapsed in milliseconds.",
+ "example": 132,
+ "format": "int64",
+ "type": "integer"
+ },
+ "page": {
+ "description": "Paging attributes.",
+ "properties": {
+ "after": {
+ "description": "The cursor to use to get the next results, if any. To make the next request, use the same\nparameters with the addition of the `page[cursor]`.",
+ "example": "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "request_id": {
+ "description": "The identifier of the request.",
+ "example": "MWlFUjVaWGZTTTZPYzM0VXp1OXU2d3xLSVpEMjZKQ0VKUTI0dEYtM3RSOFVR",
"type": "string"
},
- "type": {
- "description": "Type of payload.",
+ "status": {
+ "description": "The status of the response.",
"enum": [
- "historicalDetectionsJob"
+ "done",
+ "timeout"
],
+ "example": "done",
"type": "string",
"x-enum-varnames": [
- "HISTORICALDETECTIONSJOB"
+ "DONE",
+ "TIMEOUT"
]
+ },
+ "warnings": {
+ "description": "A list of warnings (non fatal errors) encountered, partial results might be returned if\nwarnings are present in the response.",
+ "items": {
+ "description": "A warning message indicating something that went wrong with the query.",
+ "properties": {
+ "code": {
+ "description": "A unique code for this type of warning.",
+ "example": "unknown_index",
+ "type": "string"
+ },
+ "detail": {
+ "description": "A detailed explanation of this specific warning.",
+ "example": "indexes: foo, bar",
+ "type": "string"
+ },
+ "title": {
+ "description": "A short human-readable summary of the warning.",
+ "example": "One or several indexes are missing or invalid, results hold data from the other indexes",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
}
},
"type": "object"
@@ -387889,7 +411477,7 @@
}
}
},
- "description": "Status created"
+ "description": "OK"
},
"400": {
"content": {
@@ -387899,41 +411487,52 @@
"properties": {
"errors": {
"description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Bad Request"
- },
- "401": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
"items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
"type": "array"
}
@@ -387945,7 +411544,7 @@
}
}
},
- "description": "Concurrent Modification"
+ "description": "Bad Request."
},
"403": {
"content": {
@@ -387955,13 +411554,52 @@
"properties": {
"errors": {
"description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
"items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
"type": "array"
}
@@ -387973,9 +411611,9 @@
}
}
},
- "description": "Not Authorized"
+ "description": "Forbidden: Access denied."
},
- "404": {
+ "422": {
"content": {
"application/json": {
"schema": {
@@ -387983,13 +411621,52 @@
"properties": {
"errors": {
"description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
"items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
"type": "array"
}
@@ -388001,7 +411678,7 @@
}
}
},
- "description": "Not Found"
+ "description": "Unprocessable Entity."
},
"429": {
"content": {
@@ -388011,13 +411688,52 @@
"properties": {
"errors": {
"description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
"items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
"type": "array"
}
@@ -388029,7 +411745,7 @@
}
}
},
- "description": "Too many requests"
+ "description": "Too many requests: The rate limit set by the API has been exceeded."
}
},
"security": [
@@ -388039,120 +411755,127 @@
},
{
"AuthZ": [
- "security_monitoring_rules_write"
+ "apm_read"
]
}
],
- "summary": "Run a historical job",
+ "summary": "Get a list of spans",
"tags": [
- "Security Monitoring"
+ "Spans"
],
- "x-codegen-request-body-name": "body",
- "x-given": {
- "historical_job": {
- "parameters": [
- {
- "name": "body",
- "value": "{\n \"data\": {\n \"type\": \"historicalDetectionsJobCreate\",\n \"attributes\": {\n \"jobDefinition\": {\n \"type\": \"log_detection\",\n \"name\": \"Excessive number of failed attempts.\",\n \"queries\": [\n {\n \"query\": \"source:non_existing_src_weekend\",\n \"aggregation\": \"count\",\n \"groupByFields\": [],\n \"distinctFields\": []\n }\n ],\n \"cases\": [\n {\n \"name\": \"Condition 1\",\n \"status\": \"info\",\n \"notifications\": [],\n \"condition\": \"a > 1\"\n }\n ],\n \"options\": {\n \"keepAlive\": 3600,\n \"maxSignalDuration\": 86400,\n \"evaluationWindow\": 900\n },\n \"message\": \"A large number of failed login attempts.\",\n \"tags\": [],\n \"from\": 1730387522611,\n \"to\": 1730387532611,\n \"index\": \"main\"\n }\n }\n }\n}"
- }
- ],
- "step": "there is a valid \"historical_job\" in the system"
- }
- },
- "x-menu-order": 19,
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "security_monitoring_rules_write"
- ]
+ "x-menu-order": 1,
+ "x-pagination": {
+ "cursorParam": "page[cursor]",
+ "cursorPath": "meta.page.after",
+ "limitParam": "page[limit]",
+ "resultsPath": "data"
},
"x-undo": {
- "type": "idempotent"
- },
- "x-unstable": "**Note**: This endpoint is in beta and may be subject to changes.\nPlease check the documentation regularly for updates."
+ "type": "safe"
+ }
}
},
- "/api/v2/siem-historical-detections/jobs/signal_convert": {
+ "/api/v2/spans/events/search": {
"post": {
- "description": "Convert a job result to a signal.",
- "operationId": "ConvertJobResultToSignal",
+ "description": "List endpoint returns spans that match a span search query.\n[Results are paginated][1].\n\nUse this endpoint to build complex spans filtering and search.\nThis endpoint is rate limited to `300` requests per hour.\n\n[1]: /logs/guide/collect-multiple-logs-with-pagination?tab=v2api",
+ "operationId": "ListSpans",
"requestBody": {
"content": {
"application/json": {
"schema": {
- "description": "Request for converting historical job results to signals.",
+ "description": "The request for a spans list.",
"properties": {
"data": {
- "description": "Data for converting historical job results to signals.",
+ "description": "The object containing the query content.",
"properties": {
"attributes": {
- "description": "Attributes for converting historical job results to signals.",
+ "description": "The object containing all the query parameters.",
"properties": {
- "id": {
- "description": "Request ID.",
- "type": "string"
- },
- "jobResultIds": {
- "description": "Job result IDs.",
- "example": [
- ""
- ],
- "items": {
- "type": "string"
+ "filter": {
+ "description": "The search and filter query settings.",
+ "properties": {
+ "from": {
+ "default": "now-15m",
+ "description": "The minimum time for the requested spans, supports date-time ISO8601, date math, and regular timestamps (milliseconds).",
+ "example": "now-15m",
+ "type": "string"
+ },
+ "query": {
+ "default": "*",
+ "description": "The search query - following the span search syntax.",
+ "example": "service:web* AND @http.status_code:[200 TO 299]",
+ "type": "string"
+ },
+ "to": {
+ "default": "now",
+ "description": "The maximum time for the requested spans, supports date-time ISO8601, date math, and regular timestamps (milliseconds).",
+ "example": "now",
+ "type": "string"
+ }
},
- "type": "array"
+ "type": "object"
},
- "notifications": {
- "description": "Notifications sent.",
- "example": [
- ""
- ],
- "items": {
- "type": "string"
+ "options": {
+ "description": "Global query options that are used during the query.\nNote: You should only supply timezone or time offset but not both otherwise the query will fail.",
+ "properties": {
+ "timeOffset": {
+ "description": "The time offset (in seconds) to apply to the query.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "timezone": {
+ "default": "UTC",
+ "description": "The timezone can be specified as GMT, UTC, an offset from UTC (like UTC+1), or as a Timezone Database identifier (like America/New_York).",
+ "example": "GMT",
+ "type": "string"
+ }
},
- "type": "array"
+ "type": "object"
},
- "signalMessage": {
- "description": "Message of generated signals.",
- "example": "A large number of failed login attempts.",
- "type": "string"
+ "page": {
+ "description": "Paging attributes for listing spans.",
+ "properties": {
+ "cursor": {
+ "description": "List following results with a cursor provided in the previous query.",
+ "example": "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==",
+ "type": "string"
+ },
+ "limit": {
+ "default": 10,
+ "description": "Maximum number of spans in the response.",
+ "example": 25,
+ "format": "int32",
+ "maximum": 1000,
+ "type": "integer"
+ }
+ },
+ "type": "object"
},
- "signalSeverity": {
- "description": "Severity of the Security Signal.",
+ "sort": {
+ "description": "Sort parameters when querying spans.",
"enum": [
- "info",
- "low",
- "medium",
- "high",
- "critical"
+ "timestamp",
+ "-timestamp"
],
- "example": "critical",
"type": "string",
"x-enum-varnames": [
- "INFO",
- "LOW",
- "MEDIUM",
- "HIGH",
- "CRITICAL"
+ "TIMESTAMP_ASCENDING",
+ "TIMESTAMP_DESCENDING"
]
}
},
- "required": [
- "jobResultIds",
- "signalSeverity",
- "signalMessage",
- "notifications"
- ],
"type": "object"
},
"type": {
- "description": "Type of payload.",
+ "default": "search_request",
+ "description": "The type of resource. The value should always be search_request.",
"enum": [
- "historicalDetectionsJobResultSignalConversion"
+ "search_request"
],
+ "example": "search_request",
"type": "string",
"x-enum-varnames": [
- "HISTORICALDETECTIONSJOBRESULTSIGNALCONVERSION"
+ "SEARCH_REQUEST"
]
}
},
@@ -388166,7 +411889,224 @@
"required": true
},
"responses": {
- "204": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Response object with all spans matching the request and pagination information.",
+ "properties": {
+ "data": {
+ "description": "Array of spans matching the request.",
+ "items": {
+ "description": "Object description of a spans after being processed and stored by Datadog.",
+ "properties": {
+ "attributes": {
+ "description": "JSON object containing all span attributes and their associated values.",
+ "properties": {
+ "attributes": {
+ "additionalProperties": {},
+ "description": "JSON object of attributes from your span.",
+ "example": {
+ "customAttribute": 123,
+ "duration": 2345
+ },
+ "type": "object"
+ },
+ "custom": {
+ "additionalProperties": {},
+ "description": "JSON object of custom spans data.",
+ "type": "object"
+ },
+ "end_timestamp": {
+ "description": "End timestamp of your span.",
+ "example": "2023-01-02T09:42:36.420Z",
+ "format": "date-time",
+ "type": "string"
+ },
+ "env": {
+ "description": "Name of the environment from where the spans are being sent.",
+ "example": "prod",
+ "type": "string"
+ },
+ "host": {
+ "description": "Name of the machine from where the spans are being sent.",
+ "example": "i-0123",
+ "type": "string"
+ },
+ "ingestion_reason": {
+ "description": "The reason why the span was ingested.",
+ "example": "rule",
+ "type": "string"
+ },
+ "parent_id": {
+ "description": "Id of the span that's parent of this span.",
+ "example": "0",
+ "type": "string"
+ },
+ "resource_hash": {
+ "description": "Unique identifier of the resource.",
+ "example": "a12345678b91c23d",
+ "type": "string"
+ },
+ "resource_name": {
+ "description": "The name of the resource.",
+ "example": "agent",
+ "type": "string"
+ },
+ "retained_by": {
+ "description": "The reason why the span was indexed.",
+ "example": "retention_filter",
+ "type": "string"
+ },
+ "service": {
+ "description": "The name of the application or service generating the span events.\nIt is used to switch from APM to Logs, so make sure you define the same\nvalue when you use both products.",
+ "example": "agent",
+ "type": "string"
+ },
+ "single_span": {
+ "description": "Whether or not the span was collected as a stand-alone span. Always associated to \"single_span\" ingestion_reason if true.",
+ "example": true,
+ "type": "boolean"
+ },
+ "span_id": {
+ "description": "Id of the span.",
+ "example": "1234567890987654321",
+ "type": "string"
+ },
+ "start_timestamp": {
+ "description": "Start timestamp of your span.",
+ "example": "2023-01-02T09:42:36.320Z",
+ "format": "date-time",
+ "type": "string"
+ },
+ "tags": {
+ "description": "Array of tags associated with your span.",
+ "example": [
+ "team:A"
+ ],
+ "items": {
+ "description": "Tag associated with your span.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "trace_id": {
+ "description": "Id of the trace to which the span belongs.",
+ "example": "1234567890987654321",
+ "type": "string"
+ },
+ "type": {
+ "description": "The type of the span.",
+ "example": "web",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "Unique ID of the Span.",
+ "example": "AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA",
+ "type": "string"
+ },
+ "type": {
+ "default": "spans",
+ "description": "Type of the span.",
+ "enum": [
+ "spans"
+ ],
+ "example": "spans",
+ "type": "string",
+ "x-enum-varnames": [
+ "SPANS"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "links": {
+ "description": "Links attributes.",
+ "properties": {
+ "next": {
+ "description": "Link for the next set of results. Note that the request can also be made using the\nPOST endpoint.",
+ "example": "https://app.datadoghq.com/api/v2/spans/event?filter[query]=foo&page[cursor]=eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "meta": {
+ "description": "The metadata associated with a request.",
+ "properties": {
+ "elapsed": {
+ "description": "The time elapsed in milliseconds.",
+ "example": 132,
+ "format": "int64",
+ "type": "integer"
+ },
+ "page": {
+ "description": "Paging attributes.",
+ "properties": {
+ "after": {
+ "description": "The cursor to use to get the next results, if any. To make the next request, use the same\nparameters with the addition of the `page[cursor]`.",
+ "example": "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "request_id": {
+ "description": "The identifier of the request.",
+ "example": "MWlFUjVaWGZTTTZPYzM0VXp1OXU2d3xLSVpEMjZKQ0VKUTI0dEYtM3RSOFVR",
+ "type": "string"
+ },
+ "status": {
+ "description": "The status of the response.",
+ "enum": [
+ "done",
+ "timeout"
+ ],
+ "example": "done",
+ "type": "string",
+ "x-enum-varnames": [
+ "DONE",
+ "TIMEOUT"
+ ]
+ },
+ "warnings": {
+ "description": "A list of warnings (non fatal errors) encountered, partial results might be returned if\nwarnings are present in the response.",
+ "items": {
+ "description": "A warning message indicating something that went wrong with the query.",
+ "properties": {
+ "code": {
+ "description": "A unique code for this type of warning.",
+ "example": "unknown_index",
+ "type": "string"
+ },
+ "detail": {
+ "description": "A detailed explanation of this specific warning.",
+ "example": "indexes: foo, bar",
+ "type": "string"
+ },
+ "title": {
+ "description": "A short human-readable summary of the warning.",
+ "example": "One or several indexes are missing or invalid, results hold data from the other indexes",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
"description": "OK"
},
"400": {
@@ -388177,13 +412117,253 @@
"properties": {
"errors": {
"description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
"items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Bad Request."
+ },
+ "403": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "items": {
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Forbidden: Access denied."
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "items": {
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Unprocessable Entity."
+ },
+ "429": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "items": {
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
"type": "array"
}
@@ -388195,37 +412375,83 @@
}
}
},
- "description": "Bad Request"
+ "description": "Too many requests: The rate limit set by the API has been exceeded."
+ }
+ },
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
},
- "401": {
+ {
+ "AuthZ": [
+ "apm_read"
+ ]
+ }
+ ],
+ "summary": "Search spans",
+ "tags": [
+ "Spans"
+ ],
+ "x-codegen-request-body-name": "body",
+ "x-menu-order": 2,
+ "x-pagination": {
+ "cursorParam": "body.data.attributes.page.cursor",
+ "cursorPath": "meta.page.after",
+ "limitParam": "body.data.attributes.page.limit",
+ "resultsPath": "data"
+ },
+ "x-undo": {
+ "type": "safe"
+ }
+ }
+ },
+ "/api/v2/synthetics/settings/on_demand_concurrency_cap": {
+ "get": {
+ "description": "Get the on-demand concurrency cap.",
+ "operationId": "GetOnDemandConcurrencyCap",
+ "responses": {
+ "200": {
"content": {
"application/json": {
"schema": {
- "description": "API error response.",
+ "description": "On-demand concurrency cap response.",
"properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "data": {
+ "description": "On-demand concurrency cap.",
+ "properties": {
+ "attributes": {
+ "description": "On-demand concurrency cap attributes.",
+ "properties": {
+ "on_demand_concurrency_cap": {
+ "description": "Value of the on-demand concurrency cap.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "description": "On-demand concurrency cap type.",
+ "enum": [
+ "on_demand_concurrency_cap"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "ON_DEMAND_CONCURRENCY_CAP"
+ ]
+ }
},
- "type": "array"
+ "type": "object"
}
},
- "required": [
- "errors"
- ],
"type": "object"
}
}
},
- "description": "Concurrent Modification"
+ "description": "OK"
},
- "403": {
+ "429": {
"content": {
"application/json": {
"schema": {
@@ -388251,35 +412477,86 @@
}
}
},
- "description": "Not Authorized"
+ "description": "Too many requests"
+ }
+ },
+ "summary": "Get the on-demand concurrency cap",
+ "tags": [
+ "Synthetics"
+ ],
+ "x-menu-order": 10,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "billing_read"
+ ]
+ },
+ "x-undo": {
+ "type": "safe"
+ }
+ },
+ "post": {
+ "description": "Save new value for on-demand concurrency cap.",
+ "operationId": "SetOnDemandConcurrencyCap",
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "On-demand concurrency cap attributes.",
+ "properties": {
+ "on_demand_concurrency_cap": {
+ "description": "Value of the on-demand concurrency cap.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ }
},
- "404": {
+ "description": ".",
+ "required": true
+ },
+ "responses": {
+ "200": {
"content": {
"application/json": {
"schema": {
- "description": "API error response.",
+ "description": "On-demand concurrency cap response.",
"properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "data": {
+ "description": "On-demand concurrency cap.",
+ "properties": {
+ "attributes": {
+ "description": "On-demand concurrency cap attributes.",
+ "properties": {
+ "on_demand_concurrency_cap": {
+ "description": "Value of the on-demand concurrency cap.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "description": "On-demand concurrency cap type.",
+ "enum": [
+ "on_demand_concurrency_cap"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "ON_DEMAND_CONCURRENCY_CAP"
+ ]
+ }
},
- "type": "array"
+ "type": "object"
}
},
- "required": [
- "errors"
- ],
"type": "object"
}
}
},
- "description": "Not Found"
+ "description": "OK"
},
"429": {
"content": {
@@ -388310,98 +412587,850 @@
"description": "Too many requests"
}
},
- "summary": "Convert a job result to a signal",
+ "summary": "Save new value for on-demand concurrency cap",
"tags": [
- "Security Monitoring"
+ "Synthetics"
],
"x-codegen-request-body-name": "body",
- "x-menu-order": 24,
+ "x-menu-order": 11,
"x-permission": {
"operator": "OR",
"permissions": [
- "security_monitoring_signals_write"
+ "billing_edit"
]
},
"x-undo": {
- "type": "idempotent"
- },
- "x-unstable": "**Note**: This endpoint is in beta and may be subject to changes.\nPlease check the documentation regularly for updates."
+ "type": "safe"
+ }
}
},
- "/api/v2/siem-historical-detections/jobs/{job_id}": {
- "delete": {
- "description": "Delete an existing job.",
- "operationId": "DeleteHistoricalJob",
+ "/api/v2/team": {
+ "get": {
+ "description": "Get all teams.\nCan be used to search for teams using the `filter[keyword]` and `filter[me]` query parameters.",
+ "operationId": "ListTeams",
"parameters": [
{
- "description": "The ID of the job.",
- "in": "path",
- "name": "job_id",
- "required": true,
+ "description": "Specific page number to return.",
+ "in": "query",
+ "name": "page[number]",
+ "required": false,
+ "schema": {
+ "default": 0,
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ {
+ "description": "Size for a given page. The maximum allowed value is 100.",
+ "in": "query",
+ "name": "page[size]",
+ "required": false,
+ "schema": {
+ "default": 10,
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ {
+ "description": "Specifies the order of the returned teams",
+ "in": "query",
+ "name": "sort",
+ "required": false,
+ "schema": {
+ "description": "Specifies the order of the returned teams",
+ "enum": [
+ "name",
+ "-name",
+ "user_count",
+ "-user_count"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "NAME",
+ "_NAME",
+ "USER_COUNT",
+ "_USER_COUNT"
+ ]
+ }
+ },
+ {
+ "description": "Included related resources optionally requested. Allowed enum values: `team_links, user_team_permissions`",
+ "in": "query",
+ "name": "include",
+ "required": false,
+ "schema": {
+ "items": {
+ "description": "Included related resources optionally requested.",
+ "enum": [
+ "team_links",
+ "user_team_permissions"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM_LINKS",
+ "USER_TEAM_PERMISSIONS"
+ ]
+ },
+ "type": "array"
+ }
+ },
+ {
+ "description": "Search query. Can be team name, team handle, or email of team member",
+ "in": "query",
+ "name": "filter[keyword]",
+ "required": false,
"schema": {
"type": "string"
}
+ },
+ {
+ "description": "When true, only returns teams the current user belongs to",
+ "in": "query",
+ "name": "filter[me]",
+ "required": false,
+ "schema": {
+ "type": "boolean"
+ }
+ },
+ {
+ "description": "List of fields that need to be fetched.",
+ "explode": false,
+ "in": "query",
+ "name": "fields[team]",
+ "required": false,
+ "schema": {
+ "items": {
+ "description": "Supported teams field.",
+ "enum": [
+ "id",
+ "name",
+ "handle",
+ "summary",
+ "description",
+ "avatar",
+ "banner",
+ "visible_modules",
+ "hidden_modules",
+ "created_at",
+ "modified_at",
+ "user_count",
+ "link_count",
+ "team_links",
+ "user_team_permissions"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "ID",
+ "NAME",
+ "HANDLE",
+ "SUMMARY",
+ "DESCRIPTION",
+ "AVATAR",
+ "BANNER",
+ "VISIBLE_MODULES",
+ "HIDDEN_MODULES",
+ "CREATED_AT",
+ "MODIFIED_AT",
+ "USER_COUNT",
+ "LINK_COUNT",
+ "TEAM_LINKS",
+ "USER_TEAM_PERMISSIONS"
+ ]
+ },
+ "type": "array"
+ }
}
],
"responses": {
- "204": {
- "description": "OK"
- },
- "400": {
+ "200": {
"content": {
"application/json": {
"schema": {
- "description": "API error response.",
+ "description": "Response with multiple teams",
"properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
+ "data": {
+ "description": "Teams response data",
"items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "description": "A team",
+ "properties": {
+ "attributes": {
+ "description": "Team attributes",
+ "properties": {
+ "avatar": {
+ "description": "Unicode representation of the avatar for the team, limited to a single grapheme",
+ "example": "🥑",
+ "nullable": true,
+ "type": "string"
+ },
+ "banner": {
+ "description": "Banner selection for the team",
+ "format": "int64",
+ "nullable": true,
+ "type": "integer"
+ },
+ "created_at": {
+ "description": "Creation date of the team",
+ "format": "date-time",
+ "type": "string"
+ },
+ "description": {
+ "description": "Free-form markdown description/content for the team's homepage",
+ "nullable": true,
+ "type": "string"
+ },
+ "handle": {
+ "description": "The team's identifier",
+ "example": "example-team",
+ "maxLength": 195,
+ "type": "string"
+ },
+ "hidden_modules": {
+ "description": "Collection of hidden modules for the team",
+ "items": {
+ "description": "String identifier of the module",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "link_count": {
+ "description": "The number of links belonging to the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "readOnly": true,
+ "type": "integer"
+ },
+ "modified_at": {
+ "description": "Modification date of the team",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the team",
+ "example": "Example Team",
+ "maxLength": 200,
+ "type": "string"
+ },
+ "summary": {
+ "description": "A brief summary of the team, derived from the `description`",
+ "maxLength": 120,
+ "nullable": true,
+ "type": "string"
+ },
+ "user_count": {
+ "description": "The number of users belonging to the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "readOnly": true,
+ "type": "integer"
+ },
+ "visible_modules": {
+ "description": "Collection of visible modules for the team",
+ "items": {
+ "description": "String identifier of the module",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "handle",
+ "name"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "description": "The team's identifier",
+ "example": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Resources related to a team",
+ "properties": {
+ "team_links": {
+ "description": "Relationship between a team and a team link",
+ "properties": {
+ "data": {
+ "description": "Related team links",
+ "items": {
+ "description": "Relationship between a link and a team",
+ "properties": {
+ "id": {
+ "description": "The team link's identifier",
+ "example": "f9bb8444-af7f-11ec-ac2c-da7ad0900001",
+ "type": "string"
+ },
+ "type": {
+ "default": "team_links",
+ "description": "Team link type",
+ "enum": [
+ "team_links"
+ ],
+ "example": "team_links",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM_LINKS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ },
+ "links": {
+ "description": "Links attributes.",
+ "properties": {
+ "related": {
+ "description": "Related link.",
+ "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "user_team_permissions": {
+ "description": "Relationship between a user team permission and a team",
+ "properties": {
+ "data": {
+ "description": "Related user team permission data",
+ "properties": {
+ "id": {
+ "description": "The ID of the user team permission",
+ "example": "UserTeamPermissions-aeadc05e-98a8-11ec-ac2c-da7ad0900001-416595",
+ "type": "string"
+ },
+ "type": {
+ "default": "user_team_permissions",
+ "description": "User team permission type",
+ "enum": [
+ "user_team_permissions"
+ ],
+ "example": "user_team_permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "USER_TEAM_PERMISSIONS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "links": {
+ "description": "Links attributes.",
+ "properties": {
+ "related": {
+ "description": "Related link.",
+ "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "default": "team",
+ "description": "Team type",
+ "enum": [
+ "team"
+ ],
+ "example": "team",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM"
+ ]
+ }
+ },
+ "required": [
+ "attributes",
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
},
"type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Bad Request"
- },
- "401": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
+ },
+ "included": {
+ "description": "Resources related to the team",
"items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "description": "Included resources related to the team",
+ "oneOf": [
+ {
+ "description": "User object returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of user object returned by the API.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the user.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "disabled": {
+ "description": "Whether the user is disabled.",
+ "type": "boolean"
+ },
+ "email": {
+ "description": "Email of the user.",
+ "type": "string"
+ },
+ "handle": {
+ "description": "Handle of the user.",
+ "type": "string"
+ },
+ "icon": {
+ "description": "URL of the user's icon.",
+ "type": "string"
+ },
+ "mfa_enabled": {
+ "description": "If user has MFA enabled.",
+ "readOnly": true,
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time that the user was last modified.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "service_account": {
+ "description": "Whether the user is a service account.",
+ "type": "boolean"
+ },
+ "status": {
+ "description": "Status of the user.",
+ "type": "string"
+ },
+ "title": {
+ "description": "Title of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "verified": {
+ "description": "Whether the user is verified.",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the user.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships of the user object returned by the API.",
+ "properties": {
+ "org": {
+ "description": "Relationship to an organization.",
+ "properties": {
+ "data": {
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_orgs": {
+ "description": "Relationship to organizations.",
+ "properties": {
+ "data": {
+ "description": "Relationships to organization objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_users": {
+ "description": "Relationship to users.",
+ "properties": {
+ "data": {
+ "description": "Relationships to user objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "roles": {
+ "description": "Relationship to roles.",
+ "properties": {
+ "data": {
+ "description": "An array containing type and the unique identifier of a role.",
+ "items": {
+ "description": "Relationship to role object.",
+ "properties": {
+ "id": {
+ "description": "The unique identifier of the role.",
+ "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "type": "string"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "properties": false
+ }
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ {
+ "description": "Team link",
+ "properties": {
+ "attributes": {
+ "description": "Team link attributes",
+ "properties": {
+ "label": {
+ "description": "The link's label",
+ "example": "Link label",
+ "maxLength": 256,
+ "type": "string"
+ },
+ "position": {
+ "description": "The link's position, used to sort links for the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "type": "integer"
+ },
+ "team_id": {
+ "description": "ID of the team the link is associated with",
+ "readOnly": true,
+ "type": "string"
+ },
+ "url": {
+ "description": "The URL for the link",
+ "example": "https://example.com",
+ "type": "string"
+ }
+ },
+ "required": [
+ "label",
+ "url"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "description": "The team link's identifier",
+ "example": "b8626d7e-cedd-11eb-abf5-da7ad0900001",
+ "type": "string"
+ },
+ "type": {
+ "default": "team_links",
+ "description": "Team link type",
+ "enum": [
+ "team_links"
+ ],
+ "example": "team_links",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM_LINKS"
+ ]
+ }
+ },
+ "required": [
+ "attributes",
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ {
+ "description": "A user's permissions for a given team",
+ "properties": {
+ "attributes": {
+ "description": "User team permission attributes",
+ "properties": {
+ "permissions": {
+ "description": "Object of team permission actions and boolean values that a logged in user can perform on this team.",
+ "readOnly": true,
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The user team permission's identifier",
+ "example": "UserTeamPermissions-aeadc05e-98a8-11ec-ac2c-da7ad0900001-416595",
+ "type": "string"
+ },
+ "type": {
+ "default": "user_team_permissions",
+ "description": "User team permission type",
+ "enum": [
+ "user_team_permissions"
+ ],
+ "example": "user_team_permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "USER_TEAM_PERMISSIONS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ ]
+ },
+ "type": "array"
+ },
+ "links": {
+ "description": "Teams response links.",
+ "properties": {
+ "first": {
+ "description": "First link.",
+ "type": "string"
+ },
+ "last": {
+ "description": "Last link.",
+ "nullable": true,
+ "type": "string"
+ },
+ "next": {
+ "description": "Next link.",
+ "type": "string"
+ },
+ "prev": {
+ "description": "Previous link.",
+ "nullable": true,
+ "type": "string"
+ },
+ "self": {
+ "description": "Current link.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "meta": {
+ "description": "Teams response metadata.",
+ "properties": {
+ "pagination": {
+ "description": "Teams response metadata.",
+ "properties": {
+ "first_offset": {
+ "description": "The first offset.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "last_offset": {
+ "description": "The last offset.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "limit": {
+ "description": "Pagination limit.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "next_offset": {
+ "description": "The next offset.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "offset": {
+ "description": "The offset.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "prev_offset": {
+ "description": "The previous offset.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "total": {
+ "description": "Total results.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "type": {
+ "description": "Offset type.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
},
- "type": "array"
+ "type": "object"
}
},
- "required": [
- "errors"
- ],
"type": "object"
}
}
},
- "description": "Concurrent Modification"
+ "description": "OK"
},
"403": {
"content": {
@@ -388429,63 +413458,7 @@
}
}
},
- "description": "Not Authorized"
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Not Found"
- },
- "409": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Conflict"
+ "description": "Forbidden"
},
"429": {
"content": {
@@ -388522,707 +413495,415 @@
"appKeyAuth": []
},
{
- "AuthZ": []
+ "AuthZ": [
+ "teams_read"
+ ]
}
],
- "summary": "Delete an existing job",
+ "summary": "Get all teams",
"tags": [
- "Security Monitoring"
+ "Teams"
],
- "x-menu-order": 23,
- "x-undo": {
- "type": "idempotent"
+ "x-menu-order": 1,
+ "x-pagination": {
+ "limitParam": "page[size]",
+ "pageParam": "page[number]",
+ "resultsPath": "data"
},
- "x-unstable": "**Note**: This endpoint is in beta and may be subject to changes.\nPlease check the documentation regularly for updates."
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "teams_read"
+ ]
+ },
+ "x-undo": {
+ "type": "safe"
+ }
},
- "get": {
- "description": "Get a job's details.",
- "operationId": "GetHistoricalJob",
- "parameters": [
- {
- "description": "The ID of the job.",
- "in": "path",
- "name": "job_id",
- "required": true,
- "schema": {
- "type": "string"
+ "post": {
+ "description": "Create a new team.\nUser IDs passed through the `users` relationship field are added to the team.",
+ "operationId": "CreateTeam",
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Request to create a team",
+ "properties": {
+ "data": {
+ "description": "Team create",
+ "properties": {
+ "attributes": {
+ "description": "Team creation attributes",
+ "properties": {
+ "avatar": {
+ "description": "Unicode representation of the avatar for the team, limited to a single grapheme",
+ "example": "🥑",
+ "nullable": true,
+ "type": "string"
+ },
+ "banner": {
+ "description": "Banner selection for the team",
+ "format": "int64",
+ "nullable": true,
+ "type": "integer"
+ },
+ "description": {
+ "description": "Free-form markdown description/content for the team's homepage",
+ "type": "string"
+ },
+ "handle": {
+ "description": "The team's identifier",
+ "example": "example-team",
+ "maxLength": 195,
+ "type": "string"
+ },
+ "hidden_modules": {
+ "description": "Collection of hidden modules for the team",
+ "items": {
+ "description": "String identifier of the module",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "The name of the team",
+ "example": "Example Team",
+ "maxLength": 200,
+ "type": "string"
+ },
+ "visible_modules": {
+ "description": "Collection of visible modules for the team",
+ "items": {
+ "description": "String identifier of the module",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "handle",
+ "name"
+ ],
+ "type": "object"
+ },
+ "relationships": {
+ "description": "Relationships formed with the team on creation",
+ "properties": {
+ "users": {
+ "description": "Relationship to users.",
+ "properties": {
+ "data": {
+ "description": "Relationships to user objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "default": "team",
+ "description": "Team type",
+ "enum": [
+ "team"
+ ],
+ "example": "team",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM"
+ ]
+ }
+ },
+ "required": [
+ "attributes",
+ "type"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
}
- }
- ],
+ },
+ "required": true
+ },
"responses": {
- "200": {
+ "201": {
"content": {
"application/json": {
"schema": {
- "description": "Historical job response.",
+ "description": "Response with a team",
"properties": {
"data": {
- "description": "Historical job response data.",
+ "description": "A team",
"properties": {
"attributes": {
- "description": "Historical job attributes.",
+ "description": "Team attributes",
"properties": {
- "createdAt": {
- "description": "Time when the job was created.",
+ "avatar": {
+ "description": "Unicode representation of the avatar for the team, limited to a single grapheme",
+ "example": "🥑",
+ "nullable": true,
"type": "string"
},
- "createdByHandle": {
- "description": "The handle of the user who created the job.",
+ "banner": {
+ "description": "Banner selection for the team",
+ "format": "int64",
+ "nullable": true,
+ "type": "integer"
+ },
+ "created_at": {
+ "description": "Creation date of the team",
+ "format": "date-time",
"type": "string"
},
- "createdByName": {
- "description": "The name of the user who created the job.",
+ "description": {
+ "description": "Free-form markdown description/content for the team's homepage",
+ "nullable": true,
"type": "string"
},
- "createdFromRuleId": {
- "description": "ID of the rule used to create the job (if it is created from a rule).",
+ "handle": {
+ "description": "The team's identifier",
+ "example": "example-team",
+ "maxLength": 195,
"type": "string"
},
- "jobDefinition": {
- "description": "Definition of a historical job.",
+ "hidden_modules": {
+ "description": "Collection of hidden modules for the team",
+ "items": {
+ "description": "String identifier of the module",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "link_count": {
+ "description": "The number of links belonging to the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "readOnly": true,
+ "type": "integer"
+ },
+ "modified_at": {
+ "description": "Modification date of the team",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the team",
+ "example": "Example Team",
+ "maxLength": 200,
+ "type": "string"
+ },
+ "summary": {
+ "description": "A brief summary of the team, derived from the `description`",
+ "maxLength": 120,
+ "nullable": true,
+ "type": "string"
+ },
+ "user_count": {
+ "description": "The number of users belonging to the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "readOnly": true,
+ "type": "integer"
+ },
+ "visible_modules": {
+ "description": "Collection of visible modules for the team",
+ "items": {
+ "description": "String identifier of the module",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "handle",
+ "name"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "description": "The team's identifier",
+ "example": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Resources related to a team",
+ "properties": {
+ "team_links": {
+ "description": "Relationship between a team and a team link",
"properties": {
- "calculatedFields": {
- "description": "Calculated fields.",
- "items": {
- "description": "Calculated field.",
- "properties": {
- "expression": {
- "description": "Expression.",
- "example": "@request_end_timestamp - @request_start_timestamp",
- "type": "string"
- },
- "name": {
- "description": "Field name.",
- "example": "response_time",
- "type": "string"
- }
- },
- "required": [
- "name",
- "expression"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "cases": {
- "description": "Cases used for generating job results.",
+ "data": {
+ "description": "Related team links",
"items": {
- "description": "Case when signal is generated.",
+ "description": "Relationship between a link and a team",
"properties": {
- "actions": {
- "description": "Action to perform for each rule case.",
- "items": {
- "description": "Action to perform when a signal is triggered. Only available for Application Security rule type.",
- "properties": {
- "options": {
- "description": "Options for the rule action",
- "properties": {
- "duration": {
- "description": "Duration of the action in seconds. 0 indicates no expiration.",
- "example": 0,
- "format": "int64",
- "minimum": 0,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "type": {
- "description": "The action type.",
- "enum": [
- "block_ip",
- "block_user"
- ],
- "type": "string",
- "x-enum-varnames": [
- "BLOCK_IP",
- "BLOCK_USER"
- ]
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "condition": {
- "description": "A case contains logical operations (`>`,`>=`, `&&`, `||`) to determine if a signal should be generated\nbased on the event counts in the previously defined queries.",
- "type": "string"
- },
- "name": {
- "description": "Name of the case.",
+ "id": {
+ "description": "The team link's identifier",
+ "example": "f9bb8444-af7f-11ec-ac2c-da7ad0900001",
"type": "string"
},
- "notifications": {
- "description": "Notification targets.",
- "items": {
- "description": "Notification.",
- "type": "string"
- },
- "type": "array"
- },
- "status": {
- "description": "Severity of the Security Signal.",
+ "type": {
+ "default": "team_links",
+ "description": "Team link type",
"enum": [
- "info",
- "low",
- "medium",
- "high",
- "critical"
+ "team_links"
],
- "example": "critical",
+ "example": "team_links",
"type": "string",
"x-enum-varnames": [
- "INFO",
- "LOW",
- "MEDIUM",
- "HIGH",
- "CRITICAL"
+ "TEAM_LINKS"
]
}
},
"required": [
- "status"
+ "id",
+ "type"
],
- "type": "object"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
},
"type": "array"
},
- "from": {
- "description": "Starting time of data analyzed by the job.",
- "example": 1729843470000,
- "format": "int64",
- "type": "integer"
- },
- "groupSignalsBy": {
- "description": "Additional grouping to perform on top of the existing groups in the query section. Must be a subset of the existing groups.",
- "example": [
- "service"
- ],
- "items": {
- "description": "Field to group by.",
- "type": "string"
+ "links": {
+ "description": "Links attributes.",
+ "properties": {
+ "related": {
+ "description": "Related link.",
+ "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
+ "type": "string"
+ }
},
- "type": "array"
- },
- "index": {
- "description": "Index used to load the data.",
- "example": "cloud_siem",
- "type": "string"
- },
- "message": {
- "description": "Message for generated results.",
- "example": "A large number of failed login attempts.",
- "type": "string"
- },
- "name": {
- "description": "Job name.",
- "example": "Excessive number of failed attempts.",
- "type": "string"
- },
- "options": {
- "description": "Job options.",
+ "type": "object"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "user_team_permissions": {
+ "description": "Relationship between a user team permission and a team",
+ "properties": {
+ "data": {
+ "description": "Related user team permission data",
"properties": {
- "detectionMethod": {
- "description": "The detection method.",
- "enum": [
- "threshold",
- "new_value",
- "anomaly_detection",
- "impossible_travel",
- "hardcoded",
- "third_party",
- "anomaly_threshold"
- ],
- "type": "string",
- "x-enum-varnames": [
- "THRESHOLD",
- "NEW_VALUE",
- "ANOMALY_DETECTION",
- "IMPOSSIBLE_TRAVEL",
- "HARDCODED",
- "THIRD_PARTY",
- "ANOMALY_THRESHOLD"
- ]
- },
- "evaluationWindow": {
- "description": "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.",
- "enum": [
- 0,
- 60,
- 300,
- 600,
- 900,
- 1800,
- 3600,
- 7200
- ],
- "format": "int32",
- "type": "integer",
- "x-enum-varnames": [
- "ZERO_MINUTES",
- "ONE_MINUTE",
- "FIVE_MINUTES",
- "TEN_MINUTES",
- "FIFTEEN_MINUTES",
- "THIRTY_MINUTES",
- "ONE_HOUR",
- "TWO_HOURS"
- ]
- },
- "impossibleTravelOptions": {
- "description": "Options on impossible travel detection method.",
- "properties": {
- "baselineUserLocations": {
- "description": "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.",
- "example": true,
- "type": "boolean"
- }
- },
- "type": "object"
- },
- "keepAlive": {
- "description": "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.",
- "enum": [
- 0,
- 60,
- 300,
- 600,
- 900,
- 1800,
- 3600,
- 7200,
- 10800,
- 21600
- ],
- "format": "int32",
- "type": "integer",
- "x-enum-varnames": [
- "ZERO_MINUTES",
- "ONE_MINUTE",
- "FIVE_MINUTES",
- "TEN_MINUTES",
- "FIFTEEN_MINUTES",
- "THIRTY_MINUTES",
- "ONE_HOUR",
- "TWO_HOURS",
- "THREE_HOURS",
- "SIX_HOURS"
- ]
+ "id": {
+ "description": "The ID of the user team permission",
+ "example": "UserTeamPermissions-aeadc05e-98a8-11ec-ac2c-da7ad0900001-416595",
+ "type": "string"
},
- "maxSignalDuration": {
- "description": "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.",
+ "type": {
+ "default": "user_team_permissions",
+ "description": "User team permission type",
"enum": [
- 0,
- 60,
- 300,
- 600,
- 900,
- 1800,
- 3600,
- 7200,
- 10800,
- 21600,
- 43200,
- 86400
+ "user_team_permissions"
],
- "format": "int32",
- "type": "integer",
+ "example": "user_team_permissions",
+ "type": "string",
"x-enum-varnames": [
- "ZERO_MINUTES",
- "ONE_MINUTE",
- "FIVE_MINUTES",
- "TEN_MINUTES",
- "FIFTEEN_MINUTES",
- "THIRTY_MINUTES",
- "ONE_HOUR",
- "TWO_HOURS",
- "THREE_HOURS",
- "SIX_HOURS",
- "TWELVE_HOURS",
- "ONE_DAY"
+ "USER_TEAM_PERMISSIONS"
]
- },
- "newValueOptions": {
- "description": "Options on new value detection method.",
- "properties": {
- "forgetAfter": {
- "description": "The duration in days after which a learned value is forgotten.",
- "enum": [
- 1,
- 2,
- 7,
- 14,
- 21,
- 28
- ],
- "format": "int32",
- "type": "integer",
- "x-enum-varnames": [
- "ONE_DAY",
- "TWO_DAYS",
- "ONE_WEEK",
- "TWO_WEEKS",
- "THREE_WEEKS",
- "FOUR_WEEKS"
- ]
- },
- "learningDuration": {
- "default": 0,
- "description": "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.",
- "enum": [
- 0,
- 1,
- 7
- ],
- "format": "int32",
- "type": "integer",
- "x-enum-varnames": [
- "ZERO_DAYS",
- "ONE_DAY",
- "SEVEN_DAYS"
- ]
- },
- "learningMethod": {
- "default": "duration",
- "description": "The learning method used to determine when signals should be generated for values that weren't learned.",
- "enum": [
- "duration",
- "threshold"
- ],
- "type": "string",
- "x-enum-varnames": [
- "DURATION",
- "THRESHOLD"
- ]
- },
- "learningThreshold": {
- "default": 0,
- "description": "A number of occurrences after which signals will be generated for values that weren't learned.",
- "enum": [
- 0,
- 1
- ],
- "format": "int32",
- "type": "integer",
- "x-enum-varnames": [
- "ZERO_OCCURRENCES",
- "ONE_OCCURRENCE"
- ]
- }
- },
- "type": "object"
- },
- "thirdPartyRuleOptions": {
- "description": "Options on third party detection method.",
- "properties": {
- "defaultNotifications": {
- "description": "Notification targets for the logs that do not correspond to any of the cases.",
- "items": {
- "description": "Notification.",
- "type": "string"
- },
- "type": "array"
- },
- "defaultStatus": {
- "description": "Severity of the Security Signal.",
- "enum": [
- "info",
- "low",
- "medium",
- "high",
- "critical"
- ],
- "example": "critical",
- "type": "string",
- "x-enum-varnames": [
- "INFO",
- "LOW",
- "MEDIUM",
- "HIGH",
- "CRITICAL"
- ]
- },
- "rootQueries": {
- "description": "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.",
- "items": {
- "description": "A query to be combined with the third party case query.",
- "properties": {
- "groupByFields": {
- "description": "Fields to group by.",
- "items": {
- "description": "Field.",
- "type": "string"
- },
- "type": "array"
- },
- "query": {
- "description": "Query to run on logs.",
- "example": "source:cloudtrail",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "signalTitleTemplate": {
- "description": "A template for the signal title; if omitted, the title is generated based on the case name.",
- "type": "string"
- }
- },
- "type": "object"
}
},
- "type": "object"
- },
- "queries": {
- "description": "Queries for selecting logs analyzed by the job.",
- "items": {
- "description": "Query for selecting logs analyzed by the historical job.",
- "properties": {
- "aggregation": {
- "description": "The aggregation type.",
- "enum": [
- "count",
- "cardinality",
- "sum",
- "max",
- "new_value",
- "geo_data",
- "event_count",
- "none"
- ],
- "type": "string",
- "x-enum-varnames": [
- "COUNT",
- "CARDINALITY",
- "SUM",
- "MAX",
- "NEW_VALUE",
- "GEO_DATA",
- "EVENT_COUNT",
- "NONE"
- ]
- },
- "distinctFields": {
- "description": "Field for which the cardinality is measured. Sent as an array.",
- "items": {
- "description": "Field.",
- "type": "string"
- },
- "type": "array"
- },
- "groupByFields": {
- "description": "Fields to group by.",
- "items": {
- "description": "Field.",
- "type": "string"
- },
- "type": "array"
- },
- "hasOptionalGroupByFields": {
- "description": "When false, events without a group-by value are ignored by the query. When true, events with missing group-by fields are processed with `N/A`, replacing the missing values.",
- "example": false,
- "readOnly": true,
- "type": "boolean"
- },
- "metrics": {
- "description": "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.",
- "items": {
- "description": "Field.",
- "type": "string"
- },
- "type": "array"
- },
- "name": {
- "description": "Name of the query.",
- "type": "string"
- },
- "query": {
- "description": "Query to run on logs.",
- "example": "a > 3",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "referenceTables": {
- "description": "Reference tables used in the queries.",
- "items": {
- "description": "Reference tables used in the queries.",
- "properties": {
- "checkPresence": {
- "description": "Whether to include or exclude the matched values.",
- "type": "boolean"
- },
- "columnName": {
- "description": "The name of the column in the reference table.",
- "type": "string"
- },
- "logFieldPath": {
- "description": "The field in the log to match against the reference table.",
- "type": "string"
- },
- "ruleQueryName": {
- "description": "The name of the query to apply the reference table to.",
- "type": "string"
- },
- "tableName": {
- "description": "The name of the reference table.",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "tags": {
- "description": "Tags for generated signals.",
- "items": {
- "type": "string"
- },
- "type": "array"
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
},
- "thirdPartyCases": {
- "description": "Cases for generating results from third-party detection method. Only available for third-party detection method.",
- "example": [],
- "items": {
- "description": "Case when a signal is generated by a third party rule.",
- "properties": {
- "name": {
- "description": "Name of the case.",
- "type": "string"
- },
- "notifications": {
- "description": "Notification targets for each case.",
- "items": {
- "description": "Notification.",
- "type": "string"
- },
- "type": "array"
- },
- "query": {
- "description": "A query to map a third party event to this case.",
- "type": "string"
- },
- "status": {
- "description": "Severity of the Security Signal.",
- "enum": [
- "info",
- "low",
- "medium",
- "high",
- "critical"
- ],
- "example": "critical",
- "type": "string",
- "x-enum-varnames": [
- "INFO",
- "LOW",
- "MEDIUM",
- "HIGH",
- "CRITICAL"
- ]
- }
- },
- "required": [
- "status"
- ],
- "type": "object"
+ "links": {
+ "description": "Links attributes.",
+ "properties": {
+ "related": {
+ "description": "Related link.",
+ "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
+ "type": "string"
+ }
},
- "type": "array"
- },
- "to": {
- "description": "Ending time of data analyzed by the job.",
- "example": 1729847070000,
- "format": "int64",
- "type": "integer"
- },
- "type": {
- "description": "Job type.",
- "type": "string"
+ "type": "object"
}
},
- "required": [
- "from",
- "to",
- "index",
- "name",
- "cases",
- "queries",
- "message"
- ],
- "type": "object"
- },
- "jobName": {
- "description": "Job name.",
- "type": "string"
- },
- "jobStatus": {
- "description": "Job status.",
- "type": "string"
- },
- "modifiedAt": {
- "description": "Last modification time of the job.",
- "type": "string"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
"type": "object"
},
- "id": {
- "description": "ID of the job.",
- "type": "string"
- },
"type": {
- "description": "Type of payload.",
+ "default": "team",
+ "description": "Team type",
"enum": [
- "historicalDetectionsJob"
+ "team"
],
+ "example": "team",
"type": "string",
"x-enum-varnames": [
- "HISTORICALDETECTIONSJOB"
+ "TEAM"
]
}
},
- "type": "object"
- }
- },
- "type": "object"
- }
- }
- },
- "description": "OK"
- },
- "400": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
+ "required": [
+ "attributes",
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
- "required": [
- "errors"
- ],
"type": "object"
}
}
},
- "description": "Bad Request"
+ "description": "CREATED"
},
"403": {
"content": {
@@ -389250,9 +413931,9 @@
}
}
},
- "description": "Not Authorized"
+ "description": "Forbidden"
},
- "404": {
+ "409": {
"content": {
"application/json": {
"schema": {
@@ -389278,7 +413959,7 @@
}
}
},
- "description": "Not Found"
+ "description": "API error response."
},
"429": {
"content": {
@@ -389316,36 +413997,60 @@
},
{
"AuthZ": [
- "security_monitoring_rules_read"
+ "teams_read",
+ "teams_manage"
]
}
],
- "summary": "Get a job's details",
+ "summary": "Create a team",
"tags": [
- "Security Monitoring"
+ "Teams"
],
- "x-menu-order": 21,
+ "x-codegen-request-body-name": "body",
+ "x-given": {
+ "dd_team": {
+ "parameters": [
+ {
+ "name": "body",
+ "value": "{\n \"data\": {\n \"attributes\": {\n \"handle\": \"test-handle-{{ unique_hash }}\",\n \"name\": \"test-name-{{ unique_hash }}\"\n },\n \"type\": \"team\"\n }\n}"
+ }
+ ],
+ "step": "there is a valid \"dd_team\" in the system"
+ }
+ },
+ "x-menu-order": 2,
"x-permission": {
- "operator": "OR",
+ "operator": "AND",
"permissions": [
- "security_monitoring_rules_read"
+ "teams_read",
+ "teams_manage"
]
},
"x-undo": {
- "type": "safe"
- },
- "x-unstable": "**Note**: This endpoint is in beta and may be subject to changes.\nPlease check the documentation regularly for updates."
+ "operationId": "DeleteTeam",
+ "parameters": [
+ {
+ "name": "team_id",
+ "source": "data.id"
+ }
+ ],
+ "type": "unsafe"
+ }
+ },
+ "x-merge-override": {
+ "get": false,
+ "post": false
}
},
- "/api/v2/siem-historical-detections/jobs/{job_id}/cancel": {
- "patch": {
- "description": "Cancel a historical job.",
- "operationId": "CancelHistoricalJob",
+ "/api/v2/team/{team_id}": {
+ "delete": {
+ "description": "Remove a team using the team's `id`.",
+ "operationId": "DeleteTeam",
"parameters": [
{
- "description": "The ID of the job.",
+ "description": "None",
"in": "path",
- "name": "job_id",
+ "name": "team_id",
"required": true,
"schema": {
"type": "string"
@@ -389354,9 +414059,9 @@
],
"responses": {
"204": {
- "description": "OK"
+ "description": "No Content"
},
- "400": {
+ "403": {
"content": {
"application/json": {
"schema": {
@@ -389382,9 +414087,9 @@
}
}
},
- "description": "Bad Request"
+ "description": "Forbidden"
},
- "401": {
+ "404": {
"content": {
"application/json": {
"schema": {
@@ -389410,9 +414115,9 @@
}
}
},
- "description": "Concurrent Modification"
+ "description": "API error response."
},
- "403": {
+ "429": {
"content": {
"application/json": {
"schema": {
@@ -389438,9 +414143,292 @@
}
}
},
- "description": "Not Authorized"
+ "description": "Too many requests"
+ }
+ },
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
},
- "404": {
+ {
+ "AuthZ": [
+ "teams_read",
+ "teams_manage"
+ ]
+ }
+ ],
+ "summary": "Remove a team",
+ "tags": [
+ "Teams"
+ ],
+ "x-menu-order": 5,
+ "x-permission": {
+ "operator": "AND",
+ "permissions": [
+ "teams_read",
+ "teams_manage"
+ ]
+ },
+ "x-undo": {
+ "type": "idempotent"
+ }
+ },
+ "get": {
+ "description": "Get a single team using the team's `id`.",
+ "operationId": "GetTeam",
+ "parameters": [
+ {
+ "description": "None",
+ "in": "path",
+ "name": "team_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Response with a team",
+ "properties": {
+ "data": {
+ "description": "A team",
+ "properties": {
+ "attributes": {
+ "description": "Team attributes",
+ "properties": {
+ "avatar": {
+ "description": "Unicode representation of the avatar for the team, limited to a single grapheme",
+ "example": "🥑",
+ "nullable": true,
+ "type": "string"
+ },
+ "banner": {
+ "description": "Banner selection for the team",
+ "format": "int64",
+ "nullable": true,
+ "type": "integer"
+ },
+ "created_at": {
+ "description": "Creation date of the team",
+ "format": "date-time",
+ "type": "string"
+ },
+ "description": {
+ "description": "Free-form markdown description/content for the team's homepage",
+ "nullable": true,
+ "type": "string"
+ },
+ "handle": {
+ "description": "The team's identifier",
+ "example": "example-team",
+ "maxLength": 195,
+ "type": "string"
+ },
+ "hidden_modules": {
+ "description": "Collection of hidden modules for the team",
+ "items": {
+ "description": "String identifier of the module",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "link_count": {
+ "description": "The number of links belonging to the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "readOnly": true,
+ "type": "integer"
+ },
+ "modified_at": {
+ "description": "Modification date of the team",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the team",
+ "example": "Example Team",
+ "maxLength": 200,
+ "type": "string"
+ },
+ "summary": {
+ "description": "A brief summary of the team, derived from the `description`",
+ "maxLength": 120,
+ "nullable": true,
+ "type": "string"
+ },
+ "user_count": {
+ "description": "The number of users belonging to the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "readOnly": true,
+ "type": "integer"
+ },
+ "visible_modules": {
+ "description": "Collection of visible modules for the team",
+ "items": {
+ "description": "String identifier of the module",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "handle",
+ "name"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "description": "The team's identifier",
+ "example": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Resources related to a team",
+ "properties": {
+ "team_links": {
+ "description": "Relationship between a team and a team link",
+ "properties": {
+ "data": {
+ "description": "Related team links",
+ "items": {
+ "description": "Relationship between a link and a team",
+ "properties": {
+ "id": {
+ "description": "The team link's identifier",
+ "example": "f9bb8444-af7f-11ec-ac2c-da7ad0900001",
+ "type": "string"
+ },
+ "type": {
+ "default": "team_links",
+ "description": "Team link type",
+ "enum": [
+ "team_links"
+ ],
+ "example": "team_links",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM_LINKS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ },
+ "links": {
+ "description": "Links attributes.",
+ "properties": {
+ "related": {
+ "description": "Related link.",
+ "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "user_team_permissions": {
+ "description": "Relationship between a user team permission and a team",
+ "properties": {
+ "data": {
+ "description": "Related user team permission data",
+ "properties": {
+ "id": {
+ "description": "The ID of the user team permission",
+ "example": "UserTeamPermissions-aeadc05e-98a8-11ec-ac2c-da7ad0900001-416595",
+ "type": "string"
+ },
+ "type": {
+ "default": "user_team_permissions",
+ "description": "User team permission type",
+ "enum": [
+ "user_team_permissions"
+ ],
+ "example": "user_team_permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "USER_TEAM_PERMISSIONS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "links": {
+ "description": "Links attributes.",
+ "properties": {
+ "related": {
+ "description": "Related link.",
+ "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "default": "team",
+ "description": "Team type",
+ "enum": [
+ "team"
+ ],
+ "example": "team",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM"
+ ]
+ }
+ },
+ "required": [
+ "attributes",
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "OK"
+ },
+ "403": {
"content": {
"application/json": {
"schema": {
@@ -389466,9 +414454,9 @@
}
}
},
- "description": "Not Found"
+ "description": "Forbidden"
},
- "409": {
+ "404": {
"content": {
"application/json": {
"schema": {
@@ -389494,7 +414482,7 @@
}
}
},
- "description": "Conflict"
+ "description": "API error response."
},
"429": {
"content": {
@@ -389532,91 +414520,178 @@
},
{
"AuthZ": [
- "security_monitoring_rules_write"
+ "teams_read"
]
}
],
- "summary": "Cancel a historical job",
+ "summary": "Get a team",
"tags": [
- "Security Monitoring"
+ "Teams"
],
- "x-menu-order": 22,
+ "x-menu-order": 3,
"x-permission": {
"operator": "OR",
"permissions": [
- "security_monitoring_rules_write"
+ "teams_read"
]
},
"x-undo": {
- "type": "idempotent"
- },
- "x-unstable": "**Note**: This endpoint is in beta and may be subject to changes.\nPlease check the documentation regularly for updates."
- }
- },
- "/api/v2/slo/report": {
- "post": {
- "description": "Create a job to generate an SLO report. The report job is processed asynchronously and eventually results in a CSV report being available for download.\n\nCheck the status of the job and download the CSV report using the returned `report_id`.",
- "operationId": "CreateSLOReportJob",
+ "type": "safe"
+ }
+ },
+ "patch": {
+ "description": "Update a team using the team's `id`.\nIf the `team_links` relationship is present, the associated links are updated to be in the order they appear in the array, and any existing team links not present are removed.",
+ "operationId": "UpdateTeam",
+ "parameters": [
+ {
+ "description": "None",
+ "in": "path",
+ "name": "team_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
"requestBody": {
"content": {
"application/json": {
"schema": {
- "description": "The SLO report request body.",
+ "description": "Team update request",
"properties": {
"data": {
- "description": "The data portion of the SLO report request.",
+ "description": "Team update request",
"properties": {
"attributes": {
- "description": "The attributes portion of the SLO report request.",
+ "description": "Team update attributes",
"properties": {
- "from_ts": {
- "description": "The `from` timestamp for the report in epoch seconds.",
- "example": 1690901870,
+ "avatar": {
+ "description": "Unicode representation of the avatar for the team, limited to a single grapheme",
+ "example": "🥑",
+ "nullable": true,
+ "type": "string"
+ },
+ "banner": {
+ "description": "Banner selection for the team",
"format": "int64",
+ "nullable": true,
"type": "integer"
},
- "interval": {
- "description": "The frequency at which report data is to be generated.",
- "enum": [
- "daily",
- "weekly",
- "monthly"
- ],
- "example": "weekly",
- "type": "string",
- "x-enum-varnames": [
- "DAILY",
- "WEEKLY",
- "MONTHLY"
- ]
+ "description": {
+ "description": "Free-form markdown description/content for the team's homepage",
+ "type": "string"
},
- "query": {
- "description": "The query string used to filter SLO results. Some examples of queries include `service:` and `slo-name`.",
- "example": "slo_type:metric",
+ "handle": {
+ "description": "The team's identifier",
+ "example": "example-team",
+ "maxLength": 195,
"type": "string"
},
- "timezone": {
- "description": "The timezone used to determine the start and end of each interval. For example, weekly intervals start at 12am on Sunday in the specified timezone.",
- "example": "America/New_York",
+ "hidden_modules": {
+ "description": "Collection of hidden modules for the team",
+ "items": {
+ "description": "String identifier of the module",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "The name of the team",
+ "example": "Example Team",
+ "maxLength": 200,
"type": "string"
},
- "to_ts": {
- "description": "The `to` timestamp for the report in epoch seconds.",
- "example": 1706803070,
- "format": "int64",
- "type": "integer"
+ "visible_modules": {
+ "description": "Collection of visible modules for the team",
+ "items": {
+ "description": "String identifier of the module",
+ "type": "string"
+ },
+ "type": "array"
}
},
"required": [
- "query",
- "from_ts",
- "to_ts"
+ "handle",
+ "name"
],
"type": "object"
+ },
+ "relationships": {
+ "description": "Team update relationships",
+ "properties": {
+ "team_links": {
+ "description": "Relationship between a team and a team link",
+ "properties": {
+ "data": {
+ "description": "Related team links",
+ "items": {
+ "description": "Relationship between a link and a team",
+ "properties": {
+ "id": {
+ "description": "The team link's identifier",
+ "example": "f9bb8444-af7f-11ec-ac2c-da7ad0900001",
+ "type": "string"
+ },
+ "type": {
+ "default": "team_links",
+ "description": "Team link type",
+ "enum": [
+ "team_links"
+ ],
+ "example": "team_links",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM_LINKS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ },
+ "links": {
+ "description": "Links attributes.",
+ "properties": {
+ "related": {
+ "description": "Related link.",
+ "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "default": "team",
+ "description": "Team type",
+ "enum": [
+ "team"
+ ],
+ "example": "team",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM"
+ ]
}
},
"required": [
- "attributes"
+ "attributes",
+ "type"
],
"type": "object"
}
@@ -389628,7 +414703,6 @@
}
}
},
- "description": "Create SLO report job request body.",
"required": true
},
"responses": {
@@ -389636,23 +414710,233 @@
"content": {
"application/json": {
"schema": {
- "description": "The SLO report response.",
+ "description": "Response with a team",
"properties": {
"data": {
- "description": "The data portion of the SLO report response.",
+ "description": "A team",
"properties": {
+ "attributes": {
+ "description": "Team attributes",
+ "properties": {
+ "avatar": {
+ "description": "Unicode representation of the avatar for the team, limited to a single grapheme",
+ "example": "🥑",
+ "nullable": true,
+ "type": "string"
+ },
+ "banner": {
+ "description": "Banner selection for the team",
+ "format": "int64",
+ "nullable": true,
+ "type": "integer"
+ },
+ "created_at": {
+ "description": "Creation date of the team",
+ "format": "date-time",
+ "type": "string"
+ },
+ "description": {
+ "description": "Free-form markdown description/content for the team's homepage",
+ "nullable": true,
+ "type": "string"
+ },
+ "handle": {
+ "description": "The team's identifier",
+ "example": "example-team",
+ "maxLength": 195,
+ "type": "string"
+ },
+ "hidden_modules": {
+ "description": "Collection of hidden modules for the team",
+ "items": {
+ "description": "String identifier of the module",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "link_count": {
+ "description": "The number of links belonging to the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "readOnly": true,
+ "type": "integer"
+ },
+ "modified_at": {
+ "description": "Modification date of the team",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the team",
+ "example": "Example Team",
+ "maxLength": 200,
+ "type": "string"
+ },
+ "summary": {
+ "description": "A brief summary of the team, derived from the `description`",
+ "maxLength": 120,
+ "nullable": true,
+ "type": "string"
+ },
+ "user_count": {
+ "description": "The number of users belonging to the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "readOnly": true,
+ "type": "integer"
+ },
+ "visible_modules": {
+ "description": "Collection of visible modules for the team",
+ "items": {
+ "description": "String identifier of the module",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "handle",
+ "name"
+ ],
+ "type": "object"
+ },
"id": {
- "description": "The ID of the report job.",
- "example": "dc8d92aa-e0af-11ee-af21-1feeaccaa3a3",
+ "description": "The team's identifier",
+ "example": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
"type": "string"
},
+ "relationships": {
+ "description": "Resources related to a team",
+ "properties": {
+ "team_links": {
+ "description": "Relationship between a team and a team link",
+ "properties": {
+ "data": {
+ "description": "Related team links",
+ "items": {
+ "description": "Relationship between a link and a team",
+ "properties": {
+ "id": {
+ "description": "The team link's identifier",
+ "example": "f9bb8444-af7f-11ec-ac2c-da7ad0900001",
+ "type": "string"
+ },
+ "type": {
+ "default": "team_links",
+ "description": "Team link type",
+ "enum": [
+ "team_links"
+ ],
+ "example": "team_links",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM_LINKS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ },
+ "links": {
+ "description": "Links attributes.",
+ "properties": {
+ "related": {
+ "description": "Related link.",
+ "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "user_team_permissions": {
+ "description": "Relationship between a user team permission and a team",
+ "properties": {
+ "data": {
+ "description": "Related user team permission data",
+ "properties": {
+ "id": {
+ "description": "The ID of the user team permission",
+ "example": "UserTeamPermissions-aeadc05e-98a8-11ec-ac2c-da7ad0900001-416595",
+ "type": "string"
+ },
+ "type": {
+ "default": "user_team_permissions",
+ "description": "User team permission type",
+ "enum": [
+ "user_team_permissions"
+ ],
+ "example": "user_team_permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "USER_TEAM_PERMISSIONS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "links": {
+ "description": "Links attributes.",
+ "properties": {
+ "related": {
+ "description": "Related link.",
+ "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object"
+ },
"type": {
- "description": "The type of ID.",
- "example": "report_id",
- "type": "string"
+ "default": "team",
+ "description": "Team type",
+ "enum": [
+ "team"
+ ],
+ "example": "team",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM"
+ ]
}
},
- "type": "object"
+ "required": [
+ "attributes",
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
"type": "object"
@@ -389687,7 +414971,7 @@
}
}
},
- "description": "Bad Request"
+ "description": "API error response."
},
"403": {
"content": {
@@ -389717,130 +415001,7 @@
},
"description": "Forbidden"
},
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Too many requests"
- }
- },
- "security": [
- {
- "apiKeyAuth": [],
- "appKeyAuth": []
- },
- {
- "AuthZ": [
- "slos_read"
- ]
- }
- ],
- "summary": "Create a new SLO report",
- "tags": [
- "Service Level Objectives"
- ],
- "x-codegen-request-body-name": "body",
- "x-given": {
- "report": {
- "parameters": [
- {
- "name": "body",
- "value": "{\n \"data\": {\n \"attributes\": {\n \"query\": \"slo_type:metric \\\"SLO Reporting Test\\\"\",\n \"interval\": \"monthly\",\n \"from_ts\": {{ timestamp(\"now - 21d\") }},\n \"to_ts\": {{ timestamp(\"now\") }}\n }\n }\n}"
- }
- ],
- "step": "there is a valid \"report\" in the system"
- }
- },
- "x-menu-order": 101,
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "slos_read"
- ]
- },
- "x-undo": {
- "type": "safe"
- },
- "x-unstable": "**Note**: This feature is in private beta. To request access, use the request access form in the [Service Level Objectives](https://docs.datadoghq.com/service_management/service_level_objectives/#slo-csv-export) docs."
- }
- },
- "/api/v2/slo/report/{report_id}/download": {
- "get": {
- "description": "Download an SLO report. This can only be performed after the report job has completed.\n\nReports are not guaranteed to exist indefinitely. Datadog recommends that you download the report as soon as it is available.",
- "operationId": "GetSLOReport",
- "parameters": [
- {
- "description": "The ID of the report job.",
- "in": "path",
- "name": "report_id",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "text/csv": {
- "schema": {
- "type": "string"
- }
- }
- },
- "description": "OK"
- },
- "400": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Bad Request"
- },
- "403": {
+ "404": {
"content": {
"application/json": {
"schema": {
@@ -389866,9 +415027,9 @@
}
}
},
- "description": "Forbidden"
+ "description": "API error response."
},
- "404": {
+ "409": {
"content": {
"application/json": {
"schema": {
@@ -389894,7 +415055,7 @@
}
}
},
- "description": "Not Found"
+ "description": "API error response."
},
"429": {
"content": {
@@ -389932,30 +415093,41 @@
},
{
"AuthZ": [
- "slos_read"
+ "teams_read"
]
}
],
- "summary": "Get SLO report",
+ "summary": "Update a team",
"tags": [
- "Service Level Objectives"
+ "Teams"
],
- "x-menu-order": 103,
- "x-undo": {
- "type": "safe"
+ "x-codegen-request-body-name": "body",
+ "x-menu-order": 4,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "teams_read"
+ ]
},
- "x-unstable": "**Note**: This feature is in private beta. To request access, use the request access form in the [Service Level Objectives](https://docs.datadoghq.com/service_management/service_level_objectives/#slo-csv-export) docs."
+ "x-undo": {
+ "type": "idempotent"
+ }
+ },
+ "x-merge-override": {
+ "delete": true,
+ "get": false,
+ "patch": false
}
},
- "/api/v2/slo/report/{report_id}/status": {
+ "/api/v2/team/{team_id}/links": {
"get": {
- "description": "Get the status of the SLO report job.",
- "operationId": "GetSLOReportJobStatus",
+ "description": "Get all links for a given team.",
+ "operationId": "GetTeamLinks",
"parameters": [
{
- "description": "The ID of the report job.",
+ "description": "None",
"in": "path",
- "name": "report_id",
+ "name": "team_id",
"required": true,
"schema": {
"type": "string"
@@ -389967,81 +415139,81 @@
"content": {
"application/json": {
"schema": {
- "description": "The SLO report status response.",
+ "description": "Team links response",
"properties": {
"data": {
- "description": "The data portion of the SLO report status response.",
- "properties": {
- "attributes": {
- "description": "The attributes portion of the SLO report status response.",
- "properties": {
- "status": {
- "description": "The status of the SLO report job.",
- "enum": [
- "in_progress",
- "completed",
- "completed_with_errors",
- "failed"
- ],
- "example": "completed",
- "type": "string",
- "x-enum-varnames": [
- "IN_PROGRESS",
- "COMPLETED",
- "COMPLETED_WITH_ERRORS",
- "FAILED"
- ]
- }
+ "description": "Team links response data",
+ "items": {
+ "description": "Team link",
+ "properties": {
+ "attributes": {
+ "description": "Team link attributes",
+ "properties": {
+ "label": {
+ "description": "The link's label",
+ "example": "Link label",
+ "maxLength": 256,
+ "type": "string"
+ },
+ "position": {
+ "description": "The link's position, used to sort links for the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "type": "integer"
+ },
+ "team_id": {
+ "description": "ID of the team the link is associated with",
+ "readOnly": true,
+ "type": "string"
+ },
+ "url": {
+ "description": "The URL for the link",
+ "example": "https://example.com",
+ "type": "string"
+ }
+ },
+ "required": [
+ "label",
+ "url"
+ ],
+ "type": "object"
},
- "type": "object"
- },
- "id": {
- "description": "The ID of the report job.",
- "example": "dc8d92aa-e0af-11ee-af21-1feeaccaa3a3",
- "type": "string"
+ "id": {
+ "description": "The team link's identifier",
+ "example": "b8626d7e-cedd-11eb-abf5-da7ad0900001",
+ "type": "string"
+ },
+ "type": {
+ "default": "team_links",
+ "description": "Team link type",
+ "enum": [
+ "team_links"
+ ],
+ "example": "team_links",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM_LINKS"
+ ]
+ }
},
- "type": {
- "description": "The type of ID.",
- "example": "report_id",
- "type": "string"
+ "required": [
+ "attributes",
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
}
},
- "type": "object"
- }
- },
- "type": "object"
- }
- }
- },
- "description": "OK"
- },
- "400": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
"type": "array"
}
},
- "required": [
- "errors"
- ],
"type": "object"
}
}
},
- "description": "Bad Request"
+ "description": "OK"
},
"403": {
"content": {
@@ -390097,7 +415269,7 @@
}
}
},
- "description": "Not Found"
+ "description": "API error response."
},
"429": {
"content": {
@@ -390135,326 +415307,103 @@
},
{
"AuthZ": [
- "slos_read"
+ "teams_read"
]
}
],
- "summary": "Get SLO report status",
+ "summary": "Get links for a team",
"tags": [
- "Service Level Objectives"
+ "Teams"
],
- "x-menu-order": 102,
+ "x-menu-order": 10,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "teams_read"
+ ]
+ },
"x-undo": {
"type": "safe"
- },
- "x-unstable": "**Note**: This feature is in private beta. To request access, use the request access form in the [Service Level Objectives](https://docs.datadoghq.com/service_management/service_level_objectives/#slo-csv-export) docs."
- }
- },
- "/api/v2/spans/analytics/aggregate": {
+ }
+ },
"post": {
- "description": "The API endpoint to aggregate spans into buckets and compute metrics and timeseries.\nThis endpoint is rate limited to `300` requests per hour.",
- "operationId": "AggregateSpans",
+ "description": "Add a new link to a team.",
+ "operationId": "CreateTeamLink",
+ "parameters": [
+ {
+ "description": "None",
+ "in": "path",
+ "name": "team_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
"requestBody": {
"content": {
"application/json": {
"schema": {
- "description": "The object sent with the request to retrieve a list of aggregated spans from your organization.",
+ "description": "Team link create request",
"properties": {
"data": {
- "description": "The object containing the query content.",
+ "description": "Team link create",
"properties": {
"attributes": {
- "description": "The object containing all the query parameters.",
+ "description": "Team link attributes",
"properties": {
- "compute": {
- "description": "The list of metrics or timeseries to compute for the retrieved buckets.",
- "items": {
- "description": "A compute rule to compute metrics or timeseries.",
- "properties": {
- "aggregation": {
- "description": "An aggregation function.",
- "enum": [
- "count",
- "cardinality",
- "pc75",
- "pc90",
- "pc95",
- "pc98",
- "pc99",
- "sum",
- "min",
- "max",
- "avg",
- "median"
- ],
- "example": "pc90",
- "type": "string",
- "x-enum-varnames": [
- "COUNT",
- "CARDINALITY",
- "PERCENTILE_75",
- "PERCENTILE_90",
- "PERCENTILE_95",
- "PERCENTILE_98",
- "PERCENTILE_99",
- "SUM",
- "MIN",
- "MAX",
- "AVG",
- "MEDIAN"
- ]
- },
- "interval": {
- "description": "The time buckets' size (only used for type=timeseries)\nDefaults to a resolution of 150 points.",
- "example": "5m",
- "type": "string"
- },
- "metric": {
- "description": "The metric to use.",
- "example": "@duration",
- "type": "string"
- },
- "type": {
- "default": "total",
- "description": "The type of compute.",
- "enum": [
- "timeseries",
- "total"
- ],
- "type": "string",
- "x-enum-varnames": [
- "TIMESERIES",
- "TOTAL"
- ]
- }
- },
- "required": [
- "aggregation"
- ],
- "type": "object"
- },
- "type": "array"
+ "label": {
+ "description": "The link's label",
+ "example": "Link label",
+ "maxLength": 256,
+ "type": "string"
},
- "filter": {
- "description": "The search and filter query settings.",
- "properties": {
- "from": {
- "default": "now-15m",
- "description": "The minimum time for the requested spans, supports date-time ISO8601, date math, and regular timestamps (milliseconds).",
- "example": "now-15m",
- "type": "string"
- },
- "query": {
- "default": "*",
- "description": "The search query - following the span search syntax.",
- "example": "service:web* AND @http.status_code:[200 TO 299]",
- "type": "string"
- },
- "to": {
- "default": "now",
- "description": "The maximum time for the requested spans, supports date-time ISO8601, date math, and regular timestamps (milliseconds).",
- "example": "now",
- "type": "string"
- }
- },
- "type": "object"
+ "position": {
+ "description": "The link's position, used to sort links for the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "type": "integer"
},
- "group_by": {
- "description": "The rules for the group by.",
- "items": {
- "description": "A group by rule.",
- "properties": {
- "facet": {
- "description": "The name of the facet to use (required).",
- "example": "host",
- "type": "string"
- },
- "histogram": {
- "description": "Used to perform a histogram computation (only for measure facets).\nNote: At most 100 buckets are allowed, the number of buckets is (max - min)/interval.",
- "properties": {
- "interval": {
- "description": "The bin size of the histogram buckets.",
- "example": 10,
- "format": "double",
- "type": "number"
- },
- "max": {
- "description": "The maximum value for the measure used in the histogram\n(values greater than this one are filtered out).",
- "example": 100,
- "format": "double",
- "type": "number"
- },
- "min": {
- "description": "The minimum value for the measure used in the histogram\n(values smaller than this one are filtered out).",
- "example": 50,
- "format": "double",
- "type": "number"
- }
- },
- "required": [
- "interval",
- "min",
- "max"
- ],
- "type": "object"
- },
- "limit": {
- "default": 10,
- "description": "The maximum buckets to return for this group by.",
- "format": "int64",
- "type": "integer"
- },
- "missing": {
- "description": "The value to use for spans that don't have the facet used to group by.",
- "oneOf": [
- {
- "description": "The missing value to use if there is string valued facet.",
- "type": "string"
- },
- {
- "description": "The missing value to use if there is a number valued facet.",
- "format": "double",
- "type": "number"
- }
- ]
- },
- "sort": {
- "description": "A sort rule.",
- "example": {
- "aggregation": "count",
- "order": "asc"
- },
- "properties": {
- "aggregation": {
- "description": "An aggregation function.",
- "enum": [
- "count",
- "cardinality",
- "pc75",
- "pc90",
- "pc95",
- "pc98",
- "pc99",
- "sum",
- "min",
- "max",
- "avg",
- "median"
- ],
- "example": "pc90",
- "type": "string",
- "x-enum-varnames": [
- "COUNT",
- "CARDINALITY",
- "PERCENTILE_75",
- "PERCENTILE_90",
- "PERCENTILE_95",
- "PERCENTILE_98",
- "PERCENTILE_99",
- "SUM",
- "MIN",
- "MAX",
- "AVG",
- "MEDIAN"
- ]
- },
- "metric": {
- "description": "The metric to sort by (only used for `type=measure`).",
- "example": "@duration",
- "type": "string"
- },
- "order": {
- "description": "The order to use, ascending or descending.",
- "enum": [
- "asc",
- "desc"
- ],
- "example": "asc",
- "type": "string",
- "x-enum-varnames": [
- "ASCENDING",
- "DESCENDING"
- ]
- },
- "type": {
- "default": "alphabetical",
- "description": "The type of sorting algorithm.",
- "enum": [
- "alphabetical",
- "measure"
- ],
- "type": "string",
- "x-enum-varnames": [
- "ALPHABETICAL",
- "MEASURE"
- ]
- }
- },
- "type": "object"
- },
- "total": {
- "default": false,
- "description": "A resulting object to put the given computes in over all the matching records.",
- "oneOf": [
- {
- "description": "If set to true, creates an additional bucket labeled \"$facet_total\".",
- "type": "boolean"
- },
- {
- "description": "A string to use as the key value for the total bucket.",
- "type": "string"
- },
- {
- "description": "A number to use as the key value for the total bucket.",
- "format": "double",
- "type": "number"
- }
- ]
- }
- },
- "required": [
- "facet"
- ],
- "type": "object"
- },
- "type": "array"
+ "team_id": {
+ "description": "ID of the team the link is associated with",
+ "readOnly": true,
+ "type": "string"
},
- "options": {
- "description": "Global query options that are used during the query.\nNote: You should only supply timezone or time offset but not both otherwise the query will fail.",
- "properties": {
- "timeOffset": {
- "description": "The time offset (in seconds) to apply to the query.",
- "format": "int64",
- "type": "integer"
- },
- "timezone": {
- "default": "UTC",
- "description": "The timezone can be specified as GMT, UTC, an offset from UTC (like UTC+1), or as a Timezone Database identifier (like America/New_York).",
- "example": "GMT",
- "type": "string"
- }
- },
- "type": "object"
+ "url": {
+ "description": "The URL for the link",
+ "example": "https://example.com",
+ "type": "string"
}
},
+ "required": [
+ "label",
+ "url"
+ ],
"type": "object"
},
"type": {
- "default": "aggregate_request",
- "description": "The type of resource. The value should always be aggregate_request.",
+ "default": "team_links",
+ "description": "Team link type",
"enum": [
- "aggregate_request"
+ "team_links"
],
- "example": "aggregate_request",
+ "example": "team_links",
"type": "string",
"x-enum-varnames": [
- "AGGREGATE_REQUEST"
+ "TEAM_LINKS"
]
}
},
+ "required": [
+ "attributes",
+ "type"
+ ],
"type": "object"
}
},
+ "required": [
+ "data"
+ ],
"type": "object"
}
}
@@ -390466,148 +415415,70 @@
"content": {
"application/json": {
"schema": {
- "description": "The response object for the spans aggregate API endpoint.",
+ "description": "Team link response",
"properties": {
"data": {
- "description": "The list of matching buckets, one item per bucket.",
- "items": {
- "description": "Spans aggregate.",
- "properties": {
- "attributes": {
- "description": "A bucket values.",
- "properties": {
- "by": {
- "additionalProperties": {
- "description": "The values for each group by."
- },
- "description": "The key, value pairs for each group by.",
- "example": {
- "@state": "success",
- "@version": "abc"
- },
- "type": "object"
- },
- "compute": {
- "description": "The compute data.",
- "type": "object"
- },
- "computes": {
- "additionalProperties": {
- "description": "A bucket value, can be either a timeseries or a single value.",
- "oneOf": [
- {
- "description": "A single string value.",
- "type": "string"
- },
- {
- "description": "A single number value.",
- "format": "double",
- "type": "number"
- },
- {
- "description": "A timeseries array.",
- "items": {
- "description": "A timeseries point.",
- "properties": {
- "time": {
- "description": "The time value for this point.",
- "example": "2023-06-08T11:55:00Z",
- "type": "string"
- },
- "value": {
- "description": "The value for this point.",
- "example": 19,
- "format": "double",
- "type": "number"
- }
- },
- "type": "object"
- },
- "type": "array",
- "x-generate-alias-as-model": true
- }
- ]
- },
- "description": "A map of the metric name -> value for regular compute or list of values for a timeseries.",
- "type": "object"
- }
+ "description": "Team link",
+ "properties": {
+ "attributes": {
+ "description": "Team link attributes",
+ "properties": {
+ "label": {
+ "description": "The link's label",
+ "example": "Link label",
+ "maxLength": 256,
+ "type": "string"
},
- "type": "object"
- },
- "id": {
- "description": "ID of the spans aggregate.",
- "type": "string"
+ "position": {
+ "description": "The link's position, used to sort links for the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "type": "integer"
+ },
+ "team_id": {
+ "description": "ID of the team the link is associated with",
+ "readOnly": true,
+ "type": "string"
+ },
+ "url": {
+ "description": "The URL for the link",
+ "example": "https://example.com",
+ "type": "string"
+ }
},
- "type": {
- "description": "The spans aggregate bucket type.",
- "enum": [
- "bucket"
- ],
- "example": "bucket",
- "type": "string",
- "x-enum-varnames": [
- "BUCKET"
- ]
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "meta": {
- "description": "The metadata associated with a request.",
- "properties": {
- "elapsed": {
- "description": "The time elapsed in milliseconds.",
- "example": 132,
- "format": "int64",
- "type": "integer"
+ "required": [
+ "label",
+ "url"
+ ],
+ "type": "object"
},
- "request_id": {
- "description": "The identifier of the request.",
- "example": "MWlFUjVaWGZTTTZPYzM0VXp1OXU2d3xLSVpEMjZKQ0VKUTI0dEYtM3RSOFVR",
+ "id": {
+ "description": "The team link's identifier",
+ "example": "b8626d7e-cedd-11eb-abf5-da7ad0900001",
"type": "string"
},
- "status": {
- "description": "The status of the response.",
+ "type": {
+ "default": "team_links",
+ "description": "Team link type",
"enum": [
- "done",
- "timeout"
+ "team_links"
],
- "example": "done",
+ "example": "team_links",
"type": "string",
"x-enum-varnames": [
- "DONE",
- "TIMEOUT"
+ "TEAM_LINKS"
]
- },
- "warnings": {
- "description": "A list of warnings (non fatal errors) encountered, partial results might be returned if\nwarnings are present in the response.",
- "items": {
- "description": "A warning message indicating something that went wrong with the query.",
- "properties": {
- "code": {
- "description": "A unique code for this type of warning.",
- "example": "unknown_index",
- "type": "string"
- },
- "detail": {
- "description": "A detailed explanation of this specific warning.",
- "example": "indexes: foo, bar",
- "type": "string"
- },
- "title": {
- "description": "A short human-readable summary of the warning.",
- "example": "One or several indexes are missing or invalid, results hold data from the other indexes",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
}
},
- "type": "object"
+ "required": [
+ "attributes",
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
"type": "object"
@@ -390616,7 +415487,7 @@
},
"description": "OK"
},
- "400": {
+ "403": {
"content": {
"application/json": {
"schema": {
@@ -390642,9 +415513,9 @@
}
}
},
- "description": "Bad Request"
+ "description": "Forbidden"
},
- "403": {
+ "404": {
"content": {
"application/json": {
"schema": {
@@ -390670,7 +415541,35 @@
}
}
},
- "description": "Forbidden"
+ "description": "API error response."
+ },
+ "422": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "API error response."
},
"429": {
"content": {
@@ -390708,391 +415607,80 @@
},
{
"AuthZ": [
- "apm_read"
+ "teams_read"
]
}
],
- "summary": "Aggregate spans",
+ "summary": "Create a team link",
"tags": [
- "Spans"
+ "Teams"
],
"x-codegen-request-body-name": "body",
- "x-menu-order": 3,
+ "x-given": {
+ "team_link": {
+ "parameters": [
+ {
+ "name": "team_id",
+ "source": "dd_team.data.id"
+ },
+ {
+ "name": "body",
+ "value": "{\n \"data\": {\n \"attributes\": {\n \"label\": \"{{unique}}\",\n \"url\": \"https://example.com\",\n \"position\": 0\n },\n \"type\": \"team_links\"\n }\n}"
+ }
+ ],
+ "step": "there is a valid \"team_link\" in the system"
+ }
+ },
+ "x-menu-order": 11,
"x-permission": {
"operator": "OR",
"permissions": [
- "apm_read"
+ "teams_read"
]
},
"x-undo": {
- "type": "safe"
+ "operationId": "DeleteTeamLink",
+ "parameters": [
+ {
+ "name": "team_id",
+ "source": "data.attributes.team_id"
+ },
+ {
+ "name": "link_id",
+ "source": "data.id"
+ }
+ ],
+ "type": "unsafe"
}
}
- },
- "/api/v2/spans/events": {
- "get": {
- "description": "List endpoint returns spans that match a span search query.\n[Results are paginated][1].\n\nUse this endpoint to see your latest spans.\nThis endpoint is rate limited to `300` requests per hour.\n\n[1]: /logs/guide/collect-multiple-logs-with-pagination?tab=v2api",
- "operationId": "ListSpansGet",
- "parameters": [
- {
- "description": "Search query following spans syntax.",
- "example": "@datacenter:us @role:db",
- "in": "query",
- "name": "filter[query]",
- "required": false,
- "schema": {
- "type": "string"
- }
- },
- {
- "description": "Minimum timestamp for requested spans. Supports date-time ISO8601, date math, and regular timestamps (milliseconds).",
- "example": "2023-01-02T09:42:36.320Z",
- "in": "query",
- "name": "filter[from]",
- "required": false,
- "schema": {
- "type": "string"
- }
- },
- {
- "description": "Maximum timestamp for requested spans. Supports date-time ISO8601, date math, and regular timestamps (milliseconds).",
- "example": "2023-01-03T09:42:36.320Z",
- "in": "query",
- "name": "filter[to]",
- "required": false,
- "schema": {
- "type": "string"
- }
- },
- {
- "description": "Order of spans in results.",
- "in": "query",
- "name": "sort",
- "required": false,
- "schema": {
- "description": "Sort parameters when querying spans.",
- "enum": [
- "timestamp",
- "-timestamp"
- ],
- "type": "string",
- "x-enum-varnames": [
- "TIMESTAMP_ASCENDING",
- "TIMESTAMP_DESCENDING"
- ]
- }
- },
- {
- "description": "List following results with a cursor provided in the previous query.",
- "example": "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==",
- "in": "query",
- "name": "page[cursor]",
- "required": false,
- "schema": {
- "type": "string"
- }
- },
- {
- "description": "Maximum number of spans in the response.",
- "example": 25,
- "in": "query",
- "name": "page[limit]",
- "required": false,
- "schema": {
- "default": 10,
- "format": "int32",
- "maximum": 1000,
- "type": "integer"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Response object with all spans matching the request and pagination information.",
- "properties": {
- "data": {
- "description": "Array of spans matching the request.",
- "items": {
- "description": "Object description of a spans after being processed and stored by Datadog.",
- "properties": {
- "attributes": {
- "description": "JSON object containing all span attributes and their associated values.",
- "properties": {
- "attributes": {
- "additionalProperties": {},
- "description": "JSON object of attributes from your span.",
- "example": {
- "customAttribute": 123,
- "duration": 2345
- },
- "type": "object"
- },
- "custom": {
- "additionalProperties": {},
- "description": "JSON object of custom spans data.",
- "type": "object"
- },
- "end_timestamp": {
- "description": "End timestamp of your span.",
- "example": "2023-01-02T09:42:36.420Z",
- "format": "date-time",
- "type": "string"
- },
- "env": {
- "description": "Name of the environment from where the spans are being sent.",
- "example": "prod",
- "type": "string"
- },
- "host": {
- "description": "Name of the machine from where the spans are being sent.",
- "example": "i-0123",
- "type": "string"
- },
- "ingestion_reason": {
- "description": "The reason why the span was ingested.",
- "example": "rule",
- "type": "string"
- },
- "parent_id": {
- "description": "Id of the span that's parent of this span.",
- "example": "0",
- "type": "string"
- },
- "resource_hash": {
- "description": "Unique identifier of the resource.",
- "example": "a12345678b91c23d",
- "type": "string"
- },
- "resource_name": {
- "description": "The name of the resource.",
- "example": "agent",
- "type": "string"
- },
- "retained_by": {
- "description": "The reason why the span was indexed.",
- "example": "retention_filter",
- "type": "string"
- },
- "service": {
- "description": "The name of the application or service generating the span events.\nIt is used to switch from APM to Logs, so make sure you define the same\nvalue when you use both products.",
- "example": "agent",
- "type": "string"
- },
- "single_span": {
- "description": "Whether or not the span was collected as a stand-alone span. Always associated to \"single_span\" ingestion_reason if true.",
- "example": true,
- "type": "boolean"
- },
- "span_id": {
- "description": "Id of the span.",
- "example": "1234567890987654321",
- "type": "string"
- },
- "start_timestamp": {
- "description": "Start timestamp of your span.",
- "example": "2023-01-02T09:42:36.320Z",
- "format": "date-time",
- "type": "string"
- },
- "tags": {
- "description": "Array of tags associated with your span.",
- "example": [
- "team:A"
- ],
- "items": {
- "description": "Tag associated with your span.",
- "type": "string"
- },
- "type": "array"
- },
- "trace_id": {
- "description": "Id of the trace to which the span belongs.",
- "example": "1234567890987654321",
- "type": "string"
- },
- "type": {
- "description": "The type of the span.",
- "example": "web",
- "type": "string"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "Unique ID of the Span.",
- "example": "AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA",
- "type": "string"
- },
- "type": {
- "default": "spans",
- "description": "Type of the span.",
- "enum": [
- "spans"
- ],
- "example": "spans",
- "type": "string",
- "x-enum-varnames": [
- "SPANS"
- ]
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "links": {
- "description": "Links attributes.",
- "properties": {
- "next": {
- "description": "Link for the next set of results. Note that the request can also be made using the\nPOST endpoint.",
- "example": "https://app.datadoghq.com/api/v2/spans/event?filter[query]=foo&page[cursor]=eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==",
- "type": "string"
- }
- },
- "type": "object"
- },
- "meta": {
- "description": "The metadata associated with a request.",
- "properties": {
- "elapsed": {
- "description": "The time elapsed in milliseconds.",
- "example": 132,
- "format": "int64",
- "type": "integer"
- },
- "page": {
- "description": "Paging attributes.",
- "properties": {
- "after": {
- "description": "The cursor to use to get the next results, if any. To make the next request, use the same\nparameters with the addition of the `page[cursor]`.",
- "example": "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==",
- "type": "string"
- }
- },
- "type": "object"
- },
- "request_id": {
- "description": "The identifier of the request.",
- "example": "MWlFUjVaWGZTTTZPYzM0VXp1OXU2d3xLSVpEMjZKQ0VKUTI0dEYtM3RSOFVR",
- "type": "string"
- },
- "status": {
- "description": "The status of the response.",
- "enum": [
- "done",
- "timeout"
- ],
- "example": "done",
- "type": "string",
- "x-enum-varnames": [
- "DONE",
- "TIMEOUT"
- ]
- },
- "warnings": {
- "description": "A list of warnings (non fatal errors) encountered, partial results might be returned if\nwarnings are present in the response.",
- "items": {
- "description": "A warning message indicating something that went wrong with the query.",
- "properties": {
- "code": {
- "description": "A unique code for this type of warning.",
- "example": "unknown_index",
- "type": "string"
- },
- "detail": {
- "description": "A detailed explanation of this specific warning.",
- "example": "indexes: foo, bar",
- "type": "string"
- },
- "title": {
- "description": "A short human-readable summary of the warning.",
- "example": "One or several indexes are missing or invalid, results hold data from the other indexes",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
- }
- },
- "type": "object"
- }
- },
- "type": "object"
- }
- }
- },
- "description": "OK"
- },
- "400": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "items": {
- "description": "API error response body",
- "properties": {
- "detail": {
- "description": "A human-readable explanation specific to this occurrence of the error.",
- "example": "Missing required attribute in body",
- "type": "string"
- },
- "meta": {
- "additionalProperties": {},
- "description": "Non-standard meta-information about the error",
- "type": "object"
- },
- "source": {
- "description": "References to the source of the error.",
- "properties": {
- "header": {
- "description": "A string indicating the name of a single request header which caused the error.",
- "example": "Authorization",
- "type": "string"
- },
- "parameter": {
- "description": "A string indicating which URI query parameter caused the error.",
- "example": "limit",
- "type": "string"
- },
- "pointer": {
- "description": "A JSON pointer to the value in the request document that caused the error.",
- "example": "/data/attributes/title",
- "type": "string"
- }
- },
- "type": "object"
- },
- "status": {
- "description": "Status code of the response.",
- "example": "400",
- "type": "string"
- },
- "title": {
- "description": "Short human-readable summary of the error.",
- "example": "Bad Request",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Bad Request."
+ },
+ "/api/v2/team/{team_id}/links/{link_id}": {
+ "delete": {
+ "description": "Remove a link from a team.",
+ "operationId": "DeleteTeamLink",
+ "parameters": [
+ {
+ "description": "None",
+ "in": "path",
+ "name": "team_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "None",
+ "in": "path",
+ "name": "link_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "No Content"
},
"403": {
"content": {
@@ -391102,52 +415690,13 @@
"properties": {
"errors": {
"description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
"items": {
- "description": "API error response body",
- "properties": {
- "detail": {
- "description": "A human-readable explanation specific to this occurrence of the error.",
- "example": "Missing required attribute in body",
- "type": "string"
- },
- "meta": {
- "additionalProperties": {},
- "description": "Non-standard meta-information about the error",
- "type": "object"
- },
- "source": {
- "description": "References to the source of the error.",
- "properties": {
- "header": {
- "description": "A string indicating the name of a single request header which caused the error.",
- "example": "Authorization",
- "type": "string"
- },
- "parameter": {
- "description": "A string indicating which URI query parameter caused the error.",
- "example": "limit",
- "type": "string"
- },
- "pointer": {
- "description": "A JSON pointer to the value in the request document that caused the error.",
- "example": "/data/attributes/title",
- "type": "string"
- }
- },
- "type": "object"
- },
- "status": {
- "description": "Status code of the response.",
- "example": "400",
- "type": "string"
- },
- "title": {
- "description": "Short human-readable summary of the error.",
- "example": "Bad Request",
- "type": "string"
- }
- },
- "type": "object"
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
},
"type": "array"
}
@@ -391159,9 +415708,9 @@
}
}
},
- "description": "Forbidden: Access denied."
+ "description": "Forbidden"
},
- "422": {
+ "404": {
"content": {
"application/json": {
"schema": {
@@ -391169,52 +415718,13 @@
"properties": {
"errors": {
"description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
"items": {
- "description": "API error response body",
- "properties": {
- "detail": {
- "description": "A human-readable explanation specific to this occurrence of the error.",
- "example": "Missing required attribute in body",
- "type": "string"
- },
- "meta": {
- "additionalProperties": {},
- "description": "Non-standard meta-information about the error",
- "type": "object"
- },
- "source": {
- "description": "References to the source of the error.",
- "properties": {
- "header": {
- "description": "A string indicating the name of a single request header which caused the error.",
- "example": "Authorization",
- "type": "string"
- },
- "parameter": {
- "description": "A string indicating which URI query parameter caused the error.",
- "example": "limit",
- "type": "string"
- },
- "pointer": {
- "description": "A JSON pointer to the value in the request document that caused the error.",
- "example": "/data/attributes/title",
- "type": "string"
- }
- },
- "type": "object"
- },
- "status": {
- "description": "Status code of the response.",
- "example": "400",
- "type": "string"
- },
- "title": {
- "description": "Short human-readable summary of the error.",
- "example": "Bad Request",
- "type": "string"
- }
- },
- "type": "object"
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
},
"type": "array"
}
@@ -391226,7 +415736,7 @@
}
}
},
- "description": "Unprocessable Entity."
+ "description": "API error response."
},
"429": {
"content": {
@@ -391236,52 +415746,13 @@
"properties": {
"errors": {
"description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
"items": {
- "description": "API error response body",
- "properties": {
- "detail": {
- "description": "A human-readable explanation specific to this occurrence of the error.",
- "example": "Missing required attribute in body",
- "type": "string"
- },
- "meta": {
- "additionalProperties": {},
- "description": "Non-standard meta-information about the error",
- "type": "object"
- },
- "source": {
- "description": "References to the source of the error.",
- "properties": {
- "header": {
- "description": "A string indicating the name of a single request header which caused the error.",
- "example": "Authorization",
- "type": "string"
- },
- "parameter": {
- "description": "A string indicating which URI query parameter caused the error.",
- "example": "limit",
- "type": "string"
- },
- "pointer": {
- "description": "A JSON pointer to the value in the request document that caused the error.",
- "example": "/data/attributes/title",
- "type": "string"
- }
- },
- "type": "object"
- },
- "status": {
- "description": "Status code of the response.",
- "example": "400",
- "type": "string"
- },
- "title": {
- "description": "Short human-readable summary of the error.",
- "example": "Bad Request",
- "type": "string"
- }
- },
- "type": "object"
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
},
"type": "array"
}
@@ -391293,7 +415764,7 @@
}
}
},
- "description": "Too many requests: The rate limit set by the API has been exceeded."
+ "description": "Too many requests"
}
},
"security": [
@@ -391303,352 +415774,117 @@
},
{
"AuthZ": [
- "apm_read"
+ "teams_read"
]
}
],
- "summary": "Get a list of spans",
+ "summary": "Remove a team link",
"tags": [
- "Spans"
+ "Teams"
],
- "x-menu-order": 1,
- "x-pagination": {
- "cursorParam": "page[cursor]",
- "cursorPath": "meta.page.after",
- "limitParam": "page[limit]",
- "resultsPath": "data"
+ "x-menu-order": 14,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "teams_read"
+ ]
},
"x-undo": {
- "type": "safe"
+ "type": "idempotent"
}
- }
- },
- "/api/v2/spans/events/search": {
- "post": {
- "description": "List endpoint returns spans that match a span search query.\n[Results are paginated][1].\n\nUse this endpoint to build complex spans filtering and search.\nThis endpoint is rate limited to `300` requests per hour.\n\n[1]: /logs/guide/collect-multiple-logs-with-pagination?tab=v2api",
- "operationId": "ListSpans",
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "description": "The request for a spans list.",
- "properties": {
- "data": {
- "description": "The object containing the query content.",
- "properties": {
- "attributes": {
- "description": "The object containing all the query parameters.",
- "properties": {
- "filter": {
- "description": "The search and filter query settings.",
- "properties": {
- "from": {
- "default": "now-15m",
- "description": "The minimum time for the requested spans, supports date-time ISO8601, date math, and regular timestamps (milliseconds).",
- "example": "now-15m",
- "type": "string"
- },
- "query": {
- "default": "*",
- "description": "The search query - following the span search syntax.",
- "example": "service:web* AND @http.status_code:[200 TO 299]",
- "type": "string"
- },
- "to": {
- "default": "now",
- "description": "The maximum time for the requested spans, supports date-time ISO8601, date math, and regular timestamps (milliseconds).",
- "example": "now",
- "type": "string"
- }
- },
- "type": "object"
- },
- "options": {
- "description": "Global query options that are used during the query.\nNote: You should only supply timezone or time offset but not both otherwise the query will fail.",
- "properties": {
- "timeOffset": {
- "description": "The time offset (in seconds) to apply to the query.",
- "format": "int64",
- "type": "integer"
- },
- "timezone": {
- "default": "UTC",
- "description": "The timezone can be specified as GMT, UTC, an offset from UTC (like UTC+1), or as a Timezone Database identifier (like America/New_York).",
- "example": "GMT",
- "type": "string"
- }
- },
- "type": "object"
- },
- "page": {
- "description": "Paging attributes for listing spans.",
- "properties": {
- "cursor": {
- "description": "List following results with a cursor provided in the previous query.",
- "example": "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==",
- "type": "string"
- },
- "limit": {
- "default": 10,
- "description": "Maximum number of spans in the response.",
- "example": 25,
- "format": "int32",
- "maximum": 1000,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "sort": {
- "description": "Sort parameters when querying spans.",
- "enum": [
- "timestamp",
- "-timestamp"
- ],
- "type": "string",
- "x-enum-varnames": [
- "TIMESTAMP_ASCENDING",
- "TIMESTAMP_DESCENDING"
- ]
- }
- },
- "type": "object"
- },
- "type": {
- "default": "search_request",
- "description": "The type of resource. The value should always be search_request.",
- "enum": [
- "search_request"
- ],
- "example": "search_request",
- "type": "string",
- "x-enum-varnames": [
- "SEARCH_REQUEST"
- ]
- }
- },
- "type": "object"
- }
- },
- "type": "object"
- }
+ },
+ "get": {
+ "description": "Get a single link for a team.",
+ "operationId": "GetTeamLink",
+ "parameters": [
+ {
+ "description": "None",
+ "in": "path",
+ "name": "team_id",
+ "required": true,
+ "schema": {
+ "type": "string"
}
},
- "required": true
- },
+ {
+ "description": "None",
+ "in": "path",
+ "name": "link_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
- "description": "Response object with all spans matching the request and pagination information.",
+ "description": "Team link response",
"properties": {
"data": {
- "description": "Array of spans matching the request.",
- "items": {
- "description": "Object description of a spans after being processed and stored by Datadog.",
- "properties": {
- "attributes": {
- "description": "JSON object containing all span attributes and their associated values.",
- "properties": {
- "attributes": {
- "additionalProperties": {},
- "description": "JSON object of attributes from your span.",
- "example": {
- "customAttribute": 123,
- "duration": 2345
- },
- "type": "object"
- },
- "custom": {
- "additionalProperties": {},
- "description": "JSON object of custom spans data.",
- "type": "object"
- },
- "end_timestamp": {
- "description": "End timestamp of your span.",
- "example": "2023-01-02T09:42:36.420Z",
- "format": "date-time",
- "type": "string"
- },
- "env": {
- "description": "Name of the environment from where the spans are being sent.",
- "example": "prod",
- "type": "string"
- },
- "host": {
- "description": "Name of the machine from where the spans are being sent.",
- "example": "i-0123",
- "type": "string"
- },
- "ingestion_reason": {
- "description": "The reason why the span was ingested.",
- "example": "rule",
- "type": "string"
- },
- "parent_id": {
- "description": "Id of the span that's parent of this span.",
- "example": "0",
- "type": "string"
- },
- "resource_hash": {
- "description": "Unique identifier of the resource.",
- "example": "a12345678b91c23d",
- "type": "string"
- },
- "resource_name": {
- "description": "The name of the resource.",
- "example": "agent",
- "type": "string"
- },
- "retained_by": {
- "description": "The reason why the span was indexed.",
- "example": "retention_filter",
- "type": "string"
- },
- "service": {
- "description": "The name of the application or service generating the span events.\nIt is used to switch from APM to Logs, so make sure you define the same\nvalue when you use both products.",
- "example": "agent",
- "type": "string"
- },
- "single_span": {
- "description": "Whether or not the span was collected as a stand-alone span. Always associated to \"single_span\" ingestion_reason if true.",
- "example": true,
- "type": "boolean"
- },
- "span_id": {
- "description": "Id of the span.",
- "example": "1234567890987654321",
- "type": "string"
- },
- "start_timestamp": {
- "description": "Start timestamp of your span.",
- "example": "2023-01-02T09:42:36.320Z",
- "format": "date-time",
- "type": "string"
- },
- "tags": {
- "description": "Array of tags associated with your span.",
- "example": [
- "team:A"
- ],
- "items": {
- "description": "Tag associated with your span.",
- "type": "string"
- },
- "type": "array"
- },
- "trace_id": {
- "description": "Id of the trace to which the span belongs.",
- "example": "1234567890987654321",
- "type": "string"
- },
- "type": {
- "description": "The type of the span.",
- "example": "web",
- "type": "string"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "Unique ID of the Span.",
- "example": "AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA",
- "type": "string"
- },
- "type": {
- "default": "spans",
- "description": "Type of the span.",
- "enum": [
- "spans"
- ],
- "example": "spans",
- "type": "string",
- "x-enum-varnames": [
- "SPANS"
- ]
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "links": {
- "description": "Links attributes.",
- "properties": {
- "next": {
- "description": "Link for the next set of results. Note that the request can also be made using the\nPOST endpoint.",
- "example": "https://app.datadoghq.com/api/v2/spans/event?filter[query]=foo&page[cursor]=eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==",
- "type": "string"
- }
- },
- "type": "object"
- },
- "meta": {
- "description": "The metadata associated with a request.",
+ "description": "Team link",
"properties": {
- "elapsed": {
- "description": "The time elapsed in milliseconds.",
- "example": 132,
- "format": "int64",
- "type": "integer"
- },
- "page": {
- "description": "Paging attributes.",
+ "attributes": {
+ "description": "Team link attributes",
"properties": {
- "after": {
- "description": "The cursor to use to get the next results, if any. To make the next request, use the same\nparameters with the addition of the `page[cursor]`.",
- "example": "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==",
+ "label": {
+ "description": "The link's label",
+ "example": "Link label",
+ "maxLength": 256,
+ "type": "string"
+ },
+ "position": {
+ "description": "The link's position, used to sort links for the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "type": "integer"
+ },
+ "team_id": {
+ "description": "ID of the team the link is associated with",
+ "readOnly": true,
+ "type": "string"
+ },
+ "url": {
+ "description": "The URL for the link",
+ "example": "https://example.com",
"type": "string"
}
},
+ "required": [
+ "label",
+ "url"
+ ],
"type": "object"
},
- "request_id": {
- "description": "The identifier of the request.",
- "example": "MWlFUjVaWGZTTTZPYzM0VXp1OXU2d3xLSVpEMjZKQ0VKUTI0dEYtM3RSOFVR",
+ "id": {
+ "description": "The team link's identifier",
+ "example": "b8626d7e-cedd-11eb-abf5-da7ad0900001",
"type": "string"
},
- "status": {
- "description": "The status of the response.",
+ "type": {
+ "default": "team_links",
+ "description": "Team link type",
"enum": [
- "done",
- "timeout"
+ "team_links"
],
- "example": "done",
+ "example": "team_links",
"type": "string",
"x-enum-varnames": [
- "DONE",
- "TIMEOUT"
+ "TEAM_LINKS"
]
- },
- "warnings": {
- "description": "A list of warnings (non fatal errors) encountered, partial results might be returned if\nwarnings are present in the response.",
- "items": {
- "description": "A warning message indicating something that went wrong with the query.",
- "properties": {
- "code": {
- "description": "A unique code for this type of warning.",
- "example": "unknown_index",
- "type": "string"
- },
- "detail": {
- "description": "A detailed explanation of this specific warning.",
- "example": "indexes: foo, bar",
- "type": "string"
- },
- "title": {
- "description": "A short human-readable summary of the warning.",
- "example": "One or several indexes are missing or invalid, results hold data from the other indexes",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
}
},
- "type": "object"
+ "required": [
+ "attributes",
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
"type": "object"
@@ -391657,73 +415893,6 @@
},
"description": "OK"
},
- "400": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "items": {
- "description": "API error response body",
- "properties": {
- "detail": {
- "description": "A human-readable explanation specific to this occurrence of the error.",
- "example": "Missing required attribute in body",
- "type": "string"
- },
- "meta": {
- "additionalProperties": {},
- "description": "Non-standard meta-information about the error",
- "type": "object"
- },
- "source": {
- "description": "References to the source of the error.",
- "properties": {
- "header": {
- "description": "A string indicating the name of a single request header which caused the error.",
- "example": "Authorization",
- "type": "string"
- },
- "parameter": {
- "description": "A string indicating which URI query parameter caused the error.",
- "example": "limit",
- "type": "string"
- },
- "pointer": {
- "description": "A JSON pointer to the value in the request document that caused the error.",
- "example": "/data/attributes/title",
- "type": "string"
- }
- },
- "type": "object"
- },
- "status": {
- "description": "Status code of the response.",
- "example": "400",
- "type": "string"
- },
- "title": {
- "description": "Short human-readable summary of the error.",
- "example": "Bad Request",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Bad Request."
- },
"403": {
"content": {
"application/json": {
@@ -391732,52 +415901,13 @@
"properties": {
"errors": {
"description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
"items": {
- "description": "API error response body",
- "properties": {
- "detail": {
- "description": "A human-readable explanation specific to this occurrence of the error.",
- "example": "Missing required attribute in body",
- "type": "string"
- },
- "meta": {
- "additionalProperties": {},
- "description": "Non-standard meta-information about the error",
- "type": "object"
- },
- "source": {
- "description": "References to the source of the error.",
- "properties": {
- "header": {
- "description": "A string indicating the name of a single request header which caused the error.",
- "example": "Authorization",
- "type": "string"
- },
- "parameter": {
- "description": "A string indicating which URI query parameter caused the error.",
- "example": "limit",
- "type": "string"
- },
- "pointer": {
- "description": "A JSON pointer to the value in the request document that caused the error.",
- "example": "/data/attributes/title",
- "type": "string"
- }
- },
- "type": "object"
- },
- "status": {
- "description": "Status code of the response.",
- "example": "400",
- "type": "string"
- },
- "title": {
- "description": "Short human-readable summary of the error.",
- "example": "Bad Request",
- "type": "string"
- }
- },
- "type": "object"
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
},
"type": "array"
}
@@ -391789,9 +415919,9 @@
}
}
},
- "description": "Forbidden: Access denied."
+ "description": "Forbidden"
},
- "422": {
+ "404": {
"content": {
"application/json": {
"schema": {
@@ -391799,52 +415929,13 @@
"properties": {
"errors": {
"description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
"items": {
- "description": "API error response body",
- "properties": {
- "detail": {
- "description": "A human-readable explanation specific to this occurrence of the error.",
- "example": "Missing required attribute in body",
- "type": "string"
- },
- "meta": {
- "additionalProperties": {},
- "description": "Non-standard meta-information about the error",
- "type": "object"
- },
- "source": {
- "description": "References to the source of the error.",
- "properties": {
- "header": {
- "description": "A string indicating the name of a single request header which caused the error.",
- "example": "Authorization",
- "type": "string"
- },
- "parameter": {
- "description": "A string indicating which URI query parameter caused the error.",
- "example": "limit",
- "type": "string"
- },
- "pointer": {
- "description": "A JSON pointer to the value in the request document that caused the error.",
- "example": "/data/attributes/title",
- "type": "string"
- }
- },
- "type": "object"
- },
- "status": {
- "description": "Status code of the response.",
- "example": "400",
- "type": "string"
- },
- "title": {
- "description": "Short human-readable summary of the error.",
- "example": "Bad Request",
- "type": "string"
- }
- },
- "type": "object"
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
},
"type": "array"
}
@@ -391856,7 +415947,7 @@
}
}
},
- "description": "Unprocessable Entity."
+ "description": "API error response."
},
"429": {
"content": {
@@ -391866,52 +415957,13 @@
"properties": {
"errors": {
"description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
"items": {
- "description": "API error response body",
- "properties": {
- "detail": {
- "description": "A human-readable explanation specific to this occurrence of the error.",
- "example": "Missing required attribute in body",
- "type": "string"
- },
- "meta": {
- "additionalProperties": {},
- "description": "Non-standard meta-information about the error",
- "type": "object"
- },
- "source": {
- "description": "References to the source of the error.",
- "properties": {
- "header": {
- "description": "A string indicating the name of a single request header which caused the error.",
- "example": "Authorization",
- "type": "string"
- },
- "parameter": {
- "description": "A string indicating which URI query parameter caused the error.",
- "example": "limit",
- "type": "string"
- },
- "pointer": {
- "description": "A JSON pointer to the value in the request document that caused the error.",
- "example": "/data/attributes/title",
- "type": "string"
- }
- },
- "type": "object"
- },
- "status": {
- "description": "Status code of the response.",
- "example": "400",
- "type": "string"
- },
- "title": {
- "description": "Short human-readable summary of the error.",
- "example": "Bad Request",
- "type": "string"
- }
- },
- "type": "object"
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
},
"type": "array"
}
@@ -391923,7 +415975,7 @@
}
}
},
- "description": "Too many requests: The rate limit set by the API has been exceeded."
+ "description": "Too many requests"
}
},
"security": [
@@ -391933,64 +415985,187 @@
},
{
"AuthZ": [
- "apm_read"
+ "teams_read"
]
}
],
- "summary": "Search spans",
+ "summary": "Get a team link",
"tags": [
- "Spans"
+ "Teams"
],
- "x-codegen-request-body-name": "body",
- "x-menu-order": 2,
- "x-pagination": {
- "cursorParam": "body.data.attributes.page.cursor",
- "cursorPath": "meta.page.after",
- "limitParam": "body.data.attributes.page.limit",
- "resultsPath": "data"
+ "x-menu-order": 12,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "teams_read"
+ ]
},
"x-undo": {
"type": "safe"
}
- }
- },
- "/api/v2/synthetics/settings/on_demand_concurrency_cap": {
- "get": {
- "description": "Get the on-demand concurrency cap.",
- "operationId": "GetOnDemandConcurrencyCap",
+ },
+ "patch": {
+ "description": "Update a team link.",
+ "operationId": "UpdateTeamLink",
+ "parameters": [
+ {
+ "description": "None",
+ "in": "path",
+ "name": "team_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "None",
+ "in": "path",
+ "name": "link_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Team link create request",
+ "properties": {
+ "data": {
+ "description": "Team link create",
+ "properties": {
+ "attributes": {
+ "description": "Team link attributes",
+ "properties": {
+ "label": {
+ "description": "The link's label",
+ "example": "Link label",
+ "maxLength": 256,
+ "type": "string"
+ },
+ "position": {
+ "description": "The link's position, used to sort links for the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "type": "integer"
+ },
+ "team_id": {
+ "description": "ID of the team the link is associated with",
+ "readOnly": true,
+ "type": "string"
+ },
+ "url": {
+ "description": "The URL for the link",
+ "example": "https://example.com",
+ "type": "string"
+ }
+ },
+ "required": [
+ "label",
+ "url"
+ ],
+ "type": "object"
+ },
+ "type": {
+ "default": "team_links",
+ "description": "Team link type",
+ "enum": [
+ "team_links"
+ ],
+ "example": "team_links",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM_LINKS"
+ ]
+ }
+ },
+ "required": [
+ "attributes",
+ "type"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "required": true
+ },
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
- "description": "On-demand concurrency cap response.",
+ "description": "Team link response",
"properties": {
"data": {
- "description": "On-demand concurrency cap.",
+ "description": "Team link",
"properties": {
"attributes": {
- "description": "On-demand concurrency cap attributes.",
+ "description": "Team link attributes",
"properties": {
- "on_demand_concurrency_cap": {
- "description": "Value of the on-demand concurrency cap.",
- "format": "double",
- "type": "number"
+ "label": {
+ "description": "The link's label",
+ "example": "Link label",
+ "maxLength": 256,
+ "type": "string"
+ },
+ "position": {
+ "description": "The link's position, used to sort links for the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "type": "integer"
+ },
+ "team_id": {
+ "description": "ID of the team the link is associated with",
+ "readOnly": true,
+ "type": "string"
+ },
+ "url": {
+ "description": "The URL for the link",
+ "example": "https://example.com",
+ "type": "string"
}
},
+ "required": [
+ "label",
+ "url"
+ ],
"type": "object"
},
+ "id": {
+ "description": "The team link's identifier",
+ "example": "b8626d7e-cedd-11eb-abf5-da7ad0900001",
+ "type": "string"
+ },
"type": {
- "description": "On-demand concurrency cap type.",
+ "default": "team_links",
+ "description": "Team link type",
"enum": [
- "on_demand_concurrency_cap"
+ "team_links"
],
+ "example": "team_links",
"type": "string",
"x-enum-varnames": [
- "ON_DEMAND_CONCURRENCY_CAP"
+ "TEAM_LINKS"
]
}
},
- "type": "object"
+ "required": [
+ "attributes",
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
"type": "object"
@@ -391999,7 +416174,7 @@
},
"description": "OK"
},
- "429": {
+ "403": {
"content": {
"application/json": {
"schema": {
@@ -392022,89 +416197,38 @@
"errors"
],
"type": "object"
- }
- }
- },
- "description": "Too many requests"
- }
- },
- "summary": "Get the on-demand concurrency cap",
- "tags": [
- "Synthetics"
- ],
- "x-menu-order": 10,
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "billing_read"
- ]
- },
- "x-undo": {
- "type": "safe"
- }
- },
- "post": {
- "description": "Save new value for on-demand concurrency cap.",
- "operationId": "SetOnDemandConcurrencyCap",
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "description": "On-demand concurrency cap attributes.",
- "properties": {
- "on_demand_concurrency_cap": {
- "description": "Value of the on-demand concurrency cap.",
- "format": "double",
- "type": "number"
- }
- },
- "type": "object"
+ }
}
- }
+ },
+ "description": "Forbidden"
},
- "description": ".",
- "required": true
- },
- "responses": {
- "200": {
+ "404": {
"content": {
"application/json": {
"schema": {
- "description": "On-demand concurrency cap response.",
+ "description": "API error response.",
"properties": {
- "data": {
- "description": "On-demand concurrency cap.",
- "properties": {
- "attributes": {
- "description": "On-demand concurrency cap attributes.",
- "properties": {
- "on_demand_concurrency_cap": {
- "description": "Value of the on-demand concurrency cap.",
- "format": "double",
- "type": "number"
- }
- },
- "type": "object"
- },
- "type": {
- "description": "On-demand concurrency cap type.",
- "enum": [
- "on_demand_concurrency_cap"
- ],
- "type": "string",
- "x-enum-varnames": [
- "ON_DEMAND_CONCURRENCY_CAP"
- ]
- }
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
},
- "type": "object"
+ "type": "array"
}
},
+ "required": [
+ "errors"
+ ],
"type": "object"
}
}
},
- "description": "OK"
+ "description": "API error response."
},
"429": {
"content": {
@@ -392135,38 +416259,46 @@
"description": "Too many requests"
}
},
- "summary": "Save new value for on-demand concurrency cap",
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
+ },
+ {
+ "AuthZ": [
+ "teams_read"
+ ]
+ }
+ ],
+ "summary": "Update a team link",
"tags": [
- "Synthetics"
+ "Teams"
],
"x-codegen-request-body-name": "body",
- "x-menu-order": 11,
+ "x-menu-order": 13,
"x-permission": {
"operator": "OR",
"permissions": [
- "billing_edit"
+ "teams_read"
]
},
"x-undo": {
- "type": "safe"
+ "type": "idempotent"
}
}
},
- "/api/v2/team": {
+ "/api/v2/team/{team_id}/memberships": {
"get": {
- "description": "Get all teams.\nCan be used to search for teams using the `filter[keyword]` and `filter[me]` query parameters.",
- "operationId": "ListTeams",
+ "description": "Get a paginated list of members for a team",
+ "operationId": "GetTeamMemberships",
"parameters": [
{
- "description": "Specific page number to return.",
- "in": "query",
- "name": "page[number]",
- "required": false,
+ "description": "None",
+ "in": "path",
+ "name": "team_id",
+ "required": true,
"schema": {
- "default": 0,
- "example": 0,
- "format": "int64",
- "type": "integer"
+ "type": "string"
}
},
{
@@ -392182,113 +416314,55 @@
}
},
{
- "description": "Specifies the order of the returned teams",
+ "description": "Specific page number to return.",
+ "in": "query",
+ "name": "page[number]",
+ "required": false,
+ "schema": {
+ "default": 0,
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ {
+ "description": "Specifies the order of returned team memberships",
"in": "query",
"name": "sort",
"required": false,
"schema": {
- "description": "Specifies the order of the returned teams",
+ "description": "Specifies the order of returned team memberships",
"enum": [
+ "manager_name",
+ "-manager_name",
"name",
"-name",
- "user_count",
- "-user_count"
+ "handle",
+ "-handle",
+ "email",
+ "-email"
],
"type": "string",
"x-enum-varnames": [
+ "MANAGER_NAME",
+ "_MANAGER_NAME",
"NAME",
"_NAME",
- "USER_COUNT",
- "_USER_COUNT"
+ "HANDLE",
+ "_HANDLE",
+ "EMAIL",
+ "_EMAIL"
]
}
},
{
- "description": "Included related resources optionally requested. Allowed enum values: `team_links, user_team_permissions`",
- "in": "query",
- "name": "include",
- "required": false,
- "schema": {
- "items": {
- "description": "Included related resources optionally requested.",
- "enum": [
- "team_links",
- "user_team_permissions"
- ],
- "type": "string",
- "x-enum-varnames": [
- "TEAM_LINKS",
- "USER_TEAM_PERMISSIONS"
- ]
- },
- "type": "array"
- }
- },
- {
- "description": "Search query. Can be team name, team handle, or email of team member",
+ "description": "Search query, can be user email or name",
"in": "query",
"name": "filter[keyword]",
"required": false,
"schema": {
"type": "string"
}
- },
- {
- "description": "When true, only returns teams the current user belongs to",
- "in": "query",
- "name": "filter[me]",
- "required": false,
- "schema": {
- "type": "boolean"
- }
- },
- {
- "description": "List of fields that need to be fetched.",
- "explode": false,
- "in": "query",
- "name": "fields[team]",
- "required": false,
- "schema": {
- "items": {
- "description": "Supported teams field.",
- "enum": [
- "id",
- "name",
- "handle",
- "summary",
- "description",
- "avatar",
- "banner",
- "visible_modules",
- "hidden_modules",
- "created_at",
- "modified_at",
- "user_count",
- "link_count",
- "team_links",
- "user_team_permissions"
- ],
- "type": "string",
- "x-enum-varnames": [
- "ID",
- "NAME",
- "HANDLE",
- "SUMMARY",
- "DESCRIPTION",
- "AVATAR",
- "BANNER",
- "VISIBLE_MODULES",
- "HIDDEN_MODULES",
- "CREATED_AT",
- "MODIFIED_AT",
- "USER_COUNT",
- "LINK_COUNT",
- "TEAM_LINKS",
- "USER_TEAM_PERMISSIONS"
- ]
- },
- "type": "array"
- }
}
],
"responses": {
@@ -392296,181 +416370,107 @@
"content": {
"application/json": {
"schema": {
- "description": "Response with multiple teams",
+ "description": "Team memberships response",
"properties": {
"data": {
- "description": "Teams response data",
+ "description": "Team memberships response data",
"items": {
- "description": "A team",
+ "description": "A user's relationship with a team",
"properties": {
"attributes": {
- "description": "Team attributes",
+ "description": "Team membership attributes",
"properties": {
- "avatar": {
- "description": "Unicode representation of the avatar for the team, limited to a single grapheme",
- "example": "🥑",
- "nullable": true,
- "type": "string"
- },
- "banner": {
- "description": "Banner selection for the team",
- "format": "int64",
+ "provisioned_by": {
+ "description": "The mechanism responsible for provisioning the team relationship.\nPossible values: null for added by a user, \"service_account\" if added by a service account, and \"saml_mapping\" if provisioned via SAML mapping.",
"nullable": true,
- "type": "integer"
- },
- "created_at": {
- "description": "Creation date of the team",
- "format": "date-time",
+ "readOnly": true,
"type": "string"
},
- "description": {
- "description": "Free-form markdown description/content for the team's homepage",
+ "provisioned_by_id": {
+ "description": "UUID of the User or Service Account who provisioned this team membership, or null if provisioned via SAML mapping.",
"nullable": true,
- "type": "string"
- },
- "handle": {
- "description": "The team's identifier",
- "example": "example-team",
- "maxLength": 195,
- "type": "string"
- },
- "hidden_modules": {
- "description": "Collection of hidden modules for the team",
- "items": {
- "description": "String identifier of the module",
- "type": "string"
- },
- "type": "array"
- },
- "link_count": {
- "description": "The number of links belonging to the team",
- "format": "int32",
- "maximum": 2147483647,
"readOnly": true,
- "type": "integer"
- },
- "modified_at": {
- "description": "Modification date of the team",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "The name of the team",
- "example": "Example Team",
- "maxLength": 200,
"type": "string"
},
- "summary": {
- "description": "A brief summary of the team, derived from the `description`",
- "maxLength": 120,
+ "role": {
+ "description": "The user's role within the team",
+ "enum": [
+ "admin"
+ ],
"nullable": true,
- "type": "string"
- },
- "user_count": {
- "description": "The number of users belonging to the team",
- "format": "int32",
- "maximum": 2147483647,
- "readOnly": true,
- "type": "integer"
- },
- "visible_modules": {
- "description": "Collection of visible modules for the team",
- "items": {
- "description": "String identifier of the module",
- "type": "string"
- },
- "type": "array"
+ "type": "string",
+ "x-enum-varnames": [
+ "ADMIN"
+ ]
}
},
- "required": [
- "handle",
- "name"
- ],
"type": "object"
},
"id": {
- "description": "The team's identifier",
- "example": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
+ "description": "The ID of a user's relationship with a team",
+ "example": "TeamMembership-aeadc05e-98a8-11ec-ac2c-da7ad0900001-38835",
"type": "string"
},
"relationships": {
- "description": "Resources related to a team",
+ "description": "Relationship between membership and a user",
"properties": {
- "team_links": {
- "description": "Relationship between a team and a team link",
+ "team": {
+ "description": "Relationship between team membership and team",
"properties": {
"data": {
- "description": "Related team links",
- "items": {
- "description": "Relationship between a link and a team",
- "properties": {
- "id": {
- "description": "The team link's identifier",
- "example": "f9bb8444-af7f-11ec-ac2c-da7ad0900001",
- "type": "string"
- },
- "type": {
- "default": "team_links",
- "description": "Team link type",
- "enum": [
- "team_links"
- ],
- "example": "team_links",
- "type": "string",
- "x-enum-varnames": [
- "TEAM_LINKS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- },
- "links": {
- "description": "Links attributes.",
+ "description": "The team associated with the membership",
"properties": {
- "related": {
- "description": "Related link.",
- "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
+ "id": {
+ "description": "The ID of the team associated with the membership",
+ "example": "d7e15d9d-d346-43da-81d8-3d9e71d9a5e9",
"type": "string"
+ },
+ "type": {
+ "default": "team",
+ "description": "User team team type",
+ "enum": [
+ "team"
+ ],
+ "example": "team",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM"
+ ]
}
},
+ "required": [
+ "id",
+ "type"
+ ],
"type": "object"
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "required": [
+ "data"
+ ],
+ "type": "object"
},
- "user_team_permissions": {
- "description": "Relationship between a user team permission and a team",
+ "user": {
+ "description": "Relationship between team membership and user",
"properties": {
"data": {
- "description": "Related user team permission data",
+ "description": "A user's relationship with a team",
"properties": {
"id": {
- "description": "The ID of the user team permission",
- "example": "UserTeamPermissions-aeadc05e-98a8-11ec-ac2c-da7ad0900001-416595",
+ "description": "The ID of the user associated with the team",
+ "example": "b8626d7e-cedd-11eb-abf5-da7ad0900001",
"type": "string"
},
"type": {
- "default": "user_team_permissions",
- "description": "User team permission type",
+ "default": "users",
+ "description": "User team user type",
"enum": [
- "user_team_permissions"
+ "users"
],
- "example": "user_team_permissions",
+ "example": "users",
"type": "string",
"x-enum-varnames": [
- "USER_TEAM_PERMISSIONS"
+ "USERS"
]
}
},
@@ -392482,42 +416482,30 @@
"x-merge-override": {
"required": false
}
- },
- "links": {
- "description": "Links attributes.",
- "properties": {
- "related": {
- "description": "Related link.",
- "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
- "type": "string"
- }
- },
- "type": "object"
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "required": [
+ "data"
+ ],
+ "type": "object"
}
},
"type": "object"
},
"type": {
- "default": "team",
- "description": "Team type",
+ "default": "team_memberships",
+ "description": "Team membership type",
"enum": [
- "team"
+ "team_memberships"
],
- "example": "team",
+ "example": "team_memberships",
"type": "string",
"x-enum-varnames": [
- "TEAM"
+ "TEAM_MEMBERSHIPS"
]
}
},
"required": [
- "attributes",
"id",
"type"
],
@@ -392529,9 +416517,9 @@
"type": "array"
},
"included": {
- "description": "Resources related to the team",
+ "description": "Resources related to the team memberships",
"items": {
- "description": "Included resources related to the team",
+ "description": "Included resources related to the team membership",
"oneOf": [
{
"description": "User object returned by the API.",
@@ -392787,101 +416775,223 @@
}
},
{
- "description": "Team link",
+ "description": "A team",
"properties": {
"attributes": {
- "description": "Team link attributes",
+ "description": "Team attributes",
"properties": {
- "label": {
- "description": "The link's label",
- "example": "Link label",
- "maxLength": 256,
+ "avatar": {
+ "description": "Unicode representation of the avatar for the team, limited to a single grapheme",
+ "example": "🥑",
+ "nullable": true,
"type": "string"
},
- "position": {
- "description": "The link's position, used to sort links for the team",
+ "banner": {
+ "description": "Banner selection for the team",
+ "format": "int64",
+ "nullable": true,
+ "type": "integer"
+ },
+ "created_at": {
+ "description": "Creation date of the team",
+ "format": "date-time",
+ "type": "string"
+ },
+ "description": {
+ "description": "Free-form markdown description/content for the team's homepage",
+ "nullable": true,
+ "type": "string"
+ },
+ "handle": {
+ "description": "The team's identifier",
+ "example": "example-team",
+ "maxLength": 195,
+ "type": "string"
+ },
+ "hidden_modules": {
+ "description": "Collection of hidden modules for the team",
+ "items": {
+ "description": "String identifier of the module",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "link_count": {
+ "description": "The number of links belonging to the team",
"format": "int32",
"maximum": 2147483647,
+ "readOnly": true,
"type": "integer"
},
- "team_id": {
- "description": "ID of the team the link is associated with",
- "readOnly": true,
+ "modified_at": {
+ "description": "Modification date of the team",
+ "format": "date-time",
"type": "string"
},
- "url": {
- "description": "The URL for the link",
- "example": "https://example.com",
+ "name": {
+ "description": "The name of the team",
+ "example": "Example Team",
+ "maxLength": 200,
+ "type": "string"
+ },
+ "summary": {
+ "description": "A brief summary of the team, derived from the `description`",
+ "maxLength": 120,
+ "nullable": true,
"type": "string"
+ },
+ "user_count": {
+ "description": "The number of users belonging to the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "readOnly": true,
+ "type": "integer"
+ },
+ "visible_modules": {
+ "description": "Collection of visible modules for the team",
+ "items": {
+ "description": "String identifier of the module",
+ "type": "string"
+ },
+ "type": "array"
}
},
"required": [
- "label",
- "url"
+ "handle",
+ "name"
],
"type": "object"
},
"id": {
- "description": "The team link's identifier",
- "example": "b8626d7e-cedd-11eb-abf5-da7ad0900001",
+ "description": "The team's identifier",
+ "example": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
"type": "string"
},
- "type": {
- "default": "team_links",
- "description": "Team link type",
- "enum": [
- "team_links"
- ],
- "example": "team_links",
- "type": "string",
- "x-enum-varnames": [
- "TEAM_LINKS"
- ]
- }
- },
- "required": [
- "attributes",
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- {
- "description": "A user's permissions for a given team",
- "properties": {
- "attributes": {
- "description": "User team permission attributes",
+ "relationships": {
+ "description": "Resources related to a team",
"properties": {
- "permissions": {
- "description": "Object of team permission actions and boolean values that a logged in user can perform on this team.",
- "readOnly": true,
- "type": "object"
+ "team_links": {
+ "description": "Relationship between a team and a team link",
+ "properties": {
+ "data": {
+ "description": "Related team links",
+ "items": {
+ "description": "Relationship between a link and a team",
+ "properties": {
+ "id": {
+ "description": "The team link's identifier",
+ "example": "f9bb8444-af7f-11ec-ac2c-da7ad0900001",
+ "type": "string"
+ },
+ "type": {
+ "default": "team_links",
+ "description": "Team link type",
+ "enum": [
+ "team_links"
+ ],
+ "example": "team_links",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM_LINKS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ },
+ "links": {
+ "description": "Links attributes.",
+ "properties": {
+ "related": {
+ "description": "Related link.",
+ "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "user_team_permissions": {
+ "description": "Relationship between a user team permission and a team",
+ "properties": {
+ "data": {
+ "description": "Related user team permission data",
+ "properties": {
+ "id": {
+ "description": "The ID of the user team permission",
+ "example": "UserTeamPermissions-aeadc05e-98a8-11ec-ac2c-da7ad0900001-416595",
+ "type": "string"
+ },
+ "type": {
+ "default": "user_team_permissions",
+ "description": "User team permission type",
+ "enum": [
+ "user_team_permissions"
+ ],
+ "example": "user_team_permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "USER_TEAM_PERMISSIONS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "links": {
+ "description": "Links attributes.",
+ "properties": {
+ "related": {
+ "description": "Related link.",
+ "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
"type": "object"
},
- "id": {
- "description": "The user team permission's identifier",
- "example": "UserTeamPermissions-aeadc05e-98a8-11ec-ac2c-da7ad0900001-416595",
- "type": "string"
- },
"type": {
- "default": "user_team_permissions",
- "description": "User team permission type",
+ "default": "team",
+ "description": "Team type",
"enum": [
- "user_team_permissions"
+ "team"
],
- "example": "user_team_permissions",
+ "example": "team",
"type": "string",
"x-enum-varnames": [
- "USER_TEAM_PERMISSIONS"
+ "TEAM"
]
}
},
"required": [
+ "attributes",
"id",
"type"
],
@@ -392978,7 +417088,7 @@
}
}
},
- "description": "OK"
+ "description": "Represents a user's association to a team"
},
"403": {
"content": {
@@ -393008,6 +417118,34 @@
},
"description": "Forbidden"
},
+ "404": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "API error response."
+ },
"429": {
"content": {
"application/json": {
@@ -393048,11 +417186,11 @@
]
}
],
- "summary": "Get all teams",
+ "summary": "Get team memberships",
"tags": [
"Teams"
],
- "x-menu-order": 1,
+ "x-menu-order": 6,
"x-pagination": {
"limitParam": "page[size]",
"pageParam": "page[number]",
@@ -393069,111 +417207,128 @@
}
},
"post": {
- "description": "Create a new team.\nUser IDs passed through the `users` relationship field are added to the team.",
- "operationId": "CreateTeam",
+ "description": "Add a user to a team.",
+ "operationId": "CreateTeamMembership",
+ "parameters": [
+ {
+ "description": "None",
+ "in": "path",
+ "name": "team_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
"requestBody": {
"content": {
"application/json": {
"schema": {
- "description": "Request to create a team",
+ "description": "Team membership request",
"properties": {
"data": {
- "description": "Team create",
+ "description": "A user's relationship with a team",
"properties": {
"attributes": {
- "description": "Team creation attributes",
+ "description": "Team membership attributes",
"properties": {
- "avatar": {
- "description": "Unicode representation of the avatar for the team, limited to a single grapheme",
- "example": "🥑",
+ "provisioned_by": {
+ "description": "The mechanism responsible for provisioning the team relationship.\nPossible values: null for added by a user, \"service_account\" if added by a service account, and \"saml_mapping\" if provisioned via SAML mapping.",
"nullable": true,
+ "readOnly": true,
"type": "string"
},
- "banner": {
- "description": "Banner selection for the team",
- "format": "int64",
+ "provisioned_by_id": {
+ "description": "UUID of the User or Service Account who provisioned this team membership, or null if provisioned via SAML mapping.",
"nullable": true,
- "type": "integer"
- },
- "description": {
- "description": "Free-form markdown description/content for the team's homepage",
- "type": "string"
- },
- "handle": {
- "description": "The team's identifier",
- "example": "example-team",
- "maxLength": 195,
- "type": "string"
- },
- "hidden_modules": {
- "description": "Collection of hidden modules for the team",
- "items": {
- "description": "String identifier of the module",
- "type": "string"
- },
- "type": "array"
- },
- "name": {
- "description": "The name of the team",
- "example": "Example Team",
- "maxLength": 200,
+ "readOnly": true,
"type": "string"
},
- "visible_modules": {
- "description": "Collection of visible modules for the team",
- "items": {
- "description": "String identifier of the module",
- "type": "string"
- },
- "type": "array"
+ "role": {
+ "description": "The user's role within the team",
+ "enum": [
+ "admin"
+ ],
+ "nullable": true,
+ "type": "string",
+ "x-enum-varnames": [
+ "ADMIN"
+ ]
}
},
- "required": [
- "handle",
- "name"
- ],
"type": "object"
},
"relationships": {
- "description": "Relationships formed with the team on creation",
+ "description": "Relationship between membership and a user",
"properties": {
- "users": {
- "description": "Relationship to users.",
+ "team": {
+ "description": "Relationship between team membership and team",
"properties": {
"data": {
- "description": "Relationships to user objects.",
- "example": [],
- "items": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
+ "description": "The team associated with the membership",
+ "properties": {
+ "id": {
+ "description": "The ID of the team associated with the membership",
+ "example": "d7e15d9d-d346-43da-81d8-3d9e71d9a5e9",
+ "type": "string"
},
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
+ "type": {
+ "default": "team",
+ "description": "User team team type",
+ "enum": [
+ "team"
+ ],
+ "example": "team",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM"
+ ]
}
},
- "type": "array"
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "user": {
+ "description": "Relationship between team membership and user",
+ "properties": {
+ "data": {
+ "description": "A user's relationship with a team",
+ "properties": {
+ "id": {
+ "description": "The ID of the user associated with the team",
+ "example": "b8626d7e-cedd-11eb-abf5-da7ad0900001",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "User team user type",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
"required": [
@@ -393185,20 +417340,19 @@
"type": "object"
},
"type": {
- "default": "team",
- "description": "Team type",
+ "default": "team_memberships",
+ "description": "Team membership type",
"enum": [
- "team"
+ "team_memberships"
],
- "example": "team",
+ "example": "team_memberships",
"type": "string",
"x-enum-varnames": [
- "TEAM"
+ "TEAM_MEMBERSHIPS"
]
}
},
"required": [
- "attributes",
"type"
],
"type": "object"
@@ -393214,183 +417368,109 @@
"required": true
},
"responses": {
- "201": {
+ "200": {
"content": {
"application/json": {
"schema": {
- "description": "Response with a team",
+ "description": "Team membership response",
"properties": {
"data": {
- "description": "A team",
+ "description": "A user's relationship with a team",
"properties": {
"attributes": {
- "description": "Team attributes",
+ "description": "Team membership attributes",
"properties": {
- "avatar": {
- "description": "Unicode representation of the avatar for the team, limited to a single grapheme",
- "example": "🥑",
- "nullable": true,
- "type": "string"
- },
- "banner": {
- "description": "Banner selection for the team",
- "format": "int64",
- "nullable": true,
- "type": "integer"
- },
- "created_at": {
- "description": "Creation date of the team",
- "format": "date-time",
- "type": "string"
- },
- "description": {
- "description": "Free-form markdown description/content for the team's homepage",
+ "provisioned_by": {
+ "description": "The mechanism responsible for provisioning the team relationship.\nPossible values: null for added by a user, \"service_account\" if added by a service account, and \"saml_mapping\" if provisioned via SAML mapping.",
"nullable": true,
- "type": "string"
- },
- "handle": {
- "description": "The team's identifier",
- "example": "example-team",
- "maxLength": 195,
- "type": "string"
- },
- "hidden_modules": {
- "description": "Collection of hidden modules for the team",
- "items": {
- "description": "String identifier of the module",
- "type": "string"
- },
- "type": "array"
- },
- "link_count": {
- "description": "The number of links belonging to the team",
- "format": "int32",
- "maximum": 2147483647,
"readOnly": true,
- "type": "integer"
- },
- "modified_at": {
- "description": "Modification date of the team",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "The name of the team",
- "example": "Example Team",
- "maxLength": 200,
- "type": "string"
- },
- "summary": {
- "description": "A brief summary of the team, derived from the `description`",
- "maxLength": 120,
- "nullable": true,
"type": "string"
},
- "user_count": {
- "description": "The number of users belonging to the team",
- "format": "int32",
- "maximum": 2147483647,
- "readOnly": true,
- "type": "integer"
- },
- "visible_modules": {
- "description": "Collection of visible modules for the team",
- "items": {
- "description": "String identifier of the module",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "handle",
- "name"
- ],
- "type": "object"
- },
- "id": {
- "description": "The team's identifier",
- "example": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
- "type": "string"
- },
- "relationships": {
- "description": "Resources related to a team",
- "properties": {
- "team_links": {
- "description": "Relationship between a team and a team link",
- "properties": {
- "data": {
- "description": "Related team links",
- "items": {
- "description": "Relationship between a link and a team",
- "properties": {
- "id": {
- "description": "The team link's identifier",
- "example": "f9bb8444-af7f-11ec-ac2c-da7ad0900001",
- "type": "string"
- },
- "type": {
- "default": "team_links",
- "description": "Team link type",
- "enum": [
- "team_links"
- ],
- "example": "team_links",
- "type": "string",
- "x-enum-varnames": [
- "TEAM_LINKS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- },
- "links": {
- "description": "Links attributes.",
+ "provisioned_by_id": {
+ "description": "UUID of the User or Service Account who provisioned this team membership, or null if provisioned via SAML mapping.",
+ "nullable": true,
+ "readOnly": true,
+ "type": "string"
+ },
+ "role": {
+ "description": "The user's role within the team",
+ "enum": [
+ "admin"
+ ],
+ "nullable": true,
+ "type": "string",
+ "x-enum-varnames": [
+ "ADMIN"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The ID of a user's relationship with a team",
+ "example": "TeamMembership-aeadc05e-98a8-11ec-ac2c-da7ad0900001-38835",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationship between membership and a user",
+ "properties": {
+ "team": {
+ "description": "Relationship between team membership and team",
+ "properties": {
+ "data": {
+ "description": "The team associated with the membership",
"properties": {
- "related": {
- "description": "Related link.",
- "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
+ "id": {
+ "description": "The ID of the team associated with the membership",
+ "example": "d7e15d9d-d346-43da-81d8-3d9e71d9a5e9",
"type": "string"
+ },
+ "type": {
+ "default": "team",
+ "description": "User team team type",
+ "enum": [
+ "team"
+ ],
+ "example": "team",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM"
+ ]
}
},
+ "required": [
+ "id",
+ "type"
+ ],
"type": "object"
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "required": [
+ "data"
+ ],
+ "type": "object"
},
- "user_team_permissions": {
- "description": "Relationship between a user team permission and a team",
+ "user": {
+ "description": "Relationship between team membership and user",
"properties": {
"data": {
- "description": "Related user team permission data",
+ "description": "A user's relationship with a team",
"properties": {
"id": {
- "description": "The ID of the user team permission",
- "example": "UserTeamPermissions-aeadc05e-98a8-11ec-ac2c-da7ad0900001-416595",
+ "description": "The ID of the user associated with the team",
+ "example": "b8626d7e-cedd-11eb-abf5-da7ad0900001",
"type": "string"
},
"type": {
- "default": "user_team_permissions",
- "description": "User team permission type",
+ "default": "users",
+ "description": "User team user type",
"enum": [
- "user_team_permissions"
+ "users"
],
- "example": "user_team_permissions",
+ "example": "users",
"type": "string",
"x-enum-varnames": [
- "USER_TEAM_PERMISSIONS"
+ "USERS"
]
}
},
@@ -393402,42 +417482,30 @@
"x-merge-override": {
"required": false
}
- },
- "links": {
- "description": "Links attributes.",
- "properties": {
- "related": {
- "description": "Related link.",
- "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
- "type": "string"
- }
- },
- "type": "object"
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "required": [
+ "data"
+ ],
+ "type": "object"
}
},
"type": "object"
},
"type": {
- "default": "team",
- "description": "Team type",
+ "default": "team_memberships",
+ "description": "Team membership type",
"enum": [
- "team"
+ "team_memberships"
],
- "example": "team",
+ "example": "team_memberships",
"type": "string",
"x-enum-varnames": [
- "TEAM"
+ "TEAM_MEMBERSHIPS"
]
}
},
"required": [
- "attributes",
"id",
"type"
],
@@ -393445,71 +417513,503 @@
"x-merge-override": {
"required": false
}
- }
- },
- "type": "object"
- }
- }
- },
- "description": "CREATED"
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Forbidden"
- },
- "409": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
+ },
+ "included": {
+ "description": "Resources related to the team memberships",
"items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "description": "Included resources related to the team membership",
+ "oneOf": [
+ {
+ "description": "User object returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of user object returned by the API.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the user.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "disabled": {
+ "description": "Whether the user is disabled.",
+ "type": "boolean"
+ },
+ "email": {
+ "description": "Email of the user.",
+ "type": "string"
+ },
+ "handle": {
+ "description": "Handle of the user.",
+ "type": "string"
+ },
+ "icon": {
+ "description": "URL of the user's icon.",
+ "type": "string"
+ },
+ "mfa_enabled": {
+ "description": "If user has MFA enabled.",
+ "readOnly": true,
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time that the user was last modified.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "service_account": {
+ "description": "Whether the user is a service account.",
+ "type": "boolean"
+ },
+ "status": {
+ "description": "Status of the user.",
+ "type": "string"
+ },
+ "title": {
+ "description": "Title of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "verified": {
+ "description": "Whether the user is verified.",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the user.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships of the user object returned by the API.",
+ "properties": {
+ "org": {
+ "description": "Relationship to an organization.",
+ "properties": {
+ "data": {
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_orgs": {
+ "description": "Relationship to organizations.",
+ "properties": {
+ "data": {
+ "description": "Relationships to organization objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_users": {
+ "description": "Relationship to users.",
+ "properties": {
+ "data": {
+ "description": "Relationships to user objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "roles": {
+ "description": "Relationship to roles.",
+ "properties": {
+ "data": {
+ "description": "An array containing type and the unique identifier of a role.",
+ "items": {
+ "description": "Relationship to role object.",
+ "properties": {
+ "id": {
+ "description": "The unique identifier of the role.",
+ "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "type": "string"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "properties": false
+ }
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ {
+ "description": "A team",
+ "properties": {
+ "attributes": {
+ "description": "Team attributes",
+ "properties": {
+ "avatar": {
+ "description": "Unicode representation of the avatar for the team, limited to a single grapheme",
+ "example": "🥑",
+ "nullable": true,
+ "type": "string"
+ },
+ "banner": {
+ "description": "Banner selection for the team",
+ "format": "int64",
+ "nullable": true,
+ "type": "integer"
+ },
+ "created_at": {
+ "description": "Creation date of the team",
+ "format": "date-time",
+ "type": "string"
+ },
+ "description": {
+ "description": "Free-form markdown description/content for the team's homepage",
+ "nullable": true,
+ "type": "string"
+ },
+ "handle": {
+ "description": "The team's identifier",
+ "example": "example-team",
+ "maxLength": 195,
+ "type": "string"
+ },
+ "hidden_modules": {
+ "description": "Collection of hidden modules for the team",
+ "items": {
+ "description": "String identifier of the module",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "link_count": {
+ "description": "The number of links belonging to the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "readOnly": true,
+ "type": "integer"
+ },
+ "modified_at": {
+ "description": "Modification date of the team",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the team",
+ "example": "Example Team",
+ "maxLength": 200,
+ "type": "string"
+ },
+ "summary": {
+ "description": "A brief summary of the team, derived from the `description`",
+ "maxLength": 120,
+ "nullable": true,
+ "type": "string"
+ },
+ "user_count": {
+ "description": "The number of users belonging to the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "readOnly": true,
+ "type": "integer"
+ },
+ "visible_modules": {
+ "description": "Collection of visible modules for the team",
+ "items": {
+ "description": "String identifier of the module",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "handle",
+ "name"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "description": "The team's identifier",
+ "example": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Resources related to a team",
+ "properties": {
+ "team_links": {
+ "description": "Relationship between a team and a team link",
+ "properties": {
+ "data": {
+ "description": "Related team links",
+ "items": {
+ "description": "Relationship between a link and a team",
+ "properties": {
+ "id": {
+ "description": "The team link's identifier",
+ "example": "f9bb8444-af7f-11ec-ac2c-da7ad0900001",
+ "type": "string"
+ },
+ "type": {
+ "default": "team_links",
+ "description": "Team link type",
+ "enum": [
+ "team_links"
+ ],
+ "example": "team_links",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM_LINKS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ },
+ "links": {
+ "description": "Links attributes.",
+ "properties": {
+ "related": {
+ "description": "Related link.",
+ "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "user_team_permissions": {
+ "description": "Relationship between a user team permission and a team",
+ "properties": {
+ "data": {
+ "description": "Related user team permission data",
+ "properties": {
+ "id": {
+ "description": "The ID of the user team permission",
+ "example": "UserTeamPermissions-aeadc05e-98a8-11ec-ac2c-da7ad0900001-416595",
+ "type": "string"
+ },
+ "type": {
+ "default": "user_team_permissions",
+ "description": "User team permission type",
+ "enum": [
+ "user_team_permissions"
+ ],
+ "example": "user_team_permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "USER_TEAM_PERMISSIONS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "links": {
+ "description": "Links attributes.",
+ "properties": {
+ "related": {
+ "description": "Related link.",
+ "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "default": "team",
+ "description": "Team type",
+ "enum": [
+ "team"
+ ],
+ "example": "team",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM"
+ ]
+ }
+ },
+ "required": [
+ "attributes",
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ ]
},
"type": "array"
}
},
- "required": [
- "errors"
- ],
"type": "object"
}
}
},
- "description": "API error response."
+ "description": "Represents a user's association to a team"
},
- "429": {
+ "403": {
"content": {
"application/json": {
"schema": {
@@ -393535,81 +418035,9 @@
}
}
},
- "description": "Too many requests"
- }
- },
- "security": [
- {
- "apiKeyAuth": [],
- "appKeyAuth": []
- },
- {
- "AuthZ": [
- "teams_read",
- "teams_manage"
- ]
- }
- ],
- "summary": "Create a team",
- "tags": [
- "Teams"
- ],
- "x-codegen-request-body-name": "body",
- "x-given": {
- "dd_team": {
- "parameters": [
- {
- "name": "body",
- "value": "{\n \"data\": {\n \"attributes\": {\n \"handle\": \"test-handle-{{ unique_hash }}\",\n \"name\": \"test-name-{{ unique_hash }}\"\n },\n \"type\": \"team\"\n }\n}"
- }
- ],
- "step": "there is a valid \"dd_team\" in the system"
- }
- },
- "x-menu-order": 2,
- "x-permission": {
- "operator": "AND",
- "permissions": [
- "teams_read",
- "teams_manage"
- ]
- },
- "x-undo": {
- "operationId": "DeleteTeam",
- "parameters": [
- {
- "name": "team_id",
- "source": "data.id"
- }
- ],
- "type": "unsafe"
- }
- },
- "x-merge-override": {
- "get": false,
- "post": false
- }
- },
- "/api/v2/team/{team_id}": {
- "delete": {
- "description": "Remove a team using the team's `id`.",
- "operationId": "DeleteTeam",
- "parameters": [
- {
- "description": "None",
- "in": "path",
- "name": "team_id",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "204": {
- "description": "No Content"
+ "description": "Forbidden"
},
- "403": {
+ "404": {
"content": {
"application/json": {
"schema": {
@@ -393635,9 +418063,9 @@
}
}
},
- "description": "Forbidden"
+ "description": "API error response."
},
- "404": {
+ "409": {
"content": {
"application/json": {
"schema": {
@@ -393701,30 +418129,53 @@
},
{
"AuthZ": [
- "teams_read",
- "teams_manage"
+ "teams_read"
]
}
],
- "summary": "Remove a team",
+ "summary": "Add a user to a team",
"tags": [
"Teams"
],
- "x-menu-order": 5,
+ "x-codegen-request-body-name": "body",
+ "x-given": {
+ "team_membership": {
+ "parameters": [
+ {
+ "name": "body",
+ "value": "{\n \"data\": {\n \"attributes\": {\n \"role\": \"admin\"\n },\n \"relationships\": {\n \"user\": {\n \"data\": {\n \"id\": \"{{user.data.id}}\",\n \"type\": \"users\"\n }\n }\n },\n \"type\": \"team_memberships\"\n }\n}"
+ }
+ ],
+ "step": "there is a valid \"team_membership\" in the system"
+ }
+ },
+ "x-menu-order": 7,
"x-permission": {
- "operator": "AND",
+ "operator": "OR",
"permissions": [
- "teams_read",
- "teams_manage"
+ "teams_read"
]
},
"x-undo": {
- "type": "idempotent"
+ "operationId": "DeleteTeamMembership",
+ "parameters": [
+ {
+ "name": "team_id",
+ "template": "{{team.data.id}}"
+ },
+ {
+ "name": "user_id",
+ "source": "data.relationships.user.data.id"
+ }
+ ],
+ "type": "unsafe"
}
- },
- "get": {
- "description": "Get a single team using the team's `id`.",
- "operationId": "GetTeam",
+ }
+ },
+ "/api/v2/team/{team_id}/memberships/{user_id}": {
+ "delete": {
+ "description": "Remove a user from a team.",
+ "operationId": "DeleteTeamMembership",
"parameters": [
{
"description": "None",
@@ -393734,247 +418185,20 @@
"schema": {
"type": "string"
}
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Response with a team",
- "properties": {
- "data": {
- "description": "A team",
- "properties": {
- "attributes": {
- "description": "Team attributes",
- "properties": {
- "avatar": {
- "description": "Unicode representation of the avatar for the team, limited to a single grapheme",
- "example": "🥑",
- "nullable": true,
- "type": "string"
- },
- "banner": {
- "description": "Banner selection for the team",
- "format": "int64",
- "nullable": true,
- "type": "integer"
- },
- "created_at": {
- "description": "Creation date of the team",
- "format": "date-time",
- "type": "string"
- },
- "description": {
- "description": "Free-form markdown description/content for the team's homepage",
- "nullable": true,
- "type": "string"
- },
- "handle": {
- "description": "The team's identifier",
- "example": "example-team",
- "maxLength": 195,
- "type": "string"
- },
- "hidden_modules": {
- "description": "Collection of hidden modules for the team",
- "items": {
- "description": "String identifier of the module",
- "type": "string"
- },
- "type": "array"
- },
- "link_count": {
- "description": "The number of links belonging to the team",
- "format": "int32",
- "maximum": 2147483647,
- "readOnly": true,
- "type": "integer"
- },
- "modified_at": {
- "description": "Modification date of the team",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "The name of the team",
- "example": "Example Team",
- "maxLength": 200,
- "type": "string"
- },
- "summary": {
- "description": "A brief summary of the team, derived from the `description`",
- "maxLength": 120,
- "nullable": true,
- "type": "string"
- },
- "user_count": {
- "description": "The number of users belonging to the team",
- "format": "int32",
- "maximum": 2147483647,
- "readOnly": true,
- "type": "integer"
- },
- "visible_modules": {
- "description": "Collection of visible modules for the team",
- "items": {
- "description": "String identifier of the module",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "handle",
- "name"
- ],
- "type": "object"
- },
- "id": {
- "description": "The team's identifier",
- "example": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
- "type": "string"
- },
- "relationships": {
- "description": "Resources related to a team",
- "properties": {
- "team_links": {
- "description": "Relationship between a team and a team link",
- "properties": {
- "data": {
- "description": "Related team links",
- "items": {
- "description": "Relationship between a link and a team",
- "properties": {
- "id": {
- "description": "The team link's identifier",
- "example": "f9bb8444-af7f-11ec-ac2c-da7ad0900001",
- "type": "string"
- },
- "type": {
- "default": "team_links",
- "description": "Team link type",
- "enum": [
- "team_links"
- ],
- "example": "team_links",
- "type": "string",
- "x-enum-varnames": [
- "TEAM_LINKS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- },
- "links": {
- "description": "Links attributes.",
- "properties": {
- "related": {
- "description": "Related link.",
- "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "user_team_permissions": {
- "description": "Relationship between a user team permission and a team",
- "properties": {
- "data": {
- "description": "Related user team permission data",
- "properties": {
- "id": {
- "description": "The ID of the user team permission",
- "example": "UserTeamPermissions-aeadc05e-98a8-11ec-ac2c-da7ad0900001-416595",
- "type": "string"
- },
- "type": {
- "default": "user_team_permissions",
- "description": "User team permission type",
- "enum": [
- "user_team_permissions"
- ],
- "example": "user_team_permissions",
- "type": "string",
- "x-enum-varnames": [
- "USER_TEAM_PERMISSIONS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "links": {
- "description": "Links attributes.",
- "properties": {
- "related": {
- "description": "Related link.",
- "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
- },
- "type": {
- "default": "team",
- "description": "Team type",
- "enum": [
- "team"
- ],
- "example": "team",
- "type": "string",
- "x-enum-varnames": [
- "TEAM"
- ]
- }
- },
- "required": [
- "attributes",
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
- }
- }
- },
- "description": "OK"
+ },
+ {
+ "description": "None",
+ "in": "path",
+ "name": "user_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "No Content"
},
"403": {
"content": {
@@ -394072,11 +418296,11 @@
]
}
],
- "summary": "Get a team",
+ "summary": "Remove a user from a team",
"tags": [
"Teams"
],
- "x-menu-order": 3,
+ "x-menu-order": 8,
"x-permission": {
"operator": "OR",
"permissions": [
@@ -394084,12 +418308,12 @@
]
},
"x-undo": {
- "type": "safe"
+ "type": "idempotent"
}
},
"patch": {
- "description": "Update a team using the team's `id`.\nIf the `team_links` relationship is present, the associated links are updated to be in the order they appear in the array, and any existing team links not present are removed.",
- "operationId": "UpdateTeam",
+ "description": "Update a user's membership attributes on a team.",
+ "operationId": "UpdateTeamMembership",
"parameters": [
{
"description": "None",
@@ -394099,146 +418323,69 @@
"schema": {
"type": "string"
}
+ },
+ {
+ "description": "None",
+ "in": "path",
+ "name": "user_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
- "description": "Team update request",
+ "description": "Team membership request",
"properties": {
"data": {
- "description": "Team update request",
+ "description": "A user's relationship with a team",
"properties": {
"attributes": {
- "description": "Team update attributes",
+ "description": "Team membership attributes",
"properties": {
- "avatar": {
- "description": "Unicode representation of the avatar for the team, limited to a single grapheme",
- "example": "🥑",
+ "provisioned_by": {
+ "description": "The mechanism responsible for provisioning the team relationship.\nPossible values: null for added by a user, \"service_account\" if added by a service account, and \"saml_mapping\" if provisioned via SAML mapping.",
"nullable": true,
+ "readOnly": true,
"type": "string"
},
- "banner": {
- "description": "Banner selection for the team",
- "format": "int64",
+ "provisioned_by_id": {
+ "description": "UUID of the User or Service Account who provisioned this team membership, or null if provisioned via SAML mapping.",
"nullable": true,
- "type": "integer"
- },
- "description": {
- "description": "Free-form markdown description/content for the team's homepage",
- "type": "string"
- },
- "handle": {
- "description": "The team's identifier",
- "example": "example-team",
- "maxLength": 195,
- "type": "string"
- },
- "hidden_modules": {
- "description": "Collection of hidden modules for the team",
- "items": {
- "description": "String identifier of the module",
- "type": "string"
- },
- "type": "array"
- },
- "name": {
- "description": "The name of the team",
- "example": "Example Team",
- "maxLength": 200,
+ "readOnly": true,
"type": "string"
},
- "visible_modules": {
- "description": "Collection of visible modules for the team",
- "items": {
- "description": "String identifier of the module",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "handle",
- "name"
- ],
- "type": "object"
- },
- "relationships": {
- "description": "Team update relationships",
- "properties": {
- "team_links": {
- "description": "Relationship between a team and a team link",
- "properties": {
- "data": {
- "description": "Related team links",
- "items": {
- "description": "Relationship between a link and a team",
- "properties": {
- "id": {
- "description": "The team link's identifier",
- "example": "f9bb8444-af7f-11ec-ac2c-da7ad0900001",
- "type": "string"
- },
- "type": {
- "default": "team_links",
- "description": "Team link type",
- "enum": [
- "team_links"
- ],
- "example": "team_links",
- "type": "string",
- "x-enum-varnames": [
- "TEAM_LINKS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- },
- "links": {
- "description": "Links attributes.",
- "properties": {
- "related": {
- "description": "Related link.",
- "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "role": {
+ "description": "The user's role within the team",
+ "enum": [
+ "admin"
+ ],
+ "nullable": true,
+ "type": "string",
+ "x-enum-varnames": [
+ "ADMIN"
+ ]
}
},
"type": "object"
},
"type": {
- "default": "team",
- "description": "Team type",
+ "default": "team_memberships",
+ "description": "Team membership type",
"enum": [
- "team"
+ "team_memberships"
],
- "example": "team",
+ "example": "team_memberships",
"type": "string",
"x-enum-varnames": [
- "TEAM"
+ "TEAM_MEMBERSHIPS"
]
}
},
"required": [
- "attributes",
"type"
],
"type": "object"
@@ -394258,179 +418405,105 @@
"content": {
"application/json": {
"schema": {
- "description": "Response with a team",
+ "description": "Team membership response",
"properties": {
"data": {
- "description": "A team",
+ "description": "A user's relationship with a team",
"properties": {
"attributes": {
- "description": "Team attributes",
+ "description": "Team membership attributes",
"properties": {
- "avatar": {
- "description": "Unicode representation of the avatar for the team, limited to a single grapheme",
- "example": "🥑",
- "nullable": true,
- "type": "string"
- },
- "banner": {
- "description": "Banner selection for the team",
- "format": "int64",
+ "provisioned_by": {
+ "description": "The mechanism responsible for provisioning the team relationship.\nPossible values: null for added by a user, \"service_account\" if added by a service account, and \"saml_mapping\" if provisioned via SAML mapping.",
"nullable": true,
- "type": "integer"
- },
- "created_at": {
- "description": "Creation date of the team",
- "format": "date-time",
+ "readOnly": true,
"type": "string"
},
- "description": {
- "description": "Free-form markdown description/content for the team's homepage",
+ "provisioned_by_id": {
+ "description": "UUID of the User or Service Account who provisioned this team membership, or null if provisioned via SAML mapping.",
"nullable": true,
- "type": "string"
- },
- "handle": {
- "description": "The team's identifier",
- "example": "example-team",
- "maxLength": 195,
- "type": "string"
- },
- "hidden_modules": {
- "description": "Collection of hidden modules for the team",
- "items": {
- "description": "String identifier of the module",
- "type": "string"
- },
- "type": "array"
- },
- "link_count": {
- "description": "The number of links belonging to the team",
- "format": "int32",
- "maximum": 2147483647,
"readOnly": true,
- "type": "integer"
- },
- "modified_at": {
- "description": "Modification date of the team",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "The name of the team",
- "example": "Example Team",
- "maxLength": 200,
"type": "string"
},
- "summary": {
- "description": "A brief summary of the team, derived from the `description`",
- "maxLength": 120,
+ "role": {
+ "description": "The user's role within the team",
+ "enum": [
+ "admin"
+ ],
"nullable": true,
- "type": "string"
- },
- "user_count": {
- "description": "The number of users belonging to the team",
- "format": "int32",
- "maximum": 2147483647,
- "readOnly": true,
- "type": "integer"
- },
- "visible_modules": {
- "description": "Collection of visible modules for the team",
- "items": {
- "description": "String identifier of the module",
- "type": "string"
- },
- "type": "array"
+ "type": "string",
+ "x-enum-varnames": [
+ "ADMIN"
+ ]
}
},
- "required": [
- "handle",
- "name"
- ],
"type": "object"
},
"id": {
- "description": "The team's identifier",
- "example": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
+ "description": "The ID of a user's relationship with a team",
+ "example": "TeamMembership-aeadc05e-98a8-11ec-ac2c-da7ad0900001-38835",
"type": "string"
},
"relationships": {
- "description": "Resources related to a team",
+ "description": "Relationship between membership and a user",
"properties": {
- "team_links": {
- "description": "Relationship between a team and a team link",
+ "team": {
+ "description": "Relationship between team membership and team",
"properties": {
"data": {
- "description": "Related team links",
- "items": {
- "description": "Relationship between a link and a team",
- "properties": {
- "id": {
- "description": "The team link's identifier",
- "example": "f9bb8444-af7f-11ec-ac2c-da7ad0900001",
- "type": "string"
- },
- "type": {
- "default": "team_links",
- "description": "Team link type",
- "enum": [
- "team_links"
- ],
- "example": "team_links",
- "type": "string",
- "x-enum-varnames": [
- "TEAM_LINKS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- },
- "links": {
- "description": "Links attributes.",
+ "description": "The team associated with the membership",
"properties": {
- "related": {
- "description": "Related link.",
- "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
+ "id": {
+ "description": "The ID of the team associated with the membership",
+ "example": "d7e15d9d-d346-43da-81d8-3d9e71d9a5e9",
"type": "string"
+ },
+ "type": {
+ "default": "team",
+ "description": "User team team type",
+ "enum": [
+ "team"
+ ],
+ "example": "team",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM"
+ ]
}
},
+ "required": [
+ "id",
+ "type"
+ ],
"type": "object"
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "required": [
+ "data"
+ ],
+ "type": "object"
},
- "user_team_permissions": {
- "description": "Relationship between a user team permission and a team",
+ "user": {
+ "description": "Relationship between team membership and user",
"properties": {
"data": {
- "description": "Related user team permission data",
+ "description": "A user's relationship with a team",
"properties": {
"id": {
- "description": "The ID of the user team permission",
- "example": "UserTeamPermissions-aeadc05e-98a8-11ec-ac2c-da7ad0900001-416595",
+ "description": "The ID of the user associated with the team",
+ "example": "b8626d7e-cedd-11eb-abf5-da7ad0900001",
"type": "string"
},
"type": {
- "default": "user_team_permissions",
- "description": "User team permission type",
+ "default": "users",
+ "description": "User team user type",
"enum": [
- "user_team_permissions"
+ "users"
],
- "example": "user_team_permissions",
+ "example": "users",
"type": "string",
"x-enum-varnames": [
- "USER_TEAM_PERMISSIONS"
+ "USERS"
]
}
},
@@ -394442,42 +418515,30 @@
"x-merge-override": {
"required": false
}
- },
- "links": {
- "description": "Links attributes.",
- "properties": {
- "related": {
- "description": "Related link.",
- "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
- "type": "string"
- }
- },
- "type": "object"
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "required": [
+ "data"
+ ],
+ "type": "object"
}
},
"type": "object"
},
"type": {
- "default": "team",
- "description": "Team type",
+ "default": "team_memberships",
+ "description": "Team membership type",
"enum": [
- "team"
+ "team_memberships"
],
- "example": "team",
+ "example": "team_memberships",
"type": "string",
"x-enum-varnames": [
- "TEAM"
+ "TEAM_MEMBERSHIPS"
]
}
},
"required": [
- "attributes",
"id",
"type"
],
@@ -394485,750 +418546,501 @@
"x-merge-override": {
"required": false
}
- }
- },
- "type": "object"
- }
- }
- },
- "description": "OK"
- },
- "400": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "API error response."
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Forbidden"
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "API error response."
- },
- "409": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "API error response."
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Too many requests"
- }
- },
- "security": [
- {
- "apiKeyAuth": [],
- "appKeyAuth": []
- },
- {
- "AuthZ": [
- "teams_read"
- ]
- }
- ],
- "summary": "Update a team",
- "tags": [
- "Teams"
- ],
- "x-codegen-request-body-name": "body",
- "x-menu-order": 4,
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "teams_read"
- ]
- },
- "x-undo": {
- "type": "idempotent"
- }
- },
- "x-merge-override": {
- "delete": true,
- "get": false,
- "patch": false
- }
- },
- "/api/v2/team/{team_id}/links": {
- "get": {
- "description": "Get all links for a given team.",
- "operationId": "GetTeamLinks",
- "parameters": [
- {
- "description": "None",
- "in": "path",
- "name": "team_id",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Team links response",
- "properties": {
- "data": {
- "description": "Team links response data",
+ },
+ "included": {
+ "description": "Resources related to the team memberships",
"items": {
- "description": "Team link",
- "properties": {
- "attributes": {
- "description": "Team link attributes",
+ "description": "Included resources related to the team membership",
+ "oneOf": [
+ {
+ "description": "User object returned by the API.",
"properties": {
- "label": {
- "description": "The link's label",
- "example": "Link label",
- "maxLength": 256,
+ "attributes": {
+ "description": "Attributes of user object returned by the API.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the user.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "disabled": {
+ "description": "Whether the user is disabled.",
+ "type": "boolean"
+ },
+ "email": {
+ "description": "Email of the user.",
+ "type": "string"
+ },
+ "handle": {
+ "description": "Handle of the user.",
+ "type": "string"
+ },
+ "icon": {
+ "description": "URL of the user's icon.",
+ "type": "string"
+ },
+ "mfa_enabled": {
+ "description": "If user has MFA enabled.",
+ "readOnly": true,
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time that the user was last modified.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "service_account": {
+ "description": "Whether the user is a service account.",
+ "type": "boolean"
+ },
+ "status": {
+ "description": "Status of the user.",
+ "type": "string"
+ },
+ "title": {
+ "description": "Title of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "verified": {
+ "description": "Whether the user is verified.",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the user.",
"type": "string"
},
- "position": {
- "description": "The link's position, used to sort links for the team",
- "format": "int32",
- "maximum": 2147483647,
- "type": "integer"
+ "relationships": {
+ "description": "Relationships of the user object returned by the API.",
+ "properties": {
+ "org": {
+ "description": "Relationship to an organization.",
+ "properties": {
+ "data": {
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_orgs": {
+ "description": "Relationship to organizations.",
+ "properties": {
+ "data": {
+ "description": "Relationships to organization objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_users": {
+ "description": "Relationship to users.",
+ "properties": {
+ "data": {
+ "description": "Relationships to user objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "roles": {
+ "description": "Relationship to roles.",
+ "properties": {
+ "data": {
+ "description": "An array containing type and the unique identifier of a role.",
+ "items": {
+ "description": "Relationship to role object.",
+ "properties": {
+ "id": {
+ "description": "The unique identifier of the role.",
+ "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "type": "string"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "properties": false
+ }
},
- "team_id": {
- "description": "ID of the team the link is associated with",
- "readOnly": true,
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ {
+ "description": "A team",
+ "properties": {
+ "attributes": {
+ "description": "Team attributes",
+ "properties": {
+ "avatar": {
+ "description": "Unicode representation of the avatar for the team, limited to a single grapheme",
+ "example": "🥑",
+ "nullable": true,
+ "type": "string"
+ },
+ "banner": {
+ "description": "Banner selection for the team",
+ "format": "int64",
+ "nullable": true,
+ "type": "integer"
+ },
+ "created_at": {
+ "description": "Creation date of the team",
+ "format": "date-time",
+ "type": "string"
+ },
+ "description": {
+ "description": "Free-form markdown description/content for the team's homepage",
+ "nullable": true,
+ "type": "string"
+ },
+ "handle": {
+ "description": "The team's identifier",
+ "example": "example-team",
+ "maxLength": 195,
+ "type": "string"
+ },
+ "hidden_modules": {
+ "description": "Collection of hidden modules for the team",
+ "items": {
+ "description": "String identifier of the module",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "link_count": {
+ "description": "The number of links belonging to the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "readOnly": true,
+ "type": "integer"
+ },
+ "modified_at": {
+ "description": "Modification date of the team",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the team",
+ "example": "Example Team",
+ "maxLength": 200,
+ "type": "string"
+ },
+ "summary": {
+ "description": "A brief summary of the team, derived from the `description`",
+ "maxLength": 120,
+ "nullable": true,
+ "type": "string"
+ },
+ "user_count": {
+ "description": "The number of users belonging to the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "readOnly": true,
+ "type": "integer"
+ },
+ "visible_modules": {
+ "description": "Collection of visible modules for the team",
+ "items": {
+ "description": "String identifier of the module",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "handle",
+ "name"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "description": "The team's identifier",
+ "example": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
"type": "string"
},
- "url": {
- "description": "The URL for the link",
- "example": "https://example.com",
- "type": "string"
+ "relationships": {
+ "description": "Resources related to a team",
+ "properties": {
+ "team_links": {
+ "description": "Relationship between a team and a team link",
+ "properties": {
+ "data": {
+ "description": "Related team links",
+ "items": {
+ "description": "Relationship between a link and a team",
+ "properties": {
+ "id": {
+ "description": "The team link's identifier",
+ "example": "f9bb8444-af7f-11ec-ac2c-da7ad0900001",
+ "type": "string"
+ },
+ "type": {
+ "default": "team_links",
+ "description": "Team link type",
+ "enum": [
+ "team_links"
+ ],
+ "example": "team_links",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM_LINKS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ },
+ "links": {
+ "description": "Links attributes.",
+ "properties": {
+ "related": {
+ "description": "Related link.",
+ "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "user_team_permissions": {
+ "description": "Relationship between a user team permission and a team",
+ "properties": {
+ "data": {
+ "description": "Related user team permission data",
+ "properties": {
+ "id": {
+ "description": "The ID of the user team permission",
+ "example": "UserTeamPermissions-aeadc05e-98a8-11ec-ac2c-da7ad0900001-416595",
+ "type": "string"
+ },
+ "type": {
+ "default": "user_team_permissions",
+ "description": "User team permission type",
+ "enum": [
+ "user_team_permissions"
+ ],
+ "example": "user_team_permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "USER_TEAM_PERMISSIONS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "links": {
+ "description": "Links attributes.",
+ "properties": {
+ "related": {
+ "description": "Related link.",
+ "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "default": "team",
+ "description": "Team type",
+ "enum": [
+ "team"
+ ],
+ "example": "team",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM"
+ ]
}
},
"required": [
- "label",
- "url"
- ],
- "type": "object"
- },
- "id": {
- "description": "The team link's identifier",
- "example": "b8626d7e-cedd-11eb-abf5-da7ad0900001",
- "type": "string"
- },
- "type": {
- "default": "team_links",
- "description": "Team link type",
- "enum": [
- "team_links"
+ "attributes",
+ "id",
+ "type"
],
- "example": "team_links",
- "type": "string",
- "x-enum-varnames": [
- "TEAM_LINKS"
- ]
- }
- },
- "required": [
- "attributes",
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
- },
- "type": "object"
- }
- }
- },
- "description": "OK"
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Forbidden"
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "API error response."
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Too many requests"
- }
- },
- "security": [
- {
- "apiKeyAuth": [],
- "appKeyAuth": []
- },
- {
- "AuthZ": [
- "teams_read"
- ]
- }
- ],
- "summary": "Get links for a team",
- "tags": [
- "Teams"
- ],
- "x-menu-order": 10,
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "teams_read"
- ]
- },
- "x-undo": {
- "type": "safe"
- }
- },
- "post": {
- "description": "Add a new link to a team.",
- "operationId": "CreateTeamLink",
- "parameters": [
- {
- "description": "None",
- "in": "path",
- "name": "team_id",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Team link create request",
- "properties": {
- "data": {
- "description": "Team link create",
- "properties": {
- "attributes": {
- "description": "Team link attributes",
- "properties": {
- "label": {
- "description": "The link's label",
- "example": "Link label",
- "maxLength": 256,
- "type": "string"
- },
- "position": {
- "description": "The link's position, used to sort links for the team",
- "format": "int32",
- "maximum": 2147483647,
- "type": "integer"
- },
- "team_id": {
- "description": "ID of the team the link is associated with",
- "readOnly": true,
- "type": "string"
- },
- "url": {
- "description": "The URL for the link",
- "example": "https://example.com",
- "type": "string"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
- },
- "required": [
- "label",
- "url"
- ],
- "type": "object"
- },
- "type": {
- "default": "team_links",
- "description": "Team link type",
- "enum": [
- "team_links"
- ],
- "example": "team_links",
- "type": "string",
- "x-enum-varnames": [
- "TEAM_LINKS"
]
- }
- },
- "required": [
- "attributes",
- "type"
- ],
- "type": "object"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- }
- }
- },
- "required": true
- },
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Team link response",
- "properties": {
- "data": {
- "description": "Team link",
- "properties": {
- "attributes": {
- "description": "Team link attributes",
- "properties": {
- "label": {
- "description": "The link's label",
- "example": "Link label",
- "maxLength": 256,
- "type": "string"
- },
- "position": {
- "description": "The link's position, used to sort links for the team",
- "format": "int32",
- "maximum": 2147483647,
- "type": "integer"
- },
- "team_id": {
- "description": "ID of the team the link is associated with",
- "readOnly": true,
- "type": "string"
- },
- "url": {
- "description": "The URL for the link",
- "example": "https://example.com",
- "type": "string"
- }
- },
- "required": [
- "label",
- "url"
- ],
- "type": "object"
- },
- "id": {
- "description": "The team link's identifier",
- "example": "b8626d7e-cedd-11eb-abf5-da7ad0900001",
- "type": "string"
- },
- "type": {
- "default": "team_links",
- "description": "Team link type",
- "enum": [
- "team_links"
- ],
- "example": "team_links",
- "type": "string",
- "x-enum-varnames": [
- "TEAM_LINKS"
- ]
- }
- },
- "required": [
- "attributes",
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
- }
- }
- },
- "description": "OK"
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Forbidden"
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "API error response."
- },
- "422": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "API error response."
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
},
"type": "array"
}
},
- "required": [
- "errors"
- ],
"type": "object"
}
}
},
- "description": "Too many requests"
- }
- },
- "security": [
- {
- "apiKeyAuth": [],
- "appKeyAuth": []
- },
- {
- "AuthZ": [
- "teams_read"
- ]
- }
- ],
- "summary": "Create a team link",
- "tags": [
- "Teams"
- ],
- "x-codegen-request-body-name": "body",
- "x-given": {
- "team_link": {
- "parameters": [
- {
- "name": "team_id",
- "source": "dd_team.data.id"
- },
- {
- "name": "body",
- "value": "{\n \"data\": {\n \"attributes\": {\n \"label\": \"{{unique}}\",\n \"url\": \"https://example.com\",\n \"position\": 0\n },\n \"type\": \"team_links\"\n }\n}"
- }
- ],
- "step": "there is a valid \"team_link\" in the system"
- }
- },
- "x-menu-order": 11,
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "teams_read"
- ]
- },
- "x-undo": {
- "operationId": "DeleteTeamLink",
- "parameters": [
- {
- "name": "team_id",
- "source": "data.attributes.team_id"
- },
- {
- "name": "link_id",
- "source": "data.id"
- }
- ],
- "type": "unsafe"
- }
- }
- },
- "/api/v2/team/{team_id}/links/{link_id}": {
- "delete": {
- "description": "Remove a link from a team.",
- "operationId": "DeleteTeamLink",
- "parameters": [
- {
- "description": "None",
- "in": "path",
- "name": "team_id",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "description": "None",
- "in": "path",
- "name": "link_id",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "204": {
- "description": "No Content"
+ "description": "Represents a user's association to a team"
},
"403": {
"content": {
@@ -395326,11 +419138,12 @@
]
}
],
- "summary": "Remove a team link",
+ "summary": "Update a user's membership attributes on a team",
"tags": [
"Teams"
],
- "x-menu-order": 14,
+ "x-codegen-request-body-name": "body",
+ "x-menu-order": 9,
"x-permission": {
"operator": "OR",
"permissions": [
@@ -395341,9 +419154,14 @@
"type": "idempotent"
}
},
+ "x-merge-override": {
+ "delete": true
+ }
+ },
+ "/api/v2/team/{team_id}/permission-settings": {
"get": {
- "description": "Get a single link for a team.",
- "operationId": "GetTeamLink",
+ "description": "Get all permission settings for a given team.",
+ "operationId": "GetTeamPermissionSettings",
"parameters": [
{
"description": "None",
@@ -395353,15 +419171,6 @@
"schema": {
"type": "string"
}
- },
- {
- "description": "None",
- "in": "path",
- "name": "link_id",
- "required": true,
- "schema": {
- "type": "string"
- }
}
],
"responses": {
@@ -395369,70 +419178,111 @@
"content": {
"application/json": {
"schema": {
- "description": "Team link response",
+ "description": "Team permission settings response",
"properties": {
"data": {
- "description": "Team link",
- "properties": {
- "attributes": {
- "description": "Team link attributes",
- "properties": {
- "label": {
- "description": "The link's label",
- "example": "Link label",
- "maxLength": 256,
- "type": "string"
- },
- "position": {
- "description": "The link's position, used to sort links for the team",
- "format": "int32",
- "maximum": 2147483647,
- "type": "integer"
- },
- "team_id": {
- "description": "ID of the team the link is associated with",
- "readOnly": true,
- "type": "string"
+ "description": "Team permission settings response data",
+ "items": {
+ "description": "Team permission setting",
+ "properties": {
+ "attributes": {
+ "description": "Team permission setting attributes",
+ "properties": {
+ "action": {
+ "description": "The identifier for the action",
+ "enum": [
+ "manage_membership",
+ "edit"
+ ],
+ "readOnly": true,
+ "type": "string",
+ "x-enum-varnames": [
+ "MANAGE_MEMBERSHIP",
+ "EDIT"
+ ]
+ },
+ "editable": {
+ "description": "Whether or not the permission setting is editable by the current user",
+ "readOnly": true,
+ "type": "boolean"
+ },
+ "options": {
+ "description": "Possible values for action",
+ "items": {
+ "description": "What type of user is allowed to perform the specified action",
+ "enum": [
+ "admins",
+ "members",
+ "organization",
+ "user_access_manage",
+ "teams_manage"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "ADMINS",
+ "MEMBERS",
+ "ORGANIZATION",
+ "USER_ACCESS_MANAGE",
+ "TEAMS_MANAGE"
+ ]
+ },
+ "readOnly": true,
+ "type": "array"
+ },
+ "title": {
+ "description": "The team permission name",
+ "readOnly": true,
+ "type": "string"
+ },
+ "value": {
+ "description": "What type of user is allowed to perform the specified action",
+ "enum": [
+ "admins",
+ "members",
+ "organization",
+ "user_access_manage",
+ "teams_manage"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "ADMINS",
+ "MEMBERS",
+ "ORGANIZATION",
+ "USER_ACCESS_MANAGE",
+ "TEAMS_MANAGE"
+ ]
+ }
},
- "url": {
- "description": "The URL for the link",
- "example": "https://example.com",
- "type": "string"
- }
+ "type": "object"
},
- "required": [
- "label",
- "url"
- ],
- "type": "object"
- },
- "id": {
- "description": "The team link's identifier",
- "example": "b8626d7e-cedd-11eb-abf5-da7ad0900001",
- "type": "string"
+ "id": {
+ "description": "The team permission setting's identifier",
+ "example": "TeamPermission-aeadc05e-98a8-11ec-ac2c-da7ad0900001-edit",
+ "type": "string"
+ },
+ "type": {
+ "default": "team_permission_settings",
+ "description": "Team permission setting type",
+ "enum": [
+ "team_permission_settings"
+ ],
+ "example": "team_permission_settings",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM_PERMISSION_SETTINGS"
+ ]
+ }
},
- "type": {
- "default": "team_links",
- "description": "Team link type",
- "enum": [
- "team_links"
- ],
- "example": "team_links",
- "type": "string",
- "x-enum-varnames": [
- "TEAM_LINKS"
- ]
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
}
},
- "required": [
- "attributes",
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "array"
}
},
"type": "object"
@@ -395537,11 +419387,11 @@
]
}
],
- "summary": "Get a team link",
+ "summary": "Get permission settings for a team",
"tags": [
"Teams"
],
- "x-menu-order": 12,
+ "x-menu-order": 17,
"x-permission": {
"operator": "OR",
"permissions": [
@@ -395551,10 +419401,12 @@
"x-undo": {
"type": "safe"
}
- },
- "patch": {
- "description": "Update a team link.",
- "operationId": "UpdateTeamLink",
+ }
+ },
+ "/api/v2/team/{team_id}/permission-settings/{action}": {
+ "put": {
+ "description": "Update a team permission setting for a given team.",
+ "operationId": "UpdateTeamPermissionSetting",
"parameters": [
{
"description": "None",
@@ -395568,7 +419420,7 @@
{
"description": "None",
"in": "path",
- "name": "link_id",
+ "name": "action",
"required": true,
"schema": {
"type": "string"
@@ -395579,58 +419431,49 @@
"content": {
"application/json": {
"schema": {
- "description": "Team link create request",
+ "description": "Team permission setting update request",
"properties": {
"data": {
- "description": "Team link create",
+ "description": "Team permission setting update",
"properties": {
"attributes": {
- "description": "Team link attributes",
+ "description": "Team permission setting update attributes",
"properties": {
- "label": {
- "description": "The link's label",
- "example": "Link label",
- "maxLength": 256,
- "type": "string"
- },
- "position": {
- "description": "The link's position, used to sort links for the team",
- "format": "int32",
- "maximum": 2147483647,
- "type": "integer"
- },
- "team_id": {
- "description": "ID of the team the link is associated with",
- "readOnly": true,
- "type": "string"
- },
- "url": {
- "description": "The URL for the link",
- "example": "https://example.com",
- "type": "string"
+ "value": {
+ "description": "What type of user is allowed to perform the specified action",
+ "enum": [
+ "admins",
+ "members",
+ "organization",
+ "user_access_manage",
+ "teams_manage"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "ADMINS",
+ "MEMBERS",
+ "ORGANIZATION",
+ "USER_ACCESS_MANAGE",
+ "TEAMS_MANAGE"
+ ]
}
},
- "required": [
- "label",
- "url"
- ],
"type": "object"
},
"type": {
- "default": "team_links",
- "description": "Team link type",
+ "default": "team_permission_settings",
+ "description": "Team permission setting type",
"enum": [
- "team_links"
+ "team_permission_settings"
],
- "example": "team_links",
+ "example": "team_permission_settings",
"type": "string",
"x-enum-varnames": [
- "TEAM_LINKS"
+ "TEAM_PERMISSION_SETTINGS"
]
}
},
"required": [
- "attributes",
"type"
],
"type": "object"
@@ -395650,63 +419493,100 @@
"content": {
"application/json": {
"schema": {
- "description": "Team link response",
+ "description": "Team permission setting response",
"properties": {
"data": {
- "description": "Team link",
+ "description": "Team permission setting",
"properties": {
"attributes": {
- "description": "Team link attributes",
+ "description": "Team permission setting attributes",
"properties": {
- "label": {
- "description": "The link's label",
- "example": "Link label",
- "maxLength": 256,
- "type": "string"
+ "action": {
+ "description": "The identifier for the action",
+ "enum": [
+ "manage_membership",
+ "edit"
+ ],
+ "readOnly": true,
+ "type": "string",
+ "x-enum-varnames": [
+ "MANAGE_MEMBERSHIP",
+ "EDIT"
+ ]
},
- "position": {
- "description": "The link's position, used to sort links for the team",
- "format": "int32",
- "maximum": 2147483647,
- "type": "integer"
+ "editable": {
+ "description": "Whether or not the permission setting is editable by the current user",
+ "readOnly": true,
+ "type": "boolean"
},
- "team_id": {
- "description": "ID of the team the link is associated with",
+ "options": {
+ "description": "Possible values for action",
+ "items": {
+ "description": "What type of user is allowed to perform the specified action",
+ "enum": [
+ "admins",
+ "members",
+ "organization",
+ "user_access_manage",
+ "teams_manage"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "ADMINS",
+ "MEMBERS",
+ "ORGANIZATION",
+ "USER_ACCESS_MANAGE",
+ "TEAMS_MANAGE"
+ ]
+ },
"readOnly": true,
- "type": "string"
+ "type": "array"
},
- "url": {
- "description": "The URL for the link",
- "example": "https://example.com",
+ "title": {
+ "description": "The team permission name",
+ "readOnly": true,
"type": "string"
+ },
+ "value": {
+ "description": "What type of user is allowed to perform the specified action",
+ "enum": [
+ "admins",
+ "members",
+ "organization",
+ "user_access_manage",
+ "teams_manage"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "ADMINS",
+ "MEMBERS",
+ "ORGANIZATION",
+ "USER_ACCESS_MANAGE",
+ "TEAMS_MANAGE"
+ ]
}
},
- "required": [
- "label",
- "url"
- ],
"type": "object"
},
"id": {
- "description": "The team link's identifier",
- "example": "b8626d7e-cedd-11eb-abf5-da7ad0900001",
+ "description": "The team permission setting's identifier",
+ "example": "TeamPermission-aeadc05e-98a8-11ec-ac2c-da7ad0900001-edit",
"type": "string"
},
"type": {
- "default": "team_links",
- "description": "Team link type",
+ "default": "team_permission_settings",
+ "description": "Team permission setting type",
"enum": [
- "team_links"
+ "team_permission_settings"
],
- "example": "team_links",
+ "example": "team_permission_settings",
"type": "string",
"x-enum-varnames": [
- "TEAM_LINKS"
+ "TEAM_PERMISSION_SETTINGS"
]
}
},
"required": [
- "attributes",
"id",
"type"
],
@@ -395818,12 +419698,12 @@
]
}
],
- "summary": "Update a team link",
+ "summary": "Update permission setting for team",
"tags": [
"Teams"
],
"x-codegen-request-body-name": "body",
- "x-menu-order": 13,
+ "x-menu-order": 18,
"x-permission": {
"operator": "OR",
"permissions": [
@@ -395835,18 +419715,28 @@
}
}
},
- "/api/v2/team/{team_id}/memberships": {
+ "/api/v2/teams": {
"get": {
- "description": "Get a paginated list of members for a team",
- "operationId": "GetTeamMemberships",
+ "deprecated": true,
+ "description": "Get all incident teams for the requesting user's organization. If the `include[users]` query parameter is provided, the included attribute will contain the users related to these incident teams.",
+ "operationId": "ListIncidentTeams",
"parameters": [
{
- "description": "None",
- "in": "path",
- "name": "team_id",
- "required": true,
+ "description": "Specifies which types of related objects should be included in the response.",
+ "in": "query",
+ "name": "include",
+ "required": false,
"schema": {
- "type": "string"
+ "description": "Object related to an incident.",
+ "enum": [
+ "users",
+ "attachments"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS",
+ "ATTACHMENTS"
+ ]
}
},
{
@@ -395862,9 +419752,9 @@
}
},
{
- "description": "Specific page number to return.",
+ "description": "Specific offset to use as the beginning of the returned page.",
"in": "query",
- "name": "page[number]",
+ "name": "page[offset]",
"required": false,
"schema": {
"default": 0,
@@ -395874,41 +419764,12 @@
}
},
{
- "description": "Specifies the order of returned team memberships",
- "in": "query",
- "name": "sort",
- "required": false,
- "schema": {
- "description": "Specifies the order of returned team memberships",
- "enum": [
- "manager_name",
- "-manager_name",
- "name",
- "-name",
- "handle",
- "-handle",
- "email",
- "-email"
- ],
- "type": "string",
- "x-enum-varnames": [
- "MANAGER_NAME",
- "_MANAGER_NAME",
- "NAME",
- "_NAME",
- "HANDLE",
- "_HANDLE",
- "EMAIL",
- "_EMAIL"
- ]
- }
- },
- {
- "description": "Search query, can be user email or name",
+ "description": "A search query that filters teams by name.",
"in": "query",
- "name": "filter[keyword]",
+ "name": "filter",
"required": false,
"schema": {
+ "example": "ExampleTeamName",
"type": "string"
}
}
@@ -395918,71 +419779,74 @@
"content": {
"application/json": {
"schema": {
- "description": "Team memberships response",
+ "description": "Response with a list of incident team payloads.",
"properties": {
"data": {
- "description": "Team memberships response data",
+ "description": "An array of incident teams.",
+ "example": [
+ {
+ "attributes": {
+ "name": "team name"
+ },
+ "id": "00000000-7ea3-0000-0000-000000000000",
+ "type": "teams"
+ }
+ ],
"items": {
- "description": "A user's relationship with a team",
+ "description": "Incident Team data from a response.",
"properties": {
"attributes": {
- "description": "Team membership attributes",
+ "description": "The incident team's attributes from a response.",
"properties": {
- "provisioned_by": {
- "description": "The mechanism responsible for provisioning the team relationship.\nPossible values: null for added by a user, \"service_account\" if added by a service account, and \"saml_mapping\" if provisioned via SAML mapping.",
- "nullable": true,
+ "created": {
+ "description": "Timestamp of when the incident team was created.",
+ "format": "date-time",
"readOnly": true,
"type": "string"
},
- "provisioned_by_id": {
- "description": "UUID of the User or Service Account who provisioned this team membership, or null if provisioned via SAML mapping.",
- "nullable": true,
+ "modified": {
+ "description": "Timestamp of when the incident team was modified.",
+ "format": "date-time",
"readOnly": true,
"type": "string"
},
- "role": {
- "description": "The user's role within the team",
- "enum": [
- "admin"
- ],
- "nullable": true,
- "type": "string",
- "x-enum-varnames": [
- "ADMIN"
- ]
+ "name": {
+ "description": "Name of the incident team.",
+ "example": "team name",
+ "type": "string"
}
},
"type": "object"
},
"id": {
- "description": "The ID of a user's relationship with a team",
- "example": "TeamMembership-aeadc05e-98a8-11ec-ac2c-da7ad0900001-38835",
+ "description": "The incident team's ID.",
+ "example": "00000000-7ea3-0000-000a-000000000000",
"type": "string"
},
"relationships": {
- "description": "Relationship between membership and a user",
+ "description": "The incident team's relationships.",
"properties": {
- "team": {
- "description": "Relationship between team membership and team",
+ "created_by": {
+ "description": "Relationship to user.",
"properties": {
"data": {
- "description": "The team associated with the membership",
+ "description": "Relationship to user object.",
"properties": {
"id": {
- "description": "The ID of the team associated with the membership",
- "example": "d7e15d9d-d346-43da-81d8-3d9e71d9a5e9",
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
"type": "string"
},
"type": {
- "default": "team",
- "description": "User team team type",
+ "default": "users",
+ "description": "Users resource type.",
"enum": [
- "team"
+ "users"
],
- "example": "team",
+ "example": "users",
"type": "string",
"x-enum-varnames": [
- "TEAM"
+ "USERS"
]
}
},
@@ -395990,7 +419854,10 @@
"id",
"type"
],
- "type": "object"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
"required": [
@@ -395998,20 +419865,20 @@
],
"type": "object"
},
- "user": {
- "description": "Relationship between team membership and user",
+ "last_modified_by": {
+ "description": "Relationship to user.",
"properties": {
"data": {
- "description": "A user's relationship with a team",
+ "description": "Relationship to user object.",
"properties": {
"id": {
- "description": "The ID of the user associated with the team",
- "example": "b8626d7e-cedd-11eb-abf5-da7ad0900001",
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
"type": "string"
},
"type": {
"default": "users",
- "description": "User team user type",
+ "description": "Users resource type.",
"enum": [
"users"
],
@@ -396038,36 +419905,30 @@
"type": "object"
}
},
+ "readOnly": true,
"type": "object"
},
"type": {
- "default": "team_memberships",
- "description": "Team membership type",
+ "default": "teams",
+ "description": "Incident Team resource type.",
"enum": [
- "team_memberships"
+ "teams"
],
- "example": "team_memberships",
+ "example": "teams",
"type": "string",
"x-enum-varnames": [
- "TEAM_MEMBERSHIPS"
+ "TEAMS"
]
}
},
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "object"
},
"type": "array"
},
"included": {
- "description": "Resources related to the team memberships",
+ "description": "Included related resources which the user requested.",
"items": {
- "description": "Included resources related to the team membership",
+ "description": "An object related to an incident team which is present in the included payload.",
"oneOf": [
{
"description": "User object returned by the API.",
@@ -396321,126 +420182,675 @@
"x-merge-override": {
"required": false
}
+ }
+ ]
+ },
+ "readOnly": true,
+ "type": "array"
+ },
+ "meta": {
+ "description": "The metadata object containing pagination metadata.",
+ "properties": {
+ "pagination": {
+ "description": "Pagination properties.",
+ "properties": {
+ "next_offset": {
+ "description": "The index of the first element in the next page of results. Equal to page size added to the current offset.",
+ "example": 1000,
+ "format": "int64",
+ "type": "integer"
+ },
+ "offset": {
+ "description": "The index of the first element in the results.",
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ },
+ "size": {
+ "description": "Maximum size of pages to return.",
+ "example": 1000,
+ "format": "int64",
+ "type": "integer"
+ }
},
- {
- "description": "A team",
+ "type": "object"
+ }
+ },
+ "readOnly": true,
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "OK"
+ },
+ "400": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Bad Request"
+ },
+ "401": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Unauthorized"
+ },
+ "403": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Forbidden"
+ },
+ "404": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Not Found"
+ },
+ "429": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Too many requests"
+ }
+ },
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
+ },
+ {
+ "AuthZ": [
+ "incident_read"
+ ]
+ }
+ ],
+ "summary": "Get a list of all incident teams",
+ "tags": [
+ "Incident Teams"
+ ],
+ "x-menu-order": 4,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "incident_read"
+ ]
+ },
+ "x-undo": {
+ "type": "safe"
+ },
+ "x-unstable": "**Note**: This endpoint is deprecated. See the [Teams API endpoints](https://docs.datadoghq.com/api/latest/teams/)."
+ },
+ "post": {
+ "deprecated": true,
+ "description": "Creates a new incident team.",
+ "operationId": "CreateIncidentTeam",
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Create request with an incident team payload.",
+ "properties": {
+ "data": {
+ "description": "Incident Team data for a create request.",
+ "properties": {
+ "attributes": {
+ "description": "The incident team's attributes for a create request.",
+ "properties": {
+ "name": {
+ "description": "Name of the incident team.",
+ "example": "team name",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "type": "object"
+ },
+ "relationships": {
+ "description": "The incident team's relationships.",
+ "properties": {
+ "created_by": {
+ "description": "Relationship to user.",
"properties": {
- "attributes": {
- "description": "Team attributes",
+ "data": {
+ "description": "Relationship to user object.",
"properties": {
- "avatar": {
- "description": "Unicode representation of the avatar for the team, limited to a single grapheme",
- "example": "🥑",
- "nullable": true,
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
"type": "string"
},
- "banner": {
- "description": "Banner selection for the team",
- "format": "int64",
- "nullable": true,
- "type": "integer"
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "last_modified_by": {
+ "description": "Relationship to user.",
+ "properties": {
+ "data": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
+ },
+ "readOnly": true,
+ "type": "object"
+ },
+ "type": {
+ "default": "teams",
+ "description": "Incident Team resource type.",
+ "enum": [
+ "teams"
+ ],
+ "example": "teams",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAMS"
+ ]
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Incident Team Payload.",
+ "required": true
+ },
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Response with an incident team payload.",
+ "properties": {
+ "data": {
+ "description": "Incident Team data from a response.",
+ "properties": {
+ "attributes": {
+ "description": "The incident team's attributes from a response.",
+ "properties": {
+ "created": {
+ "description": "Timestamp of when the incident team was created.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "modified": {
+ "description": "Timestamp of when the incident team was modified.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the incident team.",
+ "example": "team name",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The incident team's ID.",
+ "example": "00000000-7ea3-0000-000a-000000000000",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "The incident team's relationships.",
+ "properties": {
+ "created_by": {
+ "description": "Relationship to user.",
+ "properties": {
+ "data": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "last_modified_by": {
+ "description": "Relationship to user.",
+ "properties": {
+ "data": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
},
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
+ },
+ "readOnly": true,
+ "type": "object"
+ },
+ "type": {
+ "default": "teams",
+ "description": "Incident Team resource type.",
+ "enum": [
+ "teams"
+ ],
+ "example": "teams",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAMS"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "included": {
+ "description": "Included objects from relationships.",
+ "items": {
+ "description": "An object related to an incident team which is present in the included payload.",
+ "oneOf": [
+ {
+ "description": "User object returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of user object returned by the API.",
+ "properties": {
"created_at": {
- "description": "Creation date of the team",
+ "description": "Creation time of the user.",
"format": "date-time",
"type": "string"
},
- "description": {
- "description": "Free-form markdown description/content for the team's homepage",
- "nullable": true,
+ "disabled": {
+ "description": "Whether the user is disabled.",
+ "type": "boolean"
+ },
+ "email": {
+ "description": "Email of the user.",
"type": "string"
},
"handle": {
- "description": "The team's identifier",
- "example": "example-team",
- "maxLength": 195,
+ "description": "Handle of the user.",
"type": "string"
},
- "hidden_modules": {
- "description": "Collection of hidden modules for the team",
- "items": {
- "description": "String identifier of the module",
- "type": "string"
- },
- "type": "array"
+ "icon": {
+ "description": "URL of the user's icon.",
+ "type": "string"
},
- "link_count": {
- "description": "The number of links belonging to the team",
- "format": "int32",
- "maximum": 2147483647,
+ "mfa_enabled": {
+ "description": "If user has MFA enabled.",
"readOnly": true,
- "type": "integer"
+ "type": "boolean"
},
"modified_at": {
- "description": "Modification date of the team",
+ "description": "Time that the user was last modified.",
"format": "date-time",
"type": "string"
},
"name": {
- "description": "The name of the team",
- "example": "Example Team",
- "maxLength": 200,
+ "description": "Name of the user.",
+ "nullable": true,
"type": "string"
},
- "summary": {
- "description": "A brief summary of the team, derived from the `description`",
- "maxLength": 120,
- "nullable": true,
+ "service_account": {
+ "description": "Whether the user is a service account.",
+ "type": "boolean"
+ },
+ "status": {
+ "description": "Status of the user.",
"type": "string"
},
- "user_count": {
- "description": "The number of users belonging to the team",
- "format": "int32",
- "maximum": 2147483647,
- "readOnly": true,
- "type": "integer"
+ "title": {
+ "description": "Title of the user.",
+ "nullable": true,
+ "type": "string"
},
- "visible_modules": {
- "description": "Collection of visible modules for the team",
- "items": {
- "description": "String identifier of the module",
- "type": "string"
- },
- "type": "array"
+ "verified": {
+ "description": "Whether the user is verified.",
+ "type": "boolean"
}
},
- "required": [
- "handle",
- "name"
- ],
"type": "object"
},
"id": {
- "description": "The team's identifier",
- "example": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
+ "description": "ID of the user.",
"type": "string"
},
"relationships": {
- "description": "Resources related to a team",
+ "description": "Relationships of the user object returned by the API.",
"properties": {
- "team_links": {
- "description": "Relationship between a team and a team link",
+ "org": {
+ "description": "Relationship to an organization.",
"properties": {
"data": {
- "description": "Related team links",
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_orgs": {
+ "description": "Relationship to organizations.",
+ "properties": {
+ "data": {
+ "description": "Relationships to organization objects.",
+ "example": [],
"items": {
- "description": "Relationship between a link and a team",
+ "description": "Relationship to organization object.",
"properties": {
"id": {
- "description": "The team link's identifier",
- "example": "f9bb8444-af7f-11ec-ac2c-da7ad0900001",
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
"type": "string"
},
"type": {
- "default": "team_links",
- "description": "Team link type",
+ "default": "orgs",
+ "description": "Organizations resource type.",
"enum": [
- "team_links"
+ "orgs"
],
- "example": "team_links",
+ "example": "orgs",
"type": "string",
"x-enum-varnames": [
- "TEAM_LINKS"
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_users": {
+ "description": "Relationship to users.",
+ "properties": {
+ "data": {
+ "description": "Relationships to user objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
]
}
},
@@ -396454,67 +420864,45 @@
}
},
"type": "array"
- },
- "links": {
- "description": "Links attributes.",
- "properties": {
- "related": {
- "description": "Related link.",
- "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
- "type": "string"
- }
- },
- "type": "object"
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "required": [
+ "data"
+ ],
+ "type": "object"
},
- "user_team_permissions": {
- "description": "Relationship between a user team permission and a team",
+ "roles": {
+ "description": "Relationship to roles.",
"properties": {
"data": {
- "description": "Related user team permission data",
- "properties": {
- "id": {
- "description": "The ID of the user team permission",
- "example": "UserTeamPermissions-aeadc05e-98a8-11ec-ac2c-da7ad0900001-416595",
- "type": "string"
+ "description": "An array containing type and the unique identifier of a role.",
+ "items": {
+ "description": "Relationship to role object.",
+ "properties": {
+ "id": {
+ "description": "The unique identifier of the role.",
+ "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "type": "string"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
},
- "type": {
- "default": "user_team_permissions",
- "description": "User team permission type",
- "enum": [
- "user_team_permissions"
- ],
- "example": "user_team_permissions",
- "type": "string",
- "x-enum-varnames": [
- "USER_TEAM_PERMISSIONS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "links": {
- "description": "Links attributes.",
- "properties": {
- "related": {
- "description": "Related link.",
- "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
- "type": "string"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
}
},
- "type": "object"
+ "type": "array"
}
},
"type": "object",
@@ -396523,26 +420911,24 @@
}
}
},
- "type": "object"
+ "type": "object",
+ "x-merge-override": {
+ "properties": false
+ }
},
"type": {
- "default": "team",
- "description": "Team type",
+ "default": "users",
+ "description": "Users resource type.",
"enum": [
- "team"
+ "users"
],
- "example": "team",
+ "example": "users",
"type": "string",
"x-enum-varnames": [
- "TEAM"
+ "USERS"
]
}
},
- "required": [
- "attributes",
- "id",
- "type"
- ],
"type": "object",
"x-merge-override": {
"required": false
@@ -396550,93 +420936,282 @@
}
]
},
+ "readOnly": true,
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "CREATED"
+ },
+ "400": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Bad Request"
+ },
+ "401": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Unauthorized"
+ },
+ "403": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Forbidden"
+ },
+ "404": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Not Found"
+ },
+ "429": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Too many requests"
+ }
+ },
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
+ },
+ {
+ "AuthZ": [
+ "incident_settings_write"
+ ]
+ }
+ ],
+ "summary": "Create a new incident team",
+ "tags": [
+ "Incident Teams"
+ ],
+ "x-codegen-request-body-name": "body",
+ "x-given": {
+ "team": {
+ "parameters": [
+ {
+ "name": "body",
+ "value": "{\n \"data\": {\n \"attributes\": {\n \"name\": \"{{ unique }}\"\n },\n \"type\": \"teams\"\n }\n}"
+ }
+ ],
+ "step": "there is a valid \"team\" in the system"
+ }
+ },
+ "x-menu-order": 5,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "incident_settings_write"
+ ]
+ },
+ "x-undo": {
+ "operationId": "DeleteIncidentTeam",
+ "parameters": [
+ {
+ "name": "team_id",
+ "source": "data.id"
+ }
+ ],
+ "type": "unsafe"
+ },
+ "x-unstable": "**Note**: This endpoint is deprecated. See the [Teams API endpoints](https://docs.datadoghq.com/api/latest/teams/)."
+ }
+ },
+ "/api/v2/teams/{team_id}": {
+ "delete": {
+ "deprecated": true,
+ "description": "Deletes an existing incident team.",
+ "operationId": "DeleteIncidentTeam",
+ "parameters": [
+ {
+ "description": "The ID of the incident team.",
+ "in": "path",
+ "name": "team_id",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "204": {
+ "description": "OK"
+ },
+ "400": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
"type": "array"
- },
- "links": {
- "description": "Teams response links.",
- "properties": {
- "first": {
- "description": "First link.",
- "type": "string"
- },
- "last": {
- "description": "Last link.",
- "nullable": true,
- "type": "string"
- },
- "next": {
- "description": "Next link.",
- "type": "string"
- },
- "prev": {
- "description": "Previous link.",
- "nullable": true,
- "type": "string"
- },
- "self": {
- "description": "Current link.",
- "type": "string"
- }
- },
- "type": "object"
- },
- "meta": {
- "description": "Teams response metadata.",
- "properties": {
- "pagination": {
- "description": "Teams response metadata.",
- "properties": {
- "first_offset": {
- "description": "The first offset.",
- "format": "int64",
- "type": "integer"
- },
- "last_offset": {
- "description": "The last offset.",
- "format": "int64",
- "type": "integer"
- },
- "limit": {
- "description": "Pagination limit.",
- "format": "int64",
- "type": "integer"
- },
- "next_offset": {
- "description": "The next offset.",
- "format": "int64",
- "type": "integer"
- },
- "offset": {
- "description": "The offset.",
- "format": "int64",
- "type": "integer"
- },
- "prev_offset": {
- "description": "The previous offset.",
- "format": "int64",
- "type": "integer"
- },
- "total": {
- "description": "Total results.",
- "format": "int64",
- "type": "integer"
- },
- "type": {
- "description": "Offset type.",
- "type": "string"
- }
- },
- "type": "object"
- }
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Bad Request"
+ },
+ "401": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
},
- "type": "object"
+ "type": "array"
}
},
+ "required": [
+ "errors"
+ ],
"type": "object"
}
}
},
- "description": "Represents a user's association to a team"
+ "description": "Unauthorized"
},
"403": {
"content": {
@@ -396692,7 +421267,7 @@
}
}
},
- "description": "API error response."
+ "description": "Not Found"
},
"429": {
"content": {
@@ -396730,259 +421305,121 @@
},
{
"AuthZ": [
- "teams_read"
+ "incident_settings_write"
]
}
],
- "summary": "Get team memberships",
+ "summary": "Delete an existing incident team",
"tags": [
- "Teams"
+ "Incident Teams"
],
- "x-menu-order": 6,
- "x-pagination": {
- "limitParam": "page[size]",
- "pageParam": "page[number]",
- "resultsPath": "data"
- },
+ "x-menu-order": 2,
"x-permission": {
"operator": "OR",
"permissions": [
- "teams_read"
+ "incident_settings_write"
]
},
"x-undo": {
- "type": "safe"
- }
+ "type": "idempotent"
+ },
+ "x-unstable": "**Note**: This endpoint is deprecated. See the [Teams API endpoints](https://docs.datadoghq.com/api/latest/teams/)."
},
- "post": {
- "description": "Add a user to a team.",
- "operationId": "CreateTeamMembership",
+ "get": {
+ "deprecated": true,
+ "description": "Get details of an incident team. If the `include[users]` query parameter is provided,\nthe included attribute will contain the users related to these incident teams.",
+ "operationId": "GetIncidentTeam",
"parameters": [
{
- "description": "None",
+ "description": "The ID of the incident team.",
"in": "path",
"name": "team_id",
"required": true,
"schema": {
"type": "string"
}
+ },
+ {
+ "description": "Specifies which types of related objects should be included in the response.",
+ "in": "query",
+ "name": "include",
+ "required": false,
+ "schema": {
+ "description": "Object related to an incident.",
+ "enum": [
+ "users",
+ "attachments"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS",
+ "ATTACHMENTS"
+ ]
+ }
}
],
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Team membership request",
- "properties": {
- "data": {
- "description": "A user's relationship with a team",
- "properties": {
- "attributes": {
- "description": "Team membership attributes",
- "properties": {
- "provisioned_by": {
- "description": "The mechanism responsible for provisioning the team relationship.\nPossible values: null for added by a user, \"service_account\" if added by a service account, and \"saml_mapping\" if provisioned via SAML mapping.",
- "nullable": true,
- "readOnly": true,
- "type": "string"
- },
- "provisioned_by_id": {
- "description": "UUID of the User or Service Account who provisioned this team membership, or null if provisioned via SAML mapping.",
- "nullable": true,
- "readOnly": true,
- "type": "string"
- },
- "role": {
- "description": "The user's role within the team",
- "enum": [
- "admin"
- ],
- "nullable": true,
- "type": "string",
- "x-enum-varnames": [
- "ADMIN"
- ]
- }
- },
- "type": "object"
- },
- "relationships": {
- "description": "Relationship between membership and a user",
- "properties": {
- "team": {
- "description": "Relationship between team membership and team",
- "properties": {
- "data": {
- "description": "The team associated with the membership",
- "properties": {
- "id": {
- "description": "The ID of the team associated with the membership",
- "example": "d7e15d9d-d346-43da-81d8-3d9e71d9a5e9",
- "type": "string"
- },
- "type": {
- "default": "team",
- "description": "User team team type",
- "enum": [
- "team"
- ],
- "example": "team",
- "type": "string",
- "x-enum-varnames": [
- "TEAM"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "user": {
- "description": "Relationship between team membership and user",
- "properties": {
- "data": {
- "description": "A user's relationship with a team",
- "properties": {
- "id": {
- "description": "The ID of the user associated with the team",
- "example": "b8626d7e-cedd-11eb-abf5-da7ad0900001",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "User team user type",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- }
- },
- "type": "object"
- },
- "type": {
- "default": "team_memberships",
- "description": "Team membership type",
- "enum": [
- "team_memberships"
- ],
- "example": "team_memberships",
- "type": "string",
- "x-enum-varnames": [
- "TEAM_MEMBERSHIPS"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- }
- }
- },
- "required": true
- },
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
- "description": "Team membership response",
+ "description": "Response with an incident team payload.",
"properties": {
"data": {
- "description": "A user's relationship with a team",
+ "description": "Incident Team data from a response.",
"properties": {
"attributes": {
- "description": "Team membership attributes",
+ "description": "The incident team's attributes from a response.",
"properties": {
- "provisioned_by": {
- "description": "The mechanism responsible for provisioning the team relationship.\nPossible values: null for added by a user, \"service_account\" if added by a service account, and \"saml_mapping\" if provisioned via SAML mapping.",
- "nullable": true,
+ "created": {
+ "description": "Timestamp of when the incident team was created.",
+ "format": "date-time",
"readOnly": true,
"type": "string"
},
- "provisioned_by_id": {
- "description": "UUID of the User or Service Account who provisioned this team membership, or null if provisioned via SAML mapping.",
- "nullable": true,
+ "modified": {
+ "description": "Timestamp of when the incident team was modified.",
+ "format": "date-time",
"readOnly": true,
"type": "string"
},
- "role": {
- "description": "The user's role within the team",
- "enum": [
- "admin"
- ],
- "nullable": true,
- "type": "string",
- "x-enum-varnames": [
- "ADMIN"
- ]
+ "name": {
+ "description": "Name of the incident team.",
+ "example": "team name",
+ "type": "string"
}
},
"type": "object"
},
"id": {
- "description": "The ID of a user's relationship with a team",
- "example": "TeamMembership-aeadc05e-98a8-11ec-ac2c-da7ad0900001-38835",
+ "description": "The incident team's ID.",
+ "example": "00000000-7ea3-0000-000a-000000000000",
"type": "string"
},
"relationships": {
- "description": "Relationship between membership and a user",
+ "description": "The incident team's relationships.",
"properties": {
- "team": {
- "description": "Relationship between team membership and team",
+ "created_by": {
+ "description": "Relationship to user.",
"properties": {
"data": {
- "description": "The team associated with the membership",
+ "description": "Relationship to user object.",
"properties": {
"id": {
- "description": "The ID of the team associated with the membership",
- "example": "d7e15d9d-d346-43da-81d8-3d9e71d9a5e9",
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
"type": "string"
},
"type": {
- "default": "team",
- "description": "User team team type",
+ "default": "users",
+ "description": "Users resource type.",
"enum": [
- "team"
+ "users"
],
- "example": "team",
+ "example": "users",
"type": "string",
"x-enum-varnames": [
- "TEAM"
+ "USERS"
]
}
},
@@ -396990,7 +421427,10 @@
"id",
"type"
],
- "type": "object"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
"required": [
@@ -396998,20 +421438,20 @@
],
"type": "object"
},
- "user": {
- "description": "Relationship between team membership and user",
+ "last_modified_by": {
+ "description": "Relationship to user.",
"properties": {
"data": {
- "description": "A user's relationship with a team",
+ "description": "Relationship to user object.",
"properties": {
"id": {
- "description": "The ID of the user associated with the team",
- "example": "b8626d7e-cedd-11eb-abf5-da7ad0900001",
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
"type": "string"
},
"type": {
"default": "users",
- "description": "User team user type",
+ "description": "Users resource type.",
"enum": [
"users"
],
@@ -397038,34 +421478,28 @@
"type": "object"
}
},
+ "readOnly": true,
"type": "object"
},
"type": {
- "default": "team_memberships",
- "description": "Team membership type",
+ "default": "teams",
+ "description": "Incident Team resource type.",
"enum": [
- "team_memberships"
+ "teams"
],
- "example": "team_memberships",
+ "example": "teams",
"type": "string",
"x-enum-varnames": [
- "TEAM_MEMBERSHIPS"
+ "TEAMS"
]
}
},
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "object"
},
"included": {
- "description": "Resources related to the team memberships",
+ "description": "Included objects from relationships.",
"items": {
- "description": "Included resources related to the team membership",
+ "description": "An object related to an incident team which is present in the included payload.",
"oneOf": [
{
"description": "User object returned by the API.",
@@ -397319,301 +421753,23 @@
"x-merge-override": {
"required": false
}
- },
- {
- "description": "A team",
- "properties": {
- "attributes": {
- "description": "Team attributes",
- "properties": {
- "avatar": {
- "description": "Unicode representation of the avatar for the team, limited to a single grapheme",
- "example": "🥑",
- "nullable": true,
- "type": "string"
- },
- "banner": {
- "description": "Banner selection for the team",
- "format": "int64",
- "nullable": true,
- "type": "integer"
- },
- "created_at": {
- "description": "Creation date of the team",
- "format": "date-time",
- "type": "string"
- },
- "description": {
- "description": "Free-form markdown description/content for the team's homepage",
- "nullable": true,
- "type": "string"
- },
- "handle": {
- "description": "The team's identifier",
- "example": "example-team",
- "maxLength": 195,
- "type": "string"
- },
- "hidden_modules": {
- "description": "Collection of hidden modules for the team",
- "items": {
- "description": "String identifier of the module",
- "type": "string"
- },
- "type": "array"
- },
- "link_count": {
- "description": "The number of links belonging to the team",
- "format": "int32",
- "maximum": 2147483647,
- "readOnly": true,
- "type": "integer"
- },
- "modified_at": {
- "description": "Modification date of the team",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "The name of the team",
- "example": "Example Team",
- "maxLength": 200,
- "type": "string"
- },
- "summary": {
- "description": "A brief summary of the team, derived from the `description`",
- "maxLength": 120,
- "nullable": true,
- "type": "string"
- },
- "user_count": {
- "description": "The number of users belonging to the team",
- "format": "int32",
- "maximum": 2147483647,
- "readOnly": true,
- "type": "integer"
- },
- "visible_modules": {
- "description": "Collection of visible modules for the team",
- "items": {
- "description": "String identifier of the module",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "handle",
- "name"
- ],
- "type": "object"
- },
- "id": {
- "description": "The team's identifier",
- "example": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
- "type": "string"
- },
- "relationships": {
- "description": "Resources related to a team",
- "properties": {
- "team_links": {
- "description": "Relationship between a team and a team link",
- "properties": {
- "data": {
- "description": "Related team links",
- "items": {
- "description": "Relationship between a link and a team",
- "properties": {
- "id": {
- "description": "The team link's identifier",
- "example": "f9bb8444-af7f-11ec-ac2c-da7ad0900001",
- "type": "string"
- },
- "type": {
- "default": "team_links",
- "description": "Team link type",
- "enum": [
- "team_links"
- ],
- "example": "team_links",
- "type": "string",
- "x-enum-varnames": [
- "TEAM_LINKS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- },
- "links": {
- "description": "Links attributes.",
- "properties": {
- "related": {
- "description": "Related link.",
- "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "user_team_permissions": {
- "description": "Relationship between a user team permission and a team",
- "properties": {
- "data": {
- "description": "Related user team permission data",
- "properties": {
- "id": {
- "description": "The ID of the user team permission",
- "example": "UserTeamPermissions-aeadc05e-98a8-11ec-ac2c-da7ad0900001-416595",
- "type": "string"
- },
- "type": {
- "default": "user_team_permissions",
- "description": "User team permission type",
- "enum": [
- "user_team_permissions"
- ],
- "example": "user_team_permissions",
- "type": "string",
- "x-enum-varnames": [
- "USER_TEAM_PERMISSIONS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "links": {
- "description": "Links attributes.",
- "properties": {
- "related": {
- "description": "Related link.",
- "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
- },
- "type": {
- "default": "team",
- "description": "Team type",
- "enum": [
- "team"
- ],
- "example": "team",
- "type": "string",
- "x-enum-varnames": [
- "TEAM"
- ]
- }
- },
- "required": [
- "attributes",
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
}
]
},
- "type": "array"
- }
- },
- "type": "object"
- }
- }
- },
- "description": "Represents a user's association to a team"
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Forbidden"
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
+ "readOnly": true,
"type": "array"
}
},
"required": [
- "errors"
+ "data"
],
"type": "object"
}
}
},
- "description": "API error response."
+ "description": "OK"
},
- "409": {
+ "400": {
"content": {
"application/json": {
"schema": {
@@ -397639,9 +421795,9 @@
}
}
},
- "description": "API error response."
+ "description": "Bad Request"
},
- "429": {
+ "401": {
"content": {
"application/json": {
"schema": {
@@ -397667,86 +421823,7 @@
}
}
},
- "description": "Too many requests"
- }
- },
- "security": [
- {
- "apiKeyAuth": [],
- "appKeyAuth": []
- },
- {
- "AuthZ": [
- "teams_read"
- ]
- }
- ],
- "summary": "Add a user to a team",
- "tags": [
- "Teams"
- ],
- "x-codegen-request-body-name": "body",
- "x-given": {
- "team_membership": {
- "parameters": [
- {
- "name": "body",
- "value": "{\n \"data\": {\n \"attributes\": {\n \"role\": \"admin\"\n },\n \"relationships\": {\n \"user\": {\n \"data\": {\n \"id\": \"{{user.data.id}}\",\n \"type\": \"users\"\n }\n }\n },\n \"type\": \"team_memberships\"\n }\n}"
- }
- ],
- "step": "there is a valid \"team_membership\" in the system"
- }
- },
- "x-menu-order": 7,
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "teams_read"
- ]
- },
- "x-undo": {
- "operationId": "DeleteTeamMembership",
- "parameters": [
- {
- "name": "team_id",
- "template": "{{team.data.id}}"
- },
- {
- "name": "user_id",
- "source": "data.relationships.user.data.id"
- }
- ],
- "type": "unsafe"
- }
- }
- },
- "/api/v2/team/{team_id}/memberships/{user_id}": {
- "delete": {
- "description": "Remove a user from a team.",
- "operationId": "DeleteTeamMembership",
- "parameters": [
- {
- "description": "None",
- "in": "path",
- "name": "team_id",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "description": "None",
- "in": "path",
- "name": "user_id",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "204": {
- "description": "No Content"
+ "description": "Unauthorized"
},
"403": {
"content": {
@@ -397802,7 +421879,7 @@
}
}
},
- "description": "API error response."
+ "description": "Not Found"
},
"429": {
"content": {
@@ -397840,96 +421917,164 @@
},
{
"AuthZ": [
- "teams_read"
+ "incident_read"
]
}
],
- "summary": "Remove a user from a team",
+ "summary": "Get details of an incident team",
"tags": [
- "Teams"
+ "Incident Teams"
],
- "x-menu-order": 8,
+ "x-menu-order": 1,
"x-permission": {
"operator": "OR",
"permissions": [
- "teams_read"
+ "incident_read"
]
},
"x-undo": {
- "type": "idempotent"
- }
+ "type": "safe"
+ },
+ "x-unstable": "**Note**: This endpoint is deprecated. See the [Teams API endpoints](https://docs.datadoghq.com/api/latest/teams/)."
},
"patch": {
- "description": "Update a user's membership attributes on a team.",
- "operationId": "UpdateTeamMembership",
+ "deprecated": true,
+ "description": "Updates an existing incident team. Only provide the attributes which should be updated as this request is a partial update.",
+ "operationId": "UpdateIncidentTeam",
"parameters": [
{
- "description": "None",
+ "description": "The ID of the incident team.",
"in": "path",
"name": "team_id",
"required": true,
"schema": {
"type": "string"
}
- },
- {
- "description": "None",
- "in": "path",
- "name": "user_id",
- "required": true,
- "schema": {
- "type": "string"
- }
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
- "description": "Team membership request",
+ "description": "Update request with an incident team payload.",
"properties": {
"data": {
- "description": "A user's relationship with a team",
+ "description": "Incident Team data for an update request.",
"properties": {
"attributes": {
- "description": "Team membership attributes",
+ "description": "The incident team's attributes for an update request.",
"properties": {
- "provisioned_by": {
- "description": "The mechanism responsible for provisioning the team relationship.\nPossible values: null for added by a user, \"service_account\" if added by a service account, and \"saml_mapping\" if provisioned via SAML mapping.",
- "nullable": true,
- "readOnly": true,
- "type": "string"
- },
- "provisioned_by_id": {
- "description": "UUID of the User or Service Account who provisioned this team membership, or null if provisioned via SAML mapping.",
- "nullable": true,
- "readOnly": true,
+ "name": {
+ "description": "Name of the incident team.",
+ "example": "team name",
"type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "description": "The incident team's ID.",
+ "example": "00000000-7ea3-0000-0001-000000000000",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "The incident team's relationships.",
+ "properties": {
+ "created_by": {
+ "description": "Relationship to user.",
+ "properties": {
+ "data": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
},
- "role": {
- "description": "The user's role within the team",
- "enum": [
- "admin"
+ "last_modified_by": {
+ "description": "Relationship to user.",
+ "properties": {
+ "data": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "required": [
+ "data"
],
- "nullable": true,
- "type": "string",
- "x-enum-varnames": [
- "ADMIN"
- ]
+ "type": "object"
}
},
+ "readOnly": true,
"type": "object"
},
"type": {
- "default": "team_memberships",
- "description": "Team membership type",
+ "default": "teams",
+ "description": "Incident Team resource type.",
"enum": [
- "team_memberships"
+ "teams"
],
- "example": "team_memberships",
+ "example": "teams",
"type": "string",
"x-enum-varnames": [
- "TEAM_MEMBERSHIPS"
+ "TEAMS"
]
}
},
@@ -397946,6 +422091,7 @@
}
}
},
+ "description": "Incident Team Payload.",
"required": true
},
"responses": {
@@ -397953,69 +422099,63 @@
"content": {
"application/json": {
"schema": {
- "description": "Team membership response",
+ "description": "Response with an incident team payload.",
"properties": {
"data": {
- "description": "A user's relationship with a team",
+ "description": "Incident Team data from a response.",
"properties": {
"attributes": {
- "description": "Team membership attributes",
+ "description": "The incident team's attributes from a response.",
"properties": {
- "provisioned_by": {
- "description": "The mechanism responsible for provisioning the team relationship.\nPossible values: null for added by a user, \"service_account\" if added by a service account, and \"saml_mapping\" if provisioned via SAML mapping.",
- "nullable": true,
+ "created": {
+ "description": "Timestamp of when the incident team was created.",
+ "format": "date-time",
"readOnly": true,
"type": "string"
},
- "provisioned_by_id": {
- "description": "UUID of the User or Service Account who provisioned this team membership, or null if provisioned via SAML mapping.",
- "nullable": true,
+ "modified": {
+ "description": "Timestamp of when the incident team was modified.",
+ "format": "date-time",
"readOnly": true,
"type": "string"
},
- "role": {
- "description": "The user's role within the team",
- "enum": [
- "admin"
- ],
- "nullable": true,
- "type": "string",
- "x-enum-varnames": [
- "ADMIN"
- ]
+ "name": {
+ "description": "Name of the incident team.",
+ "example": "team name",
+ "type": "string"
}
},
"type": "object"
},
"id": {
- "description": "The ID of a user's relationship with a team",
- "example": "TeamMembership-aeadc05e-98a8-11ec-ac2c-da7ad0900001-38835",
+ "description": "The incident team's ID.",
+ "example": "00000000-7ea3-0000-000a-000000000000",
"type": "string"
},
"relationships": {
- "description": "Relationship between membership and a user",
+ "description": "The incident team's relationships.",
"properties": {
- "team": {
- "description": "Relationship between team membership and team",
+ "created_by": {
+ "description": "Relationship to user.",
"properties": {
"data": {
- "description": "The team associated with the membership",
+ "description": "Relationship to user object.",
"properties": {
"id": {
- "description": "The ID of the team associated with the membership",
- "example": "d7e15d9d-d346-43da-81d8-3d9e71d9a5e9",
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
"type": "string"
},
"type": {
- "default": "team",
- "description": "User team team type",
+ "default": "users",
+ "description": "Users resource type.",
"enum": [
- "team"
+ "users"
],
- "example": "team",
+ "example": "users",
"type": "string",
"x-enum-varnames": [
- "TEAM"
+ "USERS"
]
}
},
@@ -398023,7 +422163,10 @@
"id",
"type"
],
- "type": "object"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
"required": [
@@ -398031,20 +422174,20 @@
],
"type": "object"
},
- "user": {
- "description": "Relationship between team membership and user",
+ "last_modified_by": {
+ "description": "Relationship to user.",
"properties": {
"data": {
- "description": "A user's relationship with a team",
+ "description": "Relationship to user object.",
"properties": {
"id": {
- "description": "The ID of the user associated with the team",
- "example": "b8626d7e-cedd-11eb-abf5-da7ad0900001",
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
"type": "string"
},
"type": {
"default": "users",
- "description": "User team user type",
+ "description": "Users resource type.",
"enum": [
"users"
],
@@ -398071,34 +422214,28 @@
"type": "object"
}
},
+ "readOnly": true,
"type": "object"
},
"type": {
- "default": "team_memberships",
- "description": "Team membership type",
+ "default": "teams",
+ "description": "Incident Team resource type.",
"enum": [
- "team_memberships"
+ "teams"
],
- "example": "team_memberships",
+ "example": "teams",
"type": "string",
"x-enum-varnames": [
- "TEAM_MEMBERSHIPS"
+ "TEAMS"
]
}
},
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "object"
},
"included": {
- "description": "Resources related to the team memberships",
+ "description": "Included objects from relationships.",
"items": {
- "description": "Included resources related to the team membership",
+ "description": "An object related to an incident team which is present in the included payload.",
"oneOf": [
{
"description": "User object returned by the API.",
@@ -398352,234 +422489,779 @@
"x-merge-override": {
"required": false
}
- },
- {
- "description": "A team",
+ }
+ ]
+ },
+ "readOnly": true,
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "OK"
+ },
+ "400": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Bad Request"
+ },
+ "401": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Unauthorized"
+ },
+ "403": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Forbidden"
+ },
+ "404": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Not Found"
+ },
+ "429": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Too many requests"
+ }
+ },
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
+ },
+ {
+ "AuthZ": [
+ "incident_settings_write"
+ ]
+ }
+ ],
+ "summary": "Update an existing incident team",
+ "tags": [
+ "Incident Teams"
+ ],
+ "x-codegen-request-body-name": "body",
+ "x-menu-order": 3,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "incident_settings_write"
+ ]
+ },
+ "x-undo": {
+ "type": "idempotent"
+ },
+ "x-unstable": "**Note**: This endpoint is deprecated. See the [Teams API endpoints](https://docs.datadoghq.com/api/latest/teams/)."
+ }
+ },
+ "/api/v2/usage/application_security": {
+ "get": {
+ "deprecated": true,
+ "description": "Get hourly usage for application security .\n**Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family)",
+ "operationId": "GetUsageApplicationSecurityMonitoring",
+ "parameters": [
+ {
+ "description": "Datetime in ISO-8601 format, UTC, precise to hour: `[YYYY-MM-DDThh]` for usage beginning at this hour.",
+ "in": "query",
+ "name": "start_hr",
+ "required": true,
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ },
+ {
+ "description": "Datetime in ISO-8601 format, UTC, precise to hour: `[YYYY-MM-DDThh]` for usage ending\n**before** this hour.",
+ "in": "query",
+ "name": "end_hr",
+ "required": false,
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json;datetime-format=rfc3339": {
+ "schema": {
+ "description": "Application Security Monitoring usage response.",
+ "properties": {
+ "data": {
+ "description": "Response containing Application Security Monitoring usage.",
+ "items": {
+ "description": "Usage data.",
+ "properties": {
+ "attributes": {
+ "description": "Usage attributes data.",
"properties": {
- "attributes": {
- "description": "Team attributes",
- "properties": {
- "avatar": {
- "description": "Unicode representation of the avatar for the team, limited to a single grapheme",
- "example": "🥑",
- "nullable": true,
- "type": "string"
- },
- "banner": {
- "description": "Banner selection for the team",
- "format": "int64",
- "nullable": true,
- "type": "integer"
- },
- "created_at": {
- "description": "Creation date of the team",
- "format": "date-time",
- "type": "string"
- },
- "description": {
- "description": "Free-form markdown description/content for the team's homepage",
- "nullable": true,
- "type": "string"
- },
- "handle": {
- "description": "The team's identifier",
- "example": "example-team",
- "maxLength": 195,
- "type": "string"
- },
- "hidden_modules": {
- "description": "Collection of hidden modules for the team",
- "items": {
- "description": "String identifier of the module",
- "type": "string"
- },
- "type": "array"
- },
- "link_count": {
- "description": "The number of links belonging to the team",
- "format": "int32",
- "maximum": 2147483647,
- "readOnly": true,
- "type": "integer"
- },
- "modified_at": {
- "description": "Modification date of the team",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "The name of the team",
- "example": "Example Team",
- "maxLength": 200,
- "type": "string"
- },
- "summary": {
- "description": "A brief summary of the team, derived from the `description`",
- "maxLength": 120,
- "nullable": true,
- "type": "string"
- },
- "user_count": {
- "description": "The number of users belonging to the team",
- "format": "int32",
- "maximum": 2147483647,
- "readOnly": true,
- "type": "integer"
- },
- "visible_modules": {
- "description": "Collection of visible modules for the team",
- "items": {
- "description": "String identifier of the module",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "handle",
- "name"
- ],
- "type": "object"
+ "org_name": {
+ "description": "The organization name.",
+ "type": "string"
},
- "id": {
- "description": "The team's identifier",
- "example": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
+ "product_family": {
+ "description": "The product for which usage is being reported.",
"type": "string"
},
- "relationships": {
- "description": "Resources related to a team",
- "properties": {
- "team_links": {
- "description": "Relationship between a team and a team link",
- "properties": {
- "data": {
- "description": "Related team links",
- "items": {
- "description": "Relationship between a link and a team",
- "properties": {
- "id": {
- "description": "The team link's identifier",
- "example": "f9bb8444-af7f-11ec-ac2c-da7ad0900001",
- "type": "string"
- },
- "type": {
- "default": "team_links",
- "description": "Team link type",
- "enum": [
- "team_links"
- ],
- "example": "team_links",
- "type": "string",
- "x-enum-varnames": [
- "TEAM_LINKS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- },
- "links": {
- "description": "Links attributes.",
- "properties": {
- "related": {
- "description": "Related link.",
- "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
- "type": "string"
- }
- },
- "type": "object"
- }
+ "public_id": {
+ "description": "The organization public ID.",
+ "type": "string"
+ },
+ "region": {
+ "description": "The region of the Datadog instance that the organization belongs to.",
+ "type": "string"
+ },
+ "timeseries": {
+ "description": "List of usage data reported for each requested hour.",
+ "items": {
+ "description": "Usage timeseries data.",
+ "properties": {
+ "timestamp": {
+ "description": "Datetime in ISO-8601 format, UTC. The hour for the usage.",
+ "format": "date-time",
+ "type": "string"
},
- "type": "object",
- "x-merge-override": {
- "required": false
+ "value": {
+ "description": "Contains the number measured for the given usage_type during the hour.",
+ "format": "int64",
+ "nullable": true,
+ "type": "integer"
}
},
- "user_team_permissions": {
- "description": "Relationship between a user team permission and a team",
- "properties": {
- "data": {
- "description": "Related user team permission data",
- "properties": {
- "id": {
- "description": "The ID of the user team permission",
- "example": "UserTeamPermissions-aeadc05e-98a8-11ec-ac2c-da7ad0900001-416595",
- "type": "string"
- },
- "type": {
- "default": "user_team_permissions",
- "description": "User team permission type",
- "enum": [
- "user_team_permissions"
- ],
- "example": "user_team_permissions",
- "type": "string",
- "x-enum-varnames": [
- "USER_TEAM_PERMISSIONS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "links": {
- "description": "Links attributes.",
- "properties": {
- "related": {
- "description": "Related link.",
- "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
+ "type": "object"
},
- "type": "object"
+ "type": "array"
},
- "type": {
- "default": "team",
- "description": "Team type",
+ "usage_type": {
+ "description": "Usage type that is being measured.",
"enum": [
- "team"
+ "app_sec_host_count",
+ "observability_pipelines_bytes_processed",
+ "lambda_traced_invocations_count"
],
- "example": "team",
+ "example": "observability_pipelines_bytes_processed",
"type": "string",
"x-enum-varnames": [
- "TEAM"
+ "APP_SEC_HOST_COUNT",
+ "OBSERVABILITY_PIPELINES_BYTES_PROCESSSED",
+ "LAMBDA_TRACED_INVOCATIONS_COUNT"
]
}
},
- "required": [
- "attributes",
- "id",
- "type"
+ "type": "object"
+ },
+ "id": {
+ "description": "Unique ID of the response.",
+ "type": "string"
+ },
+ "type": {
+ "default": "usage_timeseries",
+ "description": "Type of usage data.",
+ "enum": [
+ "usage_timeseries"
+ ],
+ "example": "usage_timeseries",
+ "type": "string",
+ "x-enum-varnames": [
+ "USAGE_TIMESERIES"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "OK"
+ },
+ "400": {
+ "content": {
+ "application/json;datetime-format=rfc3339": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Bad Request"
+ },
+ "403": {
+ "content": {
+ "application/json;datetime-format=rfc3339": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Forbidden - User is not authorized"
+ },
+ "429": {
+ "content": {
+ "application/json;datetime-format=rfc3339": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Too many requests"
+ }
+ },
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
+ },
+ {
+ "AuthZ": [
+ "usage_read"
+ ]
+ }
+ ],
+ "summary": "Get hourly usage for application security",
+ "tags": [
+ "Usage Metering"
+ ],
+ "x-menu-order": 38,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "usage_read"
+ ]
+ },
+ "x-undo": {
+ "type": "safe"
+ }
+ }
+ },
+ "/api/v2/usage/billing_dimension_mapping": {
+ "get": {
+ "description": "Get a mapping of billing dimensions to the corresponding keys for the supported usage metering public API endpoints.\nMapping data is updated on a monthly cadence.\n\nThis endpoint is only accessible to [parent-level organizations](https://docs.datadoghq.com/account_management/multi_organization/).",
+ "operationId": "GetBillingDimensionMapping",
+ "parameters": [
+ {
+ "description": "Datetime in ISO-8601 format, UTC, and for mappings beginning this month. Defaults to the current month.",
+ "in": "query",
+ "name": "filter[month]",
+ "required": false,
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ },
+ {
+ "description": "String to specify whether to retrieve active billing dimension mappings for the contract or for all available mappings. Allowed views have the string `active` or `all`. Defaults to `active`.",
+ "in": "query",
+ "name": "filter[view]",
+ "required": false,
+ "schema": {
+ "default": "active",
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json;datetime-format=rfc3339": {
+ "schema": {
+ "description": "Billing dimensions mapping response.",
+ "properties": {
+ "data": {
+ "description": "Billing dimensions mapping data.",
+ "items": {
+ "description": "The mapping data for each billing dimension.",
+ "properties": {
+ "attributes": {
+ "description": "Mapping of billing dimensions to endpoint keys.",
+ "properties": {
+ "endpoints": {
+ "description": "List of supported endpoints with their keys mapped to the billing_dimension.",
+ "items": {
+ "description": "An endpoint's keys mapped to the billing_dimension.",
+ "properties": {
+ "id": {
+ "description": "The URL for the endpoint.",
+ "example": "api/v1/usage/billable-summary",
+ "type": "string"
+ },
+ "keys": {
+ "description": "The billing dimension.",
+ "example": [
+ "apm_host_top99p",
+ "apm_host_sum"
+ ],
+ "items": {
+ "example": "apm_host_top99p",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "status": {
+ "description": "Denotes whether mapping keys were available for this endpoint.",
+ "enum": [
+ "OK",
+ "NOT_FOUND"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "OK",
+ "NOT_FOUND"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "in_app_label": {
+ "description": "Label used for the billing dimension in the Plan & Usage charts.",
+ "example": "APM Hosts",
+ "type": "string"
+ },
+ "timestamp": {
+ "description": "Month in ISO-8601 format, UTC, and precise to the second: `[YYYY-MM-DDThh:mm:ss]`.",
+ "format": "date-time",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the billing dimension.",
+ "type": "string"
+ },
+ "type": {
+ "default": "billing_dimensions",
+ "description": "Type of active billing dimensions data.",
+ "enum": [
+ "billing_dimensions"
+ ],
+ "type": "string",
+ "x-enum-varnames": [
+ "BILLING_DIMENSIONS"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "OK"
+ },
+ "400": {
+ "content": {
+ "application/json;datetime-format=rfc3339": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Bad Request"
+ },
+ "403": {
+ "content": {
+ "application/json;datetime-format=rfc3339": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Forbidden - User is not authorized"
+ },
+ "429": {
+ "content": {
+ "application/json;datetime-format=rfc3339": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Too many requests"
+ }
+ },
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
+ },
+ {
+ "AuthZ": [
+ "usage_read"
+ ]
+ }
+ ],
+ "summary": "Get billing dimension mapping for usage endpoints",
+ "tags": [
+ "Usage Metering"
+ ],
+ "x-menu-order": 1,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "usage_read"
+ ]
+ },
+ "x-undo": {
+ "type": "safe"
+ }
+ }
+ },
+ "/api/v2/usage/cost_by_org": {
+ "get": {
+ "deprecated": true,
+ "description": "Get cost across multi-org account.\nCost by org data for a given month becomes available no later than the 16th of the following month.\n**Note:** This endpoint has been deprecated. Please use the new endpoint\n[`/historical_cost`](https://docs.datadoghq.com/api/latest/usage-metering/#get-historical-cost-across-your-account)\ninstead.\n\nThis endpoint is only accessible for [parent-level organizations](https://docs.datadoghq.com/account_management/multi_organization/).",
+ "operationId": "GetCostByOrg",
+ "parameters": [
+ {
+ "description": "Datetime in ISO-8601 format, UTC, precise to month: `[YYYY-MM]` for cost beginning this month.",
+ "in": "query",
+ "name": "start_month",
+ "required": true,
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ },
+ {
+ "description": "Datetime in ISO-8601 format, UTC, precise to month: `[YYYY-MM]` for cost ending this month.",
+ "in": "query",
+ "name": "end_month",
+ "required": false,
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json;datetime-format=rfc3339": {
+ "schema": {
+ "description": "Chargeback Summary response.",
+ "properties": {
+ "data": {
+ "description": "Response containing Chargeback Summary.",
+ "items": {
+ "description": "Cost data.",
+ "properties": {
+ "attributes": {
+ "description": "Cost attributes data.",
+ "properties": {
+ "account_name": {
+ "description": "The account name.",
+ "type": "string"
+ },
+ "account_public_id": {
+ "description": "The account public ID.",
+ "type": "string"
+ },
+ "charges": {
+ "description": "List of charges data reported for the requested month.",
+ "items": {
+ "description": "Charges breakdown.",
+ "properties": {
+ "charge_type": {
+ "description": "The type of charge for a particular product.",
+ "example": "on_demand",
+ "type": "string"
+ },
+ "cost": {
+ "description": "The cost for a particular product and charge type during a given month.",
+ "format": "double",
+ "type": "number"
+ },
+ "product_name": {
+ "description": "The product for which cost is being reported.",
+ "example": "infra_host",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "date": {
+ "description": "The month requested.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "org_name": {
+ "description": "The organization name.",
+ "type": "string"
+ },
+ "public_id": {
+ "description": "The organization public ID.",
+ "type": "string"
+ },
+ "region": {
+ "description": "The region of the Datadog instance that the organization belongs to.",
+ "type": "string"
+ },
+ "total_cost": {
+ "description": "The total cost of products for the month.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "Unique ID of the response.",
+ "type": "string"
+ },
+ "type": {
+ "default": "cost_by_org",
+ "description": "Type of cost data.",
+ "enum": [
+ "cost_by_org"
],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "example": "cost_by_org",
+ "type": "string",
+ "x-enum-varnames": [
+ "COST_BY_ORG"
+ ]
}
- ]
+ },
+ "type": "object"
},
"type": "array"
}
@@ -398588,11 +423270,11 @@
}
}
},
- "description": "Represents a user's association to a team"
+ "description": "OK"
},
- "403": {
+ "400": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
"description": "API error response.",
"properties": {
@@ -398616,11 +423298,11 @@
}
}
},
- "description": "Forbidden"
+ "description": "Bad Request"
},
- "404": {
+ "403": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
"description": "API error response.",
"properties": {
@@ -398644,11 +423326,11 @@
}
}
},
- "description": "API error response."
+ "description": "Forbidden - User is not authorized"
},
"429": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
"description": "API error response.",
"properties": {
@@ -398682,153 +423364,182 @@
},
{
"AuthZ": [
- "teams_read"
+ "usage_read"
]
}
],
- "summary": "Update a user's membership attributes on a team",
+ "summary": "Get cost across multi-org account",
"tags": [
- "Teams"
+ "Usage Metering"
],
- "x-codegen-request-body-name": "body",
- "x-menu-order": 9,
+ "x-menu-order": 45,
"x-permission": {
"operator": "OR",
"permissions": [
- "teams_read"
+ "usage_read"
]
},
"x-undo": {
- "type": "idempotent"
+ "type": "safe"
}
- },
- "x-merge-override": {
- "delete": true
}
},
- "/api/v2/team/{team_id}/permission-settings": {
+ "/api/v2/usage/estimated_cost": {
"get": {
- "description": "Get all permission settings for a given team.",
- "operationId": "GetTeamPermissionSettings",
+ "description": "Get estimated cost across multi-org and single root-org accounts.\nEstimated cost data is only available for the current month and previous month\nand is delayed by up to 72 hours from when it was incurred.\nTo access historical costs prior to this, use the `/historical_cost` endpoint.\n\nThis endpoint is only accessible for [parent-level organizations](https://docs.datadoghq.com/account_management/multi_organization/).",
+ "operationId": "GetEstimatedCostByOrg",
"parameters": [
{
- "description": "None",
- "in": "path",
- "name": "team_id",
- "required": true,
+ "description": "String to specify whether cost is broken down at a parent-org level or at the sub-org level. Available views are `summary` and `sub-org`. Defaults to `summary`.",
+ "in": "query",
+ "name": "view",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "Datetime in ISO-8601 format, UTC, precise to month: `[YYYY-MM]` for cost beginning this month. **Either start_month or start_date should be specified, but not both.** (start_month cannot go beyond two months in the past). Provide an `end_month` to view month-over-month cost.",
+ "in": "query",
+ "name": "start_month",
+ "required": false,
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ },
+ {
+ "description": "Datetime in ISO-8601 format, UTC, precise to month: `[YYYY-MM]` for cost ending this month.",
+ "in": "query",
+ "name": "end_month",
+ "required": false,
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ },
+ {
+ "description": "Datetime in ISO-8601 format, UTC, precise to day: `[YYYY-MM-DD]` for cost beginning this day. **Either start_month or start_date should be specified, but not both.** (start_date cannot go beyond two months in the past). Provide an `end_date` to view day-over-day cumulative cost.",
+ "in": "query",
+ "name": "start_date",
+ "required": false,
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ },
+ {
+ "description": "Datetime in ISO-8601 format, UTC, precise to day: `[YYYY-MM-DD]` for cost ending this day.",
+ "in": "query",
+ "name": "end_date",
+ "required": false,
"schema": {
+ "format": "date-time",
"type": "string"
}
+ },
+ {
+ "description": "Boolean to specify whether to include accounts connected to the current account as partner customers in the Datadog partner network program. Defaults to `false`. ",
+ "in": "query",
+ "name": "include_connected_accounts",
+ "required": false,
+ "schema": {
+ "default": false,
+ "type": "boolean"
+ }
}
],
"responses": {
"200": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
- "description": "Team permission settings response",
+ "description": "Chargeback Summary response.",
"properties": {
"data": {
- "description": "Team permission settings response data",
+ "description": "Response containing Chargeback Summary.",
"items": {
- "description": "Team permission setting",
+ "description": "Cost data.",
"properties": {
"attributes": {
- "description": "Team permission setting attributes",
+ "description": "Cost attributes data.",
"properties": {
- "action": {
- "description": "The identifier for the action",
- "enum": [
- "manage_membership",
- "edit"
- ],
- "readOnly": true,
- "type": "string",
- "x-enum-varnames": [
- "MANAGE_MEMBERSHIP",
- "EDIT"
- ]
+ "account_name": {
+ "description": "The account name.",
+ "type": "string"
},
- "editable": {
- "description": "Whether or not the permission setting is editable by the current user",
- "readOnly": true,
- "type": "boolean"
+ "account_public_id": {
+ "description": "The account public ID.",
+ "type": "string"
},
- "options": {
- "description": "Possible values for action",
+ "charges": {
+ "description": "List of charges data reported for the requested month.",
"items": {
- "description": "What type of user is allowed to perform the specified action",
- "enum": [
- "admins",
- "members",
- "organization",
- "user_access_manage",
- "teams_manage"
- ],
- "type": "string",
- "x-enum-varnames": [
- "ADMINS",
- "MEMBERS",
- "ORGANIZATION",
- "USER_ACCESS_MANAGE",
- "TEAMS_MANAGE"
- ]
+ "description": "Charges breakdown.",
+ "properties": {
+ "charge_type": {
+ "description": "The type of charge for a particular product.",
+ "example": "on_demand",
+ "type": "string"
+ },
+ "cost": {
+ "description": "The cost for a particular product and charge type during a given month.",
+ "format": "double",
+ "type": "number"
+ },
+ "product_name": {
+ "description": "The product for which cost is being reported.",
+ "example": "infra_host",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
- "readOnly": true,
"type": "array"
},
- "title": {
- "description": "The team permission name",
- "readOnly": true,
+ "date": {
+ "description": "The month requested.",
+ "format": "date-time",
"type": "string"
},
- "value": {
- "description": "What type of user is allowed to perform the specified action",
- "enum": [
- "admins",
- "members",
- "organization",
- "user_access_manage",
- "teams_manage"
- ],
- "type": "string",
- "x-enum-varnames": [
- "ADMINS",
- "MEMBERS",
- "ORGANIZATION",
- "USER_ACCESS_MANAGE",
- "TEAMS_MANAGE"
- ]
+ "org_name": {
+ "description": "The organization name.",
+ "type": "string"
+ },
+ "public_id": {
+ "description": "The organization public ID.",
+ "type": "string"
+ },
+ "region": {
+ "description": "The region of the Datadog instance that the organization belongs to.",
+ "type": "string"
+ },
+ "total_cost": {
+ "description": "The total cost of products for the month.",
+ "format": "double",
+ "type": "number"
}
},
"type": "object"
},
"id": {
- "description": "The team permission setting's identifier",
- "example": "TeamPermission-aeadc05e-98a8-11ec-ac2c-da7ad0900001-edit",
+ "description": "Unique ID of the response.",
"type": "string"
},
"type": {
- "default": "team_permission_settings",
- "description": "Team permission setting type",
+ "default": "cost_by_org",
+ "description": "Type of cost data.",
"enum": [
- "team_permission_settings"
+ "cost_by_org"
],
- "example": "team_permission_settings",
+ "example": "cost_by_org",
"type": "string",
"x-enum-varnames": [
- "TEAM_PERMISSION_SETTINGS"
+ "COST_BY_ORG"
]
}
},
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "object"
},
"type": "array"
}
@@ -398839,9 +423550,9 @@
},
"description": "OK"
},
- "403": {
+ "400": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
"description": "API error response.",
"properties": {
@@ -398865,11 +423576,11 @@
}
}
},
- "description": "Forbidden"
+ "description": "Bad Request"
},
- "404": {
+ "403": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
"description": "API error response.",
"properties": {
@@ -398893,11 +423604,11 @@
}
}
},
- "description": "API error response."
+ "description": "Forbidden - User is not authorized"
},
"429": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
"description": "API error response.",
"properties": {
@@ -398931,19 +423642,19 @@
},
{
"AuthZ": [
- "teams_read"
+ "usage_read"
]
}
],
- "summary": "Get permission settings for a team",
+ "summary": "Get estimated cost across your account",
"tags": [
- "Teams"
+ "Usage Metering"
],
- "x-menu-order": 17,
+ "x-menu-order": 6,
"x-permission": {
"operator": "OR",
"permissions": [
- "teams_read"
+ "usage_read"
]
},
"x-undo": {
@@ -398951,197 +423662,144 @@
}
}
},
- "/api/v2/team/{team_id}/permission-settings/{action}": {
- "put": {
- "description": "Update a team permission setting for a given team.",
- "operationId": "UpdateTeamPermissionSetting",
+ "/api/v2/usage/historical_cost": {
+ "get": {
+ "description": "Get historical cost across multi-org and single root-org accounts.\nCost data for a given month becomes available no later than the 16th of the following month.\n\nThis endpoint is only accessible for [parent-level organizations](https://docs.datadoghq.com/account_management/multi_organization/).",
+ "operationId": "GetHistoricalCostByOrg",
"parameters": [
{
- "description": "None",
- "in": "path",
- "name": "team_id",
- "required": true,
+ "description": "String to specify whether cost is broken down at a parent-org level or at the sub-org level. Available views are `summary` and `sub-org`. Defaults to `summary`.",
+ "in": "query",
+ "name": "view",
+ "required": false,
"schema": {
"type": "string"
}
},
{
- "description": "None",
- "in": "path",
- "name": "action",
+ "description": "Datetime in ISO-8601 format, UTC, precise to month: `[YYYY-MM]` for cost beginning this month.",
+ "in": "query",
+ "name": "start_month",
"required": true,
"schema": {
+ "format": "date-time",
"type": "string"
}
- }
- ],
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Team permission setting update request",
- "properties": {
- "data": {
- "description": "Team permission setting update",
- "properties": {
- "attributes": {
- "description": "Team permission setting update attributes",
- "properties": {
- "value": {
- "description": "What type of user is allowed to perform the specified action",
- "enum": [
- "admins",
- "members",
- "organization",
- "user_access_manage",
- "teams_manage"
- ],
- "type": "string",
- "x-enum-varnames": [
- "ADMINS",
- "MEMBERS",
- "ORGANIZATION",
- "USER_ACCESS_MANAGE",
- "TEAMS_MANAGE"
- ]
- }
- },
- "type": "object"
- },
- "type": {
- "default": "team_permission_settings",
- "description": "Team permission setting type",
- "enum": [
- "team_permission_settings"
- ],
- "example": "team_permission_settings",
- "type": "string",
- "x-enum-varnames": [
- "TEAM_PERMISSION_SETTINGS"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- }
+ },
+ {
+ "description": "Datetime in ISO-8601 format, UTC, precise to month: `[YYYY-MM]` for cost ending this month.",
+ "in": "query",
+ "name": "end_month",
+ "required": false,
+ "schema": {
+ "format": "date-time",
+ "type": "string"
}
},
- "required": true
- },
+ {
+ "description": "Boolean to specify whether to include accounts connected to the current account as partner customers in the Datadog partner network program. Defaults to `false`. ",
+ "in": "query",
+ "name": "include_connected_accounts",
+ "required": false,
+ "schema": {
+ "default": false,
+ "type": "boolean"
+ }
+ }
+ ],
"responses": {
"200": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
- "description": "Team permission setting response",
+ "description": "Chargeback Summary response.",
"properties": {
"data": {
- "description": "Team permission setting",
- "properties": {
- "attributes": {
- "description": "Team permission setting attributes",
- "properties": {
- "action": {
- "description": "The identifier for the action",
- "enum": [
- "manage_membership",
- "edit"
- ],
- "readOnly": true,
- "type": "string",
- "x-enum-varnames": [
- "MANAGE_MEMBERSHIP",
- "EDIT"
- ]
- },
- "editable": {
- "description": "Whether or not the permission setting is editable by the current user",
- "readOnly": true,
- "type": "boolean"
- },
- "options": {
- "description": "Possible values for action",
- "items": {
- "description": "What type of user is allowed to perform the specified action",
- "enum": [
- "admins",
- "members",
- "organization",
- "user_access_manage",
- "teams_manage"
- ],
- "type": "string",
- "x-enum-varnames": [
- "ADMINS",
- "MEMBERS",
- "ORGANIZATION",
- "USER_ACCESS_MANAGE",
- "TEAMS_MANAGE"
- ]
+ "description": "Response containing Chargeback Summary.",
+ "items": {
+ "description": "Cost data.",
+ "properties": {
+ "attributes": {
+ "description": "Cost attributes data.",
+ "properties": {
+ "account_name": {
+ "description": "The account name.",
+ "type": "string"
},
- "readOnly": true,
- "type": "array"
- },
- "title": {
- "description": "The team permission name",
- "readOnly": true,
- "type": "string"
+ "account_public_id": {
+ "description": "The account public ID.",
+ "type": "string"
+ },
+ "charges": {
+ "description": "List of charges data reported for the requested month.",
+ "items": {
+ "description": "Charges breakdown.",
+ "properties": {
+ "charge_type": {
+ "description": "The type of charge for a particular product.",
+ "example": "on_demand",
+ "type": "string"
+ },
+ "cost": {
+ "description": "The cost for a particular product and charge type during a given month.",
+ "format": "double",
+ "type": "number"
+ },
+ "product_name": {
+ "description": "The product for which cost is being reported.",
+ "example": "infra_host",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "date": {
+ "description": "The month requested.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "org_name": {
+ "description": "The organization name.",
+ "type": "string"
+ },
+ "public_id": {
+ "description": "The organization public ID.",
+ "type": "string"
+ },
+ "region": {
+ "description": "The region of the Datadog instance that the organization belongs to.",
+ "type": "string"
+ },
+ "total_cost": {
+ "description": "The total cost of products for the month.",
+ "format": "double",
+ "type": "number"
+ }
},
- "value": {
- "description": "What type of user is allowed to perform the specified action",
- "enum": [
- "admins",
- "members",
- "organization",
- "user_access_manage",
- "teams_manage"
- ],
- "type": "string",
- "x-enum-varnames": [
- "ADMINS",
- "MEMBERS",
- "ORGANIZATION",
- "USER_ACCESS_MANAGE",
- "TEAMS_MANAGE"
- ]
- }
+ "type": "object"
},
- "type": "object"
- },
- "id": {
- "description": "The team permission setting's identifier",
- "example": "TeamPermission-aeadc05e-98a8-11ec-ac2c-da7ad0900001-edit",
- "type": "string"
+ "id": {
+ "description": "Unique ID of the response.",
+ "type": "string"
+ },
+ "type": {
+ "default": "cost_by_org",
+ "description": "Type of cost data.",
+ "enum": [
+ "cost_by_org"
+ ],
+ "example": "cost_by_org",
+ "type": "string",
+ "x-enum-varnames": [
+ "COST_BY_ORG"
+ ]
+ }
},
- "type": {
- "default": "team_permission_settings",
- "description": "Team permission setting type",
- "enum": [
- "team_permission_settings"
- ],
- "example": "team_permission_settings",
- "type": "string",
- "x-enum-varnames": [
- "TEAM_PERMISSION_SETTINGS"
- ]
- }
+ "type": "object"
},
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "array"
}
},
"type": "object"
@@ -399150,9 +423808,9 @@
},
"description": "OK"
},
- "403": {
+ "400": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
"description": "API error response.",
"properties": {
@@ -399176,11 +423834,11 @@
}
}
},
- "description": "Forbidden"
+ "description": "Bad Request"
},
- "404": {
+ "403": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
"description": "API error response.",
"properties": {
@@ -399204,11 +423862,11 @@
}
}
},
- "description": "API error response."
+ "description": "Forbidden - User is not authorized"
},
"429": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
"description": "API error response.",
"properties": {
@@ -399242,535 +423900,228 @@
},
{
"AuthZ": [
- "teams_read"
+ "usage_read"
]
}
],
- "summary": "Update permission setting for team",
+ "summary": "Get historical cost across your account",
"tags": [
- "Teams"
+ "Usage Metering"
],
- "x-codegen-request-body-name": "body",
- "x-menu-order": 18,
+ "x-menu-order": 5,
"x-permission": {
"operator": "OR",
"permissions": [
- "teams_read"
+ "usage_read"
]
},
"x-undo": {
- "type": "idempotent"
+ "type": "safe"
}
}
- },
- "/api/v2/teams": {
- "get": {
- "deprecated": true,
- "description": "Get all incident teams for the requesting user's organization. If the `include[users]` query parameter is provided, the included attribute will contain the users related to these incident teams.",
- "operationId": "ListIncidentTeams",
- "parameters": [
- {
- "description": "Specifies which types of related objects should be included in the response.",
- "in": "query",
- "name": "include",
- "required": false,
- "schema": {
- "description": "Object related to an incident.",
- "enum": [
- "users",
- "attachments"
- ],
- "type": "string",
- "x-enum-varnames": [
- "USERS",
- "ATTACHMENTS"
- ]
- }
- },
- {
- "description": "Size for a given page. The maximum allowed value is 100.",
- "in": "query",
- "name": "page[size]",
- "required": false,
- "schema": {
- "default": 10,
- "example": 10,
- "format": "int64",
- "type": "integer"
- }
- },
- {
- "description": "Specific offset to use as the beginning of the returned page.",
- "in": "query",
- "name": "page[offset]",
- "required": false,
- "schema": {
- "default": 0,
- "example": 0,
- "format": "int64",
- "type": "integer"
- }
- },
- {
- "description": "A search query that filters teams by name.",
- "in": "query",
- "name": "filter",
- "required": false,
- "schema": {
- "example": "ExampleTeamName",
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Response with a list of incident team payloads.",
- "properties": {
- "data": {
- "description": "An array of incident teams.",
- "example": [
- {
- "attributes": {
- "name": "team name"
- },
- "id": "00000000-7ea3-0000-0000-000000000000",
- "type": "teams"
- }
- ],
- "items": {
- "description": "Incident Team data from a response.",
- "properties": {
- "attributes": {
- "description": "The incident team's attributes from a response.",
- "properties": {
- "created": {
- "description": "Timestamp of when the incident team was created.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified": {
- "description": "Timestamp of when the incident team was modified.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "name": {
- "description": "Name of the incident team.",
- "example": "team name",
- "type": "string"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "The incident team's ID.",
- "example": "00000000-7ea3-0000-000a-000000000000",
- "type": "string"
- },
- "relationships": {
- "description": "The incident team's relationships.",
- "properties": {
- "created_by": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "last_modified_by": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- }
- },
- "readOnly": true,
- "type": "object"
- },
- "type": {
- "default": "teams",
- "description": "Incident Team resource type.",
- "enum": [
- "teams"
- ],
- "example": "teams",
- "type": "string",
- "x-enum-varnames": [
- "TEAMS"
- ]
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "included": {
- "description": "Included related resources which the user requested.",
- "items": {
- "description": "An object related to an incident team which is present in the included payload.",
- "oneOf": [
- {
- "description": "User object returned by the API.",
- "properties": {
- "attributes": {
- "description": "Attributes of user object returned by the API.",
- "properties": {
- "created_at": {
- "description": "Creation time of the user.",
- "format": "date-time",
- "type": "string"
- },
- "disabled": {
- "description": "Whether the user is disabled.",
- "type": "boolean"
- },
- "email": {
- "description": "Email of the user.",
- "type": "string"
- },
- "handle": {
- "description": "Handle of the user.",
- "type": "string"
- },
- "icon": {
- "description": "URL of the user's icon.",
- "type": "string"
- },
- "mfa_enabled": {
- "description": "If user has MFA enabled.",
- "readOnly": true,
- "type": "boolean"
- },
- "modified_at": {
- "description": "Time that the user was last modified.",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "Name of the user.",
- "nullable": true,
- "type": "string"
- },
- "service_account": {
- "description": "Whether the user is a service account.",
- "type": "boolean"
- },
- "status": {
- "description": "Status of the user.",
- "type": "string"
- },
- "title": {
- "description": "Title of the user.",
- "nullable": true,
- "type": "string"
- },
- "verified": {
- "description": "Whether the user is verified.",
- "type": "boolean"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "ID of the user.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the user object returned by the API.",
- "properties": {
- "org": {
- "description": "Relationship to an organization.",
- "properties": {
- "data": {
- "description": "Relationship to organization object.",
- "properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
- "type": "string"
- },
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "other_orgs": {
- "description": "Relationship to organizations.",
- "properties": {
- "data": {
- "description": "Relationships to organization objects.",
- "example": [],
- "items": {
- "description": "Relationship to organization object.",
- "properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
- "type": "string"
- },
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- },
- "type": "array"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "other_users": {
- "description": "Relationship to users.",
- "properties": {
- "data": {
- "description": "Relationships to user objects.",
- "example": [],
- "items": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "roles": {
- "description": "Relationship to roles.",
- "properties": {
- "data": {
- "description": "An array containing type and the unique identifier of a role.",
- "items": {
- "description": "Relationship to role object.",
- "properties": {
- "id": {
- "description": "The unique identifier of the role.",
- "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
- "type": "string"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
+ },
+ "/api/v2/usage/hourly_usage": {
+ "get": {
+ "description": "Get hourly usage by product family.",
+ "operationId": "GetHourlyUsage",
+ "parameters": [
+ {
+ "description": "Datetime in ISO-8601 format, UTC, precise to hour: [YYYY-MM-DDThh] for usage beginning at this hour.",
+ "in": "query",
+ "name": "filter[timestamp][start]",
+ "required": true,
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ },
+ {
+ "description": "Datetime in ISO-8601 format, UTC, precise to hour: [YYYY-MM-DDThh] for usage ending **before** this hour.",
+ "in": "query",
+ "name": "filter[timestamp][end]",
+ "required": false,
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ },
+ {
+ "description": "Comma separated list of product families to retrieve. Available families are `all`, `analyzed_logs`,\n`application_security`, `audit_trail`, `serverless`, `ci_app`, `cloud_cost_management`, `cloud_siem`,\n`csm_container_enterprise`, `csm_host_enterprise`, `cspm`, `custom_events`, `cws`, `dbm`, `error_tracking`,\n`fargate`, `infra_hosts`, `incident_management`, `indexed_logs`, `indexed_spans`, `ingested_spans`, `iot`,\n`lambda_traced_invocations`, `logs`, `network_flows`, `network_hosts`, `network_monitoring`, `observability_pipelines`,\n`online_archive`, `profiling`, `rum`, `rum_browser_sessions`, `rum_mobile_sessions`, `sds`, `snmp`, `software_delivery`,\n`synthetics_api`, `synthetics_browser`, `synthetics_mobile`, `synthetics_parallel_testing`, `timeseries`, `vuln_management`,\nand `workflow_executions`.\nThe following product family has been **deprecated**: `audit_logs`.",
+ "in": "query",
+ "name": "filter[product_families]",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "Include child org usage in the response. Defaults to false.",
+ "in": "query",
+ "name": "filter[include_descendants]",
+ "required": false,
+ "schema": {
+ "default": false,
+ "type": "boolean"
+ }
+ },
+ {
+ "description": "Boolean to specify whether to include accounts connected to the current account as partner customers in the Datadog partner network program. Defaults to false.",
+ "in": "query",
+ "name": "filter[include_connected_accounts]",
+ "required": false,
+ "schema": {
+ "default": false,
+ "type": "boolean"
+ }
+ },
+ {
+ "description": "Include breakdown of usage by subcategories where applicable (for product family logs only). Defaults to false.",
+ "in": "query",
+ "name": "filter[include_breakdown]",
+ "required": false,
+ "schema": {
+ "default": false,
+ "type": "boolean"
+ }
+ },
+ {
+ "description": "Comma separated list of product family versions to use in the format `product_family:version`. For example,\n`infra_hosts:1.0.0`. If this parameter is not used, the API will use the latest version of each requested\nproduct family. Currently all families have one version `1.0.0`.",
+ "in": "query",
+ "name": "filter[versions]",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "Maximum number of results to return (between 1 and 500) - defaults to 500 if limit not specified.",
+ "in": "query",
+ "name": "page[limit]",
+ "required": false,
+ "schema": {
+ "default": 500,
+ "format": "int32",
+ "maximum": 500,
+ "minimum": 1,
+ "type": "integer"
+ }
+ },
+ {
+ "description": "List following results with a next_record_id provided in the previous query.",
+ "in": "query",
+ "name": "page[next_record_id]",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json;datetime-format=rfc3339": {
+ "schema": {
+ "description": "Hourly usage response.",
+ "properties": {
+ "data": {
+ "description": "Response containing hourly usage.",
+ "items": {
+ "description": "Hourly usage for a product family for an org.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of hourly usage for a product family for an org for a time period.",
+ "properties": {
+ "account_name": {
+ "description": "The account name.",
+ "type": "string"
+ },
+ "account_public_id": {
+ "description": "The account public ID.",
+ "type": "string"
+ },
+ "measurements": {
+ "description": "List of the measured usage values for the product family for the org for the time period.",
+ "items": {
+ "description": "Usage amount for a given usage type.",
+ "properties": {
+ "usage_type": {
+ "description": "Type of usage.",
+ "type": "string"
},
- "type": "object",
- "x-merge-override": {
- "required": false
+ "value": {
+ "description": "Contains the number measured for the given usage_type during the hour.",
+ "format": "int64",
+ "nullable": true,
+ "type": "integer"
}
- }
+ },
+ "type": "object"
},
- "type": "object",
- "x-merge-override": {
- "properties": false
- }
+ "type": "array"
},
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
+ "org_name": {
+ "description": "The organization name.",
+ "type": "string"
+ },
+ "product_family": {
+ "description": "The product for which usage is being reported.",
+ "type": "string"
+ },
+ "public_id": {
+ "description": "The organization public ID.",
+ "type": "string"
+ },
+ "region": {
+ "description": "The region of the Datadog instance that the organization belongs to.",
+ "type": "string"
+ },
+ "timestamp": {
+ "description": "Datetime in ISO-8601 format, UTC. The hour for the usage.",
+ "format": "date-time",
+ "type": "string"
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "object"
+ },
+ "id": {
+ "description": "Unique ID of the response.",
+ "type": "string"
+ },
+ "type": {
+ "default": "usage_timeseries",
+ "description": "Type of usage data.",
+ "enum": [
+ "usage_timeseries"
+ ],
+ "example": "usage_timeseries",
+ "type": "string",
+ "x-enum-varnames": [
+ "USAGE_TIMESERIES"
+ ]
}
- ]
+ },
+ "type": "object"
},
- "readOnly": true,
"type": "array"
},
"meta": {
- "description": "The metadata object containing pagination metadata.",
+ "description": "The object containing document metadata.",
"properties": {
"pagination": {
- "description": "Pagination properties.",
+ "description": "The metadata for the current pagination.",
"properties": {
- "next_offset": {
- "description": "The index of the first element in the next page of results. Equal to page size added to the current offset.",
- "example": 1000,
- "format": "int64",
- "type": "integer"
- },
- "offset": {
- "description": "The index of the first element in the results.",
- "example": 10,
- "format": "int64",
- "type": "integer"
- },
- "size": {
- "description": "Maximum size of pages to return.",
- "example": 1000,
- "format": "int64",
- "type": "integer"
+ "next_record_id": {
+ "description": "The cursor to get the next results (if any). To make the next request, use the same parameters and add `next_record_id`.",
+ "nullable": true,
+ "type": "string"
}
},
"type": "object"
}
},
- "readOnly": true,
"type": "object"
}
},
- "required": [
- "data"
- ],
"type": "object"
}
}
@@ -399779,7 +424130,7 @@
},
"400": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
"description": "API error response.",
"properties": {
@@ -399805,9 +424156,9 @@
},
"description": "Bad Request"
},
- "401": {
+ "403": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
"description": "API error response.",
"properties": {
@@ -399831,11 +424182,11 @@
}
}
},
- "description": "Unauthorized"
+ "description": "Forbidden - User is not authorized"
},
- "403": {
+ "429": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
"description": "API error response.",
"properties": {
@@ -399859,11 +424210,164 @@
}
}
},
- "description": "Forbidden"
+ "description": "Too many requests"
+ }
+ },
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
},
- "404": {
+ {
+ "AuthZ": [
+ "usage_read"
+ ]
+ }
+ ],
+ "summary": "Get hourly usage by product family",
+ "tags": [
+ "Usage Metering"
+ ],
+ "x-menu-order": 1,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "usage_read"
+ ]
+ },
+ "x-undo": {
+ "type": "safe"
+ }
+ }
+ },
+ "/api/v2/usage/lambda_traced_invocations": {
+ "get": {
+ "deprecated": true,
+ "description": "Get hourly usage for Lambda traced invocations.\n**Note:** This endpoint has been deprecated.. Hourly usage data for all products is now available in the [Get hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family)",
+ "operationId": "GetUsageLambdaTracedInvocations",
+ "parameters": [
+ {
+ "description": "Datetime in ISO-8601 format, UTC, precise to hour: `[YYYY-MM-DDThh]` for usage beginning at this hour.",
+ "in": "query",
+ "name": "start_hr",
+ "required": true,
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ },
+ {
+ "description": "Datetime in ISO-8601 format, UTC, precise to hour: `[YYYY-MM-DDThh]` for usage ending\n**before** this hour.",
+ "in": "query",
+ "name": "end_hr",
+ "required": false,
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
+ "schema": {
+ "description": "Lambda Traced Invocations usage response.",
+ "properties": {
+ "data": {
+ "description": "Response containing Lambda Traced Invocations usage.",
+ "items": {
+ "description": "Usage data.",
+ "properties": {
+ "attributes": {
+ "description": "Usage attributes data.",
+ "properties": {
+ "org_name": {
+ "description": "The organization name.",
+ "type": "string"
+ },
+ "product_family": {
+ "description": "The product for which usage is being reported.",
+ "type": "string"
+ },
+ "public_id": {
+ "description": "The organization public ID.",
+ "type": "string"
+ },
+ "region": {
+ "description": "The region of the Datadog instance that the organization belongs to.",
+ "type": "string"
+ },
+ "timeseries": {
+ "description": "List of usage data reported for each requested hour.",
+ "items": {
+ "description": "Usage timeseries data.",
+ "properties": {
+ "timestamp": {
+ "description": "Datetime in ISO-8601 format, UTC. The hour for the usage.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "value": {
+ "description": "Contains the number measured for the given usage_type during the hour.",
+ "format": "int64",
+ "nullable": true,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "usage_type": {
+ "description": "Usage type that is being measured.",
+ "enum": [
+ "app_sec_host_count",
+ "observability_pipelines_bytes_processed",
+ "lambda_traced_invocations_count"
+ ],
+ "example": "observability_pipelines_bytes_processed",
+ "type": "string",
+ "x-enum-varnames": [
+ "APP_SEC_HOST_COUNT",
+ "OBSERVABILITY_PIPELINES_BYTES_PROCESSSED",
+ "LAMBDA_TRACED_INVOCATIONS_COUNT"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "Unique ID of the response.",
+ "type": "string"
+ },
+ "type": {
+ "default": "usage_timeseries",
+ "description": "Type of usage data.",
+ "enum": [
+ "usage_timeseries"
+ ],
+ "example": "usage_timeseries",
+ "type": "string",
+ "x-enum-varnames": [
+ "USAGE_TIMESERIES"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "OK"
+ },
+ "400": {
+ "content": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
"description": "API error response.",
"properties": {
@@ -399887,11 +424391,39 @@
}
}
},
- "description": "Not Found"
+ "description": "Bad Request"
+ },
+ "403": {
+ "content": {
+ "application/json;datetime-format=rfc3339": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Forbidden - User is not authorized"
},
"429": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
"description": "API error response.",
"properties": {
@@ -399925,581 +424457,154 @@
},
{
"AuthZ": [
- "incident_read"
+ "usage_read"
]
}
],
- "summary": "Get a list of all incident teams",
+ "summary": "Get hourly usage for Lambda traced invocations",
"tags": [
- "Incident Teams"
+ "Usage Metering"
],
- "x-menu-order": 4,
+ "x-menu-order": 37,
"x-permission": {
"operator": "OR",
"permissions": [
- "incident_read"
+ "usage_read"
]
},
"x-undo": {
"type": "safe"
- },
- "x-unstable": "**Note**: This endpoint is deprecated. See the [Teams API endpoints](https://docs.datadoghq.com/api/latest/teams/)."
- },
- "post": {
+ }
+ }
+ },
+ "/api/v2/usage/observability_pipelines": {
+ "get": {
"deprecated": true,
- "description": "Creates a new incident team.",
- "operationId": "CreateIncidentTeam",
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Create request with an incident team payload.",
- "properties": {
- "data": {
- "description": "Incident Team data for a create request.",
- "properties": {
- "attributes": {
- "description": "The incident team's attributes for a create request.",
- "properties": {
- "name": {
- "description": "Name of the incident team.",
- "example": "team name",
- "type": "string"
- }
- },
- "required": [
- "name"
- ],
- "type": "object"
- },
- "relationships": {
- "description": "The incident team's relationships.",
- "properties": {
- "created_by": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "last_modified_by": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- }
- },
- "readOnly": true,
- "type": "object"
- },
- "type": {
- "default": "teams",
- "description": "Incident Team resource type.",
- "enum": [
- "teams"
- ],
- "example": "teams",
- "type": "string",
- "x-enum-varnames": [
- "TEAMS"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- }
+ "description": "Get hourly usage for observability pipelines.\n**Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family)",
+ "operationId": "GetUsageObservabilityPipelines",
+ "parameters": [
+ {
+ "description": "Datetime in ISO-8601 format, UTC, precise to hour: `[YYYY-MM-DDThh]` for usage beginning at this hour.",
+ "in": "query",
+ "name": "start_hr",
+ "required": true,
+ "schema": {
+ "format": "date-time",
+ "type": "string"
}
},
- "description": "Incident Team Payload.",
- "required": true
- },
+ {
+ "description": "Datetime in ISO-8601 format, UTC, precise to hour: `[YYYY-MM-DDThh]` for usage ending\n**before** this hour.",
+ "in": "query",
+ "name": "end_hr",
+ "required": false,
+ "schema": {
+ "format": "date-time",
+ "type": "string"
+ }
+ }
+ ],
"responses": {
- "201": {
+ "200": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
- "description": "Response with an incident team payload.",
+ "description": "Observability Pipelines usage response.",
"properties": {
"data": {
- "description": "Incident Team data from a response.",
- "properties": {
- "attributes": {
- "description": "The incident team's attributes from a response.",
- "properties": {
- "created": {
- "description": "Timestamp of when the incident team was created.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified": {
- "description": "Timestamp of when the incident team was modified.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "name": {
- "description": "Name of the incident team.",
- "example": "team name",
- "type": "string"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "The incident team's ID.",
- "example": "00000000-7ea3-0000-000a-000000000000",
- "type": "string"
- },
- "relationships": {
- "description": "The incident team's relationships.",
- "properties": {
- "created_by": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "last_modified_by": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- }
- },
- "readOnly": true,
- "type": "object"
- },
- "type": {
- "default": "teams",
- "description": "Incident Team resource type.",
- "enum": [
- "teams"
- ],
- "example": "teams",
- "type": "string",
- "x-enum-varnames": [
- "TEAMS"
- ]
- }
- },
- "type": "object"
- },
- "included": {
- "description": "Included objects from relationships.",
+ "description": "Response containing Observability Pipelines usage.",
"items": {
- "description": "An object related to an incident team which is present in the included payload.",
- "oneOf": [
- {
- "description": "User object returned by the API.",
+ "description": "Usage data.",
+ "properties": {
+ "attributes": {
+ "description": "Usage attributes data.",
"properties": {
- "attributes": {
- "description": "Attributes of user object returned by the API.",
- "properties": {
- "created_at": {
- "description": "Creation time of the user.",
- "format": "date-time",
- "type": "string"
- },
- "disabled": {
- "description": "Whether the user is disabled.",
- "type": "boolean"
- },
- "email": {
- "description": "Email of the user.",
- "type": "string"
- },
- "handle": {
- "description": "Handle of the user.",
- "type": "string"
- },
- "icon": {
- "description": "URL of the user's icon.",
- "type": "string"
- },
- "mfa_enabled": {
- "description": "If user has MFA enabled.",
- "readOnly": true,
- "type": "boolean"
- },
- "modified_at": {
- "description": "Time that the user was last modified.",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "Name of the user.",
- "nullable": true,
- "type": "string"
- },
- "service_account": {
- "description": "Whether the user is a service account.",
- "type": "boolean"
- },
- "status": {
- "description": "Status of the user.",
- "type": "string"
- },
- "title": {
- "description": "Title of the user.",
- "nullable": true,
- "type": "string"
- },
- "verified": {
- "description": "Whether the user is verified.",
- "type": "boolean"
- }
- },
- "type": "object"
+ "org_name": {
+ "description": "The organization name.",
+ "type": "string"
},
- "id": {
- "description": "ID of the user.",
+ "product_family": {
+ "description": "The product for which usage is being reported.",
"type": "string"
},
- "relationships": {
- "description": "Relationships of the user object returned by the API.",
- "properties": {
- "org": {
- "description": "Relationship to an organization.",
- "properties": {
- "data": {
- "description": "Relationship to organization object.",
- "properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
- "type": "string"
- },
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "other_orgs": {
- "description": "Relationship to organizations.",
- "properties": {
- "data": {
- "description": "Relationships to organization objects.",
- "example": [],
- "items": {
- "description": "Relationship to organization object.",
- "properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
- "type": "string"
- },
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- },
- "type": "array"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "other_users": {
- "description": "Relationship to users.",
- "properties": {
- "data": {
- "description": "Relationships to user objects.",
- "example": [],
- "items": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "roles": {
- "description": "Relationship to roles.",
- "properties": {
- "data": {
- "description": "An array containing type and the unique identifier of a role.",
- "items": {
- "description": "Relationship to role object.",
- "properties": {
- "id": {
- "description": "The unique identifier of the role.",
- "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
- "type": "string"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
+ "public_id": {
+ "description": "The organization public ID.",
+ "type": "string"
+ },
+ "region": {
+ "description": "The region of the Datadog instance that the organization belongs to.",
+ "type": "string"
+ },
+ "timeseries": {
+ "description": "List of usage data reported for each requested hour.",
+ "items": {
+ "description": "Usage timeseries data.",
+ "properties": {
+ "timestamp": {
+ "description": "Datetime in ISO-8601 format, UTC. The hour for the usage.",
+ "format": "date-time",
+ "type": "string"
},
- "type": "object",
- "x-merge-override": {
- "required": false
+ "value": {
+ "description": "Contains the number measured for the given usage_type during the hour.",
+ "format": "int64",
+ "nullable": true,
+ "type": "integer"
}
- }
+ },
+ "type": "object"
},
- "type": "object",
- "x-merge-override": {
- "properties": false
- }
+ "type": "array"
},
- "type": {
- "default": "users",
- "description": "Users resource type.",
+ "usage_type": {
+ "description": "Usage type that is being measured.",
"enum": [
- "users"
+ "app_sec_host_count",
+ "observability_pipelines_bytes_processed",
+ "lambda_traced_invocations_count"
],
- "example": "users",
+ "example": "observability_pipelines_bytes_processed",
"type": "string",
"x-enum-varnames": [
- "USERS"
+ "APP_SEC_HOST_COUNT",
+ "OBSERVABILITY_PIPELINES_BYTES_PROCESSSED",
+ "LAMBDA_TRACED_INVOCATIONS_COUNT"
]
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "object"
+ },
+ "id": {
+ "description": "Unique ID of the response.",
+ "type": "string"
+ },
+ "type": {
+ "default": "usage_timeseries",
+ "description": "Type of usage data.",
+ "enum": [
+ "usage_timeseries"
+ ],
+ "example": "usage_timeseries",
+ "type": "string",
+ "x-enum-varnames": [
+ "USAGE_TIMESERIES"
+ ]
}
- ]
+ },
+ "type": "object"
},
- "readOnly": true,
"type": "array"
}
},
- "required": [
- "data"
- ],
"type": "object"
}
}
},
- "description": "CREATED"
+ "description": "OK"
},
"400": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
"description": "API error response.",
"properties": {
@@ -400525,9 +424630,9 @@
},
"description": "Bad Request"
},
- "401": {
+ "403": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
"description": "API error response.",
"properties": {
@@ -400551,11 +424656,11 @@
}
}
},
- "description": "Unauthorized"
+ "description": "Forbidden - User is not authorized"
},
- "403": {
+ "429": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
"description": "API error response.",
"properties": {
@@ -400579,11 +424684,165 @@
}
}
},
- "description": "Forbidden"
+ "description": "Too many requests"
+ }
+ },
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
},
- "404": {
+ {
+ "AuthZ": [
+ "usage_read"
+ ]
+ }
+ ],
+ "summary": "Get hourly usage for observability pipelines",
+ "tags": [
+ "Usage Metering"
+ ],
+ "x-menu-order": 39,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "usage_read"
+ ]
+ },
+ "x-undo": {
+ "type": "safe"
+ }
+ }
+ },
+ "/api/v2/usage/projected_cost": {
+ "get": {
+ "description": "Get projected cost across multi-org and single root-org accounts.\nProjected cost data is only available for the current month and becomes available around the 12th of the month.\n\nThis endpoint is only accessible for [parent-level organizations](https://docs.datadoghq.com/account_management/multi_organization/).",
+ "operationId": "GetProjectedCost",
+ "parameters": [
+ {
+ "description": "String to specify whether cost is broken down at a parent-org level or at the sub-org level. Available views are `summary` and `sub-org`. Defaults to `summary`.",
+ "in": "query",
+ "name": "view",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "Boolean to specify whether to include accounts connected to the current account as partner customers in the Datadog partner network program. Defaults to `false`. ",
+ "in": "query",
+ "name": "include_connected_accounts",
+ "required": false,
+ "schema": {
+ "default": false,
+ "type": "boolean"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
+ "schema": {
+ "description": "Projected Cost response.",
+ "properties": {
+ "data": {
+ "description": "Response containing Projected Cost.",
+ "items": {
+ "description": "Projected Cost data.",
+ "properties": {
+ "attributes": {
+ "description": "Projected Cost attributes data.",
+ "properties": {
+ "account_name": {
+ "description": "The account name.",
+ "type": "string"
+ },
+ "account_public_id": {
+ "description": "The account public ID.",
+ "type": "string"
+ },
+ "charges": {
+ "description": "List of charges data reported for the requested month.",
+ "items": {
+ "description": "Charges breakdown.",
+ "properties": {
+ "charge_type": {
+ "description": "The type of charge for a particular product.",
+ "example": "on_demand",
+ "type": "string"
+ },
+ "cost": {
+ "description": "The cost for a particular product and charge type during a given month.",
+ "format": "double",
+ "type": "number"
+ },
+ "product_name": {
+ "description": "The product for which cost is being reported.",
+ "example": "infra_host",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "date": {
+ "description": "The month requested.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "org_name": {
+ "description": "The organization name.",
+ "type": "string"
+ },
+ "projected_total_cost": {
+ "description": "The total projected cost of products for the month.",
+ "format": "double",
+ "type": "number"
+ },
+ "public_id": {
+ "description": "The organization public ID.",
+ "type": "string"
+ },
+ "region": {
+ "description": "The region of the Datadog instance that the organization belongs to.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "Unique ID of the response.",
+ "type": "string"
+ },
+ "type": {
+ "default": "projected_cost",
+ "description": "Type of cost data.",
+ "enum": [
+ "projected_cost"
+ ],
+ "example": "projected_cost",
+ "type": "string",
+ "x-enum-varnames": [
+ "PROJECt_COST"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "OK"
+ },
+ "400": {
+ "content": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
"description": "API error response.",
"properties": {
@@ -400607,11 +424866,39 @@
}
}
},
- "description": "Not Found"
+ "description": "Bad Request"
+ },
+ "403": {
+ "content": {
+ "application/json;datetime-format=rfc3339": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Forbidden - User is not authorized"
},
"429": {
"content": {
- "application/json": {
+ "application/json;datetime-format=rfc3339": {
"schema": {
"description": "API error response.",
"properties": {
@@ -400645,64 +424932,237 @@
},
{
"AuthZ": [
- "incident_settings_write"
+ "usage_read"
]
}
],
- "summary": "Create a new incident team",
+ "summary": "Get projected cost across your account",
"tags": [
- "Incident Teams"
+ "Usage Metering"
],
- "x-codegen-request-body-name": "body",
- "x-given": {
- "team": {
- "parameters": [
- {
- "name": "body",
- "value": "{\n \"data\": {\n \"attributes\": {\n \"name\": \"{{ unique }}\"\n },\n \"type\": \"teams\"\n }\n}"
- }
- ],
- "step": "there is a valid \"team\" in the system"
- }
- },
- "x-menu-order": 5,
+ "x-menu-order": 7,
"x-permission": {
"operator": "OR",
"permissions": [
- "incident_settings_write"
+ "usage_read"
]
},
"x-undo": {
- "operationId": "DeleteIncidentTeam",
- "parameters": [
- {
- "name": "team_id",
- "source": "data.id"
- }
- ],
- "type": "unsafe"
- },
- "x-unstable": "**Note**: This endpoint is deprecated. See the [Teams API endpoints](https://docs.datadoghq.com/api/latest/teams/)."
+ "type": "safe"
+ }
}
},
- "/api/v2/teams/{team_id}": {
- "delete": {
- "deprecated": true,
- "description": "Deletes an existing incident team.",
- "operationId": "DeleteIncidentTeam",
- "parameters": [
- {
- "description": "The ID of the incident team.",
- "in": "path",
- "name": "team_id",
- "required": true,
- "schema": {
- "type": "string"
+ "/api/v2/user_invitations": {
+ "post": {
+ "description": "Sends emails to one or more users inviting them to join the organization.",
+ "operationId": "SendInvitations",
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Object to invite users to join the organization.",
+ "properties": {
+ "data": {
+ "description": "List of user invitations.",
+ "example": [],
+ "items": {
+ "description": "Object to create a user invitation.",
+ "properties": {
+ "relationships": {
+ "description": "Relationships data for user invitation.",
+ "properties": {
+ "user": {
+ "description": "Relationship to user.",
+ "properties": {
+ "data": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "user"
+ ],
+ "type": "object"
+ },
+ "type": {
+ "default": "user_invitations",
+ "description": "User invitations type.",
+ "enum": [
+ "user_invitations"
+ ],
+ "example": "user_invitations",
+ "type": "string",
+ "x-enum-varnames": [
+ "USER_INVITATIONS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "relationships"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
}
- }
- ],
+ },
+ "required": true
+ },
"responses": {
- "204": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "User invitations as returned by the API.",
+ "properties": {
+ "data": {
+ "description": "Array of user invitations.",
+ "items": {
+ "description": "Object of a user invitation returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of a user invitation.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the user invitation.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "expires_at": {
+ "description": "Time of invitation expiration.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "invite_type": {
+ "description": "Type of invitation.",
+ "type": "string"
+ },
+ "uuid": {
+ "description": "UUID of the user invitation.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the user invitation.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships data for user invitation.",
+ "properties": {
+ "user": {
+ "description": "Relationship to user.",
+ "properties": {
+ "data": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "user"
+ ],
+ "type": "object"
+ },
+ "type": {
+ "default": "user_invitations",
+ "description": "User invitations type.",
+ "enum": [
+ "user_invitations"
+ ],
+ "example": "user_invitations",
+ "type": "string",
+ "x-enum-varnames": [
+ "USER_INVITATIONS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
"description": "OK"
},
"400": {
@@ -400733,7 +425193,7 @@
},
"description": "Bad Request"
},
- "401": {
+ "403": {
"content": {
"application/json": {
"schema": {
@@ -400759,7 +425219,203 @@
}
}
},
- "description": "Unauthorized"
+ "description": "Authentication error"
+ },
+ "429": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "example": [
+ "Bad Request"
+ ],
+ "items": {
+ "description": "A list of items.",
+ "example": "Bad Request",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Too many requests"
+ }
+ },
+ "security": [
+ {
+ "apiKeyAuth": [],
+ "appKeyAuth": []
+ },
+ {
+ "AuthZ": [
+ "user_access_invite"
+ ]
+ }
+ ],
+ "summary": "Send invitation emails",
+ "tags": [
+ "Users"
+ ],
+ "x-codegen-request-body-name": "body",
+ "x-given": {
+ "user_invitation": {
+ "parameters": [
+ {
+ "name": "body",
+ "value": "{\n \"data\": [\n {\n \"relationships\": {\"user\": {\"data\": {\n \"id\": \"{{ user.data.id }}\",\n \"type\": \"{{ user.data.type }}\"\n }}},\n \"type\": \"user_invitations\"\n }\n ]\n}"
+ }
+ ],
+ "source": "data[0]",
+ "step": "the \"user\" has a \"user_invitation\""
+ }
+ },
+ "x-menu-order": 8,
+ "x-permission": {
+ "operator": "OR",
+ "permissions": [
+ "user_access_invite"
+ ]
+ },
+ "x-undo": {
+ "type": "safe"
+ }
+ }
+ },
+ "/api/v2/user_invitations/{user_invitation_uuid}": {
+ "get": {
+ "description": "Returns a single user invitation by its UUID.",
+ "operationId": "GetInvitation",
+ "parameters": [
+ {
+ "description": "The UUID of the user invitation.",
+ "in": "path",
+ "name": "user_invitation_uuid",
+ "required": true,
+ "schema": {
+ "example": "00000000-0000-0000-3456-000000000000",
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "User invitation as returned by the API.",
+ "properties": {
+ "data": {
+ "description": "Object of a user invitation returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of a user invitation.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the user invitation.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "expires_at": {
+ "description": "Time of invitation expiration.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "invite_type": {
+ "description": "Type of invitation.",
+ "type": "string"
+ },
+ "uuid": {
+ "description": "UUID of the user invitation.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the user invitation.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships data for user invitation.",
+ "properties": {
+ "user": {
+ "description": "Relationship to user.",
+ "properties": {
+ "data": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "user"
+ ],
+ "type": "object"
+ },
+ "type": {
+ "default": "user_invitations",
+ "description": "User invitations type.",
+ "enum": [
+ "user_invitations"
+ ],
+ "example": "user_invitations",
+ "type": "string",
+ "x-enum-varnames": [
+ "USER_INVITATIONS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "description": "OK"
},
"403": {
"content": {
@@ -400787,7 +425443,7 @@
}
}
},
- "description": "Forbidden"
+ "description": "Authentication error"
},
"404": {
"content": {
@@ -400815,7 +425471,7 @@
}
}
},
- "description": "Not Found"
+ "description": "Not found"
},
"429": {
"content": {
@@ -400853,57 +425509,104 @@
},
{
"AuthZ": [
- "incident_settings_write"
+ "user_access_invite"
]
}
],
- "summary": "Delete an existing incident team",
+ "summary": "Get a user invitation",
"tags": [
- "Incident Teams"
+ "Users"
],
- "x-menu-order": 2,
+ "x-codegen-request-body-name": "body",
+ "x-menu-order": 9,
"x-permission": {
"operator": "OR",
"permissions": [
- "incident_settings_write"
+ "user_access_invite"
]
},
"x-undo": {
- "type": "idempotent"
- },
- "x-unstable": "**Note**: This endpoint is deprecated. See the [Teams API endpoints](https://docs.datadoghq.com/api/latest/teams/)."
- },
+ "type": "safe"
+ }
+ }
+ },
+ "/api/v2/users": {
"get": {
- "deprecated": true,
- "description": "Get details of an incident team. If the `include[users]` query parameter is provided,\nthe included attribute will contain the users related to these incident teams.",
- "operationId": "GetIncidentTeam",
+ "description": "Get the list of all users in the organization. This list includes\nall users even if they are deactivated or unverified.",
+ "operationId": "ListUsers",
"parameters": [
{
- "description": "The ID of the incident team.",
- "in": "path",
- "name": "team_id",
- "required": true,
+ "description": "Size for a given page. The maximum allowed value is 100.",
+ "in": "query",
+ "name": "page[size]",
+ "required": false,
+ "schema": {
+ "default": 10,
+ "example": 10,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ {
+ "description": "Specific page number to return.",
+ "in": "query",
+ "name": "page[number]",
+ "required": false,
+ "schema": {
+ "default": 0,
+ "example": 0,
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ {
+ "description": "User attribute to order results by. Sort order is ascending by default.\nSort order is descending if the field\nis prefixed by a negative sign, for example `sort=-name`. Options: `name`,\n`modified_at`, `user_count`.",
+ "in": "query",
+ "name": "sort",
+ "required": false,
"schema": {
+ "default": "name",
+ "example": "name",
"type": "string"
}
},
{
- "description": "Specifies which types of related objects should be included in the response.",
+ "description": "Direction of sort. Options: `asc`, `desc`.",
"in": "query",
- "name": "include",
+ "name": "sort_dir",
"required": false,
"schema": {
- "description": "Object related to an incident.",
+ "default": "desc",
+ "description": "Direction of sort.",
"enum": [
- "users",
- "attachments"
+ "asc",
+ "desc"
],
"type": "string",
"x-enum-varnames": [
- "USERS",
- "ATTACHMENTS"
+ "ASC",
+ "DESC"
]
}
+ },
+ {
+ "description": "Filter all users by the given string. Defaults to no filtering.",
+ "in": "query",
+ "name": "filter",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "description": "Filter on status attribute.\nComma separated list, with possible values `Active`, `Pending`, and `Disabled`.\nDefaults to no filtering.",
+ "in": "query",
+ "name": "filter[status]",
+ "required": false,
+ "schema": {
+ "example": "Active",
+ "type": "string"
+ }
}
],
"responses": {
@@ -400911,357 +425614,455 @@
"content": {
"application/json": {
"schema": {
- "description": "Response with an incident team payload.",
+ "description": "Response containing information about multiple users.",
"properties": {
"data": {
- "description": "Incident Team data from a response.",
- "properties": {
- "attributes": {
- "description": "The incident team's attributes from a response.",
- "properties": {
- "created": {
- "description": "Timestamp of when the incident team was created.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified": {
- "description": "Timestamp of when the incident team was modified.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
+ "description": "Array of returned users.",
+ "items": {
+ "description": "User object returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of user object returned by the API.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the user.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "disabled": {
+ "description": "Whether the user is disabled.",
+ "type": "boolean"
+ },
+ "email": {
+ "description": "Email of the user.",
+ "type": "string"
+ },
+ "handle": {
+ "description": "Handle of the user.",
+ "type": "string"
+ },
+ "icon": {
+ "description": "URL of the user's icon.",
+ "type": "string"
+ },
+ "mfa_enabled": {
+ "description": "If user has MFA enabled.",
+ "readOnly": true,
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time that the user was last modified.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "service_account": {
+ "description": "Whether the user is a service account.",
+ "type": "boolean"
+ },
+ "status": {
+ "description": "Status of the user.",
+ "type": "string"
+ },
+ "title": {
+ "description": "Title of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "verified": {
+ "description": "Whether the user is verified.",
+ "type": "boolean"
+ }
},
- "name": {
- "description": "Name of the incident team.",
- "example": "team name",
- "type": "string"
- }
+ "type": "object"
},
- "type": "object"
- },
- "id": {
- "description": "The incident team's ID.",
- "example": "00000000-7ea3-0000-000a-000000000000",
- "type": "string"
- },
- "relationships": {
- "description": "The incident team's relationships.",
- "properties": {
- "created_by": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
+ "id": {
+ "description": "ID of the user.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships of the user object returned by the API.",
+ "properties": {
+ "org": {
+ "description": "Relationship to an organization.",
+ "properties": {
+ "data": {
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
},
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_orgs": {
+ "description": "Relationship to organizations.",
+ "properties": {
+ "data": {
+ "description": "Relationships to organization objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_users": {
+ "description": "Relationship to users.",
+ "properties": {
+ "data": {
+ "description": "Relationships to user objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
}
- }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
},
- "required": [
- "data"
- ],
- "type": "object"
- },
- "last_modified_by": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
+ "roles": {
+ "description": "Relationship to roles.",
+ "properties": {
+ "data": {
+ "description": "An array containing type and the unique identifier of a role.",
+ "items": {
+ "description": "Relationship to role object.",
+ "properties": {
+ "id": {
+ "description": "The unique identifier of the role.",
+ "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "type": "string"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
},
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
+ "type": "array"
}
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
}
- },
- "required": [
- "data"
- ],
- "type": "object"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "properties": false
}
},
- "readOnly": true,
- "type": "object"
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
},
- "type": {
- "default": "teams",
- "description": "Incident Team resource type.",
- "enum": [
- "teams"
- ],
- "example": "teams",
- "type": "string",
- "x-enum-varnames": [
- "TEAMS"
- ]
+ "type": "object",
+ "x-merge-override": {
+ "required": false
}
},
- "type": "object"
+ "type": "array"
},
"included": {
- "description": "Included objects from relationships.",
+ "description": "Array of objects related to the users.",
"items": {
- "description": "An object related to an incident team which is present in the included payload.",
+ "description": "An object related to a user.",
"oneOf": [
{
- "description": "User object returned by the API.",
+ "description": "Organization object.",
"properties": {
"attributes": {
- "description": "Attributes of user object returned by the API.",
+ "description": "Attributes of the organization.",
"properties": {
"created_at": {
- "description": "Creation time of the user.",
+ "description": "Creation time of the organization.",
"format": "date-time",
"type": "string"
},
+ "description": {
+ "description": "Description of the organization.",
+ "type": "string"
+ },
"disabled": {
- "description": "Whether the user is disabled.",
+ "description": "Whether or not the organization is disabled.",
"type": "boolean"
},
- "email": {
- "description": "Email of the user.",
+ "modified_at": {
+ "description": "Time of last organization modification.",
+ "format": "date-time",
"type": "string"
},
- "handle": {
- "description": "Handle of the user.",
+ "name": {
+ "description": "Name of the organization.",
"type": "string"
},
- "icon": {
- "description": "URL of the user's icon.",
+ "public_id": {
+ "description": "Public ID of the organization.",
"type": "string"
},
- "mfa_enabled": {
- "description": "If user has MFA enabled.",
- "readOnly": true,
- "type": "boolean"
+ "sharing": {
+ "description": "Sharing type of the organization.",
+ "type": "string"
},
- "modified_at": {
- "description": "Time that the user was last modified.",
+ "url": {
+ "description": "URL of the site that this organization exists at.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the organization.",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Permission object.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of a permission.",
+ "properties": {
+ "created": {
+ "description": "Creation time of the permission.",
"format": "date-time",
"type": "string"
},
- "name": {
- "description": "Name of the user.",
- "nullable": true,
+ "description": {
+ "description": "Description of the permission.",
"type": "string"
},
- "service_account": {
- "description": "Whether the user is a service account.",
- "type": "boolean"
+ "display_name": {
+ "description": "Displayed name for the permission.",
+ "type": "string"
},
- "status": {
- "description": "Status of the user.",
+ "display_type": {
+ "description": "Display type.",
"type": "string"
},
- "title": {
- "description": "Title of the user.",
- "nullable": true,
+ "group_name": {
+ "description": "Name of the permission group.",
"type": "string"
},
- "verified": {
- "description": "Whether the user is verified.",
+ "name": {
+ "description": "Name of the permission.",
+ "type": "string"
+ },
+ "restricted": {
+ "description": "Whether or not the permission is restricted.",
"type": "boolean"
}
},
"type": "object"
},
"id": {
- "description": "ID of the user.",
+ "description": "ID of the permission.",
"type": "string"
},
- "relationships": {
- "description": "Relationships of the user object returned by the API.",
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Role object returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of the role.",
"properties": {
- "org": {
- "description": "Relationship to an organization.",
- "properties": {
- "data": {
- "description": "Relationship to organization object.",
- "properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
- "type": "string"
- },
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
+ "created_at": {
+ "description": "Creation time of the role.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
},
- "other_orgs": {
- "description": "Relationship to organizations.",
- "properties": {
- "data": {
- "description": "Relationships to organization objects.",
- "example": [],
- "items": {
- "description": "Relationship to organization object.",
- "properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
- "type": "string"
- },
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- },
- "type": "array"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
+ "modified_at": {
+ "description": "Time of last role modification.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
},
- "other_users": {
- "description": "Relationship to users.",
- "properties": {
- "data": {
- "description": "Relationships to user objects.",
- "example": [],
- "items": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
+ "name": {
+ "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
+ "type": "string"
},
- "roles": {
- "description": "Relationship to roles.",
+ "user_count": {
+ "description": "Number of users with that role.",
+ "format": "int64",
+ "readOnly": true,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The unique identifier of the role.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships of the role object returned by the API.",
+ "properties": {
+ "permissions": {
+ "description": "Relationship to multiple permissions objects.",
"properties": {
"data": {
- "description": "An array containing type and the unique identifier of a role.",
+ "description": "Relationships to permission objects.",
"items": {
- "description": "Relationship to role object.",
+ "description": "Relationship to permission object.",
"properties": {
"id": {
- "description": "The unique identifier of the role.",
- "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "description": "ID of the permission.",
"type": "string"
},
"type": {
- "default": "roles",
- "description": "Roles type.",
+ "default": "permissions",
+ "description": "Permissions resource type.",
"enum": [
- "roles"
+ "permissions"
],
- "example": "roles",
+ "example": "permissions",
"type": "string",
"x-enum-varnames": [
- "ROLES"
+ "PERMISSIONS"
]
}
},
@@ -401279,24 +426080,24 @@
}
}
},
- "type": "object",
- "x-merge-override": {
- "properties": false
- }
+ "type": "object"
},
"type": {
- "default": "users",
- "description": "Users resource type.",
+ "default": "roles",
+ "description": "Roles type.",
"enum": [
- "users"
+ "roles"
],
- "example": "users",
+ "example": "roles",
"type": "string",
"x-enum-varnames": [
- "USERS"
+ "ROLES"
]
}
},
+ "required": [
+ "type"
+ ],
"type": "object",
"x-merge-override": {
"required": false
@@ -401304,13 +426105,35 @@
}
]
},
- "readOnly": true,
"type": "array"
+ },
+ "meta": {
+ "description": "Object describing meta attributes of response.",
+ "properties": {
+ "page": {
+ "description": "Pagination object.",
+ "properties": {
+ "total_count": {
+ "description": "Total count.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "total_filtered_count": {
+ "description": "Total count of elements matched by the filter.",
+ "format": "int64",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "properties": false
+ }
}
},
- "required": [
- "data"
- ],
+ "readOnly": true,
"type": "object"
}
}
@@ -401345,34 +426168,6 @@
},
"description": "Bad Request"
},
- "401": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Unauthorized"
- },
"403": {
"content": {
"application/json": {
@@ -401399,35 +426194,7 @@
}
}
},
- "description": "Forbidden"
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Not Found"
+ "description": "Authentication error"
},
"429": {
"content": {
@@ -401465,171 +426232,131 @@
},
{
"AuthZ": [
- "incident_read"
+ "user_access_read"
]
}
],
- "summary": "Get details of an incident team",
+ "summary": "List all users",
"tags": [
- "Incident Teams"
+ "Users"
],
+ "x-codegen-request-body-name": "body",
"x-menu-order": 1,
+ "x-pagination": {
+ "limitParam": "page[size]",
+ "pageParam": "page[number]",
+ "resultsPath": "data"
+ },
"x-permission": {
"operator": "OR",
"permissions": [
- "incident_read"
+ "user_access_read"
]
},
"x-undo": {
"type": "safe"
- },
- "x-unstable": "**Note**: This endpoint is deprecated. See the [Teams API endpoints](https://docs.datadoghq.com/api/latest/teams/)."
+ }
},
- "patch": {
- "deprecated": true,
- "description": "Updates an existing incident team. Only provide the attributes which should be updated as this request is a partial update.",
- "operationId": "UpdateIncidentTeam",
- "parameters": [
- {
- "description": "The ID of the incident team.",
- "in": "path",
- "name": "team_id",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
+ "post": {
+ "description": "Create a user for your organization.",
+ "operationId": "CreateUser",
"requestBody": {
"content": {
"application/json": {
"schema": {
- "description": "Update request with an incident team payload.",
+ "description": "Create a user.",
"properties": {
"data": {
- "description": "Incident Team data for an update request.",
+ "description": "Object to create a user.",
"properties": {
"attributes": {
- "description": "The incident team's attributes for an update request.",
+ "description": "Attributes of the created user.",
"properties": {
+ "email": {
+ "description": "The email of the user.",
+ "example": "jane.doe@example.com",
+ "type": "string"
+ },
"name": {
- "description": "Name of the incident team.",
- "example": "team name",
+ "description": "The name of the user.",
+ "type": "string"
+ },
+ "title": {
+ "description": "The title of the user.",
"type": "string"
}
},
"required": [
- "name"
+ "email"
],
"type": "object"
},
- "id": {
- "description": "The incident team's ID.",
- "example": "00000000-7ea3-0000-0001-000000000000",
- "type": "string"
- },
"relationships": {
- "description": "The incident team's relationships.",
+ "description": "Relationships of the user object.",
"properties": {
- "created_by": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "last_modified_by": {
- "description": "Relationship to user.",
+ "roles": {
+ "description": "Relationship to roles.",
"properties": {
"data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
+ "description": "An array containing type and the unique identifier of a role.",
+ "items": {
+ "description": "Relationship to role object.",
+ "properties": {
+ "id": {
+ "description": "The unique identifier of the role.",
+ "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "type": "string"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
},
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
+ "type": "object",
+ "x-merge-override": {
+ "required": false
}
},
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "array"
}
},
- "required": [
- "data"
- ],
- "type": "object"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
- "readOnly": true,
"type": "object"
},
"type": {
- "default": "teams",
- "description": "Incident Team resource type.",
+ "default": "users",
+ "description": "Users resource type.",
"enum": [
- "teams"
+ "users"
],
- "example": "teams",
+ "example": "users",
"type": "string",
"x-enum-varnames": [
- "TEAMS"
+ "USERS"
]
}
},
"required": [
+ "attributes",
"type"
],
- "type": "object"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
"required": [
@@ -401639,71 +426366,105 @@
}
}
},
- "description": "Incident Team Payload.",
"required": true
},
"responses": {
- "200": {
+ "201": {
"content": {
"application/json": {
"schema": {
- "description": "Response with an incident team payload.",
+ "description": "Response containing information about a single user.",
"properties": {
"data": {
- "description": "Incident Team data from a response.",
+ "description": "User object returned by the API.",
"properties": {
"attributes": {
- "description": "The incident team's attributes from a response.",
+ "description": "Attributes of user object returned by the API.",
"properties": {
- "created": {
- "description": "Timestamp of when the incident team was created.",
+ "created_at": {
+ "description": "Creation time of the user.",
"format": "date-time",
- "readOnly": true,
"type": "string"
},
- "modified": {
- "description": "Timestamp of when the incident team was modified.",
- "format": "date-time",
+ "disabled": {
+ "description": "Whether the user is disabled.",
+ "type": "boolean"
+ },
+ "email": {
+ "description": "Email of the user.",
+ "type": "string"
+ },
+ "handle": {
+ "description": "Handle of the user.",
+ "type": "string"
+ },
+ "icon": {
+ "description": "URL of the user's icon.",
+ "type": "string"
+ },
+ "mfa_enabled": {
+ "description": "If user has MFA enabled.",
"readOnly": true,
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time that the user was last modified.",
+ "format": "date-time",
"type": "string"
},
"name": {
- "description": "Name of the incident team.",
- "example": "team name",
+ "description": "Name of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "service_account": {
+ "description": "Whether the user is a service account.",
+ "type": "boolean"
+ },
+ "status": {
+ "description": "Status of the user.",
+ "type": "string"
+ },
+ "title": {
+ "description": "Title of the user.",
+ "nullable": true,
"type": "string"
+ },
+ "verified": {
+ "description": "Whether the user is verified.",
+ "type": "boolean"
}
},
"type": "object"
},
"id": {
- "description": "The incident team's ID.",
- "example": "00000000-7ea3-0000-000a-000000000000",
+ "description": "ID of the user.",
"type": "string"
},
"relationships": {
- "description": "The incident team's relationships.",
+ "description": "Relationships of the user object returned by the API.",
"properties": {
- "created_by": {
- "description": "Relationship to user.",
+ "org": {
+ "description": "Relationship to an organization.",
"properties": {
"data": {
- "description": "Relationship to user object.",
+ "description": "Relationship to organization object.",
"properties": {
"id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
"type": "string"
},
"type": {
- "default": "users",
- "description": "Users resource type.",
+ "default": "orgs",
+ "description": "Organizations resource type.",
"enum": [
- "users"
+ "orgs"
],
- "example": "users",
+ "example": "orgs",
"type": "string",
"x-enum-varnames": [
- "USERS"
+ "ORGS"
]
}
},
@@ -401711,10 +426472,7 @@
"id",
"type"
],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "object"
}
},
"required": [
@@ -401722,282 +426480,344 @@
],
"type": "object"
},
- "last_modified_by": {
- "description": "Relationship to user.",
+ "other_orgs": {
+ "description": "Relationship to organizations.",
"properties": {
"data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
+ "description": "Relationships to organization objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
},
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_users": {
+ "description": "Relationship to users.",
+ "properties": {
+ "data": {
+ "description": "Relationships to user objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
}
},
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "array"
}
},
"required": [
"data"
],
"type": "object"
+ },
+ "roles": {
+ "description": "Relationship to roles.",
+ "properties": {
+ "data": {
+ "description": "An array containing type and the unique identifier of a role.",
+ "items": {
+ "description": "Relationship to role object.",
+ "properties": {
+ "id": {
+ "description": "The unique identifier of the role.",
+ "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "type": "string"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
},
- "readOnly": true,
- "type": "object"
+ "type": "object",
+ "x-merge-override": {
+ "properties": false
+ }
},
"type": {
- "default": "teams",
- "description": "Incident Team resource type.",
+ "default": "users",
+ "description": "Users resource type.",
"enum": [
- "teams"
+ "users"
],
- "example": "teams",
+ "example": "users",
"type": "string",
"x-enum-varnames": [
- "TEAMS"
+ "USERS"
]
}
},
- "type": "object"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
},
"included": {
- "description": "Included objects from relationships.",
+ "description": "Array of objects related to the user.",
"items": {
- "description": "An object related to an incident team which is present in the included payload.",
+ "description": "An object related to a user.",
"oneOf": [
{
- "description": "User object returned by the API.",
+ "description": "Organization object.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of the organization.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the organization.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of the organization.",
+ "type": "string"
+ },
+ "disabled": {
+ "description": "Whether or not the organization is disabled.",
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time of last organization modification.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the organization.",
+ "type": "string"
+ },
+ "public_id": {
+ "description": "Public ID of the organization.",
+ "type": "string"
+ },
+ "sharing": {
+ "description": "Sharing type of the organization.",
+ "type": "string"
+ },
+ "url": {
+ "description": "URL of the site that this organization exists at.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the organization.",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Permission object.",
"properties": {
"attributes": {
- "description": "Attributes of user object returned by the API.",
+ "description": "Attributes of a permission.",
"properties": {
- "created_at": {
- "description": "Creation time of the user.",
+ "created": {
+ "description": "Creation time of the permission.",
"format": "date-time",
"type": "string"
},
- "disabled": {
- "description": "Whether the user is disabled.",
- "type": "boolean"
- },
- "email": {
- "description": "Email of the user.",
+ "description": {
+ "description": "Description of the permission.",
"type": "string"
},
- "handle": {
- "description": "Handle of the user.",
+ "display_name": {
+ "description": "Displayed name for the permission.",
"type": "string"
},
- "icon": {
- "description": "URL of the user's icon.",
+ "display_type": {
+ "description": "Display type.",
"type": "string"
},
- "mfa_enabled": {
- "description": "If user has MFA enabled.",
- "readOnly": true,
- "type": "boolean"
- },
- "modified_at": {
- "description": "Time that the user was last modified.",
- "format": "date-time",
+ "group_name": {
+ "description": "Name of the permission group.",
"type": "string"
},
"name": {
- "description": "Name of the user.",
- "nullable": true,
+ "description": "Name of the permission.",
"type": "string"
},
- "service_account": {
- "description": "Whether the user is a service account.",
+ "restricted": {
+ "description": "Whether or not the permission is restricted.",
"type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the permission.",
+ "type": "string"
+ },
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Role object returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of the role.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the role.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
},
- "status": {
- "description": "Status of the user.",
+ "modified_at": {
+ "description": "Time of last role modification.",
+ "format": "date-time",
+ "readOnly": true,
"type": "string"
},
- "title": {
- "description": "Title of the user.",
- "nullable": true,
+ "name": {
+ "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
"type": "string"
},
- "verified": {
- "description": "Whether the user is verified.",
- "type": "boolean"
+ "user_count": {
+ "description": "Number of users with that role.",
+ "format": "int64",
+ "readOnly": true,
+ "type": "integer"
}
},
"type": "object"
},
"id": {
- "description": "ID of the user.",
+ "description": "The unique identifier of the role.",
"type": "string"
},
"relationships": {
- "description": "Relationships of the user object returned by the API.",
+ "description": "Relationships of the role object returned by the API.",
"properties": {
- "org": {
- "description": "Relationship to an organization.",
- "properties": {
- "data": {
- "description": "Relationship to organization object.",
- "properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
- "type": "string"
- },
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "other_orgs": {
- "description": "Relationship to organizations.",
- "properties": {
- "data": {
- "description": "Relationships to organization objects.",
- "example": [],
- "items": {
- "description": "Relationship to organization object.",
- "properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
- "type": "string"
- },
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- },
- "type": "array"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "other_users": {
- "description": "Relationship to users.",
- "properties": {
- "data": {
- "description": "Relationships to user objects.",
- "example": [],
- "items": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "roles": {
- "description": "Relationship to roles.",
+ "permissions": {
+ "description": "Relationship to multiple permissions objects.",
"properties": {
"data": {
- "description": "An array containing type and the unique identifier of a role.",
+ "description": "Relationships to permission objects.",
"items": {
- "description": "Relationship to role object.",
+ "description": "Relationship to permission object.",
"properties": {
"id": {
- "description": "The unique identifier of the role.",
- "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "description": "ID of the permission.",
"type": "string"
},
"type": {
- "default": "roles",
- "description": "Roles type.",
+ "default": "permissions",
+ "description": "Permissions resource type.",
"enum": [
- "roles"
+ "permissions"
],
- "example": "roles",
+ "example": "permissions",
"type": "string",
"x-enum-varnames": [
- "ROLES"
+ "PERMISSIONS"
]
}
},
@@ -402015,24 +426835,24 @@
}
}
},
- "type": "object",
- "x-merge-override": {
- "properties": false
- }
+ "type": "object"
},
"type": {
- "default": "users",
- "description": "Users resource type.",
+ "default": "roles",
+ "description": "Roles type.",
"enum": [
- "users"
+ "roles"
],
- "example": "users",
+ "example": "roles",
"type": "string",
"x-enum-varnames": [
- "USERS"
+ "ROLES"
]
}
},
+ "required": [
+ "type"
+ ],
"type": "object",
"x-merge-override": {
"required": false
@@ -402040,13 +426860,9 @@
}
]
},
- "readOnly": true,
"type": "array"
}
},
- "required": [
- "data"
- ],
"type": "object"
}
}
@@ -402081,34 +426897,6 @@
},
"description": "Bad Request"
},
- "401": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Unauthorized"
- },
"403": {
"content": {
"application/json": {
@@ -402135,35 +426923,7 @@
}
}
},
- "description": "Forbidden"
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Not Found"
+ "description": "Authentication error"
},
"429": {
"content": {
@@ -402201,156 +426961,68 @@
},
{
"AuthZ": [
- "incident_settings_write"
+ "user_access_invite"
]
}
],
- "summary": "Update an existing incident team",
+ "summary": "Create a user",
"tags": [
- "Incident Teams"
+ "Users"
],
"x-codegen-request-body-name": "body",
- "x-menu-order": 3,
+ "x-given": {
+ "user": {
+ "parameters": [
+ {
+ "name": "body",
+ "value": "{\n \"data\": {\n \"attributes\": {\n \"email\": \"{{ unique }}@datadoghq.com\",\n \"title\": \"user title\"\n },\n \"type\": \"users\"\n }\n}"
+ }
+ ],
+ "step": "there is a valid \"user\" in the system"
+ }
+ },
+ "x-menu-order": 2,
"x-permission": {
"operator": "OR",
"permissions": [
- "incident_settings_write"
+ "user_access_invite"
]
},
"x-undo": {
- "type": "idempotent"
- },
- "x-unstable": "**Note**: This endpoint is deprecated. See the [Teams API endpoints](https://docs.datadoghq.com/api/latest/teams/)."
+ "operationId": "DisableUser",
+ "parameters": [
+ {
+ "name": "user_id",
+ "source": "data.id"
+ }
+ ],
+ "type": "unsafe"
+ }
}
},
- "/api/v2/usage/application_security": {
- "get": {
- "deprecated": true,
- "description": "Get hourly usage for application security .\n**Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family)",
- "operationId": "GetUsageApplicationSecurityMonitoring",
+ "/api/v2/users/{user_id}": {
+ "delete": {
+ "description": "Disable a user. Can only be used with an application key belonging\nto an administrator user.",
+ "operationId": "DisableUser",
"parameters": [
{
- "description": "Datetime in ISO-8601 format, UTC, precise to hour: `[YYYY-MM-DDThh]` for usage beginning at this hour.",
- "in": "query",
- "name": "start_hr",
+ "description": "The ID of the user.",
+ "in": "path",
+ "name": "user_id",
"required": true,
"schema": {
- "format": "date-time",
- "type": "string"
- }
- },
- {
- "description": "Datetime in ISO-8601 format, UTC, precise to hour: `[YYYY-MM-DDThh]` for usage ending\n**before** this hour.",
- "in": "query",
- "name": "end_hr",
- "required": false,
- "schema": {
- "format": "date-time",
+ "example": "00000000-0000-9999-0000-000000000000",
"type": "string"
}
}
],
"responses": {
- "200": {
- "content": {
- "application/json;datetime-format=rfc3339": {
- "schema": {
- "description": "Application Security Monitoring usage response.",
- "properties": {
- "data": {
- "description": "Response containing Application Security Monitoring usage.",
- "items": {
- "description": "Usage data.",
- "properties": {
- "attributes": {
- "description": "Usage attributes data.",
- "properties": {
- "org_name": {
- "description": "The organization name.",
- "type": "string"
- },
- "product_family": {
- "description": "The product for which usage is being reported.",
- "type": "string"
- },
- "public_id": {
- "description": "The organization public ID.",
- "type": "string"
- },
- "region": {
- "description": "The region of the Datadog instance that the organization belongs to.",
- "type": "string"
- },
- "timeseries": {
- "description": "List of usage data reported for each requested hour.",
- "items": {
- "description": "Usage timeseries data.",
- "properties": {
- "timestamp": {
- "description": "Datetime in ISO-8601 format, UTC. The hour for the usage.",
- "format": "date-time",
- "type": "string"
- },
- "value": {
- "description": "Contains the number measured for the given usage_type during the hour.",
- "format": "int64",
- "nullable": true,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "usage_type": {
- "description": "Usage type that is being measured.",
- "enum": [
- "app_sec_host_count",
- "observability_pipelines_bytes_processed",
- "lambda_traced_invocations_count"
- ],
- "example": "observability_pipelines_bytes_processed",
- "type": "string",
- "x-enum-varnames": [
- "APP_SEC_HOST_COUNT",
- "OBSERVABILITY_PIPELINES_BYTES_PROCESSSED",
- "LAMBDA_TRACED_INVOCATIONS_COUNT"
- ]
- }
- },
- "type": "object"
- },
- "id": {
- "description": "Unique ID of the response.",
- "type": "string"
- },
- "type": {
- "default": "usage_timeseries",
- "description": "Type of usage data.",
- "enum": [
- "usage_timeseries"
- ],
- "example": "usage_timeseries",
- "type": "string",
- "x-enum-varnames": [
- "USAGE_TIMESERIES"
- ]
- }
- },
- "type": "object"
- },
- "type": "array"
- }
- },
- "type": "object"
- }
- }
- },
+ "204": {
"description": "OK"
},
- "400": {
+ "403": {
"content": {
- "application/json;datetime-format=rfc3339": {
+ "application/json": {
"schema": {
"description": "API error response.",
"properties": {
@@ -402374,11 +427046,11 @@
}
}
},
- "description": "Bad Request"
+ "description": "Authentication error"
},
- "403": {
+ "404": {
"content": {
- "application/json;datetime-format=rfc3339": {
+ "application/json": {
"schema": {
"description": "API error response.",
"properties": {
@@ -402402,11 +427074,11 @@
}
}
},
- "description": "Forbidden - User is not authorized"
+ "description": "Not found"
},
"429": {
"content": {
- "application/json;datetime-format=rfc3339": {
+ "application/json": {
"schema": {
"description": "API error response.",
"properties": {
@@ -402440,48 +427112,38 @@
},
{
"AuthZ": [
- "usage_read"
+ "user_access_manage"
]
}
],
- "summary": "Get hourly usage for application security",
+ "summary": "Disable a user",
"tags": [
- "Usage Metering"
+ "Users"
],
- "x-menu-order": 38,
+ "x-codegen-request-body-name": "body",
+ "x-menu-order": 5,
"x-permission": {
"operator": "OR",
"permissions": [
- "usage_read"
+ "user_access_manage",
+ "service_account_write"
]
},
"x-undo": {
- "type": "safe"
+ "type": "idempotent"
}
- }
- },
- "/api/v2/usage/billing_dimension_mapping": {
+ },
"get": {
- "description": "Get a mapping of billing dimensions to the corresponding keys for the supported usage metering public API endpoints.\nMapping data is updated on a monthly cadence.\n\nThis endpoint is only accessible to [parent-level organizations](https://docs.datadoghq.com/account_management/multi_organization/).",
- "operationId": "GetBillingDimensionMapping",
+ "description": "Get a user in the organization specified by the user’s `user_id`.",
+ "operationId": "GetUser",
"parameters": [
{
- "description": "Datetime in ISO-8601 format, UTC, and for mappings beginning this month. Defaults to the current month.",
- "in": "query",
- "name": "filter[month]",
- "required": false,
- "schema": {
- "format": "date-time",
- "type": "string"
- }
- },
- {
- "description": "String to specify whether to retrieve active billing dimension mappings for the contract or for all available mappings. Allowed views have the string `active` or `all`. Defaults to `active`.",
- "in": "query",
- "name": "filter[view]",
- "required": false,
+ "description": "The ID of the user.",
+ "in": "path",
+ "name": "user_id",
+ "required": true,
"schema": {
- "default": "active",
+ "example": "00000000-0000-9999-0000-000000000000",
"type": "string"
}
}
@@ -402489,87 +427151,494 @@
"responses": {
"200": {
"content": {
- "application/json;datetime-format=rfc3339": {
+ "application/json": {
"schema": {
- "description": "Billing dimensions mapping response.",
+ "description": "Response containing information about a single user.",
"properties": {
"data": {
- "description": "Billing dimensions mapping data.",
- "items": {
- "description": "The mapping data for each billing dimension.",
- "properties": {
- "attributes": {
- "description": "Mapping of billing dimensions to endpoint keys.",
- "properties": {
- "endpoints": {
- "description": "List of supported endpoints with their keys mapped to the billing_dimension.",
- "items": {
- "description": "An endpoint's keys mapped to the billing_dimension.",
+ "description": "User object returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of user object returned by the API.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the user.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "disabled": {
+ "description": "Whether the user is disabled.",
+ "type": "boolean"
+ },
+ "email": {
+ "description": "Email of the user.",
+ "type": "string"
+ },
+ "handle": {
+ "description": "Handle of the user.",
+ "type": "string"
+ },
+ "icon": {
+ "description": "URL of the user's icon.",
+ "type": "string"
+ },
+ "mfa_enabled": {
+ "description": "If user has MFA enabled.",
+ "readOnly": true,
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time that the user was last modified.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "service_account": {
+ "description": "Whether the user is a service account.",
+ "type": "boolean"
+ },
+ "status": {
+ "description": "Status of the user.",
+ "type": "string"
+ },
+ "title": {
+ "description": "Title of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "verified": {
+ "description": "Whether the user is verified.",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the user.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships of the user object returned by the API.",
+ "properties": {
+ "org": {
+ "description": "Relationship to an organization.",
+ "properties": {
+ "data": {
+ "description": "Relationship to organization object.",
"properties": {
"id": {
- "description": "The URL for the endpoint.",
- "example": "api/v1/usage/billable-summary",
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
"type": "string"
},
- "keys": {
- "description": "The billing dimension.",
- "example": [
- "apm_host_top99p",
- "apm_host_sum"
- ],
- "items": {
- "example": "apm_host_top99p",
- "type": "string"
- },
- "type": "array"
- },
- "status": {
- "description": "Denotes whether mapping keys were available for this endpoint.",
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
"enum": [
- "OK",
- "NOT_FOUND"
+ "orgs"
],
+ "example": "orgs",
"type": "string",
"x-enum-varnames": [
- "OK",
- "NOT_FOUND"
+ "ORGS"
]
}
- },
- "type": "object"
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_orgs": {
+ "description": "Relationship to organizations.",
+ "properties": {
+ "data": {
+ "description": "Relationships to organization objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_users": {
+ "description": "Relationship to users.",
+ "properties": {
+ "data": {
+ "description": "Relationships to user objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "roles": {
+ "description": "Relationship to roles.",
+ "properties": {
+ "data": {
+ "description": "An array containing type and the unique identifier of a role.",
+ "items": {
+ "description": "Relationship to role object.",
+ "properties": {
+ "id": {
+ "description": "The unique identifier of the role.",
+ "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "type": "string"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "properties": false
+ }
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "included": {
+ "description": "Array of objects related to the user.",
+ "items": {
+ "description": "An object related to a user.",
+ "oneOf": [
+ {
+ "description": "Organization object.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of the organization.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the organization.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of the organization.",
+ "type": "string"
+ },
+ "disabled": {
+ "description": "Whether or not the organization is disabled.",
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time of last organization modification.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the organization.",
+ "type": "string"
+ },
+ "public_id": {
+ "description": "Public ID of the organization.",
+ "type": "string"
+ },
+ "sharing": {
+ "description": "Sharing type of the organization.",
+ "type": "string"
+ },
+ "url": {
+ "description": "URL of the site that this organization exists at.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the organization.",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Permission object.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of a permission.",
+ "properties": {
+ "created": {
+ "description": "Creation time of the permission.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of the permission.",
+ "type": "string"
+ },
+ "display_name": {
+ "description": "Displayed name for the permission.",
+ "type": "string"
+ },
+ "display_type": {
+ "description": "Display type.",
+ "type": "string"
+ },
+ "group_name": {
+ "description": "Name of the permission group.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the permission.",
+ "type": "string"
+ },
+ "restricted": {
+ "description": "Whether or not the permission is restricted.",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the permission.",
+ "type": "string"
+ },
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Role object returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of the role.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the role.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "modified_at": {
+ "description": "Time of last role modification.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
+ "type": "string"
+ },
+ "user_count": {
+ "description": "Number of users with that role.",
+ "format": "int64",
+ "readOnly": true,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The unique identifier of the role.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships of the role object returned by the API.",
+ "properties": {
+ "permissions": {
+ "description": "Relationship to multiple permissions objects.",
+ "properties": {
+ "data": {
+ "description": "Relationships to permission objects.",
+ "items": {
+ "description": "Relationship to permission object.",
+ "properties": {
+ "id": {
+ "description": "ID of the permission.",
+ "type": "string"
+ },
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
},
- "type": "array"
- },
- "in_app_label": {
- "description": "Label used for the billing dimension in the Plan & Usage charts.",
- "example": "APM Hosts",
- "type": "string"
+ "type": "object"
},
- "timestamp": {
- "description": "Month in ISO-8601 format, UTC, and precise to the second: `[YYYY-MM-DDThh:mm:ss]`.",
- "format": "date-time",
- "type": "string"
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
}
},
- "type": "object"
- },
- "id": {
- "description": "ID of the billing dimension.",
- "type": "string"
- },
- "type": {
- "default": "billing_dimensions",
- "description": "Type of active billing dimensions data.",
- "enum": [
- "billing_dimensions"
+ "required": [
+ "type"
],
- "type": "string",
- "x-enum-varnames": [
- "BILLING_DIMENSIONS"
- ]
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
- },
- "type": "object"
+ ]
},
"type": "array"
}
@@ -402580,9 +427649,9 @@
},
"description": "OK"
},
- "400": {
+ "403": {
"content": {
- "application/json;datetime-format=rfc3339": {
+ "application/json": {
"schema": {
"description": "API error response.",
"properties": {
@@ -402606,11 +427675,11 @@
}
}
},
- "description": "Bad Request"
+ "description": "Authentication error"
},
- "403": {
+ "404": {
"content": {
- "application/json;datetime-format=rfc3339": {
+ "application/json": {
"schema": {
"description": "API error response.",
"properties": {
@@ -402634,11 +427703,11 @@
}
}
},
- "description": "Forbidden - User is not authorized"
+ "description": "Not found"
},
"429": {
"content": {
- "application/json;datetime-format=rfc3339": {
+ "application/json": {
"schema": {
"description": "API error response.",
"properties": {
@@ -402672,680 +427741,597 @@
},
{
"AuthZ": [
- "usage_read"
+ "user_access_read"
]
}
],
- "summary": "Get billing dimension mapping for usage endpoints",
+ "summary": "Get user details",
"tags": [
- "Usage Metering"
+ "Users"
],
- "x-menu-order": 1,
+ "x-codegen-request-body-name": "body",
+ "x-menu-order": 3,
"x-permission": {
"operator": "OR",
"permissions": [
- "usage_read"
+ "user_access_read"
]
},
"x-undo": {
"type": "safe"
}
- }
- },
- "/api/v2/usage/cost_by_org": {
- "get": {
- "deprecated": true,
- "description": "Get cost across multi-org account.\nCost by org data for a given month becomes available no later than the 16th of the following month.\n**Note:** This endpoint has been deprecated. Please use the new endpoint\n[`/historical_cost`](https://docs.datadoghq.com/api/latest/usage-metering/#get-historical-cost-across-your-account)\ninstead.\n\nThis endpoint is only accessible for [parent-level organizations](https://docs.datadoghq.com/account_management/multi_organization/).",
- "operationId": "GetCostByOrg",
+ },
+ "patch": {
+ "description": "Edit a user. Can only be used with an application key belonging\nto an administrator user.",
+ "operationId": "UpdateUser",
"parameters": [
{
- "description": "Datetime in ISO-8601 format, UTC, precise to month: `[YYYY-MM]` for cost beginning this month.",
- "in": "query",
- "name": "start_month",
+ "description": "The ID of the user.",
+ "in": "path",
+ "name": "user_id",
"required": true,
"schema": {
- "format": "date-time",
- "type": "string"
- }
- },
- {
- "description": "Datetime in ISO-8601 format, UTC, precise to month: `[YYYY-MM]` for cost ending this month.",
- "in": "query",
- "name": "end_month",
- "required": false,
- "schema": {
- "format": "date-time",
+ "example": "00000000-0000-9999-0000-000000000000",
"type": "string"
}
}
],
- "responses": {
- "200": {
- "content": {
- "application/json;datetime-format=rfc3339": {
- "schema": {
- "description": "Chargeback Summary response.",
- "properties": {
- "data": {
- "description": "Response containing Chargeback Summary.",
- "items": {
- "description": "Cost data.",
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "Update a user.",
+ "properties": {
+ "data": {
+ "description": "Object to update a user.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of the edited user.",
"properties": {
- "attributes": {
- "description": "Cost attributes data.",
- "properties": {
- "account_name": {
- "description": "The account name.",
- "type": "string"
- },
- "account_public_id": {
- "description": "The account public ID.",
- "type": "string"
- },
- "charges": {
- "description": "List of charges data reported for the requested month.",
- "items": {
- "description": "Charges breakdown.",
- "properties": {
- "charge_type": {
- "description": "The type of charge for a particular product.",
- "example": "on_demand",
- "type": "string"
- },
- "cost": {
- "description": "The cost for a particular product and charge type during a given month.",
- "format": "double",
- "type": "number"
- },
- "product_name": {
- "description": "The product for which cost is being reported.",
- "example": "infra_host",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "date": {
- "description": "The month requested.",
- "format": "date-time",
- "type": "string"
- },
- "org_name": {
- "description": "The organization name.",
- "type": "string"
- },
- "public_id": {
- "description": "The organization public ID.",
- "type": "string"
- },
- "region": {
- "description": "The region of the Datadog instance that the organization belongs to.",
- "type": "string"
- },
- "total_cost": {
- "description": "The total cost of products for the month.",
- "format": "double",
- "type": "number"
- }
- },
- "type": "object"
+ "disabled": {
+ "description": "If the user is enabled or disabled.",
+ "type": "boolean"
},
- "id": {
- "description": "Unique ID of the response.",
+ "email": {
+ "description": "The email of the user.",
"type": "string"
},
- "type": {
- "default": "cost_by_org",
- "description": "Type of cost data.",
- "enum": [
- "cost_by_org"
- ],
- "example": "cost_by_org",
- "type": "string",
- "x-enum-varnames": [
- "COST_BY_ORG"
- ]
+ "name": {
+ "description": "The name of the user.",
+ "type": "string"
}
},
"type": "object"
},
- "type": "array"
- }
- },
- "type": "object"
- }
- }
- },
- "description": "OK"
- },
- "400": {
- "content": {
- "application/json;datetime-format=rfc3339": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Bad Request"
- },
- "403": {
- "content": {
- "application/json;datetime-format=rfc3339": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Forbidden - User is not authorized"
- },
- "429": {
- "content": {
- "application/json;datetime-format=rfc3339": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
+ "id": {
+ "description": "ID of the user.",
+ "example": "00000000-0000-feed-0000-000000000000",
"type": "string"
},
- "type": "array"
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "attributes",
+ "type",
+ "id"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
}
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
}
- },
- "description": "Too many requests"
- }
- },
- "security": [
- {
- "apiKeyAuth": [],
- "appKeyAuth": []
- },
- {
- "AuthZ": [
- "usage_read"
- ]
- }
- ],
- "summary": "Get cost across multi-org account",
- "tags": [
- "Usage Metering"
- ],
- "x-menu-order": 45,
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "usage_read"
- ]
- },
- "x-undo": {
- "type": "safe"
- }
- }
- },
- "/api/v2/usage/estimated_cost": {
- "get": {
- "description": "Get estimated cost across multi-org and single root-org accounts.\nEstimated cost data is only available for the current month and previous month\nand is delayed by up to 72 hours from when it was incurred.\nTo access historical costs prior to this, use the `/historical_cost` endpoint.\n\nThis endpoint is only accessible for [parent-level organizations](https://docs.datadoghq.com/account_management/multi_organization/).",
- "operationId": "GetEstimatedCostByOrg",
- "parameters": [
- {
- "description": "String to specify whether cost is broken down at a parent-org level or at the sub-org level. Available views are `summary` and `sub-org`. Defaults to `summary`.",
- "in": "query",
- "name": "view",
- "required": false,
- "schema": {
- "type": "string"
- }
- },
- {
- "description": "Datetime in ISO-8601 format, UTC, precise to month: `[YYYY-MM]` for cost beginning this month. **Either start_month or start_date should be specified, but not both.** (start_month cannot go beyond two months in the past). Provide an `end_month` to view month-over-month cost.",
- "in": "query",
- "name": "start_month",
- "required": false,
- "schema": {
- "format": "date-time",
- "type": "string"
- }
- },
- {
- "description": "Datetime in ISO-8601 format, UTC, precise to month: `[YYYY-MM]` for cost ending this month.",
- "in": "query",
- "name": "end_month",
- "required": false,
- "schema": {
- "format": "date-time",
- "type": "string"
- }
- },
- {
- "description": "Datetime in ISO-8601 format, UTC, precise to day: `[YYYY-MM-DD]` for cost beginning this day. **Either start_month or start_date should be specified, but not both.** (start_date cannot go beyond two months in the past). Provide an `end_date` to view day-over-day cumulative cost.",
- "in": "query",
- "name": "start_date",
- "required": false,
- "schema": {
- "format": "date-time",
- "type": "string"
- }
- },
- {
- "description": "Datetime in ISO-8601 format, UTC, precise to day: `[YYYY-MM-DD]` for cost ending this day.",
- "in": "query",
- "name": "end_date",
- "required": false,
- "schema": {
- "format": "date-time",
- "type": "string"
}
},
- {
- "description": "Boolean to specify whether to include accounts connected to the current account as partner customers in the Datadog partner network program. Defaults to `false`. ",
- "in": "query",
- "name": "include_connected_accounts",
- "required": false,
- "schema": {
- "default": false,
- "type": "boolean"
- }
- }
- ],
+ "required": true
+ },
"responses": {
"200": {
"content": {
- "application/json;datetime-format=rfc3339": {
+ "application/json": {
"schema": {
- "description": "Chargeback Summary response.",
+ "description": "Response containing information about a single user.",
"properties": {
"data": {
- "description": "Response containing Chargeback Summary.",
- "items": {
- "description": "Cost data.",
- "properties": {
- "attributes": {
- "description": "Cost attributes data.",
- "properties": {
- "account_name": {
- "description": "The account name.",
- "type": "string"
- },
- "account_public_id": {
- "description": "The account public ID.",
- "type": "string"
- },
- "charges": {
- "description": "List of charges data reported for the requested month.",
- "items": {
- "description": "Charges breakdown.",
+ "description": "User object returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of user object returned by the API.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the user.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "disabled": {
+ "description": "Whether the user is disabled.",
+ "type": "boolean"
+ },
+ "email": {
+ "description": "Email of the user.",
+ "type": "string"
+ },
+ "handle": {
+ "description": "Handle of the user.",
+ "type": "string"
+ },
+ "icon": {
+ "description": "URL of the user's icon.",
+ "type": "string"
+ },
+ "mfa_enabled": {
+ "description": "If user has MFA enabled.",
+ "readOnly": true,
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time that the user was last modified.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "service_account": {
+ "description": "Whether the user is a service account.",
+ "type": "boolean"
+ },
+ "status": {
+ "description": "Status of the user.",
+ "type": "string"
+ },
+ "title": {
+ "description": "Title of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "verified": {
+ "description": "Whether the user is verified.",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the user.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships of the user object returned by the API.",
+ "properties": {
+ "org": {
+ "description": "Relationship to an organization.",
+ "properties": {
+ "data": {
+ "description": "Relationship to organization object.",
"properties": {
- "charge_type": {
- "description": "The type of charge for a particular product.",
- "example": "on_demand",
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
"type": "string"
},
- "cost": {
- "description": "The cost for a particular product and charge type during a given month.",
- "format": "double",
- "type": "number"
- },
- "product_name": {
- "description": "The product for which cost is being reported.",
- "example": "infra_host",
- "type": "string"
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
}
},
+ "required": [
+ "id",
+ "type"
+ ],
"type": "object"
- },
- "type": "array"
- },
- "date": {
- "description": "The month requested.",
- "format": "date-time",
- "type": "string"
+ }
},
- "org_name": {
- "description": "The organization name.",
- "type": "string"
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_orgs": {
+ "description": "Relationship to organizations.",
+ "properties": {
+ "data": {
+ "description": "Relationships to organization objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
},
- "public_id": {
- "description": "The organization public ID.",
- "type": "string"
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_users": {
+ "description": "Relationship to users.",
+ "properties": {
+ "data": {
+ "description": "Relationships to user objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
},
- "region": {
- "description": "The region of the Datadog instance that the organization belongs to.",
- "type": "string"
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "roles": {
+ "description": "Relationship to roles.",
+ "properties": {
+ "data": {
+ "description": "An array containing type and the unique identifier of a role.",
+ "items": {
+ "description": "Relationship to role object.",
+ "properties": {
+ "id": {
+ "description": "The unique identifier of the role.",
+ "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "type": "string"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
},
- "total_cost": {
- "description": "The total cost of products for the month.",
- "format": "double",
- "type": "number"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
}
- },
- "type": "object"
- },
- "id": {
- "description": "Unique ID of the response.",
- "type": "string"
+ }
},
- "type": {
- "default": "cost_by_org",
- "description": "Type of cost data.",
- "enum": [
- "cost_by_org"
- ],
- "example": "cost_by_org",
- "type": "string",
- "x-enum-varnames": [
- "COST_BY_ORG"
- ]
+ "type": "object",
+ "x-merge-override": {
+ "properties": false
}
},
- "type": "object"
- },
- "type": "array"
- }
- },
- "type": "object"
- }
- }
- },
- "description": "OK"
- },
- "400": {
- "content": {
- "application/json;datetime-format=rfc3339": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Bad Request"
- },
- "403": {
- "content": {
- "application/json;datetime-format=rfc3339": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Forbidden - User is not authorized"
- },
- "429": {
- "content": {
- "application/json;datetime-format=rfc3339": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
},
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Too many requests"
- }
- },
- "security": [
- {
- "apiKeyAuth": [],
- "appKeyAuth": []
- },
- {
- "AuthZ": [
- "usage_read"
- ]
- }
- ],
- "summary": "Get estimated cost across your account",
- "tags": [
- "Usage Metering"
- ],
- "x-menu-order": 6,
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "usage_read"
- ]
- },
- "x-undo": {
- "type": "safe"
- }
- }
- },
- "/api/v2/usage/historical_cost": {
- "get": {
- "description": "Get historical cost across multi-org and single root-org accounts.\nCost data for a given month becomes available no later than the 16th of the following month.\n\nThis endpoint is only accessible for [parent-level organizations](https://docs.datadoghq.com/account_management/multi_organization/).",
- "operationId": "GetHistoricalCostByOrg",
- "parameters": [
- {
- "description": "String to specify whether cost is broken down at a parent-org level or at the sub-org level. Available views are `summary` and `sub-org`. Defaults to `summary`.",
- "in": "query",
- "name": "view",
- "required": false,
- "schema": {
- "type": "string"
- }
- },
- {
- "description": "Datetime in ISO-8601 format, UTC, precise to month: `[YYYY-MM]` for cost beginning this month.",
- "in": "query",
- "name": "start_month",
- "required": true,
- "schema": {
- "format": "date-time",
- "type": "string"
- }
- },
- {
- "description": "Datetime in ISO-8601 format, UTC, precise to month: `[YYYY-MM]` for cost ending this month.",
- "in": "query",
- "name": "end_month",
- "required": false,
- "schema": {
- "format": "date-time",
- "type": "string"
- }
- },
- {
- "description": "Boolean to specify whether to include accounts connected to the current account as partner customers in the Datadog partner network program. Defaults to `false`. ",
- "in": "query",
- "name": "include_connected_accounts",
- "required": false,
- "schema": {
- "default": false,
- "type": "boolean"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json;datetime-format=rfc3339": {
- "schema": {
- "description": "Chargeback Summary response.",
- "properties": {
- "data": {
- "description": "Response containing Chargeback Summary.",
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "included": {
+ "description": "Array of objects related to the user.",
"items": {
- "description": "Cost data.",
- "properties": {
- "attributes": {
- "description": "Cost attributes data.",
+ "description": "An object related to a user.",
+ "oneOf": [
+ {
+ "description": "Organization object.",
"properties": {
- "account_name": {
- "description": "The account name.",
- "type": "string"
+ "attributes": {
+ "description": "Attributes of the organization.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the organization.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of the organization.",
+ "type": "string"
+ },
+ "disabled": {
+ "description": "Whether or not the organization is disabled.",
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time of last organization modification.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the organization.",
+ "type": "string"
+ },
+ "public_id": {
+ "description": "Public ID of the organization.",
+ "type": "string"
+ },
+ "sharing": {
+ "description": "Sharing type of the organization.",
+ "type": "string"
+ },
+ "url": {
+ "description": "URL of the site that this organization exists at.",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
- "account_public_id": {
- "description": "The account public ID.",
+ "id": {
+ "description": "ID of the organization.",
"type": "string"
},
- "charges": {
- "description": "List of charges data reported for the requested month.",
- "items": {
- "description": "Charges breakdown.",
- "properties": {
- "charge_type": {
- "description": "The type of charge for a particular product.",
- "example": "on_demand",
- "type": "string"
- },
- "cost": {
- "description": "The cost for a particular product and charge type during a given month.",
- "format": "double",
- "type": "number"
- },
- "product_name": {
- "description": "The product for which cost is being reported.",
- "example": "infra_host",
- "type": "string"
- }
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Permission object.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of a permission.",
+ "properties": {
+ "created": {
+ "description": "Creation time of the permission.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of the permission.",
+ "type": "string"
+ },
+ "display_name": {
+ "description": "Displayed name for the permission.",
+ "type": "string"
+ },
+ "display_type": {
+ "description": "Display type.",
+ "type": "string"
+ },
+ "group_name": {
+ "description": "Name of the permission group.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the permission.",
+ "type": "string"
},
- "type": "object"
+ "restricted": {
+ "description": "Whether or not the permission is restricted.",
+ "type": "boolean"
+ }
},
- "type": "array"
+ "type": "object"
},
- "date": {
- "description": "The month requested.",
- "format": "date-time",
+ "id": {
+ "description": "ID of the permission.",
"type": "string"
},
- "org_name": {
- "description": "The organization name.",
- "type": "string"
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Role object returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of the role.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the role.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "modified_at": {
+ "description": "Time of last role modification.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
+ "type": "string"
+ },
+ "user_count": {
+ "description": "Number of users with that role.",
+ "format": "int64",
+ "readOnly": true,
+ "type": "integer"
+ }
+ },
+ "type": "object"
},
- "public_id": {
- "description": "The organization public ID.",
+ "id": {
+ "description": "The unique identifier of the role.",
"type": "string"
},
- "region": {
- "description": "The region of the Datadog instance that the organization belongs to.",
- "type": "string"
+ "relationships": {
+ "description": "Relationships of the role object returned by the API.",
+ "properties": {
+ "permissions": {
+ "description": "Relationship to multiple permissions objects.",
+ "properties": {
+ "data": {
+ "description": "Relationships to permission objects.",
+ "items": {
+ "description": "Relationship to permission object.",
+ "properties": {
+ "id": {
+ "description": "ID of the permission.",
+ "type": "string"
+ },
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object"
},
- "total_cost": {
- "description": "The total cost of products for the month.",
- "format": "double",
- "type": "number"
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
}
},
- "type": "object"
- },
- "id": {
- "description": "Unique ID of the response.",
- "type": "string"
- },
- "type": {
- "default": "cost_by_org",
- "description": "Type of cost data.",
- "enum": [
- "cost_by_org"
+ "required": [
+ "type"
],
- "example": "cost_by_org",
- "type": "string",
- "x-enum-varnames": [
- "COST_BY_ORG"
- ]
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
- },
- "type": "object"
+ ]
},
"type": "array"
}
@@ -403358,7 +428344,7 @@
},
"400": {
"content": {
- "application/json;datetime-format=rfc3339": {
+ "application/json": {
"schema": {
"description": "API error response.",
"properties": {
@@ -403386,35 +428372,7 @@
},
"403": {
"content": {
- "application/json;datetime-format=rfc3339": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Forbidden - User is not authorized"
- },
- "429": {
- "content": {
- "application/json;datetime-format=rfc3339": {
+ "application/json": {
"schema": {
"description": "API error response.",
"properties": {
@@ -403438,247 +428396,11 @@
}
}
},
- "description": "Too many requests"
- }
- },
- "security": [
- {
- "apiKeyAuth": [],
- "appKeyAuth": []
- },
- {
- "AuthZ": [
- "usage_read"
- ]
- }
- ],
- "summary": "Get historical cost across your account",
- "tags": [
- "Usage Metering"
- ],
- "x-menu-order": 5,
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "usage_read"
- ]
- },
- "x-undo": {
- "type": "safe"
- }
- }
- },
- "/api/v2/usage/hourly_usage": {
- "get": {
- "description": "Get hourly usage by product family.",
- "operationId": "GetHourlyUsage",
- "parameters": [
- {
- "description": "Datetime in ISO-8601 format, UTC, precise to hour: [YYYY-MM-DDThh] for usage beginning at this hour.",
- "in": "query",
- "name": "filter[timestamp][start]",
- "required": true,
- "schema": {
- "format": "date-time",
- "type": "string"
- }
- },
- {
- "description": "Datetime in ISO-8601 format, UTC, precise to hour: [YYYY-MM-DDThh] for usage ending **before** this hour.",
- "in": "query",
- "name": "filter[timestamp][end]",
- "required": false,
- "schema": {
- "format": "date-time",
- "type": "string"
- }
- },
- {
- "description": "Comma separated list of product families to retrieve. Available families are `all`, `analyzed_logs`,\n`application_security`, `audit_trail`, `serverless`, `ci_app`, `cloud_cost_management`, `cloud_siem`,\n`csm_container_enterprise`, `csm_host_enterprise`, `cspm`, `custom_events`, `cws`, `dbm`, `error_tracking`,\n`fargate`, `infra_hosts`, `incident_management`, `indexed_logs`, `indexed_spans`, `ingested_spans`, `iot`,\n`lambda_traced_invocations`, `logs`, `network_flows`, `network_hosts`, `network_monitoring`, `observability_pipelines`,\n`online_archive`, `profiling`, `rum`, `rum_browser_sessions`, `rum_mobile_sessions`, `sds`, `snmp`, `software_delivery`,\n`synthetics_api`, `synthetics_browser`, `synthetics_mobile`, `synthetics_parallel_testing`, `timeseries`, `vuln_management`,\nand `workflow_executions`.\nThe following product family has been **deprecated**: `audit_logs`.",
- "in": "query",
- "name": "filter[product_families]",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "description": "Include child org usage in the response. Defaults to false.",
- "in": "query",
- "name": "filter[include_descendants]",
- "required": false,
- "schema": {
- "default": false,
- "type": "boolean"
- }
- },
- {
- "description": "Boolean to specify whether to include accounts connected to the current account as partner customers in the Datadog partner network program. Defaults to false.",
- "in": "query",
- "name": "filter[include_connected_accounts]",
- "required": false,
- "schema": {
- "default": false,
- "type": "boolean"
- }
- },
- {
- "description": "Include breakdown of usage by subcategories where applicable (for product family logs only). Defaults to false.",
- "in": "query",
- "name": "filter[include_breakdown]",
- "required": false,
- "schema": {
- "default": false,
- "type": "boolean"
- }
- },
- {
- "description": "Comma separated list of product family versions to use in the format `product_family:version`. For example,\n`infra_hosts:1.0.0`. If this parameter is not used, the API will use the latest version of each requested\nproduct family. Currently all families have one version `1.0.0`.",
- "in": "query",
- "name": "filter[versions]",
- "required": false,
- "schema": {
- "type": "string"
- }
- },
- {
- "description": "Maximum number of results to return (between 1 and 500) - defaults to 500 if limit not specified.",
- "in": "query",
- "name": "page[limit]",
- "required": false,
- "schema": {
- "default": 500,
- "format": "int32",
- "maximum": 500,
- "minimum": 1,
- "type": "integer"
- }
- },
- {
- "description": "List following results with a next_record_id provided in the previous query.",
- "in": "query",
- "name": "page[next_record_id]",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json;datetime-format=rfc3339": {
- "schema": {
- "description": "Hourly usage response.",
- "properties": {
- "data": {
- "description": "Response containing hourly usage.",
- "items": {
- "description": "Hourly usage for a product family for an org.",
- "properties": {
- "attributes": {
- "description": "Attributes of hourly usage for a product family for an org for a time period.",
- "properties": {
- "account_name": {
- "description": "The account name.",
- "type": "string"
- },
- "account_public_id": {
- "description": "The account public ID.",
- "type": "string"
- },
- "measurements": {
- "description": "List of the measured usage values for the product family for the org for the time period.",
- "items": {
- "description": "Usage amount for a given usage type.",
- "properties": {
- "usage_type": {
- "description": "Type of usage.",
- "type": "string"
- },
- "value": {
- "description": "Contains the number measured for the given usage_type during the hour.",
- "format": "int64",
- "nullable": true,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "org_name": {
- "description": "The organization name.",
- "type": "string"
- },
- "product_family": {
- "description": "The product for which usage is being reported.",
- "type": "string"
- },
- "public_id": {
- "description": "The organization public ID.",
- "type": "string"
- },
- "region": {
- "description": "The region of the Datadog instance that the organization belongs to.",
- "type": "string"
- },
- "timestamp": {
- "description": "Datetime in ISO-8601 format, UTC. The hour for the usage.",
- "format": "date-time",
- "type": "string"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "Unique ID of the response.",
- "type": "string"
- },
- "type": {
- "default": "usage_timeseries",
- "description": "Type of usage data.",
- "enum": [
- "usage_timeseries"
- ],
- "example": "usage_timeseries",
- "type": "string",
- "x-enum-varnames": [
- "USAGE_TIMESERIES"
- ]
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "meta": {
- "description": "The object containing document metadata.",
- "properties": {
- "pagination": {
- "description": "The metadata for the current pagination.",
- "properties": {
- "next_record_id": {
- "description": "The cursor to get the next results (if any). To make the next request, use the same parameters and add `next_record_id`.",
- "nullable": true,
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "type": "object"
- }
- },
- "type": "object"
- }
- }
- },
- "description": "OK"
+ "description": "Authentication error"
},
- "400": {
+ "404": {
"content": {
- "application/json;datetime-format=rfc3339": {
+ "application/json": {
"schema": {
"description": "API error response.",
"properties": {
@@ -403702,11 +428424,11 @@
}
}
},
- "description": "Bad Request"
+ "description": "Not found"
},
- "403": {
+ "422": {
"content": {
- "application/json;datetime-format=rfc3339": {
+ "application/json": {
"schema": {
"description": "API error response.",
"properties": {
@@ -403730,11 +428452,11 @@
}
}
},
- "description": "Forbidden - User is not authorized"
+ "description": "Unprocessable Entity"
},
"429": {
"content": {
- "application/json;datetime-format=rfc3339": {
+ "application/json": {
"schema": {
"description": "API error response.",
"properties": {
@@ -403768,49 +428490,43 @@
},
{
"AuthZ": [
- "usage_read"
+ "user_access_manage"
]
}
],
- "summary": "Get hourly usage by product family",
+ "summary": "Update a user",
"tags": [
- "Usage Metering"
+ "Users"
],
- "x-menu-order": 1,
+ "x-codegen-request-body-name": "body",
+ "x-menu-order": 4,
"x-permission": {
"operator": "OR",
"permissions": [
- "usage_read"
+ "user_access_manage",
+ "service_account_write"
]
},
"x-undo": {
- "type": "safe"
+ "type": "idempotent"
}
+ },
+ "x-merge-override": {
+ "delete": true
}
},
- "/api/v2/usage/lambda_traced_invocations": {
+ "/api/v2/users/{user_id}/orgs": {
"get": {
- "deprecated": true,
- "description": "Get hourly usage for Lambda traced invocations.\n**Note:** This endpoint has been deprecated.. Hourly usage data for all products is now available in the [Get hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family)",
- "operationId": "GetUsageLambdaTracedInvocations",
+ "description": "Get a user organization. Returns the user information and all organizations\njoined by this user.",
+ "operationId": "ListUserOrganizations",
"parameters": [
{
- "description": "Datetime in ISO-8601 format, UTC, precise to hour: `[YYYY-MM-DDThh]` for usage beginning at this hour.",
- "in": "query",
- "name": "start_hr",
+ "description": "The ID of the user.",
+ "in": "path",
+ "name": "user_id",
"required": true,
"schema": {
- "format": "date-time",
- "type": "string"
- }
- },
- {
- "description": "Datetime in ISO-8601 format, UTC, precise to hour: `[YYYY-MM-DDThh]` for usage ending\n**before** this hour.",
- "in": "query",
- "name": "end_hr",
- "required": false,
- "schema": {
- "format": "date-time",
+ "example": "00000000-0000-9999-0000-000000000000",
"type": "string"
}
}
@@ -403818,328 +428534,494 @@
"responses": {
"200": {
"content": {
- "application/json;datetime-format=rfc3339": {
+ "application/json": {
"schema": {
- "description": "Lambda Traced Invocations usage response.",
+ "description": "Response containing information about a single user.",
"properties": {
"data": {
- "description": "Response containing Lambda Traced Invocations usage.",
- "items": {
- "description": "Usage data.",
- "properties": {
- "attributes": {
- "description": "Usage attributes data.",
- "properties": {
- "org_name": {
- "description": "The organization name.",
- "type": "string"
- },
- "product_family": {
- "description": "The product for which usage is being reported.",
- "type": "string"
- },
- "public_id": {
- "description": "The organization public ID.",
- "type": "string"
- },
- "region": {
- "description": "The region of the Datadog instance that the organization belongs to.",
- "type": "string"
- },
- "timeseries": {
- "description": "List of usage data reported for each requested hour.",
- "items": {
- "description": "Usage timeseries data.",
+ "description": "User object returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of user object returned by the API.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the user.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "disabled": {
+ "description": "Whether the user is disabled.",
+ "type": "boolean"
+ },
+ "email": {
+ "description": "Email of the user.",
+ "type": "string"
+ },
+ "handle": {
+ "description": "Handle of the user.",
+ "type": "string"
+ },
+ "icon": {
+ "description": "URL of the user's icon.",
+ "type": "string"
+ },
+ "mfa_enabled": {
+ "description": "If user has MFA enabled.",
+ "readOnly": true,
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time that the user was last modified.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "service_account": {
+ "description": "Whether the user is a service account.",
+ "type": "boolean"
+ },
+ "status": {
+ "description": "Status of the user.",
+ "type": "string"
+ },
+ "title": {
+ "description": "Title of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "verified": {
+ "description": "Whether the user is verified.",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the user.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships of the user object returned by the API.",
+ "properties": {
+ "org": {
+ "description": "Relationship to an organization.",
+ "properties": {
+ "data": {
+ "description": "Relationship to organization object.",
"properties": {
- "timestamp": {
- "description": "Datetime in ISO-8601 format, UTC. The hour for the usage.",
- "format": "date-time",
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
"type": "string"
},
- "value": {
- "description": "Contains the number measured for the given usage_type during the hour.",
- "format": "int64",
- "nullable": true,
- "type": "integer"
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
}
},
+ "required": [
+ "id",
+ "type"
+ ],
"type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_orgs": {
+ "description": "Relationship to organizations.",
+ "properties": {
+ "data": {
+ "description": "Relationships to organization objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_users": {
+ "description": "Relationship to users.",
+ "properties": {
+ "data": {
+ "description": "Relationships to user objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "roles": {
+ "description": "Relationship to roles.",
+ "properties": {
+ "data": {
+ "description": "An array containing type and the unique identifier of a role.",
+ "items": {
+ "description": "Relationship to role object.",
+ "properties": {
+ "id": {
+ "description": "The unique identifier of the role.",
+ "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "type": "string"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "properties": false
+ }
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "included": {
+ "description": "Array of objects related to the user.",
+ "items": {
+ "description": "An object related to a user.",
+ "oneOf": [
+ {
+ "description": "Organization object.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of the organization.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the organization.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of the organization.",
+ "type": "string"
+ },
+ "disabled": {
+ "description": "Whether or not the organization is disabled.",
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time of last organization modification.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the organization.",
+ "type": "string"
+ },
+ "public_id": {
+ "description": "Public ID of the organization.",
+ "type": "string"
+ },
+ "sharing": {
+ "description": "Sharing type of the organization.",
+ "type": "string"
+ },
+ "url": {
+ "description": "URL of the site that this organization exists at.",
+ "type": "string"
+ }
},
- "type": "array"
+ "type": "object"
},
- "usage_type": {
- "description": "Usage type that is being measured.",
+ "id": {
+ "description": "ID of the organization.",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
"enum": [
- "app_sec_host_count",
- "observability_pipelines_bytes_processed",
- "lambda_traced_invocations_count"
+ "orgs"
],
- "example": "observability_pipelines_bytes_processed",
+ "example": "orgs",
"type": "string",
"x-enum-varnames": [
- "APP_SEC_HOST_COUNT",
- "OBSERVABILITY_PIPELINES_BYTES_PROCESSSED",
- "LAMBDA_TRACED_INVOCATIONS_COUNT"
+ "ORGS"
]
}
},
+ "required": [
+ "type"
+ ],
"type": "object"
},
- "id": {
- "description": "Unique ID of the response.",
- "type": "string"
- },
- "type": {
- "default": "usage_timeseries",
- "description": "Type of usage data.",
- "enum": [
- "usage_timeseries"
- ],
- "example": "usage_timeseries",
- "type": "string",
- "x-enum-varnames": [
- "USAGE_TIMESERIES"
- ]
- }
- },
- "type": "object"
- },
- "type": "array"
- }
- },
- "type": "object"
- }
- }
- },
- "description": "OK"
- },
- "400": {
- "content": {
- "application/json;datetime-format=rfc3339": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Bad Request"
- },
- "403": {
- "content": {
- "application/json;datetime-format=rfc3339": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Forbidden - User is not authorized"
- },
- "429": {
- "content": {
- "application/json;datetime-format=rfc3339": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Too many requests"
- }
- },
- "security": [
- {
- "apiKeyAuth": [],
- "appKeyAuth": []
- },
- {
- "AuthZ": [
- "usage_read"
- ]
- }
- ],
- "summary": "Get hourly usage for Lambda traced invocations",
- "tags": [
- "Usage Metering"
- ],
- "x-menu-order": 37,
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "usage_read"
- ]
- },
- "x-undo": {
- "type": "safe"
- }
- }
- },
- "/api/v2/usage/observability_pipelines": {
- "get": {
- "deprecated": true,
- "description": "Get hourly usage for observability pipelines.\n**Note:** This endpoint has been deprecated. Hourly usage data for all products is now available in the [Get hourly usage by product family API](https://docs.datadoghq.com/api/latest/usage-metering/#get-hourly-usage-by-product-family)",
- "operationId": "GetUsageObservabilityPipelines",
- "parameters": [
- {
- "description": "Datetime in ISO-8601 format, UTC, precise to hour: `[YYYY-MM-DDThh]` for usage beginning at this hour.",
- "in": "query",
- "name": "start_hr",
- "required": true,
- "schema": {
- "format": "date-time",
- "type": "string"
- }
- },
- {
- "description": "Datetime in ISO-8601 format, UTC, precise to hour: `[YYYY-MM-DDThh]` for usage ending\n**before** this hour.",
- "in": "query",
- "name": "end_hr",
- "required": false,
- "schema": {
- "format": "date-time",
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json;datetime-format=rfc3339": {
- "schema": {
- "description": "Observability Pipelines usage response.",
- "properties": {
- "data": {
- "description": "Response containing Observability Pipelines usage.",
- "items": {
- "description": "Usage data.",
- "properties": {
- "attributes": {
- "description": "Usage attributes data.",
+ {
+ "description": "Permission object.",
"properties": {
- "org_name": {
- "description": "The organization name.",
- "type": "string"
+ "attributes": {
+ "description": "Attributes of a permission.",
+ "properties": {
+ "created": {
+ "description": "Creation time of the permission.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of the permission.",
+ "type": "string"
+ },
+ "display_name": {
+ "description": "Displayed name for the permission.",
+ "type": "string"
+ },
+ "display_type": {
+ "description": "Display type.",
+ "type": "string"
+ },
+ "group_name": {
+ "description": "Name of the permission group.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the permission.",
+ "type": "string"
+ },
+ "restricted": {
+ "description": "Whether or not the permission is restricted.",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
},
- "product_family": {
- "description": "The product for which usage is being reported.",
+ "id": {
+ "description": "ID of the permission.",
"type": "string"
},
- "public_id": {
- "description": "The organization public ID.",
- "type": "string"
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Role object returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of the role.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the role.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "modified_at": {
+ "description": "Time of last role modification.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
+ "type": "string"
+ },
+ "user_count": {
+ "description": "Number of users with that role.",
+ "format": "int64",
+ "readOnly": true,
+ "type": "integer"
+ }
+ },
+ "type": "object"
},
- "region": {
- "description": "The region of the Datadog instance that the organization belongs to.",
+ "id": {
+ "description": "The unique identifier of the role.",
"type": "string"
},
- "timeseries": {
- "description": "List of usage data reported for each requested hour.",
- "items": {
- "description": "Usage timeseries data.",
- "properties": {
- "timestamp": {
- "description": "Datetime in ISO-8601 format, UTC. The hour for the usage.",
- "format": "date-time",
- "type": "string"
+ "relationships": {
+ "description": "Relationships of the role object returned by the API.",
+ "properties": {
+ "permissions": {
+ "description": "Relationship to multiple permissions objects.",
+ "properties": {
+ "data": {
+ "description": "Relationships to permission objects.",
+ "items": {
+ "description": "Relationship to permission object.",
+ "properties": {
+ "id": {
+ "description": "ID of the permission.",
+ "type": "string"
+ },
+ "type": {
+ "default": "permissions",
+ "description": "Permissions resource type.",
+ "enum": [
+ "permissions"
+ ],
+ "example": "permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "PERMISSIONS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
},
- "value": {
- "description": "Contains the number measured for the given usage_type during the hour.",
- "format": "int64",
- "nullable": true,
- "type": "integer"
+ "type": "object",
+ "x-merge-override": {
+ "required": false
}
- },
- "type": "object"
+ }
},
- "type": "array"
+ "type": "object"
},
- "usage_type": {
- "description": "Usage type that is being measured.",
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
"enum": [
- "app_sec_host_count",
- "observability_pipelines_bytes_processed",
- "lambda_traced_invocations_count"
+ "roles"
],
- "example": "observability_pipelines_bytes_processed",
+ "example": "roles",
"type": "string",
"x-enum-varnames": [
- "APP_SEC_HOST_COUNT",
- "OBSERVABILITY_PIPELINES_BYTES_PROCESSSED",
- "LAMBDA_TRACED_INVOCATIONS_COUNT"
+ "ROLES"
]
}
},
- "type": "object"
- },
- "id": {
- "description": "Unique ID of the response.",
- "type": "string"
- },
- "type": {
- "default": "usage_timeseries",
- "description": "Type of usage data.",
- "enum": [
- "usage_timeseries"
+ "required": [
+ "type"
],
- "example": "usage_timeseries",
- "type": "string",
- "x-enum-varnames": [
- "USAGE_TIMESERIES"
- ]
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
- },
- "type": "object"
+ ]
},
"type": "array"
}
@@ -404150,9 +429032,9 @@
},
"description": "OK"
},
- "400": {
+ "403": {
"content": {
- "application/json;datetime-format=rfc3339": {
+ "application/json": {
"schema": {
"description": "API error response.",
"properties": {
@@ -404176,11 +429058,11 @@
}
}
},
- "description": "Bad Request"
+ "description": "Authentication error"
},
- "403": {
+ "404": {
"content": {
- "application/json;datetime-format=rfc3339": {
+ "application/json": {
"schema": {
"description": "API error response.",
"properties": {
@@ -404204,11 +429086,11 @@
}
}
},
- "description": "Forbidden - User is not authorized"
+ "description": "Not found"
},
"429": {
"content": {
- "application/json;datetime-format=rfc3339": {
+ "application/json": {
"schema": {
"description": "API error response.",
"properties": {
@@ -404241,142 +429123,107 @@
"appKeyAuth": []
},
{
- "AuthZ": [
- "usage_read"
- ]
+ "AuthZ": []
}
],
- "summary": "Get hourly usage for observability pipelines",
+ "summary": "Get a user organization",
"tags": [
- "Usage Metering"
+ "Users"
],
- "x-menu-order": 39,
+ "x-codegen-request-body-name": "body",
+ "x-menu-order": 6,
"x-permission": {
- "operator": "OR",
- "permissions": [
- "usage_read"
- ]
+ "operator": "OPEN",
+ "permissions": []
},
"x-undo": {
"type": "safe"
}
}
},
- "/api/v2/usage/projected_cost": {
+ "/api/v2/users/{user_id}/permissions": {
"get": {
- "description": "Get projected cost across multi-org and single root-org accounts.\nProjected cost data is only available for the current month and becomes available around the 12th of the month.\n\nThis endpoint is only accessible for [parent-level organizations](https://docs.datadoghq.com/account_management/multi_organization/).",
- "operationId": "GetProjectedCost",
+ "description": "Get a user permission set. Returns a list of the user’s permissions\ngranted by the associated user's roles.",
+ "operationId": "ListUserPermissions",
"parameters": [
{
- "description": "String to specify whether cost is broken down at a parent-org level or at the sub-org level. Available views are `summary` and `sub-org`. Defaults to `summary`.",
- "in": "query",
- "name": "view",
- "required": false,
+ "description": "The ID of the user.",
+ "in": "path",
+ "name": "user_id",
+ "required": true,
"schema": {
+ "example": "00000000-0000-9999-0000-000000000000",
"type": "string"
}
- },
- {
- "description": "Boolean to specify whether to include accounts connected to the current account as partner customers in the Datadog partner network program. Defaults to `false`. ",
- "in": "query",
- "name": "include_connected_accounts",
- "required": false,
- "schema": {
- "default": false,
- "type": "boolean"
- }
}
],
"responses": {
"200": {
"content": {
- "application/json;datetime-format=rfc3339": {
+ "application/json": {
"schema": {
- "description": "Projected Cost response.",
+ "description": "Payload with API-returned permissions.",
"properties": {
"data": {
- "description": "Response containing Projected Cost.",
+ "description": "Array of permissions.",
"items": {
- "description": "Projected Cost data.",
+ "description": "Permission object.",
"properties": {
"attributes": {
- "description": "Projected Cost attributes data.",
+ "description": "Attributes of a permission.",
"properties": {
- "account_name": {
- "description": "The account name.",
+ "created": {
+ "description": "Creation time of the permission.",
+ "format": "date-time",
"type": "string"
},
- "account_public_id": {
- "description": "The account public ID.",
+ "description": {
+ "description": "Description of the permission.",
"type": "string"
},
- "charges": {
- "description": "List of charges data reported for the requested month.",
- "items": {
- "description": "Charges breakdown.",
- "properties": {
- "charge_type": {
- "description": "The type of charge for a particular product.",
- "example": "on_demand",
- "type": "string"
- },
- "cost": {
- "description": "The cost for a particular product and charge type during a given month.",
- "format": "double",
- "type": "number"
- },
- "product_name": {
- "description": "The product for which cost is being reported.",
- "example": "infra_host",
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "date": {
- "description": "The month requested.",
- "format": "date-time",
+ "display_name": {
+ "description": "Displayed name for the permission.",
"type": "string"
},
- "org_name": {
- "description": "The organization name.",
+ "display_type": {
+ "description": "Display type.",
"type": "string"
},
- "projected_total_cost": {
- "description": "The total projected cost of products for the month.",
- "format": "double",
- "type": "number"
- },
- "public_id": {
- "description": "The organization public ID.",
+ "group_name": {
+ "description": "Name of the permission group.",
"type": "string"
},
- "region": {
- "description": "The region of the Datadog instance that the organization belongs to.",
+ "name": {
+ "description": "Name of the permission.",
"type": "string"
+ },
+ "restricted": {
+ "description": "Whether or not the permission is restricted.",
+ "type": "boolean"
}
},
"type": "object"
},
"id": {
- "description": "Unique ID of the response.",
+ "description": "ID of the permission.",
"type": "string"
},
"type": {
- "default": "projected_cost",
- "description": "Type of cost data.",
+ "default": "permissions",
+ "description": "Permissions resource type.",
"enum": [
- "projected_cost"
+ "permissions"
],
- "example": "projected_cost",
+ "example": "permissions",
"type": "string",
"x-enum-varnames": [
- "PROJECt_COST"
+ "PERMISSIONS"
]
}
},
+ "required": [
+ "type"
+ ],
"type": "object"
},
"type": "array"
@@ -404388,9 +429235,9 @@
},
"description": "OK"
},
- "400": {
+ "403": {
"content": {
- "application/json;datetime-format=rfc3339": {
+ "application/json": {
"schema": {
"description": "API error response.",
"properties": {
@@ -404414,11 +429261,11 @@
}
}
},
- "description": "Bad Request"
+ "description": "Authentication error"
},
- "403": {
+ "404": {
"content": {
- "application/json;datetime-format=rfc3339": {
+ "application/json": {
"schema": {
"description": "API error response.",
"properties": {
@@ -404442,11 +429289,11 @@
}
}
},
- "description": "Forbidden - User is not authorized"
+ "description": "Not found"
},
"429": {
"content": {
- "application/json;datetime-format=rfc3339": {
+ "application/json": {
"schema": {
"description": "API error response.",
"properties": {
@@ -404480,268 +429327,771 @@
},
{
"AuthZ": [
- "usage_read"
+ "user_access_read"
]
}
],
- "summary": "Get projected cost across your account",
+ "summary": "Get a user permissions",
"tags": [
- "Usage Metering"
+ "Users"
],
+ "x-codegen-request-body-name": "body",
"x-menu-order": 7,
"x-permission": {
"operator": "OR",
"permissions": [
- "usage_read"
+ "user_access_read"
]
},
"x-undo": {
"type": "safe"
}
+ },
+ "x-merge-override": {
+ "get": true
}
},
- "/api/v2/user_invitations": {
- "post": {
- "description": "Sends emails to one or more users inviting them to join the organization.",
- "operationId": "SendInvitations",
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Object to invite users to join the organization.",
- "properties": {
- "data": {
- "description": "List of user invitations.",
- "example": [],
- "items": {
- "description": "Object to create a user invitation.",
- "properties": {
- "relationships": {
- "description": "Relationships data for user invitation.",
- "properties": {
- "user": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- }
- },
- "required": [
- "user"
- ],
- "type": "object"
- },
- "type": {
- "default": "user_invitations",
- "description": "User invitations type.",
- "enum": [
- "user_invitations"
- ],
- "example": "user_invitations",
- "type": "string",
- "x-enum-varnames": [
- "USER_INVITATIONS"
- ]
- }
- },
- "required": [
- "type",
- "relationships"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- }
+ "/api/v2/users/{user_uuid}/memberships": {
+ "get": {
+ "description": "Get a list of memberships for a user",
+ "operationId": "GetUserMemberships",
+ "parameters": [
+ {
+ "description": "None",
+ "in": "path",
+ "name": "user_uuid",
+ "required": true,
+ "schema": {
+ "type": "string"
}
- },
- "required": true
- },
+ }
+ ],
"responses": {
- "201": {
+ "200": {
"content": {
"application/json": {
"schema": {
- "description": "User invitations as returned by the API.",
+ "description": "Team memberships response",
"properties": {
"data": {
- "description": "Array of user invitations.",
+ "description": "Team memberships response data",
"items": {
- "description": "Object of a user invitation returned by the API.",
+ "description": "A user's relationship with a team",
"properties": {
"attributes": {
- "description": "Attributes of a user invitation.",
+ "description": "Team membership attributes",
"properties": {
- "created_at": {
- "description": "Creation time of the user invitation.",
- "format": "date-time",
- "type": "string"
- },
- "expires_at": {
- "description": "Time of invitation expiration.",
- "format": "date-time",
+ "provisioned_by": {
+ "description": "The mechanism responsible for provisioning the team relationship.\nPossible values: null for added by a user, \"service_account\" if added by a service account, and \"saml_mapping\" if provisioned via SAML mapping.",
+ "nullable": true,
+ "readOnly": true,
"type": "string"
},
- "invite_type": {
- "description": "Type of invitation.",
+ "provisioned_by_id": {
+ "description": "UUID of the User or Service Account who provisioned this team membership, or null if provisioned via SAML mapping.",
+ "nullable": true,
+ "readOnly": true,
"type": "string"
},
- "uuid": {
- "description": "UUID of the user invitation.",
- "type": "string"
+ "role": {
+ "description": "The user's role within the team",
+ "enum": [
+ "admin"
+ ],
+ "nullable": true,
+ "type": "string",
+ "x-enum-varnames": [
+ "ADMIN"
+ ]
}
},
"type": "object"
},
"id": {
- "description": "ID of the user invitation.",
+ "description": "The ID of a user's relationship with a team",
+ "example": "TeamMembership-aeadc05e-98a8-11ec-ac2c-da7ad0900001-38835",
"type": "string"
},
"relationships": {
- "description": "Relationships data for user invitation.",
+ "description": "Relationship between membership and a user",
"properties": {
+ "team": {
+ "description": "Relationship between team membership and team",
+ "properties": {
+ "data": {
+ "description": "The team associated with the membership",
+ "properties": {
+ "id": {
+ "description": "The ID of the team associated with the membership",
+ "example": "d7e15d9d-d346-43da-81d8-3d9e71d9a5e9",
+ "type": "string"
+ },
+ "type": {
+ "default": "team",
+ "description": "User team team type",
+ "enum": [
+ "team"
+ ],
+ "example": "team",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
"user": {
- "description": "Relationship to user.",
+ "description": "Relationship between team membership and user",
"properties": {
"data": {
- "description": "Relationship to user object.",
+ "description": "A user's relationship with a team",
"properties": {
"id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
+ "description": "The ID of the user associated with the team",
+ "example": "b8626d7e-cedd-11eb-abf5-da7ad0900001",
"type": "string"
},
"type": {
"default": "users",
- "description": "Users resource type.",
+ "description": "User team user type",
"enum": [
"users"
],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "default": "team_memberships",
+ "description": "Team membership type",
+ "enum": [
+ "team_memberships"
+ ],
+ "example": "team_memberships",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM_MEMBERSHIPS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ },
+ "included": {
+ "description": "Resources related to the team memberships",
+ "items": {
+ "description": "Included resources related to the team membership",
+ "oneOf": [
+ {
+ "description": "User object returned by the API.",
+ "properties": {
+ "attributes": {
+ "description": "Attributes of user object returned by the API.",
+ "properties": {
+ "created_at": {
+ "description": "Creation time of the user.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "disabled": {
+ "description": "Whether the user is disabled.",
+ "type": "boolean"
+ },
+ "email": {
+ "description": "Email of the user.",
+ "type": "string"
+ },
+ "handle": {
+ "description": "Handle of the user.",
+ "type": "string"
+ },
+ "icon": {
+ "description": "URL of the user's icon.",
+ "type": "string"
+ },
+ "mfa_enabled": {
+ "description": "If user has MFA enabled.",
+ "readOnly": true,
+ "type": "boolean"
+ },
+ "modified_at": {
+ "description": "Time that the user was last modified.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "service_account": {
+ "description": "Whether the user is a service account.",
+ "type": "boolean"
+ },
+ "status": {
+ "description": "Status of the user.",
+ "type": "string"
+ },
+ "title": {
+ "description": "Title of the user.",
+ "nullable": true,
+ "type": "string"
+ },
+ "verified": {
+ "description": "Whether the user is verified.",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "ID of the user.",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Relationships of the user object returned by the API.",
+ "properties": {
+ "org": {
+ "description": "Relationship to an organization.",
+ "properties": {
+ "data": {
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_orgs": {
+ "description": "Relationship to organizations.",
+ "properties": {
+ "data": {
+ "description": "Relationships to organization objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to organization object.",
+ "properties": {
+ "id": {
+ "description": "ID of the organization.",
+ "example": "00000000-0000-beef-0000-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "orgs",
+ "description": "Organizations resource type.",
+ "enum": [
+ "orgs"
+ ],
+ "example": "orgs",
+ "type": "string",
+ "x-enum-varnames": [
+ "ORGS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "other_users": {
+ "description": "Relationship to users.",
+ "properties": {
+ "data": {
+ "description": "Relationships to user objects.",
+ "example": [],
+ "items": {
+ "description": "Relationship to user object.",
+ "properties": {
+ "id": {
+ "description": "A unique identifier that represents the user.",
+ "example": "00000000-0000-0000-2345-000000000000",
+ "type": "string"
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ },
+ "roles": {
+ "description": "Relationship to roles.",
+ "properties": {
+ "data": {
+ "description": "An array containing type and the unique identifier of a role.",
+ "items": {
+ "description": "Relationship to role object.",
+ "properties": {
+ "id": {
+ "description": "The unique identifier of the role.",
+ "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "type": "string"
+ },
+ "type": {
+ "default": "roles",
+ "description": "Roles type.",
+ "enum": [
+ "roles"
+ ],
+ "example": "roles",
+ "type": "string",
+ "x-enum-varnames": [
+ "ROLES"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "properties": false
+ }
+ },
+ "type": {
+ "default": "users",
+ "description": "Users resource type.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ {
+ "description": "A team",
+ "properties": {
+ "attributes": {
+ "description": "Team attributes",
+ "properties": {
+ "avatar": {
+ "description": "Unicode representation of the avatar for the team, limited to a single grapheme",
+ "example": "🥑",
+ "nullable": true,
+ "type": "string"
+ },
+ "banner": {
+ "description": "Banner selection for the team",
+ "format": "int64",
+ "nullable": true,
+ "type": "integer"
+ },
+ "created_at": {
+ "description": "Creation date of the team",
+ "format": "date-time",
+ "type": "string"
+ },
+ "description": {
+ "description": "Free-form markdown description/content for the team's homepage",
+ "nullable": true,
+ "type": "string"
+ },
+ "handle": {
+ "description": "The team's identifier",
+ "example": "example-team",
+ "maxLength": 195,
+ "type": "string"
+ },
+ "hidden_modules": {
+ "description": "Collection of hidden modules for the team",
+ "items": {
+ "description": "String identifier of the module",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "link_count": {
+ "description": "The number of links belonging to the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "readOnly": true,
+ "type": "integer"
+ },
+ "modified_at": {
+ "description": "Modification date of the team",
+ "format": "date-time",
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the team",
+ "example": "Example Team",
+ "maxLength": 200,
+ "type": "string"
+ },
+ "summary": {
+ "description": "A brief summary of the team, derived from the `description`",
+ "maxLength": 120,
+ "nullable": true,
+ "type": "string"
+ },
+ "user_count": {
+ "description": "The number of users belonging to the team",
+ "format": "int32",
+ "maximum": 2147483647,
+ "readOnly": true,
+ "type": "integer"
+ },
+ "visible_modules": {
+ "description": "Collection of visible modules for the team",
+ "items": {
+ "description": "String identifier of the module",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "handle",
+ "name"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "description": "The team's identifier",
+ "example": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "Resources related to a team",
+ "properties": {
+ "team_links": {
+ "description": "Relationship between a team and a team link",
+ "properties": {
+ "data": {
+ "description": "Related team links",
+ "items": {
+ "description": "Relationship between a link and a team",
+ "properties": {
+ "id": {
+ "description": "The team link's identifier",
+ "example": "f9bb8444-af7f-11ec-ac2c-da7ad0900001",
+ "type": "string"
+ },
+ "type": {
+ "default": "team_links",
+ "description": "Team link type",
+ "enum": [
+ "team_links"
+ ],
+ "example": "team_links",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM_LINKS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "type": "array"
+ },
+ "links": {
+ "description": "Links attributes.",
+ "properties": {
+ "related": {
+ "description": "Related link.",
+ "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "user_team_permissions": {
+ "description": "Relationship between a user team permission and a team",
+ "properties": {
+ "data": {
+ "description": "Related user team permission data",
+ "properties": {
+ "id": {
+ "description": "The ID of the user team permission",
+ "example": "UserTeamPermissions-aeadc05e-98a8-11ec-ac2c-da7ad0900001-416595",
+ "type": "string"
+ },
+ "type": {
+ "default": "user_team_permissions",
+ "description": "User team permission type",
+ "enum": [
+ "user_team_permissions"
+ ],
+ "example": "user_team_permissions",
+ "type": "string",
+ "x-enum-varnames": [
+ "USER_TEAM_PERMISSIONS"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
+ },
+ "links": {
+ "description": "Links attributes.",
+ "properties": {
+ "related": {
+ "description": "Related link.",
+ "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
+ "type": "string"
+ }
+ },
+ "type": "object"
}
},
- "required": [
- "id",
- "type"
- ],
"type": "object",
"x-merge-override": {
"required": false
}
}
},
- "required": [
- "data"
- ],
"type": "object"
+ },
+ "type": {
+ "default": "team",
+ "description": "Team type",
+ "enum": [
+ "team"
+ ],
+ "example": "team",
+ "type": "string",
+ "x-enum-varnames": [
+ "TEAM"
+ ]
}
},
"required": [
- "user"
- ],
- "type": "object"
- },
- "type": {
- "default": "user_invitations",
- "description": "User invitations type.",
- "enum": [
- "user_invitations"
+ "attributes",
+ "id",
+ "type"
],
- "example": "user_invitations",
- "type": "string",
- "x-enum-varnames": [
- "USER_INVITATIONS"
- ]
+ "type": "object",
+ "x-merge-override": {
+ "required": false
+ }
}
+ ]
+ },
+ "type": "array"
+ },
+ "links": {
+ "description": "Teams response links.",
+ "properties": {
+ "first": {
+ "description": "First link.",
+ "type": "string"
},
- "type": "object",
- "x-merge-override": {
- "required": false
+ "last": {
+ "description": "Last link.",
+ "nullable": true,
+ "type": "string"
+ },
+ "next": {
+ "description": "Next link.",
+ "type": "string"
+ },
+ "prev": {
+ "description": "Previous link.",
+ "nullable": true,
+ "type": "string"
+ },
+ "self": {
+ "description": "Current link.",
+ "type": "string"
}
},
- "type": "array"
- }
- },
- "type": "object"
- }
- }
- },
- "description": "OK"
- },
- "400": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "type": "object"
+ },
+ "meta": {
+ "description": "Teams response metadata.",
+ "properties": {
+ "pagination": {
+ "description": "Teams response metadata.",
+ "properties": {
+ "first_offset": {
+ "description": "The first offset.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "last_offset": {
+ "description": "The last offset.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "limit": {
+ "description": "Pagination limit.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "next_offset": {
+ "description": "The next offset.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "offset": {
+ "description": "The offset.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "prev_offset": {
+ "description": "The previous offset.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "total": {
+ "description": "Total results.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "type": {
+ "description": "Offset type.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
},
- "type": "array"
+ "type": "object"
}
},
- "required": [
- "errors"
- ],
"type": "object"
}
}
},
- "description": "Bad Request"
+ "description": "Represents a user's association to a team"
},
- "403": {
+ "404": {
"content": {
"application/json": {
"schema": {
@@ -404767,7 +430117,7 @@
}
}
},
- "description": "Authentication error"
+ "description": "API error response."
},
"429": {
"content": {
@@ -404805,32 +430155,19 @@
},
{
"AuthZ": [
- "user_access_invite"
+ "teams_read"
]
}
],
- "summary": "Send invitation emails",
+ "summary": "Get user memberships",
"tags": [
- "Users"
+ "Teams"
],
- "x-codegen-request-body-name": "body",
- "x-given": {
- "user_invitation": {
- "parameters": [
- {
- "name": "body",
- "value": "{\n \"data\": [\n {\n \"relationships\": {\"user\": {\"data\": {\n \"id\": \"{{ user.data.id }}\",\n \"type\": \"{{ user.data.type }}\"\n }}},\n \"type\": \"user_invitations\"\n }\n ]\n}"
- }
- ],
- "source": "data[0]",
- "step": "the \"user\" has a \"user_invitation\""
- }
- },
- "x-menu-order": 8,
+ "x-menu-order": 1,
"x-permission": {
"operator": "OR",
"permissions": [
- "user_access_invite"
+ "teams_read"
]
},
"x-undo": {
@@ -404838,1584 +430175,2369 @@
}
}
},
- "/api/v2/user_invitations/{user_invitation_uuid}": {
- "get": {
- "description": "Returns a single user invitation by its UUID.",
- "operationId": "GetInvitation",
- "parameters": [
- {
- "description": "The UUID of the user invitation.",
- "in": "path",
- "name": "user_invitation_uuid",
- "required": true,
- "schema": {
- "example": "00000000-0000-0000-3456-000000000000",
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "description": "User invitation as returned by the API.",
- "properties": {
- "data": {
- "description": "Object of a user invitation returned by the API.",
- "properties": {
- "attributes": {
- "description": "Attributes of a user invitation.",
- "properties": {
- "created_at": {
- "description": "Creation time of the user invitation.",
- "format": "date-time",
- "type": "string"
- },
- "expires_at": {
- "description": "Time of invitation expiration.",
- "format": "date-time",
- "type": "string"
- },
- "invite_type": {
- "description": "Type of invitation.",
- "type": "string"
+ "/api/v2/workflows": {
+ "post": {
+ "description": "Create a new workflow, returning the workflow ID. This API requires an application key scoped with the `workflows_write` permission.",
+ "operationId": "CreateWorkflow",
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "A request object for creating a new workflow.",
+ "example": {
+ "data": {
+ "attributes": {
+ "description": "A sample workflow.",
+ "name": "Example Workflow",
+ "published": true,
+ "spec": {
+ "annotations": [
+ {
+ "display": {
+ "bounds": {
+ "height": 150,
+ "width": 300,
+ "x": -375,
+ "y": -0.5
+ }
},
- "uuid": {
- "description": "UUID of the user invitation.",
- "type": "string"
+ "id": "99999999-9999-9999-9999-999999999999",
+ "markdownTextAnnotation": {
+ "text": "Example annotation."
}
- },
- "type": "object"
+ }
+ ],
+ "connectionEnvs": [
+ {
+ "connections": [
+ {
+ "connectionId": "11111111-1111-1111-1111-111111111111",
+ "label": "INTEGRATION_DATADOG"
+ }
+ ],
+ "env": "default"
+ }
+ ],
+ "handle": "my-handle",
+ "inputSchema": {
+ "parameters": [
+ {
+ "defaultValue": "default",
+ "name": "input",
+ "type": "STRING"
+ }
+ ]
},
- "id": {
- "description": "ID of the user invitation.",
- "type": "string"
+ "outputSchema": {
+ "parameters": [
+ {
+ "name": "output",
+ "type": "ARRAY_OBJECT",
+ "value": "{{ Steps.Step1 }}"
+ }
+ ]
},
- "relationships": {
- "description": "Relationships data for user invitation.",
- "properties": {
- "user": {
- "description": "Relationship to user.",
- "properties": {
- "data": {
- "description": "Relationship to user object.",
+ "steps": [
+ {
+ "actionId": "com.datadoghq.dd.monitor.listMonitors",
+ "connectionLabel": "INTEGRATION_DATADOG",
+ "name": "Step1",
+ "outboundEdges": [
+ {
+ "branchName": "main",
+ "nextStepName": "Step2"
+ }
+ ],
+ "parameters": [
+ {
+ "name": "tags",
+ "value": "service:monitoring"
+ }
+ ]
+ },
+ {
+ "actionId": "com.datadoghq.core.noop",
+ "name": "Step2"
+ }
+ ],
+ "triggers": [
+ {
+ "monitorTrigger": {
+ "rateLimit": {
+ "count": 1,
+ "interval": "3600s"
+ }
+ },
+ "startStepNames": [
+ "Step1"
+ ]
+ },
+ {
+ "githubWebhookTrigger": {},
+ "startStepNames": [
+ "Step1"
+ ]
+ }
+ ]
+ },
+ "tags": [
+ "team:infra",
+ "service:monitoring",
+ "foo:bar"
+ ]
+ },
+ "type": "workflows"
+ }
+ },
+ "properties": {
+ "data": {
+ "description": "Data related to the workflow.",
+ "properties": {
+ "attributes": {
+ "description": "The definition of `WorkflowDataAttributes` object.",
+ "properties": {
+ "createdAt": {
+ "description": "When the workflow was created.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of the workflow.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the workflow.",
+ "example": "",
+ "type": "string"
+ },
+ "published": {
+ "description": "Set the workflow to published or unpublished. Workflows in an unpublished state will only be executable via manual runs. Automatic triggers such as Schedule will not execute the workflow until it is published.",
+ "type": "boolean"
+ },
+ "spec": {
+ "description": "The spec defines what the workflow does.",
+ "properties": {
+ "annotations": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "items": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
"properties": {
+ "display": {
+ "description": "The definition of `AnnotationDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `AnnotationDisplayBounds` object.",
+ "properties": {
+ "height": {
+ "description": "The `bounds` `height`.",
+ "format": "double",
+ "type": "number"
+ },
+ "width": {
+ "description": "The `bounds` `width`.",
+ "format": "double",
+ "type": "number"
+ },
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
"id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
+ "description": "The `Annotation` `id`.",
+ "example": "",
"type": "string"
},
- "type": {
- "default": "users",
- "description": "Users resource type.",
+ "markdownTextAnnotation": {
+ "description": "The definition of `AnnotationMarkdownTextAnnotation` object.",
+ "properties": {
+ "text": {
+ "description": "The `markdownTextAnnotation` `text`.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "required": [
+ "id",
+ "display",
+ "markdownTextAnnotation"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "connectionEnvs": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "items": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "properties": {
+ "connectionGroups": {
+ "description": "The `ConnectionEnv` `connectionGroups`.",
+ "items": {
+ "description": "The definition of `ConnectionGroup` object.",
+ "properties": {
+ "connectionGroupId": {
+ "description": "The `ConnectionGroup` `connectionGroupId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `ConnectionGroup` `label`.",
+ "example": "",
+ "type": "string"
+ },
+ "tags": {
+ "description": "The `ConnectionGroup` `tags`.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "connectionGroupId",
+ "label",
+ "tags"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "connections": {
+ "description": "The `ConnectionEnv` `connections`.",
+ "items": {
+ "description": "The definition of `Connection` object.",
+ "properties": {
+ "connectionId": {
+ "description": "The `Connection` `connectionId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `Connection` `label`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "connectionId",
+ "label"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "env": {
+ "description": "The definition of `ConnectionEnvEnv` object.",
"enum": [
- "users"
+ "default"
],
- "example": "users",
+ "example": "default",
"type": "string",
"x-enum-varnames": [
- "USERS"
+ "DEFAULT"
]
}
},
"required": [
- "id",
- "type"
+ "env"
],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- }
- },
- "required": [
- "user"
- ],
- "type": "object"
- },
- "type": {
- "default": "user_invitations",
- "description": "User invitations type.",
- "enum": [
- "user_invitations"
- ],
- "example": "user_invitations",
- "type": "string",
- "x-enum-varnames": [
- "USER_INVITATIONS"
- ]
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
- }
- }
- },
- "description": "OK"
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Authentication error"
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Not found"
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Too many requests"
- }
- },
- "security": [
- {
- "apiKeyAuth": [],
- "appKeyAuth": []
- },
- {
- "AuthZ": [
- "user_access_invite"
- ]
- }
- ],
- "summary": "Get a user invitation",
- "tags": [
- "Users"
- ],
- "x-codegen-request-body-name": "body",
- "x-menu-order": 9,
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "user_access_invite"
- ]
- },
- "x-undo": {
- "type": "safe"
- }
- }
- },
- "/api/v2/users": {
- "get": {
- "description": "Get the list of all users in the organization. This list includes\nall users even if they are deactivated or unverified.",
- "operationId": "ListUsers",
- "parameters": [
- {
- "description": "Size for a given page. The maximum allowed value is 100.",
- "in": "query",
- "name": "page[size]",
- "required": false,
- "schema": {
- "default": 10,
- "example": 10,
- "format": "int64",
- "type": "integer"
- }
- },
- {
- "description": "Specific page number to return.",
- "in": "query",
- "name": "page[number]",
- "required": false,
- "schema": {
- "default": 0,
- "example": 0,
- "format": "int64",
- "type": "integer"
- }
- },
- {
- "description": "User attribute to order results by. Sort order is ascending by default.\nSort order is descending if the field\nis prefixed by a negative sign, for example `sort=-name`. Options: `name`,\n`modified_at`, `user_count`.",
- "in": "query",
- "name": "sort",
- "required": false,
- "schema": {
- "default": "name",
- "example": "name",
- "type": "string"
- }
- },
- {
- "description": "Direction of sort. Options: `asc`, `desc`.",
- "in": "query",
- "name": "sort_dir",
- "required": false,
- "schema": {
- "default": "desc",
- "description": "Direction of sort.",
- "enum": [
- "asc",
- "desc"
- ],
- "type": "string",
- "x-enum-varnames": [
- "ASC",
- "DESC"
- ]
- }
- },
- {
- "description": "Filter all users by the given string. Defaults to no filtering.",
- "in": "query",
- "name": "filter",
- "required": false,
- "schema": {
- "type": "string"
- }
- },
- {
- "description": "Filter on status attribute.\nComma separated list, with possible values `Active`, `Pending`, and `Disabled`.\nDefaults to no filtering.",
- "in": "query",
- "name": "filter[status]",
- "required": false,
- "schema": {
- "example": "Active",
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Response containing information about multiple users.",
- "properties": {
- "data": {
- "description": "Array of returned users.",
- "items": {
- "description": "User object returned by the API.",
- "properties": {
- "attributes": {
- "description": "Attributes of user object returned by the API.",
- "properties": {
- "created_at": {
- "description": "Creation time of the user.",
- "format": "date-time",
- "type": "string"
- },
- "disabled": {
- "description": "Whether the user is disabled.",
- "type": "boolean"
- },
- "email": {
- "description": "Email of the user.",
- "type": "string"
+ "type": "object"
+ },
+ "type": "array"
},
"handle": {
- "description": "Handle of the user.",
- "type": "string"
- },
- "icon": {
- "description": "URL of the user's icon.",
- "type": "string"
- },
- "mfa_enabled": {
- "description": "If user has MFA enabled.",
- "readOnly": true,
- "type": "boolean"
- },
- "modified_at": {
- "description": "Time that the user was last modified.",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "Name of the user.",
- "nullable": true,
+ "description": "Unique identifier used to trigger workflows automatically in Datadog.",
"type": "string"
},
- "service_account": {
- "description": "Whether the user is a service account.",
- "type": "boolean"
+ "inputSchema": {
+ "description": "A list of input parameters for the workflow. These can be used as dynamic runtime values in your workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `InputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `InputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `InputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `InputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `InputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `InputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `InputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
},
- "status": {
- "description": "Status of the user.",
- "type": "string"
+ "outputSchema": {
+ "description": "A list of output parameters for the workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `OutputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `OutputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `OutputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `OutputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `OutputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `OutputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `OutputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ },
+ "value": {
+ "description": "The `OutputSchemaParameters` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
},
- "title": {
- "description": "Title of the user.",
- "nullable": true,
- "type": "string"
+ "steps": {
+ "description": "A `Step` is a sub-component of a workflow. Each `Step` performs an action.",
+ "items": {
+ "description": "A Step is a sub-component of a workflow. Each Step performs an action.",
+ "properties": {
+ "actionId": {
+ "description": "The unique identifier of an action.",
+ "example": "",
+ "type": "string"
+ },
+ "completionGate": {
+ "description": "Used to create conditions before running subsequent actions.",
+ "properties": {
+ "completionCondition": {
+ "description": "The definition of `CompletionCondition` object.",
+ "properties": {
+ "operand1": {
+ "description": "The `CompletionCondition` `operand1`."
+ },
+ "operand2": {
+ "description": "The `CompletionCondition` `operand2`."
+ },
+ "operator": {
+ "description": "The definition of `CompletionConditionOperator` object.",
+ "enum": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ],
+ "example": "OPERATOR_EQUAL",
+ "type": "string",
+ "x-enum-varnames": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ]
+ }
+ },
+ "required": [
+ "operand1",
+ "operator"
+ ],
+ "type": "object"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "completionCondition",
+ "retryStrategy"
+ ],
+ "type": "object"
+ },
+ "connectionLabel": {
+ "description": "The unique identifier of a connection defined in the spec.",
+ "type": "string"
+ },
+ "display": {
+ "description": "The definition of `StepDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `StepDisplayBounds` object.",
+ "properties": {
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "errorHandlers": {
+ "description": "The `Step` `errorHandlers`.",
+ "items": {
+ "description": "Used to handle errors in an action.",
+ "properties": {
+ "fallbackStepName": {
+ "description": "The `ErrorHandler` `fallbackStepName`.",
+ "example": "",
+ "type": "string"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "retryStrategy",
+ "fallbackStepName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the step.",
+ "example": "",
+ "type": "string"
+ },
+ "outboundEdges": {
+ "description": "A list of subsequent actions to run.",
+ "items": {
+ "description": "The definition of `OutboundEdge` object.",
+ "properties": {
+ "branchName": {
+ "description": "The `OutboundEdge` `branchName`.",
+ "example": "",
+ "type": "string"
+ },
+ "nextStepName": {
+ "description": "The `OutboundEdge` `nextStepName`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "nextStepName",
+ "branchName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "parameters": {
+ "description": "A list of inputs for an action.",
+ "items": {
+ "description": "The definition of `Parameter` object.",
+ "properties": {
+ "name": {
+ "description": "The `Parameter` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "value": {
+ "description": "The `Parameter` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "value"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "readinessGate": {
+ "description": "Used to merge multiple branches into a single branch.",
+ "properties": {
+ "thresholdType": {
+ "description": "The definition of `ReadinessGateThresholdType` object.",
+ "enum": [
+ "ANY",
+ "ALL"
+ ],
+ "example": "ANY",
+ "type": "string",
+ "x-enum-varnames": [
+ "ANY",
+ "ALL"
+ ]
+ }
+ },
+ "required": [
+ "thresholdType"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "name",
+ "actionId"
+ ],
+ "type": "object"
+ },
+ "type": "array"
},
- "verified": {
- "description": "Whether the user is verified.",
- "type": "boolean"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "ID of the user.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the user object returned by the API.",
- "properties": {
- "org": {
- "description": "Relationship to an organization.",
- "properties": {
- "data": {
- "description": "Relationship to organization object.",
- "properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
- "type": "string"
+ "triggers": {
+ "description": "The list of triggers that activate this workflow. At least one trigger is required, and each trigger type may appear at most once.",
+ "items": {
+ "description": "One of the triggers that can start the execution of a workflow.",
+ "oneOf": [
+ {
+ "description": "Schema for an API-based trigger.",
+ "properties": {
+ "apiTrigger": {
+ "description": "Trigger a workflow VIA an API. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "apiTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an App-based trigger.",
+ "properties": {
+ "appTrigger": {
+ "description": "Trigger a workflow VIA an App.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "appTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Case-based trigger.",
+ "properties": {
+ "caseTrigger": {
+ "description": "Trigger a workflow VIA a Case. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
},
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
- }
+ "required": [
+ "caseTrigger"
+ ],
+ "type": "object"
},
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "other_orgs": {
- "description": "Relationship to organizations.",
- "properties": {
- "data": {
- "description": "Relationships to organization objects.",
- "example": [],
- "items": {
- "description": "Relationship to organization object.",
+ {
+ "description": "Schema for a Change Event-based trigger.",
"properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
- "type": "string"
+ "changeEventTrigger": {
+ "description": "Trigger a workflow VIA a Change Event.",
+ "type": "object"
},
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
}
},
"required": [
- "id",
- "type"
+ "changeEventTrigger"
],
"type": "object"
},
- "type": "array"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "other_users": {
- "description": "Relationship to users.",
- "properties": {
- "data": {
- "description": "Relationships to user objects.",
- "example": [],
- "items": {
- "description": "Relationship to user object.",
+ {
+ "description": "Schema for a Dashboard-based trigger.",
"properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
+ "dashboardTrigger": {
+ "description": "Trigger a workflow VIA a Dashboard.",
+ "type": "object"
},
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
}
},
"required": [
- "id",
- "type"
+ "dashboardTrigger"
],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "object"
},
- "type": "array"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "roles": {
- "description": "Relationship to roles.",
- "properties": {
- "data": {
- "description": "An array containing type and the unique identifier of a role.",
- "items": {
- "description": "Relationship to role object.",
+ {
+ "description": "Schema for a GitHub webhook-based trigger.",
"properties": {
- "id": {
- "description": "The unique identifier of the role.",
- "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
- "type": "string"
+ "githubWebhookTrigger": {
+ "description": "Trigger a workflow VIA GitHub webhook. To trigger a workflow from GitHub, you must set a `webhookSecret`. In your GitHub Webhook Settings, set the Payload URL to \"base_url\"/api/v2/workflows/\"workflow_id\"/webhook?orgId=\"org_id\", select application/json for the content type, and be highly recommend enabling SSL verification for security. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
},
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "required": [
+ "githubWebhookTrigger"
+ ],
+ "type": "object"
},
- "type": "array"
- }
+ {
+ "description": "Schema for an Incident-based trigger.",
+ "properties": {
+ "incidentTrigger": {
+ "description": "Trigger a workflow VIA an Incident. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "incidentTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Monitor-based trigger.",
+ "properties": {
+ "monitorTrigger": {
+ "description": "Trigger a workflow VIA a Monitor. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "monitorTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Schedule-based trigger.",
+ "properties": {
+ "scheduleTrigger": {
+ "description": "Trigger a workflow VIA a Schedule. The workflow must be published.",
+ "properties": {
+ "rruleExpression": {
+ "description": "Recurrence rule expression for scheduling.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "rruleExpression"
+ ],
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "scheduleTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Security-based trigger.",
+ "properties": {
+ "securityTrigger": {
+ "description": "Trigger a workflow VIA a Security Signal or Finding. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "securityTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Slack-based trigger.",
+ "properties": {
+ "slackTrigger": {
+ "description": "Trigger a workflow VIA Slack. The workflow must be published.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "slackTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Workflow-based trigger.",
+ "properties": {
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "workflowTrigger": {
+ "description": "Trigger a workflow VIA the Datadog UI. Only required if no other trigger exists.",
+ "type": "object"
+ }
+ },
+ "required": [
+ "workflowTrigger"
+ ],
+ "type": "object"
+ }
+ ]
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "array"
}
},
- "type": "object",
- "x-merge-override": {
- "properties": false
- }
+ "type": "object"
},
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
+ "tags": {
+ "description": "Tags of the workflow.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "updatedAt": {
+ "description": "When the workflow was last updated.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "webhookSecret": {
+ "description": "If a Webhook trigger is defined on this workflow, a webhookSecret is required and should be provided here.",
"type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
+ "writeOnly": true
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "required": [
+ "name",
+ "spec"
+ ],
+ "type": "object"
},
- "type": "array"
- },
- "included": {
- "description": "Array of objects related to the users.",
- "items": {
- "description": "An object related to a user.",
- "oneOf": [
- {
- "description": "Organization object.",
+ "id": {
+ "description": "The workflow identifier",
+ "readOnly": true,
+ "type": "string"
+ },
+ "relationships": {
+ "description": "The definition of `WorkflowDataRelationships` object.",
+ "properties": {
+ "creator": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
"properties": {
- "attributes": {
- "description": "Attributes of the organization.",
+ "data": {
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
"properties": {
- "created_at": {
- "description": "Creation time of the organization.",
- "format": "date-time",
- "type": "string"
- },
- "description": {
- "description": "Description of the organization.",
- "type": "string"
- },
- "disabled": {
- "description": "Whether or not the organization is disabled.",
- "type": "boolean"
- },
- "modified_at": {
- "description": "Time of last organization modification.",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "Name of the organization.",
- "type": "string"
- },
- "public_id": {
- "description": "Public ID of the organization.",
- "type": "string"
- },
- "sharing": {
- "description": "Sharing type of the organization.",
+ "id": {
+ "description": "The user identifier",
+ "example": "",
"type": "string"
},
- "url": {
- "description": "URL of the site that this organization exists at.",
- "type": "string"
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
}
},
- "type": "object"
- },
- "id": {
- "description": "ID of the organization.",
- "type": "string"
- },
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
+ "required": [
+ "type",
+ "id"
],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
+ "type": "object"
}
},
- "required": [
- "type"
- ],
"type": "object"
},
- {
- "description": "Permission object.",
+ "owner": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
"properties": {
- "attributes": {
- "description": "Attributes of a permission.",
+ "data": {
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
"properties": {
- "created": {
- "description": "Creation time of the permission.",
- "format": "date-time",
- "type": "string"
- },
- "description": {
- "description": "Description of the permission.",
- "type": "string"
- },
- "display_name": {
- "description": "Displayed name for the permission.",
- "type": "string"
- },
- "display_type": {
- "description": "Display type.",
- "type": "string"
- },
- "group_name": {
- "description": "Name of the permission group.",
- "type": "string"
- },
- "name": {
- "description": "Name of the permission.",
+ "id": {
+ "description": "The user identifier",
+ "example": "",
"type": "string"
},
- "restricted": {
- "description": "Whether or not the permission is restricted.",
- "type": "boolean"
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
}
},
- "type": "object"
- },
- "id": {
- "description": "ID of the permission.",
- "type": "string"
- },
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
- "enum": [
- "permissions"
+ "required": [
+ "type",
+ "id"
],
- "example": "permissions",
- "type": "string",
- "x-enum-varnames": [
- "PERMISSIONS"
- ]
+ "type": "object"
}
},
- "required": [
- "type"
- ],
"type": "object"
- },
- {
- "description": "Role object returned by the API.",
- "properties": {
- "attributes": {
- "description": "Attributes of the role.",
- "properties": {
- "created_at": {
- "description": "Creation time of the role.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
+ }
+ },
+ "readOnly": true,
+ "type": "object"
+ },
+ "type": {
+ "description": "The definition of `WorkflowDataType` object.",
+ "enum": [
+ "workflows"
+ ],
+ "example": "workflows",
+ "type": "string",
+ "x-enum-varnames": [
+ "WORKFLOWS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "attributes"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "required": true
+ },
+ "responses": {
+ "201": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "The response object after creating a new workflow.",
+ "properties": {
+ "data": {
+ "description": "Data related to the workflow.",
+ "properties": {
+ "attributes": {
+ "description": "The definition of `WorkflowDataAttributes` object.",
+ "properties": {
+ "createdAt": {
+ "description": "When the workflow was created.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of the workflow.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the workflow.",
+ "example": "",
+ "type": "string"
+ },
+ "published": {
+ "description": "Set the workflow to published or unpublished. Workflows in an unpublished state will only be executable via manual runs. Automatic triggers such as Schedule will not execute the workflow until it is published.",
+ "type": "boolean"
+ },
+ "spec": {
+ "description": "The spec defines what the workflow does.",
+ "properties": {
+ "annotations": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "items": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "properties": {
+ "display": {
+ "description": "The definition of `AnnotationDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `AnnotationDisplayBounds` object.",
+ "properties": {
+ "height": {
+ "description": "The `bounds` `height`.",
+ "format": "double",
+ "type": "number"
+ },
+ "width": {
+ "description": "The `bounds` `width`.",
+ "format": "double",
+ "type": "number"
+ },
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The `Annotation` `id`.",
+ "example": "",
+ "type": "string"
+ },
+ "markdownTextAnnotation": {
+ "description": "The definition of `AnnotationMarkdownTextAnnotation` object.",
+ "properties": {
+ "text": {
+ "description": "The `markdownTextAnnotation` `text`.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "required": [
+ "id",
+ "display",
+ "markdownTextAnnotation"
+ ],
+ "type": "object"
},
- "modified_at": {
- "description": "Time of last role modification.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
+ "type": "array"
+ },
+ "connectionEnvs": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "items": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "properties": {
+ "connectionGroups": {
+ "description": "The `ConnectionEnv` `connectionGroups`.",
+ "items": {
+ "description": "The definition of `ConnectionGroup` object.",
+ "properties": {
+ "connectionGroupId": {
+ "description": "The `ConnectionGroup` `connectionGroupId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `ConnectionGroup` `label`.",
+ "example": "",
+ "type": "string"
+ },
+ "tags": {
+ "description": "The `ConnectionGroup` `tags`.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "connectionGroupId",
+ "label",
+ "tags"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "connections": {
+ "description": "The `ConnectionEnv` `connections`.",
+ "items": {
+ "description": "The definition of `Connection` object.",
+ "properties": {
+ "connectionId": {
+ "description": "The `Connection` `connectionId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `Connection` `label`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "connectionId",
+ "label"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "env": {
+ "description": "The definition of `ConnectionEnvEnv` object.",
+ "enum": [
+ "default"
+ ],
+ "example": "default",
+ "type": "string",
+ "x-enum-varnames": [
+ "DEFAULT"
+ ]
+ }
+ },
+ "required": [
+ "env"
+ ],
+ "type": "object"
},
- "name": {
- "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
- "type": "string"
+ "type": "array"
+ },
+ "handle": {
+ "description": "Unique identifier used to trigger workflows automatically in Datadog.",
+ "type": "string"
+ },
+ "inputSchema": {
+ "description": "A list of input parameters for the workflow. These can be used as dynamic runtime values in your workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `InputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `InputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `InputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `InputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `InputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `InputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `InputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
},
- "user_count": {
- "description": "Number of users with that role.",
- "format": "int64",
- "readOnly": true,
- "type": "integer"
- }
+ "type": "object"
},
- "type": "object"
- },
- "id": {
- "description": "The unique identifier of the role.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the role object returned by the API.",
- "properties": {
- "permissions": {
- "description": "Relationship to multiple permissions objects.",
+ "outputSchema": {
+ "description": "A list of output parameters for the workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `OutputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `OutputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `OutputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `OutputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `OutputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `OutputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `OutputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ },
+ "value": {
+ "description": "The `OutputSchemaParameters` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "steps": {
+ "description": "A `Step` is a sub-component of a workflow. Each `Step` performs an action.",
+ "items": {
+ "description": "A Step is a sub-component of a workflow. Each Step performs an action.",
"properties": {
- "data": {
- "description": "Relationships to permission objects.",
+ "actionId": {
+ "description": "The unique identifier of an action.",
+ "example": "",
+ "type": "string"
+ },
+ "completionGate": {
+ "description": "Used to create conditions before running subsequent actions.",
+ "properties": {
+ "completionCondition": {
+ "description": "The definition of `CompletionCondition` object.",
+ "properties": {
+ "operand1": {
+ "description": "The `CompletionCondition` `operand1`."
+ },
+ "operand2": {
+ "description": "The `CompletionCondition` `operand2`."
+ },
+ "operator": {
+ "description": "The definition of `CompletionConditionOperator` object.",
+ "enum": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ],
+ "example": "OPERATOR_EQUAL",
+ "type": "string",
+ "x-enum-varnames": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ]
+ }
+ },
+ "required": [
+ "operand1",
+ "operator"
+ ],
+ "type": "object"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "completionCondition",
+ "retryStrategy"
+ ],
+ "type": "object"
+ },
+ "connectionLabel": {
+ "description": "The unique identifier of a connection defined in the spec.",
+ "type": "string"
+ },
+ "display": {
+ "description": "The definition of `StepDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `StepDisplayBounds` object.",
+ "properties": {
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "errorHandlers": {
+ "description": "The `Step` `errorHandlers`.",
"items": {
- "description": "Relationship to permission object.",
+ "description": "Used to handle errors in an action.",
"properties": {
- "id": {
- "description": "ID of the permission.",
+ "fallbackStepName": {
+ "description": "The `ErrorHandler` `fallbackStepName`.",
+ "example": "",
+ "type": "string"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "retryStrategy",
+ "fallbackStepName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the step.",
+ "example": "",
+ "type": "string"
+ },
+ "outboundEdges": {
+ "description": "A list of subsequent actions to run.",
+ "items": {
+ "description": "The definition of `OutboundEdge` object.",
+ "properties": {
+ "branchName": {
+ "description": "The `OutboundEdge` `branchName`.",
+ "example": "",
+ "type": "string"
+ },
+ "nextStepName": {
+ "description": "The `OutboundEdge` `nextStepName`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "nextStepName",
+ "branchName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "parameters": {
+ "description": "A list of inputs for an action.",
+ "items": {
+ "description": "The definition of `Parameter` object.",
+ "properties": {
+ "name": {
+ "description": "The `Parameter` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "value": {
+ "description": "The `Parameter` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "value"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "readinessGate": {
+ "description": "Used to merge multiple branches into a single branch.",
+ "properties": {
+ "thresholdType": {
+ "description": "The definition of `ReadinessGateThresholdType` object.",
+ "enum": [
+ "ANY",
+ "ALL"
+ ],
+ "example": "ANY",
+ "type": "string",
+ "x-enum-varnames": [
+ "ANY",
+ "ALL"
+ ]
+ }
+ },
+ "required": [
+ "thresholdType"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "name",
+ "actionId"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "triggers": {
+ "description": "The list of triggers that activate this workflow. At least one trigger is required, and each trigger type may appear at most once.",
+ "items": {
+ "description": "One of the triggers that can start the execution of a workflow.",
+ "oneOf": [
+ {
+ "description": "Schema for an API-based trigger.",
+ "properties": {
+ "apiTrigger": {
+ "description": "Trigger a workflow VIA an API. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "apiTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an App-based trigger.",
+ "properties": {
+ "appTrigger": {
+ "description": "Trigger a workflow VIA an App.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "appTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Case-based trigger.",
+ "properties": {
+ "caseTrigger": {
+ "description": "Trigger a workflow VIA a Case. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "caseTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Change Event-based trigger.",
+ "properties": {
+ "changeEventTrigger": {
+ "description": "Trigger a workflow VIA a Change Event.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "changeEventTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Dashboard-based trigger.",
+ "properties": {
+ "dashboardTrigger": {
+ "description": "Trigger a workflow VIA a Dashboard.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "dashboardTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a GitHub webhook-based trigger.",
+ "properties": {
+ "githubWebhookTrigger": {
+ "description": "Trigger a workflow VIA GitHub webhook. To trigger a workflow from GitHub, you must set a `webhookSecret`. In your GitHub Webhook Settings, set the Payload URL to \"base_url\"/api/v2/workflows/\"workflow_id\"/webhook?orgId=\"org_id\", select application/json for the content type, and be highly recommend enabling SSL verification for security. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "githubWebhookTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an Incident-based trigger.",
+ "properties": {
+ "incidentTrigger": {
+ "description": "Trigger a workflow VIA an Incident. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
"type": "string"
},
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
- "enum": [
- "permissions"
- ],
- "example": "permissions",
- "type": "string",
- "x-enum-varnames": [
- "PERMISSIONS"
- ]
- }
+ "type": "array"
+ }
+ },
+ "required": [
+ "incidentTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Monitor-based trigger.",
+ "properties": {
+ "monitorTrigger": {
+ "description": "Trigger a workflow VIA a Monitor. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
},
- "type": "object",
- "x-merge-override": {
- "required": false
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
}
},
- "type": "array"
+ "required": [
+ "monitorTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Schedule-based trigger.",
+ "properties": {
+ "scheduleTrigger": {
+ "description": "Trigger a workflow VIA a Schedule. The workflow must be published.",
+ "properties": {
+ "rruleExpression": {
+ "description": "Recurrence rule expression for scheduling.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "rruleExpression"
+ ],
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "scheduleTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Security-based trigger.",
+ "properties": {
+ "securityTrigger": {
+ "description": "Trigger a workflow VIA a Security Signal or Finding. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "securityTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Slack-based trigger.",
+ "properties": {
+ "slackTrigger": {
+ "description": "Trigger a workflow VIA Slack. The workflow must be published.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "slackTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Workflow-based trigger.",
+ "properties": {
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "workflowTrigger": {
+ "description": "Trigger a workflow VIA the Datadog UI. Only required if no other trigger exists.",
+ "type": "object"
+ }
+ },
+ "required": [
+ "workflowTrigger"
+ ],
+ "type": "object"
}
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
+ ]
+ },
+ "type": "array"
+ }
},
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- ]
- },
- "type": "array"
- },
- "meta": {
- "description": "Object describing meta attributes of response.",
- "properties": {
- "page": {
- "description": "Pagination object.",
- "properties": {
- "total_count": {
- "description": "Total count.",
- "format": "int64",
- "type": "integer"
+ "type": "object"
},
- "total_filtered_count": {
- "description": "Total count of elements matched by the filter.",
- "format": "int64",
- "type": "integer"
- }
- },
- "type": "object"
- }
- },
- "type": "object",
- "x-merge-override": {
- "properties": false
- }
- }
- },
- "readOnly": true,
- "type": "object"
- }
- }
- },
- "description": "OK"
- },
- "400": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Bad Request"
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Authentication error"
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Too many requests"
- }
- },
- "security": [
- {
- "apiKeyAuth": [],
- "appKeyAuth": []
- },
- {
- "AuthZ": [
- "user_access_read"
- ]
- }
- ],
- "summary": "List all users",
- "tags": [
- "Users"
- ],
- "x-codegen-request-body-name": "body",
- "x-menu-order": 1,
- "x-pagination": {
- "limitParam": "page[size]",
- "pageParam": "page[number]",
- "resultsPath": "data"
- },
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "user_access_read"
- ]
- },
- "x-undo": {
- "type": "safe"
- }
- },
- "post": {
- "description": "Create a user for your organization.",
- "operationId": "CreateUser",
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Create a user.",
- "properties": {
- "data": {
- "description": "Object to create a user.",
- "properties": {
- "attributes": {
- "description": "Attributes of the created user.",
- "properties": {
- "email": {
- "description": "The email of the user.",
- "example": "jane.doe@example.com",
- "type": "string"
- },
- "name": {
- "description": "The name of the user.",
- "type": "string"
- },
- "title": {
- "description": "The title of the user.",
- "type": "string"
- }
- },
- "required": [
- "email"
- ],
- "type": "object"
- },
- "relationships": {
- "description": "Relationships of the user object.",
- "properties": {
- "roles": {
- "description": "Relationship to roles.",
- "properties": {
- "data": {
- "description": "An array containing type and the unique identifier of a role.",
- "items": {
- "description": "Relationship to role object.",
- "properties": {
- "id": {
- "description": "The unique identifier of the role.",
- "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
- "type": "string"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
+ "tags": {
+ "description": "Tags of the workflow.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "attributes",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- }
- }
- },
- "required": true
- },
- "responses": {
- "201": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Response containing information about a single user.",
- "properties": {
- "data": {
- "description": "User object returned by the API.",
- "properties": {
- "attributes": {
- "description": "Attributes of user object returned by the API.",
- "properties": {
- "created_at": {
- "description": "Creation time of the user.",
+ "updatedAt": {
+ "description": "When the workflow was last updated.",
"format": "date-time",
- "type": "string"
- },
- "disabled": {
- "description": "Whether the user is disabled.",
- "type": "boolean"
- },
- "email": {
- "description": "Email of the user.",
- "type": "string"
- },
- "handle": {
- "description": "Handle of the user.",
- "type": "string"
- },
- "icon": {
- "description": "URL of the user's icon.",
- "type": "string"
- },
- "mfa_enabled": {
- "description": "If user has MFA enabled.",
"readOnly": true,
- "type": "boolean"
- },
- "modified_at": {
- "description": "Time that the user was last modified.",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "Name of the user.",
- "nullable": true,
- "type": "string"
- },
- "service_account": {
- "description": "Whether the user is a service account.",
- "type": "boolean"
- },
- "status": {
- "description": "Status of the user.",
- "type": "string"
- },
- "title": {
- "description": "Title of the user.",
- "nullable": true,
"type": "string"
},
- "verified": {
- "description": "Whether the user is verified.",
- "type": "boolean"
+ "webhookSecret": {
+ "description": "If a Webhook trigger is defined on this workflow, a webhookSecret is required and should be provided here.",
+ "type": "string",
+ "writeOnly": true
}
},
+ "required": [
+ "name",
+ "spec"
+ ],
"type": "object"
},
"id": {
- "description": "ID of the user.",
+ "description": "The workflow identifier",
+ "readOnly": true,
"type": "string"
},
"relationships": {
- "description": "Relationships of the user object returned by the API.",
+ "description": "The definition of `WorkflowDataRelationships` object.",
"properties": {
- "org": {
- "description": "Relationship to an organization.",
+ "creator": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
"properties": {
"data": {
- "description": "Relationship to organization object.",
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
"properties": {
"id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
+ "description": "The user identifier",
+ "example": "",
"type": "string"
},
"type": {
- "default": "orgs",
- "description": "Organizations resource type.",
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
"enum": [
- "orgs"
+ "users"
],
- "example": "orgs",
+ "example": "users",
"type": "string",
"x-enum-varnames": [
- "ORGS"
+ "USERS"
]
}
},
"required": [
- "id",
- "type"
+ "type",
+ "id"
],
"type": "object"
}
},
- "required": [
- "data"
- ],
- "type": "object"
- },
- "other_orgs": {
- "description": "Relationship to organizations.",
- "properties": {
- "data": {
- "description": "Relationships to organization objects.",
- "example": [],
- "items": {
- "description": "Relationship to organization object.",
- "properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
- "type": "string"
- },
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- },
- "type": "array"
- }
- },
- "required": [
- "data"
- ],
"type": "object"
},
- "other_users": {
- "description": "Relationship to users.",
+ "owner": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
"properties": {
"data": {
- "description": "Relationships to user objects.",
- "example": [],
- "items": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
+ "properties": {
+ "id": {
+ "description": "The user identifier",
+ "example": "",
+ "type": "string"
},
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
}
},
- "type": "array"
+ "required": [
+ "type",
+ "id"
+ ],
+ "type": "object"
}
},
- "required": [
- "data"
- ],
"type": "object"
- },
- "roles": {
- "description": "Relationship to roles.",
- "properties": {
- "data": {
- "description": "An array containing type and the unique identifier of a role.",
- "items": {
- "description": "Relationship to role object.",
- "properties": {
- "id": {
- "description": "The unique identifier of the role.",
- "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
- "type": "string"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
}
},
- "type": "object",
- "x-merge-override": {
- "properties": false
- }
+ "readOnly": true,
+ "type": "object"
},
"type": {
- "default": "users",
- "description": "Users resource type.",
+ "description": "The definition of `WorkflowDataType` object.",
"enum": [
- "users"
+ "workflows"
],
- "example": "users",
+ "example": "workflows",
"type": "string",
"x-enum-varnames": [
- "USERS"
+ "WORKFLOWS"
]
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "included": {
- "description": "Array of objects related to the user.",
- "items": {
- "description": "An object related to a user.",
- "oneOf": [
- {
- "description": "Organization object.",
- "properties": {
- "attributes": {
- "description": "Attributes of the organization.",
- "properties": {
- "created_at": {
- "description": "Creation time of the organization.",
- "format": "date-time",
- "type": "string"
- },
- "description": {
- "description": "Description of the organization.",
- "type": "string"
- },
- "disabled": {
- "description": "Whether or not the organization is disabled.",
- "type": "boolean"
- },
- "modified_at": {
- "description": "Time of last organization modification.",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "Name of the organization.",
- "type": "string"
- },
- "public_id": {
- "description": "Public ID of the organization.",
- "type": "string"
- },
- "sharing": {
- "description": "Sharing type of the organization.",
- "type": "string"
- },
- "url": {
- "description": "URL of the site that this organization exists at.",
- "type": "string"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "ID of the organization.",
- "type": "string"
- },
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object"
- },
- {
- "description": "Permission object.",
- "properties": {
- "attributes": {
- "description": "Attributes of a permission.",
- "properties": {
- "created": {
- "description": "Creation time of the permission.",
- "format": "date-time",
- "type": "string"
- },
- "description": {
- "description": "Description of the permission.",
- "type": "string"
- },
- "display_name": {
- "description": "Displayed name for the permission.",
- "type": "string"
- },
- "display_type": {
- "description": "Display type.",
- "type": "string"
- },
- "group_name": {
- "description": "Name of the permission group.",
- "type": "string"
- },
- "name": {
- "description": "Name of the permission.",
- "type": "string"
- },
- "restricted": {
- "description": "Whether or not the permission is restricted.",
- "type": "boolean"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "ID of the permission.",
- "type": "string"
- },
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
- "enum": [
- "permissions"
- ],
- "example": "permissions",
- "type": "string",
- "x-enum-varnames": [
- "PERMISSIONS"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object"
- },
- {
- "description": "Role object returned by the API.",
- "properties": {
- "attributes": {
- "description": "Attributes of the role.",
- "properties": {
- "created_at": {
- "description": "Creation time of the role.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified_at": {
- "description": "Time of last role modification.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "name": {
- "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
- "type": "string"
- },
- "user_count": {
- "description": "Number of users with that role.",
- "format": "int64",
- "readOnly": true,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "The unique identifier of the role.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the role object returned by the API.",
- "properties": {
- "permissions": {
- "description": "Relationship to multiple permissions objects.",
- "properties": {
- "data": {
- "description": "Relationships to permission objects.",
- "items": {
- "description": "Relationship to permission object.",
- "properties": {
- "id": {
- "description": "ID of the permission.",
- "type": "string"
- },
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
- "enum": [
- "permissions"
- ],
- "example": "permissions",
- "type": "string",
- "x-enum-varnames": [
- "PERMISSIONS"
- ]
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- ]
- },
- "type": "array"
+ "required": [
+ "type",
+ "attributes"
+ ],
+ "type": "object"
}
},
+ "required": [
+ "data"
+ ],
"type": "object"
}
}
},
- "description": "OK"
+ "description": "Successfully created a workflow."
},
"400": {
"content": {
@@ -406425,13 +432547,52 @@
"properties": {
"errors": {
"description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
"items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
"type": "array"
}
@@ -406443,7 +432604,7 @@
}
}
},
- "description": "Bad Request"
+ "description": "Bad request"
},
"403": {
"content": {
@@ -406453,13 +432614,52 @@
"properties": {
"errors": {
"description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
"items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
"type": "array"
}
@@ -406471,7 +432671,7 @@
}
}
},
- "description": "Authentication error"
+ "description": "Forbidden"
},
"429": {
"content": {
@@ -406481,13 +432681,52 @@
"properties": {
"errors": {
"description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
"items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
"type": "array"
}
@@ -406502,45 +432741,33 @@
"description": "Too many requests"
}
},
- "security": [
- {
- "apiKeyAuth": [],
- "appKeyAuth": []
- },
- {
- "AuthZ": [
- "user_access_invite"
- ]
- }
- ],
- "summary": "Create a user",
+ "summary": "Create a Workflow",
"tags": [
- "Users"
+ "Workflow Automation"
],
- "x-codegen-request-body-name": "body",
"x-given": {
- "user": {
+ "workflow": {
"parameters": [
{
"name": "body",
- "value": "{\n \"data\": {\n \"attributes\": {\n \"email\": \"{{ unique }}@datadoghq.com\",\n \"title\": \"user title\"\n },\n \"type\": \"users\"\n }\n}"
+ "value": "{\n \"data\": {\n \"type\": \"workflows\",\n \"attributes\": {\n \"name\": \"Cassette Workflow x-given\",\n \"spec\": {\n \"triggers\": [\n {\n \"startStepNames\": [\"No_op\"],\n \"workflowTrigger\": {}\n }\n ],\n \"steps\": [\n {\n \"name\": \"No_op\",\n \"actionId\": \"com.datadoghq.core.noop\"\n }\n ]\n }\n }\n }\n}"
}
],
- "step": "there is a valid \"user\" in the system"
+ "step": "there is a valid \"workflow\" in the system"
}
},
"x-menu-order": 2,
"x-permission": {
"operator": "OR",
"permissions": [
- "user_access_invite"
+ "workflows_write"
]
},
"x-undo": {
- "operationId": "DisableUser",
+ "operationId": "DeleteWorkflow",
"parameters": [
{
- "name": "user_id",
+ "name": "workflow_id",
"source": "data.id"
}
],
@@ -406548,25 +432775,24 @@
}
}
},
- "/api/v2/users/{user_id}": {
+ "/api/v2/workflows/{workflow_id}": {
"delete": {
- "description": "Disable a user. Can only be used with an application key belonging\nto an administrator user.",
- "operationId": "DisableUser",
+ "description": "Delete a workflow by ID. This API requires an application key scoped with the `workflows_write` permission.",
+ "operationId": "DeleteWorkflow",
"parameters": [
{
- "description": "The ID of the user.",
+ "description": "The ID of the workflow.",
"in": "path",
- "name": "user_id",
+ "name": "workflow_id",
"required": true,
"schema": {
- "example": "00000000-0000-9999-0000-000000000000",
"type": "string"
}
}
],
"responses": {
"204": {
- "description": "OK"
+ "description": "Successfully deleted a workflow."
},
"403": {
"content": {
@@ -406576,13 +432802,52 @@
"properties": {
"errors": {
"description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
"items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
"type": "array"
}
@@ -406594,7 +432859,7 @@
}
}
},
- "description": "Authentication error"
+ "description": "Forbidden"
},
"404": {
"content": {
@@ -406604,13 +432869,52 @@
"properties": {
"errors": {
"description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
"items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
"type": "array"
}
@@ -406632,13 +432936,52 @@
"properties": {
"errors": {
"description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
"items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
"type": "array"
}
@@ -406653,28 +432996,15 @@
"description": "Too many requests"
}
},
- "security": [
- {
- "apiKeyAuth": [],
- "appKeyAuth": []
- },
- {
- "AuthZ": [
- "user_access_manage"
- ]
- }
- ],
- "summary": "Disable a user",
+ "summary": "Delete an existing Workflow",
"tags": [
- "Users"
+ "Workflow Automation"
],
- "x-codegen-request-body-name": "body",
- "x-menu-order": 5,
+ "x-menu-order": 4,
"x-permission": {
"operator": "OR",
"permissions": [
- "user_access_manage",
- "service_account_write"
+ "workflows_write"
]
},
"x-undo": {
@@ -406682,16 +433012,15 @@
}
},
"get": {
- "description": "Get a user in the organization specified by the user’s `user_id`.",
- "operationId": "GetUser",
+ "description": "Get a workflow by ID. This API requires an application key scoped with the `workflows_read` permission.",
+ "operationId": "GetWorkflow",
"parameters": [
{
- "description": "The ID of the user.",
+ "description": "The ID of the workflow.",
"in": "path",
- "name": "user_id",
+ "name": "workflow_id",
"required": true,
"schema": {
- "example": "00000000-0000-9999-0000-000000000000",
"type": "string"
}
}
@@ -406701,1194 +433030,1125 @@
"content": {
"application/json": {
"schema": {
- "description": "Response containing information about a single user.",
+ "description": "The response object after getting a workflow.",
"properties": {
"data": {
- "description": "User object returned by the API.",
+ "description": "Data related to the workflow.",
"properties": {
"attributes": {
- "description": "Attributes of user object returned by the API.",
+ "description": "The definition of `WorkflowDataAttributes` object.",
"properties": {
- "created_at": {
- "description": "Creation time of the user.",
+ "createdAt": {
+ "description": "When the workflow was created.",
"format": "date-time",
- "type": "string"
- },
- "disabled": {
- "description": "Whether the user is disabled.",
- "type": "boolean"
- },
- "email": {
- "description": "Email of the user.",
- "type": "string"
- },
- "handle": {
- "description": "Handle of the user.",
- "type": "string"
- },
- "icon": {
- "description": "URL of the user's icon.",
- "type": "string"
- },
- "mfa_enabled": {
- "description": "If user has MFA enabled.",
"readOnly": true,
- "type": "boolean"
- },
- "modified_at": {
- "description": "Time that the user was last modified.",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "Name of the user.",
- "nullable": true,
"type": "string"
},
- "service_account": {
- "description": "Whether the user is a service account.",
- "type": "boolean"
- },
- "status": {
- "description": "Status of the user.",
+ "description": {
+ "description": "Description of the workflow.",
"type": "string"
},
- "title": {
- "description": "Title of the user.",
- "nullable": true,
+ "name": {
+ "description": "Name of the workflow.",
+ "example": "",
"type": "string"
},
- "verified": {
- "description": "Whether the user is verified.",
+ "published": {
+ "description": "Set the workflow to published or unpublished. Workflows in an unpublished state will only be executable via manual runs. Automatic triggers such as Schedule will not execute the workflow until it is published.",
"type": "boolean"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "ID of the user.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the user object returned by the API.",
- "properties": {
- "org": {
- "description": "Relationship to an organization.",
- "properties": {
- "data": {
- "description": "Relationship to organization object.",
- "properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
- "type": "string"
- },
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
},
- "other_orgs": {
- "description": "Relationship to organizations.",
+ "spec": {
+ "description": "The spec defines what the workflow does.",
"properties": {
- "data": {
- "description": "Relationships to organization objects.",
- "example": [],
+ "annotations": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
"items": {
- "description": "Relationship to organization object.",
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
"properties": {
+ "display": {
+ "description": "The definition of `AnnotationDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `AnnotationDisplayBounds` object.",
+ "properties": {
+ "height": {
+ "description": "The `bounds` `height`.",
+ "format": "double",
+ "type": "number"
+ },
+ "width": {
+ "description": "The `bounds` `width`.",
+ "format": "double",
+ "type": "number"
+ },
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
"id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
+ "description": "The `Annotation` `id`.",
+ "example": "",
"type": "string"
},
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
+ "markdownTextAnnotation": {
+ "description": "The definition of `AnnotationMarkdownTextAnnotation` object.",
+ "properties": {
+ "text": {
+ "description": "The `markdownTextAnnotation` `text`.",
+ "type": "string"
+ }
+ },
+ "type": "object"
}
},
"required": [
"id",
- "type"
+ "display",
+ "markdownTextAnnotation"
],
"type": "object"
},
"type": "array"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "other_users": {
- "description": "Relationship to users.",
- "properties": {
- "data": {
- "description": "Relationships to user objects.",
- "example": [],
+ },
+ "connectionEnvs": {
+ "description": "A list of connections or connection groups used in the workflow.",
"items": {
- "description": "Relationship to user object.",
+ "description": "A list of connections or connection groups used in the workflow.",
"properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
+ "connectionGroups": {
+ "description": "The `ConnectionEnv` `connectionGroups`.",
+ "items": {
+ "description": "The definition of `ConnectionGroup` object.",
+ "properties": {
+ "connectionGroupId": {
+ "description": "The `ConnectionGroup` `connectionGroupId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `ConnectionGroup` `label`.",
+ "example": "",
+ "type": "string"
+ },
+ "tags": {
+ "description": "The `ConnectionGroup` `tags`.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "connectionGroupId",
+ "label",
+ "tags"
+ ],
+ "type": "object"
+ },
+ "type": "array"
},
- "type": {
- "default": "users",
- "description": "Users resource type.",
+ "connections": {
+ "description": "The `ConnectionEnv` `connections`.",
+ "items": {
+ "description": "The definition of `Connection` object.",
+ "properties": {
+ "connectionId": {
+ "description": "The `Connection` `connectionId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `Connection` `label`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "connectionId",
+ "label"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "env": {
+ "description": "The definition of `ConnectionEnvEnv` object.",
"enum": [
- "users"
+ "default"
],
- "example": "users",
+ "example": "default",
"type": "string",
"x-enum-varnames": [
- "USERS"
+ "DEFAULT"
]
}
},
"required": [
- "id",
- "type"
+ "env"
],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "object"
},
"type": "array"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "roles": {
- "description": "Relationship to roles.",
- "properties": {
- "data": {
- "description": "An array containing type and the unique identifier of a role.",
+ },
+ "handle": {
+ "description": "Unique identifier used to trigger workflows automatically in Datadog.",
+ "type": "string"
+ },
+ "inputSchema": {
+ "description": "A list of input parameters for the workflow. These can be used as dynamic runtime values in your workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `InputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `InputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `InputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `InputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `InputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `InputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `InputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "outputSchema": {
+ "description": "A list of output parameters for the workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `OutputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `OutputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `OutputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `OutputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `OutputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `OutputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `OutputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ },
+ "value": {
+ "description": "The `OutputSchemaParameters` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "steps": {
+ "description": "A `Step` is a sub-component of a workflow. Each `Step` performs an action.",
"items": {
- "description": "Relationship to role object.",
+ "description": "A Step is a sub-component of a workflow. Each Step performs an action.",
"properties": {
- "id": {
- "description": "The unique identifier of the role.",
- "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "actionId": {
+ "description": "The unique identifier of an action.",
+ "example": "",
"type": "string"
},
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
+ "completionGate": {
+ "description": "Used to create conditions before running subsequent actions.",
+ "properties": {
+ "completionCondition": {
+ "description": "The definition of `CompletionCondition` object.",
+ "properties": {
+ "operand1": {
+ "description": "The `CompletionCondition` `operand1`."
+ },
+ "operand2": {
+ "description": "The `CompletionCondition` `operand2`."
+ },
+ "operator": {
+ "description": "The definition of `CompletionConditionOperator` object.",
+ "enum": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ],
+ "example": "OPERATOR_EQUAL",
+ "type": "string",
+ "x-enum-varnames": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ]
+ }
+ },
+ "required": [
+ "operand1",
+ "operator"
+ ],
+ "type": "object"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "completionCondition",
+ "retryStrategy"
],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
+ "type": "object"
+ },
+ "connectionLabel": {
+ "description": "The unique identifier of a connection defined in the spec.",
+ "type": "string"
+ },
+ "display": {
+ "description": "The definition of `StepDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `StepDisplayBounds` object.",
+ "properties": {
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "errorHandlers": {
+ "description": "The `Step` `errorHandlers`.",
+ "items": {
+ "description": "Used to handle errors in an action.",
+ "properties": {
+ "fallbackStepName": {
+ "description": "The `ErrorHandler` `fallbackStepName`.",
+ "example": "",
+ "type": "string"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "retryStrategy",
+ "fallbackStepName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the step.",
+ "example": "",
+ "type": "string"
+ },
+ "outboundEdges": {
+ "description": "A list of subsequent actions to run.",
+ "items": {
+ "description": "The definition of `OutboundEdge` object.",
+ "properties": {
+ "branchName": {
+ "description": "The `OutboundEdge` `branchName`.",
+ "example": "",
+ "type": "string"
+ },
+ "nextStepName": {
+ "description": "The `OutboundEdge` `nextStepName`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "nextStepName",
+ "branchName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "parameters": {
+ "description": "A list of inputs for an action.",
+ "items": {
+ "description": "The definition of `Parameter` object.",
+ "properties": {
+ "name": {
+ "description": "The `Parameter` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "value": {
+ "description": "The `Parameter` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "value"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "readinessGate": {
+ "description": "Used to merge multiple branches into a single branch.",
+ "properties": {
+ "thresholdType": {
+ "description": "The definition of `ReadinessGateThresholdType` object.",
+ "enum": [
+ "ANY",
+ "ALL"
+ ],
+ "example": "ANY",
+ "type": "string",
+ "x-enum-varnames": [
+ "ANY",
+ "ALL"
+ ]
+ }
+ },
+ "required": [
+ "thresholdType"
+ ],
+ "type": "object"
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "required": [
+ "name",
+ "actionId"
+ ],
+ "type": "object"
},
"type": "array"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object",
- "x-merge-override": {
- "properties": false
- }
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "included": {
- "description": "Array of objects related to the user.",
- "items": {
- "description": "An object related to a user.",
- "oneOf": [
- {
- "description": "Organization object.",
- "properties": {
- "attributes": {
- "description": "Attributes of the organization.",
- "properties": {
- "created_at": {
- "description": "Creation time of the organization.",
- "format": "date-time",
- "type": "string"
- },
- "description": {
- "description": "Description of the organization.",
- "type": "string"
- },
- "disabled": {
- "description": "Whether or not the organization is disabled.",
- "type": "boolean"
- },
- "modified_at": {
- "description": "Time of last organization modification.",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "Name of the organization.",
- "type": "string"
- },
- "public_id": {
- "description": "Public ID of the organization.",
- "type": "string"
- },
- "sharing": {
- "description": "Sharing type of the organization.",
- "type": "string"
- },
- "url": {
- "description": "URL of the site that this organization exists at.",
- "type": "string"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "ID of the organization.",
- "type": "string"
- },
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object"
- },
- {
- "description": "Permission object.",
- "properties": {
- "attributes": {
- "description": "Attributes of a permission.",
- "properties": {
- "created": {
- "description": "Creation time of the permission.",
- "format": "date-time",
- "type": "string"
- },
- "description": {
- "description": "Description of the permission.",
- "type": "string"
- },
- "display_name": {
- "description": "Displayed name for the permission.",
- "type": "string"
- },
- "display_type": {
- "description": "Display type.",
- "type": "string"
- },
- "group_name": {
- "description": "Name of the permission group.",
- "type": "string"
- },
- "name": {
- "description": "Name of the permission.",
- "type": "string"
- },
- "restricted": {
- "description": "Whether or not the permission is restricted.",
- "type": "boolean"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "ID of the permission.",
- "type": "string"
- },
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
- "enum": [
- "permissions"
- ],
- "example": "permissions",
- "type": "string",
- "x-enum-varnames": [
- "PERMISSIONS"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object"
- },
- {
- "description": "Role object returned by the API.",
- "properties": {
- "attributes": {
- "description": "Attributes of the role.",
- "properties": {
- "created_at": {
- "description": "Creation time of the role.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified_at": {
- "description": "Time of last role modification.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "name": {
- "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
- "type": "string"
- },
- "user_count": {
- "description": "Number of users with that role.",
- "format": "int64",
- "readOnly": true,
- "type": "integer"
- }
},
- "type": "object"
- },
- "id": {
- "description": "The unique identifier of the role.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the role object returned by the API.",
- "properties": {
- "permissions": {
- "description": "Relationship to multiple permissions objects.",
- "properties": {
- "data": {
- "description": "Relationships to permission objects.",
- "items": {
- "description": "Relationship to permission object.",
- "properties": {
- "id": {
- "description": "ID of the permission.",
+ "triggers": {
+ "description": "The list of triggers that activate this workflow. At least one trigger is required, and each trigger type may appear at most once.",
+ "items": {
+ "description": "One of the triggers that can start the execution of a workflow.",
+ "oneOf": [
+ {
+ "description": "Schema for an API-based trigger.",
+ "properties": {
+ "apiTrigger": {
+ "description": "Trigger a workflow VIA an API. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "apiTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an App-based trigger.",
+ "properties": {
+ "appTrigger": {
+ "description": "Trigger a workflow VIA an App.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "appTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Case-based trigger.",
+ "properties": {
+ "caseTrigger": {
+ "description": "Trigger a workflow VIA a Case. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "caseTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Change Event-based trigger.",
+ "properties": {
+ "changeEventTrigger": {
+ "description": "Trigger a workflow VIA a Change Event.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "changeEventTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Dashboard-based trigger.",
+ "properties": {
+ "dashboardTrigger": {
+ "description": "Trigger a workflow VIA a Dashboard.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "dashboardTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a GitHub webhook-based trigger.",
+ "properties": {
+ "githubWebhookTrigger": {
+ "description": "Trigger a workflow VIA GitHub webhook. To trigger a workflow from GitHub, you must set a `webhookSecret`. In your GitHub Webhook Settings, set the Payload URL to \"base_url\"/api/v2/workflows/\"workflow_id\"/webhook?orgId=\"org_id\", select application/json for the content type, and be highly recommend enabling SSL verification for security. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
"type": "string"
},
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
- "enum": [
- "permissions"
- ],
- "example": "permissions",
- "type": "string",
- "x-enum-varnames": [
- "PERMISSIONS"
- ]
- }
+ "type": "array"
+ }
+ },
+ "required": [
+ "githubWebhookTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an Incident-based trigger.",
+ "properties": {
+ "incidentTrigger": {
+ "description": "Trigger a workflow VIA an Incident. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
},
- "type": "object",
- "x-merge-override": {
- "required": false
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
}
},
- "type": "array"
+ "required": [
+ "incidentTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Monitor-based trigger.",
+ "properties": {
+ "monitorTrigger": {
+ "description": "Trigger a workflow VIA a Monitor. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "monitorTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Schedule-based trigger.",
+ "properties": {
+ "scheduleTrigger": {
+ "description": "Trigger a workflow VIA a Schedule. The workflow must be published.",
+ "properties": {
+ "rruleExpression": {
+ "description": "Recurrence rule expression for scheduling.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "rruleExpression"
+ ],
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "scheduleTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Security-based trigger.",
+ "properties": {
+ "securityTrigger": {
+ "description": "Trigger a workflow VIA a Security Signal or Finding. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "securityTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Slack-based trigger.",
+ "properties": {
+ "slackTrigger": {
+ "description": "Trigger a workflow VIA Slack. The workflow must be published.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "slackTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Workflow-based trigger.",
+ "properties": {
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "workflowTrigger": {
+ "description": "Trigger a workflow VIA the Datadog UI. Only required if no other trigger exists.",
+ "type": "object"
+ }
+ },
+ "required": [
+ "workflowTrigger"
+ ],
+ "type": "object"
}
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
+ ]
+ },
+ "type": "array"
+ }
},
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- ]
- },
- "type": "array"
- }
- },
- "type": "object"
- }
- }
- },
- "description": "OK"
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Authentication error"
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Not found"
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Too many requests"
- }
- },
- "security": [
- {
- "apiKeyAuth": [],
- "appKeyAuth": []
- },
- {
- "AuthZ": [
- "user_access_read"
- ]
- }
- ],
- "summary": "Get user details",
- "tags": [
- "Users"
- ],
- "x-codegen-request-body-name": "body",
- "x-menu-order": 3,
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "user_access_read"
- ]
- },
- "x-undo": {
- "type": "safe"
- }
- },
- "patch": {
- "description": "Edit a user. Can only be used with an application key belonging\nto an administrator user.",
- "operationId": "UpdateUser",
- "parameters": [
- {
- "description": "The ID of the user.",
- "in": "path",
- "name": "user_id",
- "required": true,
- "schema": {
- "example": "00000000-0000-9999-0000-000000000000",
- "type": "string"
- }
- }
- ],
- "requestBody": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Update a user.",
- "properties": {
- "data": {
- "description": "Object to update a user.",
- "properties": {
- "attributes": {
- "description": "Attributes of the edited user.",
- "properties": {
- "disabled": {
- "description": "If the user is enabled or disabled.",
- "type": "boolean"
- },
- "email": {
- "description": "The email of the user.",
- "type": "string"
- },
- "name": {
- "description": "The name of the user.",
- "type": "string"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "ID of the user.",
- "example": "00000000-0000-feed-0000-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "required": [
- "attributes",
- "type",
- "id"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- }
- }
- },
- "required": true
- },
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Response containing information about a single user.",
- "properties": {
- "data": {
- "description": "User object returned by the API.",
- "properties": {
- "attributes": {
- "description": "Attributes of user object returned by the API.",
- "properties": {
- "created_at": {
- "description": "Creation time of the user.",
- "format": "date-time",
- "type": "string"
- },
- "disabled": {
- "description": "Whether the user is disabled.",
- "type": "boolean"
- },
- "email": {
- "description": "Email of the user.",
- "type": "string"
- },
- "handle": {
- "description": "Handle of the user.",
- "type": "string"
- },
- "icon": {
- "description": "URL of the user's icon.",
- "type": "string"
+ "type": "object"
},
- "mfa_enabled": {
- "description": "If user has MFA enabled.",
- "readOnly": true,
- "type": "boolean"
+ "tags": {
+ "description": "Tags of the workflow.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
},
- "modified_at": {
- "description": "Time that the user was last modified.",
+ "updatedAt": {
+ "description": "When the workflow was last updated.",
"format": "date-time",
+ "readOnly": true,
"type": "string"
},
- "name": {
- "description": "Name of the user.",
- "nullable": true,
- "type": "string"
- },
- "service_account": {
- "description": "Whether the user is a service account.",
- "type": "boolean"
- },
- "status": {
- "description": "Status of the user.",
- "type": "string"
- },
- "title": {
- "description": "Title of the user.",
- "nullable": true,
- "type": "string"
- },
- "verified": {
- "description": "Whether the user is verified.",
- "type": "boolean"
+ "webhookSecret": {
+ "description": "If a Webhook trigger is defined on this workflow, a webhookSecret is required and should be provided here.",
+ "type": "string",
+ "writeOnly": true
}
},
+ "required": [
+ "name",
+ "spec"
+ ],
"type": "object"
},
"id": {
- "description": "ID of the user.",
+ "description": "The workflow identifier",
+ "readOnly": true,
"type": "string"
},
"relationships": {
- "description": "Relationships of the user object returned by the API.",
+ "description": "The definition of `WorkflowDataRelationships` object.",
"properties": {
- "org": {
- "description": "Relationship to an organization.",
+ "creator": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
"properties": {
"data": {
- "description": "Relationship to organization object.",
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
"properties": {
"id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
+ "description": "The user identifier",
+ "example": "",
"type": "string"
},
"type": {
- "default": "orgs",
- "description": "Organizations resource type.",
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
"enum": [
- "orgs"
+ "users"
],
- "example": "orgs",
+ "example": "users",
"type": "string",
"x-enum-varnames": [
- "ORGS"
+ "USERS"
]
}
},
"required": [
- "id",
- "type"
+ "type",
+ "id"
],
"type": "object"
}
},
- "required": [
- "data"
- ],
- "type": "object"
- },
- "other_orgs": {
- "description": "Relationship to organizations.",
- "properties": {
- "data": {
- "description": "Relationships to organization objects.",
- "example": [],
- "items": {
- "description": "Relationship to organization object.",
- "properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
- "type": "string"
- },
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- },
- "type": "array"
- }
- },
- "required": [
- "data"
- ],
"type": "object"
},
- "other_users": {
- "description": "Relationship to users.",
+ "owner": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
"properties": {
"data": {
- "description": "Relationships to user objects.",
- "example": [],
- "items": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
+ "properties": {
+ "id": {
+ "description": "The user identifier",
+ "example": "",
+ "type": "string"
},
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
}
},
- "type": "array"
+ "required": [
+ "type",
+ "id"
+ ],
+ "type": "object"
}
},
- "required": [
- "data"
- ],
"type": "object"
- },
- "roles": {
- "description": "Relationship to roles.",
- "properties": {
- "data": {
- "description": "An array containing type and the unique identifier of a role.",
- "items": {
- "description": "Relationship to role object.",
- "properties": {
- "id": {
- "description": "The unique identifier of the role.",
- "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
- "type": "string"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
}
},
- "type": "object",
- "x-merge-override": {
- "properties": false
- }
+ "readOnly": true,
+ "type": "object"
},
"type": {
- "default": "users",
- "description": "Users resource type.",
+ "description": "The definition of `WorkflowDataType` object.",
"enum": [
- "users"
+ "workflows"
],
- "example": "users",
+ "example": "workflows",
"type": "string",
"x-enum-varnames": [
- "USERS"
+ "WORKFLOWS"
]
}
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "included": {
- "description": "Array of objects related to the user.",
- "items": {
- "description": "An object related to a user.",
- "oneOf": [
- {
- "description": "Organization object.",
- "properties": {
- "attributes": {
- "description": "Attributes of the organization.",
- "properties": {
- "created_at": {
- "description": "Creation time of the organization.",
- "format": "date-time",
- "type": "string"
- },
- "description": {
- "description": "Description of the organization.",
- "type": "string"
- },
- "disabled": {
- "description": "Whether or not the organization is disabled.",
- "type": "boolean"
- },
- "modified_at": {
- "description": "Time of last organization modification.",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "Name of the organization.",
- "type": "string"
- },
- "public_id": {
- "description": "Public ID of the organization.",
- "type": "string"
- },
- "sharing": {
- "description": "Sharing type of the organization.",
- "type": "string"
- },
- "url": {
- "description": "URL of the site that this organization exists at.",
- "type": "string"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "ID of the organization.",
- "type": "string"
- },
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object"
- },
- {
- "description": "Permission object.",
- "properties": {
- "attributes": {
- "description": "Attributes of a permission.",
- "properties": {
- "created": {
- "description": "Creation time of the permission.",
- "format": "date-time",
- "type": "string"
- },
- "description": {
- "description": "Description of the permission.",
- "type": "string"
- },
- "display_name": {
- "description": "Displayed name for the permission.",
- "type": "string"
- },
- "display_type": {
- "description": "Display type.",
- "type": "string"
- },
- "group_name": {
- "description": "Name of the permission group.",
- "type": "string"
- },
- "name": {
- "description": "Name of the permission.",
- "type": "string"
- },
- "restricted": {
- "description": "Whether or not the permission is restricted.",
- "type": "boolean"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "ID of the permission.",
- "type": "string"
- },
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
- "enum": [
- "permissions"
- ],
- "example": "permissions",
- "type": "string",
- "x-enum-varnames": [
- "PERMISSIONS"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object"
- },
- {
- "description": "Role object returned by the API.",
- "properties": {
- "attributes": {
- "description": "Attributes of the role.",
- "properties": {
- "created_at": {
- "description": "Creation time of the role.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified_at": {
- "description": "Time of last role modification.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "name": {
- "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
- "type": "string"
- },
- "user_count": {
- "description": "Number of users with that role.",
- "format": "int64",
- "readOnly": true,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "The unique identifier of the role.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the role object returned by the API.",
- "properties": {
- "permissions": {
- "description": "Relationship to multiple permissions objects.",
- "properties": {
- "data": {
- "description": "Relationships to permission objects.",
- "items": {
- "description": "Relationship to permission object.",
- "properties": {
- "id": {
- "description": "ID of the permission.",
- "type": "string"
- },
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
- "enum": [
- "permissions"
- ],
- "example": "permissions",
- "type": "string",
- "x-enum-varnames": [
- "PERMISSIONS"
- ]
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- ]
- },
- "type": "array"
+ "required": [
+ "type",
+ "attributes"
+ ],
+ "type": "object"
}
},
"type": "object"
}
}
},
- "description": "OK"
+ "description": "Successfully got a workflow."
},
"400": {
"content": {
@@ -407898,13 +434158,52 @@
"properties": {
"errors": {
"description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
"items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
"type": "array"
}
@@ -407916,7 +434215,7 @@
}
}
},
- "description": "Bad Request"
+ "description": "Bad request"
},
"403": {
"content": {
@@ -407926,41 +434225,52 @@
"properties": {
"errors": {
"description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Authentication error"
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
"items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
"type": "array"
}
@@ -407972,9 +434282,9 @@
}
}
},
- "description": "Not found"
+ "description": "Forbidden"
},
- "422": {
+ "404": {
"content": {
"application/json": {
"schema": {
@@ -407982,13 +434292,52 @@
"properties": {
"errors": {
"description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
"items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
"type": "array"
}
@@ -408000,7 +434349,7 @@
}
}
},
- "description": "Unprocessable Entity"
+ "description": "Not found"
},
"429": {
"content": {
@@ -408010,13 +434359,52 @@
"properties": {
"errors": {
"description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
"items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
"type": "array"
}
@@ -408031,1605 +434419,2372 @@
"description": "Too many requests"
}
},
- "security": [
- {
- "apiKeyAuth": [],
- "appKeyAuth": []
- },
- {
- "AuthZ": [
- "user_access_manage"
- ]
- }
- ],
- "summary": "Update a user",
+ "summary": "Get an existing Workflow",
"tags": [
- "Users"
+ "Workflow Automation"
],
- "x-codegen-request-body-name": "body",
- "x-menu-order": 4,
+ "x-menu-order": 1,
"x-permission": {
"operator": "OR",
"permissions": [
- "user_access_manage",
- "service_account_write"
+ "workflows_read"
]
},
"x-undo": {
- "type": "idempotent"
+ "type": "safe"
}
},
- "x-merge-override": {
- "delete": true
- }
- },
- "/api/v2/users/{user_id}/orgs": {
- "get": {
- "description": "Get a user organization. Returns the user information and all organizations\njoined by this user.",
- "operationId": "ListUserOrganizations",
+ "patch": {
+ "description": "Update a workflow by ID. This API requires an application key scoped with the `workflows_write` permission.",
+ "operationId": "UpdateWorkflow",
"parameters": [
{
- "description": "The ID of the user.",
+ "description": "The ID of the workflow.",
"in": "path",
- "name": "user_id",
+ "name": "workflow_id",
"required": true,
"schema": {
- "example": "00000000-0000-9999-0000-000000000000",
"type": "string"
}
}
],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Response containing information about a single user.",
- "properties": {
- "data": {
- "description": "User object returned by the API.",
- "properties": {
- "attributes": {
- "description": "Attributes of user object returned by the API.",
- "properties": {
- "created_at": {
- "description": "Creation time of the user.",
- "format": "date-time",
- "type": "string"
- },
- "disabled": {
- "description": "Whether the user is disabled.",
- "type": "boolean"
- },
- "email": {
- "description": "Email of the user.",
- "type": "string"
- },
- "handle": {
- "description": "Handle of the user.",
- "type": "string"
- },
- "icon": {
- "description": "URL of the user's icon.",
- "type": "string"
- },
- "mfa_enabled": {
- "description": "If user has MFA enabled.",
- "readOnly": true,
- "type": "boolean"
- },
- "modified_at": {
- "description": "Time that the user was last modified.",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "Name of the user.",
- "nullable": true,
- "type": "string"
- },
- "service_account": {
- "description": "Whether the user is a service account.",
- "type": "boolean"
- },
- "status": {
- "description": "Status of the user.",
- "type": "string"
- },
- "title": {
- "description": "Title of the user.",
- "nullable": true,
- "type": "string"
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "A request object for updating an existing workflow.",
+ "example": {
+ "data": {
+ "attributes": {
+ "description": "A sample workflow.",
+ "name": "Example Workflow",
+ "published": true,
+ "spec": {
+ "annotations": [
+ {
+ "display": {
+ "bounds": {
+ "height": 150,
+ "width": 300,
+ "x": -375,
+ "y": -0.5
+ }
},
- "verified": {
- "description": "Whether the user is verified.",
- "type": "boolean"
+ "id": "99999999-9999-9999-9999-999999999999",
+ "markdownTextAnnotation": {
+ "text": "Example annotation."
}
- },
- "type": "object"
+ }
+ ],
+ "connectionEnvs": [
+ {
+ "connections": [
+ {
+ "connectionId": "11111111-1111-1111-1111-111111111111",
+ "label": "INTEGRATION_DATADOG"
+ }
+ ],
+ "env": "default"
+ }
+ ],
+ "handle": "my-handle",
+ "inputSchema": {
+ "parameters": [
+ {
+ "defaultValue": "default",
+ "name": "input",
+ "type": "STRING"
+ }
+ ]
},
- "id": {
- "description": "ID of the user.",
- "type": "string"
+ "outputSchema": {
+ "parameters": [
+ {
+ "name": "output",
+ "type": "ARRAY_OBJECT",
+ "value": "{{ Steps.Step1 }}"
+ }
+ ]
},
- "relationships": {
- "description": "Relationships of the user object returned by the API.",
- "properties": {
- "org": {
- "description": "Relationship to an organization.",
- "properties": {
- "data": {
- "description": "Relationship to organization object.",
+ "steps": [
+ {
+ "actionId": "com.datadoghq.dd.monitor.listMonitors",
+ "connectionLabel": "INTEGRATION_DATADOG",
+ "name": "Step1",
+ "outboundEdges": [
+ {
+ "branchName": "main",
+ "nextStepName": "Step2"
+ }
+ ],
+ "parameters": [
+ {
+ "name": "tags",
+ "value": "service:monitoring"
+ }
+ ]
+ },
+ {
+ "actionId": "com.datadoghq.core.noop",
+ "name": "Step2"
+ }
+ ],
+ "triggers": [
+ {
+ "monitorTrigger": {
+ "rateLimit": {
+ "count": 1,
+ "interval": "3600s"
+ }
+ },
+ "startStepNames": [
+ "Step1"
+ ]
+ },
+ {
+ "githubWebhookTrigger": {},
+ "startStepNames": [
+ "Step1"
+ ]
+ }
+ ]
+ },
+ "tags": [
+ "team:infra",
+ "service:monitoring",
+ "foo:bar"
+ ]
+ },
+ "id": "22222222-2222-2222-2222-222222222222",
+ "type": "workflows"
+ }
+ },
+ "properties": {
+ "data": {
+ "description": "Data related to the workflow being updated.",
+ "properties": {
+ "attributes": {
+ "description": "The definition of `WorkflowDataUpdateAttributes` object.",
+ "properties": {
+ "createdAt": {
+ "description": "When the workflow was created.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "description": {
+ "description": "Description of the workflow.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the workflow.",
+ "type": "string"
+ },
+ "published": {
+ "description": "Set the workflow to published or unpublished. Workflows in an unpublished state will only be executable via manual runs. Automatic triggers such as Schedule will not execute the workflow until it is published.",
+ "type": "boolean"
+ },
+ "spec": {
+ "description": "The spec defines what the workflow does.",
+ "properties": {
+ "annotations": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "items": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
"properties": {
+ "display": {
+ "description": "The definition of `AnnotationDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `AnnotationDisplayBounds` object.",
+ "properties": {
+ "height": {
+ "description": "The `bounds` `height`.",
+ "format": "double",
+ "type": "number"
+ },
+ "width": {
+ "description": "The `bounds` `width`.",
+ "format": "double",
+ "type": "number"
+ },
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
"id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
+ "description": "The `Annotation` `id`.",
+ "example": "",
"type": "string"
},
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
+ "markdownTextAnnotation": {
+ "description": "The definition of `AnnotationMarkdownTextAnnotation` object.",
+ "properties": {
+ "text": {
+ "description": "The `markdownTextAnnotation` `text`.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "required": [
+ "id",
+ "display",
+ "markdownTextAnnotation"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "connectionEnvs": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "items": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "properties": {
+ "connectionGroups": {
+ "description": "The `ConnectionEnv` `connectionGroups`.",
+ "items": {
+ "description": "The definition of `ConnectionGroup` object.",
+ "properties": {
+ "connectionGroupId": {
+ "description": "The `ConnectionGroup` `connectionGroupId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `ConnectionGroup` `label`.",
+ "example": "",
+ "type": "string"
+ },
+ "tags": {
+ "description": "The `ConnectionGroup` `tags`.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "connectionGroupId",
+ "label",
+ "tags"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "connections": {
+ "description": "The `ConnectionEnv` `connections`.",
+ "items": {
+ "description": "The definition of `Connection` object.",
+ "properties": {
+ "connectionId": {
+ "description": "The `Connection` `connectionId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `Connection` `label`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "connectionId",
+ "label"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "env": {
+ "description": "The definition of `ConnectionEnvEnv` object.",
"enum": [
- "orgs"
+ "default"
],
- "example": "orgs",
+ "example": "default",
"type": "string",
"x-enum-varnames": [
- "ORGS"
+ "DEFAULT"
]
}
},
"required": [
- "id",
- "type"
+ "env"
],
"type": "object"
- }
+ },
+ "type": "array"
},
- "required": [
- "data"
- ],
- "type": "object"
- },
- "other_orgs": {
- "description": "Relationship to organizations.",
- "properties": {
- "data": {
- "description": "Relationships to organization objects.",
- "example": [],
- "items": {
- "description": "Relationship to organization object.",
- "properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
- "type": "string"
+ "handle": {
+ "description": "Unique identifier used to trigger workflows automatically in Datadog.",
+ "type": "string"
+ },
+ "inputSchema": {
+ "description": "A list of input parameters for the workflow. These can be used as dynamic runtime values in your workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `InputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `InputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `InputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `InputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `InputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `InputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `InputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ }
},
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
- }
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
},
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- },
- "type": "array"
- }
+ "type": "array"
+ }
+ },
+ "type": "object"
},
- "required": [
- "data"
- ],
- "type": "object"
- },
- "other_users": {
- "description": "Relationship to users.",
- "properties": {
- "data": {
- "description": "Relationships to user objects.",
- "example": [],
- "items": {
- "description": "Relationship to user object.",
- "properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
- "type": "string"
+ "outputSchema": {
+ "description": "A list of output parameters for the workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `OutputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `OutputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `OutputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `OutputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `OutputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `OutputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `OutputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ },
+ "value": {
+ "description": "The `OutputSchemaParameters` `value`."
+ }
},
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
},
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
+ "type": "array"
+ }
+ },
+ "type": "object"
},
- "required": [
- "data"
- ],
- "type": "object"
- },
- "roles": {
- "description": "Relationship to roles.",
- "properties": {
- "data": {
- "description": "An array containing type and the unique identifier of a role.",
- "items": {
- "description": "Relationship to role object.",
- "properties": {
- "id": {
- "description": "The unique identifier of the role.",
- "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
- "type": "string"
+ "steps": {
+ "description": "A `Step` is a sub-component of a workflow. Each `Step` performs an action.",
+ "items": {
+ "description": "A Step is a sub-component of a workflow. Each Step performs an action.",
+ "properties": {
+ "actionId": {
+ "description": "The unique identifier of an action.",
+ "example": "",
+ "type": "string"
+ },
+ "completionGate": {
+ "description": "Used to create conditions before running subsequent actions.",
+ "properties": {
+ "completionCondition": {
+ "description": "The definition of `CompletionCondition` object.",
+ "properties": {
+ "operand1": {
+ "description": "The `CompletionCondition` `operand1`."
+ },
+ "operand2": {
+ "description": "The `CompletionCondition` `operand2`."
+ },
+ "operator": {
+ "description": "The definition of `CompletionConditionOperator` object.",
+ "enum": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ],
+ "example": "OPERATOR_EQUAL",
+ "type": "string",
+ "x-enum-varnames": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ]
+ }
+ },
+ "required": [
+ "operand1",
+ "operator"
+ ],
+ "type": "object"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
},
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
+ "required": [
+ "completionCondition",
+ "retryStrategy"
+ ],
+ "type": "object"
+ },
+ "connectionLabel": {
+ "description": "The unique identifier of a connection defined in the spec.",
+ "type": "string"
+ },
+ "display": {
+ "description": "The definition of `StepDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `StepDisplayBounds` object.",
+ "properties": {
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "errorHandlers": {
+ "description": "The `Step` `errorHandlers`.",
+ "items": {
+ "description": "Used to handle errors in an action.",
+ "properties": {
+ "fallbackStepName": {
+ "description": "The `ErrorHandler` `fallbackStepName`.",
+ "example": "",
+ "type": "string"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "retryStrategy",
+ "fallbackStepName"
],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
+ "type": "object"
+ },
+ "type": "array"
},
- "type": "object",
- "x-merge-override": {
- "required": false
+ "name": {
+ "description": "Name of the step.",
+ "example": "",
+ "type": "string"
+ },
+ "outboundEdges": {
+ "description": "A list of subsequent actions to run.",
+ "items": {
+ "description": "The definition of `OutboundEdge` object.",
+ "properties": {
+ "branchName": {
+ "description": "The `OutboundEdge` `branchName`.",
+ "example": "",
+ "type": "string"
+ },
+ "nextStepName": {
+ "description": "The `OutboundEdge` `nextStepName`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "nextStepName",
+ "branchName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "parameters": {
+ "description": "A list of inputs for an action.",
+ "items": {
+ "description": "The definition of `Parameter` object.",
+ "properties": {
+ "name": {
+ "description": "The `Parameter` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "value": {
+ "description": "The `Parameter` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "value"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "readinessGate": {
+ "description": "Used to merge multiple branches into a single branch.",
+ "properties": {
+ "thresholdType": {
+ "description": "The definition of `ReadinessGateThresholdType` object.",
+ "enum": [
+ "ANY",
+ "ALL"
+ ],
+ "example": "ANY",
+ "type": "string",
+ "x-enum-varnames": [
+ "ANY",
+ "ALL"
+ ]
+ }
+ },
+ "required": [
+ "thresholdType"
+ ],
+ "type": "object"
}
},
- "type": "array"
- }
+ "required": [
+ "name",
+ "actionId"
+ ],
+ "type": "object"
+ },
+ "type": "array"
},
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object",
- "x-merge-override": {
- "properties": false
- }
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "included": {
- "description": "Array of objects related to the user.",
- "items": {
- "description": "An object related to a user.",
- "oneOf": [
- {
- "description": "Organization object.",
- "properties": {
- "attributes": {
- "description": "Attributes of the organization.",
- "properties": {
- "created_at": {
- "description": "Creation time of the organization.",
- "format": "date-time",
- "type": "string"
- },
- "description": {
- "description": "Description of the organization.",
- "type": "string"
- },
- "disabled": {
- "description": "Whether or not the organization is disabled.",
- "type": "boolean"
- },
- "modified_at": {
- "description": "Time of last organization modification.",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "Name of the organization.",
- "type": "string"
- },
- "public_id": {
- "description": "Public ID of the organization.",
- "type": "string"
- },
- "sharing": {
- "description": "Sharing type of the organization.",
- "type": "string"
- },
- "url": {
- "description": "URL of the site that this organization exists at.",
- "type": "string"
- }
+ "triggers": {
+ "description": "The list of triggers that activate this workflow. At least one trigger is required, and each trigger type may appear at most once.",
+ "items": {
+ "description": "One of the triggers that can start the execution of a workflow.",
+ "oneOf": [
+ {
+ "description": "Schema for an API-based trigger.",
+ "properties": {
+ "apiTrigger": {
+ "description": "Trigger a workflow VIA an API. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "apiTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an App-based trigger.",
+ "properties": {
+ "appTrigger": {
+ "description": "Trigger a workflow VIA an App.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "appTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Case-based trigger.",
+ "properties": {
+ "caseTrigger": {
+ "description": "Trigger a workflow VIA a Case. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "caseTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Change Event-based trigger.",
+ "properties": {
+ "changeEventTrigger": {
+ "description": "Trigger a workflow VIA a Change Event.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "changeEventTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Dashboard-based trigger.",
+ "properties": {
+ "dashboardTrigger": {
+ "description": "Trigger a workflow VIA a Dashboard.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "dashboardTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a GitHub webhook-based trigger.",
+ "properties": {
+ "githubWebhookTrigger": {
+ "description": "Trigger a workflow VIA GitHub webhook. To trigger a workflow from GitHub, you must set a `webhookSecret`. In your GitHub Webhook Settings, set the Payload URL to \"base_url\"/api/v2/workflows/\"workflow_id\"/webhook?orgId=\"org_id\", select application/json for the content type, and be highly recommend enabling SSL verification for security. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "githubWebhookTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an Incident-based trigger.",
+ "properties": {
+ "incidentTrigger": {
+ "description": "Trigger a workflow VIA an Incident. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "incidentTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Monitor-based trigger.",
+ "properties": {
+ "monitorTrigger": {
+ "description": "Trigger a workflow VIA a Monitor. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "monitorTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Schedule-based trigger.",
+ "properties": {
+ "scheduleTrigger": {
+ "description": "Trigger a workflow VIA a Schedule. The workflow must be published.",
+ "properties": {
+ "rruleExpression": {
+ "description": "Recurrence rule expression for scheduling.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "rruleExpression"
+ ],
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "scheduleTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Security-based trigger.",
+ "properties": {
+ "securityTrigger": {
+ "description": "Trigger a workflow VIA a Security Signal or Finding. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "securityTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Slack-based trigger.",
+ "properties": {
+ "slackTrigger": {
+ "description": "Trigger a workflow VIA Slack. The workflow must be published.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "slackTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Workflow-based trigger.",
+ "properties": {
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "workflowTrigger": {
+ "description": "Trigger a workflow VIA the Datadog UI. Only required if no other trigger exists.",
+ "type": "object"
+ }
+ },
+ "required": [
+ "workflowTrigger"
+ ],
+ "type": "object"
+ }
+ ]
},
- "type": "object"
- },
- "id": {
- "description": "ID of the organization.",
- "type": "string"
- },
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
+ "type": "array"
}
},
- "required": [
- "type"
- ],
"type": "object"
},
- {
- "description": "Permission object.",
+ "tags": {
+ "description": "Tags of the workflow.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "updatedAt": {
+ "description": "When the workflow was last updated.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "webhookSecret": {
+ "description": "If a Webhook trigger is defined on this workflow, a webhookSecret is required and should be provided here.",
+ "type": "string",
+ "writeOnly": true
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "The workflow identifier",
+ "type": "string"
+ },
+ "relationships": {
+ "description": "The definition of `WorkflowDataRelationships` object.",
+ "properties": {
+ "creator": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
"properties": {
- "attributes": {
- "description": "Attributes of a permission.",
+ "data": {
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
"properties": {
- "created": {
- "description": "Creation time of the permission.",
- "format": "date-time",
- "type": "string"
- },
- "description": {
- "description": "Description of the permission.",
- "type": "string"
- },
- "display_name": {
- "description": "Displayed name for the permission.",
- "type": "string"
- },
- "display_type": {
- "description": "Display type.",
- "type": "string"
- },
- "group_name": {
- "description": "Name of the permission group.",
- "type": "string"
- },
- "name": {
- "description": "Name of the permission.",
+ "id": {
+ "description": "The user identifier",
+ "example": "",
"type": "string"
},
- "restricted": {
- "description": "Whether or not the permission is restricted.",
- "type": "boolean"
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
}
},
- "type": "object"
- },
- "id": {
- "description": "ID of the permission.",
- "type": "string"
- },
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
- "enum": [
- "permissions"
+ "required": [
+ "type",
+ "id"
],
- "example": "permissions",
- "type": "string",
- "x-enum-varnames": [
- "PERMISSIONS"
- ]
+ "type": "object"
}
},
- "required": [
- "type"
- ],
"type": "object"
},
- {
- "description": "Role object returned by the API.",
+ "owner": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
"properties": {
- "attributes": {
- "description": "Attributes of the role.",
+ "data": {
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
"properties": {
- "created_at": {
- "description": "Creation time of the role.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "modified_at": {
- "description": "Time of last role modification.",
- "format": "date-time",
- "readOnly": true,
- "type": "string"
- },
- "name": {
- "description": "The name of the role. The name is neither unique nor a stable identifier of the role.",
+ "id": {
+ "description": "The user identifier",
+ "example": "",
"type": "string"
},
- "user_count": {
- "description": "Number of users with that role.",
- "format": "int64",
- "readOnly": true,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "id": {
- "description": "The unique identifier of the role.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the role object returned by the API.",
- "properties": {
- "permissions": {
- "description": "Relationship to multiple permissions objects.",
- "properties": {
- "data": {
- "description": "Relationships to permission objects.",
- "items": {
- "description": "Relationship to permission object.",
- "properties": {
- "id": {
- "description": "ID of the permission.",
- "type": "string"
- },
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
- "enum": [
- "permissions"
- ],
- "example": "permissions",
- "type": "string",
- "x-enum-varnames": [
- "PERMISSIONS"
- ]
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
}
},
- "type": "object"
- },
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
+ "required": [
+ "type",
+ "id"
],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
- },
- "required": [
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- ]
- },
- "type": "array"
- }
- },
- "type": "object"
- }
- }
- },
- "description": "OK"
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Authentication error"
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Not found"
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Too many requests"
- }
- },
- "security": [
- {
- "apiKeyAuth": [],
- "appKeyAuth": []
- },
- {
- "AuthZ": []
- }
- ],
- "summary": "Get a user organization",
- "tags": [
- "Users"
- ],
- "x-codegen-request-body-name": "body",
- "x-menu-order": 6,
- "x-permission": {
- "operator": "OPEN",
- "permissions": []
- },
- "x-undo": {
- "type": "safe"
- }
- }
- },
- "/api/v2/users/{user_id}/permissions": {
- "get": {
- "description": "Get a user permission set. Returns a list of the user’s permissions\ngranted by the associated user's roles.",
- "operationId": "ListUserPermissions",
- "parameters": [
- {
- "description": "The ID of the user.",
- "in": "path",
- "name": "user_id",
- "required": true,
- "schema": {
- "example": "00000000-0000-9999-0000-000000000000",
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "content": {
- "application/json": {
- "schema": {
- "description": "Payload with API-returned permissions.",
- "properties": {
- "data": {
- "description": "Array of permissions.",
- "items": {
- "description": "Permission object.",
- "properties": {
- "attributes": {
- "description": "Attributes of a permission.",
- "properties": {
- "created": {
- "description": "Creation time of the permission.",
- "format": "date-time",
- "type": "string"
- },
- "description": {
- "description": "Description of the permission.",
- "type": "string"
- },
- "display_name": {
- "description": "Displayed name for the permission.",
- "type": "string"
- },
- "display_type": {
- "description": "Display type.",
- "type": "string"
- },
- "group_name": {
- "description": "Name of the permission group.",
- "type": "string"
- },
- "name": {
- "description": "Name of the permission.",
- "type": "string"
- },
- "restricted": {
- "description": "Whether or not the permission is restricted.",
- "type": "boolean"
+ "type": "object"
}
},
"type": "object"
- },
- "id": {
- "description": "ID of the permission.",
- "type": "string"
- },
- "type": {
- "default": "permissions",
- "description": "Permissions resource type.",
- "enum": [
- "permissions"
- ],
- "example": "permissions",
- "type": "string",
- "x-enum-varnames": [
- "PERMISSIONS"
- ]
}
},
- "required": [
- "type"
- ],
+ "readOnly": true,
"type": "object"
},
- "type": "array"
- }
- },
- "type": "object"
- }
- }
- },
- "description": "OK"
- },
- "403": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Authentication error"
- },
- "404": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
- }
- },
- "description": "Not found"
- },
- "429": {
- "content": {
- "application/json": {
- "schema": {
- "description": "API error response.",
- "properties": {
- "errors": {
- "description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
- "items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "errors"
- ],
- "type": "object"
- }
+ "type": {
+ "description": "The definition of `WorkflowDataType` object.",
+ "enum": [
+ "workflows"
+ ],
+ "example": "workflows",
+ "type": "string",
+ "x-enum-varnames": [
+ "WORKFLOWS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "attributes"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "data"
+ ],
+ "type": "object"
}
- },
- "description": "Too many requests"
- }
- },
- "security": [
- {
- "apiKeyAuth": [],
- "appKeyAuth": []
+ }
},
- {
- "AuthZ": [
- "user_access_read"
- ]
- }
- ],
- "summary": "Get a user permissions",
- "tags": [
- "Users"
- ],
- "x-codegen-request-body-name": "body",
- "x-menu-order": 7,
- "x-permission": {
- "operator": "OR",
- "permissions": [
- "user_access_read"
- ]
+ "required": true
},
- "x-undo": {
- "type": "safe"
- }
- },
- "x-merge-override": {
- "get": true
- }
- },
- "/api/v2/users/{user_uuid}/memberships": {
- "get": {
- "description": "Get a list of memberships for a user",
- "operationId": "GetUserMemberships",
- "parameters": [
- {
- "description": "None",
- "in": "path",
- "name": "user_uuid",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
- "description": "Team memberships response",
+ "description": "The response object after updating a workflow.",
"properties": {
"data": {
- "description": "Team memberships response data",
- "items": {
- "description": "A user's relationship with a team",
- "properties": {
- "attributes": {
- "description": "Team membership attributes",
- "properties": {
- "provisioned_by": {
- "description": "The mechanism responsible for provisioning the team relationship.\nPossible values: null for added by a user, \"service_account\" if added by a service account, and \"saml_mapping\" if provisioned via SAML mapping.",
- "nullable": true,
- "readOnly": true,
- "type": "string"
- },
- "provisioned_by_id": {
- "description": "UUID of the User or Service Account who provisioned this team membership, or null if provisioned via SAML mapping.",
- "nullable": true,
- "readOnly": true,
- "type": "string"
- },
- "role": {
- "description": "The user's role within the team",
- "enum": [
- "admin"
- ],
- "nullable": true,
- "type": "string",
- "x-enum-varnames": [
- "ADMIN"
- ]
- }
+ "description": "Data related to the workflow being updated.",
+ "properties": {
+ "attributes": {
+ "description": "The definition of `WorkflowDataUpdateAttributes` object.",
+ "properties": {
+ "createdAt": {
+ "description": "When the workflow was created.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
},
- "type": "object"
- },
- "id": {
- "description": "The ID of a user's relationship with a team",
- "example": "TeamMembership-aeadc05e-98a8-11ec-ac2c-da7ad0900001-38835",
- "type": "string"
- },
- "relationships": {
- "description": "Relationship between membership and a user",
- "properties": {
- "team": {
- "description": "Relationship between team membership and team",
- "properties": {
- "data": {
- "description": "The team associated with the membership",
+ "description": {
+ "description": "Description of the workflow.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the workflow.",
+ "type": "string"
+ },
+ "published": {
+ "description": "Set the workflow to published or unpublished. Workflows in an unpublished state will only be executable via manual runs. Automatic triggers such as Schedule will not execute the workflow until it is published.",
+ "type": "boolean"
+ },
+ "spec": {
+ "description": "The spec defines what the workflow does.",
+ "properties": {
+ "annotations": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
+ "items": {
+ "description": "A list of annotations used in the workflow. These are like sticky notes for your workflow!",
"properties": {
+ "display": {
+ "description": "The definition of `AnnotationDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `AnnotationDisplayBounds` object.",
+ "properties": {
+ "height": {
+ "description": "The `bounds` `height`.",
+ "format": "double",
+ "type": "number"
+ },
+ "width": {
+ "description": "The `bounds` `width`.",
+ "format": "double",
+ "type": "number"
+ },
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
"id": {
- "description": "The ID of the team associated with the membership",
- "example": "d7e15d9d-d346-43da-81d8-3d9e71d9a5e9",
+ "description": "The `Annotation` `id`.",
+ "example": "",
"type": "string"
},
- "type": {
- "default": "team",
- "description": "User team team type",
- "enum": [
- "team"
- ],
- "example": "team",
- "type": "string",
- "x-enum-varnames": [
- "TEAM"
- ]
+ "markdownTextAnnotation": {
+ "description": "The definition of `AnnotationMarkdownTextAnnotation` object.",
+ "properties": {
+ "text": {
+ "description": "The `markdownTextAnnotation` `text`.",
+ "type": "string"
+ }
+ },
+ "type": "object"
}
},
"required": [
"id",
- "type"
+ "display",
+ "markdownTextAnnotation"
],
"type": "object"
- }
+ },
+ "type": "array"
},
- "required": [
- "data"
- ],
- "type": "object"
- },
- "user": {
- "description": "Relationship between team membership and user",
- "properties": {
- "data": {
- "description": "A user's relationship with a team",
+ "connectionEnvs": {
+ "description": "A list of connections or connection groups used in the workflow.",
+ "items": {
+ "description": "A list of connections or connection groups used in the workflow.",
"properties": {
- "id": {
- "description": "The ID of the user associated with the team",
- "example": "b8626d7e-cedd-11eb-abf5-da7ad0900001",
- "type": "string"
+ "connectionGroups": {
+ "description": "The `ConnectionEnv` `connectionGroups`.",
+ "items": {
+ "description": "The definition of `ConnectionGroup` object.",
+ "properties": {
+ "connectionGroupId": {
+ "description": "The `ConnectionGroup` `connectionGroupId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `ConnectionGroup` `label`.",
+ "example": "",
+ "type": "string"
+ },
+ "tags": {
+ "description": "The `ConnectionGroup` `tags`.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "connectionGroupId",
+ "label",
+ "tags"
+ ],
+ "type": "object"
+ },
+ "type": "array"
},
- "type": {
- "default": "users",
- "description": "User team user type",
+ "connections": {
+ "description": "The `ConnectionEnv` `connections`.",
+ "items": {
+ "description": "The definition of `Connection` object.",
+ "properties": {
+ "connectionId": {
+ "description": "The `Connection` `connectionId`.",
+ "example": "",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `Connection` `label`.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "connectionId",
+ "label"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "env": {
+ "description": "The definition of `ConnectionEnvEnv` object.",
"enum": [
- "users"
+ "default"
],
- "example": "users",
+ "example": "default",
"type": "string",
"x-enum-varnames": [
- "USERS"
+ "DEFAULT"
]
}
},
"required": [
- "id",
- "type"
+ "env"
],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- }
- },
- "type": "object"
- },
- "type": {
- "default": "team_memberships",
- "description": "Team membership type",
- "enum": [
- "team_memberships"
- ],
- "example": "team_memberships",
- "type": "string",
- "x-enum-varnames": [
- "TEAM_MEMBERSHIPS"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "type": "array"
- },
- "included": {
- "description": "Resources related to the team memberships",
- "items": {
- "description": "Included resources related to the team membership",
- "oneOf": [
- {
- "description": "User object returned by the API.",
- "properties": {
- "attributes": {
- "description": "Attributes of user object returned by the API.",
- "properties": {
- "created_at": {
- "description": "Creation time of the user.",
- "format": "date-time",
- "type": "string"
- },
- "disabled": {
- "description": "Whether the user is disabled.",
- "type": "boolean"
- },
- "email": {
- "description": "Email of the user.",
- "type": "string"
- },
- "handle": {
- "description": "Handle of the user.",
- "type": "string"
- },
- "icon": {
- "description": "URL of the user's icon.",
- "type": "string"
- },
- "mfa_enabled": {
- "description": "If user has MFA enabled.",
- "readOnly": true,
- "type": "boolean"
- },
- "modified_at": {
- "description": "Time that the user was last modified.",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "Name of the user.",
- "nullable": true,
- "type": "string"
- },
- "service_account": {
- "description": "Whether the user is a service account.",
- "type": "boolean"
- },
- "status": {
- "description": "Status of the user.",
- "type": "string"
+ "type": "object"
},
- "title": {
- "description": "Title of the user.",
- "nullable": true,
- "type": "string"
+ "type": "array"
+ },
+ "handle": {
+ "description": "Unique identifier used to trigger workflows automatically in Datadog.",
+ "type": "string"
+ },
+ "inputSchema": {
+ "description": "A list of input parameters for the workflow. These can be used as dynamic runtime values in your workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `InputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `InputSchemaParameters` object.",
+ "properties": {
+ "defaultValue": {
+ "description": "The `InputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `InputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `InputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `InputSchemaParameters` `name`.",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `InputSchemaParametersType` object.",
+ "enum": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ],
+ "example": "STRING",
+ "type": "string",
+ "x-enum-varnames": [
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
+ ]
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
},
- "verified": {
- "description": "Whether the user is verified.",
- "type": "boolean"
- }
+ "type": "object"
},
- "type": "object"
- },
- "id": {
- "description": "ID of the user.",
- "type": "string"
- },
- "relationships": {
- "description": "Relationships of the user object returned by the API.",
- "properties": {
- "org": {
- "description": "Relationship to an organization.",
- "properties": {
- "data": {
- "description": "Relationship to organization object.",
+ "outputSchema": {
+ "description": "A list of output parameters for the workflow.",
+ "properties": {
+ "parameters": {
+ "description": "The `OutputSchema` `parameters`.",
+ "items": {
+ "description": "The definition of `OutputSchemaParameters` object.",
"properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
+ "defaultValue": {
+ "description": "The `OutputSchemaParameters` `defaultValue`."
+ },
+ "description": {
+ "description": "The `OutputSchemaParameters` `description`.",
+ "type": "string"
+ },
+ "label": {
+ "description": "The `OutputSchemaParameters` `label`.",
+ "type": "string"
+ },
+ "name": {
+ "description": "The `OutputSchemaParameters` `name`.",
+ "example": "",
"type": "string"
},
"type": {
- "default": "orgs",
- "description": "Organizations resource type.",
+ "description": "The definition of `OutputSchemaParametersType` object.",
"enum": [
- "orgs"
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
],
- "example": "orgs",
+ "example": "STRING",
"type": "string",
"x-enum-varnames": [
- "ORGS"
+ "STRING",
+ "NUMBER",
+ "BOOLEAN",
+ "OBJECT",
+ "ARRAY_STRING",
+ "ARRAY_NUMBER",
+ "ARRAY_BOOLEAN",
+ "ARRAY_OBJECT"
]
+ },
+ "value": {
+ "description": "The `OutputSchemaParameters` `value`."
+ }
+ },
+ "required": [
+ "name",
+ "type"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "steps": {
+ "description": "A `Step` is a sub-component of a workflow. Each `Step` performs an action.",
+ "items": {
+ "description": "A Step is a sub-component of a workflow. Each Step performs an action.",
+ "properties": {
+ "actionId": {
+ "description": "The unique identifier of an action.",
+ "example": "",
+ "type": "string"
+ },
+ "completionGate": {
+ "description": "Used to create conditions before running subsequent actions.",
+ "properties": {
+ "completionCondition": {
+ "description": "The definition of `CompletionCondition` object.",
+ "properties": {
+ "operand1": {
+ "description": "The `CompletionCondition` `operand1`."
+ },
+ "operand2": {
+ "description": "The `CompletionCondition` `operand2`."
+ },
+ "operator": {
+ "description": "The definition of `CompletionConditionOperator` object.",
+ "enum": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ],
+ "example": "OPERATOR_EQUAL",
+ "type": "string",
+ "x-enum-varnames": [
+ "OPERATOR_EQUAL",
+ "OPERATOR_NOT_EQUAL",
+ "OPERATOR_GREATER_THAN",
+ "OPERATOR_LESS_THAN",
+ "OPERATOR_GREATER_THAN_OR_EQUAL_TO",
+ "OPERATOR_LESS_THAN_OR_EQUAL_TO",
+ "OPERATOR_CONTAINS",
+ "OPERATOR_DOES_NOT_CONTAIN",
+ "OPERATOR_IS_NULL",
+ "OPERATOR_IS_NOT_NULL",
+ "OPERATOR_IS_EMPTY",
+ "OPERATOR_IS_NOT_EMPTY"
+ ]
+ }
+ },
+ "required": [
+ "operand1",
+ "operator"
+ ],
+ "type": "object"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "completionCondition",
+ "retryStrategy"
+ ],
+ "type": "object"
+ },
+ "connectionLabel": {
+ "description": "The unique identifier of a connection defined in the spec.",
+ "type": "string"
+ },
+ "display": {
+ "description": "The definition of `StepDisplay` object.",
+ "properties": {
+ "bounds": {
+ "description": "The definition of `StepDisplayBounds` object.",
+ "properties": {
+ "x": {
+ "description": "The `bounds` `x`.",
+ "format": "double",
+ "type": "number"
+ },
+ "y": {
+ "description": "The `bounds` `y`.",
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "type": "object"
}
},
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "other_orgs": {
- "description": "Relationship to organizations.",
- "properties": {
- "data": {
- "description": "Relationships to organization objects.",
- "example": [],
+ "type": "object"
+ },
+ "errorHandlers": {
+ "description": "The `Step` `errorHandlers`.",
+ "items": {
+ "description": "Used to handle errors in an action.",
+ "properties": {
+ "fallbackStepName": {
+ "description": "The `ErrorHandler` `fallbackStepName`.",
+ "example": "",
+ "type": "string"
+ },
+ "retryStrategy": {
+ "description": "The definition of `RetryStrategy` object.",
+ "properties": {
+ "kind": {
+ "description": "The definition of `RetryStrategyKind` object.",
+ "enum": [
+ "RETRY_STRATEGY_LINEAR"
+ ],
+ "example": "RETRY_STRATEGY_LINEAR",
+ "type": "string",
+ "x-enum-varnames": [
+ "RETRY_STRATEGY_LINEAR"
+ ]
+ },
+ "linear": {
+ "description": "The definition of `RetryStrategyLinear` object.",
+ "properties": {
+ "interval": {
+ "description": "The `RetryStrategyLinear` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "example": "",
+ "type": "string"
+ },
+ "maxRetries": {
+ "description": "The `RetryStrategyLinear` `maxRetries`.",
+ "example": 0,
+ "format": "double",
+ "type": "number"
+ }
+ },
+ "required": [
+ "interval",
+ "maxRetries"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "retryStrategy",
+ "fallbackStepName"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Name of the step.",
+ "example": "",
+ "type": "string"
+ },
+ "outboundEdges": {
+ "description": "A list of subsequent actions to run.",
"items": {
- "description": "Relationship to organization object.",
+ "description": "The definition of `OutboundEdge` object.",
"properties": {
- "id": {
- "description": "ID of the organization.",
- "example": "00000000-0000-beef-0000-000000000000",
+ "branchName": {
+ "description": "The `OutboundEdge` `branchName`.",
+ "example": "",
"type": "string"
},
- "type": {
- "default": "orgs",
- "description": "Organizations resource type.",
- "enum": [
- "orgs"
- ],
- "example": "orgs",
- "type": "string",
- "x-enum-varnames": [
- "ORGS"
- ]
+ "nextStepName": {
+ "description": "The `OutboundEdge` `nextStepName`.",
+ "example": "",
+ "type": "string"
}
},
"required": [
- "id",
- "type"
+ "nextStepName",
+ "branchName"
],
"type": "object"
},
"type": "array"
- }
- },
- "required": [
- "data"
- ],
- "type": "object"
- },
- "other_users": {
- "description": "Relationship to users.",
- "properties": {
- "data": {
- "description": "Relationships to user objects.",
- "example": [],
+ },
+ "parameters": {
+ "description": "A list of inputs for an action.",
"items": {
- "description": "Relationship to user object.",
+ "description": "The definition of `Parameter` object.",
"properties": {
- "id": {
- "description": "A unique identifier that represents the user.",
- "example": "00000000-0000-0000-2345-000000000000",
+ "name": {
+ "description": "The `Parameter` `name`.",
+ "example": "",
"type": "string"
},
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
+ "value": {
+ "description": "The `Parameter` `value`."
}
},
"required": [
- "id",
- "type"
+ "name",
+ "value"
],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "object"
},
"type": "array"
+ },
+ "readinessGate": {
+ "description": "Used to merge multiple branches into a single branch.",
+ "properties": {
+ "thresholdType": {
+ "description": "The definition of `ReadinessGateThresholdType` object.",
+ "enum": [
+ "ANY",
+ "ALL"
+ ],
+ "example": "ANY",
+ "type": "string",
+ "x-enum-varnames": [
+ "ANY",
+ "ALL"
+ ]
+ }
+ },
+ "required": [
+ "thresholdType"
+ ],
+ "type": "object"
}
},
"required": [
- "data"
+ "name",
+ "actionId"
],
"type": "object"
},
- "roles": {
- "description": "Relationship to roles.",
- "properties": {
- "data": {
- "description": "An array containing type and the unique identifier of a role.",
- "items": {
- "description": "Relationship to role object.",
- "properties": {
- "id": {
- "description": "The unique identifier of the role.",
- "example": "3653d3c6-0c75-11ea-ad28-fb5701eabc7d",
+ "type": "array"
+ },
+ "triggers": {
+ "description": "The list of triggers that activate this workflow. At least one trigger is required, and each trigger type may appear at most once.",
+ "items": {
+ "description": "One of the triggers that can start the execution of a workflow.",
+ "oneOf": [
+ {
+ "description": "Schema for an API-based trigger.",
+ "properties": {
+ "apiTrigger": {
+ "description": "Trigger a workflow VIA an API. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
"type": "string"
},
- "type": {
- "default": "roles",
- "description": "Roles type.",
- "enum": [
- "roles"
- ],
- "example": "roles",
- "type": "string",
- "x-enum-varnames": [
- "ROLES"
- ]
- }
+ "type": "array"
+ }
+ },
+ "required": [
+ "apiTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for an App-based trigger.",
+ "properties": {
+ "appTrigger": {
+ "description": "Trigger a workflow VIA an App.",
+ "type": "object"
},
- "type": "object",
- "x-merge-override": {
- "required": false
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
}
},
- "type": "array"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object",
- "x-merge-override": {
- "properties": false
- }
- },
- "type": {
- "default": "users",
- "description": "Users resource type.",
- "enum": [
- "users"
- ],
- "example": "users",
- "type": "string",
- "x-enum-varnames": [
- "USERS"
- ]
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- {
- "description": "A team",
- "properties": {
- "attributes": {
- "description": "Team attributes",
- "properties": {
- "avatar": {
- "description": "Unicode representation of the avatar for the team, limited to a single grapheme",
- "example": "🥑",
- "nullable": true,
- "type": "string"
- },
- "banner": {
- "description": "Banner selection for the team",
- "format": "int64",
- "nullable": true,
- "type": "integer"
- },
- "created_at": {
- "description": "Creation date of the team",
- "format": "date-time",
- "type": "string"
- },
- "description": {
- "description": "Free-form markdown description/content for the team's homepage",
- "nullable": true,
- "type": "string"
- },
- "handle": {
- "description": "The team's identifier",
- "example": "example-team",
- "maxLength": 195,
- "type": "string"
- },
- "hidden_modules": {
- "description": "Collection of hidden modules for the team",
- "items": {
- "description": "String identifier of the module",
- "type": "string"
- },
- "type": "array"
- },
- "link_count": {
- "description": "The number of links belonging to the team",
- "format": "int32",
- "maximum": 2147483647,
- "readOnly": true,
- "type": "integer"
- },
- "modified_at": {
- "description": "Modification date of the team",
- "format": "date-time",
- "type": "string"
- },
- "name": {
- "description": "The name of the team",
- "example": "Example Team",
- "maxLength": 200,
- "type": "string"
- },
- "summary": {
- "description": "A brief summary of the team, derived from the `description`",
- "maxLength": 120,
- "nullable": true,
- "type": "string"
- },
- "user_count": {
- "description": "The number of users belonging to the team",
- "format": "int32",
- "maximum": 2147483647,
- "readOnly": true,
- "type": "integer"
- },
- "visible_modules": {
- "description": "Collection of visible modules for the team",
- "items": {
- "description": "String identifier of the module",
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "handle",
- "name"
- ],
- "type": "object"
- },
- "id": {
- "description": "The team's identifier",
- "example": "aeadc05e-98a8-11ec-ac2c-da7ad0900001",
- "type": "string"
- },
- "relationships": {
- "description": "Resources related to a team",
- "properties": {
- "team_links": {
- "description": "Relationship between a team and a team link",
- "properties": {
- "data": {
- "description": "Related team links",
- "items": {
- "description": "Relationship between a link and a team",
- "properties": {
- "id": {
- "description": "The team link's identifier",
- "example": "f9bb8444-af7f-11ec-ac2c-da7ad0900001",
+ "required": [
+ "appTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Case-based trigger.",
+ "properties": {
+ "caseTrigger": {
+ "description": "Trigger a workflow VIA a Case. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
"type": "string"
},
- "type": {
- "default": "team_links",
- "description": "Team link type",
- "enum": [
- "team_links"
- ],
- "example": "team_links",
- "type": "string",
- "x-enum-varnames": [
- "TEAM_LINKS"
- ]
- }
+ "type": "array"
+ }
+ },
+ "required": [
+ "caseTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Change Event-based trigger.",
+ "properties": {
+ "changeEventTrigger": {
+ "description": "Trigger a workflow VIA a Change Event.",
+ "type": "object"
},
- "required": [
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
}
},
- "type": "array"
+ "required": [
+ "changeEventTrigger"
+ ],
+ "type": "object"
},
- "links": {
- "description": "Links attributes.",
+ {
+ "description": "Schema for a Dashboard-based trigger.",
"properties": {
- "related": {
- "description": "Related link.",
- "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
- "type": "string"
+ "dashboardTrigger": {
+ "description": "Trigger a workflow VIA a Dashboard.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
}
},
+ "required": [
+ "dashboardTrigger"
+ ],
"type": "object"
- }
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- },
- "user_team_permissions": {
- "description": "Relationship between a user team permission and a team",
- "properties": {
- "data": {
- "description": "Related user team permission data",
+ },
+ {
+ "description": "Schema for a GitHub webhook-based trigger.",
"properties": {
- "id": {
- "description": "The ID of the user team permission",
- "example": "UserTeamPermissions-aeadc05e-98a8-11ec-ac2c-da7ad0900001-416595",
- "type": "string"
+ "githubWebhookTrigger": {
+ "description": "Trigger a workflow VIA GitHub webhook. To trigger a workflow from GitHub, you must set a `webhookSecret`. In your GitHub Webhook Settings, set the Payload URL to \"base_url\"/api/v2/workflows/\"workflow_id\"/webhook?orgId=\"org_id\", select application/json for the content type, and be highly recommend enabling SSL verification for security. The workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
},
- "type": {
- "default": "user_team_permissions",
- "description": "User team permission type",
- "enum": [
- "user_team_permissions"
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
],
- "example": "user_team_permissions",
- "type": "string",
- "x-enum-varnames": [
- "USER_TEAM_PERMISSIONS"
- ]
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
}
},
"required": [
- "id",
- "type"
+ "githubWebhookTrigger"
],
- "type": "object",
- "x-merge-override": {
- "required": false
- }
+ "type": "object"
},
- "links": {
- "description": "Links attributes.",
+ {
+ "description": "Schema for an Incident-based trigger.",
"properties": {
- "related": {
- "description": "Related link.",
- "example": "/api/v2/team/c75a4a8e-20c7-11ee-a3a5-da7ad0900002/links",
- "type": "string"
+ "incidentTrigger": {
+ "description": "Trigger a workflow VIA an Incident. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "incidentTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Monitor-based trigger.",
+ "properties": {
+ "monitorTrigger": {
+ "description": "Trigger a workflow VIA a Monitor. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "monitorTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Schedule-based trigger.",
+ "properties": {
+ "scheduleTrigger": {
+ "description": "Trigger a workflow VIA a Schedule. The workflow must be published.",
+ "properties": {
+ "rruleExpression": {
+ "description": "Recurrence rule expression for scheduling.",
+ "example": "",
+ "type": "string"
+ }
+ },
+ "required": [
+ "rruleExpression"
+ ],
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "scheduleTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Security-based trigger.",
+ "properties": {
+ "securityTrigger": {
+ "description": "Trigger a workflow VIA a Security Signal or Finding. For automatic triggering a handle must be configured and the workflow must be published.",
+ "properties": {
+ "rateLimit": {
+ "description": "Defines a rate limit for a trigger.",
+ "properties": {
+ "count": {
+ "description": "The `TriggerRateLimit` `count`.",
+ "format": "int64",
+ "type": "integer"
+ },
+ "interval": {
+ "description": "The `TriggerRateLimit` `interval`. The expected format is the number of seconds ending with an s. For example, 1 day is 86400s",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "securityTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Slack-based trigger.",
+ "properties": {
+ "slackTrigger": {
+ "description": "Trigger a workflow VIA Slack. The workflow must be published.",
+ "type": "object"
+ },
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "slackTrigger"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "Schema for a Workflow-based trigger.",
+ "properties": {
+ "startStepNames": {
+ "description": "A list of steps that run first after a trigger fires.",
+ "example": [
+ ""
+ ],
+ "items": {
+ "description": "The `StartStepNames` `items`.",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "workflowTrigger": {
+ "description": "Trigger a workflow VIA the Datadog UI. Only required if no other trigger exists.",
+ "type": "object"
}
},
+ "required": [
+ "workflowTrigger"
+ ],
"type": "object"
}
- },
- "type": "object",
- "x-merge-override": {
- "required": false
- }
- }
- },
- "type": "object"
+ ]
+ },
+ "type": "array"
+ }
},
- "type": {
- "default": "team",
- "description": "Team type",
- "enum": [
- "team"
- ],
- "example": "team",
- "type": "string",
- "x-enum-varnames": [
- "TEAM"
- ]
- }
+ "type": "object"
},
- "required": [
- "attributes",
- "id",
- "type"
- ],
- "type": "object",
- "x-merge-override": {
- "required": false
+ "tags": {
+ "description": "Tags of the workflow.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "updatedAt": {
+ "description": "When the workflow was last updated.",
+ "format": "date-time",
+ "readOnly": true,
+ "type": "string"
+ },
+ "webhookSecret": {
+ "description": "If a Webhook trigger is defined on this workflow, a webhookSecret is required and should be provided here.",
+ "type": "string",
+ "writeOnly": true
}
- }
- ]
- },
- "type": "array"
- },
- "links": {
- "description": "Teams response links.",
- "properties": {
- "first": {
- "description": "First link.",
- "type": "string"
- },
- "last": {
- "description": "Last link.",
- "nullable": true,
- "type": "string"
- },
- "next": {
- "description": "Next link.",
- "type": "string"
+ },
+ "type": "object"
},
- "prev": {
- "description": "Previous link.",
- "nullable": true,
+ "id": {
+ "description": "The workflow identifier",
"type": "string"
},
- "self": {
- "description": "Current link.",
- "type": "string"
- }
- },
- "type": "object"
- },
- "meta": {
- "description": "Teams response metadata.",
- "properties": {
- "pagination": {
- "description": "Teams response metadata.",
+ "relationships": {
+ "description": "The definition of `WorkflowDataRelationships` object.",
"properties": {
- "first_offset": {
- "description": "The first offset.",
- "format": "int64",
- "type": "integer"
- },
- "last_offset": {
- "description": "The last offset.",
- "format": "int64",
- "type": "integer"
- },
- "limit": {
- "description": "Pagination limit.",
- "format": "int64",
- "type": "integer"
- },
- "next_offset": {
- "description": "The next offset.",
- "format": "int64",
- "type": "integer"
- },
- "offset": {
- "description": "The offset.",
- "format": "int64",
- "type": "integer"
- },
- "prev_offset": {
- "description": "The previous offset.",
- "format": "int64",
- "type": "integer"
- },
- "total": {
- "description": "Total results.",
- "format": "int64",
- "type": "integer"
+ "creator": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
+ "properties": {
+ "data": {
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
+ "properties": {
+ "id": {
+ "description": "The user identifier",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "id"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object"
},
- "type": {
- "description": "Offset type.",
- "type": "string"
+ "owner": {
+ "description": "The definition of `WorkflowUserRelationship` object.",
+ "properties": {
+ "data": {
+ "description": "The definition of `WorkflowUserRelationshipData` object.",
+ "properties": {
+ "id": {
+ "description": "The user identifier",
+ "example": "",
+ "type": "string"
+ },
+ "type": {
+ "description": "The definition of `WorkflowUserRelationshipType` object.",
+ "enum": [
+ "users"
+ ],
+ "example": "users",
+ "type": "string",
+ "x-enum-varnames": [
+ "USERS"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "id"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object"
}
},
+ "readOnly": true,
"type": "object"
+ },
+ "type": {
+ "description": "The definition of `WorkflowDataType` object.",
+ "enum": [
+ "workflows"
+ ],
+ "example": "workflows",
+ "type": "string",
+ "x-enum-varnames": [
+ "WORKFLOWS"
+ ]
}
},
+ "required": [
+ "type",
+ "attributes"
+ ],
"type": "object"
}
},
@@ -409637,7 +436792,141 @@
}
}
},
- "description": "Represents a user's association to a team"
+ "description": "Successfully updated a workflow."
+ },
+ "400": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "items": {
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Bad request"
+ },
+ "403": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "description": "API error response.",
+ "properties": {
+ "errors": {
+ "description": "A list of errors.",
+ "items": {
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "errors"
+ ],
+ "type": "object"
+ }
+ }
+ },
+ "description": "Forbidden"
},
"404": {
"content": {
@@ -409647,13 +436936,52 @@
"properties": {
"errors": {
"description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
"items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
"type": "array"
}
@@ -409665,7 +436993,7 @@
}
}
},
- "description": "API error response."
+ "description": "Not found"
},
"429": {
"content": {
@@ -409675,13 +437003,52 @@
"properties": {
"errors": {
"description": "A list of errors.",
- "example": [
- "Bad Request"
- ],
"items": {
- "description": "A list of items.",
- "example": "Bad Request",
- "type": "string"
+ "description": "API error response body",
+ "properties": {
+ "detail": {
+ "description": "A human-readable explanation specific to this occurrence of the error.",
+ "example": "Missing required attribute in body",
+ "type": "string"
+ },
+ "meta": {
+ "additionalProperties": {},
+ "description": "Non-standard meta-information about the error",
+ "type": "object"
+ },
+ "source": {
+ "description": "References to the source of the error.",
+ "properties": {
+ "header": {
+ "description": "A string indicating the name of a single request header which caused the error.",
+ "example": "Authorization",
+ "type": "string"
+ },
+ "parameter": {
+ "description": "A string indicating which URI query parameter caused the error.",
+ "example": "limit",
+ "type": "string"
+ },
+ "pointer": {
+ "description": "A JSON pointer to the value in the request document that caused the error.",
+ "example": "/data/attributes/title",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Status code of the response.",
+ "example": "400",
+ "type": "string"
+ },
+ "title": {
+ "description": "Short human-readable summary of the error.",
+ "example": "Bad Request",
+ "type": "string"
+ }
+ },
+ "type": "object"
},
"type": "array"
}
@@ -409696,30 +437063,19 @@
"description": "Too many requests"
}
},
- "security": [
- {
- "apiKeyAuth": [],
- "appKeyAuth": []
- },
- {
- "AuthZ": [
- "teams_read"
- ]
- }
- ],
- "summary": "Get user memberships",
+ "summary": "Update an existing Workflow",
"tags": [
- "Teams"
+ "Workflow Automation"
],
- "x-menu-order": 1,
+ "x-menu-order": 3,
"x-permission": {
"operator": "OR",
"permissions": [
- "teams_read"
+ "workflows_write"
]
},
"x-undo": {
- "type": "safe"
+ "type": "idempotent"
}
}
},
@@ -409911,7 +437267,7 @@
"tags": [
"Workflow Automation"
],
- "x-menu-order": 1,
+ "x-menu-order": 5,
"x-permission": {
"operator": "OR",
"permissions": [
@@ -410087,7 +437443,7 @@
"Workflow Automation"
],
"x-codegen-request-body-name": "body",
- "x-menu-order": 2,
+ "x-menu-order": 6,
"x-permission": {
"operator": "OR",
"permissions": [
@@ -410284,7 +437640,7 @@
"tags": [
"Workflow Automation"
],
- "x-menu-order": 3,
+ "x-menu-order": 7,
"x-permission": {
"operator": "OR",
"permissions": [
@@ -410461,7 +437817,7 @@
"tags": [
"Workflow Automation"
],
- "x-menu-order": 4,
+ "x-menu-order": 8,
"x-permission": {
"operator": "OR",
"permissions": [
@@ -410860,7 +438216,7 @@
"name": "Users"
},
{
- "description": "Automate your teams operational processes with Datadog Workflow Automation.",
+ "description": "Datadog Workflow Automation allows you to automate your end-to-end processes by connecting Datadog with the rest of your tech stack. Build workflows to auto-remediate your alerts, streamline your incident and security processes, and reduce manual toil. Workflow Automation supports over 1,000+ OOTB actions, including AWS, JIRA, ServiceNow, GitHub, and OpenAI. Learn more in our Workflow Automation docs [here](https://docs.datadoghq.com/service_management/workflows/).",
"externalDocs": {
"description": "Find out more at",
"url": "https://docs.datadoghq.com/service_management/workflows/"