diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml
index 42168cb0f30..095006c0c12 100644
--- a/.generator/schemas/v2/openapi.yaml
+++ b/.generator/schemas/v2/openapi.yaml
@@ -51339,6 +51339,49 @@ components:
$ref: '#/components/schemas/ServiceDefinitionData'
type: array
type: object
+ ServiceList:
+ properties:
+ data:
+ $ref: '#/components/schemas/ServiceListData'
+ type: object
+ ServiceListData:
+ properties:
+ attributes:
+ $ref: '#/components/schemas/ServiceListDataAttributes'
+ id:
+ type: string
+ type:
+ $ref: '#/components/schemas/ServiceListDataType'
+ required:
+ - type
+ type: object
+ ServiceListDataAttributes:
+ properties:
+ metadata:
+ items:
+ $ref: '#/components/schemas/ServiceListDataAttributesMetadataItems'
+ type: array
+ services:
+ items:
+ type: string
+ type: array
+ type: object
+ ServiceListDataAttributesMetadataItems:
+ properties:
+ isTraced:
+ type: boolean
+ isUsm:
+ type: boolean
+ type: object
+ ServiceListDataType:
+ default: services_list
+ description: Services list resource type.
+ enum:
+ - services_list
+ example: services_list
+ type: string
+ x-enum-varnames:
+ - SERVICES_LIST
ServiceNowBasicAuth:
description: The definition of the `ServiceNowBasicAuth` object.
properties:
@@ -61601,6 +61644,26 @@ paths:
permissions:
- apm_retention_filter_write
- apm_pipelines_write
+ /api/v2/apm/services:
+ get:
+ operationId: GetServiceList
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ServiceList'
+ description: OK
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ:
+ - apm_read
+ summary: Get service list
+ tags:
+ - APM
/api/v2/app-builder/apps:
delete:
description: Delete multiple apps in a single request from a list of app IDs.
@@ -69334,9 +69397,6 @@ paths:
operator: OR
permissions:
- incident_read
- x-unstable: '**Note**: This endpoint is in Preview.
-
- If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).'
post:
description: Create an impact for an incident.
operationId: CreateIncidentImpact
@@ -69380,9 +69440,6 @@ paths:
operator: OR
permissions:
- incident_write
- x-unstable: '**Note**: This endpoint is in Preview.
-
- If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).'
/api/v2/incidents/{incident_id}/impacts/{impact_id}:
delete:
description: Delete an incident impact.
@@ -69413,9 +69470,6 @@ paths:
operator: OR
permissions:
- incident_write
- x-unstable: '**Note**: This endpoint is in Preview.
-
- If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).'
/api/v2/incidents/{incident_id}/relationships/integrations:
get:
description: Get all integration metadata for an incident.
@@ -88586,6 +88640,9 @@ servers:
tags:
- description: Configure your API endpoints through the Datadog API.
name: API Management
+- description: Observe, troubleshoot, and improve cloud-scale applications with all
+ telemetry in context
+ name: APM
- description: Manage configuration of [APM retention filters](https://app.datadoghq.com/apm/traces/retention-filters)
for your organization. You need an API and application key with Admin rights to
interact with this endpoint. See [retention filters](https://docs.datadoghq.com/tracing/trace_pipeline/trace_retention/#retention-filters)
diff --git a/examples/v2/apm/GetServiceList.java b/examples/v2/apm/GetServiceList.java
new file mode 100644
index 00000000000..025dbd99022
--- /dev/null
+++ b/examples/v2/apm/GetServiceList.java
@@ -0,0 +1,24 @@
+// Get service list returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.ApmApi;
+import com.datadog.api.client.v2.model.ServiceList;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ ApmApi apiInstance = new ApmApi(defaultClient);
+
+ try {
+ ServiceList result = apiInstance.getServiceList();
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling ApmApi#getServiceList");
+ 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/ApiClient.java b/src/main/java/com/datadog/api/client/ApiClient.java
index 0f5877d1071..00e0a8a9303 100644
--- a/src/main/java/com/datadog/api/client/ApiClient.java
+++ b/src/main/java/com/datadog/api/client/ApiClient.java
@@ -748,14 +748,12 @@ public class ApiClient {
put("v2.updateDeploymentGate", false);
put("v2.updateDeploymentRule", false);
put("v2.createIncident", false);
- put("v2.createIncidentImpact", false);
put("v2.createIncidentIntegration", false);
put("v2.createIncidentNotificationRule", false);
put("v2.createIncidentNotificationTemplate", false);
put("v2.createIncidentTodo", false);
put("v2.createIncidentType", false);
put("v2.deleteIncident", false);
- put("v2.deleteIncidentImpact", false);
put("v2.deleteIncidentIntegration", false);
put("v2.deleteIncidentNotificationRule", false);
put("v2.deleteIncidentNotificationTemplate", false);
@@ -768,7 +766,6 @@ public class ApiClient {
put("v2.getIncidentTodo", false);
put("v2.getIncidentType", false);
put("v2.listIncidentAttachments", false);
- put("v2.listIncidentImpacts", false);
put("v2.listIncidentIntegrations", false);
put("v2.listIncidentNotificationRules", false);
put("v2.listIncidentNotificationTemplates", false);
diff --git a/src/main/java/com/datadog/api/client/v2/api/ApmApi.java b/src/main/java/com/datadog/api/client/v2/api/ApmApi.java
new file mode 100644
index 00000000000..02920f126f7
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/api/ApmApi.java
@@ -0,0 +1,151 @@
+package com.datadog.api.client.v2.api;
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.ApiResponse;
+import com.datadog.api.client.Pair;
+import com.datadog.api.client.v2.model.ServiceList;
+import jakarta.ws.rs.client.Invocation;
+import jakarta.ws.rs.core.GenericType;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.CompletableFuture;
+
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class ApmApi {
+ private ApiClient apiClient;
+
+ public ApmApi() {
+ this(ApiClient.getDefaultApiClient());
+ }
+
+ public ApmApi(ApiClient apiClient) {
+ this.apiClient = apiClient;
+ }
+
+ /**
+ * Get the API client.
+ *
+ * @return API client
+ */
+ public ApiClient getApiClient() {
+ return apiClient;
+ }
+
+ /**
+ * Set the API client.
+ *
+ * @param apiClient an instance of API client
+ */
+ public void setApiClient(ApiClient apiClient) {
+ this.apiClient = apiClient;
+ }
+
+ /**
+ * Get service list.
+ *
+ *
See {@link #getServiceListWithHttpInfo}.
+ *
+ * @return ServiceList
+ * @throws ApiException if fails to make API call
+ */
+ public ServiceList getServiceList() throws ApiException {
+ return getServiceListWithHttpInfo().getData();
+ }
+
+ /**
+ * Get service list.
+ *
+ *
See {@link #getServiceListWithHttpInfoAsync}.
+ *
+ * @return CompletableFuture<ServiceList>
+ */
+ public CompletableFuture getServiceListAsync() {
+ return getServiceListWithHttpInfoAsync()
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * @return ApiResponse<ServiceList>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | OK | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse getServiceListWithHttpInfo() throws ApiException {
+ Object localVarPostBody = null;
+ // create path and map variables
+ String localVarPath = "/api/v2/apm/services";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.ApmApi.getServiceList",
+ 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() {});
+ }
+
+ /**
+ * Get service list.
+ *
+ * See {@link #getServiceListWithHttpInfo}.
+ *
+ * @return CompletableFuture<ApiResponse<ServiceList>>
+ */
+ public CompletableFuture> getServiceListWithHttpInfoAsync() {
+ Object localVarPostBody = null;
+ // create path and map variables
+ String localVarPath = "/api/v2/apm/services";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.ApmApi.getServiceList",
+ 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() {});
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/api/IncidentsApi.java b/src/main/java/com/datadog/api/client/v2/api/IncidentsApi.java
index a36c2a39abf..b739642b319 100644
--- a/src/main/java/com/datadog/api/client/v2/api/IncidentsApi.java
+++ b/src/main/java/com/datadog/api/client/v2/api/IncidentsApi.java
@@ -353,13 +353,6 @@ public ApiResponse createIncidentImpactWithHttpInfo(
IncidentImpactCreateRequest body,
CreateIncidentImpactOptionalParameters parameters)
throws ApiException {
- // Check if unstable operation is enabled
- String operationId = "createIncidentImpact";
- if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
- apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
- } else {
- throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId));
- }
Object localVarPostBody = body;
// verify the required parameter 'incidentId' is set
@@ -420,16 +413,6 @@ public ApiResponse createIncidentImpactWithHttpInfo(
String incidentId,
IncidentImpactCreateRequest body,
CreateIncidentImpactOptionalParameters parameters) {
- // Check if unstable operation is enabled
- String operationId = "createIncidentImpact";
- if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
- apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
- } else {
- CompletableFuture> result = new CompletableFuture<>();
- result.completeExceptionally(
- new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)));
- return result;
- }
Object localVarPostBody = body;
// verify the required parameter 'incidentId' is set
@@ -1518,13 +1501,6 @@ public CompletableFuture deleteIncidentImpactAsync(String incidentId, Stri
*/
public ApiResponse deleteIncidentImpactWithHttpInfo(String incidentId, String impactId)
throws ApiException {
- // Check if unstable operation is enabled
- String operationId = "deleteIncidentImpact";
- if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
- apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
- } else {
- throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId));
- }
Object localVarPostBody = null;
// verify the required parameter 'incidentId' is set
@@ -1578,16 +1554,6 @@ public ApiResponse deleteIncidentImpactWithHttpInfo(String incidentId, Str
*/
public CompletableFuture> deleteIncidentImpactWithHttpInfoAsync(
String incidentId, String impactId) {
- // Check if unstable operation is enabled
- String operationId = "deleteIncidentImpact";
- if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
- apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
- } else {
- CompletableFuture> result = new CompletableFuture<>();
- result.completeExceptionally(
- new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)));
- return result;
- }
Object localVarPostBody = null;
// verify the required parameter 'incidentId' is set
@@ -4141,13 +4107,6 @@ public CompletableFuture listIncidentImpactsAsync(
*/
public ApiResponse listIncidentImpactsWithHttpInfo(
String incidentId, ListIncidentImpactsOptionalParameters parameters) throws ApiException {
- // Check if unstable operation is enabled
- String operationId = "listIncidentImpacts";
- if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
- apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
- } else {
- throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId));
- }
Object localVarPostBody = null;
// verify the required parameter 'incidentId' is set
@@ -4199,16 +4158,6 @@ public ApiResponse listIncidentImpactsWithHttpInfo(
public CompletableFuture>
listIncidentImpactsWithHttpInfoAsync(
String incidentId, ListIncidentImpactsOptionalParameters parameters) {
- // Check if unstable operation is enabled
- String operationId = "listIncidentImpacts";
- if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
- apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
- } else {
- CompletableFuture> result = new CompletableFuture<>();
- result.completeExceptionally(
- new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)));
- return result;
- }
Object localVarPostBody = null;
// verify the required parameter 'incidentId' is set
diff --git a/src/main/java/com/datadog/api/client/v2/model/ServiceList.java b/src/main/java/com/datadog/api/client/v2/model/ServiceList.java
new file mode 100644
index 00000000000..f31f864cf8f
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/ServiceList.java
@@ -0,0 +1,136 @@
+/*
+ * 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({ServiceList.JSON_PROPERTY_DATA})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class ServiceList {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_DATA = "data";
+ private ServiceListData data;
+
+ public ServiceList data(ServiceListData data) {
+ this.data = data;
+ this.unparsed |= data.unparsed;
+ return this;
+ }
+
+ /**
+ * Getdata
+ *
+ * @return data
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_DATA)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public ServiceListData getData() {
+ return data;
+ }
+
+ public void setData(ServiceListData 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 ServiceList
+ */
+ @JsonAnySetter
+ public ServiceList 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 ServiceList object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ServiceList serviceList = (ServiceList) o;
+ return Objects.equals(this.data, serviceList.data)
+ && Objects.equals(this.additionalProperties, serviceList.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(data, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ServiceList {\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/ServiceListData.java b/src/main/java/com/datadog/api/client/v2/model/ServiceListData.java
new file mode 100644
index 00000000000..cfbbc763cca
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/ServiceListData.java
@@ -0,0 +1,205 @@
+/*
+ * 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({
+ ServiceListData.JSON_PROPERTY_ATTRIBUTES,
+ ServiceListData.JSON_PROPERTY_ID,
+ ServiceListData.JSON_PROPERTY_TYPE
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class ServiceListData {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ATTRIBUTES = "attributes";
+ private ServiceListDataAttributes attributes;
+
+ public static final String JSON_PROPERTY_ID = "id";
+ private String id;
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ private ServiceListDataType type = ServiceListDataType.SERVICES_LIST;
+
+ public ServiceListData() {}
+
+ @JsonCreator
+ public ServiceListData(
+ @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) ServiceListDataType type) {
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ }
+
+ public ServiceListData attributes(ServiceListDataAttributes 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 ServiceListDataAttributes getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(ServiceListDataAttributes attributes) {
+ this.attributes = attributes;
+ }
+
+ public ServiceListData 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 ServiceListData type(ServiceListDataType type) {
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ return this;
+ }
+
+ /**
+ * Services list resource type.
+ *
+ * @return type
+ */
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public ServiceListDataType getType() {
+ return type;
+ }
+
+ public void setType(ServiceListDataType 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 ServiceListData
+ */
+ @JsonAnySetter
+ public ServiceListData 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 ServiceListData object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ServiceListData serviceListData = (ServiceListData) o;
+ return Objects.equals(this.attributes, serviceListData.attributes)
+ && Objects.equals(this.id, serviceListData.id)
+ && Objects.equals(this.type, serviceListData.type)
+ && Objects.equals(this.additionalProperties, serviceListData.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(attributes, id, type, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ServiceListData {\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/ServiceListDataAttributes.java b/src/main/java/com/datadog/api/client/v2/model/ServiceListDataAttributes.java
new file mode 100644
index 00000000000..4f380f890c9
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/ServiceListDataAttributes.java
@@ -0,0 +1,188 @@
+/*
+ * 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({
+ ServiceListDataAttributes.JSON_PROPERTY_METADATA,
+ ServiceListDataAttributes.JSON_PROPERTY_SERVICES
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class ServiceListDataAttributes {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_METADATA = "metadata";
+ private List metadata = null;
+
+ public static final String JSON_PROPERTY_SERVICES = "services";
+ private List services = null;
+
+ public ServiceListDataAttributes metadata(List metadata) {
+ this.metadata = metadata;
+ for (ServiceListDataAttributesMetadataItems item : metadata) {
+ this.unparsed |= item.unparsed;
+ }
+ return this;
+ }
+
+ public ServiceListDataAttributes addMetadataItem(
+ ServiceListDataAttributesMetadataItems metadataItem) {
+ if (this.metadata == null) {
+ this.metadata = new ArrayList<>();
+ }
+ this.metadata.add(metadataItem);
+ this.unparsed |= metadataItem.unparsed;
+ return this;
+ }
+
+ /**
+ * Getmetadata
+ *
+ * @return metadata
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_METADATA)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getMetadata() {
+ return metadata;
+ }
+
+ public void setMetadata(List metadata) {
+ this.metadata = metadata;
+ }
+
+ public ServiceListDataAttributes services(List services) {
+ this.services = services;
+ return this;
+ }
+
+ public ServiceListDataAttributes addServicesItem(String servicesItem) {
+ if (this.services == null) {
+ this.services = new ArrayList<>();
+ }
+ this.services.add(servicesItem);
+ return this;
+ }
+
+ /**
+ * Getservices
+ *
+ * @return services
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_SERVICES)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getServices() {
+ return services;
+ }
+
+ public void setServices(List services) {
+ this.services = services;
+ }
+
+ /**
+ * 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 ServiceListDataAttributes
+ */
+ @JsonAnySetter
+ public ServiceListDataAttributes 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 ServiceListDataAttributes object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ServiceListDataAttributes serviceListDataAttributes = (ServiceListDataAttributes) o;
+ return Objects.equals(this.metadata, serviceListDataAttributes.metadata)
+ && Objects.equals(this.services, serviceListDataAttributes.services)
+ && Objects.equals(
+ this.additionalProperties, serviceListDataAttributes.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(metadata, services, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ServiceListDataAttributes {\n");
+ sb.append(" metadata: ").append(toIndentedString(metadata)).append("\n");
+ sb.append(" services: ").append(toIndentedString(services)).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/ServiceListDataAttributesMetadataItems.java b/src/main/java/com/datadog/api/client/v2/model/ServiceListDataAttributesMetadataItems.java
new file mode 100644
index 00000000000..dfb9156cd64
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/ServiceListDataAttributesMetadataItems.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({
+ ServiceListDataAttributesMetadataItems.JSON_PROPERTY_IS_TRACED,
+ ServiceListDataAttributesMetadataItems.JSON_PROPERTY_IS_USM
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class ServiceListDataAttributesMetadataItems {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_IS_TRACED = "isTraced";
+ private Boolean isTraced;
+
+ public static final String JSON_PROPERTY_IS_USM = "isUsm";
+ private Boolean isUsm;
+
+ public ServiceListDataAttributesMetadataItems isTraced(Boolean isTraced) {
+ this.isTraced = isTraced;
+ return this;
+ }
+
+ /**
+ * GetisTraced
+ *
+ * @return isTraced
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_IS_TRACED)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Boolean getIsTraced() {
+ return isTraced;
+ }
+
+ public void setIsTraced(Boolean isTraced) {
+ this.isTraced = isTraced;
+ }
+
+ public ServiceListDataAttributesMetadataItems isUsm(Boolean isUsm) {
+ this.isUsm = isUsm;
+ return this;
+ }
+
+ /**
+ * GetisUsm
+ *
+ * @return isUsm
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_IS_USM)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Boolean getIsUsm() {
+ return isUsm;
+ }
+
+ public void setIsUsm(Boolean isUsm) {
+ this.isUsm = isUsm;
+ }
+
+ /**
+ * 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 ServiceListDataAttributesMetadataItems
+ */
+ @JsonAnySetter
+ public ServiceListDataAttributesMetadataItems 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 ServiceListDataAttributesMetadataItems object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ServiceListDataAttributesMetadataItems serviceListDataAttributesMetadataItems =
+ (ServiceListDataAttributesMetadataItems) o;
+ return Objects.equals(this.isTraced, serviceListDataAttributesMetadataItems.isTraced)
+ && Objects.equals(this.isUsm, serviceListDataAttributesMetadataItems.isUsm)
+ && Objects.equals(
+ this.additionalProperties, serviceListDataAttributesMetadataItems.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(isTraced, isUsm, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ServiceListDataAttributesMetadataItems {\n");
+ sb.append(" isTraced: ").append(toIndentedString(isTraced)).append("\n");
+ sb.append(" isUsm: ").append(toIndentedString(isUsm)).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/ServiceListDataType.java b/src/main/java/com/datadog/api/client/v2/model/ServiceListDataType.java
new file mode 100644
index 00000000000..5430198b28c
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/ServiceListDataType.java
@@ -0,0 +1,55 @@
+/*
+ * 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;
+
+/** Services list resource type. */
+@JsonSerialize(using = ServiceListDataType.ServiceListDataTypeSerializer.class)
+public class ServiceListDataType extends ModelEnum {
+
+ private static final Set allowedValues =
+ new HashSet(Arrays.asList("services_list"));
+
+ public static final ServiceListDataType SERVICES_LIST = new ServiceListDataType("services_list");
+
+ ServiceListDataType(String value) {
+ super(value, allowedValues);
+ }
+
+ public static class ServiceListDataTypeSerializer extends StdSerializer {
+ public ServiceListDataTypeSerializer(Class t) {
+ super(t);
+ }
+
+ public ServiceListDataTypeSerializer() {
+ this(null);
+ }
+
+ @Override
+ public void serialize(
+ ServiceListDataType value, JsonGenerator jgen, SerializerProvider provider)
+ throws IOException, JsonProcessingException {
+ jgen.writeObject(value.value);
+ }
+ }
+
+ @JsonCreator
+ public static ServiceListDataType fromValue(String value) {
+ return new ServiceListDataType(value);
+ }
+}
diff --git a/src/test/resources/com/datadog/api/client/v2/api/apm.feature b/src/test/resources/com/datadog/api/client/v2/api/apm.feature
new file mode 100644
index 00000000000..e35bd4d4750
--- /dev/null
+++ b/src/test/resources/com/datadog/api/client/v2/api/apm.feature
@@ -0,0 +1,13 @@
+@endpoint(apm) @endpoint(apm-v2)
+Feature: APM
+ Observe, troubleshoot, and improve cloud-scale applications with all
+ telemetry in context
+
+ @generated @skip @team:DataDog/apm-aoe
+ Scenario: Get service list returns "OK" response
+ Given a valid "apiKeyAuth" key in the system
+ And a valid "appKeyAuth" key in the system
+ And an instance of "APM" API
+ And new "GetServiceList" request
+ When the request is sent
+ Then the response status is 200 OK
diff --git a/src/test/resources/com/datadog/api/client/v2/api/incidents.feature b/src/test/resources/com/datadog/api/client/v2/api/incidents.feature
index 74ae965968f..12ab3e2f5ba 100644
--- a/src/test/resources/com/datadog/api/client/v2/api/incidents.feature
+++ b/src/test/resources/com/datadog/api/client/v2/api/incidents.feature
@@ -806,16 +806,14 @@ Feature: Incidents
@generated @skip @team:DataDog/incident-app
Scenario: List an incident's impacts returns "Bad Request" response
- Given operation "ListIncidentImpacts" enabled
- And new "ListIncidentImpacts" request
+ Given new "ListIncidentImpacts" request
And request contains "incident_id" parameter from "REPLACE.ME"
When the request is sent
Then the response status is 400 Bad Request
@generated @skip @team:DataDog/incident-app
Scenario: List an incident's impacts returns "Not Found" response
- Given operation "ListIncidentImpacts" enabled
- And new "ListIncidentImpacts" request
+ Given new "ListIncidentImpacts" request
And request contains "incident_id" parameter from "REPLACE.ME"
When the request is sent
Then the response status is 404 Not Found
diff --git a/src/test/resources/com/datadog/api/client/v2/api/undo.json b/src/test/resources/com/datadog/api/client/v2/api/undo.json
index 8aec373cdd9..e0f0b98d0c9 100644
--- a/src/test/resources/com/datadog/api/client/v2/api/undo.json
+++ b/src/test/resources/com/datadog/api/client/v2/api/undo.json
@@ -516,6 +516,12 @@
"type": "idempotent"
}
},
+ "GetServiceList": {
+ "tag": "APM",
+ "undo": {
+ "type": "safe"
+ }
+ },
"DeleteApps": {
"tag": "App Builder",
"undo": {