Skip to content

Commit 221e3c4

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Add Synthetics suites CRUD endpoints (#3316)
Co-authored-by: ci.datadog-api-spec <packages@datadoghq.com>
1 parent 0383eec commit 221e3c4

32 files changed

Lines changed: 2509 additions & 39 deletions

.generator/schemas/v2/openapi.yaml

Lines changed: 453 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
"2026-01-07T12:38:44.484Z"
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
{
2+
"log": {
3+
"_recordingName": "Synthetics/Search Synthetics suites returns \"OK\" response",
4+
"creator": {
5+
"comment": "persister:fs",
6+
"name": "Polly.JS",
7+
"version": "6.0.5"
8+
},
9+
"entries": [
10+
{
11+
"_id": "36af715dc1b113ae5f987d3ee44b564b",
12+
"_order": 0,
13+
"cache": {},
14+
"request": {
15+
"bodySize": 0,
16+
"cookies": [],
17+
"headers": [
18+
{
19+
"_fromType": "array",
20+
"name": "accept",
21+
"value": "application/json"
22+
}
23+
],
24+
"headersSize": 517,
25+
"httpVersion": "HTTP/1.1",
26+
"method": "GET",
27+
"queryString": [],
28+
"url": "https://api.datadoghq.com/api/v2/synthetics/suites/search"
29+
},
30+
"response": {
31+
"bodySize": 8678,
32+
"content": {
33+
"mimeType": "application/json",
34+
"size": 8678,
35+
"text": "{\"data\":{\"type\":\"suites_search\",\"attributes\":{\"suites\":[{\"created_by\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"},\"monitor_status\":\"No Data\",\"type\":\"suite\",\"modified_at\":\"2025-12-12T14:36:38.194974+00:00\",\"name\":\"Example suite name\",\"options\":{},\"monitor_name\":\"[Synthetics] Example suite name\",\"last_triggered_ts\":1765550180,\"monitor_id\":243683630,\"tests\":[],\"notifications\":[],\"public_id\":\"q9j-u8p-3v5\",\"tags\":[\"env:production\"]},{\"created_by\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"},\"monitor_status\":\"No Data\",\"type\":\"suite\",\"modified_at\":\"2025-12-12T15:13:58.194856+00:00\",\"name\":\"Example suite name\",\"options\":{},\"monitor_name\":\"[Synthetics] Example suite name\",\"last_triggered_ts\":1765552435,\"monitor_id\":243691225,\"tests\":[],\"notifications\":[],\"public_id\":\"qqj-ma8-msw\",\"tags\":[\"env:production\"]},{\"created_by\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"},\"monitor_status\":\"No Data\",\"type\":\"suite\",\"modified_at\":\"2025-12-12T13:58:21.265235+00:00\",\"name\":\"Example suite name\",\"options\":{},\"monitor_name\":\"[Synthetics] Example suite name\",\"last_triggered_ts\":1765547882,\"monitor_id\":243678032,\"tests\":[],\"notifications\":[],\"public_id\":\"qwt-zcd-3e7\",\"tags\":[\"env:production\"]},{\"created_by\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"},\"monitor_status\":\"No Data\",\"type\":\"suite\",\"modified_at\":\"2025-12-16T21:23:27.482218+00:00\",\"name\":\"Example suite name\",\"options\":{},\"monitor_name\":\"[Synthetics] Example suite name\",\"last_triggered_ts\":1765920189,\"monitor_id\":244824489,\"tests\":[],\"notifications\":[],\"public_id\":\"yya-xnv-r72\",\"tags\":[\"env:production\"]},{\"created_by\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"},\"monitor_status\":\"No Data\",\"type\":\"suite\",\"modified_at\":\"2026-01-06T14:31:13.144659+00:00\",\"name\":\"Example suite name\",\"options\":{},\"monitor_name\":\"[Synthetics] Example suite name\",\"last_triggered_ts\":1767709878,\"monitor_id\":248911428,\"tests\":[],\"notifications\":[],\"public_id\":\"37x-cfh-hik\",\"tags\":[\"env:production\"]},{\"created_by\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"},\"monitor_status\":\"No Data\",\"type\":\"suite\",\"modified_at\":\"2025-12-12T14:52:23.813142+00:00\",\"name\":\"Example suite name\",\"options\":{},\"monitor_name\":\"[Synthetics] Example suite name\",\"last_triggered_ts\":1765551141,\"monitor_id\":243686361,\"tests\":[],\"notifications\":[],\"public_id\":\"y9a-9jy-ng2\",\"tags\":[\"env:production\"]},{\"created_by\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"},\"monitor_status\":\"No Data\",\"type\":\"suite\",\"modified_at\":\"2025-12-15T14:02:40.227969+00:00\",\"name\":\"Example suite name\",\"options\":{},\"monitor_name\":\"[Synthetics] Example suite name\",\"last_triggered_ts\":1765807338,\"monitor_id\":244243608,\"tests\":[],\"notifications\":[],\"public_id\":\"45f-82u-p2d\",\"tags\":[\"env:production\"]},{\"created_by\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"},\"monitor_status\":\"No Data\",\"type\":\"suite\",\"modified_at\":\"2025-12-15T14:22:09.594574+00:00\",\"name\":\"Example suite name\",\"options\":{},\"monitor_name\":\"[Synthetics] Example suite name\",\"last_triggered_ts\":1765808505,\"monitor_id\":244250055,\"tests\":[],\"notifications\":[],\"public_id\":\"xd9-dws-cm2\",\"tags\":[\"env:production\"]},{\"created_by\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"},\"monitor_status\":\"No Data\",\"type\":\"suite\",\"modified_at\":\"2025-12-15T15:36:44.135107+00:00\",\"name\":\"Example suite name\",\"options\":{},\"monitor_name\":\"[Synthetics] Example suite name\",\"last_triggered_ts\":1765813000,\"monitor_id\":244276690,\"tests\":[],\"notifications\":[],\"public_id\":\"77s-9gi-8pa\",\"tags\":[\"env:production\"]},{\"created_by\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"},\"monitor_status\":\"No Data\",\"type\":\"suite\",\"modified_at\":\"2025-12-16T09:42:02.245892+00:00\",\"name\":\"Example suite name\",\"options\":{},\"monitor_name\":\"[Synthetics] Example suite name\",\"last_triggered_ts\":1765878101,\"monitor_id\":244658021,\"tests\":[],\"notifications\":[],\"public_id\":\"xft-zns-y58\",\"tags\":[\"env:production\"]},{\"created_by\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"},\"monitor_status\":\"No Data\",\"type\":\"suite\",\"modified_at\":\"2025-12-16T09:52:14.327958+00:00\",\"name\":\"Example suite name\",\"options\":{},\"monitor_name\":\"[Synthetics] Example suite name\",\"last_triggered_ts\":1765878721,\"monitor_id\":244659781,\"tests\":[],\"notifications\":[],\"public_id\":\"9ne-jp8-bbs\",\"tags\":[\"env:production\"]},{\"created_by\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"},\"monitor_status\":\"No Data\",\"type\":\"suite\",\"modified_at\":\"2025-12-19T09:34:53.578670+00:00\",\"name\":\"Example suite name\",\"options\":{},\"monitor_name\":\"[Synthetics] Example suite name\",\"last_triggered_ts\":1766136882,\"monitor_id\":245439882,\"tests\":[],\"notifications\":[],\"public_id\":\"rcp-hsx-ksp\",\"tags\":[\"env:production\"]},{\"created_by\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"},\"monitor_status\":\"No Data\",\"type\":\"suite\",\"modified_at\":\"2025-12-09T10:37:16.189540+00:00\",\"name\":\"Example suite name\",\"options\":{},\"monitor_name\":\"[Synthetics] Example suite name\",\"last_triggered_ts\":1765276630,\"monitor_id\":242864230,\"tests\":[],\"notifications\":[],\"public_id\":\"ihb-7cb-mbq\",\"tags\":[\"env:production\"]},{\"created_by\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"},\"monitor_status\":\"No Data\",\"type\":\"suite\",\"modified_at\":\"2025-12-12T14:58:39.394977+00:00\",\"name\":\"Example suite name\",\"options\":{},\"monitor_name\":\"[Synthetics] Example suite name\",\"last_triggered_ts\":1765551515,\"monitor_id\":243687635,\"tests\":[],\"notifications\":[],\"public_id\":\"m4t-g9e-cht\",\"tags\":[\"env:production\"]},{\"created_by\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"},\"monitor_status\":\"No Data\",\"type\":\"suite\",\"modified_at\":\"2025-12-15T13:27:01.650049+00:00\",\"name\":\"Example suite name\",\"options\":{},\"monitor_name\":\"[Synthetics] Example suite name\",\"last_triggered_ts\":1765805206,\"monitor_id\":244230166,\"tests\":[],\"notifications\":[],\"public_id\":\"3rn-xv7-3gw\",\"tags\":[\"env:production\"]},{\"created_by\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"},\"monitor_status\":\"No Data\",\"type\":\"suite\",\"modified_at\":\"2025-12-15T13:55:29.070758+00:00\",\"name\":\"Example suite name\",\"options\":{},\"monitor_name\":\"[Synthetics] Example suite name\",\"last_triggered_ts\":1765806925,\"monitor_id\":244240495,\"tests\":[],\"notifications\":[],\"public_id\":\"u5z-r6t-6gj\",\"tags\":[\"env:production\"]},{\"created_by\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"},\"monitor_status\":\"No Data\",\"type\":\"suite\",\"modified_at\":\"2025-12-15T15:48:08.393886+00:00\",\"name\":\"Example suite name\",\"options\":{},\"monitor_name\":\"[Synthetics] Example suite name\",\"last_triggered_ts\":1765813664,\"monitor_id\":244283444,\"tests\":[],\"notifications\":[],\"public_id\":\"fug-wqb-jgm\",\"tags\":[\"env:production\"]},{\"created_by\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"},\"monitor_status\":\"No Data\",\"type\":\"suite\",\"modified_at\":\"2025-12-17T08:57:02.235129+00:00\",\"name\":\"Example suite name\",\"options\":{},\"monitor_name\":\"[Synthetics] Example suite name\",\"last_triggered_ts\":1765961806,\"monitor_id\":244953226,\"tests\":[],\"notifications\":[],\"public_id\":\"tmj-mmm-6rw\",\"tags\":[\"env:production\"]},{\"created_by\":{\"name\":\"CI Account\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\"},\"monitor_status\":\"No Data\",\"type\":\"suite\",\"modified_at\":\"2026-01-06T13:52:15.675454+00:00\",\"name\":\"Example suite name\",\"options\":{},\"monitor_name\":\"[Synthetics] Example suite name\",\"last_triggered_ts\":1767707530,\"monitor_id\":248904310,\"tests\":[],\"notifications\":[],\"public_id\":\"pkr-4b7-tug\",\"tags\":[\"env:production\"]}],\"facets\":[{\"name\":\"mobile_platform\",\"values\":[]},{\"name\":\"test_count\",\"values\":[{\"name\":\"0\",\"count\":19}]},{\"name\":\"step_count\",\"values\":[]},{\"name\":\"http_path\",\"values\":[]},{\"name\":\"team\",\"values\":[]},{\"name\":\"type\",\"values\":[{\"name\":\"suite\",\"count\":19}]},{\"name\":\"env\",\"values\":[{\"name\":\"production\",\"count\":19}]},{\"name\":\"creator\",\"values\":[{\"name\":\"CI Account\",\"count\":19}]},{\"name\":\"mobile_application\",\"values\":[]},{\"name\":\"notification\",\"values\":[]},{\"name\":\"endpoint\",\"values\":[]},{\"name\":\"http_method\",\"values\":[]},{\"name\":\"creation_source\",\"values\":[]},{\"name\":\"domain\",\"values\":[]},{\"name\":\"ci_execution_rule\",\"values\":[{\"name\":\"blocking\",\"count\":19}]},{\"name\":\"tag\",\"values\":[{\"name\":\"env:production\",\"count\":19}]},{\"name\":\"state\",\"values\":[{\"name\":\"paused\",\"count\":19}]},{\"name\":\"region\",\"values\":[]},{\"name\":\"muted\",\"values\":[{\"name\":\"0\",\"count\":19}]},{\"name\":\"status\",\"values\":[{\"name\":\"No Data\",\"count\":19}]}],\"total\":19},\"id\":\"74278a23-c9ce-4093-816d-7109fb05adb5\"}}\n"
36+
},
37+
"cookies": [],
38+
"headers": [
39+
{
40+
"name": "content-type",
41+
"value": "application/json"
42+
}
43+
],
44+
"headersSize": 695,
45+
"httpVersion": "HTTP/1.1",
46+
"redirectURL": "",
47+
"status": 200,
48+
"statusText": "OK"
49+
},
50+
"startedDateTime": "2026-01-07T12:38:45.337Z",
51+
"time": 366
52+
}
53+
],
54+
"pages": [],
55+
"version": "1.2"
56+
}
57+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
"2026-01-07T12:38:45.716Z"
Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
{
2+
"log": {
3+
"_recordingName": "Synthetics/Synthetics: Create a test suite returns \"OK\" response",
4+
"creator": {
5+
"comment": "persister:fs",
6+
"name": "Polly.JS",
7+
"version": "6.0.5"
8+
},
9+
"entries": [
10+
{
11+
"_id": "28246ef14beb75930aef1feb4367b252",
12+
"_order": 0,
13+
"cache": {},
14+
"request": {
15+
"bodySize": 167,
16+
"cookies": [],
17+
"headers": [
18+
{
19+
"_fromType": "array",
20+
"name": "accept",
21+
"value": "application/json"
22+
},
23+
{
24+
"_fromType": "array",
25+
"name": "content-type",
26+
"value": "application/json"
27+
}
28+
],
29+
"headersSize": 572,
30+
"httpVersion": "HTTP/1.1",
31+
"method": "POST",
32+
"postData": {
33+
"mimeType": "application/json",
34+
"params": [],
35+
"text": "{\"data\":{\"attributes\":{\"message\":\"Notification message\",\"name\":\"Example suite name\",\"options\":{},\"tags\":[\"env:production\"],\"tests\":[],\"type\":\"suite\"},\"type\":\"suites\"}}"
36+
},
37+
"queryString": [],
38+
"url": "https://api.datadoghq.com/api/v2/synthetics/suites"
39+
},
40+
"response": {
41+
"bodySize": 616,
42+
"content": {
43+
"mimeType": "application/json",
44+
"size": 616,
45+
"text": "{\"data\":{\"type\":\"suites\",\"id\":\"36n-bb6-njj\",\"attributes\":{\"tags\":[\"env:production\"],\"type\":\"suite\",\"created_by\":{\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"},\"created_at\":\"2026-01-07T12:38:46.109472+00:00\",\"modified_at\":\"2026-01-07T12:38:46.109472+00:00\",\"message\":\"Notification message\",\"public_id\":\"36n-bb6-njj\",\"options\":{},\"modified_by\":{\"email\":\"team-intg-tools-libs-spam@datadoghq.com\",\"handle\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"},\"tests\":[],\"name\":\"Example suite name\",\"org_id\":321813,\"monitor_id\":249141773}}}\n"
46+
},
47+
"cookies": [],
48+
"headers": [
49+
{
50+
"name": "content-type",
51+
"value": "application/json"
52+
}
53+
],
54+
"headersSize": 693,
55+
"httpVersion": "HTTP/1.1",
56+
"redirectURL": "",
57+
"status": 200,
58+
"statusText": "OK"
59+
},
60+
"startedDateTime": "2026-01-07T12:38:45.719Z",
61+
"time": 491
62+
},
63+
{
64+
"_id": "1bd5428beb451f07ea8ab3d0bc71b1e8",
65+
"_order": 0,
66+
"cache": {},
67+
"request": {
68+
"bodySize": 85,
69+
"cookies": [],
70+
"headers": [
71+
{
72+
"_fromType": "array",
73+
"name": "accept",
74+
"value": "application/json"
75+
},
76+
{
77+
"_fromType": "array",
78+
"name": "content-type",
79+
"value": "application/json"
80+
}
81+
],
82+
"headersSize": 584,
83+
"httpVersion": "HTTP/1.1",
84+
"method": "POST",
85+
"postData": {
86+
"mimeType": "application/json",
87+
"params": [],
88+
"text": "{\"data\":{\"attributes\":{\"public_ids\":[\"36n-bb6-njj\"]},\"type\":\"delete_suites_request\"}}"
89+
},
90+
"queryString": [],
91+
"url": "https://api.datadoghq.com/api/v2/synthetics/suites/bulk-delete"
92+
},
93+
"response": {
94+
"bodySize": 131,
95+
"content": {
96+
"mimeType": "application/json",
97+
"size": 131,
98+
"text": "{\"data\":[{\"type\":\"suites\",\"attributes\":{\"public_id\":\"36n-bb6-njj\",\"deleted_at\":\"2026-01-07 12:38:46.679914\"},\"id\":\"36n-bb6-njj\"}]}\n"
99+
},
100+
"cookies": [],
101+
"headers": [
102+
{
103+
"name": "content-type",
104+
"value": "application/json"
105+
}
106+
],
107+
"headersSize": 694,
108+
"httpVersion": "HTTP/1.1",
109+
"redirectURL": "",
110+
"status": 200,
111+
"statusText": "OK"
112+
},
113+
"startedDateTime": "2026-01-07T12:38:46.218Z",
114+
"time": 739
115+
}
116+
],
117+
"pages": [],
118+
"version": "1.2"
119+
}
120+
}

features/v2/synthetics.feature

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,3 +51,73 @@ Feature: Synthetics
5151
When the request is sent
5252
Then the response status is 200 OK
5353
And the response "data.attributes.on_demand_concurrency_cap" is equal to 20
54+
55+
@generated @skip @team:DataDog/synthetics-managing
56+
Scenario: Search Synthetics suites returns "API error response." response
57+
Given new "SearchSuites" request
58+
When the request is sent
59+
Then the response status is 400 API error response.
60+
61+
@team:DataDog/synthetics-managing
62+
Scenario: Search Synthetics suites returns "OK" response
63+
Given new "SearchSuites" request
64+
When the request is sent
65+
Then the response status is 200 OK
66+
67+
@generated @skip @team:DataDog/synthetics-managing
68+
Scenario: Synthetics: Bulk delete suites returns "API error response." response
69+
Given new "DeleteSyntheticsSuites" request
70+
And body with value {"data": {"attributes": {"public_ids": [""]}, "type": "delete_suites_request"}}
71+
When the request is sent
72+
Then the response status is 400 API error response.
73+
74+
@generated @skip @team:DataDog/synthetics-managing
75+
Scenario: Synthetics: Bulk delete suites returns "OK" response
76+
Given new "DeleteSyntheticsSuites" request
77+
And body with value {"data": {"attributes": {"public_ids": [""]}, "type": "delete_suites_request"}}
78+
When the request is sent
79+
Then the response status is 200 OK
80+
81+
@generated @skip @team:DataDog/synthetics-managing
82+
Scenario: Synthetics: Create a test suite returns "API error response." response
83+
Given new "CreateSyntheticsSuite" request
84+
And body with value {"data": {"attributes": {"message": "Notification message", "name": "Example suite name", "options": {}, "tags": ["env:production"], "tests": [{"alerting_criticality": "critical", "public_id": ""}], "type": "suite"}, "type": "suites"}}
85+
When the request is sent
86+
Then the response status is 400 API error response.
87+
88+
@team:DataDog/synthetics-managing
89+
Scenario: Synthetics: Create a test suite returns "OK" response
90+
Given new "CreateSyntheticsSuite" request
91+
And body with value {"data": {"attributes": {"message": "Notification message", "name": "Example suite name", "options": {}, "tags": ["env:production"], "tests": [], "type": "suite"}, "type": "suites"}}
92+
When the request is sent
93+
Then the response status is 200 OK
94+
95+
@generated @skip @team:DataDog/synthetics-managing
96+
Scenario: Synthetics: Edit a test suite returns "API error response." response
97+
Given new "EditSyntheticsSuite" request
98+
And request contains "public_id" parameter from "REPLACE.ME"
99+
And body with value {"data": {"attributes": {"message": "Notification message", "name": "Example suite name", "options": {}, "tags": ["env:production"], "tests": [{"alerting_criticality": "critical", "public_id": ""}], "type": "suite"}, "type": "suites"}}
100+
When the request is sent
101+
Then the response status is 400 API error response.
102+
103+
@generated @skip @team:DataDog/synthetics-managing
104+
Scenario: Synthetics: Edit a test suite returns "OK" response
105+
Given new "EditSyntheticsSuite" request
106+
And request contains "public_id" parameter from "REPLACE.ME"
107+
And body with value {"data": {"attributes": {"message": "Notification message", "name": "Example suite name", "options": {}, "tags": ["env:production"], "tests": [{"alerting_criticality": "critical", "public_id": ""}], "type": "suite"}, "type": "suites"}}
108+
When the request is sent
109+
Then the response status is 200 OK
110+
111+
@generated @skip @team:DataDog/synthetics-managing
112+
Scenario: Synthetics: Get a suite returns "API error response." response
113+
Given new "GetSyntheticsSuite" request
114+
And request contains "public_id" parameter from "REPLACE.ME"
115+
When the request is sent
116+
Then the response status is 404 API error response.
117+
118+
@generated @skip @team:DataDog/synthetics-managing
119+
Scenario: Synthetics: Get a suite returns "OK" response
120+
Given new "GetSyntheticsSuite" request
121+
And request contains "public_id" parameter from "REPLACE.ME"
122+
When the request is sent
123+
Then the response status is 200 OK

0 commit comments

Comments
 (0)