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": {