Skip to content

Commit 78fa28f

Browse files
author
ci.datadog-api-spec
committed
Regenerate client from commit 3661c59 of spec repo
1 parent ddeeeef commit 78fa28f

32 files changed

Lines changed: 3815 additions & 0 deletions

.generator/schemas/v2/openapi.yaml

Lines changed: 1182 additions & 0 deletions
Large diffs are not rendered by default.

features/v2/given.json

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -834,6 +834,26 @@
834834
"tag": "Okta Integration",
835835
"operationId": "CreateOktaAccount"
836836
},
837+
{
838+
"parameters": [
839+
{
840+
"name": "integration_name",
841+
"value": "\"twilio\""
842+
},
843+
{
844+
"name": "interface_id",
845+
"value": "\"twilio.messaging\""
846+
},
847+
{
848+
"name": "body",
849+
"value": "{\n \"data\": {\n \"type\": \"Account\",\n \"attributes\": {\n \"name\": \"{{ unique }}\",\n \"settings\": {\n \"api_key\": \"SKxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n \"account_sid\": \"ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n \"events\": true,\n \"messages\": true,\n \"alerts\": true,\n \"call_summaries\": true,\n \"ccm_enabled\": true,\n \"censor_logs\": true\n },\n \"secrets\": {\n \"api_key_token\": \"test_secret_token_value\"\n }\n }\n }\n}"
850+
}
851+
],
852+
"step": "there is a valid \"web_integration_account\" in the system",
853+
"key": "web_integration_account",
854+
"tag": "Integration Accounts",
855+
"operationId": "CreateAmsIntegrationAccount"
856+
},
837857
{
838858
"parameters": [
839859
{
Lines changed: 199 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,199 @@
1+
@endpoint(integration-accounts) @endpoint(integration-accounts-v2)
2+
Feature: Integration Accounts
3+
Configure and manage third-party integrations with Datadog. This API
4+
provides a unified interface for managing integration accounts across
5+
various external services. Each integration has its own unique schema
6+
that defines the required settings and secrets. Before creating or
7+
updating an account, use the schema endpoint to retrieve the specific
8+
requirements, field types, validation rules, and available configuration
9+
options for your integration. **Note**: This API manages integration
10+
account configurations only. It does not support Grace Resources,
11+
Reference Tables, or Custom Queries CRUD operations. For those features,
12+
refer to each integration's dedicated documentation. Supported
13+
Integrations: -
14+
[Twilio](https://docs.datadoghq.com/integrations/twilio/) -
15+
[Snowflake](https://docs.datadoghq.com/integrations/snowflake-web/) -
16+
[Databricks](https://docs.datadoghq.com/integrations/databricks/)
17+
18+
Background:
19+
Given a valid "apiKeyAuth" key in the system
20+
And a valid "appKeyAuth" key in the system
21+
And an instance of "IntegrationAccounts" API
22+
23+
@generated @skip @team:DataDog/saas-integrations
24+
Scenario: Create integration account returns "Bad Request: The request body is malformed or the integration name format is invalid." response
25+
Given new "CreateAmsIntegrationAccount" request
26+
And request contains "integration_name" parameter from "REPLACE.ME"
27+
And request contains "interface_id" parameter from "REPLACE.ME"
28+
And body with value {"data": {"attributes": {"name": "My Production Account", "secrets": {"api_key_token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}, "settings": {"account_sid": "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "alerts": true, "api_key": "SKxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "call_summaries": true, "ccm_enabled": true, "censor_logs": true, "events": true, "messages": true}}, "type": "Account"}}
29+
When the request is sent
30+
Then the response status is 400 Bad Request: The request body is malformed or the integration name format is invalid.
31+
32+
@generated @skip @team:DataDog/saas-integrations
33+
Scenario: Create integration account returns "Created: The account was successfully created." response
34+
Given new "CreateAmsIntegrationAccount" request
35+
And request contains "integration_name" parameter from "REPLACE.ME"
36+
And request contains "interface_id" parameter from "REPLACE.ME"
37+
And body with value {"data": {"attributes": {"name": "My Production Account", "secrets": {"api_key_token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}, "settings": {"account_sid": "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "alerts": true, "api_key": "SKxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "call_summaries": true, "ccm_enabled": true, "censor_logs": true, "events": true, "messages": true}}, "type": "Account"}}
38+
When the request is sent
39+
Then the response status is 201 Created: The account was successfully created.
40+
41+
@generated @skip @team:DataDog/saas-integrations
42+
Scenario: Create integration account returns "Not Found: The integration does not exist." response
43+
Given new "CreateAmsIntegrationAccount" request
44+
And request contains "integration_name" parameter from "REPLACE.ME"
45+
And request contains "interface_id" parameter from "REPLACE.ME"
46+
And body with value {"data": {"attributes": {"name": "My Production Account", "secrets": {"api_key_token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}, "settings": {"account_sid": "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "alerts": true, "api_key": "SKxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "call_summaries": true, "ccm_enabled": true, "censor_logs": true, "events": true, "messages": true}}, "type": "Account"}}
47+
When the request is sent
48+
Then the response status is 404 Not Found: The integration does not exist.
49+
50+
@generated @skip @team:DataDog/saas-integrations
51+
Scenario: Create integration account returns "Unprocessable Entity: The account configuration does not match the integration schema." response
52+
Given new "CreateAmsIntegrationAccount" request
53+
And request contains "integration_name" parameter from "REPLACE.ME"
54+
And request contains "interface_id" parameter from "REPLACE.ME"
55+
And body with value {"data": {"attributes": {"name": "My Production Account", "secrets": {"api_key_token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}, "settings": {"account_sid": "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "alerts": true, "api_key": "SKxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "call_summaries": true, "ccm_enabled": true, "censor_logs": true, "events": true, "messages": true}}, "type": "Account"}}
56+
When the request is sent
57+
Then the response status is 422 Unprocessable Entity: The account configuration does not match the integration schema.
58+
59+
@generated @skip @team:DataDog/saas-integrations
60+
Scenario: Delete integration account returns "Bad Request: The integration name or account ID format is invalid." response
61+
Given new "DeleteAmsIntegrationAccount" request
62+
And request contains "integration_name" parameter from "REPLACE.ME"
63+
And request contains "interface_id" parameter from "REPLACE.ME"
64+
And request contains "account_id" parameter from "REPLACE.ME"
65+
When the request is sent
66+
Then the response status is 400 Bad Request: The integration name or account ID format is invalid.
67+
68+
@generated @skip @team:DataDog/saas-integrations
69+
Scenario: Delete integration account returns "Not Found: The integration or account does not exist." response
70+
Given new "DeleteAmsIntegrationAccount" request
71+
And request contains "integration_name" parameter from "REPLACE.ME"
72+
And request contains "interface_id" parameter from "REPLACE.ME"
73+
And request contains "account_id" parameter from "REPLACE.ME"
74+
When the request is sent
75+
Then the response status is 404 Not Found: The integration or account does not exist.
76+
77+
@generated @skip @team:DataDog/saas-integrations
78+
Scenario: Delete integration account returns "OK: The account was successfully deleted." response
79+
Given new "DeleteAmsIntegrationAccount" request
80+
And request contains "integration_name" parameter from "REPLACE.ME"
81+
And request contains "interface_id" parameter from "REPLACE.ME"
82+
And request contains "account_id" parameter from "REPLACE.ME"
83+
When the request is sent
84+
Then the response status is 200 OK: The account was successfully deleted.
85+
86+
@generated @skip @team:DataDog/saas-integrations
87+
Scenario: Get account schema for an integration returns "Bad Request: The integration name format is invalid." response
88+
Given new "GetAmsIntegrationAccountSchema" request
89+
And request contains "integration_name" parameter from "REPLACE.ME"
90+
And request contains "interface_id" parameter from "REPLACE.ME"
91+
When the request is sent
92+
Then the response status is 400 Bad Request: The integration name format is invalid.
93+
94+
@generated @skip @team:DataDog/saas-integrations
95+
Scenario: Get account schema for an integration returns "Not Found: The integration does not exist or has no schema available." response
96+
Given new "GetAmsIntegrationAccountSchema" request
97+
And request contains "integration_name" parameter from "REPLACE.ME"
98+
And request contains "interface_id" parameter from "REPLACE.ME"
99+
When the request is sent
100+
Then the response status is 404 Not Found: The integration does not exist or has no schema available.
101+
102+
@generated @skip @team:DataDog/saas-integrations
103+
Scenario: Get account schema for an integration returns "OK: The JSON schema for the integration's account configuration." response
104+
Given new "GetAmsIntegrationAccountSchema" request
105+
And request contains "integration_name" parameter from "REPLACE.ME"
106+
And request contains "interface_id" parameter from "REPLACE.ME"
107+
When the request is sent
108+
Then the response status is 200 OK: The JSON schema for the integration's account configuration.
109+
110+
@generated @skip @team:DataDog/saas-integrations
111+
Scenario: Get integration account returns "Bad Request: The integration name or account ID format is invalid." response
112+
Given new "GetAmsIntegrationAccount" request
113+
And request contains "integration_name" parameter from "REPLACE.ME"
114+
And request contains "interface_id" parameter from "REPLACE.ME"
115+
And request contains "account_id" parameter from "REPLACE.ME"
116+
When the request is sent
117+
Then the response status is 400 Bad Request: The integration name or account ID format is invalid.
118+
119+
@generated @skip @team:DataDog/saas-integrations
120+
Scenario: Get integration account returns "Not Found: The integration or account does not exist." response
121+
Given new "GetAmsIntegrationAccount" request
122+
And request contains "integration_name" parameter from "REPLACE.ME"
123+
And request contains "interface_id" parameter from "REPLACE.ME"
124+
And request contains "account_id" parameter from "REPLACE.ME"
125+
When the request is sent
126+
Then the response status is 404 Not Found: The integration or account does not exist.
127+
128+
@generated @skip @team:DataDog/saas-integrations
129+
Scenario: Get integration account returns "OK: The account details for the specified integration." response
130+
Given new "GetAmsIntegrationAccount" request
131+
And request contains "integration_name" parameter from "REPLACE.ME"
132+
And request contains "interface_id" parameter from "REPLACE.ME"
133+
And request contains "account_id" parameter from "REPLACE.ME"
134+
When the request is sent
135+
Then the response status is 200 OK: The account details for the specified integration.
136+
137+
@generated @skip @team:DataDog/saas-integrations
138+
Scenario: List integration accounts returns "Bad Request: The integration name format is invalid." response
139+
Given new "ListAmsIntegrationAccounts" request
140+
And request contains "integration_name" parameter from "REPLACE.ME"
141+
And request contains "interface_id" parameter from "REPLACE.ME"
142+
When the request is sent
143+
Then the response status is 400 Bad Request: The integration name format is invalid.
144+
145+
@generated @skip @team:DataDog/saas-integrations
146+
Scenario: List integration accounts returns "Not Found: The integration does not exist." response
147+
Given new "ListAmsIntegrationAccounts" request
148+
And request contains "integration_name" parameter from "REPLACE.ME"
149+
And request contains "interface_id" parameter from "REPLACE.ME"
150+
When the request is sent
151+
Then the response status is 404 Not Found: The integration does not exist.
152+
153+
@generated @skip @team:DataDog/saas-integrations
154+
Scenario: List integration accounts returns "OK: List of all accounts for the specified integration." response
155+
Given new "ListAmsIntegrationAccounts" request
156+
And request contains "integration_name" parameter from "REPLACE.ME"
157+
And request contains "interface_id" parameter from "REPLACE.ME"
158+
When the request is sent
159+
Then the response status is 200 OK: List of all accounts for the specified integration.
160+
161+
@generated @skip @team:DataDog/saas-integrations
162+
Scenario: Update integration account returns "Bad Request: The request body is malformed or the integration name/account ID format is invalid." response
163+
Given new "UpdateAmsIntegrationAccount" request
164+
And request contains "integration_name" parameter from "REPLACE.ME"
165+
And request contains "interface_id" parameter from "REPLACE.ME"
166+
And request contains "account_id" parameter from "REPLACE.ME"
167+
And body with value {"data": {"attributes": {"name": "My Production Account (Updated)", "secrets": {"api_key_token": "new_secret_token_value"}, "settings": {"ccm_enabled": true, "events": true, "messages": false}}, "type": "Account"}}
168+
When the request is sent
169+
Then the response status is 400 Bad Request: The request body is malformed or the integration name/account ID format is invalid.
170+
171+
@generated @skip @team:DataDog/saas-integrations
172+
Scenario: Update integration account returns "Not Found: The integration or account does not exist." response
173+
Given new "UpdateAmsIntegrationAccount" request
174+
And request contains "integration_name" parameter from "REPLACE.ME"
175+
And request contains "interface_id" parameter from "REPLACE.ME"
176+
And request contains "account_id" parameter from "REPLACE.ME"
177+
And body with value {"data": {"attributes": {"name": "My Production Account (Updated)", "secrets": {"api_key_token": "new_secret_token_value"}, "settings": {"ccm_enabled": true, "events": true, "messages": false}}, "type": "Account"}}
178+
When the request is sent
179+
Then the response status is 404 Not Found: The integration or account does not exist.
180+
181+
@generated @skip @team:DataDog/saas-integrations
182+
Scenario: Update integration account returns "OK: The account was successfully updated." response
183+
Given new "UpdateAmsIntegrationAccount" request
184+
And request contains "integration_name" parameter from "REPLACE.ME"
185+
And request contains "interface_id" parameter from "REPLACE.ME"
186+
And request contains "account_id" parameter from "REPLACE.ME"
187+
And body with value {"data": {"attributes": {"name": "My Production Account (Updated)", "secrets": {"api_key_token": "new_secret_token_value"}, "settings": {"ccm_enabled": true, "events": true, "messages": false}}, "type": "Account"}}
188+
When the request is sent
189+
Then the response status is 200 OK: The account was successfully updated.
190+
191+
@generated @skip @team:DataDog/saas-integrations
192+
Scenario: Update integration account returns "Unprocessable Entity: The account configuration does not match the integration schema." response
193+
Given new "UpdateAmsIntegrationAccount" request
194+
And request contains "integration_name" parameter from "REPLACE.ME"
195+
And request contains "interface_id" parameter from "REPLACE.ME"
196+
And request contains "account_id" parameter from "REPLACE.ME"
197+
And body with value {"data": {"attributes": {"name": "My Production Account (Updated)", "secrets": {"api_key_token": "new_secret_token_value"}, "settings": {"ccm_enabled": true, "events": true, "messages": false}}, "type": "Account"}}
198+
When the request is sent
199+
Then the response status is 422 Unprocessable Entity: The account configuration does not match the integration schema.

features/v2/undo.json

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4191,6 +4191,57 @@
41914191
"type": "idempotent"
41924192
}
41934193
},
4194+
"ListAmsIntegrationAccounts": {
4195+
"tag": "Integration Accounts",
4196+
"undo": {
4197+
"type": "safe"
4198+
}
4199+
},
4200+
"CreateAmsIntegrationAccount": {
4201+
"tag": "Integration Accounts",
4202+
"undo": {
4203+
"operationId": "DeleteAmsIntegrationAccount",
4204+
"parameters": [
4205+
{
4206+
"name": "integration_name",
4207+
"source": "integration_name"
4208+
},
4209+
{
4210+
"name": "interface_id",
4211+
"source": "interface_id"
4212+
},
4213+
{
4214+
"name": "account_id",
4215+
"source": "data.id"
4216+
}
4217+
],
4218+
"type": "unsafe"
4219+
}
4220+
},
4221+
"GetAmsIntegrationAccountSchema": {
4222+
"tag": "Integration Accounts",
4223+
"undo": {
4224+
"type": "safe"
4225+
}
4226+
},
4227+
"DeleteAmsIntegrationAccount": {
4228+
"tag": "Integration Accounts",
4229+
"undo": {
4230+
"type": "idempotent"
4231+
}
4232+
},
4233+
"GetAmsIntegrationAccount": {
4234+
"tag": "Integration Accounts",
4235+
"undo": {
4236+
"type": "safe"
4237+
}
4238+
},
4239+
"UpdateAmsIntegrationAccount": {
4240+
"tag": "Integration Accounts",
4241+
"undo": {
4242+
"type": "idempotent"
4243+
}
4244+
},
41944245
"GetIPAllowlist": {
41954246
"tag": "IP Allowlist",
41964247
"undo": {

packages/datadog-api-client/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -409,6 +409,7 @@ apiInstance
409409
| High Availability MultiRegion | @datadog/datadog-api-client-high-availability-multi-region | [README.md](../../services/high-availability-multi-region/README.md) |
410410
| Hosts | @datadog/datadog-api-client-hosts | [README.md](../../services/hosts/README.md) |
411411
| Incidents | @datadog/datadog-api-client-incidents | [README.md](../../services/incidents/README.md) |
412+
| Integration Accounts | @datadog/datadog-api-client-integration-accounts | [README.md](../../services/integration-accounts/README.md) |
412413
| Integrations | @datadog/datadog-api-client-integrations | [README.md](../../services/integrations/README.md) |
413414
| IP Allowlist | @datadog/datadog-api-client-ip-allowlist | [README.md](../../services/ip-allowlist/README.md) |
414415
| IP Ranges | @datadog/datadog-api-client-ip-ranges | [README.md](../../services/ip-ranges/README.md) |

private/bdd_runner/src/support/scenarios_model_mapping.ts

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11177,6 +11177,92 @@ export const ScenariosModelMappings: { [key: string]: OperationMapping } = {
1117711177
},
1117811178
operationResponseType: "OktaAccountResponse",
1117911179
},
11180+
"IntegrationAccountsApi.V2.ListAmsIntegrationAccounts": {
11181+
integrationName: {
11182+
type: "string",
11183+
format: "",
11184+
},
11185+
interfaceId: {
11186+
type: "string",
11187+
format: "",
11188+
},
11189+
operationResponseType: "AmsIntegrationAccountsResponse",
11190+
},
11191+
"IntegrationAccountsApi.V2.CreateAmsIntegrationAccount": {
11192+
integrationName: {
11193+
type: "string",
11194+
format: "",
11195+
},
11196+
interfaceId: {
11197+
type: "string",
11198+
format: "",
11199+
},
11200+
body: {
11201+
type: "AmsIntegrationAccountCreateRequest",
11202+
format: "",
11203+
},
11204+
operationResponseType: "AmsIntegrationAccountResponse",
11205+
},
11206+
"IntegrationAccountsApi.V2.GetAmsIntegrationAccountSchema": {
11207+
integrationName: {
11208+
type: "string",
11209+
format: "",
11210+
},
11211+
interfaceId: {
11212+
type: "string",
11213+
format: "",
11214+
},
11215+
operationResponseType: "AmsIntegrationAccountSchemaResponse",
11216+
},
11217+
"IntegrationAccountsApi.V2.GetAmsIntegrationAccount": {
11218+
integrationName: {
11219+
type: "string",
11220+
format: "",
11221+
},
11222+
interfaceId: {
11223+
type: "string",
11224+
format: "",
11225+
},
11226+
accountId: {
11227+
type: "string",
11228+
format: "",
11229+
},
11230+
operationResponseType: "AmsIntegrationAccountResponse",
11231+
},
11232+
"IntegrationAccountsApi.V2.DeleteAmsIntegrationAccount": {
11233+
integrationName: {
11234+
type: "string",
11235+
format: "",
11236+
},
11237+
interfaceId: {
11238+
type: "string",
11239+
format: "",
11240+
},
11241+
accountId: {
11242+
type: "string",
11243+
format: "",
11244+
},
11245+
operationResponseType: "{}",
11246+
},
11247+
"IntegrationAccountsApi.V2.UpdateAmsIntegrationAccount": {
11248+
integrationName: {
11249+
type: "string",
11250+
format: "",
11251+
},
11252+
interfaceId: {
11253+
type: "string",
11254+
format: "",
11255+
},
11256+
accountId: {
11257+
type: "string",
11258+
format: "",
11259+
},
11260+
body: {
11261+
type: "AmsIntegrationAccountUpdateRequest",
11262+
format: "",
11263+
},
11264+
operationResponseType: "AmsIntegrationAccountResponse",
11265+
},
1118011266
"IPAllowlistApi.V2.GetIPAllowlist": {
1118111267
operationResponseType: "IPAllowlistResponse",
1118211268
},
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
nodeLinker: node-modules

0 commit comments

Comments
 (0)