diff --git a/.generator/schemas/v1/openapi.yaml b/.generator/schemas/v1/openapi.yaml
index a38d274f9b8..3720113a10e 100644
--- a/.generator/schemas/v1/openapi.yaml
+++ b/.generator/schemas/v1/openapi.yaml
@@ -39463,18 +39463,21 @@ tags:
name: Slack Integration
- description: Take graph snapshots using the API.
name: Snapshots
-- description: 'Datadog Synthetic Monitoring uses simulated user requests and browser
- rendering to help you ensure uptime,
+- description: 'Synthetic tests allow you to observe how your systems and applications
+ are performing using simulated requests and actions from around the globe.
- identify regional issues, and track your application performance. Synthetic tests
- come in
+ They come in different flavors:
- two different flavors, [API tests](https://docs.datadoghq.com/synthetics/api_tests/?tab=httptest)
+ [API tests](https://docs.datadoghq.com/synthetics/api_tests/),
- and [browser tests](https://docs.datadoghq.com/synthetics/browser_tests). You
- can use Datadog''s API to
+ [browser tests](https://docs.datadoghq.com/synthetics/browser_tests),
- manage both test types programmatically.
+ [Network Path tests](https://docs.datadoghq.com/synthetics/network_path_tests/)
+ and
+
+ [Mobile Application tests](https://docs.datadoghq.com/synthetics/mobile_app_testing).
+
+ You can use Datadog''s API to manage tests and test suites programmatically.
For more information, see the [Synthetic Monitoring documentation](https://docs.datadoghq.com/synthetics/).'
diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml
index b58b6fe70e8..9aa57cc0d36 100644
--- a/.generator/schemas/v2/openapi.yaml
+++ b/.generator/schemas/v2/openapi.yaml
@@ -19117,6 +19117,78 @@ components:
$ref: '#/components/schemas/DeletedSuiteResponseData'
type: array
type: object
+ DeletedTestResponseData:
+ properties:
+ attributes:
+ $ref: '#/components/schemas/DeletedTestResponseDataAttributes'
+ id:
+ type: string
+ type:
+ $ref: '#/components/schemas/DeletedTestsResponseType'
+ type: object
+ DeletedTestResponseDataAttributes:
+ properties:
+ deleted_at:
+ description: Deletion timestamp of the Synthetic test ID.
+ type: string
+ public_id:
+ description: The Synthetic test ID deleted.
+ type: string
+ type: object
+ DeletedTestsRequestDelete:
+ properties:
+ attributes:
+ $ref: '#/components/schemas/DeletedTestsRequestDeleteAttributes'
+ id:
+ type: string
+ type:
+ $ref: '#/components/schemas/DeletedTestsRequestType'
+ required:
+ - attributes
+ type: object
+ DeletedTestsRequestDeleteAttributes:
+ properties:
+ force_delete_dependencies:
+ type: boolean
+ public_ids:
+ example:
+ - ''
+ items:
+ type: string
+ type: array
+ required:
+ - public_ids
+ type: object
+ DeletedTestsRequestDeleteRequest:
+ properties:
+ data:
+ $ref: '#/components/schemas/DeletedTestsRequestDelete'
+ required:
+ - data
+ type: object
+ DeletedTestsRequestType:
+ default: delete_tests_request
+ enum:
+ - delete_tests_request
+ example: delete_tests_request
+ type: string
+ x-enum-varnames:
+ - DELETE_TESTS_REQUEST
+ DeletedTestsResponse:
+ properties:
+ data:
+ items:
+ $ref: '#/components/schemas/DeletedTestResponseData'
+ type: array
+ type: object
+ DeletedTestsResponseType:
+ default: delete_tests
+ enum:
+ - delete_tests
+ example: delete_tests
+ type: string
+ x-enum-varnames:
+ - DELETE_TESTS
DependencyLocation:
description: Static library vulnerability location.
properties:
@@ -60221,6 +60293,362 @@ components:
example: example-value
type: string
type: object
+ SyntheticsNetworkAssertion:
+ description: Object describing an assertion for a Network Path test.
+ oneOf:
+ - $ref: '#/components/schemas/SyntheticsNetworkAssertionLatency'
+ - $ref: '#/components/schemas/SyntheticsNetworkAssertionMultiNetworkHop'
+ - $ref: '#/components/schemas/SyntheticsNetworkAssertionPacketLossPercentage'
+ - $ref: '#/components/schemas/SyntheticsNetworkAssertionJitter'
+ SyntheticsNetworkAssertionJitter:
+ description: Jitter assertion for a Network Path test.
+ properties:
+ operator:
+ $ref: '#/components/schemas/SyntheticsNetworkAssertionOperator'
+ target:
+ description: Target value in milliseconds.
+ example: 5
+ format: double
+ type: number
+ type:
+ $ref: '#/components/schemas/SyntheticsNetworkAssertionJitterType'
+ required:
+ - operator
+ - target
+ - type
+ type: object
+ SyntheticsNetworkAssertionJitterType:
+ default: jitter
+ description: Type of the jitter assertion.
+ enum:
+ - jitter
+ example: jitter
+ type: string
+ x-enum-varnames:
+ - JITTER
+ SyntheticsNetworkAssertionLatency:
+ description: Network latency assertion for a Network Path test.
+ properties:
+ operator:
+ $ref: '#/components/schemas/SyntheticsNetworkAssertionOperator'
+ property:
+ $ref: '#/components/schemas/SyntheticsNetworkAssertionProperty'
+ target:
+ description: Target value in milliseconds.
+ example: 500
+ format: double
+ type: number
+ type:
+ $ref: '#/components/schemas/SyntheticsNetworkAssertionLatencyType'
+ required:
+ - operator
+ - property
+ - target
+ - type
+ type: object
+ SyntheticsNetworkAssertionLatencyType:
+ default: latency
+ description: Type of the latency assertion.
+ enum:
+ - latency
+ example: latency
+ type: string
+ x-enum-varnames:
+ - LATENCY
+ SyntheticsNetworkAssertionMultiNetworkHop:
+ description: Multi-network hop assertion for a Network Path test.
+ properties:
+ operator:
+ $ref: '#/components/schemas/SyntheticsNetworkAssertionOperator'
+ property:
+ $ref: '#/components/schemas/SyntheticsNetworkAssertionProperty'
+ target:
+ description: Target value in number of hops.
+ example: 3
+ format: double
+ type: number
+ type:
+ $ref: '#/components/schemas/SyntheticsNetworkAssertionMultiNetworkHopType'
+ required:
+ - operator
+ - property
+ - target
+ - type
+ type: object
+ SyntheticsNetworkAssertionMultiNetworkHopType:
+ default: multiNetworkHop
+ description: Type of the multi-network hop assertion.
+ enum:
+ - multiNetworkHop
+ example: multiNetworkHop
+ type: string
+ x-enum-varnames:
+ - MULTI_NETWORK_HOP
+ SyntheticsNetworkAssertionOperator:
+ description: Assertion operator to apply.
+ enum:
+ - is
+ - isNot
+ - lessThan
+ - lessThanOrEqual
+ - moreThan
+ - moreThanOrEqual
+ example: lessThan
+ type: string
+ x-enum-varnames:
+ - IS
+ - IS_NOT
+ - LESS_THAN
+ - LESS_THAN_OR_EQUAL
+ - MORE_THAN
+ - MORE_THAN_OR_EQUAL
+ SyntheticsNetworkAssertionPacketLossPercentage:
+ description: Packet loss percentage assertion for a Network Path test.
+ properties:
+ operator:
+ $ref: '#/components/schemas/SyntheticsNetworkAssertionOperator'
+ target:
+ description: Target value as a percentage (0 to 1).
+ example: 0.05
+ format: double
+ maximum: 1
+ minimum: 0
+ type: number
+ type:
+ $ref: '#/components/schemas/SyntheticsNetworkAssertionPacketLossPercentageType'
+ required:
+ - operator
+ - target
+ - type
+ type: object
+ SyntheticsNetworkAssertionPacketLossPercentageType:
+ default: packetLossPercentage
+ description: Type of the packet loss percentage assertion.
+ enum:
+ - packetLossPercentage
+ example: packetLossPercentage
+ type: string
+ x-enum-varnames:
+ - PACKET_LOSS_PERCENTAGE
+ SyntheticsNetworkAssertionProperty:
+ description: The associated assertion property.
+ enum:
+ - avg
+ - max
+ - min
+ example: avg
+ type: string
+ x-enum-varnames:
+ - AVG
+ - MAX
+ - MIN
+ SyntheticsNetworkTest:
+ description: Object containing details about a Network Path test.
+ properties:
+ config:
+ $ref: '#/components/schemas/SyntheticsNetworkTestConfig'
+ locations:
+ description: 'Array of locations used to run the test. Network Path tests
+ can be run from managed locations to test public endpoints,
+
+ or from a [Datadog Agent](https://docs.datadoghq.com/synthetics/network_path_tests/#agent-configuration)
+ to test private environments.'
+ example:
+ - aws:us-east-1
+ - agent:my-agent-name
+ items:
+ description: A location from which the test was run.
+ type: string
+ type: array
+ message:
+ description: Notification message associated with the test.
+ example: Network Path test notification
+ type: string
+ monitor_id:
+ description: The associated monitor ID.
+ example: 12345678
+ format: int64
+ readOnly: true
+ type: integer
+ name:
+ description: Name of the test.
+ example: Example Network Path test
+ type: string
+ options:
+ $ref: '#/components/schemas/SyntheticsTestOptions'
+ public_id:
+ description: The public ID for the test.
+ example: abc-def-123
+ readOnly: true
+ type: string
+ status:
+ $ref: '#/components/schemas/SyntheticsTestPauseStatus'
+ subtype:
+ $ref: '#/components/schemas/SyntheticsNetworkTestSubType'
+ tags:
+ description: Array of tags attached to the test.
+ example:
+ - env:production
+ items:
+ description: A tag attached to the test.
+ type: string
+ type: array
+ type:
+ $ref: '#/components/schemas/SyntheticsNetworkTestType'
+ required:
+ - name
+ - config
+ - locations
+ - options
+ - type
+ - message
+ type: object
+ SyntheticsNetworkTestConfig:
+ description: Configuration object for a Network Path test.
+ properties:
+ assertions:
+ default: []
+ description: Array of assertions used for the test.
+ example:
+ - operator: lessThan
+ property: avg
+ target: 500
+ type: latency
+ items:
+ $ref: '#/components/schemas/SyntheticsNetworkAssertion'
+ type: array
+ request:
+ $ref: '#/components/schemas/SyntheticsNetworkTestRequest'
+ type: object
+ SyntheticsNetworkTestEdit:
+ properties:
+ attributes:
+ $ref: '#/components/schemas/SyntheticsNetworkTest'
+ type:
+ $ref: '#/components/schemas/SyntheticsNetworkTestType'
+ required:
+ - attributes
+ - type
+ type: object
+ SyntheticsNetworkTestEditRequest:
+ description: Network Path test request
+ properties:
+ data:
+ $ref: '#/components/schemas/SyntheticsNetworkTestEdit'
+ required:
+ - data
+ type: object
+ SyntheticsNetworkTestRequest:
+ description: Object describing the request for a Network Path test.
+ properties:
+ destination_service:
+ description: Destination service name.
+ type: string
+ e2e_queries:
+ description: Number of end-to-end queries.
+ example: 50
+ format: int64
+ type: integer
+ host:
+ description: Host name to query.
+ example: ''
+ type: string
+ max_ttl:
+ description: Maximum TTL for network packets.
+ example: 30
+ format: int64
+ type: integer
+ port:
+ description: 'For TCP or UDP tests, the port to use when performing the
+ test.
+
+ If not set on a UDP test, a random port will be assigned, which may affect
+ the results.'
+ example: 443
+ format: int64
+ type: integer
+ source_service:
+ description: Source service name.
+ type: string
+ tcp_method:
+ $ref: '#/components/schemas/SyntheticsNetworkTestRequestTCPMethod'
+ timeout:
+ description: Timeout in seconds.
+ format: int64
+ type: integer
+ traceroute_queries:
+ description: Number of traceroute queries.
+ example: 3
+ format: int64
+ type: integer
+ required:
+ - host
+ - max_ttl
+ - e2e_queries
+ - traceroute_queries
+ type: object
+ SyntheticsNetworkTestRequestTCPMethod:
+ description: For TCP tests, the TCP method to use.
+ enum:
+ - prefer_sack
+ - syn
+ - sack
+ example: prefer_sack
+ type: string
+ x-enum-varnames:
+ - PREFER_SACK
+ - SYN
+ - SACK
+ SyntheticsNetworkTestResponse:
+ description: Network Path test response
+ properties:
+ data:
+ $ref: '#/components/schemas/SyntheticsNetworkTestResponseData'
+ type: object
+ SyntheticsNetworkTestResponseData:
+ description: Network Path test response data
+ properties:
+ attributes:
+ $ref: '#/components/schemas/SyntheticsNetworkTest'
+ id:
+ description: The public ID of the Network Path test.
+ example: abc-def-123
+ readOnly: true
+ type: string
+ type:
+ $ref: '#/components/schemas/SyntheticsNetworkTestResponseType'
+ type: object
+ SyntheticsNetworkTestResponseType:
+ default: network_test
+ description: Type of response, `network_test`.
+ enum:
+ - network_test
+ example: network_test
+ type: string
+ x-enum-varnames:
+ - NETWORK_TEST
+ SyntheticsNetworkTestSubType:
+ description: The subtype of the Synthetic Network Path test, `tcp`, `udp`, or
+ `icmp`.
+ enum:
+ - tcp
+ - udp
+ - icmp
+ example: tcp
+ type: string
+ x-enum-varnames:
+ - TCP
+ - UDP
+ - ICMP
+ SyntheticsNetworkTestType:
+ default: network
+ description: Type of the Synthetic test, `network`.
+ enum:
+ - network
+ example: network
+ type: string
+ x-enum-varnames:
+ - NETWORK
SyntheticsRestrictedRoles:
deprecated: true
description: A list of role identifiers that can be pulled from the Roles API,
@@ -60376,6 +60804,163 @@ components:
type: string
x-enum-varnames:
- SUITES
+ SyntheticsTestOptions:
+ description: Object describing the extra options for a Synthetic test.
+ properties:
+ min_failure_duration:
+ description: Minimum amount of time in failure required to trigger an alert.
+ format: int64
+ type: integer
+ min_location_failed:
+ description: 'Minimum number of locations in failure required to trigger
+
+ an alert.'
+ format: int64
+ type: integer
+ monitor_name:
+ description: The monitor name is used for the alert title as well as for
+ all monitor dashboard widgets and SLOs.
+ type: string
+ monitor_options:
+ $ref: '#/components/schemas/SyntheticsTestOptionsMonitorOptions'
+ monitor_priority:
+ description: Integer from 1 (high) to 5 (low) indicating alert severity.
+ format: int32
+ maximum: 5
+ minimum: 1
+ type: integer
+ restricted_roles:
+ $ref: '#/components/schemas/SyntheticsRestrictedRoles'
+ retry:
+ $ref: '#/components/schemas/SyntheticsTestOptionsRetry'
+ scheduling:
+ $ref: '#/components/schemas/SyntheticsTestOptionsScheduling'
+ tick_every:
+ description: The frequency at which to run the Synthetic test (in seconds).
+ format: int64
+ maximum: 604800
+ minimum: 30
+ type: integer
+ type: object
+ SyntheticsTestOptionsMonitorOptions:
+ description: 'Object containing the options for a Synthetic test as a monitor
+
+ (for example, renotification).'
+ properties:
+ escalation_message:
+ description: Message to include in the escalation notification.
+ type: string
+ notification_preset_name:
+ $ref: '#/components/schemas/SyntheticsTestOptionsMonitorOptionsNotificationPresetName'
+ renotify_interval:
+ description: 'Time interval before renotifying if the test is still failing
+
+ (in minutes).'
+ format: int64
+ minimum: 0
+ type: integer
+ renotify_occurrences:
+ description: The number of times to renotify if the test is still failing.
+ format: int64
+ type: integer
+ type: object
+ SyntheticsTestOptionsMonitorOptionsNotificationPresetName:
+ description: The name of the preset for the notification for the monitor.
+ enum:
+ - show_all
+ - hide_all
+ - hide_query
+ - hide_handles
+ - hide_query_and_handles
+ - show_only_snapshot
+ - hide_handles_and_footer
+ type: string
+ x-enum-varnames:
+ - SHOW_ALL
+ - HIDE_ALL
+ - HIDE_QUERY
+ - HIDE_HANDLES
+ - HIDE_QUERY_AND_HANDLES
+ - SHOW_ONLY_SNAPSHOT
+ - HIDE_HANDLES_AND_FOOTER
+ SyntheticsTestOptionsRetry:
+ description: Object describing the retry strategy to apply to a Synthetic test.
+ properties:
+ count:
+ description: 'Number of times a test needs to be retried before marking
+ a
+
+ location as failed. Defaults to 0.'
+ format: int64
+ type: integer
+ interval:
+ description: 'Time interval between retries (in milliseconds). Defaults
+ to
+
+ 300ms.'
+ format: double
+ type: number
+ type: object
+ SyntheticsTestOptionsScheduling:
+ description: Object containing timeframes and timezone used for advanced scheduling.
+ properties:
+ timeframes:
+ description: Array containing objects describing the scheduling pattern
+ to apply to each day.
+ example:
+ - day: 1
+ from: 07:00
+ to: '16:00'
+ - day: 3
+ from: 07:00
+ to: '16:00'
+ items:
+ $ref: '#/components/schemas/SyntheticsTestOptionsSchedulingTimeframe'
+ type: array
+ timezone:
+ description: Timezone in which the timeframe is based.
+ example: America/New_York
+ type: string
+ required:
+ - timeframes
+ - timezone
+ type: object
+ SyntheticsTestOptionsSchedulingTimeframe:
+ description: Object describing a timeframe.
+ properties:
+ day:
+ description: Number representing the day of the week.
+ example: 1
+ format: int32
+ maximum: 7
+ minimum: 1
+ type: integer
+ from:
+ description: The hour of the day on which scheduling starts.
+ example: 07:00
+ type: string
+ to:
+ description: The hour of the day on which scheduling ends.
+ example: '16:00'
+ type: string
+ required:
+ - day
+ - from
+ - to
+ type: object
+ SyntheticsTestPauseStatus:
+ description: 'Define whether you want to start (`live`) or pause (`paused`)
+ a
+
+ Synthetic test.'
+ enum:
+ - live
+ - paused
+ example: live
+ type: string
+ x-enum-varnames:
+ - LIVE
+ - PAUSED
SyntheticsVariableParser:
description: Details of the parser to use for the global variable.
example:
@@ -96465,6 +97050,178 @@ paths:
operator: OR
permissions:
- synthetics_write
+ /api/v2/synthetics/tests/bulk-delete:
+ post:
+ operationId: DeleteSyntheticsTestsV2
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DeletedTestsRequestDeleteRequest'
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DeletedTestsResponse'
+ description: OK
+ '400':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/APIErrorResponse'
+ description: API error response.
+ '404':
+ 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 tests'
+ tags:
+ - Synthetics
+ x-permission:
+ operator: OR
+ permissions:
+ - synthetics_write
+ /api/v2/synthetics/tests/network:
+ post:
+ operationId: CreateSyntheticsNetworkTest
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SyntheticsNetworkTestEditRequest'
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SyntheticsNetworkTestResponse'
+ 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 Network Path test'
+ tags:
+ - Synthetics
+ x-permission:
+ operator: OR
+ permissions:
+ - synthetics_write
+ - synthetics_create_edit_trigger
+ /api/v2/synthetics/tests/network/{public_id}:
+ get:
+ operationId: GetSyntheticsNetworkTest
+ parameters:
+ - description: The public ID of the Network Path test to get details from.
+ in: path
+ name: public_id
+ required: true
+ schema:
+ type: string
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SyntheticsNetworkTestResponse'
+ description: OK
+ '400':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/APIErrorResponse'
+ description: API error response.
+ '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 Network Path test'
+ tags:
+ - Synthetics
+ x-permission:
+ operator: OR
+ permissions:
+ - synthetics_read
+ put:
+ operationId: UpdateSyntheticsNetworkTest
+ parameters:
+ - description: The public ID of the Network Path test to edit.
+ in: path
+ name: public_id
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SyntheticsNetworkTestEditRequest'
+ description: New Network Path test details to be saved.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SyntheticsNetworkTestResponse'
+ description: OK
+ '400':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/APIErrorResponse'
+ description: API error response.
+ '404':
+ 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 Network Path test'
+ tags:
+ - Synthetics
+ x-permission:
+ operator: OR
+ permissions:
+ - synthetics_write
+ - synthetics_create_edit_trigger
/api/v2/synthetics/variables/{variable_id}/jsonpatch:
patch:
description: 'Patch a global variable using JSON Patch (RFC 6902).
@@ -100748,12 +101505,24 @@ tags:
via Datadog's API. See the [Status Pages documentation](https://docs.datadoghq.com/incident_response/status_pages/)
for more information.
name: Status Pages
-- description: "Datadog Synthetics uses simulated user requests and browser rendering
- to help you ensure uptime,\nidentify regional issues, and track your application
- performance. Datadog Synthetics tests come in\ntwo different flavors, [API tests](https://docs.datadoghq.com/synthetics/api_tests/)\nand
- [browser tests](https://docs.datadoghq.com/synthetics/browser_tests). You can
- use Datadog\u2019s API to\nmanage both test types programmatically.\n\nFor more
- information about Synthetics, see the [Synthetics overview](https://docs.datadoghq.com/synthetics/)."
+- description: 'Synthetic tests allow you to observe how your systems and applications
+ are performing using simulated requests and actions from around the globe.
+
+ They come in different flavors:
+
+ [API tests](https://docs.datadoghq.com/synthetics/api_tests/),
+
+ [browser tests](https://docs.datadoghq.com/synthetics/browser_tests),
+
+ [Network Path tests](https://docs.datadoghq.com/synthetics/network_path_tests/)
+ and
+
+ [Mobile Application tests](https://docs.datadoghq.com/synthetics/mobile_app_testing).
+
+ You can use Datadog''s API to manage tests and test suites programmatically.
+
+
+ For more information, see the [Synthetic Monitoring documentation](https://docs.datadoghq.com/synthetics/).'
name: Synthetics
- description: View and manage teams within Datadog. See the [Teams page](https://docs.datadoghq.com/account_management/teams/)
for more information.
diff --git a/examples/v2/synthetics/CreateSyntheticsNetworkTest.java b/examples/v2/synthetics/CreateSyntheticsNetworkTest.java
new file mode 100644
index 00000000000..d358ddfd069
--- /dev/null
+++ b/examples/v2/synthetics/CreateSyntheticsNetworkTest.java
@@ -0,0 +1,81 @@
+// Synthetics: Create a Network Path test returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.SyntheticsApi;
+import com.datadog.api.client.v2.model.SyntheticsNetworkAssertion;
+import com.datadog.api.client.v2.model.SyntheticsNetworkAssertionLatency;
+import com.datadog.api.client.v2.model.SyntheticsNetworkAssertionLatencyType;
+import com.datadog.api.client.v2.model.SyntheticsNetworkAssertionOperator;
+import com.datadog.api.client.v2.model.SyntheticsNetworkAssertionProperty;
+import com.datadog.api.client.v2.model.SyntheticsNetworkTest;
+import com.datadog.api.client.v2.model.SyntheticsNetworkTestConfig;
+import com.datadog.api.client.v2.model.SyntheticsNetworkTestEdit;
+import com.datadog.api.client.v2.model.SyntheticsNetworkTestEditRequest;
+import com.datadog.api.client.v2.model.SyntheticsNetworkTestRequest;
+import com.datadog.api.client.v2.model.SyntheticsNetworkTestRequestTCPMethod;
+import com.datadog.api.client.v2.model.SyntheticsNetworkTestResponse;
+import com.datadog.api.client.v2.model.SyntheticsNetworkTestSubType;
+import com.datadog.api.client.v2.model.SyntheticsNetworkTestType;
+import com.datadog.api.client.v2.model.SyntheticsTestOptions;
+import com.datadog.api.client.v2.model.SyntheticsTestPauseStatus;
+import java.util.Arrays;
+import java.util.Collections;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ SyntheticsApi apiInstance = new SyntheticsApi(defaultClient);
+
+ SyntheticsNetworkTestEditRequest body =
+ new SyntheticsNetworkTestEditRequest()
+ .data(
+ new SyntheticsNetworkTestEdit()
+ .attributes(
+ new SyntheticsNetworkTest()
+ .config(
+ new SyntheticsNetworkTestConfig()
+ .assertions(
+ Collections.singletonList(
+ new SyntheticsNetworkAssertion(
+ new SyntheticsNetworkAssertionLatency()
+ .operator(
+ SyntheticsNetworkAssertionOperator
+ .LESS_THAN)
+ .property(
+ SyntheticsNetworkAssertionProperty.AVG)
+ .target(500.0)
+ .type(
+ SyntheticsNetworkAssertionLatencyType
+ .LATENCY))))
+ .request(
+ new SyntheticsNetworkTestRequest()
+ .host("example.com")
+ .port(443L)
+ .tcpMethod(
+ SyntheticsNetworkTestRequestTCPMethod.PREFER_SACK)
+ .maxTtl(30L)
+ .e2eQueries(50L)
+ .tracerouteQueries(3L)))
+ .locations(Arrays.asList("aws:us-east-1", "agent:my-agent-name"))
+ .message("Network Path test notification")
+ .name("Example Network Path test")
+ .options(new SyntheticsTestOptions().tickEvery(60L))
+ .status(SyntheticsTestPauseStatus.LIVE)
+ .subtype(SyntheticsNetworkTestSubType.TCP)
+ .tags(Collections.singletonList("env:production"))
+ .type(SyntheticsNetworkTestType.NETWORK))
+ .type(SyntheticsNetworkTestType.NETWORK));
+
+ try {
+ SyntheticsNetworkTestResponse result = apiInstance.createSyntheticsNetworkTest(body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling SyntheticsApi#createSyntheticsNetworkTest");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/examples/v2/synthetics/DeleteSyntheticsTestsV2.java b/examples/v2/synthetics/DeleteSyntheticsTestsV2.java
new file mode 100644
index 00000000000..78a25df95f3
--- /dev/null
+++ b/examples/v2/synthetics/DeleteSyntheticsTestsV2.java
@@ -0,0 +1,38 @@
+// Synthetics: Bulk delete tests returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.SyntheticsApi;
+import com.datadog.api.client.v2.model.DeletedTestsRequestDelete;
+import com.datadog.api.client.v2.model.DeletedTestsRequestDeleteAttributes;
+import com.datadog.api.client.v2.model.DeletedTestsRequestDeleteRequest;
+import com.datadog.api.client.v2.model.DeletedTestsRequestType;
+import com.datadog.api.client.v2.model.DeletedTestsResponse;
+import java.util.Collections;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ SyntheticsApi apiInstance = new SyntheticsApi(defaultClient);
+
+ DeletedTestsRequestDeleteRequest body =
+ new DeletedTestsRequestDeleteRequest()
+ .data(
+ new DeletedTestsRequestDelete()
+ .attributes(
+ new DeletedTestsRequestDeleteAttributes()
+ .publicIds(Collections.singletonList("")))
+ .type(DeletedTestsRequestType.DELETE_TESTS_REQUEST));
+
+ try {
+ DeletedTestsResponse result = apiInstance.deleteSyntheticsTestsV2(body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling SyntheticsApi#deleteSyntheticsTestsV2");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/examples/v2/synthetics/GetSyntheticsNetworkTest.java b/examples/v2/synthetics/GetSyntheticsNetworkTest.java
new file mode 100644
index 00000000000..f93b7e69764
--- /dev/null
+++ b/examples/v2/synthetics/GetSyntheticsNetworkTest.java
@@ -0,0 +1,24 @@
+// Synthetics: Get a Network Path test returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.SyntheticsApi;
+import com.datadog.api.client.v2.model.SyntheticsNetworkTestResponse;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ SyntheticsApi apiInstance = new SyntheticsApi(defaultClient);
+
+ try {
+ SyntheticsNetworkTestResponse result = apiInstance.getSyntheticsNetworkTest("amg-96x-tps");
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling SyntheticsApi#getSyntheticsNetworkTest");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/examples/v2/synthetics/UpdateSyntheticsNetworkTest.java b/examples/v2/synthetics/UpdateSyntheticsNetworkTest.java
new file mode 100644
index 00000000000..ba4500ca1f7
--- /dev/null
+++ b/examples/v2/synthetics/UpdateSyntheticsNetworkTest.java
@@ -0,0 +1,110 @@
+// Synthetics: Edit a Network Path test returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.SyntheticsApi;
+import com.datadog.api.client.v2.model.SyntheticsNetworkAssertion;
+import com.datadog.api.client.v2.model.SyntheticsNetworkAssertionLatency;
+import com.datadog.api.client.v2.model.SyntheticsNetworkAssertionLatencyType;
+import com.datadog.api.client.v2.model.SyntheticsNetworkAssertionOperator;
+import com.datadog.api.client.v2.model.SyntheticsNetworkAssertionProperty;
+import com.datadog.api.client.v2.model.SyntheticsNetworkTest;
+import com.datadog.api.client.v2.model.SyntheticsNetworkTestConfig;
+import com.datadog.api.client.v2.model.SyntheticsNetworkTestEdit;
+import com.datadog.api.client.v2.model.SyntheticsNetworkTestEditRequest;
+import com.datadog.api.client.v2.model.SyntheticsNetworkTestRequest;
+import com.datadog.api.client.v2.model.SyntheticsNetworkTestRequestTCPMethod;
+import com.datadog.api.client.v2.model.SyntheticsNetworkTestResponse;
+import com.datadog.api.client.v2.model.SyntheticsNetworkTestSubType;
+import com.datadog.api.client.v2.model.SyntheticsNetworkTestType;
+import com.datadog.api.client.v2.model.SyntheticsTestOptions;
+import com.datadog.api.client.v2.model.SyntheticsTestOptionsMonitorOptions;
+import com.datadog.api.client.v2.model.SyntheticsTestOptionsMonitorOptionsNotificationPresetName;
+import com.datadog.api.client.v2.model.SyntheticsTestOptionsRetry;
+import com.datadog.api.client.v2.model.SyntheticsTestOptionsScheduling;
+import com.datadog.api.client.v2.model.SyntheticsTestOptionsSchedulingTimeframe;
+import com.datadog.api.client.v2.model.SyntheticsTestPauseStatus;
+import java.util.Arrays;
+import java.util.Collections;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ SyntheticsApi apiInstance = new SyntheticsApi(defaultClient);
+
+ SyntheticsNetworkTestEditRequest body =
+ new SyntheticsNetworkTestEditRequest()
+ .data(
+ new SyntheticsNetworkTestEdit()
+ .attributes(
+ new SyntheticsNetworkTest()
+ .config(
+ new SyntheticsNetworkTestConfig()
+ .assertions(
+ Collections.singletonList(
+ new SyntheticsNetworkAssertion(
+ new SyntheticsNetworkAssertionLatency()
+ .operator(
+ SyntheticsNetworkAssertionOperator
+ .LESS_THAN)
+ .property(
+ SyntheticsNetworkAssertionProperty.AVG)
+ .target(500.0)
+ .type(
+ SyntheticsNetworkAssertionLatencyType
+ .LATENCY))))
+ .request(
+ new SyntheticsNetworkTestRequest()
+ .e2eQueries(50L)
+ .host("")
+ .maxTtl(30L)
+ .port(443L)
+ .tcpMethod(
+ SyntheticsNetworkTestRequestTCPMethod.PREFER_SACK)
+ .tracerouteQueries(3L)))
+ .locations(Arrays.asList("aws:us-east-1", "agent:my-agent-name"))
+ .message("Network Path test notification")
+ .name("Example Network Path test")
+ .options(
+ new SyntheticsTestOptions()
+ .monitorOptions(
+ new SyntheticsTestOptionsMonitorOptions()
+ .notificationPresetName(
+ SyntheticsTestOptionsMonitorOptionsNotificationPresetName
+ .SHOW_ALL))
+ .restrictedRoles(
+ Collections.singletonList(
+ "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"))
+ .retry(new SyntheticsTestOptionsRetry())
+ .scheduling(
+ new SyntheticsTestOptionsScheduling()
+ .timeframes(
+ Arrays.asList(
+ new SyntheticsTestOptionsSchedulingTimeframe()
+ .day(1)
+ .from("07:00")
+ .to("16:00"),
+ new SyntheticsTestOptionsSchedulingTimeframe()
+ .day(3)
+ .from("07:00")
+ .to("16:00")))
+ .timezone("America/New_York")))
+ .status(SyntheticsTestPauseStatus.LIVE)
+ .subtype(SyntheticsNetworkTestSubType.TCP)
+ .tags(Collections.singletonList("env:production"))
+ .type(SyntheticsNetworkTestType.NETWORK))
+ .type(SyntheticsNetworkTestType.NETWORK));
+
+ try {
+ SyntheticsNetworkTestResponse result =
+ apiInstance.updateSyntheticsNetworkTest("public_id", body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling SyntheticsApi#updateSyntheticsNetworkTest");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/api/SyntheticsApi.java b/src/main/java/com/datadog/api/client/v2/api/SyntheticsApi.java
index 78f8b4e8602..da99eb5b179 100644
--- a/src/main/java/com/datadog/api/client/v2/api/SyntheticsApi.java
+++ b/src/main/java/com/datadog/api/client/v2/api/SyntheticsApi.java
@@ -6,11 +6,15 @@
import com.datadog.api.client.Pair;
import com.datadog.api.client.v2.model.DeletedSuitesRequestDeleteRequest;
import com.datadog.api.client.v2.model.DeletedSuitesResponse;
+import com.datadog.api.client.v2.model.DeletedTestsRequestDeleteRequest;
+import com.datadog.api.client.v2.model.DeletedTestsResponse;
import com.datadog.api.client.v2.model.GlobalVariableJsonPatchRequest;
import com.datadog.api.client.v2.model.GlobalVariableResponse;
import com.datadog.api.client.v2.model.OnDemandConcurrencyCapAttributes;
import com.datadog.api.client.v2.model.OnDemandConcurrencyCapResponse;
import com.datadog.api.client.v2.model.SuiteCreateEditRequest;
+import com.datadog.api.client.v2.model.SyntheticsNetworkTestEditRequest;
+import com.datadog.api.client.v2.model.SyntheticsNetworkTestResponse;
import com.datadog.api.client.v2.model.SyntheticsSuiteResponse;
import com.datadog.api.client.v2.model.SyntheticsSuiteSearchResponse;
import jakarta.ws.rs.client.Invocation;
@@ -52,6 +56,139 @@ public void setApiClient(ApiClient apiClient) {
this.apiClient = apiClient;
}
+ /**
+ * Synthetics: Create a Network Path test.
+ *
+ *
See {@link #createSyntheticsNetworkTestWithHttpInfo}.
+ *
+ * @param body (required)
+ * @return SyntheticsNetworkTestResponse
+ * @throws ApiException if fails to make API call
+ */
+ public SyntheticsNetworkTestResponse createSyntheticsNetworkTest(
+ SyntheticsNetworkTestEditRequest body) throws ApiException {
+ return createSyntheticsNetworkTestWithHttpInfo(body).getData();
+ }
+
+ /**
+ * Synthetics: Create a Network Path test.
+ *
+ *
See {@link #createSyntheticsNetworkTestWithHttpInfoAsync}.
+ *
+ * @param body (required)
+ * @return CompletableFuture<SyntheticsNetworkTestResponse>
+ */
+ public CompletableFuture createSyntheticsNetworkTestAsync(
+ SyntheticsNetworkTestEditRequest body) {
+ return createSyntheticsNetworkTestWithHttpInfoAsync(body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * @param body (required)
+ * @return ApiResponse<SyntheticsNetworkTestResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | OK | - |
+ * | 400 | API error response. | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse createSyntheticsNetworkTestWithHttpInfo(
+ SyntheticsNetworkTestEditRequest body) throws ApiException {
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'body' when calling createSyntheticsNetworkTest");
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/synthetics/tests/network";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.SyntheticsApi.createSyntheticsNetworkTest",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ return apiClient.invokeAPI(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Synthetics: Create a Network Path test.
+ *
+ * See {@link #createSyntheticsNetworkTestWithHttpInfo}.
+ *
+ * @param body (required)
+ * @return CompletableFuture<ApiResponse<SyntheticsNetworkTestResponse>>
+ */
+ public CompletableFuture>
+ createSyntheticsNetworkTestWithHttpInfoAsync(SyntheticsNetworkTestEditRequest body) {
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ CompletableFuture> result =
+ new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'body' when calling createSyntheticsNetworkTest"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/synthetics/tests/network";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.SyntheticsApi.createSyntheticsNetworkTest",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ } catch (ApiException ex) {
+ CompletableFuture> result =
+ new CompletableFuture<>();
+ result.completeExceptionally(ex);
+ return result;
+ }
+ return apiClient.invokeAPIAsync(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
/**
* Synthetics: Create a test suite.
*
@@ -312,6 +449,137 @@ public ApiResponse deleteSyntheticsSuitesWithHttpInfo(
new GenericType() {});
}
+ /**
+ * Synthetics: Bulk delete tests.
+ *
+ * See {@link #deleteSyntheticsTestsV2WithHttpInfo}.
+ *
+ * @param body (required)
+ * @return DeletedTestsResponse
+ * @throws ApiException if fails to make API call
+ */
+ public DeletedTestsResponse deleteSyntheticsTestsV2(DeletedTestsRequestDeleteRequest body)
+ throws ApiException {
+ return deleteSyntheticsTestsV2WithHttpInfo(body).getData();
+ }
+
+ /**
+ * Synthetics: Bulk delete tests.
+ *
+ *
See {@link #deleteSyntheticsTestsV2WithHttpInfoAsync}.
+ *
+ * @param body (required)
+ * @return CompletableFuture<DeletedTestsResponse>
+ */
+ public CompletableFuture deleteSyntheticsTestsV2Async(
+ DeletedTestsRequestDeleteRequest body) {
+ return deleteSyntheticsTestsV2WithHttpInfoAsync(body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * @param body (required)
+ * @return ApiResponse<DeletedTestsResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | OK | - |
+ * | 400 | API error response. | - |
+ * | 404 | API error response. | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse deleteSyntheticsTestsV2WithHttpInfo(
+ DeletedTestsRequestDeleteRequest body) throws ApiException {
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'body' when calling deleteSyntheticsTestsV2");
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/synthetics/tests/bulk-delete";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.SyntheticsApi.deleteSyntheticsTestsV2",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ return apiClient.invokeAPI(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Synthetics: Bulk delete tests.
+ *
+ * See {@link #deleteSyntheticsTestsV2WithHttpInfo}.
+ *
+ * @param body (required)
+ * @return CompletableFuture<ApiResponse<DeletedTestsResponse>>
+ */
+ public CompletableFuture>
+ deleteSyntheticsTestsV2WithHttpInfoAsync(DeletedTestsRequestDeleteRequest body) {
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400, "Missing the required parameter 'body' when calling deleteSyntheticsTestsV2"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/synthetics/tests/bulk-delete";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.SyntheticsApi.deleteSyntheticsTestsV2",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ } catch (ApiException ex) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(ex);
+ return result;
+ }
+ return apiClient.invokeAPIAsync(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
/**
* Synthetics: Edit a test suite.
*
@@ -576,6 +844,144 @@ public ApiResponse getOnDemandConcurrencyCapWith
new GenericType() {});
}
+ /**
+ * Synthetics: Get a Network Path test.
+ *
+ * See {@link #getSyntheticsNetworkTestWithHttpInfo}.
+ *
+ * @param publicId The public ID of the Network Path test to get details from. (required)
+ * @return SyntheticsNetworkTestResponse
+ * @throws ApiException if fails to make API call
+ */
+ public SyntheticsNetworkTestResponse getSyntheticsNetworkTest(String publicId)
+ throws ApiException {
+ return getSyntheticsNetworkTestWithHttpInfo(publicId).getData();
+ }
+
+ /**
+ * Synthetics: Get a Network Path test.
+ *
+ *
See {@link #getSyntheticsNetworkTestWithHttpInfoAsync}.
+ *
+ * @param publicId The public ID of the Network Path test to get details from. (required)
+ * @return CompletableFuture<SyntheticsNetworkTestResponse>
+ */
+ public CompletableFuture getSyntheticsNetworkTestAsync(
+ String publicId) {
+ return getSyntheticsNetworkTestWithHttpInfoAsync(publicId)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * @param publicId The public ID of the Network Path test to get details from. (required)
+ * @return ApiResponse<SyntheticsNetworkTestResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | OK | - |
+ * | 400 | API error response. | - |
+ * | 404 | API error response. | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse getSyntheticsNetworkTestWithHttpInfo(
+ String publicId) throws ApiException {
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'publicId' is set
+ if (publicId == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'publicId' when calling getSyntheticsNetworkTest");
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/synthetics/tests/network/{public_id}"
+ .replaceAll("\\{" + "public_id" + "\\}", apiClient.escapeString(publicId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.SyntheticsApi.getSyntheticsNetworkTest",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ return apiClient.invokeAPI(
+ "GET",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Synthetics: Get a Network Path test.
+ *
+ * See {@link #getSyntheticsNetworkTestWithHttpInfo}.
+ *
+ * @param publicId The public ID of the Network Path test to get details from. (required)
+ * @return CompletableFuture<ApiResponse<SyntheticsNetworkTestResponse>>
+ */
+ public CompletableFuture>
+ getSyntheticsNetworkTestWithHttpInfoAsync(String publicId) {
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'publicId' is set
+ if (publicId == null) {
+ CompletableFuture> result =
+ new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'publicId' when calling getSyntheticsNetworkTest"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/synthetics/tests/network/{public_id}"
+ .replaceAll("\\{" + "public_id" + "\\}", apiClient.escapeString(publicId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.SyntheticsApi.getSyntheticsNetworkTest",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ } catch (ApiException ex) {
+ CompletableFuture> result =
+ new CompletableFuture<>();
+ result.completeExceptionally(ex);
+ return result;
+ }
+ return apiClient.invokeAPIAsync(
+ "GET",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
/**
* Synthetics: Get a suite.
*
@@ -1240,4 +1646,166 @@ public ApiResponse setOnDemandConcurrencyCapWith
false,
new GenericType() {});
}
+
+ /**
+ * Synthetics: Edit a Network Path test.
+ *
+ * See {@link #updateSyntheticsNetworkTestWithHttpInfo}.
+ *
+ * @param publicId The public ID of the Network Path test to edit. (required)
+ * @param body New Network Path test details to be saved. (required)
+ * @return SyntheticsNetworkTestResponse
+ * @throws ApiException if fails to make API call
+ */
+ public SyntheticsNetworkTestResponse updateSyntheticsNetworkTest(
+ String publicId, SyntheticsNetworkTestEditRequest body) throws ApiException {
+ return updateSyntheticsNetworkTestWithHttpInfo(publicId, body).getData();
+ }
+
+ /**
+ * Synthetics: Edit a Network Path test.
+ *
+ *
See {@link #updateSyntheticsNetworkTestWithHttpInfoAsync}.
+ *
+ * @param publicId The public ID of the Network Path test to edit. (required)
+ * @param body New Network Path test details to be saved. (required)
+ * @return CompletableFuture<SyntheticsNetworkTestResponse>
+ */
+ public CompletableFuture updateSyntheticsNetworkTestAsync(
+ String publicId, SyntheticsNetworkTestEditRequest body) {
+ return updateSyntheticsNetworkTestWithHttpInfoAsync(publicId, body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * @param publicId The public ID of the Network Path test to edit. (required)
+ * @param body New Network Path test details to be saved. (required)
+ * @return ApiResponse<SyntheticsNetworkTestResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | OK | - |
+ * | 400 | API error response. | - |
+ * | 404 | API error response. | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse updateSyntheticsNetworkTestWithHttpInfo(
+ String publicId, SyntheticsNetworkTestEditRequest body) throws ApiException {
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'publicId' is set
+ if (publicId == null) {
+ throw new ApiException(
+ 400,
+ "Missing the required parameter 'publicId' when calling updateSyntheticsNetworkTest");
+ }
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'body' when calling updateSyntheticsNetworkTest");
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/synthetics/tests/network/{public_id}"
+ .replaceAll("\\{" + "public_id" + "\\}", apiClient.escapeString(publicId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.SyntheticsApi.updateSyntheticsNetworkTest",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ return apiClient.invokeAPI(
+ "PUT",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Synthetics: Edit a Network Path test.
+ *
+ * See {@link #updateSyntheticsNetworkTestWithHttpInfo}.
+ *
+ * @param publicId The public ID of the Network Path test to edit. (required)
+ * @param body New Network Path test details to be saved. (required)
+ * @return CompletableFuture<ApiResponse<SyntheticsNetworkTestResponse>>
+ */
+ public CompletableFuture>
+ updateSyntheticsNetworkTestWithHttpInfoAsync(
+ String publicId, SyntheticsNetworkTestEditRequest body) {
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'publicId' is set
+ if (publicId == null) {
+ CompletableFuture> result =
+ new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'publicId' when calling"
+ + " updateSyntheticsNetworkTest"));
+ return result;
+ }
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ CompletableFuture> result =
+ new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'body' when calling updateSyntheticsNetworkTest"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/synthetics/tests/network/{public_id}"
+ .replaceAll("\\{" + "public_id" + "\\}", apiClient.escapeString(publicId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.SyntheticsApi.updateSyntheticsNetworkTest",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ } catch (ApiException ex) {
+ CompletableFuture> result =
+ new CompletableFuture<>();
+ result.completeExceptionally(ex);
+ return result;
+ }
+ return apiClient.invokeAPIAsync(
+ "PUT",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
}
diff --git a/src/main/java/com/datadog/api/client/v2/model/DeletedTestResponseData.java b/src/main/java/com/datadog/api/client/v2/model/DeletedTestResponseData.java
new file mode 100644
index 00000000000..5d8c0d6886c
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/DeletedTestResponseData.java
@@ -0,0 +1,196 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** */
+@JsonPropertyOrder({
+ DeletedTestResponseData.JSON_PROPERTY_ATTRIBUTES,
+ DeletedTestResponseData.JSON_PROPERTY_ID,
+ DeletedTestResponseData.JSON_PROPERTY_TYPE
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class DeletedTestResponseData {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ATTRIBUTES = "attributes";
+ private DeletedTestResponseDataAttributes attributes;
+
+ public static final String JSON_PROPERTY_ID = "id";
+ private String id;
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ private DeletedTestsResponseType type = DeletedTestsResponseType.DELETE_TESTS;
+
+ public DeletedTestResponseData attributes(DeletedTestResponseDataAttributes attributes) {
+ this.attributes = attributes;
+ this.unparsed |= attributes.unparsed;
+ return this;
+ }
+
+ /**
+ * Getattributes
+ *
+ * @return attributes
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ATTRIBUTES)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public DeletedTestResponseDataAttributes getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(DeletedTestResponseDataAttributes attributes) {
+ this.attributes = attributes;
+ }
+
+ public DeletedTestResponseData id(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Getid
+ *
+ * @return id
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public DeletedTestResponseData type(DeletedTestsResponseType type) {
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ return this;
+ }
+
+ /**
+ * Gettype
+ *
+ * @return type
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public DeletedTestsResponseType getType() {
+ return type;
+ }
+
+ public void setType(DeletedTestsResponseType type) {
+ if (!type.isValid()) {
+ this.unparsed = true;
+ }
+ this.type = type;
+ }
+
+ /**
+ * A container for additional, undeclared properties. This is a holder for any undeclared
+ * properties as specified with the 'additionalProperties' keyword in the OAS document.
+ */
+ private Map additionalProperties;
+
+ /**
+ * Set the additional (undeclared) property with the specified name and value. If the property
+ * does not already exist, create it otherwise replace it.
+ *
+ * @param key The arbitrary key to set
+ * @param value The associated value
+ * @return DeletedTestResponseData
+ */
+ @JsonAnySetter
+ public DeletedTestResponseData putAdditionalProperty(String key, Object value) {
+ if (this.additionalProperties == null) {
+ this.additionalProperties = new HashMap();
+ }
+ this.additionalProperties.put(key, value);
+ return this;
+ }
+
+ /**
+ * Return the additional (undeclared) property.
+ *
+ * @return The additional properties
+ */
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return additionalProperties;
+ }
+
+ /**
+ * Return the additional (undeclared) property with the specified name.
+ *
+ * @param key The arbitrary key to get
+ * @return The specific additional property for the given key
+ */
+ public Object getAdditionalProperty(String key) {
+ if (this.additionalProperties == null) {
+ return null;
+ }
+ return this.additionalProperties.get(key);
+ }
+
+ /** Return true if this DeletedTestResponseData object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ DeletedTestResponseData deletedTestResponseData = (DeletedTestResponseData) o;
+ return Objects.equals(this.attributes, deletedTestResponseData.attributes)
+ && Objects.equals(this.id, deletedTestResponseData.id)
+ && Objects.equals(this.type, deletedTestResponseData.type)
+ && Objects.equals(this.additionalProperties, deletedTestResponseData.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(attributes, id, type, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class DeletedTestResponseData {\n");
+ sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n");
+ sb.append(" id: ").append(toIndentedString(id)).append("\n");
+ sb.append(" type: ").append(toIndentedString(type)).append("\n");
+ sb.append(" additionalProperties: ")
+ .append(toIndentedString(additionalProperties))
+ .append("\n");
+ sb.append('}');
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/DeletedTestResponseDataAttributes.java b/src/main/java/com/datadog/api/client/v2/model/DeletedTestResponseDataAttributes.java
new file mode 100644
index 00000000000..79db6ca1bce
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/DeletedTestResponseDataAttributes.java
@@ -0,0 +1,166 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** */
+@JsonPropertyOrder({
+ DeletedTestResponseDataAttributes.JSON_PROPERTY_DELETED_AT,
+ DeletedTestResponseDataAttributes.JSON_PROPERTY_PUBLIC_ID
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class DeletedTestResponseDataAttributes {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_DELETED_AT = "deleted_at";
+ private String deletedAt;
+
+ public static final String JSON_PROPERTY_PUBLIC_ID = "public_id";
+ private String publicId;
+
+ public DeletedTestResponseDataAttributes deletedAt(String deletedAt) {
+ this.deletedAt = deletedAt;
+ return this;
+ }
+
+ /**
+ * Deletion timestamp of the Synthetic test ID.
+ *
+ * @return deletedAt
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_DELETED_AT)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getDeletedAt() {
+ return deletedAt;
+ }
+
+ public void setDeletedAt(String deletedAt) {
+ this.deletedAt = deletedAt;
+ }
+
+ public DeletedTestResponseDataAttributes publicId(String publicId) {
+ this.publicId = publicId;
+ return this;
+ }
+
+ /**
+ * The Synthetic test ID deleted.
+ *
+ * @return publicId
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_PUBLIC_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getPublicId() {
+ return publicId;
+ }
+
+ public void setPublicId(String publicId) {
+ this.publicId = publicId;
+ }
+
+ /**
+ * A container for additional, undeclared properties. This is a holder for any undeclared
+ * properties as specified with the 'additionalProperties' keyword in the OAS document.
+ */
+ private Map additionalProperties;
+
+ /**
+ * Set the additional (undeclared) property with the specified name and value. If the property
+ * does not already exist, create it otherwise replace it.
+ *
+ * @param key The arbitrary key to set
+ * @param value The associated value
+ * @return DeletedTestResponseDataAttributes
+ */
+ @JsonAnySetter
+ public DeletedTestResponseDataAttributes putAdditionalProperty(String key, Object value) {
+ if (this.additionalProperties == null) {
+ this.additionalProperties = new HashMap();
+ }
+ this.additionalProperties.put(key, value);
+ return this;
+ }
+
+ /**
+ * Return the additional (undeclared) property.
+ *
+ * @return The additional properties
+ */
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return additionalProperties;
+ }
+
+ /**
+ * Return the additional (undeclared) property with the specified name.
+ *
+ * @param key The arbitrary key to get
+ * @return The specific additional property for the given key
+ */
+ public Object getAdditionalProperty(String key) {
+ if (this.additionalProperties == null) {
+ return null;
+ }
+ return this.additionalProperties.get(key);
+ }
+
+ /** Return true if this DeletedTestResponseDataAttributes object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ DeletedTestResponseDataAttributes deletedTestResponseDataAttributes =
+ (DeletedTestResponseDataAttributes) o;
+ return Objects.equals(this.deletedAt, deletedTestResponseDataAttributes.deletedAt)
+ && Objects.equals(this.publicId, deletedTestResponseDataAttributes.publicId)
+ && Objects.equals(
+ this.additionalProperties, deletedTestResponseDataAttributes.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(deletedAt, publicId, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class DeletedTestResponseDataAttributes {\n");
+ sb.append(" deletedAt: ").append(toIndentedString(deletedAt)).append("\n");
+ sb.append(" publicId: ").append(toIndentedString(publicId)).append("\n");
+ sb.append(" additionalProperties: ")
+ .append(toIndentedString(additionalProperties))
+ .append("\n");
+ sb.append('}');
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/DeletedTestsRequestDelete.java b/src/main/java/com/datadog/api/client/v2/model/DeletedTestsRequestDelete.java
new file mode 100644
index 00000000000..c2a03251cde
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/DeletedTestsRequestDelete.java
@@ -0,0 +1,207 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** */
+@JsonPropertyOrder({
+ DeletedTestsRequestDelete.JSON_PROPERTY_ATTRIBUTES,
+ DeletedTestsRequestDelete.JSON_PROPERTY_ID,
+ DeletedTestsRequestDelete.JSON_PROPERTY_TYPE
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class DeletedTestsRequestDelete {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ATTRIBUTES = "attributes";
+ private DeletedTestsRequestDeleteAttributes attributes;
+
+ public static final String JSON_PROPERTY_ID = "id";
+ private String id;
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ private DeletedTestsRequestType type = DeletedTestsRequestType.DELETE_TESTS_REQUEST;
+
+ public DeletedTestsRequestDelete() {}
+
+ @JsonCreator
+ public DeletedTestsRequestDelete(
+ @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES)
+ DeletedTestsRequestDeleteAttributes attributes) {
+ this.attributes = attributes;
+ this.unparsed |= attributes.unparsed;
+ }
+
+ public DeletedTestsRequestDelete attributes(DeletedTestsRequestDeleteAttributes attributes) {
+ this.attributes = attributes;
+ this.unparsed |= attributes.unparsed;
+ return this;
+ }
+
+ /**
+ * Getattributes
+ *
+ * @return attributes
+ */
+ @JsonProperty(JSON_PROPERTY_ATTRIBUTES)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public DeletedTestsRequestDeleteAttributes getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(DeletedTestsRequestDeleteAttributes attributes) {
+ this.attributes = attributes;
+ }
+
+ public DeletedTestsRequestDelete id(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Getid
+ *
+ * @return id
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public DeletedTestsRequestDelete type(DeletedTestsRequestType type) {
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ return this;
+ }
+
+ /**
+ * Gettype
+ *
+ * @return type
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public DeletedTestsRequestType getType() {
+ return type;
+ }
+
+ public void setType(DeletedTestsRequestType type) {
+ if (!type.isValid()) {
+ this.unparsed = true;
+ }
+ this.type = type;
+ }
+
+ /**
+ * A container for additional, undeclared properties. This is a holder for any undeclared
+ * properties as specified with the 'additionalProperties' keyword in the OAS document.
+ */
+ private Map additionalProperties;
+
+ /**
+ * Set the additional (undeclared) property with the specified name and value. If the property
+ * does not already exist, create it otherwise replace it.
+ *
+ * @param key The arbitrary key to set
+ * @param value The associated value
+ * @return DeletedTestsRequestDelete
+ */
+ @JsonAnySetter
+ public DeletedTestsRequestDelete putAdditionalProperty(String key, Object value) {
+ if (this.additionalProperties == null) {
+ this.additionalProperties = new HashMap();
+ }
+ this.additionalProperties.put(key, value);
+ return this;
+ }
+
+ /**
+ * Return the additional (undeclared) property.
+ *
+ * @return The additional properties
+ */
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return additionalProperties;
+ }
+
+ /**
+ * Return the additional (undeclared) property with the specified name.
+ *
+ * @param key The arbitrary key to get
+ * @return The specific additional property for the given key
+ */
+ public Object getAdditionalProperty(String key) {
+ if (this.additionalProperties == null) {
+ return null;
+ }
+ return this.additionalProperties.get(key);
+ }
+
+ /** Return true if this DeletedTestsRequestDelete object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ DeletedTestsRequestDelete deletedTestsRequestDelete = (DeletedTestsRequestDelete) o;
+ return Objects.equals(this.attributes, deletedTestsRequestDelete.attributes)
+ && Objects.equals(this.id, deletedTestsRequestDelete.id)
+ && Objects.equals(this.type, deletedTestsRequestDelete.type)
+ && Objects.equals(
+ this.additionalProperties, deletedTestsRequestDelete.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(attributes, id, type, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class DeletedTestsRequestDelete {\n");
+ sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n");
+ sb.append(" id: ").append(toIndentedString(id)).append("\n");
+ sb.append(" type: ").append(toIndentedString(type)).append("\n");
+ sb.append(" additionalProperties: ")
+ .append(toIndentedString(additionalProperties))
+ .append("\n");
+ sb.append('}');
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/DeletedTestsRequestDeleteAttributes.java b/src/main/java/com/datadog/api/client/v2/model/DeletedTestsRequestDeleteAttributes.java
new file mode 100644
index 00000000000..2510aa9656b
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/DeletedTestsRequestDeleteAttributes.java
@@ -0,0 +1,186 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+/** */
+@JsonPropertyOrder({
+ DeletedTestsRequestDeleteAttributes.JSON_PROPERTY_FORCE_DELETE_DEPENDENCIES,
+ DeletedTestsRequestDeleteAttributes.JSON_PROPERTY_PUBLIC_IDS
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class DeletedTestsRequestDeleteAttributes {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_FORCE_DELETE_DEPENDENCIES = "force_delete_dependencies";
+ private Boolean forceDeleteDependencies;
+
+ public static final String JSON_PROPERTY_PUBLIC_IDS = "public_ids";
+ private List publicIds = new ArrayList<>();
+
+ public DeletedTestsRequestDeleteAttributes() {}
+
+ @JsonCreator
+ public DeletedTestsRequestDeleteAttributes(
+ @JsonProperty(required = true, value = JSON_PROPERTY_PUBLIC_IDS) List publicIds) {
+ this.publicIds = publicIds;
+ }
+
+ public DeletedTestsRequestDeleteAttributes forceDeleteDependencies(
+ Boolean forceDeleteDependencies) {
+ this.forceDeleteDependencies = forceDeleteDependencies;
+ return this;
+ }
+
+ /**
+ * GetforceDeleteDependencies
+ *
+ * @return forceDeleteDependencies
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_FORCE_DELETE_DEPENDENCIES)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Boolean getForceDeleteDependencies() {
+ return forceDeleteDependencies;
+ }
+
+ public void setForceDeleteDependencies(Boolean forceDeleteDependencies) {
+ this.forceDeleteDependencies = forceDeleteDependencies;
+ }
+
+ public DeletedTestsRequestDeleteAttributes publicIds(List publicIds) {
+ this.publicIds = publicIds;
+ return this;
+ }
+
+ public DeletedTestsRequestDeleteAttributes addPublicIdsItem(String publicIdsItem) {
+ this.publicIds.add(publicIdsItem);
+ return this;
+ }
+
+ /**
+ * GetpublicIds
+ *
+ * @return publicIds
+ */
+ @JsonProperty(JSON_PROPERTY_PUBLIC_IDS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public List getPublicIds() {
+ return publicIds;
+ }
+
+ public void setPublicIds(List publicIds) {
+ this.publicIds = publicIds;
+ }
+
+ /**
+ * A container for additional, undeclared properties. This is a holder for any undeclared
+ * properties as specified with the 'additionalProperties' keyword in the OAS document.
+ */
+ private Map additionalProperties;
+
+ /**
+ * Set the additional (undeclared) property with the specified name and value. If the property
+ * does not already exist, create it otherwise replace it.
+ *
+ * @param key The arbitrary key to set
+ * @param value The associated value
+ * @return DeletedTestsRequestDeleteAttributes
+ */
+ @JsonAnySetter
+ public DeletedTestsRequestDeleteAttributes putAdditionalProperty(String key, Object value) {
+ if (this.additionalProperties == null) {
+ this.additionalProperties = new HashMap();
+ }
+ this.additionalProperties.put(key, value);
+ return this;
+ }
+
+ /**
+ * Return the additional (undeclared) property.
+ *
+ * @return The additional properties
+ */
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return additionalProperties;
+ }
+
+ /**
+ * Return the additional (undeclared) property with the specified name.
+ *
+ * @param key The arbitrary key to get
+ * @return The specific additional property for the given key
+ */
+ public Object getAdditionalProperty(String key) {
+ if (this.additionalProperties == null) {
+ return null;
+ }
+ return this.additionalProperties.get(key);
+ }
+
+ /** Return true if this DeletedTestsRequestDeleteAttributes object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ DeletedTestsRequestDeleteAttributes deletedTestsRequestDeleteAttributes =
+ (DeletedTestsRequestDeleteAttributes) o;
+ return Objects.equals(
+ this.forceDeleteDependencies,
+ deletedTestsRequestDeleteAttributes.forceDeleteDependencies)
+ && Objects.equals(this.publicIds, deletedTestsRequestDeleteAttributes.publicIds)
+ && Objects.equals(
+ this.additionalProperties, deletedTestsRequestDeleteAttributes.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(forceDeleteDependencies, publicIds, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class DeletedTestsRequestDeleteAttributes {\n");
+ sb.append(" forceDeleteDependencies: ")
+ .append(toIndentedString(forceDeleteDependencies))
+ .append("\n");
+ sb.append(" publicIds: ").append(toIndentedString(publicIds)).append("\n");
+ sb.append(" additionalProperties: ")
+ .append(toIndentedString(additionalProperties))
+ .append("\n");
+ sb.append('}');
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/DeletedTestsRequestDeleteRequest.java b/src/main/java/com/datadog/api/client/v2/model/DeletedTestsRequestDeleteRequest.java
new file mode 100644
index 00000000000..7ee79a93376
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/DeletedTestsRequestDeleteRequest.java
@@ -0,0 +1,147 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** */
+@JsonPropertyOrder({DeletedTestsRequestDeleteRequest.JSON_PROPERTY_DATA})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class DeletedTestsRequestDeleteRequest {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_DATA = "data";
+ private DeletedTestsRequestDelete data;
+
+ public DeletedTestsRequestDeleteRequest() {}
+
+ @JsonCreator
+ public DeletedTestsRequestDeleteRequest(
+ @JsonProperty(required = true, value = JSON_PROPERTY_DATA) DeletedTestsRequestDelete data) {
+ this.data = data;
+ this.unparsed |= data.unparsed;
+ }
+
+ public DeletedTestsRequestDeleteRequest data(DeletedTestsRequestDelete data) {
+ this.data = data;
+ this.unparsed |= data.unparsed;
+ return this;
+ }
+
+ /**
+ * Getdata
+ *
+ * @return data
+ */
+ @JsonProperty(JSON_PROPERTY_DATA)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public DeletedTestsRequestDelete getData() {
+ return data;
+ }
+
+ public void setData(DeletedTestsRequestDelete data) {
+ this.data = data;
+ }
+
+ /**
+ * A container for additional, undeclared properties. This is a holder for any undeclared
+ * properties as specified with the 'additionalProperties' keyword in the OAS document.
+ */
+ private Map additionalProperties;
+
+ /**
+ * Set the additional (undeclared) property with the specified name and value. If the property
+ * does not already exist, create it otherwise replace it.
+ *
+ * @param key The arbitrary key to set
+ * @param value The associated value
+ * @return DeletedTestsRequestDeleteRequest
+ */
+ @JsonAnySetter
+ public DeletedTestsRequestDeleteRequest putAdditionalProperty(String key, Object value) {
+ if (this.additionalProperties == null) {
+ this.additionalProperties = new HashMap();
+ }
+ this.additionalProperties.put(key, value);
+ return this;
+ }
+
+ /**
+ * Return the additional (undeclared) property.
+ *
+ * @return The additional properties
+ */
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return additionalProperties;
+ }
+
+ /**
+ * Return the additional (undeclared) property with the specified name.
+ *
+ * @param key The arbitrary key to get
+ * @return The specific additional property for the given key
+ */
+ public Object getAdditionalProperty(String key) {
+ if (this.additionalProperties == null) {
+ return null;
+ }
+ return this.additionalProperties.get(key);
+ }
+
+ /** Return true if this DeletedTestsRequestDeleteRequest object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ DeletedTestsRequestDeleteRequest deletedTestsRequestDeleteRequest =
+ (DeletedTestsRequestDeleteRequest) o;
+ return Objects.equals(this.data, deletedTestsRequestDeleteRequest.data)
+ && Objects.equals(
+ this.additionalProperties, deletedTestsRequestDeleteRequest.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(data, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class DeletedTestsRequestDeleteRequest {\n");
+ sb.append(" data: ").append(toIndentedString(data)).append("\n");
+ sb.append(" additionalProperties: ")
+ .append(toIndentedString(additionalProperties))
+ .append("\n");
+ sb.append('}');
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/DeletedTestsRequestType.java b/src/main/java/com/datadog/api/client/v2/model/DeletedTestsRequestType.java
new file mode 100644
index 00000000000..829d73564a0
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/DeletedTestsRequestType.java
@@ -0,0 +1,57 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.datadog.api.client.ModelEnum;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.SerializerProvider;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.StdSerializer;
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+/** */
+@JsonSerialize(using = DeletedTestsRequestType.DeletedTestsRequestTypeSerializer.class)
+public class DeletedTestsRequestType extends ModelEnum {
+
+ private static final Set allowedValues =
+ new HashSet(Arrays.asList("delete_tests_request"));
+
+ public static final DeletedTestsRequestType DELETE_TESTS_REQUEST =
+ new DeletedTestsRequestType("delete_tests_request");
+
+ DeletedTestsRequestType(String value) {
+ super(value, allowedValues);
+ }
+
+ public static class DeletedTestsRequestTypeSerializer
+ extends StdSerializer {
+ public DeletedTestsRequestTypeSerializer(Class t) {
+ super(t);
+ }
+
+ public DeletedTestsRequestTypeSerializer() {
+ this(null);
+ }
+
+ @Override
+ public void serialize(
+ DeletedTestsRequestType value, JsonGenerator jgen, SerializerProvider provider)
+ throws IOException, JsonProcessingException {
+ jgen.writeObject(value.value);
+ }
+ }
+
+ @JsonCreator
+ public static DeletedTestsRequestType fromValue(String value) {
+ return new DeletedTestsRequestType(value);
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/DeletedTestsResponse.java b/src/main/java/com/datadog/api/client/v2/model/DeletedTestsResponse.java
new file mode 100644
index 00000000000..191efcbde81
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/DeletedTestsResponse.java
@@ -0,0 +1,149 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+/** */
+@JsonPropertyOrder({DeletedTestsResponse.JSON_PROPERTY_DATA})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class DeletedTestsResponse {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_DATA = "data";
+ private List data = null;
+
+ public DeletedTestsResponse data(List data) {
+ this.data = data;
+ for (DeletedTestResponseData item : data) {
+ this.unparsed |= item.unparsed;
+ }
+ return this;
+ }
+
+ public DeletedTestsResponse addDataItem(DeletedTestResponseData dataItem) {
+ if (this.data == null) {
+ this.data = new ArrayList<>();
+ }
+ this.data.add(dataItem);
+ this.unparsed |= dataItem.unparsed;
+ return this;
+ }
+
+ /**
+ * Getdata
+ *
+ * @return data
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_DATA)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ /**
+ * A container for additional, undeclared properties. This is a holder for any undeclared
+ * properties as specified with the 'additionalProperties' keyword in the OAS document.
+ */
+ private Map additionalProperties;
+
+ /**
+ * Set the additional (undeclared) property with the specified name and value. If the property
+ * does not already exist, create it otherwise replace it.
+ *
+ * @param key The arbitrary key to set
+ * @param value The associated value
+ * @return DeletedTestsResponse
+ */
+ @JsonAnySetter
+ public DeletedTestsResponse putAdditionalProperty(String key, Object value) {
+ if (this.additionalProperties == null) {
+ this.additionalProperties = new HashMap();
+ }
+ this.additionalProperties.put(key, value);
+ return this;
+ }
+
+ /**
+ * Return the additional (undeclared) property.
+ *
+ * @return The additional properties
+ */
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return additionalProperties;
+ }
+
+ /**
+ * Return the additional (undeclared) property with the specified name.
+ *
+ * @param key The arbitrary key to get
+ * @return The specific additional property for the given key
+ */
+ public Object getAdditionalProperty(String key) {
+ if (this.additionalProperties == null) {
+ return null;
+ }
+ return this.additionalProperties.get(key);
+ }
+
+ /** Return true if this DeletedTestsResponse object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ DeletedTestsResponse deletedTestsResponse = (DeletedTestsResponse) o;
+ return Objects.equals(this.data, deletedTestsResponse.data)
+ && Objects.equals(this.additionalProperties, deletedTestsResponse.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(data, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class DeletedTestsResponse {\n");
+ sb.append(" data: ").append(toIndentedString(data)).append("\n");
+ sb.append(" additionalProperties: ")
+ .append(toIndentedString(additionalProperties))
+ .append("\n");
+ sb.append('}');
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/DeletedTestsResponseType.java b/src/main/java/com/datadog/api/client/v2/model/DeletedTestsResponseType.java
new file mode 100644
index 00000000000..abf29508261
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/DeletedTestsResponseType.java
@@ -0,0 +1,57 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.datadog.api.client.ModelEnum;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.SerializerProvider;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.StdSerializer;
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+/** */
+@JsonSerialize(using = DeletedTestsResponseType.DeletedTestsResponseTypeSerializer.class)
+public class DeletedTestsResponseType extends ModelEnum {
+
+ private static final Set allowedValues =
+ new HashSet(Arrays.asList("delete_tests"));
+
+ public static final DeletedTestsResponseType DELETE_TESTS =
+ new DeletedTestsResponseType("delete_tests");
+
+ DeletedTestsResponseType(String value) {
+ super(value, allowedValues);
+ }
+
+ public static class DeletedTestsResponseTypeSerializer
+ extends StdSerializer {
+ public DeletedTestsResponseTypeSerializer(Class t) {
+ super(t);
+ }
+
+ public DeletedTestsResponseTypeSerializer() {
+ this(null);
+ }
+
+ @Override
+ public void serialize(
+ DeletedTestsResponseType value, JsonGenerator jgen, SerializerProvider provider)
+ throws IOException, JsonProcessingException {
+ jgen.writeObject(value.value);
+ }
+ }
+
+ @JsonCreator
+ public static DeletedTestsResponseType fromValue(String value) {
+ return new DeletedTestsResponseType(value);
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/SyntheticsNetworkAssertion.java b/src/main/java/com/datadog/api/client/v2/model/SyntheticsNetworkAssertion.java
new file mode 100644
index 00000000000..a2b78111723
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/SyntheticsNetworkAssertion.java
@@ -0,0 +1,454 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.datadog.api.client.AbstractOpenApiSchema;
+import com.datadog.api.client.JSON;
+import com.datadog.api.client.UnparsedObject;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.MapperFeature;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializerProvider;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
+import com.fasterxml.jackson.databind.ser.std.StdSerializer;
+import jakarta.ws.rs.core.GenericType;
+import java.io.IOException;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+@JsonDeserialize(using = SyntheticsNetworkAssertion.SyntheticsNetworkAssertionDeserializer.class)
+@JsonSerialize(using = SyntheticsNetworkAssertion.SyntheticsNetworkAssertionSerializer.class)
+public class SyntheticsNetworkAssertion extends AbstractOpenApiSchema {
+ private static final Logger log = Logger.getLogger(SyntheticsNetworkAssertion.class.getName());
+
+ @JsonIgnore public boolean unparsed = false;
+
+ public static class SyntheticsNetworkAssertionSerializer
+ extends StdSerializer {
+ public SyntheticsNetworkAssertionSerializer(Class t) {
+ super(t);
+ }
+
+ public SyntheticsNetworkAssertionSerializer() {
+ this(null);
+ }
+
+ @Override
+ public void serialize(
+ SyntheticsNetworkAssertion value, JsonGenerator jgen, SerializerProvider provider)
+ throws IOException, JsonProcessingException {
+ jgen.writeObject(value.getActualInstance());
+ }
+ }
+
+ public static class SyntheticsNetworkAssertionDeserializer
+ extends StdDeserializer {
+ public SyntheticsNetworkAssertionDeserializer() {
+ this(SyntheticsNetworkAssertion.class);
+ }
+
+ public SyntheticsNetworkAssertionDeserializer(Class> vc) {
+ super(vc);
+ }
+
+ @Override
+ public SyntheticsNetworkAssertion deserialize(JsonParser jp, DeserializationContext ctxt)
+ throws IOException, JsonProcessingException {
+ JsonNode tree = jp.readValueAsTree();
+ Object deserialized = null;
+ Object tmp = null;
+ boolean typeCoercion = ctxt.isEnabled(MapperFeature.ALLOW_COERCION_OF_SCALARS);
+ int match = 0;
+ JsonToken token = tree.traverse(jp.getCodec()).nextToken();
+ // deserialize SyntheticsNetworkAssertionLatency
+ try {
+ boolean attemptParsing = true;
+ // ensure that we respect type coercion as set on the client ObjectMapper
+ if (SyntheticsNetworkAssertionLatency.class.equals(Integer.class)
+ || SyntheticsNetworkAssertionLatency.class.equals(Long.class)
+ || SyntheticsNetworkAssertionLatency.class.equals(Float.class)
+ || SyntheticsNetworkAssertionLatency.class.equals(Double.class)
+ || SyntheticsNetworkAssertionLatency.class.equals(Boolean.class)
+ || SyntheticsNetworkAssertionLatency.class.equals(String.class)) {
+ attemptParsing = typeCoercion;
+ if (!attemptParsing) {
+ attemptParsing |=
+ ((SyntheticsNetworkAssertionLatency.class.equals(Integer.class)
+ || SyntheticsNetworkAssertionLatency.class.equals(Long.class))
+ && token == JsonToken.VALUE_NUMBER_INT);
+ attemptParsing |=
+ ((SyntheticsNetworkAssertionLatency.class.equals(Float.class)
+ || SyntheticsNetworkAssertionLatency.class.equals(Double.class))
+ && (token == JsonToken.VALUE_NUMBER_FLOAT
+ || token == JsonToken.VALUE_NUMBER_INT));
+ attemptParsing |=
+ (SyntheticsNetworkAssertionLatency.class.equals(Boolean.class)
+ && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE));
+ attemptParsing |=
+ (SyntheticsNetworkAssertionLatency.class.equals(String.class)
+ && token == JsonToken.VALUE_STRING);
+ }
+ }
+ if (attemptParsing) {
+ tmp = tree.traverse(jp.getCodec()).readValueAs(SyntheticsNetworkAssertionLatency.class);
+ // TODO: there is no validation against JSON schema constraints
+ // (min, max, enum, pattern...), this does not perform a strict JSON
+ // validation, which means the 'match' count may be higher than it should be.
+ if (!((SyntheticsNetworkAssertionLatency) tmp).unparsed) {
+ deserialized = tmp;
+ match++;
+ }
+ log.log(Level.FINER, "Input data matches schema 'SyntheticsNetworkAssertionLatency'");
+ }
+ } catch (Exception e) {
+ // deserialization failed, continue
+ log.log(
+ Level.FINER, "Input data does not match schema 'SyntheticsNetworkAssertionLatency'", e);
+ }
+
+ // deserialize SyntheticsNetworkAssertionMultiNetworkHop
+ try {
+ boolean attemptParsing = true;
+ // ensure that we respect type coercion as set on the client ObjectMapper
+ if (SyntheticsNetworkAssertionMultiNetworkHop.class.equals(Integer.class)
+ || SyntheticsNetworkAssertionMultiNetworkHop.class.equals(Long.class)
+ || SyntheticsNetworkAssertionMultiNetworkHop.class.equals(Float.class)
+ || SyntheticsNetworkAssertionMultiNetworkHop.class.equals(Double.class)
+ || SyntheticsNetworkAssertionMultiNetworkHop.class.equals(Boolean.class)
+ || SyntheticsNetworkAssertionMultiNetworkHop.class.equals(String.class)) {
+ attemptParsing = typeCoercion;
+ if (!attemptParsing) {
+ attemptParsing |=
+ ((SyntheticsNetworkAssertionMultiNetworkHop.class.equals(Integer.class)
+ || SyntheticsNetworkAssertionMultiNetworkHop.class.equals(Long.class))
+ && token == JsonToken.VALUE_NUMBER_INT);
+ attemptParsing |=
+ ((SyntheticsNetworkAssertionMultiNetworkHop.class.equals(Float.class)
+ || SyntheticsNetworkAssertionMultiNetworkHop.class.equals(Double.class))
+ && (token == JsonToken.VALUE_NUMBER_FLOAT
+ || token == JsonToken.VALUE_NUMBER_INT));
+ attemptParsing |=
+ (SyntheticsNetworkAssertionMultiNetworkHop.class.equals(Boolean.class)
+ && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE));
+ attemptParsing |=
+ (SyntheticsNetworkAssertionMultiNetworkHop.class.equals(String.class)
+ && token == JsonToken.VALUE_STRING);
+ }
+ }
+ if (attemptParsing) {
+ tmp =
+ tree.traverse(jp.getCodec())
+ .readValueAs(SyntheticsNetworkAssertionMultiNetworkHop.class);
+ // TODO: there is no validation against JSON schema constraints
+ // (min, max, enum, pattern...), this does not perform a strict JSON
+ // validation, which means the 'match' count may be higher than it should be.
+ if (!((SyntheticsNetworkAssertionMultiNetworkHop) tmp).unparsed) {
+ deserialized = tmp;
+ match++;
+ }
+ log.log(
+ Level.FINER, "Input data matches schema 'SyntheticsNetworkAssertionMultiNetworkHop'");
+ }
+ } catch (Exception e) {
+ // deserialization failed, continue
+ log.log(
+ Level.FINER,
+ "Input data does not match schema 'SyntheticsNetworkAssertionMultiNetworkHop'",
+ e);
+ }
+
+ // deserialize SyntheticsNetworkAssertionPacketLossPercentage
+ try {
+ boolean attemptParsing = true;
+ // ensure that we respect type coercion as set on the client ObjectMapper
+ if (SyntheticsNetworkAssertionPacketLossPercentage.class.equals(Integer.class)
+ || SyntheticsNetworkAssertionPacketLossPercentage.class.equals(Long.class)
+ || SyntheticsNetworkAssertionPacketLossPercentage.class.equals(Float.class)
+ || SyntheticsNetworkAssertionPacketLossPercentage.class.equals(Double.class)
+ || SyntheticsNetworkAssertionPacketLossPercentage.class.equals(Boolean.class)
+ || SyntheticsNetworkAssertionPacketLossPercentage.class.equals(String.class)) {
+ attemptParsing = typeCoercion;
+ if (!attemptParsing) {
+ attemptParsing |=
+ ((SyntheticsNetworkAssertionPacketLossPercentage.class.equals(Integer.class)
+ || SyntheticsNetworkAssertionPacketLossPercentage.class.equals(Long.class))
+ && token == JsonToken.VALUE_NUMBER_INT);
+ attemptParsing |=
+ ((SyntheticsNetworkAssertionPacketLossPercentage.class.equals(Float.class)
+ || SyntheticsNetworkAssertionPacketLossPercentage.class.equals(
+ Double.class))
+ && (token == JsonToken.VALUE_NUMBER_FLOAT
+ || token == JsonToken.VALUE_NUMBER_INT));
+ attemptParsing |=
+ (SyntheticsNetworkAssertionPacketLossPercentage.class.equals(Boolean.class)
+ && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE));
+ attemptParsing |=
+ (SyntheticsNetworkAssertionPacketLossPercentage.class.equals(String.class)
+ && token == JsonToken.VALUE_STRING);
+ }
+ }
+ if (attemptParsing) {
+ tmp =
+ tree.traverse(jp.getCodec())
+ .readValueAs(SyntheticsNetworkAssertionPacketLossPercentage.class);
+ // TODO: there is no validation against JSON schema constraints
+ // (min, max, enum, pattern...), this does not perform a strict JSON
+ // validation, which means the 'match' count may be higher than it should be.
+ if (!((SyntheticsNetworkAssertionPacketLossPercentage) tmp).unparsed) {
+ deserialized = tmp;
+ match++;
+ }
+ log.log(
+ Level.FINER,
+ "Input data matches schema 'SyntheticsNetworkAssertionPacketLossPercentage'");
+ }
+ } catch (Exception e) {
+ // deserialization failed, continue
+ log.log(
+ Level.FINER,
+ "Input data does not match schema 'SyntheticsNetworkAssertionPacketLossPercentage'",
+ e);
+ }
+
+ // deserialize SyntheticsNetworkAssertionJitter
+ try {
+ boolean attemptParsing = true;
+ // ensure that we respect type coercion as set on the client ObjectMapper
+ if (SyntheticsNetworkAssertionJitter.class.equals(Integer.class)
+ || SyntheticsNetworkAssertionJitter.class.equals(Long.class)
+ || SyntheticsNetworkAssertionJitter.class.equals(Float.class)
+ || SyntheticsNetworkAssertionJitter.class.equals(Double.class)
+ || SyntheticsNetworkAssertionJitter.class.equals(Boolean.class)
+ || SyntheticsNetworkAssertionJitter.class.equals(String.class)) {
+ attemptParsing = typeCoercion;
+ if (!attemptParsing) {
+ attemptParsing |=
+ ((SyntheticsNetworkAssertionJitter.class.equals(Integer.class)
+ || SyntheticsNetworkAssertionJitter.class.equals(Long.class))
+ && token == JsonToken.VALUE_NUMBER_INT);
+ attemptParsing |=
+ ((SyntheticsNetworkAssertionJitter.class.equals(Float.class)
+ || SyntheticsNetworkAssertionJitter.class.equals(Double.class))
+ && (token == JsonToken.VALUE_NUMBER_FLOAT
+ || token == JsonToken.VALUE_NUMBER_INT));
+ attemptParsing |=
+ (SyntheticsNetworkAssertionJitter.class.equals(Boolean.class)
+ && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE));
+ attemptParsing |=
+ (SyntheticsNetworkAssertionJitter.class.equals(String.class)
+ && token == JsonToken.VALUE_STRING);
+ }
+ }
+ if (attemptParsing) {
+ tmp = tree.traverse(jp.getCodec()).readValueAs(SyntheticsNetworkAssertionJitter.class);
+ // TODO: there is no validation against JSON schema constraints
+ // (min, max, enum, pattern...), this does not perform a strict JSON
+ // validation, which means the 'match' count may be higher than it should be.
+ if (!((SyntheticsNetworkAssertionJitter) tmp).unparsed) {
+ deserialized = tmp;
+ match++;
+ }
+ log.log(Level.FINER, "Input data matches schema 'SyntheticsNetworkAssertionJitter'");
+ }
+ } catch (Exception e) {
+ // deserialization failed, continue
+ log.log(
+ Level.FINER, "Input data does not match schema 'SyntheticsNetworkAssertionJitter'", e);
+ }
+
+ SyntheticsNetworkAssertion ret = new SyntheticsNetworkAssertion();
+ if (match == 1) {
+ ret.setActualInstance(deserialized);
+ } else {
+ Map res =
+ new ObjectMapper()
+ .readValue(
+ tree.traverse(jp.getCodec()).readValueAsTree().toString(),
+ new TypeReference