diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 49e923cae4c..f42585b8272 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -4053,6 +4053,86 @@ components: type: string type: array type: object + AccountFilters: + description: The account filters for a cloud account. + properties: + attributes: + $ref: "#/components/schemas/AccountFiltersAttributes" + id: + description: The ID of the cloud account. + example: "123456789123" + type: string + type: + $ref: "#/components/schemas/AccountFiltersType" + required: + - attributes + - type + type: object + AccountFiltersAttributes: + description: Attributes for the account filters of a cloud account. + properties: + account_filters: + $ref: "#/components/schemas/AccountFilteringConfig" + account_id: + description: The cloud account ID. + example: "123456789123" + type: string + cloud: + description: The cloud provider of the account, for example `aws`, `aws_cur2`, or `oci`. + example: "aws_cur2" + type: string + type: object + AccountFiltersPatchData: + description: Account filters patch data. + properties: + attributes: + $ref: "#/components/schemas/AccountFiltersPatchRequestAttributes" + type: + $ref: "#/components/schemas/AccountFiltersPatchRequestType" + required: + - attributes + - type + type: object + AccountFiltersPatchRequest: + description: Account filters patch request. + properties: + data: + $ref: "#/components/schemas/AccountFiltersPatchData" + required: + - data + type: object + AccountFiltersPatchRequestAttributes: + description: Attributes for an account filters patch request. + properties: + account_filters: + $ref: "#/components/schemas/AccountFilteringConfig" + required: + - account_filters + type: object + AccountFiltersPatchRequestType: + default: account_filters_patch_request + description: Type of account filters patch request. + enum: + - account_filters_patch_request + example: account_filters_patch_request + type: string + x-enum-varnames: + - ACCOUNT_FILTERS_PATCH_REQUEST + AccountFiltersResponse: + description: Response containing the account filters for a cloud account. + properties: + data: + $ref: "#/components/schemas/AccountFilters" + type: object + AccountFiltersType: + default: account_filters + description: Type of account filters. + enum: + - account_filters + example: account_filters + type: string + x-enum-varnames: + - ACCOUNT_FILTERS ActionConnectionAttributes: description: The definition of `ActionConnectionAttributes` object. properties: @@ -70492,6 +70572,8 @@ components: $ref: "#/components/schemas/ObservabilityPipelineTagCardinalityLimitProcessorPerMetricLimit" maxItems: 100 type: array + tracking_mode: + $ref: "#/components/schemas/ObservabilityPipelineTagCardinalityLimitProcessorTrackingMode" type: $ref: "#/components/schemas/ObservabilityPipelineTagCardinalityLimitProcessorType" value_limit: @@ -70506,6 +70588,7 @@ components: - type - include - limit_exceeded_action + - tracking_mode - value_limit - enabled type: object @@ -70520,6 +70603,16 @@ components: x-enum-varnames: - DROP_TAG - DROP_EVENT + ObservabilityPipelineTagCardinalityLimitProcessorOverrideType: + description: How the override is applied. `limit_override` enforces a custom limit; `excluded` omits the metric or tag from cardinality tracking. + enum: + - limit_override + - excluded + example: limit_override + type: string + x-enum-varnames: + - LIMIT_OVERRIDE + - EXCLUDED ObservabilityPipelineTagCardinalityLimitProcessorPerMetricLimit: description: A cardinality override applied to a specific metric. properties: @@ -70529,16 +70622,16 @@ components: description: The name of the metric this override applies to. example: "system.cpu.user" type: string - mode: - $ref: "#/components/schemas/ObservabilityPipelineTagCardinalityLimitProcessorPerMetricMode" + override_type: + $ref: "#/components/schemas/ObservabilityPipelineTagCardinalityLimitProcessorOverrideType" per_tag_limits: - description: A list of per-tag cardinality overrides that apply within this metric. Must be omitted when `mode` is `excluded`. + description: A list of per-tag cardinality overrides that apply within this metric. Must be omitted when `override_type` is `excluded`. items: $ref: "#/components/schemas/ObservabilityPipelineTagCardinalityLimitProcessorPerTagLimit" maxItems: 50 type: array value_limit: - description: The maximum number of distinct tag value combinations allowed for this metric. Required when `mode` is `tracked`. Must be omitted when `mode` is `excluded`. + description: The maximum number of distinct tag value combinations allowed for this metric. Required when `override_type` is `limit_override`. Must be omitted when `override_type` is `excluded`. example: 10000 format: int64 maximum: 1000000 @@ -70546,29 +70639,19 @@ components: type: integer required: - metric_name - - mode + - override_type type: object - ObservabilityPipelineTagCardinalityLimitProcessorPerMetricMode: - description: How the per-metric override is applied. `tracked` enforces a custom limit; `excluded` skips the metric entirely. - enum: - - tracked - - excluded - example: tracked - type: string - x-enum-varnames: - - TRACKED - - EXCLUDED ObservabilityPipelineTagCardinalityLimitProcessorPerTagLimit: description: A cardinality override for a specific tag key within a per-metric limit. properties: - mode: - $ref: "#/components/schemas/ObservabilityPipelineTagCardinalityLimitProcessorPerTagMode" + override_type: + $ref: "#/components/schemas/ObservabilityPipelineTagCardinalityLimitProcessorOverrideType" tag_key: description: The tag key this override applies to. example: "host" type: string value_limit: - description: The maximum number of distinct values allowed for this tag. Required when `mode` is `limit_override`. Must be omitted when `mode` is `excluded`. + description: The maximum number of distinct values allowed for this tag. Required when `override_type` is `limit_override`. Must be omitted when `override_type` is `excluded`. example: 5000 format: int64 maximum: 1000000 @@ -70576,18 +70659,26 @@ components: type: integer required: - tag_key + - override_type + type: object + ObservabilityPipelineTagCardinalityLimitProcessorTrackingMode: + description: Controls whether the processor uses exact or probabilistic tag tracking. + properties: + mode: + $ref: "#/components/schemas/ObservabilityPipelineTagCardinalityLimitProcessorTrackingModeMode" + required: - mode type: object - ObservabilityPipelineTagCardinalityLimitProcessorPerTagMode: - description: How the per-tag override is applied. `limit_override` enforces a custom limit on the tag; `excluded` skips the tag from cardinality tracking. + ObservabilityPipelineTagCardinalityLimitProcessorTrackingModeMode: + description: The cardinality tracking algorithm to use. enum: - - limit_override - - excluded - example: limit_override + - exact_fingerprint + - probabilistic + example: exact_fingerprint type: string x-enum-varnames: - - LIMIT_OVERRIDE - - EXCLUDED + - EXACT_FINGERPRINT + - PROBABILISTIC ObservabilityPipelineTagCardinalityLimitProcessorType: default: tag_cardinality_limit description: The processor type. The value must be `tag_cardinality_limit`. @@ -125706,6 +125797,182 @@ paths: "x-permission": operator: OPEN permissions: [] + /api/v2/cost/account_filters/{cloud_account_id}: + get: + description: Get the account filters for a cloud account (AWS CUR 1.0/2.0, OCI, and other clouds). + operationId: GetCostAccountFilters + parameters: + - $ref: "#/components/parameters/CloudAccountID" + responses: + "200": + content: + application/json: + examples: + default: + summary: Include new accounts and exclude specific accounts + value: + data: + attributes: + account_filters: + excluded_accounts: + - "123456789123" + - "123456789143" + include_new_accounts: true + account_id: "123456789123" + cloud: aws_cur2 + id: "123" + type: account_filters + include_accounts: + summary: Exclude new accounts and include specific accounts + value: + data: + attributes: + account_filters: + include_new_accounts: false + included_accounts: + - "123456789123" + - "123456789143" + account_id: "123456789123" + cloud: aws_cur2 + id: "123" + type: account_filters + schema: + $ref: "#/components/schemas/AccountFiltersResponse" + description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Bad Request + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Forbidden + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Not Found + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cloud_cost_management_read + summary: Get account filters + tags: + - Cloud Cost Management + "x-permission": + operator: OR + permissions: + - cloud_cost_management_read + patch: + description: Update the account filters for a cloud account (AWS CUR 1.0/2.0, OCI, and other clouds). + operationId: UpdateCostAccountFilters + parameters: + - $ref: "#/components/parameters/CloudAccountID" + requestBody: + content: + application/json: + examples: + default: + summary: Exclude new accounts and include specific accounts + value: + data: + attributes: + account_filters: + include_new_accounts: false + included_accounts: + - "123456789123" + - "123456789143" + type: account_filters_patch_request + exclude_accounts: + summary: Include new accounts and exclude specific accounts + value: + data: + attributes: + account_filters: + excluded_accounts: + - "123456789123" + - "123456789143" + include_new_accounts: true + type: account_filters_patch_request + schema: + $ref: "#/components/schemas/AccountFiltersPatchRequest" + required: true + responses: + "200": + content: + application/json: + examples: + default: + summary: Exclude new accounts and include specific accounts + value: + data: + attributes: + account_filters: + include_new_accounts: false + included_accounts: + - "123456789123" + - "123456789143" + account_id: "123456789123" + cloud: aws_cur2 + id: "123" + type: account_filters + exclude_accounts: + summary: Include new accounts and exclude specific accounts + value: + data: + attributes: + account_filters: + excluded_accounts: + - "123456789123" + - "123456789143" + include_new_accounts: true + account_id: "123456789123" + cloud: aws_cur2 + id: "123" + type: account_filters + schema: + $ref: "#/components/schemas/AccountFiltersResponse" + description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Bad Request + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Forbidden + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Not Found + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cloud_cost_management_write + summary: Update account filters + tags: + - Cloud Cost Management + "x-permission": + operator: OR + permissions: + - cloud_cost_management_write /api/v2/cost/anomalies: get: description: List detected Cloud Cost Management anomalies for the organization. diff --git a/examples/v2/cloud-cost-management/GetCostAccountFilters.java b/examples/v2/cloud-cost-management/GetCostAccountFilters.java new file mode 100644 index 00000000000..339b8ff0d8c --- /dev/null +++ b/examples/v2/cloud-cost-management/GetCostAccountFilters.java @@ -0,0 +1,24 @@ +// Get account filters returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.CloudCostManagementApi; +import com.datadog.api.client.v2.model.AccountFiltersResponse; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + CloudCostManagementApi apiInstance = new CloudCostManagementApi(defaultClient); + + try { + AccountFiltersResponse result = apiInstance.getCostAccountFilters(9223372036854775807L); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling CloudCostManagementApi#getCostAccountFilters"); + 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/cloud-cost-management/UpdateCostAccountFilters.java b/examples/v2/cloud-cost-management/UpdateCostAccountFilters.java new file mode 100644 index 00000000000..fe0f212f4cb --- /dev/null +++ b/examples/v2/cloud-cost-management/UpdateCostAccountFilters.java @@ -0,0 +1,45 @@ +// Update account filters returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.CloudCostManagementApi; +import com.datadog.api.client.v2.model.AccountFilteringConfig; +import com.datadog.api.client.v2.model.AccountFiltersPatchData; +import com.datadog.api.client.v2.model.AccountFiltersPatchRequest; +import com.datadog.api.client.v2.model.AccountFiltersPatchRequestAttributes; +import com.datadog.api.client.v2.model.AccountFiltersPatchRequestType; +import com.datadog.api.client.v2.model.AccountFiltersResponse; +import java.util.Arrays; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + CloudCostManagementApi apiInstance = new CloudCostManagementApi(defaultClient); + + AccountFiltersPatchRequest body = + new AccountFiltersPatchRequest() + .data( + new AccountFiltersPatchData() + .attributes( + new AccountFiltersPatchRequestAttributes() + .accountFilters( + new AccountFilteringConfig() + .excludedAccounts(Arrays.asList("123456789123", "123456789143")) + .includeNewAccounts(true) + .includedAccounts( + Arrays.asList("123456789123", "123456789143")))) + .type(AccountFiltersPatchRequestType.ACCOUNT_FILTERS_PATCH_REQUEST)); + + try { + AccountFiltersResponse result = + apiInstance.updateCostAccountFilters(9223372036854775807L, body); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling CloudCostManagementApi#updateCostAccountFilters"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/src/main/java/com/datadog/api/client/v2/api/CloudCostManagementApi.java b/src/main/java/com/datadog/api/client/v2/api/CloudCostManagementApi.java index ce9211cae02..e14790cab98 100644 --- a/src/main/java/com/datadog/api/client/v2/api/CloudCostManagementApi.java +++ b/src/main/java/com/datadog/api/client/v2/api/CloudCostManagementApi.java @@ -4,6 +4,8 @@ import com.datadog.api.client.ApiException; import com.datadog.api.client.ApiResponse; import com.datadog.api.client.Pair; +import com.datadog.api.client.v2.model.AccountFiltersPatchRequest; +import com.datadog.api.client.v2.model.AccountFiltersResponse; import com.datadog.api.client.v2.model.ArbitraryCostUpsertRequest; import com.datadog.api.client.v2.model.ArbitraryRuleResponse; import com.datadog.api.client.v2.model.ArbitraryRuleResponseArray; @@ -5130,6 +5132,149 @@ public CommitmentsUtilizationTimeseriesResponse getCommitmentsUtilizationTimeser new GenericType() {}); } + /** + * Get account filters. + * + *

See {@link #getCostAccountFiltersWithHttpInfo}. + * + * @param cloudAccountId Cloud Account id. (required) + * @return AccountFiltersResponse + * @throws ApiException if fails to make API call + */ + public AccountFiltersResponse getCostAccountFilters(Long cloudAccountId) throws ApiException { + return getCostAccountFiltersWithHttpInfo(cloudAccountId).getData(); + } + + /** + * Get account filters. + * + *

See {@link #getCostAccountFiltersWithHttpInfoAsync}. + * + * @param cloudAccountId Cloud Account id. (required) + * @return CompletableFuture<AccountFiltersResponse> + */ + public CompletableFuture getCostAccountFiltersAsync(Long cloudAccountId) { + return getCostAccountFiltersWithHttpInfoAsync(cloudAccountId) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Get the account filters for a cloud account (AWS CUR 1.0/2.0, OCI, and other clouds). + * + * @param cloudAccountId Cloud Account id. (required) + * @return ApiResponse<AccountFiltersResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
400 Bad Request -
403 Forbidden -
404 Not Found -
429 Too many requests -
+ */ + public ApiResponse getCostAccountFiltersWithHttpInfo(Long cloudAccountId) + throws ApiException { + Object localVarPostBody = null; + + // verify the required parameter 'cloudAccountId' is set + if (cloudAccountId == null) { + throw new ApiException( + 400, + "Missing the required parameter 'cloudAccountId' when calling getCostAccountFilters"); + } + // create path and map variables + String localVarPath = + "/api/v2/cost/account_filters/{cloud_account_id}" + .replaceAll( + "\\{" + "cloud_account_id" + "\\}", + apiClient.escapeString(cloudAccountId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.CloudCostManagementApi.getCostAccountFilters", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + return apiClient.invokeAPI( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Get account filters. + * + *

See {@link #getCostAccountFiltersWithHttpInfo}. + * + * @param cloudAccountId Cloud Account id. (required) + * @return CompletableFuture<ApiResponse<AccountFiltersResponse>> + */ + public CompletableFuture> + getCostAccountFiltersWithHttpInfoAsync(Long cloudAccountId) { + Object localVarPostBody = null; + + // verify the required parameter 'cloudAccountId' is set + if (cloudAccountId == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'cloudAccountId' when calling" + + " getCostAccountFilters")); + return result; + } + // create path and map variables + String localVarPath = + "/api/v2/cost/account_filters/{cloud_account_id}" + .replaceAll( + "\\{" + "cloud_account_id" + "\\}", + apiClient.escapeString(cloudAccountId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.CloudCostManagementApi.getCostAccountFilters", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + /** * Get cost anomaly. * @@ -10607,6 +10752,171 @@ public ApiResponse searchCostRecommendationsWithHttpInf new GenericType() {}); } + /** + * Update account filters. + * + *

See {@link #updateCostAccountFiltersWithHttpInfo}. + * + * @param cloudAccountId Cloud Account id. (required) + * @param body (required) + * @return AccountFiltersResponse + * @throws ApiException if fails to make API call + */ + public AccountFiltersResponse updateCostAccountFilters( + Long cloudAccountId, AccountFiltersPatchRequest body) throws ApiException { + return updateCostAccountFiltersWithHttpInfo(cloudAccountId, body).getData(); + } + + /** + * Update account filters. + * + *

See {@link #updateCostAccountFiltersWithHttpInfoAsync}. + * + * @param cloudAccountId Cloud Account id. (required) + * @param body (required) + * @return CompletableFuture<AccountFiltersResponse> + */ + public CompletableFuture updateCostAccountFiltersAsync( + Long cloudAccountId, AccountFiltersPatchRequest body) { + return updateCostAccountFiltersWithHttpInfoAsync(cloudAccountId, body) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Update the account filters for a cloud account (AWS CUR 1.0/2.0, OCI, and other clouds). + * + * @param cloudAccountId Cloud Account id. (required) + * @param body (required) + * @return ApiResponse<AccountFiltersResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
400 Bad Request -
403 Forbidden -
404 Not Found -
429 Too many requests -
+ */ + public ApiResponse updateCostAccountFiltersWithHttpInfo( + Long cloudAccountId, AccountFiltersPatchRequest body) throws ApiException { + Object localVarPostBody = body; + + // verify the required parameter 'cloudAccountId' is set + if (cloudAccountId == null) { + throw new ApiException( + 400, + "Missing the required parameter 'cloudAccountId' when calling updateCostAccountFilters"); + } + + // verify the required parameter 'body' is set + if (body == null) { + throw new ApiException( + 400, "Missing the required parameter 'body' when calling updateCostAccountFilters"); + } + // create path and map variables + String localVarPath = + "/api/v2/cost/account_filters/{cloud_account_id}" + .replaceAll( + "\\{" + "cloud_account_id" + "\\}", + apiClient.escapeString(cloudAccountId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.CloudCostManagementApi.updateCostAccountFilters", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + return apiClient.invokeAPI( + "PATCH", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Update account filters. + * + *

See {@link #updateCostAccountFiltersWithHttpInfo}. + * + * @param cloudAccountId Cloud Account id. (required) + * @param body (required) + * @return CompletableFuture<ApiResponse<AccountFiltersResponse>> + */ + public CompletableFuture> + updateCostAccountFiltersWithHttpInfoAsync( + Long cloudAccountId, AccountFiltersPatchRequest body) { + Object localVarPostBody = body; + + // verify the required parameter 'cloudAccountId' is set + if (cloudAccountId == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'cloudAccountId' when calling" + + " updateCostAccountFilters")); + 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 updateCostAccountFilters")); + return result; + } + // create path and map variables + String localVarPath = + "/api/v2/cost/account_filters/{cloud_account_id}" + .replaceAll( + "\\{" + "cloud_account_id" + "\\}", + apiClient.escapeString(cloudAccountId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.CloudCostManagementApi.updateCostAccountFilters", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "PATCH", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + /** * Update Cloud Cost Management AWS CUR config. * diff --git a/src/main/java/com/datadog/api/client/v2/model/AccountFilters.java b/src/main/java/com/datadog/api/client/v2/model/AccountFilters.java new file mode 100644 index 00000000000..8d5f4c0a35c --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/AccountFilters.java @@ -0,0 +1,208 @@ +/* + * 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; + +/** The account filters for a cloud account. */ +@JsonPropertyOrder({ + AccountFilters.JSON_PROPERTY_ATTRIBUTES, + AccountFilters.JSON_PROPERTY_ID, + AccountFilters.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class AccountFilters { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private AccountFiltersAttributes attributes; + + public static final String JSON_PROPERTY_ID = "id"; + private String id; + + public static final String JSON_PROPERTY_TYPE = "type"; + private AccountFiltersType type = AccountFiltersType.ACCOUNT_FILTERS; + + public AccountFilters() {} + + @JsonCreator + public AccountFilters( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + AccountFiltersAttributes attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) AccountFiltersType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public AccountFilters attributes(AccountFiltersAttributes attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Attributes for the account filters of a cloud account. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public AccountFiltersAttributes getAttributes() { + return attributes; + } + + public void setAttributes(AccountFiltersAttributes attributes) { + this.attributes = attributes; + } + + public AccountFilters id(String id) { + this.id = id; + return this; + } + + /** + * The ID of the cloud account. + * + * @return id + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public AccountFilters type(AccountFiltersType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Type of account filters. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public AccountFiltersType getType() { + return type; + } + + public void setType(AccountFiltersType 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 AccountFilters + */ + @JsonAnySetter + public AccountFilters 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 AccountFilters object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AccountFilters accountFilters = (AccountFilters) o; + return Objects.equals(this.attributes, accountFilters.attributes) + && Objects.equals(this.id, accountFilters.id) + && Objects.equals(this.type, accountFilters.type) + && Objects.equals(this.additionalProperties, accountFilters.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, id, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AccountFilters {\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/AccountFiltersAttributes.java b/src/main/java/com/datadog/api/client/v2/model/AccountFiltersAttributes.java new file mode 100644 index 00000000000..17a0003c06e --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/AccountFiltersAttributes.java @@ -0,0 +1,193 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Attributes for the account filters of a cloud account. */ +@JsonPropertyOrder({ + AccountFiltersAttributes.JSON_PROPERTY_ACCOUNT_FILTERS, + AccountFiltersAttributes.JSON_PROPERTY_ACCOUNT_ID, + AccountFiltersAttributes.JSON_PROPERTY_CLOUD +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class AccountFiltersAttributes { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ACCOUNT_FILTERS = "account_filters"; + private AccountFilteringConfig accountFilters; + + public static final String JSON_PROPERTY_ACCOUNT_ID = "account_id"; + private String accountId; + + public static final String JSON_PROPERTY_CLOUD = "cloud"; + private String cloud; + + public AccountFiltersAttributes accountFilters(AccountFilteringConfig accountFilters) { + this.accountFilters = accountFilters; + this.unparsed |= accountFilters.unparsed; + return this; + } + + /** + * The account filtering configuration. + * + * @return accountFilters + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ACCOUNT_FILTERS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public AccountFilteringConfig getAccountFilters() { + return accountFilters; + } + + public void setAccountFilters(AccountFilteringConfig accountFilters) { + this.accountFilters = accountFilters; + } + + public AccountFiltersAttributes accountId(String accountId) { + this.accountId = accountId; + return this; + } + + /** + * The cloud account ID. + * + * @return accountId + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ACCOUNT_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getAccountId() { + return accountId; + } + + public void setAccountId(String accountId) { + this.accountId = accountId; + } + + public AccountFiltersAttributes cloud(String cloud) { + this.cloud = cloud; + return this; + } + + /** + * The cloud provider of the account, for example aws, aws_cur2, or + * oci. + * + * @return cloud + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_CLOUD) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getCloud() { + return cloud; + } + + public void setCloud(String cloud) { + this.cloud = cloud; + } + + /** + * 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 AccountFiltersAttributes + */ + @JsonAnySetter + public AccountFiltersAttributes 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 AccountFiltersAttributes object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AccountFiltersAttributes accountFiltersAttributes = (AccountFiltersAttributes) o; + return Objects.equals(this.accountFilters, accountFiltersAttributes.accountFilters) + && Objects.equals(this.accountId, accountFiltersAttributes.accountId) + && Objects.equals(this.cloud, accountFiltersAttributes.cloud) + && Objects.equals(this.additionalProperties, accountFiltersAttributes.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(accountFilters, accountId, cloud, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AccountFiltersAttributes {\n"); + sb.append(" accountFilters: ").append(toIndentedString(accountFilters)).append("\n"); + sb.append(" accountId: ").append(toIndentedString(accountId)).append("\n"); + sb.append(" cloud: ").append(toIndentedString(cloud)).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/AccountFiltersPatchData.java b/src/main/java/com/datadog/api/client/v2/model/AccountFiltersPatchData.java new file mode 100644 index 00000000000..931cbbb1a92 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/AccountFiltersPatchData.java @@ -0,0 +1,183 @@ +/* + * 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; + +/** Account filters patch data. */ +@JsonPropertyOrder({ + AccountFiltersPatchData.JSON_PROPERTY_ATTRIBUTES, + AccountFiltersPatchData.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class AccountFiltersPatchData { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private AccountFiltersPatchRequestAttributes attributes; + + public static final String JSON_PROPERTY_TYPE = "type"; + private AccountFiltersPatchRequestType type = + AccountFiltersPatchRequestType.ACCOUNT_FILTERS_PATCH_REQUEST; + + public AccountFiltersPatchData() {} + + @JsonCreator + public AccountFiltersPatchData( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + AccountFiltersPatchRequestAttributes attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) + AccountFiltersPatchRequestType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public AccountFiltersPatchData attributes(AccountFiltersPatchRequestAttributes attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Attributes for an account filters patch request. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public AccountFiltersPatchRequestAttributes getAttributes() { + return attributes; + } + + public void setAttributes(AccountFiltersPatchRequestAttributes attributes) { + this.attributes = attributes; + } + + public AccountFiltersPatchData type(AccountFiltersPatchRequestType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Type of account filters patch request. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public AccountFiltersPatchRequestType getType() { + return type; + } + + public void setType(AccountFiltersPatchRequestType 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 AccountFiltersPatchData + */ + @JsonAnySetter + public AccountFiltersPatchData 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 AccountFiltersPatchData object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AccountFiltersPatchData accountFiltersPatchData = (AccountFiltersPatchData) o; + return Objects.equals(this.attributes, accountFiltersPatchData.attributes) + && Objects.equals(this.type, accountFiltersPatchData.type) + && Objects.equals(this.additionalProperties, accountFiltersPatchData.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AccountFiltersPatchData {\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/AccountFiltersPatchRequest.java b/src/main/java/com/datadog/api/client/v2/model/AccountFiltersPatchRequest.java new file mode 100644 index 00000000000..bf665e78f38 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/AccountFiltersPatchRequest.java @@ -0,0 +1,146 @@ +/* + * 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; + +/** Account filters patch request. */ +@JsonPropertyOrder({AccountFiltersPatchRequest.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class AccountFiltersPatchRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private AccountFiltersPatchData data; + + public AccountFiltersPatchRequest() {} + + @JsonCreator + public AccountFiltersPatchRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) AccountFiltersPatchData data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public AccountFiltersPatchRequest data(AccountFiltersPatchData data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * Account filters patch data. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public AccountFiltersPatchData getData() { + return data; + } + + public void setData(AccountFiltersPatchData 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 AccountFiltersPatchRequest + */ + @JsonAnySetter + public AccountFiltersPatchRequest 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 AccountFiltersPatchRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AccountFiltersPatchRequest accountFiltersPatchRequest = (AccountFiltersPatchRequest) o; + return Objects.equals(this.data, accountFiltersPatchRequest.data) + && Objects.equals( + this.additionalProperties, accountFiltersPatchRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AccountFiltersPatchRequest {\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/AccountFiltersPatchRequestAttributes.java b/src/main/java/com/datadog/api/client/v2/model/AccountFiltersPatchRequestAttributes.java new file mode 100644 index 00000000000..3b014ae11be --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/AccountFiltersPatchRequestAttributes.java @@ -0,0 +1,149 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.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; + +/** Attributes for an account filters patch request. */ +@JsonPropertyOrder({AccountFiltersPatchRequestAttributes.JSON_PROPERTY_ACCOUNT_FILTERS}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class AccountFiltersPatchRequestAttributes { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ACCOUNT_FILTERS = "account_filters"; + private AccountFilteringConfig accountFilters; + + public AccountFiltersPatchRequestAttributes() {} + + @JsonCreator + public AccountFiltersPatchRequestAttributes( + @JsonProperty(required = true, value = JSON_PROPERTY_ACCOUNT_FILTERS) + AccountFilteringConfig accountFilters) { + this.accountFilters = accountFilters; + this.unparsed |= accountFilters.unparsed; + } + + public AccountFiltersPatchRequestAttributes accountFilters( + AccountFilteringConfig accountFilters) { + this.accountFilters = accountFilters; + this.unparsed |= accountFilters.unparsed; + return this; + } + + /** + * The account filtering configuration. + * + * @return accountFilters + */ + @JsonProperty(JSON_PROPERTY_ACCOUNT_FILTERS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public AccountFilteringConfig getAccountFilters() { + return accountFilters; + } + + public void setAccountFilters(AccountFilteringConfig accountFilters) { + this.accountFilters = accountFilters; + } + + /** + * 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 AccountFiltersPatchRequestAttributes + */ + @JsonAnySetter + public AccountFiltersPatchRequestAttributes 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 AccountFiltersPatchRequestAttributes object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AccountFiltersPatchRequestAttributes accountFiltersPatchRequestAttributes = + (AccountFiltersPatchRequestAttributes) o; + return Objects.equals(this.accountFilters, accountFiltersPatchRequestAttributes.accountFilters) + && Objects.equals( + this.additionalProperties, accountFiltersPatchRequestAttributes.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(accountFilters, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AccountFiltersPatchRequestAttributes {\n"); + sb.append(" accountFilters: ").append(toIndentedString(accountFilters)).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/AccountFiltersPatchRequestType.java b/src/main/java/com/datadog/api/client/v2/model/AccountFiltersPatchRequestType.java new file mode 100644 index 00000000000..2d189429485 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/AccountFiltersPatchRequestType.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; + +/** Type of account filters patch request. */ +@JsonSerialize( + using = AccountFiltersPatchRequestType.AccountFiltersPatchRequestTypeSerializer.class) +public class AccountFiltersPatchRequestType extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("account_filters_patch_request")); + + public static final AccountFiltersPatchRequestType ACCOUNT_FILTERS_PATCH_REQUEST = + new AccountFiltersPatchRequestType("account_filters_patch_request"); + + AccountFiltersPatchRequestType(String value) { + super(value, allowedValues); + } + + public static class AccountFiltersPatchRequestTypeSerializer + extends StdSerializer { + public AccountFiltersPatchRequestTypeSerializer(Class t) { + super(t); + } + + public AccountFiltersPatchRequestTypeSerializer() { + this(null); + } + + @Override + public void serialize( + AccountFiltersPatchRequestType value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static AccountFiltersPatchRequestType fromValue(String value) { + return new AccountFiltersPatchRequestType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/AccountFiltersResponse.java b/src/main/java/com/datadog/api/client/v2/model/AccountFiltersResponse.java new file mode 100644 index 00000000000..672479bb11a --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/AccountFiltersResponse.java @@ -0,0 +1,136 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Response containing the account filters for a cloud account. */ +@JsonPropertyOrder({AccountFiltersResponse.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class AccountFiltersResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private AccountFilters data; + + public AccountFiltersResponse data(AccountFilters data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * The account filters for a cloud account. + * + * @return data + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public AccountFilters getData() { + return data; + } + + public void setData(AccountFilters 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 AccountFiltersResponse + */ + @JsonAnySetter + public AccountFiltersResponse 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 AccountFiltersResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AccountFiltersResponse accountFiltersResponse = (AccountFiltersResponse) o; + return Objects.equals(this.data, accountFiltersResponse.data) + && Objects.equals(this.additionalProperties, accountFiltersResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AccountFiltersResponse {\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/AccountFiltersType.java b/src/main/java/com/datadog/api/client/v2/model/AccountFiltersType.java new file mode 100644 index 00000000000..99ef4c4fcab --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/AccountFiltersType.java @@ -0,0 +1,55 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** Type of account filters. */ +@JsonSerialize(using = AccountFiltersType.AccountFiltersTypeSerializer.class) +public class AccountFiltersType extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("account_filters")); + + public static final AccountFiltersType ACCOUNT_FILTERS = + new AccountFiltersType("account_filters"); + + AccountFiltersType(String value) { + super(value, allowedValues); + } + + public static class AccountFiltersTypeSerializer extends StdSerializer { + public AccountFiltersTypeSerializer(Class t) { + super(t); + } + + public AccountFiltersTypeSerializer() { + this(null); + } + + @Override + public void serialize(AccountFiltersType value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static AccountFiltersType fromValue(String value) { + return new AccountFiltersType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineTagCardinalityLimitProcessor.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineTagCardinalityLimitProcessor.java index 18f6e5f55c5..b96afe55b96 100644 --- a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineTagCardinalityLimitProcessor.java +++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineTagCardinalityLimitProcessor.java @@ -32,6 +32,7 @@ ObservabilityPipelineTagCardinalityLimitProcessor.JSON_PROPERTY_INCLUDE, ObservabilityPipelineTagCardinalityLimitProcessor.JSON_PROPERTY_LIMIT_EXCEEDED_ACTION, ObservabilityPipelineTagCardinalityLimitProcessor.JSON_PROPERTY_PER_METRIC_LIMITS, + ObservabilityPipelineTagCardinalityLimitProcessor.JSON_PROPERTY_TRACKING_MODE, ObservabilityPipelineTagCardinalityLimitProcessor.JSON_PROPERTY_TYPE, ObservabilityPipelineTagCardinalityLimitProcessor.JSON_PROPERTY_VALUE_LIMIT }) @@ -58,6 +59,9 @@ public class ObservabilityPipelineTagCardinalityLimitProcessor { private List perMetricLimits = null; + public static final String JSON_PROPERTY_TRACKING_MODE = "tracking_mode"; + private ObservabilityPipelineTagCardinalityLimitProcessorTrackingMode trackingMode; + public static final String JSON_PROPERTY_TYPE = "type"; private ObservabilityPipelineTagCardinalityLimitProcessorType type = ObservabilityPipelineTagCardinalityLimitProcessorType.TAG_CARDINALITY_LIMIT; @@ -74,6 +78,8 @@ public ObservabilityPipelineTagCardinalityLimitProcessor( @JsonProperty(required = true, value = JSON_PROPERTY_INCLUDE) String include, @JsonProperty(required = true, value = JSON_PROPERTY_LIMIT_EXCEEDED_ACTION) ObservabilityPipelineTagCardinalityLimitProcessorAction limitExceededAction, + @JsonProperty(required = true, value = JSON_PROPERTY_TRACKING_MODE) + ObservabilityPipelineTagCardinalityLimitProcessorTrackingMode trackingMode, @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) ObservabilityPipelineTagCardinalityLimitProcessorType type, @JsonProperty(required = true, value = JSON_PROPERTY_VALUE_LIMIT) Long valueLimit) { @@ -82,6 +88,8 @@ public ObservabilityPipelineTagCardinalityLimitProcessor( this.include = include; this.limitExceededAction = limitExceededAction; this.unparsed |= !limitExceededAction.isValid(); + this.trackingMode = trackingMode; + this.unparsed |= trackingMode.unparsed; this.type = type; this.unparsed |= !type.isValid(); this.valueLimit = valueLimit; @@ -233,6 +241,29 @@ public void setPerMetricLimits( this.perMetricLimits = perMetricLimits; } + public ObservabilityPipelineTagCardinalityLimitProcessor trackingMode( + ObservabilityPipelineTagCardinalityLimitProcessorTrackingMode trackingMode) { + this.trackingMode = trackingMode; + this.unparsed |= trackingMode.unparsed; + return this; + } + + /** + * Controls whether the processor uses exact or probabilistic tag tracking. + * + * @return trackingMode + */ + @JsonProperty(JSON_PROPERTY_TRACKING_MODE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public ObservabilityPipelineTagCardinalityLimitProcessorTrackingMode getTrackingMode() { + return trackingMode; + } + + public void setTrackingMode( + ObservabilityPipelineTagCardinalityLimitProcessorTrackingMode trackingMode) { + this.trackingMode = trackingMode; + } + public ObservabilityPipelineTagCardinalityLimitProcessor type( ObservabilityPipelineTagCardinalityLimitProcessorType type) { this.type = type; @@ -348,6 +379,8 @@ public boolean equals(Object o) { observabilityPipelineTagCardinalityLimitProcessor.limitExceededAction) && Objects.equals( this.perMetricLimits, observabilityPipelineTagCardinalityLimitProcessor.perMetricLimits) + && Objects.equals( + this.trackingMode, observabilityPipelineTagCardinalityLimitProcessor.trackingMode) && Objects.equals(this.type, observabilityPipelineTagCardinalityLimitProcessor.type) && Objects.equals( this.valueLimit, observabilityPipelineTagCardinalityLimitProcessor.valueLimit) @@ -365,6 +398,7 @@ public int hashCode() { include, limitExceededAction, perMetricLimits, + trackingMode, type, valueLimit, additionalProperties); @@ -382,6 +416,7 @@ public String toString() { .append(toIndentedString(limitExceededAction)) .append("\n"); sb.append(" perMetricLimits: ").append(toIndentedString(perMetricLimits)).append("\n"); + sb.append(" trackingMode: ").append(toIndentedString(trackingMode)).append("\n"); sb.append(" type: ").append(toIndentedString(type)).append("\n"); sb.append(" valueLimit: ").append(toIndentedString(valueLimit)).append("\n"); sb.append(" additionalProperties: ") diff --git a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineTagCardinalityLimitProcessorPerTagMode.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineTagCardinalityLimitProcessorOverrideType.java similarity index 58% rename from src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineTagCardinalityLimitProcessorPerTagMode.java rename to src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineTagCardinalityLimitProcessorOverrideType.java index 6ea8b34f1f9..91a42170d11 100644 --- a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineTagCardinalityLimitProcessorPerTagMode.java +++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineTagCardinalityLimitProcessorOverrideType.java @@ -19,41 +19,42 @@ import java.util.Set; /** - * How the per-tag override is applied. limit_override enforces a custom limit on the - * tag; excluded skips the tag from cardinality tracking. + * How the override is applied. limit_override enforces a custom limit; excluded + * omits the metric or tag from cardinality tracking. */ @JsonSerialize( using = - ObservabilityPipelineTagCardinalityLimitProcessorPerTagMode - .ObservabilityPipelineTagCardinalityLimitProcessorPerTagModeSerializer.class) -public class ObservabilityPipelineTagCardinalityLimitProcessorPerTagMode extends ModelEnum { + ObservabilityPipelineTagCardinalityLimitProcessorOverrideType + .ObservabilityPipelineTagCardinalityLimitProcessorOverrideTypeSerializer.class) +public class ObservabilityPipelineTagCardinalityLimitProcessorOverrideType + extends ModelEnum { private static final Set allowedValues = new HashSet(Arrays.asList("limit_override", "excluded")); - public static final ObservabilityPipelineTagCardinalityLimitProcessorPerTagMode LIMIT_OVERRIDE = - new ObservabilityPipelineTagCardinalityLimitProcessorPerTagMode("limit_override"); - public static final ObservabilityPipelineTagCardinalityLimitProcessorPerTagMode EXCLUDED = - new ObservabilityPipelineTagCardinalityLimitProcessorPerTagMode("excluded"); + public static final ObservabilityPipelineTagCardinalityLimitProcessorOverrideType LIMIT_OVERRIDE = + new ObservabilityPipelineTagCardinalityLimitProcessorOverrideType("limit_override"); + public static final ObservabilityPipelineTagCardinalityLimitProcessorOverrideType EXCLUDED = + new ObservabilityPipelineTagCardinalityLimitProcessorOverrideType("excluded"); - ObservabilityPipelineTagCardinalityLimitProcessorPerTagMode(String value) { + ObservabilityPipelineTagCardinalityLimitProcessorOverrideType(String value) { super(value, allowedValues); } - public static class ObservabilityPipelineTagCardinalityLimitProcessorPerTagModeSerializer - extends StdSerializer { - public ObservabilityPipelineTagCardinalityLimitProcessorPerTagModeSerializer( - Class t) { + public static class ObservabilityPipelineTagCardinalityLimitProcessorOverrideTypeSerializer + extends StdSerializer { + public ObservabilityPipelineTagCardinalityLimitProcessorOverrideTypeSerializer( + Class t) { super(t); } - public ObservabilityPipelineTagCardinalityLimitProcessorPerTagModeSerializer() { + public ObservabilityPipelineTagCardinalityLimitProcessorOverrideTypeSerializer() { this(null); } @Override public void serialize( - ObservabilityPipelineTagCardinalityLimitProcessorPerTagMode value, + ObservabilityPipelineTagCardinalityLimitProcessorOverrideType value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException { @@ -62,8 +63,8 @@ public void serialize( } @JsonCreator - public static ObservabilityPipelineTagCardinalityLimitProcessorPerTagMode fromValue( + public static ObservabilityPipelineTagCardinalityLimitProcessorOverrideType fromValue( String value) { - return new ObservabilityPipelineTagCardinalityLimitProcessorPerTagMode(value); + return new ObservabilityPipelineTagCardinalityLimitProcessorOverrideType(value); } } diff --git a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineTagCardinalityLimitProcessorPerMetricLimit.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineTagCardinalityLimitProcessorPerMetricLimit.java index b3bea91a9de..f7ee517c365 100644 --- a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineTagCardinalityLimitProcessorPerMetricLimit.java +++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineTagCardinalityLimitProcessorPerMetricLimit.java @@ -24,7 +24,7 @@ ObservabilityPipelineTagCardinalityLimitProcessorPerMetricLimit .JSON_PROPERTY_LIMIT_EXCEEDED_ACTION, ObservabilityPipelineTagCardinalityLimitProcessorPerMetricLimit.JSON_PROPERTY_METRIC_NAME, - ObservabilityPipelineTagCardinalityLimitProcessorPerMetricLimit.JSON_PROPERTY_MODE, + ObservabilityPipelineTagCardinalityLimitProcessorPerMetricLimit.JSON_PROPERTY_OVERRIDE_TYPE, ObservabilityPipelineTagCardinalityLimitProcessorPerMetricLimit.JSON_PROPERTY_PER_TAG_LIMITS, ObservabilityPipelineTagCardinalityLimitProcessorPerMetricLimit.JSON_PROPERTY_VALUE_LIMIT }) @@ -38,8 +38,8 @@ public class ObservabilityPipelineTagCardinalityLimitProcessorPerMetricLimit { public static final String JSON_PROPERTY_METRIC_NAME = "metric_name"; private String metricName; - public static final String JSON_PROPERTY_MODE = "mode"; - private ObservabilityPipelineTagCardinalityLimitProcessorPerMetricMode mode; + public static final String JSON_PROPERTY_OVERRIDE_TYPE = "override_type"; + private ObservabilityPipelineTagCardinalityLimitProcessorOverrideType overrideType; public static final String JSON_PROPERTY_PER_TAG_LIMITS = "per_tag_limits"; private List perTagLimits = null; @@ -52,11 +52,11 @@ public ObservabilityPipelineTagCardinalityLimitProcessorPerMetricLimit() {} @JsonCreator public ObservabilityPipelineTagCardinalityLimitProcessorPerMetricLimit( @JsonProperty(required = true, value = JSON_PROPERTY_METRIC_NAME) String metricName, - @JsonProperty(required = true, value = JSON_PROPERTY_MODE) - ObservabilityPipelineTagCardinalityLimitProcessorPerMetricMode mode) { + @JsonProperty(required = true, value = JSON_PROPERTY_OVERRIDE_TYPE) + ObservabilityPipelineTagCardinalityLimitProcessorOverrideType overrideType) { this.metricName = metricName; - this.mode = mode; - this.unparsed |= !mode.isValid(); + this.overrideType = overrideType; + this.unparsed |= !overrideType.isValid(); } public ObservabilityPipelineTagCardinalityLimitProcessorPerMetricLimit limitExceededAction( @@ -107,30 +107,31 @@ public void setMetricName(String metricName) { this.metricName = metricName; } - public ObservabilityPipelineTagCardinalityLimitProcessorPerMetricLimit mode( - ObservabilityPipelineTagCardinalityLimitProcessorPerMetricMode mode) { - this.mode = mode; - this.unparsed |= !mode.isValid(); + public ObservabilityPipelineTagCardinalityLimitProcessorPerMetricLimit overrideType( + ObservabilityPipelineTagCardinalityLimitProcessorOverrideType overrideType) { + this.overrideType = overrideType; + this.unparsed |= !overrideType.isValid(); return this; } /** - * How the per-metric override is applied. tracked enforces a custom limit; - * excluded skips the metric entirely. + * How the override is applied. limit_override enforces a custom limit; + * excluded omits the metric or tag from cardinality tracking. * - * @return mode + * @return overrideType */ - @JsonProperty(JSON_PROPERTY_MODE) + @JsonProperty(JSON_PROPERTY_OVERRIDE_TYPE) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public ObservabilityPipelineTagCardinalityLimitProcessorPerMetricMode getMode() { - return mode; + public ObservabilityPipelineTagCardinalityLimitProcessorOverrideType getOverrideType() { + return overrideType; } - public void setMode(ObservabilityPipelineTagCardinalityLimitProcessorPerMetricMode mode) { - if (!mode.isValid()) { + public void setOverrideType( + ObservabilityPipelineTagCardinalityLimitProcessorOverrideType overrideType) { + if (!overrideType.isValid()) { this.unparsed = true; } - this.mode = mode; + this.overrideType = overrideType; } public ObservabilityPipelineTagCardinalityLimitProcessorPerMetricLimit perTagLimits( @@ -154,7 +155,7 @@ public ObservabilityPipelineTagCardinalityLimitProcessorPerMetricLimit addPerTag /** * A list of per-tag cardinality overrides that apply within this metric. Must be omitted when - * mode is excluded. + * override_type is excluded. * * @return perTagLimits */ @@ -178,8 +179,8 @@ public ObservabilityPipelineTagCardinalityLimitProcessorPerMetricLimit valueLimi /** * The maximum number of distinct tag value combinations allowed for this metric. Required when - * mode is tracked. Must be omitted when mode is - * excluded. minimum: 0 maximum: 1000000 + * override_type is limit_override. Must be omitted when + * override_type is excluded. minimum: 0 maximum: 1000000 * * @return valueLimit */ @@ -263,7 +264,8 @@ public boolean equals(Object o) { this.metricName, observabilityPipelineTagCardinalityLimitProcessorPerMetricLimit.metricName) && Objects.equals( - this.mode, observabilityPipelineTagCardinalityLimitProcessorPerMetricLimit.mode) + this.overrideType, + observabilityPipelineTagCardinalityLimitProcessorPerMetricLimit.overrideType) && Objects.equals( this.perTagLimits, observabilityPipelineTagCardinalityLimitProcessorPerMetricLimit.perTagLimits) @@ -278,7 +280,12 @@ public boolean equals(Object o) { @Override public int hashCode() { return Objects.hash( - limitExceededAction, metricName, mode, perTagLimits, valueLimit, additionalProperties); + limitExceededAction, + metricName, + overrideType, + perTagLimits, + valueLimit, + additionalProperties); } @Override @@ -289,7 +296,7 @@ public String toString() { .append(toIndentedString(limitExceededAction)) .append("\n"); sb.append(" metricName: ").append(toIndentedString(metricName)).append("\n"); - sb.append(" mode: ").append(toIndentedString(mode)).append("\n"); + sb.append(" overrideType: ").append(toIndentedString(overrideType)).append("\n"); sb.append(" perTagLimits: ").append(toIndentedString(perTagLimits)).append("\n"); sb.append(" valueLimit: ").append(toIndentedString(valueLimit)).append("\n"); sb.append(" additionalProperties: ") diff --git a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineTagCardinalityLimitProcessorPerTagLimit.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineTagCardinalityLimitProcessorPerTagLimit.java index e068e8b5256..d4085e44396 100644 --- a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineTagCardinalityLimitProcessorPerTagLimit.java +++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineTagCardinalityLimitProcessorPerTagLimit.java @@ -19,7 +19,7 @@ /** A cardinality override for a specific tag key within a per-metric limit. */ @JsonPropertyOrder({ - ObservabilityPipelineTagCardinalityLimitProcessorPerTagLimit.JSON_PROPERTY_MODE, + ObservabilityPipelineTagCardinalityLimitProcessorPerTagLimit.JSON_PROPERTY_OVERRIDE_TYPE, ObservabilityPipelineTagCardinalityLimitProcessorPerTagLimit.JSON_PROPERTY_TAG_KEY, ObservabilityPipelineTagCardinalityLimitProcessorPerTagLimit.JSON_PROPERTY_VALUE_LIMIT }) @@ -27,8 +27,8 @@ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") public class ObservabilityPipelineTagCardinalityLimitProcessorPerTagLimit { @JsonIgnore public boolean unparsed = false; - public static final String JSON_PROPERTY_MODE = "mode"; - private ObservabilityPipelineTagCardinalityLimitProcessorPerTagMode mode; + public static final String JSON_PROPERTY_OVERRIDE_TYPE = "override_type"; + private ObservabilityPipelineTagCardinalityLimitProcessorOverrideType overrideType; public static final String JSON_PROPERTY_TAG_KEY = "tag_key"; private String tagKey; @@ -40,38 +40,39 @@ public ObservabilityPipelineTagCardinalityLimitProcessorPerTagLimit() {} @JsonCreator public ObservabilityPipelineTagCardinalityLimitProcessorPerTagLimit( - @JsonProperty(required = true, value = JSON_PROPERTY_MODE) - ObservabilityPipelineTagCardinalityLimitProcessorPerTagMode mode, + @JsonProperty(required = true, value = JSON_PROPERTY_OVERRIDE_TYPE) + ObservabilityPipelineTagCardinalityLimitProcessorOverrideType overrideType, @JsonProperty(required = true, value = JSON_PROPERTY_TAG_KEY) String tagKey) { - this.mode = mode; - this.unparsed |= !mode.isValid(); + this.overrideType = overrideType; + this.unparsed |= !overrideType.isValid(); this.tagKey = tagKey; } - public ObservabilityPipelineTagCardinalityLimitProcessorPerTagLimit mode( - ObservabilityPipelineTagCardinalityLimitProcessorPerTagMode mode) { - this.mode = mode; - this.unparsed |= !mode.isValid(); + public ObservabilityPipelineTagCardinalityLimitProcessorPerTagLimit overrideType( + ObservabilityPipelineTagCardinalityLimitProcessorOverrideType overrideType) { + this.overrideType = overrideType; + this.unparsed |= !overrideType.isValid(); return this; } /** - * How the per-tag override is applied. limit_override enforces a custom limit on the - * tag; excluded skips the tag from cardinality tracking. + * How the override is applied. limit_override enforces a custom limit; + * excluded omits the metric or tag from cardinality tracking. * - * @return mode + * @return overrideType */ - @JsonProperty(JSON_PROPERTY_MODE) + @JsonProperty(JSON_PROPERTY_OVERRIDE_TYPE) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public ObservabilityPipelineTagCardinalityLimitProcessorPerTagMode getMode() { - return mode; + public ObservabilityPipelineTagCardinalityLimitProcessorOverrideType getOverrideType() { + return overrideType; } - public void setMode(ObservabilityPipelineTagCardinalityLimitProcessorPerTagMode mode) { - if (!mode.isValid()) { + public void setOverrideType( + ObservabilityPipelineTagCardinalityLimitProcessorOverrideType overrideType) { + if (!overrideType.isValid()) { this.unparsed = true; } - this.mode = mode; + this.overrideType = overrideType; } public ObservabilityPipelineTagCardinalityLimitProcessorPerTagLimit tagKey(String tagKey) { @@ -100,9 +101,9 @@ public ObservabilityPipelineTagCardinalityLimitProcessorPerTagLimit valueLimit(L } /** - * The maximum number of distinct values allowed for this tag. Required when mode is - * limit_override. Must be omitted when mode is excluded. - * minimum: 0 maximum: 1000000 + * The maximum number of distinct values allowed for this tag. Required when override_type + * is limit_override. Must be omitted when override_type is + * excluded. minimum: 0 maximum: 1000000 * * @return valueLimit */ @@ -180,7 +181,8 @@ public boolean equals(Object o) { observabilityPipelineTagCardinalityLimitProcessorPerTagLimit = (ObservabilityPipelineTagCardinalityLimitProcessorPerTagLimit) o; return Objects.equals( - this.mode, observabilityPipelineTagCardinalityLimitProcessorPerTagLimit.mode) + this.overrideType, + observabilityPipelineTagCardinalityLimitProcessorPerTagLimit.overrideType) && Objects.equals( this.tagKey, observabilityPipelineTagCardinalityLimitProcessorPerTagLimit.tagKey) && Objects.equals( @@ -193,14 +195,14 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(mode, tagKey, valueLimit, additionalProperties); + return Objects.hash(overrideType, tagKey, valueLimit, additionalProperties); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class ObservabilityPipelineTagCardinalityLimitProcessorPerTagLimit {\n"); - sb.append(" mode: ").append(toIndentedString(mode)).append("\n"); + sb.append(" overrideType: ").append(toIndentedString(overrideType)).append("\n"); sb.append(" tagKey: ").append(toIndentedString(tagKey)).append("\n"); sb.append(" valueLimit: ").append(toIndentedString(valueLimit)).append("\n"); sb.append(" additionalProperties: ") diff --git a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineTagCardinalityLimitProcessorTrackingMode.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineTagCardinalityLimitProcessorTrackingMode.java new file mode 100644 index 00000000000..11953173d74 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineTagCardinalityLimitProcessorTrackingMode.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.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Controls whether the processor uses exact or probabilistic tag tracking. */ +@JsonPropertyOrder({ + ObservabilityPipelineTagCardinalityLimitProcessorTrackingMode.JSON_PROPERTY_MODE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class ObservabilityPipelineTagCardinalityLimitProcessorTrackingMode { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_MODE = "mode"; + private ObservabilityPipelineTagCardinalityLimitProcessorTrackingModeMode mode; + + public ObservabilityPipelineTagCardinalityLimitProcessorTrackingMode() {} + + @JsonCreator + public ObservabilityPipelineTagCardinalityLimitProcessorTrackingMode( + @JsonProperty(required = true, value = JSON_PROPERTY_MODE) + ObservabilityPipelineTagCardinalityLimitProcessorTrackingModeMode mode) { + this.mode = mode; + this.unparsed |= !mode.isValid(); + } + + public ObservabilityPipelineTagCardinalityLimitProcessorTrackingMode mode( + ObservabilityPipelineTagCardinalityLimitProcessorTrackingModeMode mode) { + this.mode = mode; + this.unparsed |= !mode.isValid(); + return this; + } + + /** + * The cardinality tracking algorithm to use. + * + * @return mode + */ + @JsonProperty(JSON_PROPERTY_MODE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public ObservabilityPipelineTagCardinalityLimitProcessorTrackingModeMode getMode() { + return mode; + } + + public void setMode(ObservabilityPipelineTagCardinalityLimitProcessorTrackingModeMode mode) { + if (!mode.isValid()) { + this.unparsed = true; + } + this.mode = mode; + } + + /** + * 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 ObservabilityPipelineTagCardinalityLimitProcessorTrackingMode + */ + @JsonAnySetter + public ObservabilityPipelineTagCardinalityLimitProcessorTrackingMode 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 ObservabilityPipelineTagCardinalityLimitProcessorTrackingMode object is + * equal to o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ObservabilityPipelineTagCardinalityLimitProcessorTrackingMode + observabilityPipelineTagCardinalityLimitProcessorTrackingMode = + (ObservabilityPipelineTagCardinalityLimitProcessorTrackingMode) o; + return Objects.equals( + this.mode, observabilityPipelineTagCardinalityLimitProcessorTrackingMode.mode) + && Objects.equals( + this.additionalProperties, + observabilityPipelineTagCardinalityLimitProcessorTrackingMode.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(mode, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ObservabilityPipelineTagCardinalityLimitProcessorTrackingMode {\n"); + sb.append(" mode: ").append(toIndentedString(mode)).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/ObservabilityPipelineTagCardinalityLimitProcessorPerMetricMode.java b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineTagCardinalityLimitProcessorTrackingModeMode.java similarity index 56% rename from src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineTagCardinalityLimitProcessorPerMetricMode.java rename to src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineTagCardinalityLimitProcessorTrackingModeMode.java index 494fce07c65..7dadc6f0507 100644 --- a/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineTagCardinalityLimitProcessorPerMetricMode.java +++ b/src/main/java/com/datadog/api/client/v2/model/ObservabilityPipelineTagCardinalityLimitProcessorTrackingModeMode.java @@ -18,43 +18,43 @@ import java.util.HashSet; import java.util.Set; -/** - * How the per-metric override is applied. tracked enforces a custom limit; - * excluded skips the metric entirely. - */ +/** The cardinality tracking algorithm to use. */ @JsonSerialize( using = - ObservabilityPipelineTagCardinalityLimitProcessorPerMetricMode - .ObservabilityPipelineTagCardinalityLimitProcessorPerMetricModeSerializer.class) -public class ObservabilityPipelineTagCardinalityLimitProcessorPerMetricMode + ObservabilityPipelineTagCardinalityLimitProcessorTrackingModeMode + .ObservabilityPipelineTagCardinalityLimitProcessorTrackingModeModeSerializer.class) +public class ObservabilityPipelineTagCardinalityLimitProcessorTrackingModeMode extends ModelEnum { private static final Set allowedValues = - new HashSet(Arrays.asList("tracked", "excluded")); + new HashSet(Arrays.asList("exact_fingerprint", "probabilistic")); - public static final ObservabilityPipelineTagCardinalityLimitProcessorPerMetricMode TRACKED = - new ObservabilityPipelineTagCardinalityLimitProcessorPerMetricMode("tracked"); - public static final ObservabilityPipelineTagCardinalityLimitProcessorPerMetricMode EXCLUDED = - new ObservabilityPipelineTagCardinalityLimitProcessorPerMetricMode("excluded"); + public static final ObservabilityPipelineTagCardinalityLimitProcessorTrackingModeMode + EXACT_FINGERPRINT = + new ObservabilityPipelineTagCardinalityLimitProcessorTrackingModeMode( + "exact_fingerprint"); + public static final ObservabilityPipelineTagCardinalityLimitProcessorTrackingModeMode + PROBABILISTIC = + new ObservabilityPipelineTagCardinalityLimitProcessorTrackingModeMode("probabilistic"); - ObservabilityPipelineTagCardinalityLimitProcessorPerMetricMode(String value) { + ObservabilityPipelineTagCardinalityLimitProcessorTrackingModeMode(String value) { super(value, allowedValues); } - public static class ObservabilityPipelineTagCardinalityLimitProcessorPerMetricModeSerializer - extends StdSerializer { - public ObservabilityPipelineTagCardinalityLimitProcessorPerMetricModeSerializer( - Class t) { + public static class ObservabilityPipelineTagCardinalityLimitProcessorTrackingModeModeSerializer + extends StdSerializer { + public ObservabilityPipelineTagCardinalityLimitProcessorTrackingModeModeSerializer( + Class t) { super(t); } - public ObservabilityPipelineTagCardinalityLimitProcessorPerMetricModeSerializer() { + public ObservabilityPipelineTagCardinalityLimitProcessorTrackingModeModeSerializer() { this(null); } @Override public void serialize( - ObservabilityPipelineTagCardinalityLimitProcessorPerMetricMode value, + ObservabilityPipelineTagCardinalityLimitProcessorTrackingModeMode value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException { @@ -63,8 +63,8 @@ public void serialize( } @JsonCreator - public static ObservabilityPipelineTagCardinalityLimitProcessorPerMetricMode fromValue( + public static ObservabilityPipelineTagCardinalityLimitProcessorTrackingModeMode fromValue( String value) { - return new ObservabilityPipelineTagCardinalityLimitProcessorPerMetricMode(value); + return new ObservabilityPipelineTagCardinalityLimitProcessorTrackingModeMode(value); } } diff --git a/src/test/resources/com/datadog/api/client/v2/api/cloud_cost_management.feature b/src/test/resources/com/datadog/api/client/v2/api/cloud_cost_management.feature index 258f3468a9f..330fae498a5 100644 --- a/src/test/resources/com/datadog/api/client/v2/api/cloud_cost_management.feature +++ b/src/test/resources/com/datadog/api/client/v2/api/cloud_cost_management.feature @@ -384,6 +384,27 @@ Feature: Cloud Cost Management And the response "data.type" is equal to "ruleset" And the response "data.attributes.name" is equal to "EVP Cost Tags" + @generated @skip @team:DataDog/cloud-cost-management + Scenario: Get account filters returns "Bad Request" response + Given new "GetCostAccountFilters" request + And request contains "cloud_account_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/cloud-cost-management + Scenario: Get account filters returns "Not Found" response + Given new "GetCostAccountFilters" request + And request contains "cloud_account_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/cloud-cost-management + Scenario: Get account filters returns "OK" response + Given new "GetCostAccountFilters" request + And request contains "cloud_account_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 200 OK + @generated @skip @team:DataDog/cloud-cost-management Scenario: Get budget returns "Bad Request" response Given new "GetBudget" request @@ -938,6 +959,30 @@ Feature: Cloud Cost Management Then the response status is 200 OK And the response "data.attributes.account_id" is equal to "123456_A123BC_12AB34" + @generated @skip @team:DataDog/cloud-cost-management + Scenario: Update account filters returns "Bad Request" response + Given new "UpdateCostAccountFilters" request + And request contains "cloud_account_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"account_filters": {"excluded_accounts": ["123456789123", "123456789143"], "include_new_accounts": true, "included_accounts": ["123456789123", "123456789143"]}}, "type": "account_filters_patch_request"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/cloud-cost-management + Scenario: Update account filters returns "Not Found" response + Given new "UpdateCostAccountFilters" request + And request contains "cloud_account_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"account_filters": {"excluded_accounts": ["123456789123", "123456789143"], "include_new_accounts": true, "included_accounts": ["123456789123", "123456789143"]}}, "type": "account_filters_patch_request"}} + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/cloud-cost-management + Scenario: Update account filters returns "OK" response + Given new "UpdateCostAccountFilters" request + And request contains "cloud_account_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"account_filters": {"excluded_accounts": ["123456789123", "123456789143"], "include_new_accounts": true, "included_accounts": ["123456789123", "123456789143"]}}, "type": "account_filters_patch_request"}} + When the request is sent + Then the response status is 200 OK + @replay-only @team:DataDog/cloud-cost-management Scenario: Update custom allocation rule returns "OK" response Given new "UpdateCustomAllocationRule" request 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 22089f0ecea..f59e58b1379 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 @@ -1622,6 +1622,18 @@ "type": "safe" } }, + "GetCostAccountFilters": { + "tag": "Cloud Cost Management", + "undo": { + "type": "safe" + } + }, + "UpdateCostAccountFilters": { + "tag": "Cloud Cost Management", + "undo": { + "type": "idempotent" + } + }, "ListCostAnomalies": { "tag": "Cloud Cost Management", "undo": {