diff --git a/config/_default/menus/api.en.yaml b/config/_default/menus/api.en.yaml
index 6c4296d1412..167f10e143a 100644
--- a/config/_default/menus/api.en.yaml
+++ b/config/_default/menus/api.en.yaml
@@ -3829,7 +3829,67 @@ menu:
operationids:
- PatchGlobalVariable
unstable: []
+ order: 45
+ - name: 'Synthetics: Edit a test suite'
+ url: '#synthetics-edit-a-test-suite'
+ identifier: synthetics-synthetics-edit-a-test-suite
+ parent: synthetics
+ generated: true
+ params:
+ versions:
+ - v2
+ operationids:
+ - EditSyntheticsSuite
+ unstable: []
+ order: 35
+ - name: 'Synthetics: Get a suite'
+ url: '#synthetics-get-a-suite'
+ identifier: synthetics-synthetics-get-a-suite
+ parent: synthetics
+ generated: true
+ params:
+ versions:
+ - v2
+ operationids:
+ - GetSyntheticsSuite
+ unstable: []
+ order: 25
+ - name: Search Synthetics suites
+ url: '#search-synthetics-suites'
+ identifier: synthetics-search-synthetics-suites
+ parent: synthetics
+ generated: true
+ params:
+ versions:
+ - v2
+ operationids:
+ - SearchSuites
+ unstable: []
order: 20
+ - name: 'Synthetics: Bulk delete suites'
+ url: '#synthetics-bulk-delete-suites'
+ identifier: synthetics-synthetics-bulk-delete-suites
+ parent: synthetics
+ generated: true
+ params:
+ versions:
+ - v2
+ operationids:
+ - DeleteSyntheticsSuites
+ unstable: []
+ order: 40
+ - name: 'Synthetics: Create a test suite'
+ url: '#synthetics-create-a-test-suite'
+ identifier: synthetics-synthetics-create-a-test-suite
+ parent: synthetics
+ generated: true
+ params:
+ versions:
+ - v2
+ operationids:
+ - CreateSyntheticsSuite
+ unstable: []
+ order: 30
- name: Save new value for on-demand concurrency cap
url: '#save-new-value-for-on-demand-concurrency-cap'
identifier: synthetics-save-new-value-for-on-demand-concurrency-cap
diff --git a/content/en/api/v2/synthetics/examples.json b/content/en/api/v2/synthetics/examples.json
index d0026cd0ce7..0340acdf5f0 100644
--- a/content/en/api/v2/synthetics/examples.json
+++ b/content/en/api/v2/synthetics/examples.json
@@ -57,6 +57,352 @@
"html": "
\n
\n
\n
\n
on_demand_concurrency_cap
\n
\n
\n
Value of the on-demand concurrency cap.
\n
\n \n
\n
"
}
},
+ "CreateSyntheticsSuite": {
+ "responses": {
+ "200": {
+ "json": {
+ "data": {
+ "attributes": {
+ "message": "Notification message",
+ "monitor_id": 12345678,
+ "name": "Example suite name",
+ "options": {
+ "alerting_threshold": "number"
+ },
+ "public_id": "123-abc-456",
+ "tags": [
+ "env:production"
+ ],
+ "tests": [
+ {
+ "alerting_criticality": "critical",
+ "public_id": ""
+ }
+ ],
+ "type": "suite"
+ },
+ "id": "123-abc-456",
+ "type": "suites"
+ }
+ },
+ "html": "\n
\n
\n
\n
\n
Synthetics suite response data
\n
\n
\n
\n
\n
\n
\n
Object containing details about a Synthetic suite.
\n
\n
\n
\n
\n
\n
\n
Notification message associated with the suite.
\n
\n \n
\n
\n
\n
\n
\n
\n
The associated monitor ID.
\n
\n \n
\n
\n
\n
\n
\n
\n
Object describing the extra options for a Synthetic suite.
\n
\n
\n
\n
\n
\n
\n
Percentage of critical tests failure needed for a suite to fail.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
The public ID for the test.
\n
\n \n
\n
\n
\n
\n
\n
\n
Array of tags attached to the suite.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
alerting_criticality
\n
\n
\n
Alerting criticality for each the test. \nAllowed enum values: ignore,critical
\n
\n \n
\n
\n
\n
\n
\n
public_id [required]
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
Type of the Synthetic suite, suite. \nAllowed enum values: suite
default: suite
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
The public ID for the suite.
\n
\n \n
\n
\n
\n
\n
\n
\n
Type for the Synthetics suites responses, suites. \nAllowed enum values: suites
default: suites
\n
\n \n
\n
\n
\n
"
+ },
+ "400": {
+ "json": {
+ "errors": [
+ "Bad Request"
+ ]
+ },
+ "html": ""
+ },
+ "429": {
+ "json": {
+ "errors": [
+ "Bad Request"
+ ]
+ },
+ "html": ""
+ }
+ },
+ "request": {
+ "json_curl": {
+ "data": {
+ "attributes": {
+ "name": "Example suite name",
+ "options": {},
+ "tests": [
+ {
+ "public_id": ""
+ }
+ ],
+ "type": "suite"
+ },
+ "type": "suites"
+ }
+ },
+ "json": {
+ "data": {
+ "attributes": {
+ "message": "Notification message",
+ "name": "Example suite name",
+ "options": {
+ "alerting_threshold": "number"
+ },
+ "tags": [
+ "env:production"
+ ],
+ "tests": [
+ {
+ "alerting_criticality": "critical",
+ "public_id": ""
+ }
+ ],
+ "type": "suite"
+ },
+ "type": "suites"
+ }
+ },
+ "html": "\n
\n
\n
\n
\n
\n
\n
attributes [required]
\n
\n
\n
Object containing details about a Synthetic suite.
\n
\n
\n
\n
\n
\n
\n
Notification message associated with the suite.
\n
\n \n
\n
\n
\n
\n
\n
\n
The associated monitor ID.
\n
\n \n
\n
\n
\n
\n
\n
\n
Object describing the extra options for a Synthetic suite.
\n
\n
\n
\n
\n
\n
\n
Percentage of critical tests failure needed for a suite to fail.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
The public ID for the test.
\n
\n \n
\n
\n
\n
\n
\n
\n
Array of tags attached to the suite.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
alerting_criticality
\n
\n
\n
Alerting criticality for each the test. \nAllowed enum values: ignore,critical
\n
\n \n
\n
\n
\n
\n
\n
public_id [required]
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
Type of the Synthetic suite, suite. \nAllowed enum values: suite
default: suite
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
Type for the Synthetics suites responses, suites. \nAllowed enum values: suites
default: suites
\n
\n \n
\n
\n
\n
"
+ }
+ },
+ "DeleteSyntheticsSuites": {
+ "responses": {
+ "200": {
+ "json": {
+ "data": [
+ {
+ "attributes": {
+ "deleted_at": "string",
+ "public_id": "string"
+ },
+ "id": "string",
+ "type": "suites"
+ }
+ ]
+ },
+ "html": "\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Deletion timestamp of the Synthetic suite ID.
\n
\n \n
\n
\n
\n
\n
\n
\n
The Synthetic suite ID deleted.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
Type for the Synthetics suites responses, suites. \nAllowed enum values: suites
default: suites
\n
\n \n
\n
\n
\n
"
+ },
+ "400": {
+ "json": {
+ "errors": [
+ "Bad Request"
+ ]
+ },
+ "html": ""
+ },
+ "429": {
+ "json": {
+ "errors": [
+ "Bad Request"
+ ]
+ },
+ "html": ""
+ }
+ },
+ "request": {
+ "json_curl": {
+ "data": {
+ "attributes": {
+ "public_ids": [
+ ""
+ ]
+ }
+ }
+ },
+ "json": {
+ "data": {
+ "attributes": {
+ "force_delete_dependencies": false,
+ "public_ids": [
+ ""
+ ]
+ },
+ "id": "string",
+ "type": "delete_suites_request"
+ }
+ },
+ "html": "\n
\n
\n
\n
\n
\n
\n
attributes [required]
\n
\n
\n
\n
\n
\n
\n
\n
\n
force_delete_dependencies
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
public_ids [required]
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
default: delete_suites_request
\n
\n \n
\n
\n
\n
"
+ }
+ },
+ "SearchSuites": {
+ "responses": {
+ "200": {
+ "json": {
+ "data": {
+ "attributes": {
+ "suites": [
+ {
+ "message": "Notification message",
+ "monitor_id": 12345678,
+ "name": "Example suite name",
+ "options": {
+ "alerting_threshold": "number"
+ },
+ "public_id": "123-abc-456",
+ "tags": [
+ "env:production"
+ ],
+ "tests": [
+ {
+ "alerting_criticality": "critical",
+ "public_id": ""
+ }
+ ],
+ "type": "suite"
+ }
+ ],
+ "total": "integer"
+ },
+ "id": "string",
+ "type": "suites_search"
+ }
+ },
+ "html": "\n
\n
\n
\n
\n
Synthetics suite search response data
\n
\n
\n
\n
\n
\n
\n
Synthetics suite search response data attributes
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Notification message associated with the suite.
\n
\n \n
\n
\n
\n
\n
\n
\n
The associated monitor ID.
\n
\n \n
\n
\n
\n
\n
\n
\n
Object describing the extra options for a Synthetic suite.
\n
\n
\n
\n
\n
\n
\n
Percentage of critical tests failure needed for a suite to fail.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
The public ID for the test.
\n
\n \n
\n
\n
\n
\n
\n
\n
Array of tags attached to the suite.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
alerting_criticality
\n
\n
\n
Alerting criticality for each the test. \nAllowed enum values: ignore,critical
\n
\n \n
\n
\n
\n
\n
\n
public_id [required]
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
Type of the Synthetic suite, suite. \nAllowed enum values: suite
default: suite
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
"
+ },
+ "400": {
+ "json": {
+ "errors": [
+ "Bad Request"
+ ]
+ },
+ "html": ""
+ },
+ "429": {
+ "json": {
+ "errors": [
+ "Bad Request"
+ ]
+ },
+ "html": ""
+ }
+ },
+ "request": {
+ "json_curl": {},
+ "json": {},
+ "html": ""
+ }
+ },
+ "GetSyntheticsSuite": {
+ "responses": {
+ "200": {
+ "json": {
+ "data": {
+ "attributes": {
+ "message": "Notification message",
+ "monitor_id": 12345678,
+ "name": "Example suite name",
+ "options": {
+ "alerting_threshold": "number"
+ },
+ "public_id": "123-abc-456",
+ "tags": [
+ "env:production"
+ ],
+ "tests": [
+ {
+ "alerting_criticality": "critical",
+ "public_id": ""
+ }
+ ],
+ "type": "suite"
+ },
+ "id": "123-abc-456",
+ "type": "suites"
+ }
+ },
+ "html": "\n
\n
\n
\n
\n
Synthetics suite response data
\n
\n
\n
\n
\n
\n
\n
Object containing details about a Synthetic suite.
\n
\n
\n
\n
\n
\n
\n
Notification message associated with the suite.
\n
\n \n
\n
\n
\n
\n
\n
\n
The associated monitor ID.
\n
\n \n
\n
\n
\n
\n
\n
\n
Object describing the extra options for a Synthetic suite.
\n
\n
\n
\n
\n
\n
\n
Percentage of critical tests failure needed for a suite to fail.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
The public ID for the test.
\n
\n \n
\n
\n
\n
\n
\n
\n
Array of tags attached to the suite.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
alerting_criticality
\n
\n
\n
Alerting criticality for each the test. \nAllowed enum values: ignore,critical
\n
\n \n
\n
\n
\n
\n
\n
public_id [required]
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
Type of the Synthetic suite, suite. \nAllowed enum values: suite
default: suite
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
The public ID for the suite.
\n
\n \n
\n
\n
\n
\n
\n
\n
Type for the Synthetics suites responses, suites. \nAllowed enum values: suites
default: suites
\n
\n \n
\n
\n
\n
"
+ },
+ "404": {
+ "json": {
+ "errors": [
+ "Bad Request"
+ ]
+ },
+ "html": ""
+ },
+ "429": {
+ "json": {
+ "errors": [
+ "Bad Request"
+ ]
+ },
+ "html": ""
+ }
+ },
+ "request": {
+ "json_curl": {},
+ "json": {},
+ "html": ""
+ }
+ },
+ "EditSyntheticsSuite": {
+ "responses": {
+ "200": {
+ "json": {
+ "data": {
+ "attributes": {
+ "message": "Notification message",
+ "monitor_id": 12345678,
+ "name": "Example suite name",
+ "options": {
+ "alerting_threshold": "number"
+ },
+ "public_id": "123-abc-456",
+ "tags": [
+ "env:production"
+ ],
+ "tests": [
+ {
+ "alerting_criticality": "critical",
+ "public_id": ""
+ }
+ ],
+ "type": "suite"
+ },
+ "id": "123-abc-456",
+ "type": "suites"
+ }
+ },
+ "html": "\n
\n
\n
\n
\n
Synthetics suite response data
\n
\n
\n
\n
\n
\n
\n
Object containing details about a Synthetic suite.
\n
\n
\n
\n
\n
\n
\n
Notification message associated with the suite.
\n
\n \n
\n
\n
\n
\n
\n
\n
The associated monitor ID.
\n
\n \n
\n
\n
\n
\n
\n
\n
Object describing the extra options for a Synthetic suite.
\n
\n
\n
\n
\n
\n
\n
Percentage of critical tests failure needed for a suite to fail.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
The public ID for the test.
\n
\n \n
\n
\n
\n
\n
\n
\n
Array of tags attached to the suite.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
alerting_criticality
\n
\n
\n
Alerting criticality for each the test. \nAllowed enum values: ignore,critical
\n
\n \n
\n
\n
\n
\n
\n
public_id [required]
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
Type of the Synthetic suite, suite. \nAllowed enum values: suite
default: suite
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
The public ID for the suite.
\n
\n \n
\n
\n
\n
\n
\n
\n
Type for the Synthetics suites responses, suites. \nAllowed enum values: suites
default: suites
\n
\n \n
\n
\n
\n
"
+ },
+ "400": {
+ "json": {
+ "errors": [
+ "Bad Request"
+ ]
+ },
+ "html": ""
+ },
+ "429": {
+ "json": {
+ "errors": [
+ "Bad Request"
+ ]
+ },
+ "html": ""
+ }
+ },
+ "request": {
+ "json_curl": {
+ "data": {
+ "attributes": {
+ "name": "Example suite name",
+ "options": {},
+ "tests": [
+ {
+ "public_id": ""
+ }
+ ],
+ "type": "suite"
+ },
+ "type": "suites"
+ }
+ },
+ "json": {
+ "data": {
+ "attributes": {
+ "message": "Notification message",
+ "name": "Example suite name",
+ "options": {
+ "alerting_threshold": "number"
+ },
+ "tags": [
+ "env:production"
+ ],
+ "tests": [
+ {
+ "alerting_criticality": "critical",
+ "public_id": ""
+ }
+ ],
+ "type": "suite"
+ },
+ "type": "suites"
+ }
+ },
+ "html": "\n
\n
\n
\n
\n
\n
\n
attributes [required]
\n
\n
\n
Object containing details about a Synthetic suite.
\n
\n
\n
\n
\n
\n
\n
Notification message associated with the suite.
\n
\n \n
\n
\n
\n
\n
\n
\n
The associated monitor ID.
\n
\n \n
\n
\n
\n
\n
\n
\n
Object describing the extra options for a Synthetic suite.
\n
\n
\n
\n
\n
\n
\n
Percentage of critical tests failure needed for a suite to fail.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
The public ID for the test.
\n
\n \n
\n
\n
\n
\n
\n
\n
Array of tags attached to the suite.
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
alerting_criticality
\n
\n
\n
Alerting criticality for each the test. \nAllowed enum values: ignore,critical
\n
\n \n
\n
\n
\n
\n
\n
public_id [required]
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
Type of the Synthetic suite, suite. \nAllowed enum values: suite
default: suite
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
Type for the Synthetics suites responses, suites. \nAllowed enum values: suites
default: suites
\n
\n \n
\n
\n
\n
"
+ }
+ },
"PatchGlobalVariable": {
"responses": {
"200": {
diff --git a/content/en/api/v2/synthetics/request.CreateSyntheticsSuite.json b/content/en/api/v2/synthetics/request.CreateSyntheticsSuite.json
new file mode 100644
index 00000000000..db4478b82f9
--- /dev/null
+++ b/content/en/api/v2/synthetics/request.CreateSyntheticsSuite.json
@@ -0,0 +1,15 @@
+{
+ "data": {
+ "attributes": {
+ "message": "Notification message",
+ "name": "Example suite name",
+ "options": {},
+ "tags": [
+ "env:production"
+ ],
+ "tests": [],
+ "type": "suite"
+ },
+ "type": "suites"
+ }
+}
\ No newline at end of file
diff --git a/data/api/v2/CodeExamples.json b/data/api/v2/CodeExamples.json
index 47727107d04..83e0b7248dd 100644
--- a/data/api/v2/CodeExamples.json
+++ b/data/api/v2/CodeExamples.json
@@ -1922,6 +1922,13 @@
"description": "Save new value for on-demand concurrency cap returns \"OK\" response"
}
],
+ "CreateSyntheticsSuite": [
+ {
+ "group": "synthetics",
+ "suffix": "",
+ "description": "Synthetics: Create a test suite returns \"OK\" response"
+ }
+ ],
"AddTeamHierarchyLink": [
{
"group": "teams",
diff --git a/data/api/v2/full_spec.yaml b/data/api/v2/full_spec.yaml
index 460b7e3ff1b..e164a82015e 100644
--- a/data/api/v2/full_spec.yaml
+++ b/data/api/v2/full_spec.yaml
@@ -17217,6 +17217,70 @@ components:
required:
- data
type: object
+ DeletedSuiteResponseData:
+ properties:
+ attributes:
+ $ref: '#/components/schemas/DeletedSuiteResponseDataAttributes'
+ id:
+ type: string
+ type:
+ $ref: '#/components/schemas/SyntheticsSuiteTypes'
+ type: object
+ DeletedSuiteResponseDataAttributes:
+ properties:
+ deleted_at:
+ description: Deletion timestamp of the Synthetic suite ID.
+ type: string
+ public_id:
+ description: The Synthetic suite ID deleted.
+ type: string
+ type: object
+ DeletedSuitesRequestDelete:
+ properties:
+ attributes:
+ $ref: '#/components/schemas/DeletedSuitesRequestDeleteAttributes'
+ id:
+ type: string
+ type:
+ $ref: '#/components/schemas/DeletedSuitesRequestType'
+ required:
+ - attributes
+ type: object
+ DeletedSuitesRequestDeleteAttributes:
+ properties:
+ force_delete_dependencies:
+ type: boolean
+ public_ids:
+ example:
+ - ''
+ items:
+ type: string
+ type: array
+ required:
+ - public_ids
+ type: object
+ DeletedSuitesRequestDeleteRequest:
+ properties:
+ data:
+ $ref: '#/components/schemas/DeletedSuitesRequestDelete'
+ required:
+ - data
+ type: object
+ DeletedSuitesRequestType:
+ default: delete_suites_request
+ enum:
+ - delete_suites_request
+ example: delete_suites_request
+ type: string
+ x-enum-varnames:
+ - DELETE_SUITES_REQUEST
+ DeletedSuitesResponse:
+ properties:
+ data:
+ items:
+ $ref: '#/components/schemas/DeletedSuiteResponseData'
+ type: array
+ type: object
DependencyLocation:
description: Static library vulnerability location.
properties:
@@ -55340,6 +55404,31 @@ components:
format: double
type: number
type: object
+ SuiteCreateEdit:
+ properties:
+ attributes:
+ $ref: '#/components/schemas/SyntheticsSuite'
+ type:
+ $ref: '#/components/schemas/SyntheticsSuiteTypes'
+ required:
+ - attributes
+ - type
+ type: object
+ SuiteCreateEditRequest:
+ properties:
+ data:
+ $ref: '#/components/schemas/SuiteCreateEdit'
+ required:
+ - data
+ type: object
+ SuiteSearchResponseType:
+ default: suites_search
+ enum:
+ - suites_search
+ example: suites_search
+ type: string
+ x-enum-varnames:
+ - SUITES_SEARCH
SuppressionVersionHistory:
description: Response object containing the version history of a suppression.
properties:
@@ -55523,6 +55612,149 @@ components:
example: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
type: string
type: array
+ SyntheticsSuite:
+ description: Object containing details about a Synthetic suite.
+ properties:
+ message:
+ description: Notification message associated with the suite.
+ example: Notification message
+ type: string
+ monitor_id:
+ description: The associated monitor ID.
+ example: 12345678
+ format: int64
+ readOnly: true
+ type: integer
+ name:
+ description: Name of the suite.
+ example: Example suite name
+ type: string
+ options:
+ $ref: '#/components/schemas/SyntheticsSuiteOptions'
+ public_id:
+ description: The public ID for the test.
+ example: 123-abc-456
+ readOnly: true
+ type: string
+ tags:
+ description: Array of tags attached to the suite.
+ example:
+ - env:production
+ items:
+ description: A tag attached to the suite.
+ type: string
+ type: array
+ tests:
+ items:
+ $ref: '#/components/schemas/SyntheticsSuiteTest'
+ type: array
+ type:
+ $ref: '#/components/schemas/SyntheticsSuiteType'
+ required:
+ - name
+ - type
+ - tests
+ - options
+ type: object
+ SyntheticsSuiteOptions:
+ description: Object describing the extra options for a Synthetic suite.
+ properties:
+ alerting_threshold:
+ description: Percentage of critical tests failure needed for a suite to
+ fail.
+ format: double
+ maximum: 1
+ minimum: 0
+ type: number
+ type: object
+ SyntheticsSuiteResponse:
+ description: Synthetics suite response
+ properties:
+ data:
+ $ref: '#/components/schemas/SyntheticsSuiteResponseData'
+ type: object
+ SyntheticsSuiteResponseData:
+ description: Synthetics suite response data
+ properties:
+ attributes:
+ $ref: '#/components/schemas/SyntheticsSuite'
+ id:
+ description: The public ID for the suite.
+ example: 123-abc-456
+ readOnly: true
+ type: string
+ type:
+ $ref: '#/components/schemas/SyntheticsSuiteTypes'
+ type: object
+ SyntheticsSuiteSearchResponse:
+ description: Synthetics suite search response
+ properties:
+ data:
+ $ref: '#/components/schemas/SyntheticsSuiteSearchResponseData'
+ type: object
+ SyntheticsSuiteSearchResponseData:
+ description: Synthetics suite search response data
+ properties:
+ attributes:
+ $ref: '#/components/schemas/SyntheticsSuiteSearchResponseDataAttributes'
+ id:
+ format: uuid
+ type: string
+ type:
+ $ref: '#/components/schemas/SuiteSearchResponseType'
+ type: object
+ SyntheticsSuiteSearchResponseDataAttributes:
+ description: Synthetics suite search response data attributes
+ properties:
+ suites:
+ items:
+ $ref: '#/components/schemas/SyntheticsSuite'
+ type: array
+ total:
+ format: int32
+ maximum: 2147483647
+ type: integer
+ type: object
+ SyntheticsSuiteTest:
+ description: Object containing details about a Synthetic test included in a
+ Synthetic suite.
+ properties:
+ alerting_criticality:
+ $ref: '#/components/schemas/SyntheticsSuiteTestAlertingCriticality'
+ public_id:
+ example: ''
+ type: string
+ required:
+ - public_id
+ type: object
+ SyntheticsSuiteTestAlertingCriticality:
+ description: Alerting criticality for each the test.
+ enum:
+ - ignore
+ - critical
+ example: critical
+ type: string
+ x-enum-varnames:
+ - IGNORE
+ - CRITICAL
+ SyntheticsSuiteType:
+ default: suite
+ description: Type of the Synthetic suite, `suite`.
+ enum:
+ - suite
+ example: suite
+ type: string
+ x-enum-varnames:
+ - SUITE
+ SyntheticsSuiteTypes:
+ default: suites
+ description: Type for the Synthetics suites responses, `suites`.
+ enum:
+ - suites
+ example: suites
+ type: string
+ x-enum-varnames:
+ - SUITES
SyntheticsVariableParser:
description: Details of the parser to use for the global variable.
example:
@@ -89803,6 +90035,232 @@ paths:
operator: OR
permissions:
- billing_edit
+ /api/v2/synthetics/suites:
+ post:
+ operationId: CreateSyntheticsSuite
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SuiteCreateEditRequest'
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SyntheticsSuiteResponse'
+ description: OK
+ '400':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/APIErrorResponse'
+ description: API error response.
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ:
+ - synthetics_write
+ summary: 'Synthetics: Create a test suite'
+ tags:
+ - Synthetics
+ x-menu-order: 30
+ x-permission:
+ operator: OR
+ permissions:
+ - synthetics_write
+ - synthetics_create_edit_trigger
+ /api/v2/synthetics/suites/bulk-delete:
+ post:
+ operationId: DeleteSyntheticsSuites
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DeletedSuitesRequestDeleteRequest'
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DeletedSuitesResponse'
+ description: OK
+ '400':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/APIErrorResponse'
+ description: API error response.
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ:
+ - synthetics_write
+ summary: 'Synthetics: Bulk delete suites'
+ tags:
+ - Synthetics
+ x-menu-order: 40
+ x-permission:
+ operator: OR
+ permissions:
+ - synthetics_write
+ /api/v2/synthetics/suites/search:
+ get:
+ description: Search for Synthetics suites.
+ operationId: SearchSuites
+ parameters:
+ - description: The search query.
+ in: query
+ name: query
+ required: false
+ schema:
+ type: string
+ - description: The sort order for the results (e.g., `name,asc` or `name,desc`).
+ in: query
+ name: sort
+ required: false
+ schema:
+ default: name,asc
+ type: string
+ - description: If true, return only facets instead of full test details.
+ in: query
+ name: facets_only
+ required: false
+ schema:
+ default: false
+ type: boolean
+ - description: The offset from which to start returning results.
+ in: query
+ name: start
+ required: false
+ schema:
+ default: 0
+ format: int64
+ type: integer
+ - description: The maximum number of results to return.
+ in: query
+ name: count
+ required: false
+ schema:
+ default: 50
+ format: int64
+ type: integer
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SyntheticsSuiteSearchResponse'
+ description: OK
+ '400':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/APIErrorResponse'
+ description: API error response.
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ:
+ - synthetics_read
+ summary: Search Synthetics suites
+ tags:
+ - Synthetics
+ x-menu-order: 20
+ x-permission:
+ operator: OR
+ permissions:
+ - synthetics_read
+ /api/v2/synthetics/suites/{public_id}:
+ get:
+ operationId: GetSyntheticsSuite
+ parameters:
+ - description: The public ID of the suite to get details from.
+ in: path
+ name: public_id
+ required: true
+ schema:
+ type: string
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SyntheticsSuiteResponse'
+ description: OK
+ '404':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/APIErrorResponse'
+ description: API error response.
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ:
+ - synthetics_read
+ summary: 'Synthetics: Get a suite'
+ tags:
+ - Synthetics
+ x-menu-order: 25
+ x-permission:
+ operator: OR
+ permissions:
+ - synthetics_read
+ put:
+ operationId: EditSyntheticsSuite
+ parameters:
+ - description: The public ID of the suite to edit.
+ in: path
+ name: public_id
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SuiteCreateEditRequest'
+ description: New suite details to be saved.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SyntheticsSuiteResponse'
+ description: OK
+ '400':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/APIErrorResponse'
+ description: API error response.
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ:
+ - synthetics_write
+ summary: 'Synthetics: Edit a test suite'
+ tags:
+ - Synthetics
+ x-menu-order: 35
+ x-permission:
+ operator: OR
+ permissions:
+ - synthetics_write
/api/v2/synthetics/variables/{variable_id}/jsonpatch:
patch:
description: 'Patch a global variable using JSON Patch (RFC 6902).
@@ -89853,7 +90311,7 @@ paths:
tags:
- Synthetics
x-codegen-request-body-name: body
- x-menu-order: 20
+ x-menu-order: 45
x-permission:
operator: OR
permissions:
diff --git a/data/api/v2/translate_actions.json b/data/api/v2/translate_actions.json
index 4208375299c..ce511b61b62 100644
--- a/data/api/v2/translate_actions.json
+++ b/data/api/v2/translate_actions.json
@@ -3227,6 +3227,28 @@
"request_description": ".",
"request_schema_description": "On-demand concurrency cap attributes."
},
+ "CreateSyntheticsSuite": {
+ "summary": "Synthetics: Create a test suite",
+ "request_description": "",
+ "request_schema_description": ""
+ },
+ "DeleteSyntheticsSuites": {
+ "summary": "Synthetics: Bulk delete suites",
+ "request_description": "",
+ "request_schema_description": ""
+ },
+ "SearchSuites": {
+ "description": "Search for Synthetics suites.",
+ "summary": "Search Synthetics suites"
+ },
+ "GetSyntheticsSuite": {
+ "summary": "Synthetics: Get a suite"
+ },
+ "EditSyntheticsSuite": {
+ "summary": "Synthetics: Edit a test suite",
+ "request_description": "New suite details to be saved.",
+ "request_schema_description": ""
+ },
"PatchGlobalVariable": {
"description": "Patch a global variable using JSON Patch (RFC 6902).\nThis endpoint allows partial updates to a global variable by specifying only the fields to modify.\n\nCommon operations include:\n- Replace field values: `{\"op\": \"replace\", \"path\": \"/name\", \"value\": \"new_name\"}`\n- Update nested values: `{\"op\": \"replace\", \"path\": \"/value/value\", \"value\": \"new_value\"}`\n- Add/update tags: `{\"op\": \"add\", \"path\": \"/tags/-\", \"value\": \"new_tag\"}`\n- Remove fields: `{\"op\": \"remove\", \"path\": \"/description\"}`",
"summary": "Patch a global variable",