From 5c4601f4d4b7443b61f7442100653279e26854fc Mon Sep 17 00:00:00 2001 From: "ci.datadog-api-spec" Date: Thu, 9 Jul 2026 15:50:35 +0000 Subject: [PATCH] Regenerate client from commit 60cde6d of spec repo --- .generator/schemas/v2/openapi.yaml | 323 +++++++++++++++ .../GetAWSMetricNameFilterPreview.java | 26 ++ .../PreviewAWSMetricNameFilter.java | 48 +++ .../com/datadog/api/client/ApiClient.java | 2 + .../api/client/v2/api/AwsIntegrationApi.java | 381 ++++++++++++++++++ .../AWSMetricNameFilterPreviewDDName.java | 175 ++++++++ ...AWSMetricNameFilterPreviewFilterMatch.java | 175 ++++++++ .../AWSMetricNameFilterPreviewMetric.java | 188 +++++++++ .../AWSMetricNameFilterPreviewNamespace.java | 230 +++++++++++ .../AWSMetricNameFilterPreviewRequest.java | 148 +++++++ ...ricNameFilterPreviewRequestAttributes.java | 162 ++++++++ ...AWSMetricNameFilterPreviewRequestData.java | 186 +++++++++ .../AWSMetricNameFilterPreviewResponse.java | 148 +++++++ ...icNameFilterPreviewResponseAttributes.java | 161 ++++++++ ...WSMetricNameFilterPreviewResponseData.java | 217 ++++++++++ .../model/AWSMetricNameFilterPreviewType.java | 58 +++ .../client/v2/model/AWSMetricNameFilters.java | 290 +++++++++++++ .../AWSMetricNameFiltersExcludeOnly.java | 182 +++++++++ .../AWSMetricNameFiltersIncludeOnly.java | 182 +++++++++ .../api/client/v2/model/AWSMetricsConfig.java | 41 ++ .../api/client/v2/api/aws_integration.feature | 43 ++ .../com/datadog/api/client/v2/api/undo.json | 12 + 22 files changed, 3378 insertions(+) create mode 100644 examples/v2/aws-integration/GetAWSMetricNameFilterPreview.java create mode 100644 examples/v2/aws-integration/PreviewAWSMetricNameFilter.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFilterPreviewDDName.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFilterPreviewFilterMatch.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFilterPreviewMetric.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFilterPreviewNamespace.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFilterPreviewRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFilterPreviewRequestAttributes.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFilterPreviewRequestData.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFilterPreviewResponse.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFilterPreviewResponseAttributes.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFilterPreviewResponseData.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFilterPreviewType.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFilters.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFiltersExcludeOnly.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFiltersIncludeOnly.java diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index c2aa6fb6864..6ff3d3ebfe0 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -3555,6 +3555,196 @@ components: type: string x-enum-varnames: - LOGS_SERVICES + AWSMetricNameFilterPreviewDDName: + description: A Datadog metric name and whether it is filtered. + properties: + filtered: + description: Whether this Datadog metric name is filtered out. + example: true + type: boolean + name: + description: The Datadog metric name. + example: "aws.ec2.network_in" + type: string + required: + - name + - filtered + type: object + AWSMetricNameFilterPreviewFilterMatch: + description: A metric name filter pattern and how many metrics it matched. + properties: + match_count: + description: The number of Datadog metric names matched by this pattern. + example: 1 + format: int64 + type: integer + pattern: + description: The metric name filter pattern. + example: "aws.ec2.network_in" + type: string + required: + - pattern + - match_count + type: object + AWSMetricNameFilterPreviewMetric: + description: A CloudWatch metric and the Datadog metric names it produces. + properties: + cw_name: + description: The CloudWatch metric name. + example: "NetworkIn" + type: string + dd_names: + description: The Datadog metric names produced from this CloudWatch metric. + items: + $ref: "#/components/schemas/AWSMetricNameFilterPreviewDDName" + type: array + required: + - cw_name + - dd_names + type: object + AWSMetricNameFilterPreviewNamespace: + description: The metric name filter preview for a single namespace. + properties: + filters: + description: The metric name filter patterns evaluated for this namespace and how many metrics they matched. + items: + $ref: "#/components/schemas/AWSMetricNameFilterPreviewFilterMatch" + type: array + metrics: + description: |- + The CloudWatch metrics collected for this namespace and whether each resulting + Datadog metric is filtered. + items: + $ref: "#/components/schemas/AWSMetricNameFilterPreviewMetric" + type: array + namespace: + description: The AWS CloudWatch namespace. + example: "AWS/EC2" + type: string + required: + - namespace + - filters + - metrics + type: object + AWSMetricNameFilterPreviewRequest: + description: AWS metric name filter preview request body. + properties: + data: + $ref: "#/components/schemas/AWSMetricNameFilterPreviewRequestData" + required: + - data + type: object + AWSMetricNameFilterPreviewRequestAttributes: + description: AWS metric name filter preview request attributes. + properties: + metric_name_filters: + description: The metric name filters to preview. + items: + $ref: "#/components/schemas/AWSMetricNameFilters" + type: array + required: + - metric_name_filters + type: object + AWSMetricNameFilterPreviewRequestData: + description: AWS metric name filter preview request data. + properties: + attributes: + $ref: "#/components/schemas/AWSMetricNameFilterPreviewRequestAttributes" + type: + $ref: "#/components/schemas/AWSMetricNameFilterPreviewType" + required: + - type + - attributes + type: object + AWSMetricNameFilterPreviewResponse: + description: AWS metric name filter preview response body. + properties: + data: + $ref: "#/components/schemas/AWSMetricNameFilterPreviewResponseData" + required: + - data + type: object + AWSMetricNameFilterPreviewResponseAttributes: + description: AWS metric name filter preview response attributes. + properties: + namespaces: + description: The list of namespaces affected by the previewed metric name filters. + items: + $ref: "#/components/schemas/AWSMetricNameFilterPreviewNamespace" + type: array + required: + - namespaces + type: object + AWSMetricNameFilterPreviewResponseData: + description: AWS metric name filter preview response data. + properties: + attributes: + $ref: "#/components/schemas/AWSMetricNameFilterPreviewResponseAttributes" + id: + $ref: "#/components/schemas/AWSAccountConfigID" + type: + $ref: "#/components/schemas/AWSMetricNameFilterPreviewType" + required: + - id + - type + - attributes + type: object + AWSMetricNameFilterPreviewType: + default: "metric_name_filter_preview" + description: The `AWSMetricNameFilterPreviewResponseData` `type`. + enum: + - metric_name_filter_preview + example: "metric_name_filter_preview" + type: string + x-enum-varnames: + - METRIC_NAME_FILTER_PREVIEW + AWSMetricNameFilters: + description: |- + AWS CloudWatch metric name filter for a single namespace. + Exactly one of `include_only` or `exclude_only` must be set. + oneOf: + - $ref: "#/components/schemas/AWSMetricNameFiltersIncludeOnly" + - $ref: "#/components/schemas/AWSMetricNameFiltersExcludeOnly" + AWSMetricNameFiltersExcludeOnly: + description: Exclude metric names matching one of these patterns for a single namespace. + properties: + exclude_only: + description: Exclude metric names matching one of these patterns. + example: + - "aws.ec2.network_in" + items: + description: A metric name pattern to exclude. + example: "aws.ec2.network_in" + type: string + type: array + namespace: + description: The AWS CloudWatch namespace to which this metric name filter applies. + example: "AWS/EC2" + type: string + required: + - namespace + - exclude_only + type: object + AWSMetricNameFiltersIncludeOnly: + description: Include only metric names matching one of these patterns for a single namespace. + properties: + include_only: + description: Include only metric names matching one of these patterns. + example: + - "aws.ec2.network_in" + items: + description: A metric name pattern to include. + example: "aws.ec2.network_in" + type: string + type: array + namespace: + description: The AWS CloudWatch namespace to which this metric name filter applies. + example: "AWS/EC2" + type: string + required: + - namespace + - include_only + type: object AWSMetricsConfig: description: AWS Metrics Collection config. properties: @@ -3574,6 +3764,13 @@ components: description: Enable AWS metrics collection. Defaults to `true`. example: true type: boolean + metric_name_filters: + description: |- + AWS CloudWatch metric name filters. Each filter applies to a single namespace. + Exactly one of `include_only` or `exclude_only` must be set on each filter. + items: + $ref: "#/components/schemas/AWSMetricNameFilters" + type: array namespace_filters: $ref: "#/components/schemas/AWSNamespaceFilters" tag_filters: @@ -141429,6 +141626,10 @@ paths: collect_cloudwatch_alarms: false collect_custom_metrics: false enabled: true + metric_name_filters: + - include_only: + - aws.ec2.network_in + namespace: AWS/EC2 tag_filters: - namespace: AWS/EC2 resources_config: @@ -141567,6 +141768,10 @@ paths: collect_cloudwatch_alarms: false collect_custom_metrics: false enabled: true + metric_name_filters: + - include_only: + - aws.ec2.network_in + namespace: AWS/EC2 tag_filters: - namespace: AWS/EC2 resources_config: @@ -141811,6 +142016,124 @@ paths: x-unstable: |- **Note**: This endpoint is in preview and may be subject to change. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/integration/aws/accounts/{aws_account_config_id}/metric_name_filter_preview: + get: + description: |- + Preview which collected CloudWatch metrics would be filtered by the account's saved metric name filters. + operationId: GetAWSMetricNameFilterPreview + parameters: + - $ref: "#/components/parameters/AWSAccountConfigIDPathParameter" + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + namespaces: + - filters: + - match_count: 1 + pattern: "aws.ec2.network_in" + metrics: + - cw_name: "NetworkIn" + dd_names: + - filtered: true + name: "aws.ec2.network_in" + namespace: "AWS/EC2" + id: "00000000-0000-0000-0000-000000000001" + type: metric_name_filter_preview + schema: + $ref: "#/components/schemas/AWSMetricNameFilterPreviewResponse" + description: AWS metric name filter preview result + "403": + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Get AWS metric name filter preview + tags: + - AWS Integration + "x-permission": + operator: OR + permissions: + - aws_configuration_read + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + post: + description: |- + Preview which collected CloudWatch metrics would be filtered by the supplied metric name filters. + The filters are not persisted. + operationId: PreviewAWSMetricNameFilter + parameters: + - $ref: "#/components/parameters/AWSAccountConfigIDPathParameter" + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + metric_name_filters: + - exclude_only: + - "aws.ec2.network_in" + namespace: "AWS/EC2" + type: metric_name_filter_preview + schema: + $ref: "#/components/schemas/AWSMetricNameFilterPreviewRequest" + description: The metric name filters to preview. + required: true + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + namespaces: + - filters: + - match_count: 1 + pattern: "aws.ec2.network_in" + metrics: + - cw_name: "NetworkIn" + dd_names: + - filtered: true + name: "aws.ec2.network_in" + namespace: "AWS/EC2" + id: "00000000-0000-0000-0000-000000000001" + type: metric_name_filter_preview + schema: + $ref: "#/components/schemas/AWSMetricNameFilterPreviewResponse" + description: AWS metric name filter preview result + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "403": + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Preview AWS metric name filter + tags: + - AWS Integration + x-codegen-request-body-name: body + "x-permission": + operator: OR + permissions: + - aws_configuration_read + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). /api/v2/integration/aws/available_namespaces: get: description: Get a list of available AWS CloudWatch namespaces that can send metrics to Datadog. diff --git a/examples/v2/aws-integration/GetAWSMetricNameFilterPreview.java b/examples/v2/aws-integration/GetAWSMetricNameFilterPreview.java new file mode 100644 index 00000000000..0532dbf066b --- /dev/null +++ b/examples/v2/aws-integration/GetAWSMetricNameFilterPreview.java @@ -0,0 +1,26 @@ +// Get AWS metric name filter preview returns "AWS metric name filter preview result" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.AwsIntegrationApi; +import com.datadog.api.client.v2.model.AWSMetricNameFilterPreviewResponse; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.getAWSMetricNameFilterPreview", true); + AwsIntegrationApi apiInstance = new AwsIntegrationApi(defaultClient); + + try { + AWSMetricNameFilterPreviewResponse result = + apiInstance.getAWSMetricNameFilterPreview("aws_account_config_id"); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling AwsIntegrationApi#getAWSMetricNameFilterPreview"); + 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/aws-integration/PreviewAWSMetricNameFilter.java b/examples/v2/aws-integration/PreviewAWSMetricNameFilter.java new file mode 100644 index 00000000000..6e478e78c23 --- /dev/null +++ b/examples/v2/aws-integration/PreviewAWSMetricNameFilter.java @@ -0,0 +1,48 @@ +// Preview AWS metric name filter returns "AWS metric name filter preview result" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.AwsIntegrationApi; +import com.datadog.api.client.v2.model.AWSMetricNameFilterPreviewRequest; +import com.datadog.api.client.v2.model.AWSMetricNameFilterPreviewRequestAttributes; +import com.datadog.api.client.v2.model.AWSMetricNameFilterPreviewRequestData; +import com.datadog.api.client.v2.model.AWSMetricNameFilterPreviewResponse; +import com.datadog.api.client.v2.model.AWSMetricNameFilterPreviewType; +import com.datadog.api.client.v2.model.AWSMetricNameFilters; +import com.datadog.api.client.v2.model.AWSMetricNameFiltersIncludeOnly; +import java.util.Collections; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.previewAWSMetricNameFilter", true); + AwsIntegrationApi apiInstance = new AwsIntegrationApi(defaultClient); + + AWSMetricNameFilterPreviewRequest body = + new AWSMetricNameFilterPreviewRequest() + .data( + new AWSMetricNameFilterPreviewRequestData() + .attributes( + new AWSMetricNameFilterPreviewRequestAttributes() + .metricNameFilters( + Collections.singletonList( + new AWSMetricNameFilters( + new AWSMetricNameFiltersIncludeOnly() + .includeOnly( + Collections.singletonList("aws.ec2.network_in")) + .namespace("AWS/EC2"))))) + .type(AWSMetricNameFilterPreviewType.METRIC_NAME_FILTER_PREVIEW)); + + try { + AWSMetricNameFilterPreviewResponse result = + apiInstance.previewAWSMetricNameFilter("aws_account_config_id", body); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling AwsIntegrationApi#previewAWSMetricNameFilter"); + 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 724a1519b8a..f730f094847 100644 --- a/src/main/java/com/datadog/api/client/ApiClient.java +++ b/src/main/java/com/datadog/api/client/ApiClient.java @@ -1129,6 +1129,8 @@ public class ApiClient { put("v2.createAWSAccountCCMConfig", false); put("v2.deleteAWSAccountCCMConfig", false); put("v2.getAWSAccountCCMConfig", false); + put("v2.getAWSMetricNameFilterPreview", false); + put("v2.previewAWSMetricNameFilter", false); put("v2.updateAWSAccountCCMConfig", false); put("v2.validateAWSCCMConfig", false); put("v2.createJiraIssueTemplate", false); diff --git a/src/main/java/com/datadog/api/client/v2/api/AwsIntegrationApi.java b/src/main/java/com/datadog/api/client/v2/api/AwsIntegrationApi.java index 6eef3621915..e435696291a 100644 --- a/src/main/java/com/datadog/api/client/v2/api/AwsIntegrationApi.java +++ b/src/main/java/com/datadog/api/client/v2/api/AwsIntegrationApi.java @@ -18,6 +18,8 @@ import com.datadog.api.client.v2.model.AWSEventBridgeDeleteResponse; import com.datadog.api.client.v2.model.AWSEventBridgeListResponse; import com.datadog.api.client.v2.model.AWSIntegrationIamPermissionsResponse; +import com.datadog.api.client.v2.model.AWSMetricNameFilterPreviewRequest; +import com.datadog.api.client.v2.model.AWSMetricNameFilterPreviewResponse; import com.datadog.api.client.v2.model.AWSNamespacesResponse; import com.datadog.api.client.v2.model.AWSNewExternalIDResponse; import jakarta.ws.rs.client.Invocation; @@ -1774,6 +1776,184 @@ public AWSIntegrationIamPermissionsResponse getAWSIntegrationIAMPermissionsStand new GenericType() {}); } + /** + * Get AWS metric name filter preview. + * + *

See {@link #getAWSMetricNameFilterPreviewWithHttpInfo}. + * + * @param awsAccountConfigId Unique Datadog ID of the AWS Account Integration Config. To get the + * config ID for an account, use the List + * all AWS integrations endpoint and query by AWS Account ID. (required) + * @return AWSMetricNameFilterPreviewResponse + * @throws ApiException if fails to make API call + */ + public AWSMetricNameFilterPreviewResponse getAWSMetricNameFilterPreview(String awsAccountConfigId) + throws ApiException { + return getAWSMetricNameFilterPreviewWithHttpInfo(awsAccountConfigId).getData(); + } + + /** + * Get AWS metric name filter preview. + * + *

See {@link #getAWSMetricNameFilterPreviewWithHttpInfoAsync}. + * + * @param awsAccountConfigId Unique Datadog ID of the AWS Account Integration Config. To get the + * config ID for an account, use the List + * all AWS integrations endpoint and query by AWS Account ID. (required) + * @return CompletableFuture<AWSMetricNameFilterPreviewResponse> + */ + public CompletableFuture getAWSMetricNameFilterPreviewAsync( + String awsAccountConfigId) { + return getAWSMetricNameFilterPreviewWithHttpInfoAsync(awsAccountConfigId) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Preview which collected CloudWatch metrics would be filtered by the account's saved metric name + * filters. + * + * @param awsAccountConfigId Unique Datadog ID of the AWS Account Integration Config. To get the + * config ID for an account, use the List + * all AWS integrations endpoint and query by AWS Account ID. (required) + * @return ApiResponse<AWSMetricNameFilterPreviewResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 AWS metric name filter preview result -
403 Forbidden -
404 Not Found -
429 Too many requests -
+ */ + public ApiResponse getAWSMetricNameFilterPreviewWithHttpInfo( + String awsAccountConfigId) throws ApiException { + // Check if unstable operation is enabled + String operationId = "getAWSMetricNameFilterPreview"; + 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 'awsAccountConfigId' is set + if (awsAccountConfigId == null) { + throw new ApiException( + 400, + "Missing the required parameter 'awsAccountConfigId' when calling" + + " getAWSMetricNameFilterPreview"); + } + // create path and map variables + String localVarPath = + "/api/v2/integration/aws/accounts/{aws_account_config_id}/metric_name_filter_preview" + .replaceAll( + "\\{" + "aws_account_config_id" + "\\}", + apiClient.escapeString(awsAccountConfigId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.AwsIntegrationApi.getAWSMetricNameFilterPreview", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + return apiClient.invokeAPI( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Get AWS metric name filter preview. + * + *

See {@link #getAWSMetricNameFilterPreviewWithHttpInfo}. + * + * @param awsAccountConfigId Unique Datadog ID of the AWS Account Integration Config. To get the + * config ID for an account, use the List + * all AWS integrations endpoint and query by AWS Account ID. (required) + * @return CompletableFuture<ApiResponse<AWSMetricNameFilterPreviewResponse>> + */ + public CompletableFuture> + getAWSMetricNameFilterPreviewWithHttpInfoAsync(String awsAccountConfigId) { + // Check if unstable operation is enabled + String operationId = "getAWSMetricNameFilterPreview"; + 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 'awsAccountConfigId' is set + if (awsAccountConfigId == null) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'awsAccountConfigId' when calling" + + " getAWSMetricNameFilterPreview")); + return result; + } + // create path and map variables + String localVarPath = + "/api/v2/integration/aws/accounts/{aws_account_config_id}/metric_name_filter_preview" + .replaceAll( + "\\{" + "aws_account_config_id" + "\\}", + apiClient.escapeString(awsAccountConfigId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.AwsIntegrationApi.getAWSMetricNameFilterPreview", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + } 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() {}); + } + /** Manage optional parameters to listAWSAccounts. */ public static class ListAWSAccountsOptionalParameters { private String awsAccountId; @@ -2165,6 +2345,207 @@ public ApiResponse listAWSNamespacesWithHttpInfo() throws new GenericType() {}); } + /** + * Preview AWS metric name filter. + * + *

See {@link #previewAWSMetricNameFilterWithHttpInfo}. + * + * @param awsAccountConfigId Unique Datadog ID of the AWS Account Integration Config. To get the + * config ID for an account, use the List + * all AWS integrations endpoint and query by AWS Account ID. (required) + * @param body The metric name filters to preview. (required) + * @return AWSMetricNameFilterPreviewResponse + * @throws ApiException if fails to make API call + */ + public AWSMetricNameFilterPreviewResponse previewAWSMetricNameFilter( + String awsAccountConfigId, AWSMetricNameFilterPreviewRequest body) throws ApiException { + return previewAWSMetricNameFilterWithHttpInfo(awsAccountConfigId, body).getData(); + } + + /** + * Preview AWS metric name filter. + * + *

See {@link #previewAWSMetricNameFilterWithHttpInfoAsync}. + * + * @param awsAccountConfigId Unique Datadog ID of the AWS Account Integration Config. To get the + * config ID for an account, use the List + * all AWS integrations endpoint and query by AWS Account ID. (required) + * @param body The metric name filters to preview. (required) + * @return CompletableFuture<AWSMetricNameFilterPreviewResponse> + */ + public CompletableFuture previewAWSMetricNameFilterAsync( + String awsAccountConfigId, AWSMetricNameFilterPreviewRequest body) { + return previewAWSMetricNameFilterWithHttpInfoAsync(awsAccountConfigId, body) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Preview which collected CloudWatch metrics would be filtered by the supplied metric name + * filters. The filters are not persisted. + * + * @param awsAccountConfigId Unique Datadog ID of the AWS Account Integration Config. To get the + * config ID for an account, use the List + * all AWS integrations endpoint and query by AWS Account ID. (required) + * @param body The metric name filters to preview. (required) + * @return ApiResponse<AWSMetricNameFilterPreviewResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 AWS metric name filter preview result -
400 Bad Request -
403 Forbidden -
404 Not Found -
429 Too many requests -
+ */ + public ApiResponse previewAWSMetricNameFilterWithHttpInfo( + String awsAccountConfigId, AWSMetricNameFilterPreviewRequest body) throws ApiException { + // Check if unstable operation is enabled + String operationId = "previewAWSMetricNameFilter"; + 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 'awsAccountConfigId' is set + if (awsAccountConfigId == null) { + throw new ApiException( + 400, + "Missing the required parameter 'awsAccountConfigId' when calling" + + " previewAWSMetricNameFilter"); + } + + // verify the required parameter 'body' is set + if (body == null) { + throw new ApiException( + 400, "Missing the required parameter 'body' when calling previewAWSMetricNameFilter"); + } + // create path and map variables + String localVarPath = + "/api/v2/integration/aws/accounts/{aws_account_config_id}/metric_name_filter_preview" + .replaceAll( + "\\{" + "aws_account_config_id" + "\\}", + apiClient.escapeString(awsAccountConfigId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.AwsIntegrationApi.previewAWSMetricNameFilter", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + return apiClient.invokeAPI( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Preview AWS metric name filter. + * + *

See {@link #previewAWSMetricNameFilterWithHttpInfo}. + * + * @param awsAccountConfigId Unique Datadog ID of the AWS Account Integration Config. To get the + * config ID for an account, use the List + * all AWS integrations endpoint and query by AWS Account ID. (required) + * @param body The metric name filters to preview. (required) + * @return CompletableFuture<ApiResponse<AWSMetricNameFilterPreviewResponse>> + */ + public CompletableFuture> + previewAWSMetricNameFilterWithHttpInfoAsync( + String awsAccountConfigId, AWSMetricNameFilterPreviewRequest body) { + // Check if unstable operation is enabled + String operationId = "previewAWSMetricNameFilter"; + 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 'awsAccountConfigId' is set + if (awsAccountConfigId == null) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'awsAccountConfigId' when calling" + + " previewAWSMetricNameFilter")); + 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 previewAWSMetricNameFilter")); + return result; + } + // create path and map variables + String localVarPath = + "/api/v2/integration/aws/accounts/{aws_account_config_id}/metric_name_filter_preview" + .replaceAll( + "\\{" + "aws_account_config_id" + "\\}", + apiClient.escapeString(awsAccountConfigId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.AwsIntegrationApi.previewAWSMetricNameFilter", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + } 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() {}); + } + /** * Update an AWS integration. * diff --git a/src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFilterPreviewDDName.java b/src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFilterPreviewDDName.java new file mode 100644 index 00000000000..06c48aefa2b --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFilterPreviewDDName.java @@ -0,0 +1,175 @@ +/* + * 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; + +/** A Datadog metric name and whether it is filtered. */ +@JsonPropertyOrder({ + AWSMetricNameFilterPreviewDDName.JSON_PROPERTY_FILTERED, + AWSMetricNameFilterPreviewDDName.JSON_PROPERTY_NAME +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class AWSMetricNameFilterPreviewDDName { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_FILTERED = "filtered"; + private Boolean filtered; + + public static final String JSON_PROPERTY_NAME = "name"; + private String name; + + public AWSMetricNameFilterPreviewDDName() {} + + @JsonCreator + public AWSMetricNameFilterPreviewDDName( + @JsonProperty(required = true, value = JSON_PROPERTY_FILTERED) Boolean filtered, + @JsonProperty(required = true, value = JSON_PROPERTY_NAME) String name) { + this.filtered = filtered; + this.name = name; + } + + public AWSMetricNameFilterPreviewDDName filtered(Boolean filtered) { + this.filtered = filtered; + return this; + } + + /** + * Whether this Datadog metric name is filtered out. + * + * @return filtered + */ + @JsonProperty(JSON_PROPERTY_FILTERED) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Boolean getFiltered() { + return filtered; + } + + public void setFiltered(Boolean filtered) { + this.filtered = filtered; + } + + public AWSMetricNameFilterPreviewDDName name(String name) { + this.name = name; + return this; + } + + /** + * The Datadog metric name. + * + * @return name + */ + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + /** + * 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 AWSMetricNameFilterPreviewDDName + */ + @JsonAnySetter + public AWSMetricNameFilterPreviewDDName 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 AWSMetricNameFilterPreviewDDName object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AWSMetricNameFilterPreviewDDName awsMetricNameFilterPreviewDdName = + (AWSMetricNameFilterPreviewDDName) o; + return Objects.equals(this.filtered, awsMetricNameFilterPreviewDdName.filtered) + && Objects.equals(this.name, awsMetricNameFilterPreviewDdName.name) + && Objects.equals( + this.additionalProperties, awsMetricNameFilterPreviewDdName.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(filtered, name, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AWSMetricNameFilterPreviewDDName {\n"); + sb.append(" filtered: ").append(toIndentedString(filtered)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).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/AWSMetricNameFilterPreviewFilterMatch.java b/src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFilterPreviewFilterMatch.java new file mode 100644 index 00000000000..f306323f0f5 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFilterPreviewFilterMatch.java @@ -0,0 +1,175 @@ +/* + * 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; + +/** A metric name filter pattern and how many metrics it matched. */ +@JsonPropertyOrder({ + AWSMetricNameFilterPreviewFilterMatch.JSON_PROPERTY_MATCH_COUNT, + AWSMetricNameFilterPreviewFilterMatch.JSON_PROPERTY_PATTERN +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class AWSMetricNameFilterPreviewFilterMatch { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_MATCH_COUNT = "match_count"; + private Long matchCount; + + public static final String JSON_PROPERTY_PATTERN = "pattern"; + private String pattern; + + public AWSMetricNameFilterPreviewFilterMatch() {} + + @JsonCreator + public AWSMetricNameFilterPreviewFilterMatch( + @JsonProperty(required = true, value = JSON_PROPERTY_MATCH_COUNT) Long matchCount, + @JsonProperty(required = true, value = JSON_PROPERTY_PATTERN) String pattern) { + this.matchCount = matchCount; + this.pattern = pattern; + } + + public AWSMetricNameFilterPreviewFilterMatch matchCount(Long matchCount) { + this.matchCount = matchCount; + return this; + } + + /** + * The number of Datadog metric names matched by this pattern. + * + * @return matchCount + */ + @JsonProperty(JSON_PROPERTY_MATCH_COUNT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Long getMatchCount() { + return matchCount; + } + + public void setMatchCount(Long matchCount) { + this.matchCount = matchCount; + } + + public AWSMetricNameFilterPreviewFilterMatch pattern(String pattern) { + this.pattern = pattern; + return this; + } + + /** + * The metric name filter pattern. + * + * @return pattern + */ + @JsonProperty(JSON_PROPERTY_PATTERN) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getPattern() { + return pattern; + } + + public void setPattern(String pattern) { + this.pattern = pattern; + } + + /** + * 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 AWSMetricNameFilterPreviewFilterMatch + */ + @JsonAnySetter + public AWSMetricNameFilterPreviewFilterMatch 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 AWSMetricNameFilterPreviewFilterMatch object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AWSMetricNameFilterPreviewFilterMatch awsMetricNameFilterPreviewFilterMatch = + (AWSMetricNameFilterPreviewFilterMatch) o; + return Objects.equals(this.matchCount, awsMetricNameFilterPreviewFilterMatch.matchCount) + && Objects.equals(this.pattern, awsMetricNameFilterPreviewFilterMatch.pattern) + && Objects.equals( + this.additionalProperties, awsMetricNameFilterPreviewFilterMatch.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(matchCount, pattern, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AWSMetricNameFilterPreviewFilterMatch {\n"); + sb.append(" matchCount: ").append(toIndentedString(matchCount)).append("\n"); + sb.append(" pattern: ").append(toIndentedString(pattern)).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/AWSMetricNameFilterPreviewMetric.java b/src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFilterPreviewMetric.java new file mode 100644 index 00000000000..6c9d37d4b8b --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFilterPreviewMetric.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.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; + +/** A CloudWatch metric and the Datadog metric names it produces. */ +@JsonPropertyOrder({ + AWSMetricNameFilterPreviewMetric.JSON_PROPERTY_CW_NAME, + AWSMetricNameFilterPreviewMetric.JSON_PROPERTY_DD_NAMES +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class AWSMetricNameFilterPreviewMetric { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_CW_NAME = "cw_name"; + private String cwName; + + public static final String JSON_PROPERTY_DD_NAMES = "dd_names"; + private List ddNames = new ArrayList<>(); + + public AWSMetricNameFilterPreviewMetric() {} + + @JsonCreator + public AWSMetricNameFilterPreviewMetric( + @JsonProperty(required = true, value = JSON_PROPERTY_CW_NAME) String cwName, + @JsonProperty(required = true, value = JSON_PROPERTY_DD_NAMES) + List ddNames) { + this.cwName = cwName; + this.ddNames = ddNames; + } + + public AWSMetricNameFilterPreviewMetric cwName(String cwName) { + this.cwName = cwName; + return this; + } + + /** + * The CloudWatch metric name. + * + * @return cwName + */ + @JsonProperty(JSON_PROPERTY_CW_NAME) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getCwName() { + return cwName; + } + + public void setCwName(String cwName) { + this.cwName = cwName; + } + + public AWSMetricNameFilterPreviewMetric ddNames(List ddNames) { + this.ddNames = ddNames; + for (AWSMetricNameFilterPreviewDDName item : ddNames) { + this.unparsed |= item.unparsed; + } + return this; + } + + public AWSMetricNameFilterPreviewMetric addDdNamesItem( + AWSMetricNameFilterPreviewDDName ddNamesItem) { + this.ddNames.add(ddNamesItem); + this.unparsed |= ddNamesItem.unparsed; + return this; + } + + /** + * The Datadog metric names produced from this CloudWatch metric. + * + * @return ddNames + */ + @JsonProperty(JSON_PROPERTY_DD_NAMES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getDdNames() { + return ddNames; + } + + public void setDdNames(List ddNames) { + this.ddNames = ddNames; + } + + /** + * 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 AWSMetricNameFilterPreviewMetric + */ + @JsonAnySetter + public AWSMetricNameFilterPreviewMetric 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 AWSMetricNameFilterPreviewMetric object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AWSMetricNameFilterPreviewMetric awsMetricNameFilterPreviewMetric = + (AWSMetricNameFilterPreviewMetric) o; + return Objects.equals(this.cwName, awsMetricNameFilterPreviewMetric.cwName) + && Objects.equals(this.ddNames, awsMetricNameFilterPreviewMetric.ddNames) + && Objects.equals( + this.additionalProperties, awsMetricNameFilterPreviewMetric.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(cwName, ddNames, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AWSMetricNameFilterPreviewMetric {\n"); + sb.append(" cwName: ").append(toIndentedString(cwName)).append("\n"); + sb.append(" ddNames: ").append(toIndentedString(ddNames)).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/AWSMetricNameFilterPreviewNamespace.java b/src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFilterPreviewNamespace.java new file mode 100644 index 00000000000..ab4964ce022 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFilterPreviewNamespace.java @@ -0,0 +1,230 @@ +/* + * 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; + +/** The metric name filter preview for a single namespace. */ +@JsonPropertyOrder({ + AWSMetricNameFilterPreviewNamespace.JSON_PROPERTY_FILTERS, + AWSMetricNameFilterPreviewNamespace.JSON_PROPERTY_METRICS, + AWSMetricNameFilterPreviewNamespace.JSON_PROPERTY_NAMESPACE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class AWSMetricNameFilterPreviewNamespace { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_FILTERS = "filters"; + private List filters = new ArrayList<>(); + + public static final String JSON_PROPERTY_METRICS = "metrics"; + private List metrics = new ArrayList<>(); + + public static final String JSON_PROPERTY_NAMESPACE = "namespace"; + private String namespace; + + public AWSMetricNameFilterPreviewNamespace() {} + + @JsonCreator + public AWSMetricNameFilterPreviewNamespace( + @JsonProperty(required = true, value = JSON_PROPERTY_FILTERS) + List filters, + @JsonProperty(required = true, value = JSON_PROPERTY_METRICS) + List metrics, + @JsonProperty(required = true, value = JSON_PROPERTY_NAMESPACE) String namespace) { + this.filters = filters; + this.metrics = metrics; + this.namespace = namespace; + } + + public AWSMetricNameFilterPreviewNamespace filters( + List filters) { + this.filters = filters; + for (AWSMetricNameFilterPreviewFilterMatch item : filters) { + this.unparsed |= item.unparsed; + } + return this; + } + + public AWSMetricNameFilterPreviewNamespace addFiltersItem( + AWSMetricNameFilterPreviewFilterMatch filtersItem) { + this.filters.add(filtersItem); + this.unparsed |= filtersItem.unparsed; + return this; + } + + /** + * The metric name filter patterns evaluated for this namespace and how many metrics they matched. + * + * @return filters + */ + @JsonProperty(JSON_PROPERTY_FILTERS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getFilters() { + return filters; + } + + public void setFilters(List filters) { + this.filters = filters; + } + + public AWSMetricNameFilterPreviewNamespace metrics( + List metrics) { + this.metrics = metrics; + for (AWSMetricNameFilterPreviewMetric item : metrics) { + this.unparsed |= item.unparsed; + } + return this; + } + + public AWSMetricNameFilterPreviewNamespace addMetricsItem( + AWSMetricNameFilterPreviewMetric metricsItem) { + this.metrics.add(metricsItem); + this.unparsed |= metricsItem.unparsed; + return this; + } + + /** + * The CloudWatch metrics collected for this namespace and whether each resulting Datadog metric + * is filtered. + * + * @return metrics + */ + @JsonProperty(JSON_PROPERTY_METRICS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getMetrics() { + return metrics; + } + + public void setMetrics(List metrics) { + this.metrics = metrics; + } + + public AWSMetricNameFilterPreviewNamespace namespace(String namespace) { + this.namespace = namespace; + return this; + } + + /** + * The AWS CloudWatch namespace. + * + * @return namespace + */ + @JsonProperty(JSON_PROPERTY_NAMESPACE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getNamespace() { + return namespace; + } + + public void setNamespace(String namespace) { + this.namespace = namespace; + } + + /** + * 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 AWSMetricNameFilterPreviewNamespace + */ + @JsonAnySetter + public AWSMetricNameFilterPreviewNamespace 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 AWSMetricNameFilterPreviewNamespace object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AWSMetricNameFilterPreviewNamespace awsMetricNameFilterPreviewNamespace = + (AWSMetricNameFilterPreviewNamespace) o; + return Objects.equals(this.filters, awsMetricNameFilterPreviewNamespace.filters) + && Objects.equals(this.metrics, awsMetricNameFilterPreviewNamespace.metrics) + && Objects.equals(this.namespace, awsMetricNameFilterPreviewNamespace.namespace) + && Objects.equals( + this.additionalProperties, awsMetricNameFilterPreviewNamespace.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(filters, metrics, namespace, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AWSMetricNameFilterPreviewNamespace {\n"); + sb.append(" filters: ").append(toIndentedString(filters)).append("\n"); + sb.append(" metrics: ").append(toIndentedString(metrics)).append("\n"); + sb.append(" namespace: ").append(toIndentedString(namespace)).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/AWSMetricNameFilterPreviewRequest.java b/src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFilterPreviewRequest.java new file mode 100644 index 00000000000..9bab3ce6524 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFilterPreviewRequest.java @@ -0,0 +1,148 @@ +/* + * 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; + +/** AWS metric name filter preview request body. */ +@JsonPropertyOrder({AWSMetricNameFilterPreviewRequest.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class AWSMetricNameFilterPreviewRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private AWSMetricNameFilterPreviewRequestData data; + + public AWSMetricNameFilterPreviewRequest() {} + + @JsonCreator + public AWSMetricNameFilterPreviewRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + AWSMetricNameFilterPreviewRequestData data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public AWSMetricNameFilterPreviewRequest data(AWSMetricNameFilterPreviewRequestData data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * AWS metric name filter preview request data. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public AWSMetricNameFilterPreviewRequestData getData() { + return data; + } + + public void setData(AWSMetricNameFilterPreviewRequestData 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 AWSMetricNameFilterPreviewRequest + */ + @JsonAnySetter + public AWSMetricNameFilterPreviewRequest 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 AWSMetricNameFilterPreviewRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AWSMetricNameFilterPreviewRequest awsMetricNameFilterPreviewRequest = + (AWSMetricNameFilterPreviewRequest) o; + return Objects.equals(this.data, awsMetricNameFilterPreviewRequest.data) + && Objects.equals( + this.additionalProperties, awsMetricNameFilterPreviewRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AWSMetricNameFilterPreviewRequest {\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/AWSMetricNameFilterPreviewRequestAttributes.java b/src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFilterPreviewRequestAttributes.java new file mode 100644 index 00000000000..b272c260f65 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFilterPreviewRequestAttributes.java @@ -0,0 +1,162 @@ +/* + * 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; + +/** AWS metric name filter preview request attributes. */ +@JsonPropertyOrder({AWSMetricNameFilterPreviewRequestAttributes.JSON_PROPERTY_METRIC_NAME_FILTERS}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class AWSMetricNameFilterPreviewRequestAttributes { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_METRIC_NAME_FILTERS = "metric_name_filters"; + private List metricNameFilters = new ArrayList<>(); + + public AWSMetricNameFilterPreviewRequestAttributes() {} + + @JsonCreator + public AWSMetricNameFilterPreviewRequestAttributes( + @JsonProperty(required = true, value = JSON_PROPERTY_METRIC_NAME_FILTERS) + List metricNameFilters) { + this.metricNameFilters = metricNameFilters; + } + + public AWSMetricNameFilterPreviewRequestAttributes metricNameFilters( + List metricNameFilters) { + this.metricNameFilters = metricNameFilters; + for (AWSMetricNameFilters item : metricNameFilters) { + this.unparsed |= item.unparsed; + } + return this; + } + + public AWSMetricNameFilterPreviewRequestAttributes addMetricNameFiltersItem( + AWSMetricNameFilters metricNameFiltersItem) { + this.metricNameFilters.add(metricNameFiltersItem); + this.unparsed |= metricNameFiltersItem.unparsed; + return this; + } + + /** + * The metric name filters to preview. + * + * @return metricNameFilters + */ + @JsonProperty(JSON_PROPERTY_METRIC_NAME_FILTERS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getMetricNameFilters() { + return metricNameFilters; + } + + public void setMetricNameFilters(List metricNameFilters) { + this.metricNameFilters = metricNameFilters; + } + + /** + * 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 AWSMetricNameFilterPreviewRequestAttributes + */ + @JsonAnySetter + public AWSMetricNameFilterPreviewRequestAttributes 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 AWSMetricNameFilterPreviewRequestAttributes object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AWSMetricNameFilterPreviewRequestAttributes awsMetricNameFilterPreviewRequestAttributes = + (AWSMetricNameFilterPreviewRequestAttributes) o; + return Objects.equals( + this.metricNameFilters, awsMetricNameFilterPreviewRequestAttributes.metricNameFilters) + && Objects.equals( + this.additionalProperties, + awsMetricNameFilterPreviewRequestAttributes.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(metricNameFilters, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AWSMetricNameFilterPreviewRequestAttributes {\n"); + sb.append(" metricNameFilters: ").append(toIndentedString(metricNameFilters)).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/AWSMetricNameFilterPreviewRequestData.java b/src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFilterPreviewRequestData.java new file mode 100644 index 00000000000..7f2dff658c9 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFilterPreviewRequestData.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.HashMap; +import java.util.Map; +import java.util.Objects; + +/** AWS metric name filter preview request data. */ +@JsonPropertyOrder({ + AWSMetricNameFilterPreviewRequestData.JSON_PROPERTY_ATTRIBUTES, + AWSMetricNameFilterPreviewRequestData.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class AWSMetricNameFilterPreviewRequestData { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private AWSMetricNameFilterPreviewRequestAttributes attributes; + + public static final String JSON_PROPERTY_TYPE = "type"; + private AWSMetricNameFilterPreviewType type = + AWSMetricNameFilterPreviewType.METRIC_NAME_FILTER_PREVIEW; + + public AWSMetricNameFilterPreviewRequestData() {} + + @JsonCreator + public AWSMetricNameFilterPreviewRequestData( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + AWSMetricNameFilterPreviewRequestAttributes attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) + AWSMetricNameFilterPreviewType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public AWSMetricNameFilterPreviewRequestData attributes( + AWSMetricNameFilterPreviewRequestAttributes attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * AWS metric name filter preview request attributes. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public AWSMetricNameFilterPreviewRequestAttributes getAttributes() { + return attributes; + } + + public void setAttributes(AWSMetricNameFilterPreviewRequestAttributes attributes) { + this.attributes = attributes; + } + + public AWSMetricNameFilterPreviewRequestData type(AWSMetricNameFilterPreviewType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * The AWSMetricNameFilterPreviewResponseData type. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public AWSMetricNameFilterPreviewType getType() { + return type; + } + + public void setType(AWSMetricNameFilterPreviewType 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 AWSMetricNameFilterPreviewRequestData + */ + @JsonAnySetter + public AWSMetricNameFilterPreviewRequestData 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 AWSMetricNameFilterPreviewRequestData object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AWSMetricNameFilterPreviewRequestData awsMetricNameFilterPreviewRequestData = + (AWSMetricNameFilterPreviewRequestData) o; + return Objects.equals(this.attributes, awsMetricNameFilterPreviewRequestData.attributes) + && Objects.equals(this.type, awsMetricNameFilterPreviewRequestData.type) + && Objects.equals( + this.additionalProperties, awsMetricNameFilterPreviewRequestData.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AWSMetricNameFilterPreviewRequestData {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).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/AWSMetricNameFilterPreviewResponse.java b/src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFilterPreviewResponse.java new file mode 100644 index 00000000000..668f9f744f4 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFilterPreviewResponse.java @@ -0,0 +1,148 @@ +/* + * 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; + +/** AWS metric name filter preview response body. */ +@JsonPropertyOrder({AWSMetricNameFilterPreviewResponse.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class AWSMetricNameFilterPreviewResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private AWSMetricNameFilterPreviewResponseData data; + + public AWSMetricNameFilterPreviewResponse() {} + + @JsonCreator + public AWSMetricNameFilterPreviewResponse( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + AWSMetricNameFilterPreviewResponseData data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public AWSMetricNameFilterPreviewResponse data(AWSMetricNameFilterPreviewResponseData data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * AWS metric name filter preview response data. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public AWSMetricNameFilterPreviewResponseData getData() { + return data; + } + + public void setData(AWSMetricNameFilterPreviewResponseData 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 AWSMetricNameFilterPreviewResponse + */ + @JsonAnySetter + public AWSMetricNameFilterPreviewResponse 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 AWSMetricNameFilterPreviewResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AWSMetricNameFilterPreviewResponse awsMetricNameFilterPreviewResponse = + (AWSMetricNameFilterPreviewResponse) o; + return Objects.equals(this.data, awsMetricNameFilterPreviewResponse.data) + && Objects.equals( + this.additionalProperties, awsMetricNameFilterPreviewResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AWSMetricNameFilterPreviewResponse {\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/AWSMetricNameFilterPreviewResponseAttributes.java b/src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFilterPreviewResponseAttributes.java new file mode 100644 index 00000000000..2ef27e28a41 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFilterPreviewResponseAttributes.java @@ -0,0 +1,161 @@ +/* + * 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; + +/** AWS metric name filter preview response attributes. */ +@JsonPropertyOrder({AWSMetricNameFilterPreviewResponseAttributes.JSON_PROPERTY_NAMESPACES}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class AWSMetricNameFilterPreviewResponseAttributes { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_NAMESPACES = "namespaces"; + private List namespaces = new ArrayList<>(); + + public AWSMetricNameFilterPreviewResponseAttributes() {} + + @JsonCreator + public AWSMetricNameFilterPreviewResponseAttributes( + @JsonProperty(required = true, value = JSON_PROPERTY_NAMESPACES) + List namespaces) { + this.namespaces = namespaces; + } + + public AWSMetricNameFilterPreviewResponseAttributes namespaces( + List namespaces) { + this.namespaces = namespaces; + for (AWSMetricNameFilterPreviewNamespace item : namespaces) { + this.unparsed |= item.unparsed; + } + return this; + } + + public AWSMetricNameFilterPreviewResponseAttributes addNamespacesItem( + AWSMetricNameFilterPreviewNamespace namespacesItem) { + this.namespaces.add(namespacesItem); + this.unparsed |= namespacesItem.unparsed; + return this; + } + + /** + * The list of namespaces affected by the previewed metric name filters. + * + * @return namespaces + */ + @JsonProperty(JSON_PROPERTY_NAMESPACES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getNamespaces() { + return namespaces; + } + + public void setNamespaces(List namespaces) { + this.namespaces = namespaces; + } + + /** + * 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 AWSMetricNameFilterPreviewResponseAttributes + */ + @JsonAnySetter + public AWSMetricNameFilterPreviewResponseAttributes 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 AWSMetricNameFilterPreviewResponseAttributes object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AWSMetricNameFilterPreviewResponseAttributes awsMetricNameFilterPreviewResponseAttributes = + (AWSMetricNameFilterPreviewResponseAttributes) o; + return Objects.equals(this.namespaces, awsMetricNameFilterPreviewResponseAttributes.namespaces) + && Objects.equals( + this.additionalProperties, + awsMetricNameFilterPreviewResponseAttributes.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(namespaces, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AWSMetricNameFilterPreviewResponseAttributes {\n"); + sb.append(" namespaces: ").append(toIndentedString(namespaces)).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/AWSMetricNameFilterPreviewResponseData.java b/src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFilterPreviewResponseData.java new file mode 100644 index 00000000000..dae97d33a68 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFilterPreviewResponseData.java @@ -0,0 +1,217 @@ +/* + * 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; + +/** AWS metric name filter preview response data. */ +@JsonPropertyOrder({ + AWSMetricNameFilterPreviewResponseData.JSON_PROPERTY_ATTRIBUTES, + AWSMetricNameFilterPreviewResponseData.JSON_PROPERTY_ID, + AWSMetricNameFilterPreviewResponseData.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class AWSMetricNameFilterPreviewResponseData { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private AWSMetricNameFilterPreviewResponseAttributes attributes; + + public static final String JSON_PROPERTY_ID = "id"; + private String id; + + public static final String JSON_PROPERTY_TYPE = "type"; + private AWSMetricNameFilterPreviewType type = + AWSMetricNameFilterPreviewType.METRIC_NAME_FILTER_PREVIEW; + + public AWSMetricNameFilterPreviewResponseData() {} + + @JsonCreator + public AWSMetricNameFilterPreviewResponseData( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + AWSMetricNameFilterPreviewResponseAttributes attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) + AWSMetricNameFilterPreviewType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.id = id; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public AWSMetricNameFilterPreviewResponseData attributes( + AWSMetricNameFilterPreviewResponseAttributes attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * AWS metric name filter preview response attributes. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public AWSMetricNameFilterPreviewResponseAttributes getAttributes() { + return attributes; + } + + public void setAttributes(AWSMetricNameFilterPreviewResponseAttributes attributes) { + this.attributes = attributes; + } + + public AWSMetricNameFilterPreviewResponseData id(String id) { + this.id = id; + return this; + } + + /** + * Unique Datadog ID of the AWS Account Integration Config. To get the config ID for an account, + * use the List + * all AWS integrations endpoint and query by AWS Account ID. + * + * @return id + */ + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public AWSMetricNameFilterPreviewResponseData type(AWSMetricNameFilterPreviewType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * The AWSMetricNameFilterPreviewResponseData type. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public AWSMetricNameFilterPreviewType getType() { + return type; + } + + public void setType(AWSMetricNameFilterPreviewType 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 AWSMetricNameFilterPreviewResponseData + */ + @JsonAnySetter + public AWSMetricNameFilterPreviewResponseData 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 AWSMetricNameFilterPreviewResponseData object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AWSMetricNameFilterPreviewResponseData awsMetricNameFilterPreviewResponseData = + (AWSMetricNameFilterPreviewResponseData) o; + return Objects.equals(this.attributes, awsMetricNameFilterPreviewResponseData.attributes) + && Objects.equals(this.id, awsMetricNameFilterPreviewResponseData.id) + && Objects.equals(this.type, awsMetricNameFilterPreviewResponseData.type) + && Objects.equals( + this.additionalProperties, awsMetricNameFilterPreviewResponseData.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, id, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AWSMetricNameFilterPreviewResponseData {\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/AWSMetricNameFilterPreviewType.java b/src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFilterPreviewType.java new file mode 100644 index 00000000000..04051965ddf --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFilterPreviewType.java @@ -0,0 +1,58 @@ +/* + * 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; + +/** The AWSMetricNameFilterPreviewResponseData type. */ +@JsonSerialize( + using = AWSMetricNameFilterPreviewType.AWSMetricNameFilterPreviewTypeSerializer.class) +public class AWSMetricNameFilterPreviewType extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("metric_name_filter_preview")); + + public static final AWSMetricNameFilterPreviewType METRIC_NAME_FILTER_PREVIEW = + new AWSMetricNameFilterPreviewType("metric_name_filter_preview"); + + AWSMetricNameFilterPreviewType(String value) { + super(value, allowedValues); + } + + public static class AWSMetricNameFilterPreviewTypeSerializer + extends StdSerializer { + public AWSMetricNameFilterPreviewTypeSerializer(Class t) { + super(t); + } + + public AWSMetricNameFilterPreviewTypeSerializer() { + this(null); + } + + @Override + public void serialize( + AWSMetricNameFilterPreviewType value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static AWSMetricNameFilterPreviewType fromValue(String value) { + return new AWSMetricNameFilterPreviewType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFilters.java b/src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFilters.java new file mode 100644 index 00000000000..db54d6006c2 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFilters.java @@ -0,0 +1,290 @@ +/* + * 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 = AWSMetricNameFilters.AWSMetricNameFiltersDeserializer.class) +@JsonSerialize(using = AWSMetricNameFilters.AWSMetricNameFiltersSerializer.class) +public class AWSMetricNameFilters extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(AWSMetricNameFilters.class.getName()); + + @JsonIgnore public boolean unparsed = false; + + public static class AWSMetricNameFiltersSerializer extends StdSerializer { + public AWSMetricNameFiltersSerializer(Class t) { + super(t); + } + + public AWSMetricNameFiltersSerializer() { + this(null); + } + + @Override + public void serialize( + AWSMetricNameFilters value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.getActualInstance()); + } + } + + public static class AWSMetricNameFiltersDeserializer + extends StdDeserializer { + public AWSMetricNameFiltersDeserializer() { + this(AWSMetricNameFilters.class); + } + + public AWSMetricNameFiltersDeserializer(Class vc) { + super(vc); + } + + @Override + public AWSMetricNameFilters 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 AWSMetricNameFiltersIncludeOnly + try { + boolean attemptParsing = true; + // ensure that we respect type coercion as set on the client ObjectMapper + if (AWSMetricNameFiltersIncludeOnly.class.equals(Integer.class) + || AWSMetricNameFiltersIncludeOnly.class.equals(Long.class) + || AWSMetricNameFiltersIncludeOnly.class.equals(Float.class) + || AWSMetricNameFiltersIncludeOnly.class.equals(Double.class) + || AWSMetricNameFiltersIncludeOnly.class.equals(Boolean.class) + || AWSMetricNameFiltersIncludeOnly.class.equals(String.class)) { + attemptParsing = typeCoercion; + if (!attemptParsing) { + attemptParsing |= + ((AWSMetricNameFiltersIncludeOnly.class.equals(Integer.class) + || AWSMetricNameFiltersIncludeOnly.class.equals(Long.class)) + && token == JsonToken.VALUE_NUMBER_INT); + attemptParsing |= + ((AWSMetricNameFiltersIncludeOnly.class.equals(Float.class) + || AWSMetricNameFiltersIncludeOnly.class.equals(Double.class)) + && (token == JsonToken.VALUE_NUMBER_FLOAT + || token == JsonToken.VALUE_NUMBER_INT)); + attemptParsing |= + (AWSMetricNameFiltersIncludeOnly.class.equals(Boolean.class) + && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE)); + attemptParsing |= + (AWSMetricNameFiltersIncludeOnly.class.equals(String.class) + && token == JsonToken.VALUE_STRING); + } + } + if (attemptParsing) { + tmp = tree.traverse(jp.getCodec()).readValueAs(AWSMetricNameFiltersIncludeOnly.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 (!((AWSMetricNameFiltersIncludeOnly) tmp).unparsed) { + deserialized = tmp; + match++; + } + log.log(Level.FINER, "Input data matches schema 'AWSMetricNameFiltersIncludeOnly'"); + } + } catch (Exception e) { + // deserialization failed, continue + log.log( + Level.FINER, "Input data does not match schema 'AWSMetricNameFiltersIncludeOnly'", e); + } + + // deserialize AWSMetricNameFiltersExcludeOnly + try { + boolean attemptParsing = true; + // ensure that we respect type coercion as set on the client ObjectMapper + if (AWSMetricNameFiltersExcludeOnly.class.equals(Integer.class) + || AWSMetricNameFiltersExcludeOnly.class.equals(Long.class) + || AWSMetricNameFiltersExcludeOnly.class.equals(Float.class) + || AWSMetricNameFiltersExcludeOnly.class.equals(Double.class) + || AWSMetricNameFiltersExcludeOnly.class.equals(Boolean.class) + || AWSMetricNameFiltersExcludeOnly.class.equals(String.class)) { + attemptParsing = typeCoercion; + if (!attemptParsing) { + attemptParsing |= + ((AWSMetricNameFiltersExcludeOnly.class.equals(Integer.class) + || AWSMetricNameFiltersExcludeOnly.class.equals(Long.class)) + && token == JsonToken.VALUE_NUMBER_INT); + attemptParsing |= + ((AWSMetricNameFiltersExcludeOnly.class.equals(Float.class) + || AWSMetricNameFiltersExcludeOnly.class.equals(Double.class)) + && (token == JsonToken.VALUE_NUMBER_FLOAT + || token == JsonToken.VALUE_NUMBER_INT)); + attemptParsing |= + (AWSMetricNameFiltersExcludeOnly.class.equals(Boolean.class) + && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE)); + attemptParsing |= + (AWSMetricNameFiltersExcludeOnly.class.equals(String.class) + && token == JsonToken.VALUE_STRING); + } + } + if (attemptParsing) { + tmp = tree.traverse(jp.getCodec()).readValueAs(AWSMetricNameFiltersExcludeOnly.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 (!((AWSMetricNameFiltersExcludeOnly) tmp).unparsed) { + deserialized = tmp; + match++; + } + log.log(Level.FINER, "Input data matches schema 'AWSMetricNameFiltersExcludeOnly'"); + } + } catch (Exception e) { + // deserialization failed, continue + log.log( + Level.FINER, "Input data does not match schema 'AWSMetricNameFiltersExcludeOnly'", e); + } + + AWSMetricNameFilters ret = new AWSMetricNameFilters(); + if (match == 1) { + ret.setActualInstance(deserialized); + } else { + Map res = + new ObjectMapper() + .readValue( + tree.traverse(jp.getCodec()).readValueAsTree().toString(), + new TypeReference>() {}); + ret.setActualInstance(new UnparsedObject(res)); + } + return ret; + } + + /** Handle deserialization of the 'null' value. */ + @Override + public AWSMetricNameFilters getNullValue(DeserializationContext ctxt) + throws JsonMappingException { + throw new JsonMappingException(ctxt.getParser(), "AWSMetricNameFilters cannot be null"); + } + } + + // store a list of schema names defined in oneOf + public static final Map schemas = new HashMap(); + + public AWSMetricNameFilters() { + super("oneOf", Boolean.FALSE); + } + + public AWSMetricNameFilters(AWSMetricNameFiltersIncludeOnly o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + public AWSMetricNameFilters(AWSMetricNameFiltersExcludeOnly o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put( + "AWSMetricNameFiltersIncludeOnly", new GenericType() {}); + schemas.put( + "AWSMetricNameFiltersExcludeOnly", new GenericType() {}); + JSON.registerDescendants(AWSMetricNameFilters.class, Collections.unmodifiableMap(schemas)); + } + + @Override + public Map getSchemas() { + return AWSMetricNameFilters.schemas; + } + + /** + * Set the instance that matches the oneOf child schema, check the instance parameter is valid + * against the oneOf child schemas: AWSMetricNameFiltersIncludeOnly, + * AWSMetricNameFiltersExcludeOnly + * + *

It could be an instance of the 'oneOf' schemas. The oneOf child schemas may themselves be a + * composed schema (allOf, anyOf, oneOf). + */ + @Override + public void setActualInstance(Object instance) { + if (JSON.isInstanceOf( + AWSMetricNameFiltersIncludeOnly.class, instance, new HashSet>())) { + super.setActualInstance(instance); + return; + } + if (JSON.isInstanceOf( + AWSMetricNameFiltersExcludeOnly.class, instance, new HashSet>())) { + super.setActualInstance(instance); + return; + } + + if (JSON.isInstanceOf(UnparsedObject.class, instance, new HashSet>())) { + super.setActualInstance(instance); + return; + } + throw new RuntimeException( + "Invalid instance type. Must be AWSMetricNameFiltersIncludeOnly," + + " AWSMetricNameFiltersExcludeOnly"); + } + + /** + * Get the actual instance, which can be the following: AWSMetricNameFiltersIncludeOnly, + * AWSMetricNameFiltersExcludeOnly + * + * @return The actual instance (AWSMetricNameFiltersIncludeOnly, AWSMetricNameFiltersExcludeOnly) + */ + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `AWSMetricNameFiltersIncludeOnly`. If the actual instance is not + * `AWSMetricNameFiltersIncludeOnly`, the ClassCastException will be thrown. + * + * @return The actual instance of `AWSMetricNameFiltersIncludeOnly` + * @throws ClassCastException if the instance is not `AWSMetricNameFiltersIncludeOnly` + */ + public AWSMetricNameFiltersIncludeOnly getAWSMetricNameFiltersIncludeOnly() + throws ClassCastException { + return (AWSMetricNameFiltersIncludeOnly) super.getActualInstance(); + } + + /** + * Get the actual instance of `AWSMetricNameFiltersExcludeOnly`. If the actual instance is not + * `AWSMetricNameFiltersExcludeOnly`, the ClassCastException will be thrown. + * + * @return The actual instance of `AWSMetricNameFiltersExcludeOnly` + * @throws ClassCastException if the instance is not `AWSMetricNameFiltersExcludeOnly` + */ + public AWSMetricNameFiltersExcludeOnly getAWSMetricNameFiltersExcludeOnly() + throws ClassCastException { + return (AWSMetricNameFiltersExcludeOnly) super.getActualInstance(); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFiltersExcludeOnly.java b/src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFiltersExcludeOnly.java new file mode 100644 index 00000000000..6996041107e --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFiltersExcludeOnly.java @@ -0,0 +1,182 @@ +/* + * 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; + +/** Exclude metric names matching one of these patterns for a single namespace. */ +@JsonPropertyOrder({ + AWSMetricNameFiltersExcludeOnly.JSON_PROPERTY_EXCLUDE_ONLY, + AWSMetricNameFiltersExcludeOnly.JSON_PROPERTY_NAMESPACE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class AWSMetricNameFiltersExcludeOnly { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_EXCLUDE_ONLY = "exclude_only"; + private List excludeOnly = new ArrayList<>(); + + public static final String JSON_PROPERTY_NAMESPACE = "namespace"; + private String namespace; + + public AWSMetricNameFiltersExcludeOnly() {} + + @JsonCreator + public AWSMetricNameFiltersExcludeOnly( + @JsonProperty(required = true, value = JSON_PROPERTY_EXCLUDE_ONLY) List excludeOnly, + @JsonProperty(required = true, value = JSON_PROPERTY_NAMESPACE) String namespace) { + this.excludeOnly = excludeOnly; + this.namespace = namespace; + } + + public AWSMetricNameFiltersExcludeOnly excludeOnly(List excludeOnly) { + this.excludeOnly = excludeOnly; + return this; + } + + public AWSMetricNameFiltersExcludeOnly addExcludeOnlyItem(String excludeOnlyItem) { + this.excludeOnly.add(excludeOnlyItem); + return this; + } + + /** + * Exclude metric names matching one of these patterns. + * + * @return excludeOnly + */ + @JsonProperty(JSON_PROPERTY_EXCLUDE_ONLY) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getExcludeOnly() { + return excludeOnly; + } + + public void setExcludeOnly(List excludeOnly) { + this.excludeOnly = excludeOnly; + } + + public AWSMetricNameFiltersExcludeOnly namespace(String namespace) { + this.namespace = namespace; + return this; + } + + /** + * The AWS CloudWatch namespace to which this metric name filter applies. + * + * @return namespace + */ + @JsonProperty(JSON_PROPERTY_NAMESPACE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getNamespace() { + return namespace; + } + + public void setNamespace(String namespace) { + this.namespace = namespace; + } + + /** + * 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 AWSMetricNameFiltersExcludeOnly + */ + @JsonAnySetter + public AWSMetricNameFiltersExcludeOnly 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 AWSMetricNameFiltersExcludeOnly object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AWSMetricNameFiltersExcludeOnly awsMetricNameFiltersExcludeOnly = + (AWSMetricNameFiltersExcludeOnly) o; + return Objects.equals(this.excludeOnly, awsMetricNameFiltersExcludeOnly.excludeOnly) + && Objects.equals(this.namespace, awsMetricNameFiltersExcludeOnly.namespace) + && Objects.equals( + this.additionalProperties, awsMetricNameFiltersExcludeOnly.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(excludeOnly, namespace, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AWSMetricNameFiltersExcludeOnly {\n"); + sb.append(" excludeOnly: ").append(toIndentedString(excludeOnly)).append("\n"); + sb.append(" namespace: ").append(toIndentedString(namespace)).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/AWSMetricNameFiltersIncludeOnly.java b/src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFiltersIncludeOnly.java new file mode 100644 index 00000000000..cbaea409374 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/AWSMetricNameFiltersIncludeOnly.java @@ -0,0 +1,182 @@ +/* + * 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; + +/** Include only metric names matching one of these patterns for a single namespace. */ +@JsonPropertyOrder({ + AWSMetricNameFiltersIncludeOnly.JSON_PROPERTY_INCLUDE_ONLY, + AWSMetricNameFiltersIncludeOnly.JSON_PROPERTY_NAMESPACE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class AWSMetricNameFiltersIncludeOnly { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_INCLUDE_ONLY = "include_only"; + private List includeOnly = new ArrayList<>(); + + public static final String JSON_PROPERTY_NAMESPACE = "namespace"; + private String namespace; + + public AWSMetricNameFiltersIncludeOnly() {} + + @JsonCreator + public AWSMetricNameFiltersIncludeOnly( + @JsonProperty(required = true, value = JSON_PROPERTY_INCLUDE_ONLY) List includeOnly, + @JsonProperty(required = true, value = JSON_PROPERTY_NAMESPACE) String namespace) { + this.includeOnly = includeOnly; + this.namespace = namespace; + } + + public AWSMetricNameFiltersIncludeOnly includeOnly(List includeOnly) { + this.includeOnly = includeOnly; + return this; + } + + public AWSMetricNameFiltersIncludeOnly addIncludeOnlyItem(String includeOnlyItem) { + this.includeOnly.add(includeOnlyItem); + return this; + } + + /** + * Include only metric names matching one of these patterns. + * + * @return includeOnly + */ + @JsonProperty(JSON_PROPERTY_INCLUDE_ONLY) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getIncludeOnly() { + return includeOnly; + } + + public void setIncludeOnly(List includeOnly) { + this.includeOnly = includeOnly; + } + + public AWSMetricNameFiltersIncludeOnly namespace(String namespace) { + this.namespace = namespace; + return this; + } + + /** + * The AWS CloudWatch namespace to which this metric name filter applies. + * + * @return namespace + */ + @JsonProperty(JSON_PROPERTY_NAMESPACE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getNamespace() { + return namespace; + } + + public void setNamespace(String namespace) { + this.namespace = namespace; + } + + /** + * 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 AWSMetricNameFiltersIncludeOnly + */ + @JsonAnySetter + public AWSMetricNameFiltersIncludeOnly 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 AWSMetricNameFiltersIncludeOnly object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AWSMetricNameFiltersIncludeOnly awsMetricNameFiltersIncludeOnly = + (AWSMetricNameFiltersIncludeOnly) o; + return Objects.equals(this.includeOnly, awsMetricNameFiltersIncludeOnly.includeOnly) + && Objects.equals(this.namespace, awsMetricNameFiltersIncludeOnly.namespace) + && Objects.equals( + this.additionalProperties, awsMetricNameFiltersIncludeOnly.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(includeOnly, namespace, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AWSMetricNameFiltersIncludeOnly {\n"); + sb.append(" includeOnly: ").append(toIndentedString(includeOnly)).append("\n"); + sb.append(" namespace: ").append(toIndentedString(namespace)).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/AWSMetricsConfig.java b/src/main/java/com/datadog/api/client/v2/model/AWSMetricsConfig.java index ffa054c8029..f03c736f8f4 100644 --- a/src/main/java/com/datadog/api/client/v2/model/AWSMetricsConfig.java +++ b/src/main/java/com/datadog/api/client/v2/model/AWSMetricsConfig.java @@ -24,6 +24,7 @@ AWSMetricsConfig.JSON_PROPERTY_COLLECT_CLOUDWATCH_ALARMS, AWSMetricsConfig.JSON_PROPERTY_COLLECT_CUSTOM_METRICS, AWSMetricsConfig.JSON_PROPERTY_ENABLED, + AWSMetricsConfig.JSON_PROPERTY_METRIC_NAME_FILTERS, AWSMetricsConfig.JSON_PROPERTY_NAMESPACE_FILTERS, AWSMetricsConfig.JSON_PROPERTY_TAG_FILTERS }) @@ -43,6 +44,9 @@ public class AWSMetricsConfig { public static final String JSON_PROPERTY_ENABLED = "enabled"; private Boolean enabled; + public static final String JSON_PROPERTY_METRIC_NAME_FILTERS = "metric_name_filters"; + private List metricNameFilters = null; + public static final String JSON_PROPERTY_NAMESPACE_FILTERS = "namespace_filters"; private AWSNamespaceFilters namespaceFilters; @@ -133,6 +137,40 @@ public void setEnabled(Boolean enabled) { this.enabled = enabled; } + public AWSMetricsConfig metricNameFilters(List metricNameFilters) { + this.metricNameFilters = metricNameFilters; + for (AWSMetricNameFilters item : metricNameFilters) { + this.unparsed |= item.unparsed; + } + return this; + } + + public AWSMetricsConfig addMetricNameFiltersItem(AWSMetricNameFilters metricNameFiltersItem) { + if (this.metricNameFilters == null) { + this.metricNameFilters = new ArrayList<>(); + } + this.metricNameFilters.add(metricNameFiltersItem); + this.unparsed |= metricNameFiltersItem.unparsed; + return this; + } + + /** + * AWS CloudWatch metric name filters. Each filter applies to a single namespace. Exactly one of + * include_only or exclude_only must be set on each filter. + * + * @return metricNameFilters + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_METRIC_NAME_FILTERS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getMetricNameFilters() { + return metricNameFilters; + } + + public void setMetricNameFilters(List metricNameFilters) { + this.metricNameFilters = metricNameFilters; + } + public AWSMetricsConfig namespaceFilters(AWSNamespaceFilters namespaceFilters) { this.namespaceFilters = namespaceFilters; this.unparsed |= namespaceFilters.unparsed; @@ -248,6 +286,7 @@ public boolean equals(Object o) { && Objects.equals(this.collectCloudwatchAlarms, awsMetricsConfig.collectCloudwatchAlarms) && Objects.equals(this.collectCustomMetrics, awsMetricsConfig.collectCustomMetrics) && Objects.equals(this.enabled, awsMetricsConfig.enabled) + && Objects.equals(this.metricNameFilters, awsMetricsConfig.metricNameFilters) && Objects.equals(this.namespaceFilters, awsMetricsConfig.namespaceFilters) && Objects.equals(this.tagFilters, awsMetricsConfig.tagFilters) && Objects.equals(this.additionalProperties, awsMetricsConfig.additionalProperties); @@ -260,6 +299,7 @@ public int hashCode() { collectCloudwatchAlarms, collectCustomMetrics, enabled, + metricNameFilters, namespaceFilters, tagFilters, additionalProperties); @@ -277,6 +317,7 @@ public String toString() { .append(toIndentedString(collectCustomMetrics)) .append("\n"); sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n"); + sb.append(" metricNameFilters: ").append(toIndentedString(metricNameFilters)).append("\n"); sb.append(" namespaceFilters: ").append(toIndentedString(namespaceFilters)).append("\n"); sb.append(" tagFilters: ").append(toIndentedString(tagFilters)).append("\n"); sb.append(" additionalProperties: ") diff --git a/src/test/resources/com/datadog/api/client/v2/api/aws_integration.feature b/src/test/resources/com/datadog/api/client/v2/api/aws_integration.feature index dac51bb7449..8d91676e64b 100644 --- a/src/test/resources/com/datadog/api/client/v2/api/aws_integration.feature +++ b/src/test/resources/com/datadog/api/client/v2/api/aws_integration.feature @@ -185,6 +185,22 @@ Feature: AWS Integration When the request is sent Then the response status is 200 AWS integration standard IAM permissions. + @generated @skip @team:DataDog/aws-integrations + Scenario: Get AWS metric name filter preview returns "AWS metric name filter preview result" response + Given operation "GetAWSMetricNameFilterPreview" enabled + And new "GetAWSMetricNameFilterPreview" request + And request contains "aws_account_config_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 200 AWS metric name filter preview result + + @generated @skip @team:DataDog/aws-integrations + Scenario: Get AWS metric name filter preview returns "Not Found" response + Given operation "GetAWSMetricNameFilterPreview" enabled + And new "GetAWSMetricNameFilterPreview" request + And request contains "aws_account_config_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 Not Found + @generated @skip @team:DataDog/aws-integrations Scenario: Get all Amazon EventBridge sources returns "Amazon EventBridge sources list." response Given new "ListAWSEventBridgeSources" request @@ -249,6 +265,33 @@ Feature: AWS Integration When the request is sent Then the response status is 200 AWS Namespaces List object + @generated @skip @team:DataDog/aws-integrations + Scenario: Preview AWS metric name filter returns "AWS metric name filter preview result" response + Given operation "PreviewAWSMetricNameFilter" enabled + And new "PreviewAWSMetricNameFilter" request + And request contains "aws_account_config_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"metric_name_filters": [{"include_only": ["aws.ec2.network_in"], "namespace": "AWS/EC2"}]}, "type": "metric_name_filter_preview"}} + When the request is sent + Then the response status is 200 AWS metric name filter preview result + + @generated @skip @team:DataDog/aws-integrations + Scenario: Preview AWS metric name filter returns "Bad Request" response + Given operation "PreviewAWSMetricNameFilter" enabled + And new "PreviewAWSMetricNameFilter" request + And request contains "aws_account_config_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"metric_name_filters": [{"include_only": ["aws.ec2.network_in"], "namespace": "AWS/EC2"}]}, "type": "metric_name_filter_preview"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/aws-integrations + Scenario: Preview AWS metric name filter returns "Not Found" response + Given operation "PreviewAWSMetricNameFilter" enabled + And new "PreviewAWSMetricNameFilter" request + And request contains "aws_account_config_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"metric_name_filters": [{"include_only": ["aws.ec2.network_in"], "namespace": "AWS/EC2"}]}, "type": "metric_name_filter_preview"}} + When the request is sent + Then the response status is 404 Not Found + @skip @team:DataDog/aws-integrations Scenario: Update AWS CCM config returns "AWS CCM Config object" response Given operation "UpdateAWSAccountCCMConfig" enabled 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 1eaba52ee9b..22089f0ecea 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 @@ -3363,6 +3363,18 @@ "type": "unsafe" } }, + "GetAWSMetricNameFilterPreview": { + "tag": "AWS Integration", + "undo": { + "type": "safe" + } + }, + "PreviewAWSMetricNameFilter": { + "tag": "AWS Integration", + "undo": { + "type": "safe" + } + }, "ListAWSNamespaces": { "tag": "AWS Integration", "undo": {