diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml
index 4ed0b352040..35ff674a300 100644
--- a/.generator/schemas/v2/openapi.yaml
+++ b/.generator/schemas/v2/openapi.yaml
@@ -2153,6 +2153,7 @@ components:
description: Whether or not to automatically include new member accounts
by default in your billing dataset.
example: true
+ nullable: true
type: boolean
included_accounts:
description: The AWS account IDs to be included in your billing dataset.
@@ -3948,6 +3949,634 @@ components:
- CREATED_AT_DESC
- UPDATED_AT_DESC
- USER_NAME_DESC
+ ArbitraryCostUpsertRequest:
+ description: The definition of `ArbitraryCostUpsertRequest` object.
+ example:
+ data:
+ attributes:
+ costs_to_allocate:
+ - condition: is
+ tag: account_id
+ value: '123456789'
+ values: null
+ - condition: in
+ tag: environment
+ value: ''
+ values:
+ - production
+ - staging
+ enabled: true
+ order_id: 1
+ provider:
+ - aws
+ - gcp
+ rule_name: example-arbitrary-cost-rule
+ strategy:
+ allocated_by_tag_keys:
+ - team
+ - environment
+ based_on_costs:
+ - condition: is
+ tag: service
+ value: web-api
+ values: null
+ - condition: not in
+ tag: team
+ value: ''
+ values:
+ - legacy
+ - deprecated
+ granularity: daily
+ method: proportional
+ type: shared
+ type: upsert_arbitrary_rule
+ properties:
+ data:
+ $ref: '#/components/schemas/ArbitraryCostUpsertRequestData'
+ type: object
+ ArbitraryCostUpsertRequestData:
+ description: The definition of `ArbitraryCostUpsertRequestData` object.
+ properties:
+ attributes:
+ $ref: '#/components/schemas/ArbitraryCostUpsertRequestDataAttributes'
+ id:
+ description: The `ArbitraryCostUpsertRequestData` `id`.
+ type: string
+ type:
+ $ref: '#/components/schemas/ArbitraryCostUpsertRequestDataType'
+ required:
+ - type
+ type: object
+ ArbitraryCostUpsertRequestDataAttributes:
+ description: The definition of `ArbitraryCostUpsertRequestDataAttributes` object.
+ properties:
+ costs_to_allocate:
+ description: The `attributes` `costs_to_allocate`.
+ items:
+ $ref: '#/components/schemas/ArbitraryCostUpsertRequestDataAttributesCostsToAllocateItems'
+ type: array
+ enabled:
+ description: The `attributes` `enabled`.
+ type: boolean
+ order_id:
+ description: The `attributes` `order_id`.
+ format: int64
+ type: integer
+ provider:
+ description: The `attributes` `provider`.
+ example:
+ - ''
+ items:
+ type: string
+ type: array
+ rejected:
+ description: The `attributes` `rejected`.
+ type: boolean
+ rule_name:
+ description: The `attributes` `rule_name`.
+ example: ''
+ type: string
+ strategy:
+ $ref: '#/components/schemas/ArbitraryCostUpsertRequestDataAttributesStrategy'
+ type:
+ description: The `attributes` `type`.
+ example: ''
+ type: string
+ required:
+ - costs_to_allocate
+ - provider
+ - rule_name
+ - strategy
+ - type
+ type: object
+ ArbitraryCostUpsertRequestDataAttributesCostsToAllocateItems:
+ description: The definition of `ArbitraryCostUpsertRequestDataAttributesCostsToAllocateItems`
+ object.
+ properties:
+ condition:
+ description: The `items` `condition`.
+ example: ''
+ type: string
+ tag:
+ description: The `items` `tag`.
+ example: ''
+ type: string
+ value:
+ description: The `items` `value`.
+ type: string
+ values:
+ description: The `items` `values`.
+ items:
+ type: string
+ nullable: true
+ type: array
+ required:
+ - condition
+ - tag
+ type: object
+ ArbitraryCostUpsertRequestDataAttributesStrategy:
+ description: The definition of `ArbitraryCostUpsertRequestDataAttributesStrategy`
+ object.
+ properties:
+ allocated_by:
+ description: The `strategy` `allocated_by`.
+ items:
+ $ref: '#/components/schemas/ArbitraryCostUpsertRequestDataAttributesStrategyAllocatedByItems'
+ type: array
+ allocated_by_filters:
+ description: The `strategy` `allocated_by_filters`.
+ items:
+ $ref: '#/components/schemas/ArbitraryCostUpsertRequestDataAttributesStrategyAllocatedByFiltersItems'
+ type: array
+ allocated_by_tag_keys:
+ description: The `strategy` `allocated_by_tag_keys`.
+ items:
+ type: string
+ type: array
+ based_on_costs:
+ description: The `strategy` `based_on_costs`.
+ items:
+ $ref: '#/components/schemas/ArbitraryCostUpsertRequestDataAttributesStrategyBasedOnCostsItems'
+ type: array
+ based_on_timeseries:
+ additionalProperties: {}
+ description: The `strategy` `based_on_timeseries`.
+ type: object
+ evaluate_grouped_by_filters:
+ description: The `strategy` `evaluate_grouped_by_filters`.
+ items:
+ $ref: '#/components/schemas/ArbitraryCostUpsertRequestDataAttributesStrategyEvaluateGroupedByFiltersItems'
+ type: array
+ evaluate_grouped_by_tag_keys:
+ description: The `strategy` `evaluate_grouped_by_tag_keys`.
+ items:
+ type: string
+ type: array
+ granularity:
+ description: The `strategy` `granularity`.
+ type: string
+ method:
+ description: The `strategy` `method`.
+ example: ''
+ type: string
+ required:
+ - method
+ type: object
+ ArbitraryCostUpsertRequestDataAttributesStrategyAllocatedByFiltersItems:
+ description: The definition of `ArbitraryCostUpsertRequestDataAttributesStrategyAllocatedByFiltersItems`
+ object.
+ properties:
+ condition:
+ description: The `items` `condition`.
+ example: ''
+ type: string
+ tag:
+ description: The `items` `tag`.
+ example: ''
+ type: string
+ value:
+ description: The `items` `value`.
+ type: string
+ values:
+ description: The `items` `values`.
+ items:
+ type: string
+ nullable: true
+ type: array
+ required:
+ - condition
+ - tag
+ type: object
+ ArbitraryCostUpsertRequestDataAttributesStrategyAllocatedByItems:
+ description: The definition of `ArbitraryCostUpsertRequestDataAttributesStrategyAllocatedByItems`
+ object.
+ properties:
+ allocated_tags:
+ description: The `items` `allocated_tags`.
+ items:
+ $ref: '#/components/schemas/ArbitraryCostUpsertRequestDataAttributesStrategyAllocatedByItemsAllocatedTagsItems'
+ type: array
+ percentage:
+ description: The `items` `percentage`. The numeric value format should be
+ a 32bit float value.
+ example: 0.0
+ format: double
+ type: number
+ required:
+ - allocated_tags
+ - percentage
+ type: object
+ ArbitraryCostUpsertRequestDataAttributesStrategyAllocatedByItemsAllocatedTagsItems:
+ description: The definition of `ArbitraryCostUpsertRequestDataAttributesStrategyAllocatedByItemsAllocatedTagsItems`
+ object.
+ properties:
+ key:
+ description: The `items` `key`.
+ example: ''
+ type: string
+ value:
+ description: The `items` `value`.
+ example: ''
+ type: string
+ required:
+ - key
+ - value
+ type: object
+ ArbitraryCostUpsertRequestDataAttributesStrategyBasedOnCostsItems:
+ description: The definition of `ArbitraryCostUpsertRequestDataAttributesStrategyBasedOnCostsItems`
+ object.
+ properties:
+ condition:
+ description: The `items` `condition`.
+ example: ''
+ type: string
+ tag:
+ description: The `items` `tag`.
+ example: ''
+ type: string
+ value:
+ description: The `items` `value`.
+ type: string
+ values:
+ description: The `items` `values`.
+ items:
+ type: string
+ nullable: true
+ type: array
+ required:
+ - condition
+ - tag
+ type: object
+ ArbitraryCostUpsertRequestDataAttributesStrategyEvaluateGroupedByFiltersItems:
+ description: The definition of `ArbitraryCostUpsertRequestDataAttributesStrategyEvaluateGroupedByFiltersItems`
+ object.
+ properties:
+ condition:
+ description: The `items` `condition`.
+ example: ''
+ type: string
+ tag:
+ description: The `items` `tag`.
+ example: ''
+ type: string
+ value:
+ description: The `items` `value`.
+ type: string
+ values:
+ description: The `items` `values`.
+ items:
+ type: string
+ nullable: true
+ type: array
+ required:
+ - condition
+ - tag
+ type: object
+ ArbitraryCostUpsertRequestDataType:
+ default: upsert_arbitrary_rule
+ description: Upsert arbitrary rule resource type.
+ enum:
+ - upsert_arbitrary_rule
+ example: upsert_arbitrary_rule
+ type: string
+ x-enum-varnames:
+ - UPSERT_ARBITRARY_RULE
+ ArbitraryRuleResponse:
+ description: The definition of `ArbitraryRuleResponse` object.
+ example:
+ data:
+ attributes:
+ costs_to_allocate:
+ - condition: is
+ tag: account_id
+ value: '123456789'
+ values: null
+ - condition: in
+ tag: environment
+ value: ''
+ values:
+ - production
+ - staging
+ created: '2023-01-01T12:00:00Z'
+ enabled: true
+ last_modified_user_uuid: user-123-uuid
+ order_id: 1
+ provider:
+ - aws
+ - gcp
+ rule_name: Example Arbitrary Cost Rule
+ strategy:
+ allocated_by_tag_keys:
+ - team
+ - environment
+ based_on_costs:
+ - condition: is
+ tag: service
+ value: web-api
+ values: null
+ - condition: not in
+ tag: team
+ value: ''
+ values:
+ - legacy
+ - deprecated
+ granularity: daily
+ method: proportional
+ type: shared
+ updated: '2023-01-01T12:00:00Z'
+ version: 1
+ id: '123'
+ type: arbitrary_rule
+ properties:
+ data:
+ $ref: '#/components/schemas/ArbitraryRuleResponseData'
+ type: object
+ ArbitraryRuleResponseArray:
+ description: The definition of `ArbitraryRuleResponseArray` object.
+ properties:
+ data:
+ description: The `ArbitraryRuleResponseArray` `data`.
+ items:
+ $ref: '#/components/schemas/ArbitraryRuleResponseData'
+ type: array
+ required:
+ - data
+ type: object
+ ArbitraryRuleResponseData:
+ description: The definition of `ArbitraryRuleResponseData` object.
+ properties:
+ attributes:
+ $ref: '#/components/schemas/ArbitraryRuleResponseDataAttributes'
+ id:
+ description: The `ArbitraryRuleResponseData` `id`.
+ type: string
+ type:
+ $ref: '#/components/schemas/ArbitraryRuleResponseDataType'
+ required:
+ - type
+ type: object
+ ArbitraryRuleResponseDataAttributes:
+ description: The definition of `ArbitraryRuleResponseDataAttributes` object.
+ properties:
+ costs_to_allocate:
+ description: The `attributes` `costs_to_allocate`.
+ items:
+ $ref: '#/components/schemas/ArbitraryRuleResponseDataAttributesCostsToAllocateItems'
+ type: array
+ created:
+ description: The `attributes` `created`.
+ example: ''
+ format: date-time
+ type: string
+ enabled:
+ description: The `attributes` `enabled`.
+ example: false
+ type: boolean
+ last_modified_user_uuid:
+ description: The `attributes` `last_modified_user_uuid`.
+ example: ''
+ type: string
+ order_id:
+ description: The `attributes` `order_id`.
+ example: 0
+ format: int64
+ type: integer
+ provider:
+ description: The `attributes` `provider`.
+ example:
+ - ''
+ items:
+ type: string
+ type: array
+ rejected:
+ description: The `attributes` `rejected`.
+ type: boolean
+ rule_name:
+ description: The `attributes` `rule_name`.
+ example: ''
+ type: string
+ strategy:
+ $ref: '#/components/schemas/ArbitraryRuleResponseDataAttributesStrategy'
+ type:
+ description: The `attributes` `type`.
+ example: ''
+ type: string
+ updated:
+ description: The `attributes` `updated`.
+ example: ''
+ format: date-time
+ type: string
+ version:
+ description: The `attributes` `version`.
+ example: 0
+ format: int32
+ maximum: 2147483647
+ type: integer
+ required:
+ - costs_to_allocate
+ - created
+ - enabled
+ - last_modified_user_uuid
+ - order_id
+ - provider
+ - rule_name
+ - strategy
+ - type
+ - updated
+ - version
+ type: object
+ ArbitraryRuleResponseDataAttributesCostsToAllocateItems:
+ description: The definition of `ArbitraryRuleResponseDataAttributesCostsToAllocateItems`
+ object.
+ properties:
+ condition:
+ description: The `items` `condition`.
+ example: ''
+ type: string
+ tag:
+ description: The `items` `tag`.
+ example: ''
+ type: string
+ value:
+ description: The `items` `value`.
+ type: string
+ values:
+ description: The `items` `values`.
+ items:
+ type: string
+ nullable: true
+ type: array
+ required:
+ - condition
+ - tag
+ type: object
+ ArbitraryRuleResponseDataAttributesStrategy:
+ description: The definition of `ArbitraryRuleResponseDataAttributesStrategy`
+ object.
+ properties:
+ allocated_by:
+ description: The `strategy` `allocated_by`.
+ items:
+ $ref: '#/components/schemas/ArbitraryRuleResponseDataAttributesStrategyAllocatedByItems'
+ type: array
+ allocated_by_filters:
+ description: The `strategy` `allocated_by_filters`.
+ items:
+ $ref: '#/components/schemas/ArbitraryRuleResponseDataAttributesStrategyAllocatedByFiltersItems'
+ type: array
+ allocated_by_tag_keys:
+ description: The `strategy` `allocated_by_tag_keys`.
+ items:
+ type: string
+ type: array
+ based_on_costs:
+ description: The `strategy` `based_on_costs`.
+ items:
+ $ref: '#/components/schemas/ArbitraryRuleResponseDataAttributesStrategyBasedOnCostsItems'
+ type: array
+ based_on_timeseries:
+ additionalProperties: {}
+ description: The rule `strategy` `based_on_timeseries`.
+ type: object
+ evaluate_grouped_by_filters:
+ description: The `strategy` `evaluate_grouped_by_filters`.
+ items:
+ $ref: '#/components/schemas/ArbitraryRuleResponseDataAttributesStrategyEvaluateGroupedByFiltersItems'
+ type: array
+ evaluate_grouped_by_tag_keys:
+ description: The `strategy` `evaluate_grouped_by_tag_keys`.
+ items:
+ type: string
+ type: array
+ granularity:
+ description: The `strategy` `granularity`.
+ type: string
+ method:
+ description: The `strategy` `method`.
+ example: ''
+ type: string
+ required:
+ - method
+ type: object
+ ArbitraryRuleResponseDataAttributesStrategyAllocatedByFiltersItems:
+ description: The definition of `ArbitraryRuleResponseDataAttributesStrategyAllocatedByFiltersItems`
+ object.
+ properties:
+ condition:
+ description: The `items` `condition`.
+ example: ''
+ type: string
+ tag:
+ description: The `items` `tag`.
+ example: ''
+ type: string
+ value:
+ description: The `items` `value`.
+ type: string
+ values:
+ description: The `items` `values`.
+ items:
+ type: string
+ nullable: true
+ type: array
+ required:
+ - condition
+ - tag
+ type: object
+ ArbitraryRuleResponseDataAttributesStrategyAllocatedByItems:
+ description: The definition of `ArbitraryRuleResponseDataAttributesStrategyAllocatedByItems`
+ object.
+ properties:
+ allocated_tags:
+ description: The `items` `allocated_tags`.
+ items:
+ $ref: '#/components/schemas/ArbitraryRuleResponseDataAttributesStrategyAllocatedByItemsAllocatedTagsItems'
+ type: array
+ percentage:
+ description: The `items` `percentage`. The numeric value format should be
+ a 32bit float value.
+ example: 0.0
+ format: double
+ type: number
+ required:
+ - allocated_tags
+ - percentage
+ type: object
+ ArbitraryRuleResponseDataAttributesStrategyAllocatedByItemsAllocatedTagsItems:
+ description: The definition of `ArbitraryRuleResponseDataAttributesStrategyAllocatedByItemsAllocatedTagsItems`
+ object.
+ properties:
+ key:
+ description: The `items` `key`.
+ example: ''
+ type: string
+ value:
+ description: The `items` `value`.
+ example: ''
+ type: string
+ required:
+ - key
+ - value
+ type: object
+ ArbitraryRuleResponseDataAttributesStrategyBasedOnCostsItems:
+ description: The definition of `ArbitraryRuleResponseDataAttributesStrategyBasedOnCostsItems`
+ object.
+ properties:
+ condition:
+ description: The `items` `condition`.
+ example: ''
+ type: string
+ tag:
+ description: The `items` `tag`.
+ example: ''
+ type: string
+ value:
+ description: The `items` `value`.
+ type: string
+ values:
+ description: The `items` `values`.
+ items:
+ type: string
+ nullable: true
+ type: array
+ required:
+ - condition
+ - tag
+ type: object
+ ArbitraryRuleResponseDataAttributesStrategyEvaluateGroupedByFiltersItems:
+ description: The definition of `ArbitraryRuleResponseDataAttributesStrategyEvaluateGroupedByFiltersItems`
+ object.
+ properties:
+ condition:
+ description: The `items` `condition`.
+ example: ''
+ type: string
+ tag:
+ description: The `items` `tag`.
+ example: ''
+ type: string
+ value:
+ description: The `items` `value`.
+ type: string
+ values:
+ description: The `items` `values`.
+ items:
+ type: string
+ nullable: true
+ type: array
+ required:
+ - condition
+ - tag
+ type: object
+ ArbitraryRuleResponseDataType:
+ default: arbitrary_rule
+ description: Arbitrary rule resource type.
+ enum:
+ - arbitrary_rule
+ example: arbitrary_rule
+ type: string
+ x-enum-varnames:
+ - ARBITRARY_RULE
AsanaAccessToken:
description: The definition of the `AsanaAccessToken` object.
properties:
@@ -4701,6 +5330,7 @@ components:
description: The error messages for the AWS CUR config.
items:
type: string
+ nullable: true
type: array
months:
deprecated: true
@@ -4782,7 +5412,6 @@ components:
type:
$ref: '#/components/schemas/AwsCURConfigPostRequestType'
required:
- - attributes
- type
type: object
AwsCURConfigPostRequest:
@@ -4838,12 +5467,6 @@ components:
type: string
x-enum-varnames:
- AWS_CUR_CONFIG_POST_REQUEST
- AwsCURConfigResponse:
- description: Response of AWS CUR config.
- properties:
- data:
- $ref: '#/components/schemas/AwsCURConfig'
- type: object
AwsCURConfigType:
default: aws_cur_config
description: Type of AWS CUR config.
@@ -4861,7 +5484,120 @@ components:
items:
$ref: '#/components/schemas/AwsCURConfig'
type: array
+ required:
+ - data
+ type: object
+ AwsCurConfigResponse:
+ description: The definition of `AwsCurConfigResponse` object.
+ example:
+ data:
+ attributes:
+ account_filters:
+ excluded_accounts:
+ - '123456789124'
+ - '123456789125'
+ include_new_accounts: true
+ account_id: '123456789123'
+ bucket_name: dd-cost-bucket
+ bucket_region: us-east-1
+ created_at: 2023-01-01 12:00:00
+ error_messages: []
+ months: 36
+ report_name: dd-report-name
+ report_prefix: dd-report-prefix
+ status: active
+ status_updated_at: 2023-01-01 12:00:00
+ updated_at: 2023-01-01 12:00:00
+ id: '123456789123'
+ type: aws_cur_config
+ properties:
+ data:
+ $ref: '#/components/schemas/AwsCurConfigResponseData'
+ type: object
+ AwsCurConfigResponseData:
+ description: The definition of `AwsCurConfigResponseData` object.
+ properties:
+ attributes:
+ $ref: '#/components/schemas/AwsCurConfigResponseDataAttributes'
+ id:
+ description: The `AwsCurConfigResponseData` `id`.
+ type: string
+ type:
+ $ref: '#/components/schemas/AwsCurConfigResponseDataType'
+ required:
+ - type
+ type: object
+ AwsCurConfigResponseDataAttributes:
+ description: The definition of `AwsCurConfigResponseDataAttributes` object.
+ properties:
+ account_filters:
+ $ref: '#/components/schemas/AwsCurConfigResponseDataAttributesAccountFilters'
+ account_id:
+ description: The `attributes` `account_id`.
+ type: string
+ bucket_name:
+ description: The `attributes` `bucket_name`.
+ type: string
+ bucket_region:
+ description: The `attributes` `bucket_region`.
+ type: string
+ created_at:
+ description: The `attributes` `created_at`.
+ type: string
+ error_messages:
+ description: The `attributes` `error_messages`.
+ items:
+ type: string
+ nullable: true
+ type: array
+ months:
+ description: The `attributes` `months`.
+ format: int64
+ type: integer
+ report_name:
+ description: The `attributes` `report_name`.
+ type: string
+ report_prefix:
+ description: The `attributes` `report_prefix`.
+ type: string
+ status:
+ description: The `attributes` `status`.
+ type: string
+ status_updated_at:
+ description: The `attributes` `status_updated_at`.
+ type: string
+ updated_at:
+ description: The `attributes` `updated_at`.
+ type: string
type: object
+ AwsCurConfigResponseDataAttributesAccountFilters:
+ description: The definition of `AwsCurConfigResponseDataAttributesAccountFilters`
+ object.
+ properties:
+ excluded_accounts:
+ description: The `account_filters` `excluded_accounts`.
+ items:
+ type: string
+ type: array
+ include_new_accounts:
+ description: The `account_filters` `include_new_accounts`.
+ nullable: true
+ type: boolean
+ included_accounts:
+ description: The `account_filters` `included_accounts`.
+ items:
+ type: string
+ type: array
+ type: object
+ AwsCurConfigResponseDataType:
+ default: aws_cur_config
+ description: AWS CUR config resource type.
+ enum:
+ - aws_cur_config
+ example: aws_cur_config
+ type: string
+ x-enum-varnames:
+ - AWS_CUR_CONFIG
AwsOnDemandAttributes:
description: Attributes for the AWS on demand task.
properties:
@@ -5271,7 +6007,7 @@ components:
description: Azure config.
properties:
account_id:
- description: The tenant ID of the azure account.
+ description: The tenant ID of the Azure account.
example: 1234abcd-1234-abcd-1234-1234abcd1234
type: string
client_id:
@@ -5290,6 +6026,7 @@ components:
description: The error messages for the Azure config.
items:
type: string
+ nullable: true
type: array
export_name:
description: The name of the configured Azure Export.
@@ -5395,7 +6132,6 @@ components:
type:
$ref: '#/components/schemas/AzureUCConfigPatchRequestType'
required:
- - attributes
- type
type: object
AzureUCConfigPatchRequest:
@@ -5433,7 +6169,6 @@ components:
type:
$ref: '#/components/schemas/AzureUCConfigPostRequestType'
required:
- - attributes
- type
type: object
AzureUCConfigPostRequest:
@@ -5448,7 +6183,7 @@ components:
description: Attributes for Azure config Post Request.
properties:
account_id:
- description: The tenant ID of the azure account.
+ description: The tenant ID of the Azure account.
example: 1234abcd-1234-abcd-1234-1234abcd1234
type: string
actual_bill_config:
@@ -5456,12 +6191,9 @@ components:
amortized_bill_config:
$ref: '#/components/schemas/BillConfig'
client_id:
- description: The client ID of the azure account.
+ description: The client ID of the Azure account.
example: 1234abcd-1234-abcd-1234-1234abcd1234
type: string
- is_enabled:
- description: Whether or not the Cloud Cost Management account is enabled.
- type: boolean
scope:
description: The scope of your observed subscription.
example: /subscriptions/1234abcd-1234-abcd-1234-1234abcd1234
@@ -5490,6 +6222,8 @@ components:
items:
$ref: '#/components/schemas/AzureUCConfigPair'
type: array
+ required:
+ - data
type: object
BillConfig:
description: Bill config.
@@ -11205,6 +11939,204 @@ components:
type:
$ref: '#/components/schemas/RuleType'
type: object
+ CreateRulesetRequest:
+ description: The definition of `CreateRulesetRequest` object.
+ example:
+ data:
+ attributes:
+ enabled: true
+ rules:
+ - enabled: true
+ mapping: null
+ metadata: null
+ name: Add Cost Center Tag
+ query:
+ addition:
+ key: cost_center
+ value: engineering
+ case_insensitivity: false
+ if_not_exists: true
+ query: account_id:"123456789" AND service:"web-api"
+ reference_table: null
+ id: New Ruleset
+ type: create_ruleset
+ properties:
+ data:
+ $ref: '#/components/schemas/CreateRulesetRequestData'
+ type: object
+ CreateRulesetRequestData:
+ description: The definition of `CreateRulesetRequestData` object.
+ properties:
+ attributes:
+ $ref: '#/components/schemas/CreateRulesetRequestDataAttributes'
+ id:
+ description: The `CreateRulesetRequestData` `id`.
+ type: string
+ type:
+ $ref: '#/components/schemas/CreateRulesetRequestDataType'
+ required:
+ - type
+ type: object
+ CreateRulesetRequestDataAttributes:
+ description: The definition of `CreateRulesetRequestDataAttributes` object.
+ properties:
+ enabled:
+ description: The `attributes` `enabled`.
+ type: boolean
+ rules:
+ description: The `attributes` `rules`.
+ items:
+ $ref: '#/components/schemas/CreateRulesetRequestDataAttributesRulesItems'
+ type: array
+ required:
+ - rules
+ type: object
+ CreateRulesetRequestDataAttributesRulesItems:
+ description: The definition of `CreateRulesetRequestDataAttributesRulesItems`
+ object.
+ properties:
+ enabled:
+ description: The `items` `enabled`.
+ example: false
+ type: boolean
+ mapping:
+ $ref: '#/components/schemas/CreateRulesetRequestDataAttributesRulesItemsMapping'
+ metadata:
+ $ref: '#/components/schemas/RulesetItemMetadata'
+ name:
+ description: The `items` `name`.
+ example: ''
+ type: string
+ query:
+ $ref: '#/components/schemas/CreateRulesetRequestDataAttributesRulesItemsQuery'
+ reference_table:
+ $ref: '#/components/schemas/CreateRulesetRequestDataAttributesRulesItemsReferenceTable'
+ required:
+ - enabled
+ - name
+ type: object
+ CreateRulesetRequestDataAttributesRulesItemsMapping:
+ description: The definition of `CreateRulesetRequestDataAttributesRulesItemsMapping`
+ object.
+ nullable: true
+ properties:
+ destination_key:
+ description: The `mapping` `destination_key`.
+ example: ''
+ type: string
+ if_not_exists:
+ description: The `mapping` `if_not_exists`.
+ example: false
+ type: boolean
+ source_keys:
+ description: The `mapping` `source_keys`.
+ example:
+ - ''
+ items:
+ type: string
+ type: array
+ required:
+ - destination_key
+ - if_not_exists
+ - source_keys
+ type: object
+ CreateRulesetRequestDataAttributesRulesItemsQuery:
+ description: The definition of `CreateRulesetRequestDataAttributesRulesItemsQuery`
+ object.
+ nullable: true
+ properties:
+ addition:
+ $ref: '#/components/schemas/CreateRulesetRequestDataAttributesRulesItemsQueryAddition'
+ case_insensitivity:
+ description: The `query` `case_insensitivity`.
+ type: boolean
+ if_not_exists:
+ description: The `query` `if_not_exists`.
+ example: false
+ type: boolean
+ query:
+ description: The `query` `query`.
+ example: ''
+ type: string
+ required:
+ - addition
+ - if_not_exists
+ - query
+ type: object
+ CreateRulesetRequestDataAttributesRulesItemsQueryAddition:
+ description: The definition of `CreateRulesetRequestDataAttributesRulesItemsQueryAddition`
+ object.
+ nullable: true
+ properties:
+ key:
+ description: The `addition` `key`.
+ example: ''
+ type: string
+ value:
+ description: The `addition` `value`.
+ example: ''
+ type: string
+ required:
+ - key
+ - value
+ type: object
+ CreateRulesetRequestDataAttributesRulesItemsReferenceTable:
+ description: The definition of `CreateRulesetRequestDataAttributesRulesItemsReferenceTable`
+ object.
+ nullable: true
+ properties:
+ case_insensitivity:
+ description: The `reference_table` `case_insensitivity`.
+ type: boolean
+ field_pairs:
+ description: The `reference_table` `field_pairs`.
+ items:
+ $ref: '#/components/schemas/CreateRulesetRequestDataAttributesRulesItemsReferenceTableFieldPairsItems'
+ type: array
+ if_not_exists:
+ description: The `reference_table` `if_not_exists`.
+ type: boolean
+ source_keys:
+ description: The `reference_table` `source_keys`.
+ example:
+ - ''
+ items:
+ type: string
+ type: array
+ table_name:
+ description: The `reference_table` `table_name`.
+ example: ''
+ type: string
+ required:
+ - field_pairs
+ - source_keys
+ - table_name
+ type: object
+ CreateRulesetRequestDataAttributesRulesItemsReferenceTableFieldPairsItems:
+ description: The definition of `CreateRulesetRequestDataAttributesRulesItemsReferenceTableFieldPairsItems`
+ object.
+ properties:
+ input_column:
+ description: The `items` `input_column`.
+ example: ''
+ type: string
+ output_key:
+ description: The `items` `output_key`.
+ example: ''
+ type: string
+ required:
+ - input_column
+ - output_key
+ type: object
+ CreateRulesetRequestDataType:
+ default: create_ruleset
+ description: Create ruleset resource type.
+ enum:
+ - create_ruleset
+ example: create_ruleset
+ type: string
+ x-enum-varnames:
+ - CREATE_RULESET
CreateWorkflowRequest:
description: A request object for creating a new workflow.
example:
@@ -18282,12 +19214,12 @@ components:
- type
type: object
GCPUsageCostConfig:
- description: GCP Usage Cost config.
+ description: Google Cloud Usage Cost config.
properties:
attributes:
$ref: '#/components/schemas/GCPUsageCostConfigAttributes'
id:
- description: The ID of the GCP Usage Cost config.
+ description: The ID of the Google Cloud Usage Cost config.
type: string
type:
$ref: '#/components/schemas/GCPUsageCostConfigType'
@@ -18296,36 +19228,37 @@ components:
- type
type: object
GCPUsageCostConfigAttributes:
- description: Attributes for a GCP Usage Cost config.
+ description: Attributes for a Google Cloud Usage Cost config.
properties:
account_id:
- description: The GCP account ID.
+ description: The Google Cloud account ID.
example: 123456_A123BC_12AB34
type: string
bucket_name:
- description: The GCP bucket name used to store the Usage Cost export.
+ description: The Google Cloud bucket name used to store the Usage Cost export.
example: dd-cost-bucket
type: string
created_at:
- description: The timestamp when the GCP Usage Cost config was created.
+ description: The timestamp when the Google Cloud Usage Cost config was created.
pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{6}$
type: string
dataset:
- description: The export dataset name used for the GCP Usage Cost Report.
+ description: The export dataset name used for the Google Cloud Usage Cost
+ Report.
example: billing
type: string
error_messages:
- description: The error messages for the GCP Usage Cost config.
+ description: The error messages for the Google Cloud Usage Cost config.
items:
type: string
nullable: true
type: array
export_prefix:
- description: The export prefix used for the GCP Usage Cost Report.
+ description: The export prefix used for the Google Cloud Usage Cost Report.
example: datadog_cloud_cost_usage_export
type: string
export_project_name:
- description: The name of the GCP Usage Cost Report.
+ description: The name of the Google Cloud Usage Cost Report.
example: dd-cloud-cost-report
type: string
months:
@@ -18335,23 +19268,25 @@ components:
maximum: 36
type: integer
project_id:
- description: The `project_id` of the GCP Usage Cost report.
+ description: The `project_id` of the Google Cloud Usage Cost report.
example: my-project-123
type: string
service_account:
- description: The unique GCP service account email.
+ description: The unique Google Cloud service account email.
example: dd-ccm-gcp-integration@my-environment.iam.gserviceaccount.com
type: string
status:
- description: The status of the GCP Usage Cost config.
+ description: The status of the Google Cloud Usage Cost config.
example: active
type: string
status_updated_at:
- description: The timestamp when the GCP Usage Cost config status was updated.
+ description: The timestamp when the Google Cloud Usage Cost config status
+ was updated.
pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{6}$
type: string
updated_at:
- description: The timestamp when the GCP Usage Cost config status was updated.
+ description: The timestamp when the Google Cloud Usage Cost config status
+ was updated.
pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{6}$
type: string
required:
@@ -18364,7 +19299,7 @@ components:
- status
type: object
GCPUsageCostConfigPatchData:
- description: GCP Usage Cost config patch data.
+ description: Google Cloud Usage Cost config patch data.
properties:
attributes:
$ref: '#/components/schemas/GCPUsageCostConfigPatchRequestAttributes'
@@ -18375,7 +19310,7 @@ components:
- type
type: object
GCPUsageCostConfigPatchRequest:
- description: GCP Usage Cost config patch request.
+ description: Google Cloud Usage Cost config patch request.
properties:
data:
$ref: '#/components/schemas/GCPUsageCostConfigPatchData'
@@ -18383,7 +19318,7 @@ components:
- data
type: object
GCPUsageCostConfigPatchRequestAttributes:
- description: Attributes for GCP Usage Cost config patch request.
+ description: Attributes for Google Cloud Usage Cost config patch request.
properties:
is_enabled:
description: Whether or not the Cloud Cost Management account is enabled.
@@ -18394,7 +19329,7 @@ components:
type: object
GCPUsageCostConfigPatchRequestType:
default: gcp_uc_config_patch_request
- description: Type of GCP Usage Cost config patch request.
+ description: Type of Google Cloud Usage Cost config patch request.
enum:
- gcp_uc_config_patch_request
example: gcp_uc_config_patch_request
@@ -18402,18 +19337,17 @@ components:
x-enum-varnames:
- GCP_USAGE_COST_CONFIG_PATCH_REQUEST
GCPUsageCostConfigPostData:
- description: GCP Usage Cost config post data.
+ description: Google Cloud Usage Cost config post data.
properties:
attributes:
$ref: '#/components/schemas/GCPUsageCostConfigPostRequestAttributes'
type:
$ref: '#/components/schemas/GCPUsageCostConfigPostRequestType'
required:
- - attributes
- type
type: object
GCPUsageCostConfigPostRequest:
- description: GCP Usage Cost config post request.
+ description: Google Cloud Usage Cost config post request.
properties:
data:
$ref: '#/components/schemas/GCPUsageCostConfigPostData'
@@ -18421,30 +19355,31 @@ components:
- data
type: object
GCPUsageCostConfigPostRequestAttributes:
- description: Attributes for GCP Usage Cost config post request.
+ description: Attributes for Google Cloud Usage Cost config post request.
properties:
billing_account_id:
- description: The GCP account ID.
+ description: The Google Cloud account ID.
example: 123456_A123BC_12AB34
type: string
bucket_name:
- description: The GCP bucket name used to store the Usage Cost export.
+ description: The Google Cloud bucket name used to store the Usage Cost export.
example: dd-cost-bucket
type: string
export_dataset_name:
- description: The export dataset name used for the GCP Usage Cost report.
+ description: The export dataset name used for the Google Cloud Usage Cost
+ report.
example: billing
type: string
export_prefix:
- description: The export prefix used for the GCP Usage Cost report.
+ description: The export prefix used for the Google Cloud Usage Cost report.
example: datadog_cloud_cost_usage_export
type: string
export_project_name:
- description: The name of the GCP Usage Cost report.
+ description: The name of the Google Cloud Usage Cost report.
example: dd-cloud-cost-report
type: string
service_account:
- description: The unique GCP service account email.
+ description: The unique Google Cloud service account email.
example: dd-ccm-gcp-integration@my-environment.iam.gserviceaccount.com
type: string
required:
@@ -18456,7 +19391,7 @@ components:
type: object
GCPUsageCostConfigPostRequestType:
default: gcp_uc_config_post_request
- description: Type of GCP Usage Cost config post request.
+ description: Type of Google Cloud Usage Cost config post request.
enum:
- gcp_uc_config_post_request
example: gcp_usage_cost_config_post_request
@@ -18464,14 +19399,14 @@ components:
x-enum-varnames:
- GCP_USAGE_COST_CONFIG_POST_REQUEST
GCPUsageCostConfigResponse:
- description: Response of GCP Usage Cost config.
+ description: Response of Google Cloud Usage Cost config.
properties:
data:
$ref: '#/components/schemas/GCPUsageCostConfig'
type: object
GCPUsageCostConfigType:
default: gcp_uc_config
- description: Type of GCP Usage Cost config.
+ description: Type of Google Cloud Usage Cost config.
enum:
- gcp_uc_config
example: gcp_uc_config
@@ -18479,14 +19414,109 @@ components:
x-enum-varnames:
- GCP_UC_CONFIG
GCPUsageCostConfigsResponse:
- description: List of GCP Usage Cost configs.
+ description: List of Google Cloud Usage Cost configs.
properties:
data:
- description: A GCP Usage Cost config.
+ description: A Google Cloud Usage Cost config.
items:
$ref: '#/components/schemas/GCPUsageCostConfig'
type: array
+ required:
+ - data
+ type: object
+ GcpUcConfigResponse:
+ description: The definition of `GcpUcConfigResponse` object.
+ example:
+ data:
+ attributes:
+ account_id: 123456_A123BC_12AB34
+ bucket_name: dd-cost-bucket
+ created_at: 2023-01-01 12:00:00
+ dataset: billing
+ error_messages: []
+ export_prefix: datadog_cloud_cost_usage_export
+ export_project_name: dd-cloud-cost-report
+ months: 36
+ project_id: my-project-123
+ service_account: dd-ccm-gcp-integration@my-environment.iam.gserviceaccount.com
+ status: active
+ status_updated_at: 2023-01-01 12:00:00
+ updated_at: 2023-01-01 12:00:00
+ id: '123456789123'
+ type: gcp_uc_config
+ properties:
+ data:
+ $ref: '#/components/schemas/GcpUcConfigResponseData'
+ type: object
+ GcpUcConfigResponseData:
+ description: The definition of `GcpUcConfigResponseData` object.
+ properties:
+ attributes:
+ $ref: '#/components/schemas/GcpUcConfigResponseDataAttributes'
+ id:
+ description: The `GcpUcConfigResponseData` `id`.
+ type: string
+ type:
+ $ref: '#/components/schemas/GcpUcConfigResponseDataType'
+ required:
+ - type
+ type: object
+ GcpUcConfigResponseDataAttributes:
+ description: The definition of `GcpUcConfigResponseDataAttributes` object.
+ properties:
+ account_id:
+ description: The `attributes` `account_id`.
+ type: string
+ bucket_name:
+ description: The `attributes` `bucket_name`.
+ type: string
+ created_at:
+ description: The `attributes` `created_at`.
+ type: string
+ dataset:
+ description: The `attributes` `dataset`.
+ type: string
+ error_messages:
+ description: The `attributes` `error_messages`.
+ items:
+ type: string
+ nullable: true
+ type: array
+ export_prefix:
+ description: The `attributes` `export_prefix`.
+ type: string
+ export_project_name:
+ description: The `attributes` `export_project_name`.
+ type: string
+ months:
+ description: The `attributes` `months`.
+ format: int64
+ type: integer
+ project_id:
+ description: The `attributes` `project_id`.
+ type: string
+ service_account:
+ description: The `attributes` `service_account`.
+ type: string
+ status:
+ description: The `attributes` `status`.
+ type: string
+ status_updated_at:
+ description: The `attributes` `status_updated_at`.
+ type: string
+ updated_at:
+ description: The `attributes` `updated_at`.
+ type: string
type: object
+ GcpUcConfigResponseDataType:
+ default: gcp_uc_config
+ description: Google Cloud Usage Cost config resource type.
+ enum:
+ - gcp_uc_config
+ example: gcp_uc_config
+ type: string
+ x-enum-varnames:
+ - GCP_UC_CONFIG
GeminiAPIKey:
description: The definition of the `GeminiAPIKey` object.
properties:
@@ -36173,6 +37203,76 @@ components:
required:
- data
type: object
+ ReorderRuleResourceArray:
+ description: The definition of `ReorderRuleResourceArray` object.
+ example:
+ data:
+ - id: '456'
+ type: arbitrary_rule
+ - id: '123'
+ type: arbitrary_rule
+ - id: '789'
+ type: arbitrary_rule
+ properties:
+ data:
+ description: The `ReorderRuleResourceArray` `data`.
+ items:
+ $ref: '#/components/schemas/ReorderRuleResourceData'
+ type: array
+ required:
+ - data
+ type: object
+ ReorderRuleResourceData:
+ description: The definition of `ReorderRuleResourceData` object.
+ properties:
+ id:
+ description: The `ReorderRuleResourceData` `id`.
+ type: string
+ type:
+ $ref: '#/components/schemas/ReorderRuleResourceDataType'
+ required:
+ - type
+ type: object
+ ReorderRuleResourceDataType:
+ default: arbitrary_rule
+ description: Arbitrary rule resource type.
+ enum:
+ - arbitrary_rule
+ example: arbitrary_rule
+ type: string
+ x-enum-varnames:
+ - ARBITRARY_RULE
+ ReorderRulesetResourceArray:
+ description: The definition of `ReorderRulesetResourceArray` object.
+ properties:
+ data:
+ description: The `ReorderRulesetResourceArray` `data`.
+ items:
+ $ref: '#/components/schemas/ReorderRulesetResourceData'
+ type: array
+ required:
+ - data
+ type: object
+ ReorderRulesetResourceData:
+ description: The definition of `ReorderRulesetResourceData` object.
+ properties:
+ id:
+ description: The `ReorderRulesetResourceData` `id`.
+ type: string
+ type:
+ $ref: '#/components/schemas/ReorderRulesetResourceDataType'
+ required:
+ - type
+ type: object
+ ReorderRulesetResourceDataType:
+ default: ruleset
+ description: Ruleset resource type.
+ enum:
+ - ruleset
+ example: ruleset
+ type: string
+ x-enum-varnames:
+ - RULESET
ResourceFilterAttributes:
description: Attributes of a resource filter.
example:
@@ -37207,6 +38307,396 @@ components:
rule:
$ref: '#/components/schemas/SecurityMonitoringRuleResponse'
type: object
+ RulesValidateQueryRequest:
+ description: The definition of `RulesValidateQueryRequest` object.
+ example:
+ data:
+ attributes:
+ Query: example:query AND test:true
+ type: validate_query
+ properties:
+ data:
+ $ref: '#/components/schemas/RulesValidateQueryRequestData'
+ type: object
+ RulesValidateQueryRequestData:
+ description: The definition of `RulesValidateQueryRequestData` object.
+ properties:
+ attributes:
+ $ref: '#/components/schemas/RulesValidateQueryRequestDataAttributes'
+ id:
+ description: The `RulesValidateQueryRequestData` `id`.
+ type: string
+ type:
+ $ref: '#/components/schemas/RulesValidateQueryRequestDataType'
+ required:
+ - type
+ type: object
+ RulesValidateQueryRequestDataAttributes:
+ description: The definition of `RulesValidateQueryRequestDataAttributes` object.
+ properties:
+ Query:
+ description: The `attributes` `Query`.
+ example: ''
+ type: string
+ required:
+ - Query
+ type: object
+ RulesValidateQueryRequestDataType:
+ default: validate_query
+ description: Validate query resource type.
+ enum:
+ - validate_query
+ example: validate_query
+ type: string
+ x-enum-varnames:
+ - VALIDATE_QUERY
+ RulesValidateQueryResponse:
+ description: The definition of `RulesValidateQueryResponse` object.
+ example:
+ data:
+ attributes:
+ Canonical: canonical query representation
+ type: validate_response
+ properties:
+ data:
+ $ref: '#/components/schemas/RulesValidateQueryResponseData'
+ type: object
+ RulesValidateQueryResponseData:
+ description: The definition of `RulesValidateQueryResponseData` object.
+ properties:
+ attributes:
+ $ref: '#/components/schemas/RulesValidateQueryResponseDataAttributes'
+ id:
+ description: The `RulesValidateQueryResponseData` `id`.
+ type: string
+ type:
+ $ref: '#/components/schemas/RulesValidateQueryResponseDataType'
+ required:
+ - type
+ type: object
+ RulesValidateQueryResponseDataAttributes:
+ description: The definition of `RulesValidateQueryResponseDataAttributes` object.
+ properties:
+ Canonical:
+ description: The `attributes` `Canonical`.
+ example: ''
+ type: string
+ required:
+ - Canonical
+ type: object
+ RulesValidateQueryResponseDataType:
+ default: validate_response
+ description: Validate response resource type.
+ enum:
+ - validate_response
+ example: validate_response
+ type: string
+ x-enum-varnames:
+ - VALIDATE_RESPONSE
+ RulesetItemMetadata:
+ additionalProperties:
+ type: string
+ description: The `items` `metadata`.
+ nullable: true
+ type: object
+ RulesetResp:
+ description: The definition of `RulesetResp` object.
+ example:
+ data:
+ attributes:
+ created: null
+ enabled: true
+ last_modified_user_uuid: ''
+ modified: null
+ name: Example Ruleset
+ position: 0
+ rules:
+ - enabled: false
+ mapping: null
+ metadata: null
+ name: RC test rule edited1
+ query:
+ addition:
+ key: abc
+ value: ww
+ case_insensitivity: false
+ if_not_exists: true
+ query: billingcurrency:"USD" AND account_name:"SZA96462" AND billingcurrency:"USD"
+ reference_table: null
+ - enabled: true
+ mapping:
+ destination_key: h
+ if_not_exists: true
+ source_keys:
+ - accountname
+ - accountownerid
+ metadata: null
+ name: rule with empty source key
+ query: null
+ reference_table: null
+ - enabled: true
+ mapping: null
+ metadata: null
+ name: New table rule with new UI
+ query: null
+ reference_table:
+ case_insensitivity: true
+ field_pairs:
+ - input_column: status_type
+ output_key: status
+ - input_column: status_description
+ output_key: dess
+ if_not_exists: false
+ source_keys:
+ - http_status
+ - status_description
+ table_name: http_status_codes
+ version: 1
+ id: '12345'
+ type: ruleset
+ properties:
+ data:
+ $ref: '#/components/schemas/RulesetRespData'
+ type: object
+ RulesetRespArray:
+ description: The definition of `RulesetRespArray` object.
+ properties:
+ data:
+ description: The `RulesetRespArray` `data`.
+ items:
+ $ref: '#/components/schemas/RulesetRespData'
+ type: array
+ required:
+ - data
+ type: object
+ RulesetRespData:
+ description: The definition of `RulesetRespData` object.
+ properties:
+ attributes:
+ $ref: '#/components/schemas/RulesetRespDataAttributes'
+ id:
+ description: The `RulesetRespData` `id`.
+ type: string
+ type:
+ $ref: '#/components/schemas/RulesetRespDataType'
+ required:
+ - type
+ type: object
+ RulesetRespDataAttributes:
+ description: The definition of `RulesetRespDataAttributes` object.
+ properties:
+ created:
+ $ref: '#/components/schemas/RulesetRespDataAttributesCreated'
+ enabled:
+ description: The `attributes` `enabled`.
+ example: false
+ type: boolean
+ last_modified_user_uuid:
+ description: The `attributes` `last_modified_user_uuid`.
+ example: ''
+ type: string
+ modified:
+ $ref: '#/components/schemas/RulesetRespDataAttributesModified'
+ name:
+ description: The `attributes` `name`.
+ example: ''
+ type: string
+ position:
+ description: The `attributes` `position`.
+ example: 0
+ format: int32
+ maximum: 2147483647
+ type: integer
+ rules:
+ description: The `attributes` `rules`.
+ items:
+ $ref: '#/components/schemas/RulesetRespDataAttributesRulesItems'
+ type: array
+ version:
+ description: The `attributes` `version`.
+ example: 0
+ format: int64
+ type: integer
+ required:
+ - created
+ - enabled
+ - last_modified_user_uuid
+ - modified
+ - name
+ - position
+ - rules
+ - version
+ type: object
+ RulesetRespDataAttributesCreated:
+ description: The definition of `RulesetRespDataAttributesCreated` object.
+ properties:
+ nanos:
+ description: The `created` `nanos`.
+ format: int32
+ maximum: 2147483647
+ type: integer
+ seconds:
+ description: The `created` `seconds`.
+ format: int64
+ type: integer
+ type: object
+ RulesetRespDataAttributesModified:
+ description: The definition of `RulesetRespDataAttributesModified` object.
+ properties:
+ nanos:
+ description: The `modified` `nanos`.
+ format: int32
+ maximum: 2147483647
+ type: integer
+ seconds:
+ description: The `modified` `seconds`.
+ format: int64
+ type: integer
+ type: object
+ RulesetRespDataAttributesRulesItems:
+ description: The definition of `RulesetRespDataAttributesRulesItems` object.
+ properties:
+ enabled:
+ description: The `items` `enabled`.
+ example: false
+ type: boolean
+ mapping:
+ $ref: '#/components/schemas/RulesetRespDataAttributesRulesItemsMapping'
+ metadata:
+ $ref: '#/components/schemas/RulesetItemMetadata'
+ name:
+ description: The `items` `name`.
+ example: ''
+ type: string
+ query:
+ $ref: '#/components/schemas/RulesetRespDataAttributesRulesItemsQuery'
+ reference_table:
+ $ref: '#/components/schemas/RulesetRespDataAttributesRulesItemsReferenceTable'
+ required:
+ - enabled
+ - name
+ type: object
+ RulesetRespDataAttributesRulesItemsMapping:
+ description: The definition of `RulesetRespDataAttributesRulesItemsMapping`
+ object.
+ nullable: true
+ properties:
+ destination_key:
+ description: The `mapping` `destination_key`.
+ example: ''
+ type: string
+ if_not_exists:
+ description: The `mapping` `if_not_exists`.
+ example: false
+ type: boolean
+ source_keys:
+ description: The `mapping` `source_keys`.
+ example:
+ - ''
+ items:
+ type: string
+ type: array
+ required:
+ - destination_key
+ - if_not_exists
+ - source_keys
+ type: object
+ RulesetRespDataAttributesRulesItemsQuery:
+ description: The definition of `RulesetRespDataAttributesRulesItemsQuery` object.
+ nullable: true
+ properties:
+ addition:
+ $ref: '#/components/schemas/RulesetRespDataAttributesRulesItemsQueryAddition'
+ case_insensitivity:
+ description: The `query` `case_insensitivity`.
+ type: boolean
+ if_not_exists:
+ description: The `query` `if_not_exists`.
+ example: false
+ type: boolean
+ query:
+ description: The `query` `query`.
+ example: ''
+ type: string
+ required:
+ - addition
+ - if_not_exists
+ - query
+ type: object
+ RulesetRespDataAttributesRulesItemsQueryAddition:
+ description: The definition of `RulesetRespDataAttributesRulesItemsQueryAddition`
+ object.
+ nullable: true
+ properties:
+ key:
+ description: The `addition` `key`.
+ example: ''
+ type: string
+ value:
+ description: The `addition` `value`.
+ example: ''
+ type: string
+ required:
+ - key
+ - value
+ type: object
+ RulesetRespDataAttributesRulesItemsReferenceTable:
+ description: The definition of `RulesetRespDataAttributesRulesItemsReferenceTable`
+ object.
+ nullable: true
+ properties:
+ case_insensitivity:
+ description: The `reference_table` `case_insensitivity`.
+ type: boolean
+ field_pairs:
+ description: The `reference_table` `field_pairs`.
+ items:
+ $ref: '#/components/schemas/RulesetRespDataAttributesRulesItemsReferenceTableFieldPairsItems'
+ type: array
+ if_not_exists:
+ description: The `reference_table` `if_not_exists`.
+ type: boolean
+ source_keys:
+ description: The `reference_table` `source_keys`.
+ example:
+ - ''
+ items:
+ type: string
+ type: array
+ table_name:
+ description: The `reference_table` `table_name`.
+ example: ''
+ type: string
+ required:
+ - field_pairs
+ - source_keys
+ - table_name
+ type: object
+ RulesetRespDataAttributesRulesItemsReferenceTableFieldPairsItems:
+ description: The definition of `RulesetRespDataAttributesRulesItemsReferenceTableFieldPairsItems`
+ object.
+ properties:
+ input_column:
+ description: The `items` `input_column`.
+ example: ''
+ type: string
+ output_key:
+ description: The `items` `output_key`.
+ example: ''
+ type: string
+ required:
+ - input_column
+ - output_key
+ type: object
+ RulesetRespDataType:
+ default: ruleset
+ description: Ruleset resource type.
+ enum:
+ - ruleset
+ example: ruleset
+ type: string
+ x-enum-varnames:
+ - RULESET
RumMetricCompute:
description: The compute rule to compute the rum-based metric.
properties:
@@ -46182,6 +47672,117 @@ components:
x-enum-varnames:
- SECURITY_FINDINGS
- SECURITY_SIGNALS
+ UCConfigPair:
+ description: The definition of `UCConfigPair` object.
+ example:
+ data:
+ attributes:
+ configs:
+ - account_id: 1234abcd-1234-abcd-1234-1234abcd1234
+ client_id: 1234abcd-1234-abcd-1234-1234abcd1234
+ created_at: 2023-01-01 12:00:00
+ dataset_type: actual
+ error_messages: []
+ export_name: dd-actual-export
+ export_path: dd-export-path
+ id: '123456789123'
+ months: 36
+ scope: /subscriptions/1234abcd-1234-abcd-1234-1234abcd1234
+ status: active
+ status_updated_at: 2023-01-01 12:00:00
+ storage_account: dd-storage-account
+ storage_container: dd-storage-container
+ updated_at: 2023-01-01 12:00:00
+ id: '123456789123'
+ type: azure_uc_configs
+ properties:
+ data:
+ $ref: '#/components/schemas/UCConfigPairData'
+ type: object
+ UCConfigPairData:
+ description: The definition of `UCConfigPairData` object.
+ properties:
+ attributes:
+ $ref: '#/components/schemas/UCConfigPairDataAttributes'
+ id:
+ description: The `UCConfigPairData` `id`.
+ type: string
+ type:
+ $ref: '#/components/schemas/UCConfigPairDataType'
+ required:
+ - type
+ type: object
+ UCConfigPairDataAttributes:
+ description: The definition of `UCConfigPairDataAttributes` object.
+ properties:
+ configs:
+ description: The `attributes` `configs`.
+ items:
+ $ref: '#/components/schemas/UCConfigPairDataAttributesConfigsItems'
+ type: array
+ type: object
+ UCConfigPairDataAttributesConfigsItems:
+ description: The definition of `UCConfigPairDataAttributesConfigsItems` object.
+ properties:
+ account_id:
+ description: The `items` `account_id`.
+ type: string
+ client_id:
+ description: The `items` `client_id`.
+ type: string
+ created_at:
+ description: The `items` `created_at`.
+ type: string
+ dataset_type:
+ description: The `items` `dataset_type`.
+ type: string
+ error_messages:
+ description: The `items` `error_messages`.
+ items:
+ type: string
+ nullable: true
+ type: array
+ export_name:
+ description: The `items` `export_name`.
+ type: string
+ export_path:
+ description: The `items` `export_path`.
+ type: string
+ id:
+ description: The `items` `id`.
+ type: string
+ months:
+ description: The `items` `months`.
+ format: int64
+ type: integer
+ scope:
+ description: The `items` `scope`.
+ type: string
+ status:
+ description: The `items` `status`.
+ type: string
+ status_updated_at:
+ description: The `items` `status_updated_at`.
+ type: string
+ storage_account:
+ description: The `items` `storage_account`.
+ type: string
+ storage_container:
+ description: The `items` `storage_container`.
+ type: string
+ updated_at:
+ description: The `items` `updated_at`.
+ type: string
+ type: object
+ UCConfigPairDataType:
+ default: azure_uc_configs
+ description: Azure UC configs resource type.
+ enum:
+ - azure_uc_configs
+ example: azure_uc_configs
+ type: string
+ x-enum-varnames:
+ - AZURE_UC_CONFIGS
Unit:
description: Object containing the metric unit family, scale factor, name, and
short name.
@@ -46658,6 +48259,209 @@ components:
type:
$ref: '#/components/schemas/RuleType'
type: object
+ UpdateRulesetRequest:
+ description: The definition of `UpdateRulesetRequest` object.
+ example:
+ data:
+ attributes:
+ enabled: true
+ last_version: 1
+ rules:
+ - enabled: true
+ mapping:
+ destination_key: team_owner
+ if_not_exists: true
+ source_keys:
+ - account_name
+ - account_id
+ metadata: null
+ name: Account Name Mapping
+ query: null
+ reference_table: null
+ type: update_ruleset
+ properties:
+ data:
+ $ref: '#/components/schemas/UpdateRulesetRequestData'
+ type: object
+ UpdateRulesetRequestData:
+ description: The definition of `UpdateRulesetRequestData` object.
+ properties:
+ attributes:
+ $ref: '#/components/schemas/UpdateRulesetRequestDataAttributes'
+ id:
+ description: The `UpdateRulesetRequestData` `id`.
+ type: string
+ type:
+ $ref: '#/components/schemas/UpdateRulesetRequestDataType'
+ required:
+ - type
+ type: object
+ UpdateRulesetRequestDataAttributes:
+ description: The definition of `UpdateRulesetRequestDataAttributes` object.
+ properties:
+ enabled:
+ description: The `attributes` `enabled`.
+ example: false
+ type: boolean
+ last_version:
+ description: The `attributes` `last_version`.
+ format: int64
+ type: integer
+ rules:
+ description: The `attributes` `rules`.
+ items:
+ $ref: '#/components/schemas/UpdateRulesetRequestDataAttributesRulesItems'
+ type: array
+ required:
+ - enabled
+ - rules
+ type: object
+ UpdateRulesetRequestDataAttributesRulesItems:
+ description: The definition of `UpdateRulesetRequestDataAttributesRulesItems`
+ object.
+ properties:
+ enabled:
+ description: The `items` `enabled`.
+ example: false
+ type: boolean
+ mapping:
+ $ref: '#/components/schemas/UpdateRulesetRequestDataAttributesRulesItemsMapping'
+ metadata:
+ $ref: '#/components/schemas/RulesetItemMetadata'
+ name:
+ description: The `items` `name`.
+ example: ''
+ type: string
+ query:
+ $ref: '#/components/schemas/UpdateRulesetRequestDataAttributesRulesItemsQuery'
+ reference_table:
+ $ref: '#/components/schemas/UpdateRulesetRequestDataAttributesRulesItemsReferenceTable'
+ required:
+ - enabled
+ - name
+ type: object
+ UpdateRulesetRequestDataAttributesRulesItemsMapping:
+ description: The definition of `UpdateRulesetRequestDataAttributesRulesItemsMapping`
+ object.
+ nullable: true
+ properties:
+ destination_key:
+ description: The `mapping` `destination_key`.
+ example: ''
+ type: string
+ if_not_exists:
+ description: The `mapping` `if_not_exists`.
+ example: false
+ type: boolean
+ source_keys:
+ description: The `mapping` `source_keys`.
+ example:
+ - ''
+ items:
+ type: string
+ type: array
+ required:
+ - destination_key
+ - if_not_exists
+ - source_keys
+ type: object
+ UpdateRulesetRequestDataAttributesRulesItemsQuery:
+ description: The definition of `UpdateRulesetRequestDataAttributesRulesItemsQuery`
+ object.
+ nullable: true
+ properties:
+ addition:
+ $ref: '#/components/schemas/UpdateRulesetRequestDataAttributesRulesItemsQueryAddition'
+ case_insensitivity:
+ description: The `query` `case_insensitivity`.
+ type: boolean
+ if_not_exists:
+ description: The `query` `if_not_exists`.
+ example: false
+ type: boolean
+ query:
+ description: The `query` `query`.
+ example: ''
+ type: string
+ required:
+ - addition
+ - if_not_exists
+ - query
+ type: object
+ UpdateRulesetRequestDataAttributesRulesItemsQueryAddition:
+ description: The definition of `UpdateRulesetRequestDataAttributesRulesItemsQueryAddition`
+ object.
+ nullable: true
+ properties:
+ key:
+ description: The `addition` `key`.
+ example: ''
+ type: string
+ value:
+ description: The `addition` `value`.
+ example: ''
+ type: string
+ required:
+ - key
+ - value
+ type: object
+ UpdateRulesetRequestDataAttributesRulesItemsReferenceTable:
+ description: The definition of `UpdateRulesetRequestDataAttributesRulesItemsReferenceTable`
+ object.
+ nullable: true
+ properties:
+ case_insensitivity:
+ description: The `reference_table` `case_insensitivity`.
+ type: boolean
+ field_pairs:
+ description: The `reference_table` `field_pairs`.
+ items:
+ $ref: '#/components/schemas/UpdateRulesetRequestDataAttributesRulesItemsReferenceTableFieldPairsItems'
+ type: array
+ if_not_exists:
+ description: The `reference_table` `if_not_exists`.
+ type: boolean
+ source_keys:
+ description: The `reference_table` `source_keys`.
+ example:
+ - ''
+ items:
+ type: string
+ type: array
+ table_name:
+ description: The `reference_table` `table_name`.
+ example: ''
+ type: string
+ required:
+ - field_pairs
+ - source_keys
+ - table_name
+ type: object
+ UpdateRulesetRequestDataAttributesRulesItemsReferenceTableFieldPairsItems:
+ description: The definition of `UpdateRulesetRequestDataAttributesRulesItemsReferenceTableFieldPairsItems`
+ object.
+ properties:
+ input_column:
+ description: The `items` `input_column`.
+ example: ''
+ type: string
+ output_key:
+ description: The `items` `output_key`.
+ example: ''
+ type: string
+ required:
+ - input_column
+ - output_key
+ type: object
+ UpdateRulesetRequestDataType:
+ default: update_ruleset
+ description: Update ruleset resource type.
+ enum:
+ - update_ruleset
+ example: update_ruleset
+ type: string
+ x-enum-varnames:
+ - UPDATE_RULESET
UpdateWorkflowRequest:
description: A request object for updating an existing workflow.
example:
@@ -52755,6 +54559,231 @@ paths:
x-permission:
operator: OPEN
permissions: []
+ /api/v2/cost/arbitrary_rule:
+ get:
+ description: List all arbitrary cost rules - Retrieve a list of all arbitrary
+ cost rules for the organization
+ operationId: ListArbitraryCostRules
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ArbitraryRuleResponseArray'
+ description: OK
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ:
+ - cloud_cost_management_read
+ summary: List arbitrary cost rules
+ tags:
+ - Cloud Cost Management
+ post:
+ description: 'Create a new arbitrary cost rule with the specified filters and
+ allocation strategy.
+
+
+ **Strategy Methods:**
+
+ - **PROPORTIONAL/EVEN**: Allocates costs proportionally/evenly based on existing
+ costs. Requires: granularity, allocated_by_tag_keys. Optional: based_on_costs,
+ allocated_by_filters, evaluate_grouped_by_tag_keys, evaluate_grouped_by_filters.
+
+ - **PROPORTIONAL_TIMESERIES/EVEN_TIMESERIES**: Allocates based on timeseries
+ data. Requires: granularity, based_on_timeseries. Optional: evaluate_grouped_by_tag_keys.
+
+ - **PERCENT**: Allocates fixed percentages to specific tags. Requires: allocated_by
+ (array of percentage allocations).
+
+
+ **Filter Conditions:**
+
+ - Use **value** for single-value conditions: "is", "is not", "contains", "does
+ not contain", "=", "!=", "like", "not like", "is all values", "is untagged"
+
+ - Use **values** for multi-value conditions: "in", "not in"
+
+ - Cannot use both value and values simultaneously.
+
+
+ **Supported operators**: is, is not, is all values, is untagged, contains,
+ does not contain, in, not in, =, !=, like, not like'
+ operationId: CreateArbitraryCostRule
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ArbitraryCostUpsertRequest'
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ArbitraryRuleResponse'
+ description: OK
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ:
+ - cloud_cost_management_write
+ summary: Create arbitrary cost rule
+ tags:
+ - Cloud Cost Management
+ /api/v2/cost/arbitrary_rule/reorder:
+ post:
+ description: "Reorder arbitrary cost rules - Change the execution order of arbitrary
+ cost rules.\n\n**Important**: You must provide the **complete list** of all
+ rule IDs in the desired execution order. The API will reorder ALL rules according
+ to the provided sequence.\n\nRules are executed in the order specified, with
+ lower indices (earlier in the array) having higher priority.\n\n**Example**:
+ If you have rules with IDs [123, 456, 789] and want to change order from 123\u2192456\u2192789
+ to 456\u2192123\u2192789, send: [{\"id\": \"456\"}, {\"id\": \"123\"}, {\"id\":
+ \"789\"}]"
+ operationId: ReorderArbitraryCostRules
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ReorderRuleResourceArray'
+ required: true
+ responses:
+ '204':
+ description: Successfully reordered rules
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ:
+ - cloud_cost_management_write
+ summary: Reorder arbitrary cost rules
+ tags:
+ - Cloud Cost Management
+ /api/v2/cost/arbitrary_rule/{rule_id}:
+ delete:
+ description: Delete an arbitrary cost rule - Delete an existing arbitrary cost
+ rule by its ID
+ operationId: DeleteArbitraryCostRule
+ parameters:
+ - description: The unique identifier of the arbitrary cost rule
+ in: path
+ name: rule_id
+ required: true
+ schema:
+ format: int64
+ type: integer
+ responses:
+ '204':
+ description: No Content
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ:
+ - cloud_cost_management_write
+ summary: Delete arbitrary cost rule
+ tags:
+ - Cloud Cost Management
+ get:
+ description: Get a specific arbitrary cost rule - Retrieve a specific arbitrary
+ cost rule by its ID
+ operationId: GetArbitraryCostRule
+ parameters:
+ - description: The unique identifier of the arbitrary cost rule
+ in: path
+ name: rule_id
+ required: true
+ schema:
+ format: int64
+ type: integer
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ArbitraryRuleResponse'
+ description: OK
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ:
+ - cloud_cost_management_read
+ summary: Get arbitrary cost rule
+ tags:
+ - Cloud Cost Management
+ patch:
+ description: 'Update an existing arbitrary cost rule with new filters and allocation
+ strategy.
+
+
+ **Strategy Methods:**
+
+ - **PROPORTIONAL/EVEN**: Allocates costs proportionally/evenly based on existing
+ costs. Requires: granularity, allocated_by_tag_keys. Optional: based_on_costs,
+ allocated_by_filters, evaluate_grouped_by_tag_keys, evaluate_grouped_by_filters.
+
+ - **PROPORTIONAL_TIMESERIES/EVEN_TIMESERIES**: Allocates based on timeseries
+ data. Requires: granularity, based_on_timeseries. Optional: evaluate_grouped_by_tag_keys.
+
+ - **PERCENT**: Allocates fixed percentages to specific tags. Requires: allocated_by
+ (array of percentage allocations).
+
+ - **USAGE_METRIC**: Allocates based on usage metrics (implementation varies).
+
+
+ **Filter Conditions:**
+
+ - Use **value** for single-value conditions: "is", "is not", "contains", "does
+ not contain", "=", "!=", "like", "not like", "is all values", "is untagged"
+
+ - Use **values** for multi-value conditions: "in", "not in"
+
+ - Cannot use both value and values simultaneously.
+
+
+ **Supported operators**: is, is not, is all values, is untagged, contains,
+ does not contain, in, not in, =, !=, like, not like'
+ operationId: UpdateArbitraryCostRule
+ parameters:
+ - description: The unique identifier of the arbitrary cost rule
+ in: path
+ name: rule_id
+ required: true
+ schema:
+ format: int64
+ type: integer
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ArbitraryCostUpsertRequest'
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ArbitraryRuleResponse'
+ description: OK
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ:
+ - cloud_cost_management_write
+ summary: Update arbitrary cost rule
+ tags:
+ - Cloud Cost Management
/api/v2/cost/aws_cur_config:
get:
description: List the AWS CUR configs.
@@ -52800,7 +54829,7 @@ paths:
content:
application/json:
schema:
- $ref: '#/components/schemas/AwsCURConfigResponse'
+ $ref: '#/components/schemas/AwsCurConfigResponse'
description: OK
'400':
content:
@@ -52856,75 +54885,212 @@ paths:
appKeyAuth: []
- AuthZ:
- cloud_cost_management_write
- summary: Delete Cloud Cost Management AWS CUR config
+ summary: Delete Cloud Cost Management AWS CUR config
+ tags:
+ - Cloud Cost Management
+ x-permission:
+ operator: OR
+ permissions:
+ - cloud_cost_management_write
+ get:
+ description: Get a specific AWS CUR config.
+ operationId: GetCostAWSCURConfig
+ parameters:
+ - description: The unique identifier of the cloud account
+ in: path
+ name: cloud_account_id
+ required: true
+ schema:
+ format: int64
+ type: integer
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/AwsCurConfigResponse'
+ description: OK
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ:
+ - cloud_cost_management_read
+ summary: Get cost AWS CUR config
+ tags:
+ - Cloud Cost Management
+ patch:
+ description: Update the status (active/archived) and/or account filtering configuration
+ of an AWS CUR config.
+ operationId: UpdateCostAWSCURConfig
+ parameters:
+ - $ref: '#/components/parameters/CloudAccountID'
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/AwsCURConfigPatchRequest'
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/AwsCURConfigsResponse'
+ description: OK
+ '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 Cloud Cost Management AWS CUR config
+ tags:
+ - Cloud Cost Management
+ x-permission:
+ operator: OR
+ permissions:
+ - cloud_cost_management_write
+ /api/v2/cost/azure_uc_config:
+ get:
+ description: List the Azure configs.
+ operationId: ListCostAzureUCConfigs
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/AzureUCConfigsResponse'
+ description: OK
+ '403':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/APIErrorResponse'
+ description: Forbidden
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ:
+ - cloud_cost_management_read
+ summary: List Cloud Cost Management Azure configs
+ tags:
+ - Cloud Cost Management
+ x-permission:
+ operator: OR
+ permissions:
+ - cloud_cost_management_read
+ post:
+ description: Create a Cloud Cost Management account for an Azure config.
+ operationId: CreateCostAzureUCConfigs
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/AzureUCConfigPostRequest'
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/AzureUCConfigPairsResponse'
+ 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
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ:
+ - cloud_cost_management_write
+ summary: Create Cloud Cost Management Azure configs
+ tags:
+ - Cloud Cost Management
+ x-permission:
+ operator: OR
+ permissions:
+ - cloud_cost_management_write
+ /api/v2/cost/azure_uc_config/{cloud_account_id}:
+ delete:
+ description: Archive a Cloud Cost Management Account.
+ operationId: DeleteCostAzureUCConfig
+ parameters:
+ - $ref: '#/components/parameters/CloudAccountID'
+ responses:
+ '204':
+ description: No Content
+ '400':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/APIErrorResponse'
+ description: Bad Request
+ '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: Delete Cloud Cost Management Azure config
tags:
- Cloud Cost Management
x-permission:
operator: OR
permissions:
- cloud_cost_management_write
- patch:
- description: Update the status (active/archived) and/or account filtering configuration
- of an AWS CUR config.
- operationId: UpdateCostAWSCURConfig
+ get:
+ description: Get a specific Azure config.
+ operationId: GetCostAzureUCConfig
parameters:
- - $ref: '#/components/parameters/CloudAccountID'
- requestBody:
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/AwsCURConfigPatchRequest'
+ - description: The unique identifier of the cloud account
+ in: path
+ name: cloud_account_id
required: true
+ schema:
+ format: int64
+ type: integer
responses:
'200':
content:
application/json:
schema:
- $ref: '#/components/schemas/AwsCURConfigsResponse'
- description: OK
- '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 Cloud Cost Management AWS CUR config
- tags:
- - Cloud Cost Management
- x-permission:
- operator: OR
- permissions:
- - cloud_cost_management_write
- /api/v2/cost/azure_uc_config:
- get:
- description: List the Azure configs.
- operationId: ListCostAzureUCConfigs
- responses:
- '200':
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/AzureUCConfigsResponse'
+ $ref: '#/components/schemas/UCConfigPair'
description: OK
- '403':
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/APIErrorResponse'
- description: Forbidden
'429':
$ref: '#/components/responses/TooManyRequestsResponse'
security:
@@ -52932,90 +55098,9 @@ paths:
appKeyAuth: []
- AuthZ:
- cloud_cost_management_read
- summary: List Cloud Cost Management Azure configs
+ summary: Get cost Azure UC config
tags:
- Cloud Cost Management
- x-permission:
- operator: OR
- permissions:
- - cloud_cost_management_read
- post:
- description: Create a Cloud Cost Management account for an Azure config.
- operationId: CreateCostAzureUCConfigs
- requestBody:
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/AzureUCConfigPostRequest'
- required: true
- responses:
- '200':
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/AzureUCConfigPairsResponse'
- 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
- '429':
- $ref: '#/components/responses/TooManyRequestsResponse'
- security:
- - apiKeyAuth: []
- appKeyAuth: []
- - AuthZ:
- - cloud_cost_management_write
- summary: Create Cloud Cost Management Azure configs
- tags:
- - Cloud Cost Management
- x-permission:
- operator: OR
- permissions:
- - cloud_cost_management_write
- /api/v2/cost/azure_uc_config/{cloud_account_id}:
- delete:
- description: Archive a Cloud Cost Management Account.
- operationId: DeleteCostAzureUCConfig
- parameters:
- - $ref: '#/components/parameters/CloudAccountID'
- responses:
- '204':
- description: No Content
- '400':
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/APIErrorResponse'
- description: Bad Request
- '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: Delete Cloud Cost Management Azure config
- tags:
- - Cloud Cost Management
- x-permission:
- operator: OR
- permissions:
- - cloud_cost_management_write
patch:
description: Update the status of an Azure config (active/archived).
operationId: UpdateCostAzureUCConfigs
@@ -53223,6 +55308,10 @@ paths:
summary: List Custom Costs files
tags:
- Cloud Cost Management
+ x-permission:
+ operator: OR
+ permissions:
+ - cloud_cost_management_read
put:
description: Upload a Custom Costs file.
operationId: UploadCustomCostsFile
@@ -53261,6 +55350,10 @@ paths:
summary: Upload Custom Costs file
tags:
- Cloud Cost Management
+ x-permission:
+ operator: OR
+ permissions:
+ - cloud_cost_management_write
/api/v2/cost/custom_costs/{file_id}:
delete:
description: Delete the specified Custom Costs file.
@@ -53328,7 +55421,7 @@ paths:
- Cloud Cost Management
/api/v2/cost/gcp_uc_config:
get:
- description: List the GCP Usage Cost configs.
+ description: List the Google Cloud Usage Cost configs.
operationId: ListCostGCPUsageCostConfigs
responses:
'200':
@@ -53350,7 +55443,7 @@ paths:
appKeyAuth: []
- AuthZ:
- cloud_cost_management_read
- summary: List Cloud Cost Management GCP Usage Cost configs
+ summary: List Google Cloud Usage Cost configs
tags:
- Cloud Cost Management
x-permission:
@@ -53358,7 +55451,8 @@ paths:
permissions:
- cloud_cost_management_read
post:
- description: Create a Cloud Cost Management account for an GCP Usage Cost config.
+ description: Create a Cloud Cost Management account for an Google Cloud Usage
+ Cost config.
operationId: CreateCostGCPUsageCostConfig
requestBody:
content:
@@ -53392,7 +55486,7 @@ paths:
appKeyAuth: []
- AuthZ:
- cloud_cost_management_write
- summary: Create Cloud Cost Management GCP Usage Cost config
+ summary: Create Google Cloud Usage Cost config
tags:
- Cloud Cost Management
x-permission:
@@ -53427,15 +55521,43 @@ paths:
appKeyAuth: []
- AuthZ:
- cloud_cost_management_write
- summary: Delete Cloud Cost Management GCP Usage Cost config
+ summary: Delete Google Cloud Usage Cost config
tags:
- Cloud Cost Management
x-permission:
operator: OR
permissions:
- cloud_cost_management_write
+ get:
+ description: Get a specific Google Cloud Usage Cost config.
+ operationId: GetCostGCPUsageCostConfig
+ parameters:
+ - description: The unique identifier of the cloud account
+ in: path
+ name: cloud_account_id
+ required: true
+ schema:
+ format: int64
+ type: integer
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/GcpUcConfigResponse'
+ description: OK
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ:
+ - cloud_cost_management_read
+ summary: Get Google Cloud Usage Cost config
+ tags:
+ - Cloud Cost Management
patch:
- description: Update the status of an GCP Usage Cost config (active/archived).
+ description: Update the status of an Google Cloud Usage Cost config (active/archived).
operationId: UpdateCostGCPUsageCostConfig
parameters:
- $ref: '#/components/parameters/CloudAccountID'
@@ -53477,7 +55599,7 @@ paths:
appKeyAuth: []
- AuthZ:
- cloud_cost_management_write
- summary: Update Cloud Cost Management GCP Usage Cost config
+ summary: Update Google Cloud Usage Cost config
tags:
- Cloud Cost Management
x-permission:
@@ -70418,6 +72540,194 @@ paths:
operator: OR
permissions:
- billing_edit
+ /api/v2/tags/enrichment:
+ get:
+ description: List all tag pipeline rulesets - Retrieve a list of all tag pipeline
+ rulesets for the organization
+ operationId: ListRulesets
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/RulesetRespArray'
+ description: OK
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ:
+ - cloud_cost_management_read
+ summary: List rulesets
+ tags:
+ - Cloud Cost Management
+ post:
+ description: Create a new tag pipeline ruleset with the specified rules and
+ configuration
+ operationId: CreateRuleset
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateRulesetRequest'
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/RulesetResp'
+ description: OK
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ:
+ - cloud_cost_management_write
+ summary: Create ruleset
+ tags:
+ - Cloud Cost Management
+ /api/v2/tags/enrichment/reorder:
+ post:
+ description: Reorder tag pipeline rulesets - Change the execution order of tag
+ pipeline rulesets
+ operationId: ReorderRulesets
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ReorderRulesetResourceArray'
+ required: true
+ responses:
+ '204':
+ description: Successfully reordered rulesets
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ:
+ - cloud_cost_management_write
+ summary: Reorder rulesets
+ tags:
+ - Cloud Cost Management
+ /api/v2/tags/enrichment/validate-query:
+ post:
+ description: Validate a tag pipeline query - Validate the syntax and structure
+ of a tag pipeline query
+ operationId: ValidateQuery
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/RulesValidateQueryRequest'
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/RulesValidateQueryResponse'
+ description: OK
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ:
+ - cloud_cost_management_read
+ summary: Validate query
+ tags:
+ - Cloud Cost Management
+ /api/v2/tags/enrichment/{ruleset_id}:
+ delete:
+ description: Delete a tag pipeline ruleset - Delete an existing tag pipeline
+ ruleset by its ID
+ operationId: DeleteRuleset
+ parameters:
+ - description: The unique identifier of the ruleset
+ in: path
+ name: ruleset_id
+ required: true
+ schema:
+ type: string
+ responses:
+ '204':
+ description: No Content
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ:
+ - cloud_cost_management_write
+ summary: Delete ruleset
+ tags:
+ - Cloud Cost Management
+ get:
+ description: Get a specific tag pipeline ruleset - Retrieve a specific tag pipeline
+ ruleset by its ID
+ operationId: GetRuleset
+ parameters:
+ - description: The unique identifier of the ruleset
+ in: path
+ name: ruleset_id
+ required: true
+ schema:
+ type: string
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/RulesetResp'
+ description: OK
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ:
+ - cloud_cost_management_read
+ summary: Get ruleset
+ tags:
+ - Cloud Cost Management
+ patch:
+ description: Update a tag pipeline ruleset - Update an existing tag pipeline
+ ruleset with new rules and configuration
+ operationId: UpdateRuleset
+ parameters:
+ - description: The unique identifier of the ruleset
+ in: path
+ name: ruleset_id
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UpdateRulesetRequest'
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/RulesetResp'
+ description: OK
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ:
+ - cloud_cost_management_write
+ summary: Update ruleset
+ tags:
+ - Cloud Cost Management
/api/v2/team:
get:
description: 'Get all teams.
@@ -73291,8 +75601,8 @@ tags:
for more information.
name: Case Management
- description: The Cloud Cost Management API allows you to set up, edit, and delete
- Cloud Cost Management accounts for AWS, Azure, and GCP. You can query your cost
- data by using the [Metrics endpoint](https://docs.datadoghq.com/api/latest/metrics/#query-timeseries-data-across-multiple-products)
+ Cloud Cost Management accounts for AWS, Azure, and Google Cloud. You can query
+ your cost data by using the [Metrics endpoint](https://docs.datadoghq.com/api/latest/metrics/#query-timeseries-data-across-multiple-products)
and the `cloud_cost` data source. For more information, see the [Cloud Cost Management
documentation](https://docs.datadoghq.com/cloud_cost_management/).
name: Cloud Cost Management
diff --git a/examples/v2/cloud-cost-management/CreateArbitraryCostRule.java b/examples/v2/cloud-cost-management/CreateArbitraryCostRule.java
new file mode 100644
index 00000000000..9baef79324e
--- /dev/null
+++ b/examples/v2/cloud-cost-management/CreateArbitraryCostRule.java
@@ -0,0 +1,72 @@
+// Create arbitrary cost rule 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.ArbitraryCostUpsertRequest;
+import com.datadog.api.client.v2.model.ArbitraryCostUpsertRequestData;
+import com.datadog.api.client.v2.model.ArbitraryCostUpsertRequestDataAttributes;
+import com.datadog.api.client.v2.model.ArbitraryCostUpsertRequestDataAttributesCostsToAllocateItems;
+import com.datadog.api.client.v2.model.ArbitraryCostUpsertRequestDataAttributesStrategy;
+import com.datadog.api.client.v2.model.ArbitraryCostUpsertRequestDataAttributesStrategyBasedOnCostsItems;
+import com.datadog.api.client.v2.model.ArbitraryCostUpsertRequestDataType;
+import com.datadog.api.client.v2.model.ArbitraryRuleResponse;
+import java.util.Arrays;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ CloudCostManagementApi apiInstance = new CloudCostManagementApi(defaultClient);
+
+ ArbitraryCostUpsertRequest body =
+ new ArbitraryCostUpsertRequest()
+ .data(
+ new ArbitraryCostUpsertRequestData()
+ .attributes(
+ new ArbitraryCostUpsertRequestDataAttributes()
+ .costsToAllocate(
+ Arrays.asList(
+ new ArbitraryCostUpsertRequestDataAttributesCostsToAllocateItems()
+ .condition("is")
+ .tag("account_id")
+ .value("123456789"),
+ new ArbitraryCostUpsertRequestDataAttributesCostsToAllocateItems()
+ .condition("in")
+ .tag("environment")
+ .value("")
+ .values(Arrays.asList("production", "staging"))))
+ .enabled(true)
+ .orderId(1L)
+ .provider(Arrays.asList("aws", "gcp"))
+ .ruleName("example-arbitrary-cost-rule")
+ .strategy(
+ new ArbitraryCostUpsertRequestDataAttributesStrategy()
+ .allocatedByTagKeys(Arrays.asList("team", "environment"))
+ .basedOnCosts(
+ Arrays.asList(
+ new ArbitraryCostUpsertRequestDataAttributesStrategyBasedOnCostsItems()
+ .condition("is")
+ .tag("service")
+ .value("web-api"),
+ new ArbitraryCostUpsertRequestDataAttributesStrategyBasedOnCostsItems()
+ .condition("not in")
+ .tag("team")
+ .value("")
+ .values(Arrays.asList("legacy", "deprecated"))))
+ .granularity("daily")
+ .method("proportional"))
+ .type("shared"))
+ .type(ArbitraryCostUpsertRequestDataType.UPSERT_ARBITRARY_RULE));
+
+ try {
+ ArbitraryRuleResponse result = apiInstance.createArbitraryCostRule(body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling CloudCostManagementApi#createArbitraryCostRule");
+ 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/CreateCostAWSCURConfig.java b/examples/v2/cloud-cost-management/CreateCostAWSCURConfig.java
index e073beefa0a..84ac0840334 100644
--- a/examples/v2/cloud-cost-management/CreateCostAWSCURConfig.java
+++ b/examples/v2/cloud-cost-management/CreateCostAWSCURConfig.java
@@ -7,7 +7,7 @@
import com.datadog.api.client.v2.model.AwsCURConfigPostRequest;
import com.datadog.api.client.v2.model.AwsCURConfigPostRequestAttributes;
import com.datadog.api.client.v2.model.AwsCURConfigPostRequestType;
-import com.datadog.api.client.v2.model.AwsCURConfigResponse;
+import com.datadog.api.client.v2.model.AwsCurConfigResponse;
public class Example {
public static void main(String[] args) {
@@ -28,7 +28,7 @@ public static void main(String[] args) {
.type(AwsCURConfigPostRequestType.AWS_CUR_CONFIG_POST_REQUEST));
try {
- AwsCURConfigResponse result = apiInstance.createCostAWSCURConfig(body);
+ AwsCurConfigResponse result = apiInstance.createCostAWSCURConfig(body);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling CloudCostManagementApi#createCostAWSCURConfig");
diff --git a/examples/v2/cloud-cost-management/CreateCostAzureUCConfigs.java b/examples/v2/cloud-cost-management/CreateCostAzureUCConfigs.java
index a2dc4944341..39ae9e75e65 100644
--- a/examples/v2/cloud-cost-management/CreateCostAzureUCConfigs.java
+++ b/examples/v2/cloud-cost-management/CreateCostAzureUCConfigs.java
@@ -35,7 +35,6 @@ public static void main(String[] args) {
.storageAccount("dd-storage-account")
.storageContainer("dd-storage-container"))
.clientId("1234abcd-1234-abcd-1234-1234abcd1234")
- .isEnabled(true)
.scope("subscriptions/1234abcd-1234-abcd-1234-1234abcd1234"))
.type(AzureUCConfigPostRequestType.AZURE_UC_CONFIG_POST_REQUEST));
diff --git a/examples/v2/cloud-cost-management/CreateCostGCPUsageCostConfig.java b/examples/v2/cloud-cost-management/CreateCostGCPUsageCostConfig.java
index 519f289c9d9..65a83d0f9fd 100644
--- a/examples/v2/cloud-cost-management/CreateCostGCPUsageCostConfig.java
+++ b/examples/v2/cloud-cost-management/CreateCostGCPUsageCostConfig.java
@@ -1,4 +1,4 @@
-// Create Cloud Cost Management GCP Usage Cost config returns "OK" response
+// Create Google Cloud Usage Cost config returns "OK" response
import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
diff --git a/examples/v2/cloud-cost-management/CreateRuleset.java b/examples/v2/cloud-cost-management/CreateRuleset.java
new file mode 100644
index 00000000000..360b3e8b90e
--- /dev/null
+++ b/examples/v2/cloud-cost-management/CreateRuleset.java
@@ -0,0 +1,61 @@
+// Create ruleset 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.CreateRulesetRequest;
+import com.datadog.api.client.v2.model.CreateRulesetRequestData;
+import com.datadog.api.client.v2.model.CreateRulesetRequestDataAttributes;
+import com.datadog.api.client.v2.model.CreateRulesetRequestDataAttributesRulesItems;
+import com.datadog.api.client.v2.model.CreateRulesetRequestDataAttributesRulesItemsQuery;
+import com.datadog.api.client.v2.model.CreateRulesetRequestDataAttributesRulesItemsQueryAddition;
+import com.datadog.api.client.v2.model.CreateRulesetRequestDataType;
+import com.datadog.api.client.v2.model.RulesetResp;
+import java.util.Collections;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ CloudCostManagementApi apiInstance = new CloudCostManagementApi(defaultClient);
+
+ CreateRulesetRequest body =
+ new CreateRulesetRequest()
+ .data(
+ new CreateRulesetRequestData()
+ .attributes(
+ new CreateRulesetRequestDataAttributes()
+ .enabled(true)
+ .rules(
+ Collections.singletonList(
+ new CreateRulesetRequestDataAttributesRulesItems()
+ .enabled(true)
+ .mapping(null)
+ .name("Add Cost Center Tag")
+ .query(
+ new CreateRulesetRequestDataAttributesRulesItemsQuery()
+ .addition(
+ new CreateRulesetRequestDataAttributesRulesItemsQueryAddition()
+ .key("cost_center")
+ .value("engineering"))
+ .caseInsensitivity(false)
+ .ifNotExists(true)
+ .query(
+ """
+account_id:"123456789" AND service:"web-api"
+"""))
+ .referenceTable(null))))
+ .id("New Ruleset")
+ .type(CreateRulesetRequestDataType.CREATE_RULESET));
+
+ try {
+ RulesetResp result = apiInstance.createRuleset(body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling CloudCostManagementApi#createRuleset");
+ 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/DeleteArbitraryCostRule.java b/examples/v2/cloud-cost-management/DeleteArbitraryCostRule.java
new file mode 100644
index 00000000000..7cbc13e5209
--- /dev/null
+++ b/examples/v2/cloud-cost-management/DeleteArbitraryCostRule.java
@@ -0,0 +1,22 @@
+// Delete arbitrary cost rule returns "No Content" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.CloudCostManagementApi;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ CloudCostManagementApi apiInstance = new CloudCostManagementApi(defaultClient);
+
+ try {
+ apiInstance.deleteArbitraryCostRule(123456L);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling CloudCostManagementApi#deleteArbitraryCostRule");
+ 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/DeleteCostGCPUsageCostConfig.java b/examples/v2/cloud-cost-management/DeleteCostGCPUsageCostConfig.java
index 3abe7e0cd16..5c303aa34d7 100644
--- a/examples/v2/cloud-cost-management/DeleteCostGCPUsageCostConfig.java
+++ b/examples/v2/cloud-cost-management/DeleteCostGCPUsageCostConfig.java
@@ -1,4 +1,4 @@
-// Delete Cloud Cost Management GCP Usage Cost config returns "No Content" response
+// Delete Google Cloud Usage Cost config returns "No Content" response
import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
diff --git a/examples/v2/cloud-cost-management/DeleteRuleset.java b/examples/v2/cloud-cost-management/DeleteRuleset.java
new file mode 100644
index 00000000000..e0f32c17ddc
--- /dev/null
+++ b/examples/v2/cloud-cost-management/DeleteRuleset.java
@@ -0,0 +1,22 @@
+// Delete ruleset returns "No Content" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.CloudCostManagementApi;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ CloudCostManagementApi apiInstance = new CloudCostManagementApi(defaultClient);
+
+ try {
+ apiInstance.deleteRuleset("1c5dae14-237d-4b9a-a515-aa55b3939142");
+ } catch (ApiException e) {
+ System.err.println("Exception when calling CloudCostManagementApi#deleteRuleset");
+ 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/GetArbitraryCostRule.java b/examples/v2/cloud-cost-management/GetArbitraryCostRule.java
new file mode 100644
index 00000000000..c19bc14117f
--- /dev/null
+++ b/examples/v2/cloud-cost-management/GetArbitraryCostRule.java
@@ -0,0 +1,24 @@
+// Get arbitrary cost rule 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.ArbitraryRuleResponse;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ CloudCostManagementApi apiInstance = new CloudCostManagementApi(defaultClient);
+
+ try {
+ ArbitraryRuleResponse result = apiInstance.getArbitraryCostRule(123456L);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling CloudCostManagementApi#getArbitraryCostRule");
+ 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/GetCostAWSCURConfig.java b/examples/v2/cloud-cost-management/GetCostAWSCURConfig.java
new file mode 100644
index 00000000000..76f0f356221
--- /dev/null
+++ b/examples/v2/cloud-cost-management/GetCostAWSCURConfig.java
@@ -0,0 +1,24 @@
+// Get cost AWS CUR config 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.AwsCurConfigResponse;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ CloudCostManagementApi apiInstance = new CloudCostManagementApi(defaultClient);
+
+ try {
+ AwsCurConfigResponse result = apiInstance.getCostAWSCURConfig(123456L);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling CloudCostManagementApi#getCostAWSCURConfig");
+ 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/GetCostAzureUCConfig.java b/examples/v2/cloud-cost-management/GetCostAzureUCConfig.java
new file mode 100644
index 00000000000..cbb36a19003
--- /dev/null
+++ b/examples/v2/cloud-cost-management/GetCostAzureUCConfig.java
@@ -0,0 +1,24 @@
+// Get cost Azure UC config 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.UCConfigPair;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ CloudCostManagementApi apiInstance = new CloudCostManagementApi(defaultClient);
+
+ try {
+ UCConfigPair result = apiInstance.getCostAzureUCConfig(123456L);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling CloudCostManagementApi#getCostAzureUCConfig");
+ 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/GetCostGCPUsageCostConfig.java b/examples/v2/cloud-cost-management/GetCostGCPUsageCostConfig.java
new file mode 100644
index 00000000000..d5c6b8c4ef4
--- /dev/null
+++ b/examples/v2/cloud-cost-management/GetCostGCPUsageCostConfig.java
@@ -0,0 +1,24 @@
+// Get Google Cloud Usage Cost config 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.GcpUcConfigResponse;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ CloudCostManagementApi apiInstance = new CloudCostManagementApi(defaultClient);
+
+ try {
+ GcpUcConfigResponse result = apiInstance.getCostGCPUsageCostConfig(123456L);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling CloudCostManagementApi#getCostGCPUsageCostConfig");
+ 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/GetRuleset.java b/examples/v2/cloud-cost-management/GetRuleset.java
new file mode 100644
index 00000000000..90e4a028629
--- /dev/null
+++ b/examples/v2/cloud-cost-management/GetRuleset.java
@@ -0,0 +1,24 @@
+// Get ruleset 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.RulesetResp;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ CloudCostManagementApi apiInstance = new CloudCostManagementApi(defaultClient);
+
+ try {
+ RulesetResp result = apiInstance.getRuleset("da0e30e2-615d-4dae-9a22-38cf86a87dde");
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling CloudCostManagementApi#getRuleset");
+ 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/ListArbitraryCostRules.java b/examples/v2/cloud-cost-management/ListArbitraryCostRules.java
new file mode 100644
index 00000000000..f112a796cb1
--- /dev/null
+++ b/examples/v2/cloud-cost-management/ListArbitraryCostRules.java
@@ -0,0 +1,24 @@
+// List arbitrary cost rules 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.ArbitraryRuleResponseArray;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ CloudCostManagementApi apiInstance = new CloudCostManagementApi(defaultClient);
+
+ try {
+ ArbitraryRuleResponseArray result = apiInstance.listArbitraryCostRules();
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling CloudCostManagementApi#listArbitraryCostRules");
+ 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/ListCostGCPUsageCostConfigs.java b/examples/v2/cloud-cost-management/ListCostGCPUsageCostConfigs.java
index eab6a6f27b0..99aad8d7e6a 100644
--- a/examples/v2/cloud-cost-management/ListCostGCPUsageCostConfigs.java
+++ b/examples/v2/cloud-cost-management/ListCostGCPUsageCostConfigs.java
@@ -1,4 +1,4 @@
-// List Cloud Cost Management GCP Usage Cost configs returns "OK" response
+// List Google Cloud Usage Cost configs returns "OK" response
import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
diff --git a/examples/v2/cloud-cost-management/ListRulesets.java b/examples/v2/cloud-cost-management/ListRulesets.java
new file mode 100644
index 00000000000..3a22908a4e5
--- /dev/null
+++ b/examples/v2/cloud-cost-management/ListRulesets.java
@@ -0,0 +1,24 @@
+// List rulesets 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.RulesetRespArray;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ CloudCostManagementApi apiInstance = new CloudCostManagementApi(defaultClient);
+
+ try {
+ RulesetRespArray result = apiInstance.listRulesets();
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling CloudCostManagementApi#listRulesets");
+ 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/ReorderArbitraryCostRules.java b/examples/v2/cloud-cost-management/ReorderArbitraryCostRules.java
new file mode 100644
index 00000000000..5a7430bba9b
--- /dev/null
+++ b/examples/v2/cloud-cost-management/ReorderArbitraryCostRules.java
@@ -0,0 +1,40 @@
+// Reorder arbitrary cost rules returns "Successfully reordered rules" 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.ReorderRuleResourceArray;
+import com.datadog.api.client.v2.model.ReorderRuleResourceData;
+import com.datadog.api.client.v2.model.ReorderRuleResourceDataType;
+import java.util.Arrays;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ CloudCostManagementApi apiInstance = new CloudCostManagementApi(defaultClient);
+
+ ReorderRuleResourceArray body =
+ new ReorderRuleResourceArray()
+ .data(
+ Arrays.asList(
+ new ReorderRuleResourceData()
+ .id("456")
+ .type(ReorderRuleResourceDataType.ARBITRARY_RULE),
+ new ReorderRuleResourceData()
+ .id("123")
+ .type(ReorderRuleResourceDataType.ARBITRARY_RULE),
+ new ReorderRuleResourceData()
+ .id("789")
+ .type(ReorderRuleResourceDataType.ARBITRARY_RULE)));
+
+ try {
+ apiInstance.reorderArbitraryCostRules(body);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling CloudCostManagementApi#reorderArbitraryCostRules");
+ 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/ReorderRulesets.java b/examples/v2/cloud-cost-management/ReorderRulesets.java
new file mode 100644
index 00000000000..0305c10f340
--- /dev/null
+++ b/examples/v2/cloud-cost-management/ReorderRulesets.java
@@ -0,0 +1,32 @@
+// Reorder rulesets returns "Successfully reordered rulesets" 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.ReorderRulesetResourceArray;
+import com.datadog.api.client.v2.model.ReorderRulesetResourceData;
+import com.datadog.api.client.v2.model.ReorderRulesetResourceDataType;
+import java.util.Collections;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ CloudCostManagementApi apiInstance = new CloudCostManagementApi(defaultClient);
+
+ ReorderRulesetResourceArray body =
+ new ReorderRulesetResourceArray()
+ .data(
+ Collections.singletonList(
+ new ReorderRulesetResourceData().type(ReorderRulesetResourceDataType.RULESET)));
+
+ try {
+ apiInstance.reorderRulesets(body);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling CloudCostManagementApi#reorderRulesets");
+ 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/UpdateArbitraryCostRule.java b/examples/v2/cloud-cost-management/UpdateArbitraryCostRule.java
new file mode 100644
index 00000000000..0302db608a6
--- /dev/null
+++ b/examples/v2/cloud-cost-management/UpdateArbitraryCostRule.java
@@ -0,0 +1,72 @@
+// Update arbitrary cost rule 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.ArbitraryCostUpsertRequest;
+import com.datadog.api.client.v2.model.ArbitraryCostUpsertRequestData;
+import com.datadog.api.client.v2.model.ArbitraryCostUpsertRequestDataAttributes;
+import com.datadog.api.client.v2.model.ArbitraryCostUpsertRequestDataAttributesCostsToAllocateItems;
+import com.datadog.api.client.v2.model.ArbitraryCostUpsertRequestDataAttributesStrategy;
+import com.datadog.api.client.v2.model.ArbitraryCostUpsertRequestDataAttributesStrategyBasedOnCostsItems;
+import com.datadog.api.client.v2.model.ArbitraryCostUpsertRequestDataType;
+import com.datadog.api.client.v2.model.ArbitraryRuleResponse;
+import java.util.Arrays;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ CloudCostManagementApi apiInstance = new CloudCostManagementApi(defaultClient);
+
+ ArbitraryCostUpsertRequest body =
+ new ArbitraryCostUpsertRequest()
+ .data(
+ new ArbitraryCostUpsertRequestData()
+ .attributes(
+ new ArbitraryCostUpsertRequestDataAttributes()
+ .costsToAllocate(
+ Arrays.asList(
+ new ArbitraryCostUpsertRequestDataAttributesCostsToAllocateItems()
+ .condition("is")
+ .tag("account_id")
+ .value("123456789"),
+ new ArbitraryCostUpsertRequestDataAttributesCostsToAllocateItems()
+ .condition("in")
+ .tag("environment")
+ .value("")
+ .values(Arrays.asList("production", "staging"))))
+ .enabled(true)
+ .orderId(1L)
+ .provider(Arrays.asList("aws", "gcp"))
+ .ruleName("example-arbitrary-cost-rule")
+ .strategy(
+ new ArbitraryCostUpsertRequestDataAttributesStrategy()
+ .allocatedByTagKeys(Arrays.asList("team", "environment"))
+ .basedOnCosts(
+ Arrays.asList(
+ new ArbitraryCostUpsertRequestDataAttributesStrategyBasedOnCostsItems()
+ .condition("is")
+ .tag("service")
+ .value("web-api"),
+ new ArbitraryCostUpsertRequestDataAttributesStrategyBasedOnCostsItems()
+ .condition("not in")
+ .tag("team")
+ .value("")
+ .values(Arrays.asList("legacy", "deprecated"))))
+ .granularity("daily")
+ .method("proportional"))
+ .type("shared"))
+ .type(ArbitraryCostUpsertRequestDataType.UPSERT_ARBITRARY_RULE));
+
+ try {
+ ArbitraryRuleResponse result = apiInstance.updateArbitraryCostRule(123456L, body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling CloudCostManagementApi#updateArbitraryCostRule");
+ 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/UpdateCostGCPUsageCostConfig.java b/examples/v2/cloud-cost-management/UpdateCostGCPUsageCostConfig.java
index 242dc8e16c5..88da5939818 100644
--- a/examples/v2/cloud-cost-management/UpdateCostGCPUsageCostConfig.java
+++ b/examples/v2/cloud-cost-management/UpdateCostGCPUsageCostConfig.java
@@ -1,4 +1,4 @@
-// Update Cloud Cost Management GCP Usage Cost config returns "OK" response
+// Update Google Cloud Usage Cost config returns "OK" response
import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
diff --git a/examples/v2/cloud-cost-management/UpdateRuleset.java b/examples/v2/cloud-cost-management/UpdateRuleset.java
new file mode 100644
index 00000000000..10b1d1d3712
--- /dev/null
+++ b/examples/v2/cloud-cost-management/UpdateRuleset.java
@@ -0,0 +1,55 @@
+// Update ruleset 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.RulesetResp;
+import com.datadog.api.client.v2.model.UpdateRulesetRequest;
+import com.datadog.api.client.v2.model.UpdateRulesetRequestData;
+import com.datadog.api.client.v2.model.UpdateRulesetRequestDataAttributes;
+import com.datadog.api.client.v2.model.UpdateRulesetRequestDataAttributesRulesItems;
+import com.datadog.api.client.v2.model.UpdateRulesetRequestDataAttributesRulesItemsMapping;
+import com.datadog.api.client.v2.model.UpdateRulesetRequestDataType;
+import java.util.Arrays;
+import java.util.Collections;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ CloudCostManagementApi apiInstance = new CloudCostManagementApi(defaultClient);
+
+ UpdateRulesetRequest body =
+ new UpdateRulesetRequest()
+ .data(
+ new UpdateRulesetRequestData()
+ .attributes(
+ new UpdateRulesetRequestDataAttributes()
+ .enabled(true)
+ .lastVersion(3601919L)
+ .rules(
+ Collections.singletonList(
+ new UpdateRulesetRequestDataAttributesRulesItems()
+ .enabled(true)
+ .mapping(
+ new UpdateRulesetRequestDataAttributesRulesItemsMapping()
+ .destinationKey("team_owner")
+ .ifNotExists(true)
+ .sourceKeys(
+ Arrays.asList("account_name", "account_id")))
+ .name("Account Name Mapping")
+ .query(null)
+ .referenceTable(null))))
+ .type(UpdateRulesetRequestDataType.UPDATE_RULESET));
+
+ try {
+ RulesetResp result = apiInstance.updateRuleset("1c5dae14-237d-4b9a-a515-aa55b3939142", body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling CloudCostManagementApi#updateRuleset");
+ 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/ValidateQuery.java b/examples/v2/cloud-cost-management/ValidateQuery.java
new file mode 100644
index 00000000000..2e4825a6568
--- /dev/null
+++ b/examples/v2/cloud-cost-management/ValidateQuery.java
@@ -0,0 +1,37 @@
+// Validate query 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.RulesValidateQueryRequest;
+import com.datadog.api.client.v2.model.RulesValidateQueryRequestData;
+import com.datadog.api.client.v2.model.RulesValidateQueryRequestDataAttributes;
+import com.datadog.api.client.v2.model.RulesValidateQueryRequestDataType;
+import com.datadog.api.client.v2.model.RulesValidateQueryResponse;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ CloudCostManagementApi apiInstance = new CloudCostManagementApi(defaultClient);
+
+ RulesValidateQueryRequest body =
+ new RulesValidateQueryRequest()
+ .data(
+ new RulesValidateQueryRequestData()
+ .attributes(
+ new RulesValidateQueryRequestDataAttributes()
+ .query("example:query AND test:true"))
+ .type(RulesValidateQueryRequestDataType.VALIDATE_QUERY));
+
+ try {
+ RulesValidateQueryResponse result = apiInstance.validateQuery(body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling CloudCostManagementApi#validateQuery");
+ 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 61878d899ad..616af9916a7 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,16 +4,20 @@
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.ArbitraryCostUpsertRequest;
+import com.datadog.api.client.v2.model.ArbitraryRuleResponse;
+import com.datadog.api.client.v2.model.ArbitraryRuleResponseArray;
import com.datadog.api.client.v2.model.AwsCURConfigPatchRequest;
import com.datadog.api.client.v2.model.AwsCURConfigPostRequest;
-import com.datadog.api.client.v2.model.AwsCURConfigResponse;
import com.datadog.api.client.v2.model.AwsCURConfigsResponse;
+import com.datadog.api.client.v2.model.AwsCurConfigResponse;
import com.datadog.api.client.v2.model.AzureUCConfigPairsResponse;
import com.datadog.api.client.v2.model.AzureUCConfigPatchRequest;
import com.datadog.api.client.v2.model.AzureUCConfigPostRequest;
import com.datadog.api.client.v2.model.AzureUCConfigsResponse;
import com.datadog.api.client.v2.model.BudgetArray;
import com.datadog.api.client.v2.model.BudgetWithEntries;
+import com.datadog.api.client.v2.model.CreateRulesetRequest;
import com.datadog.api.client.v2.model.CustomCostsFileGetResponse;
import com.datadog.api.client.v2.model.CustomCostsFileLineItem;
import com.datadog.api.client.v2.model.CustomCostsFileListResponse;
@@ -22,6 +26,15 @@
import com.datadog.api.client.v2.model.GCPUsageCostConfigPostRequest;
import com.datadog.api.client.v2.model.GCPUsageCostConfigResponse;
import com.datadog.api.client.v2.model.GCPUsageCostConfigsResponse;
+import com.datadog.api.client.v2.model.GcpUcConfigResponse;
+import com.datadog.api.client.v2.model.ReorderRuleResourceArray;
+import com.datadog.api.client.v2.model.ReorderRulesetResourceArray;
+import com.datadog.api.client.v2.model.RulesValidateQueryRequest;
+import com.datadog.api.client.v2.model.RulesValidateQueryResponse;
+import com.datadog.api.client.v2.model.RulesetResp;
+import com.datadog.api.client.v2.model.RulesetRespArray;
+import com.datadog.api.client.v2.model.UCConfigPair;
+import com.datadog.api.client.v2.model.UpdateRulesetRequest;
import jakarta.ws.rs.client.Invocation;
import jakarta.ws.rs.core.GenericType;
import java.util.ArrayList;
@@ -61,16 +74,163 @@ public void setApiClient(ApiClient apiClient) {
this.apiClient = apiClient;
}
+ /**
+ * Create arbitrary cost rule.
+ *
+ *
See {@link #createArbitraryCostRuleWithHttpInfo}.
+ *
+ * @param body (required)
+ * @return ArbitraryRuleResponse
+ * @throws ApiException if fails to make API call
+ */
+ public ArbitraryRuleResponse createArbitraryCostRule(ArbitraryCostUpsertRequest body)
+ throws ApiException {
+ return createArbitraryCostRuleWithHttpInfo(body).getData();
+ }
+
+ /**
+ * Create arbitrary cost rule.
+ *
+ *
See {@link #createArbitraryCostRuleWithHttpInfoAsync}.
+ *
+ * @param body (required)
+ * @return CompletableFuture<ArbitraryRuleResponse>
+ */
+ public CompletableFuture createArbitraryCostRuleAsync(
+ ArbitraryCostUpsertRequest body) {
+ return createArbitraryCostRuleWithHttpInfoAsync(body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Create a new arbitrary cost rule with the specified filters and allocation strategy.
+ *
+ * Strategy Methods: - PROPORTIONAL/EVEN: Allocates costs
+ * proportionally/evenly based on existing costs. Requires: granularity, allocated_by_tag_keys.
+ * Optional: based_on_costs, allocated_by_filters, evaluate_grouped_by_tag_keys,
+ * evaluate_grouped_by_filters. - PROPORTIONAL_TIMESERIES/EVEN_TIMESERIES:
+ * Allocates based on timeseries data. Requires: granularity, based_on_timeseries. Optional:
+ * evaluate_grouped_by_tag_keys. - PERCENT: Allocates fixed percentages to
+ * specific tags. Requires: allocated_by (array of percentage allocations).
+ *
+ *
Filter Conditions: - Use value for single-value
+ * conditions: "is", "is not", "contains", "does not contain", "=", "!=", "like", "not like", "is
+ * all values", "is untagged" - Use values for multi-value conditions: "in", "not
+ * in" - Cannot use both value and values simultaneously.
+ *
+ *
Supported operators: is, is not, is all values, is untagged, contains, does
+ * not contain, in, not in, =, !=, like, not like
+ *
+ * @param body (required)
+ * @return ApiResponse<ArbitraryRuleResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | OK | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse createArbitraryCostRuleWithHttpInfo(
+ ArbitraryCostUpsertRequest body) throws ApiException {
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'body' when calling createArbitraryCostRule");
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/cost/arbitrary_rule";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.CloudCostManagementApi.createArbitraryCostRule",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ return apiClient.invokeAPI(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Create arbitrary cost rule.
+ *
+ * See {@link #createArbitraryCostRuleWithHttpInfo}.
+ *
+ * @param body (required)
+ * @return CompletableFuture<ApiResponse<ArbitraryRuleResponse>>
+ */
+ public CompletableFuture>
+ createArbitraryCostRuleWithHttpInfoAsync(ArbitraryCostUpsertRequest body) {
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400, "Missing the required parameter 'body' when calling createArbitraryCostRule"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/cost/arbitrary_rule";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.CloudCostManagementApi.createArbitraryCostRule",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ } catch (ApiException ex) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(ex);
+ return result;
+ }
+ return apiClient.invokeAPIAsync(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
/**
* Create Cloud Cost Management AWS CUR config.
*
* See {@link #createCostAWSCURConfigWithHttpInfo}.
*
* @param body (required)
- * @return AwsCURConfigResponse
+ * @return AwsCurConfigResponse
* @throws ApiException if fails to make API call
*/
- public AwsCURConfigResponse createCostAWSCURConfig(AwsCURConfigPostRequest body)
+ public AwsCurConfigResponse createCostAWSCURConfig(AwsCURConfigPostRequest body)
throws ApiException {
return createCostAWSCURConfigWithHttpInfo(body).getData();
}
@@ -81,9 +241,9 @@ public AwsCURConfigResponse createCostAWSCURConfig(AwsCURConfigPostRequest body)
*
See {@link #createCostAWSCURConfigWithHttpInfoAsync}.
*
* @param body (required)
- * @return CompletableFuture<AwsCURConfigResponse>
+ * @return CompletableFuture<AwsCurConfigResponse>
*/
- public CompletableFuture createCostAWSCURConfigAsync(
+ public CompletableFuture createCostAWSCURConfigAsync(
AwsCURConfigPostRequest body) {
return createCostAWSCURConfigWithHttpInfoAsync(body)
.thenApply(
@@ -96,7 +256,7 @@ public CompletableFuture createCostAWSCURConfigAsync(
* Create a Cloud Cost Management account for an AWS CUR config.
*
* @param body (required)
- * @return ApiResponse<AwsCURConfigResponse>
+ * @return ApiResponse<AwsCurConfigResponse>
* @throws ApiException if fails to make API call
* @http.response.details
*
@@ -108,7 +268,7 @@ public CompletableFuture createCostAWSCURConfigAsync(
* | 429 | Too many requests | - |
*
*/
- public ApiResponse createCostAWSCURConfigWithHttpInfo(
+ public ApiResponse createCostAWSCURConfigWithHttpInfo(
AwsCURConfigPostRequest body) throws ApiException {
Object localVarPostBody = body;
@@ -139,7 +299,7 @@ public ApiResponse createCostAWSCURConfigWithHttpInfo(
localVarPostBody,
new HashMap(),
false,
- new GenericType() {});
+ new GenericType() {});
}
/**
@@ -148,15 +308,15 @@ public ApiResponse createCostAWSCURConfigWithHttpInfo(
* See {@link #createCostAWSCURConfigWithHttpInfo}.
*
* @param body (required)
- * @return CompletableFuture<ApiResponse<AwsCURConfigResponse>>
+ * @return CompletableFuture<ApiResponse<AwsCurConfigResponse>>
*/
- public CompletableFuture>
+ public CompletableFuture>
createCostAWSCURConfigWithHttpInfoAsync(AwsCURConfigPostRequest body) {
Object localVarPostBody = body;
// verify the required parameter 'body' is set
if (body == null) {
- CompletableFuture> result = new CompletableFuture<>();
+ CompletableFuture> result = new CompletableFuture<>();
result.completeExceptionally(
new ApiException(
400, "Missing the required parameter 'body' when calling createCostAWSCURConfig"));
@@ -179,7 +339,7 @@ public ApiResponse createCostAWSCURConfigWithHttpInfo(
new String[] {"application/json"},
new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
} catch (ApiException ex) {
- CompletableFuture> result = new CompletableFuture<>();
+ CompletableFuture> result = new CompletableFuture<>();
result.completeExceptionally(ex);
return result;
}
@@ -191,7 +351,7 @@ public ApiResponse createCostAWSCURConfigWithHttpInfo(
localVarPostBody,
new HashMap(),
false,
- new GenericType() {});
+ new GenericType() {});
}
/**
@@ -328,7 +488,7 @@ public ApiResponse createCostAzureUCConfigsWithHttpI
}
/**
- * Create Cloud Cost Management GCP Usage Cost config.
+ * Create Google Cloud Usage Cost config.
*
* See {@link #createCostGCPUsageCostConfigWithHttpInfo}.
*
@@ -342,7 +502,7 @@ public GCPUsageCostConfigResponse createCostGCPUsageCostConfig(GCPUsageCostConfi
}
/**
- * Create Cloud Cost Management GCP Usage Cost config.
+ * Create Google Cloud Usage Cost config.
*
*
See {@link #createCostGCPUsageCostConfigWithHttpInfoAsync}.
*
@@ -359,7 +519,7 @@ public CompletableFuture createCostGCPUsageCostConfi
}
/**
- * Create a Cloud Cost Management account for an GCP Usage Cost config.
+ * Create a Cloud Cost Management account for an Google Cloud Usage Cost config.
*
* @param body (required)
* @return ApiResponse<GCPUsageCostConfigResponse>
@@ -409,7 +569,7 @@ public ApiResponse createCostGCPUsageCostConfigWithH
}
/**
- * Create Cloud Cost Management GCP Usage Cost config.
+ * Create Google Cloud Usage Cost config.
*
* See {@link #createCostGCPUsageCostConfigWithHttpInfo}.
*
@@ -462,27 +622,28 @@ public ApiResponse createCostGCPUsageCostConfigWithH
}
/**
- * Delete a budget.
+ * Create ruleset.
*
- * See {@link #deleteBudgetWithHttpInfo}.
+ *
See {@link #createRulesetWithHttpInfo}.
*
- * @param budgetId Budget id. (required)
+ * @param body (required)
+ * @return RulesetResp
* @throws ApiException if fails to make API call
*/
- public void deleteBudget(String budgetId) throws ApiException {
- deleteBudgetWithHttpInfo(budgetId);
+ public RulesetResp createRuleset(CreateRulesetRequest body) throws ApiException {
+ return createRulesetWithHttpInfo(body).getData();
}
/**
- * Delete a budget.
+ * Create ruleset.
*
- *
See {@link #deleteBudgetWithHttpInfoAsync}.
+ *
See {@link #createRulesetWithHttpInfoAsync}.
*
- * @param budgetId Budget id. (required)
- * @return CompletableFuture
+ * @param body (required)
+ * @return CompletableFuture<RulesetResp>
*/
- public CompletableFuture deleteBudgetAsync(String budgetId) {
- return deleteBudgetWithHttpInfoAsync(budgetId)
+ public CompletableFuture createRulesetAsync(CreateRulesetRequest body) {
+ return createRulesetWithHttpInfoAsync(body)
.thenApply(
response -> {
return response.getData();
@@ -490,78 +651,75 @@ public CompletableFuture deleteBudgetAsync(String budgetId) {
}
/**
- * Delete a budget.
+ * Create a new tag pipeline ruleset with the specified rules and configuration
*
- * @param budgetId Budget id. (required)
- * @return ApiResponse<Void>
+ * @param body (required)
+ * @return ApiResponse<RulesetResp>
* @throws ApiException if fails to make API call
* @http.response.details
*
* Response details
* | Status Code | Description | Response Headers |
- * | 204 | No Content | - |
- * | 400 | Bad Request | - |
+ * | 200 | OK | - |
* | 429 | Too many requests | - |
*
*/
- public ApiResponse deleteBudgetWithHttpInfo(String budgetId) throws ApiException {
- Object localVarPostBody = null;
+ public ApiResponse createRulesetWithHttpInfo(CreateRulesetRequest body)
+ throws ApiException {
+ Object localVarPostBody = body;
- // verify the required parameter 'budgetId' is set
- if (budgetId == null) {
+ // verify the required parameter 'body' is set
+ if (body == null) {
throw new ApiException(
- 400, "Missing the required parameter 'budgetId' when calling deleteBudget");
+ 400, "Missing the required parameter 'body' when calling createRuleset");
}
// create path and map variables
- String localVarPath =
- "/api/v2/cost/budget/{budget_id}"
- .replaceAll("\\{" + "budget_id" + "\\}", apiClient.escapeString(budgetId.toString()));
+ String localVarPath = "/api/v2/tags/enrichment";
Map localVarHeaderParams = new HashMap();
Invocation.Builder builder =
apiClient.createBuilder(
- "v2.CloudCostManagementApi.deleteBudget",
+ "v2.CloudCostManagementApi.createRuleset",
localVarPath,
new ArrayList(),
localVarHeaderParams,
new HashMap(),
- new String[] {"*/*"},
+ new String[] {"application/json"},
new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
return apiClient.invokeAPI(
- "DELETE",
+ "POST",
builder,
localVarHeaderParams,
- new String[] {},
+ new String[] {"application/json"},
localVarPostBody,
new HashMap(),
false,
- null);
+ new GenericType() {});
}
/**
- * Delete a budget.
+ * Create ruleset.
*
- * See {@link #deleteBudgetWithHttpInfo}.
+ *
See {@link #createRulesetWithHttpInfo}.
*
- * @param budgetId Budget id. (required)
- * @return CompletableFuture<ApiResponse<Void>>
+ * @param body (required)
+ * @return CompletableFuture<ApiResponse<RulesetResp>>
*/
- public CompletableFuture> deleteBudgetWithHttpInfoAsync(String budgetId) {
- Object localVarPostBody = null;
+ public CompletableFuture> createRulesetWithHttpInfoAsync(
+ CreateRulesetRequest body) {
+ Object localVarPostBody = body;
- // verify the required parameter 'budgetId' is set
- if (budgetId == null) {
- CompletableFuture> result = new CompletableFuture<>();
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ CompletableFuture> result = new CompletableFuture<>();
result.completeExceptionally(
new ApiException(
- 400, "Missing the required parameter 'budgetId' when calling deleteBudget"));
+ 400, "Missing the required parameter 'body' when calling createRuleset"));
return result;
}
// create path and map variables
- String localVarPath =
- "/api/v2/cost/budget/{budget_id}"
- .replaceAll("\\{" + "budget_id" + "\\}", apiClient.escapeString(budgetId.toString()));
+ String localVarPath = "/api/v2/tags/enrichment";
Map localVarHeaderParams = new HashMap();
@@ -569,51 +727,51 @@ public CompletableFuture> deleteBudgetWithHttpInfoAsync(String
try {
builder =
apiClient.createBuilder(
- "v2.CloudCostManagementApi.deleteBudget",
+ "v2.CloudCostManagementApi.createRuleset",
localVarPath,
new ArrayList(),
localVarHeaderParams,
new HashMap(),
- new String[] {"*/*"},
+ new String[] {"application/json"},
new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
} catch (ApiException ex) {
- CompletableFuture> result = new CompletableFuture<>();
+ CompletableFuture> result = new CompletableFuture<>();
result.completeExceptionally(ex);
return result;
}
return apiClient.invokeAPIAsync(
- "DELETE",
+ "POST",
builder,
localVarHeaderParams,
- new String[] {},
+ new String[] {"application/json"},
localVarPostBody,
new HashMap(),
false,
- null);
+ new GenericType() {});
}
/**
- * Delete Cloud Cost Management AWS CUR config.
+ * Delete arbitrary cost rule.
*
- * See {@link #deleteCostAWSCURConfigWithHttpInfo}.
+ *
See {@link #deleteArbitraryCostRuleWithHttpInfo}.
*
- * @param cloudAccountId Cloud Account id. (required)
+ * @param ruleId The unique identifier of the arbitrary cost rule (required)
* @throws ApiException if fails to make API call
*/
- public void deleteCostAWSCURConfig(Long cloudAccountId) throws ApiException {
- deleteCostAWSCURConfigWithHttpInfo(cloudAccountId);
+ public void deleteArbitraryCostRule(Long ruleId) throws ApiException {
+ deleteArbitraryCostRuleWithHttpInfo(ruleId);
}
/**
- * Delete Cloud Cost Management AWS CUR config.
+ * Delete arbitrary cost rule.
*
- *
See {@link #deleteCostAWSCURConfigWithHttpInfoAsync}.
+ *
See {@link #deleteArbitraryCostRuleWithHttpInfoAsync}.
*
- * @param cloudAccountId Cloud Account id. (required)
+ * @param ruleId The unique identifier of the arbitrary cost rule (required)
* @return CompletableFuture
*/
- public CompletableFuture deleteCostAWSCURConfigAsync(Long cloudAccountId) {
- return deleteCostAWSCURConfigWithHttpInfoAsync(cloudAccountId)
+ public CompletableFuture deleteArbitraryCostRuleAsync(Long ruleId) {
+ return deleteArbitraryCostRuleWithHttpInfoAsync(ruleId)
.thenApply(
response -> {
return response.getData();
@@ -621,9 +779,9 @@ public CompletableFuture deleteCostAWSCURConfigAsync(Long cloudAccountId)
}
/**
- * Archive a Cloud Cost Management Account.
+ * Delete an arbitrary cost rule - Delete an existing arbitrary cost rule by its ID
*
- * @param cloudAccountId Cloud Account id. (required)
+ * @param ruleId The unique identifier of the arbitrary cost rule (required)
* @return ApiResponse<Void>
* @throws ApiException if fails to make API call
* @http.response.details
@@ -631,33 +789,27 @@ public CompletableFuture deleteCostAWSCURConfigAsync(Long cloudAccountId)
* Response details
* | Status Code | Description | Response Headers |
* | 204 | No Content | - |
- * | 400 | Bad Request | - |
- * | 404 | Not Found | - |
* | 429 | Too many requests | - |
*
*/
- public ApiResponse deleteCostAWSCURConfigWithHttpInfo(Long cloudAccountId)
- throws ApiException {
+ public ApiResponse deleteArbitraryCostRuleWithHttpInfo(Long ruleId) throws ApiException {
Object localVarPostBody = null;
- // verify the required parameter 'cloudAccountId' is set
- if (cloudAccountId == null) {
+ // verify the required parameter 'ruleId' is set
+ if (ruleId == null) {
throw new ApiException(
- 400,
- "Missing the required parameter 'cloudAccountId' when calling deleteCostAWSCURConfig");
+ 400, "Missing the required parameter 'ruleId' when calling deleteArbitraryCostRule");
}
// create path and map variables
String localVarPath =
- "/api/v2/cost/aws_cur_config/{cloud_account_id}"
- .replaceAll(
- "\\{" + "cloud_account_id" + "\\}",
- apiClient.escapeString(cloudAccountId.toString()));
+ "/api/v2/cost/arbitrary_rule/{rule_id}"
+ .replaceAll("\\{" + "rule_id" + "\\}", apiClient.escapeString(ruleId.toString()));
Map localVarHeaderParams = new HashMap();
Invocation.Builder builder =
apiClient.createBuilder(
- "v2.CloudCostManagementApi.deleteCostAWSCURConfig",
+ "v2.CloudCostManagementApi.deleteArbitraryCostRule",
localVarPath,
new ArrayList(),
localVarHeaderParams,
@@ -676,33 +828,29 @@ public ApiResponse deleteCostAWSCURConfigWithHttpInfo(Long cloudAccountId)
}
/**
- * Delete Cloud Cost Management AWS CUR config.
+ * Delete arbitrary cost rule.
*
- * See {@link #deleteCostAWSCURConfigWithHttpInfo}.
+ *
See {@link #deleteArbitraryCostRuleWithHttpInfo}.
*
- * @param cloudAccountId Cloud Account id. (required)
+ * @param ruleId The unique identifier of the arbitrary cost rule (required)
* @return CompletableFuture<ApiResponse<Void>>
*/
- public CompletableFuture> deleteCostAWSCURConfigWithHttpInfoAsync(
- Long cloudAccountId) {
+ public CompletableFuture> deleteArbitraryCostRuleWithHttpInfoAsync(
+ Long ruleId) {
Object localVarPostBody = null;
- // verify the required parameter 'cloudAccountId' is set
- if (cloudAccountId == null) {
+ // verify the required parameter 'ruleId' is set
+ if (ruleId == null) {
CompletableFuture> result = new CompletableFuture<>();
result.completeExceptionally(
new ApiException(
- 400,
- "Missing the required parameter 'cloudAccountId' when calling"
- + " deleteCostAWSCURConfig"));
+ 400, "Missing the required parameter 'ruleId' when calling deleteArbitraryCostRule"));
return result;
}
// create path and map variables
String localVarPath =
- "/api/v2/cost/aws_cur_config/{cloud_account_id}"
- .replaceAll(
- "\\{" + "cloud_account_id" + "\\}",
- apiClient.escapeString(cloudAccountId.toString()));
+ "/api/v2/cost/arbitrary_rule/{rule_id}"
+ .replaceAll("\\{" + "rule_id" + "\\}", apiClient.escapeString(ruleId.toString()));
Map localVarHeaderParams = new HashMap();
@@ -710,7 +858,7 @@ public CompletableFuture> deleteCostAWSCURConfigWithHttpInfoAs
try {
builder =
apiClient.createBuilder(
- "v2.CloudCostManagementApi.deleteCostAWSCURConfig",
+ "v2.CloudCostManagementApi.deleteArbitraryCostRule",
localVarPath,
new ArrayList(),
localVarHeaderParams,
@@ -734,27 +882,27 @@ public CompletableFuture> deleteCostAWSCURConfigWithHttpInfoAs
}
/**
- * Delete Cloud Cost Management Azure config.
+ * Delete a budget.
*
- * See {@link #deleteCostAzureUCConfigWithHttpInfo}.
+ *
See {@link #deleteBudgetWithHttpInfo}.
*
- * @param cloudAccountId Cloud Account id. (required)
+ * @param budgetId Budget id. (required)
* @throws ApiException if fails to make API call
*/
- public void deleteCostAzureUCConfig(Long cloudAccountId) throws ApiException {
- deleteCostAzureUCConfigWithHttpInfo(cloudAccountId);
+ public void deleteBudget(String budgetId) throws ApiException {
+ deleteBudgetWithHttpInfo(budgetId);
}
/**
- * Delete Cloud Cost Management Azure config.
+ * Delete a budget.
*
- *
See {@link #deleteCostAzureUCConfigWithHttpInfoAsync}.
+ *
See {@link #deleteBudgetWithHttpInfoAsync}.
*
- * @param cloudAccountId Cloud Account id. (required)
+ * @param budgetId Budget id. (required)
* @return CompletableFuture
*/
- public CompletableFuture deleteCostAzureUCConfigAsync(Long cloudAccountId) {
- return deleteCostAzureUCConfigWithHttpInfoAsync(cloudAccountId)
+ public CompletableFuture deleteBudgetAsync(String budgetId) {
+ return deleteBudgetWithHttpInfoAsync(budgetId)
.thenApply(
response -> {
return response.getData();
@@ -762,9 +910,9 @@ public CompletableFuture deleteCostAzureUCConfigAsync(Long cloudAccountId)
}
/**
- * Archive a Cloud Cost Management Account.
+ * Delete a budget.
*
- * @param cloudAccountId Cloud Account id. (required)
+ * @param budgetId Budget id. (required)
* @return ApiResponse<Void>
* @throws ApiException if fails to make API call
* @http.response.details
@@ -773,32 +921,27 @@ public CompletableFuture deleteCostAzureUCConfigAsync(Long cloudAccountId)
* | Status Code | Description | Response Headers |
* | 204 | No Content | - |
* | 400 | Bad Request | - |
- * | 404 | Not Found | - |
* | 429 | Too many requests | - |
*
*/
- public ApiResponse deleteCostAzureUCConfigWithHttpInfo(Long cloudAccountId)
- throws ApiException {
+ public ApiResponse deleteBudgetWithHttpInfo(String budgetId) throws ApiException {
Object localVarPostBody = null;
- // verify the required parameter 'cloudAccountId' is set
- if (cloudAccountId == null) {
+ // verify the required parameter 'budgetId' is set
+ if (budgetId == null) {
throw new ApiException(
- 400,
- "Missing the required parameter 'cloudAccountId' when calling deleteCostAzureUCConfig");
+ 400, "Missing the required parameter 'budgetId' when calling deleteBudget");
}
// create path and map variables
String localVarPath =
- "/api/v2/cost/azure_uc_config/{cloud_account_id}"
- .replaceAll(
- "\\{" + "cloud_account_id" + "\\}",
- apiClient.escapeString(cloudAccountId.toString()));
+ "/api/v2/cost/budget/{budget_id}"
+ .replaceAll("\\{" + "budget_id" + "\\}", apiClient.escapeString(budgetId.toString()));
Map localVarHeaderParams = new HashMap();
Invocation.Builder builder =
apiClient.createBuilder(
- "v2.CloudCostManagementApi.deleteCostAzureUCConfig",
+ "v2.CloudCostManagementApi.deleteBudget",
localVarPath,
new ArrayList(),
localVarHeaderParams,
@@ -817,33 +960,28 @@ public ApiResponse deleteCostAzureUCConfigWithHttpInfo(Long cloudAccountId
}
/**
- * Delete Cloud Cost Management Azure config.
+ * Delete a budget.
*
- * See {@link #deleteCostAzureUCConfigWithHttpInfo}.
+ *
See {@link #deleteBudgetWithHttpInfo}.
*
- * @param cloudAccountId Cloud Account id. (required)
+ * @param budgetId Budget id. (required)
* @return CompletableFuture<ApiResponse<Void>>
*/
- public CompletableFuture> deleteCostAzureUCConfigWithHttpInfoAsync(
- Long cloudAccountId) {
+ public CompletableFuture> deleteBudgetWithHttpInfoAsync(String budgetId) {
Object localVarPostBody = null;
- // verify the required parameter 'cloudAccountId' is set
- if (cloudAccountId == null) {
+ // verify the required parameter 'budgetId' is set
+ if (budgetId == null) {
CompletableFuture> result = new CompletableFuture<>();
result.completeExceptionally(
new ApiException(
- 400,
- "Missing the required parameter 'cloudAccountId' when calling"
- + " deleteCostAzureUCConfig"));
+ 400, "Missing the required parameter 'budgetId' when calling deleteBudget"));
return result;
}
// create path and map variables
String localVarPath =
- "/api/v2/cost/azure_uc_config/{cloud_account_id}"
- .replaceAll(
- "\\{" + "cloud_account_id" + "\\}",
- apiClient.escapeString(cloudAccountId.toString()));
+ "/api/v2/cost/budget/{budget_id}"
+ .replaceAll("\\{" + "budget_id" + "\\}", apiClient.escapeString(budgetId.toString()));
Map localVarHeaderParams = new HashMap();
@@ -851,7 +989,7 @@ public CompletableFuture> deleteCostAzureUCConfigWithHttpInfoA
try {
builder =
apiClient.createBuilder(
- "v2.CloudCostManagementApi.deleteCostAzureUCConfig",
+ "v2.CloudCostManagementApi.deleteBudget",
localVarPath,
new ArrayList(),
localVarHeaderParams,
@@ -875,27 +1013,27 @@ public CompletableFuture> deleteCostAzureUCConfigWithHttpInfoA
}
/**
- * Delete Cloud Cost Management GCP Usage Cost config.
+ * Delete Cloud Cost Management AWS CUR config.
*
- * See {@link #deleteCostGCPUsageCostConfigWithHttpInfo}.
+ *
See {@link #deleteCostAWSCURConfigWithHttpInfo}.
*
* @param cloudAccountId Cloud Account id. (required)
* @throws ApiException if fails to make API call
*/
- public void deleteCostGCPUsageCostConfig(Long cloudAccountId) throws ApiException {
- deleteCostGCPUsageCostConfigWithHttpInfo(cloudAccountId);
+ public void deleteCostAWSCURConfig(Long cloudAccountId) throws ApiException {
+ deleteCostAWSCURConfigWithHttpInfo(cloudAccountId);
}
/**
- * Delete Cloud Cost Management GCP Usage Cost config.
+ * Delete Cloud Cost Management AWS CUR config.
*
- *
See {@link #deleteCostGCPUsageCostConfigWithHttpInfoAsync}.
+ *
See {@link #deleteCostAWSCURConfigWithHttpInfoAsync}.
*
* @param cloudAccountId Cloud Account id. (required)
* @return CompletableFuture
*/
- public CompletableFuture deleteCostGCPUsageCostConfigAsync(Long cloudAccountId) {
- return deleteCostGCPUsageCostConfigWithHttpInfoAsync(cloudAccountId)
+ public CompletableFuture deleteCostAWSCURConfigAsync(Long cloudAccountId) {
+ return deleteCostAWSCURConfigWithHttpInfoAsync(cloudAccountId)
.thenApply(
response -> {
return response.getData();
@@ -903,7 +1041,7 @@ public CompletableFuture deleteCostGCPUsageCostConfigAsync(Long cloudAccou
}
/**
- * Archive a Cloud Cost Management account.
+ * Archive a Cloud Cost Management Account.
*
* @param cloudAccountId Cloud Account id. (required)
* @return ApiResponse<Void>
@@ -918,7 +1056,7 @@ public CompletableFuture deleteCostGCPUsageCostConfigAsync(Long cloudAccou
* | 429 | Too many requests | - |
*
*/
- public ApiResponse deleteCostGCPUsageCostConfigWithHttpInfo(Long cloudAccountId)
+ public ApiResponse deleteCostAWSCURConfigWithHttpInfo(Long cloudAccountId)
throws ApiException {
Object localVarPostBody = null;
@@ -926,12 +1064,11 @@ public ApiResponse deleteCostGCPUsageCostConfigWithHttpInfo(Long cloudAcco
if (cloudAccountId == null) {
throw new ApiException(
400,
- "Missing the required parameter 'cloudAccountId' when calling"
- + " deleteCostGCPUsageCostConfig");
+ "Missing the required parameter 'cloudAccountId' when calling deleteCostAWSCURConfig");
}
// create path and map variables
String localVarPath =
- "/api/v2/cost/gcp_uc_config/{cloud_account_id}"
+ "/api/v2/cost/aws_cur_config/{cloud_account_id}"
.replaceAll(
"\\{" + "cloud_account_id" + "\\}",
apiClient.escapeString(cloudAccountId.toString()));
@@ -940,7 +1077,7 @@ public ApiResponse deleteCostGCPUsageCostConfigWithHttpInfo(Long cloudAcco
Invocation.Builder builder =
apiClient.createBuilder(
- "v2.CloudCostManagementApi.deleteCostGCPUsageCostConfig",
+ "v2.CloudCostManagementApi.deleteCostAWSCURConfig",
localVarPath,
new ArrayList(),
localVarHeaderParams,
@@ -959,14 +1096,14 @@ public ApiResponse deleteCostGCPUsageCostConfigWithHttpInfo(Long cloudAcco
}
/**
- * Delete Cloud Cost Management GCP Usage Cost config.
+ * Delete Cloud Cost Management AWS CUR config.
*
- * See {@link #deleteCostGCPUsageCostConfigWithHttpInfo}.
+ *
See {@link #deleteCostAWSCURConfigWithHttpInfo}.
*
* @param cloudAccountId Cloud Account id. (required)
* @return CompletableFuture<ApiResponse<Void>>
*/
- public CompletableFuture> deleteCostGCPUsageCostConfigWithHttpInfoAsync(
+ public CompletableFuture> deleteCostAWSCURConfigWithHttpInfoAsync(
Long cloudAccountId) {
Object localVarPostBody = null;
@@ -977,12 +1114,12 @@ public CompletableFuture> deleteCostGCPUsageCostConfigWithHttp
new ApiException(
400,
"Missing the required parameter 'cloudAccountId' when calling"
- + " deleteCostGCPUsageCostConfig"));
+ + " deleteCostAWSCURConfig"));
return result;
}
// create path and map variables
String localVarPath =
- "/api/v2/cost/gcp_uc_config/{cloud_account_id}"
+ "/api/v2/cost/aws_cur_config/{cloud_account_id}"
.replaceAll(
"\\{" + "cloud_account_id" + "\\}",
apiClient.escapeString(cloudAccountId.toString()));
@@ -993,7 +1130,7 @@ public CompletableFuture> deleteCostGCPUsageCostConfigWithHttp
try {
builder =
apiClient.createBuilder(
- "v2.CloudCostManagementApi.deleteCostGCPUsageCostConfig",
+ "v2.CloudCostManagementApi.deleteCostAWSCURConfig",
localVarPath,
new ArrayList(),
localVarHeaderParams,
@@ -1017,27 +1154,27 @@ public CompletableFuture> deleteCostGCPUsageCostConfigWithHttp
}
/**
- * Delete Custom Costs file.
+ * Delete Cloud Cost Management Azure config.
*
- * See {@link #deleteCustomCostsFileWithHttpInfo}.
+ *
See {@link #deleteCostAzureUCConfigWithHttpInfo}.
*
- * @param fileId File ID. (required)
+ * @param cloudAccountId Cloud Account id. (required)
* @throws ApiException if fails to make API call
*/
- public void deleteCustomCostsFile(String fileId) throws ApiException {
- deleteCustomCostsFileWithHttpInfo(fileId);
+ public void deleteCostAzureUCConfig(Long cloudAccountId) throws ApiException {
+ deleteCostAzureUCConfigWithHttpInfo(cloudAccountId);
}
/**
- * Delete Custom Costs file.
+ * Delete Cloud Cost Management Azure config.
*
- *
See {@link #deleteCustomCostsFileWithHttpInfoAsync}.
+ *
See {@link #deleteCostAzureUCConfigWithHttpInfoAsync}.
*
- * @param fileId File ID. (required)
+ * @param cloudAccountId Cloud Account id. (required)
* @return CompletableFuture
*/
- public CompletableFuture deleteCustomCostsFileAsync(String fileId) {
- return deleteCustomCostsFileWithHttpInfoAsync(fileId)
+ public CompletableFuture deleteCostAzureUCConfigAsync(Long cloudAccountId) {
+ return deleteCostAzureUCConfigWithHttpInfoAsync(cloudAccountId)
.thenApply(
response -> {
return response.getData();
@@ -1045,9 +1182,9 @@ public CompletableFuture deleteCustomCostsFileAsync(String fileId) {
}
/**
- * Delete the specified Custom Costs file.
+ * Archive a Cloud Cost Management Account.
*
- * @param fileId File ID. (required)
+ * @param cloudAccountId Cloud Account id. (required)
* @return ApiResponse<Void>
* @throws ApiException if fails to make API call
* @http.response.details
@@ -1055,29 +1192,33 @@ public CompletableFuture deleteCustomCostsFileAsync(String fileId) {
* Response details
* | Status Code | Description | Response Headers |
* | 204 | No Content | - |
- * | 403 | Forbidden | - |
+ * | 400 | Bad Request | - |
* | 404 | Not Found | - |
* | 429 | Too many requests | - |
*
*/
- public ApiResponse deleteCustomCostsFileWithHttpInfo(String fileId) throws ApiException {
+ public ApiResponse deleteCostAzureUCConfigWithHttpInfo(Long cloudAccountId)
+ throws ApiException {
Object localVarPostBody = null;
- // verify the required parameter 'fileId' is set
- if (fileId == null) {
+ // verify the required parameter 'cloudAccountId' is set
+ if (cloudAccountId == null) {
throw new ApiException(
- 400, "Missing the required parameter 'fileId' when calling deleteCustomCostsFile");
+ 400,
+ "Missing the required parameter 'cloudAccountId' when calling deleteCostAzureUCConfig");
}
// create path and map variables
String localVarPath =
- "/api/v2/cost/custom_costs/{file_id}"
- .replaceAll("\\{" + "file_id" + "\\}", apiClient.escapeString(fileId.toString()));
+ "/api/v2/cost/azure_uc_config/{cloud_account_id}"
+ .replaceAll(
+ "\\{" + "cloud_account_id" + "\\}",
+ apiClient.escapeString(cloudAccountId.toString()));
Map localVarHeaderParams = new HashMap();
Invocation.Builder builder =
apiClient.createBuilder(
- "v2.CloudCostManagementApi.deleteCustomCostsFile",
+ "v2.CloudCostManagementApi.deleteCostAzureUCConfig",
localVarPath,
new ArrayList(),
localVarHeaderParams,
@@ -1096,29 +1237,33 @@ public ApiResponse deleteCustomCostsFileWithHttpInfo(String fileId) throws
}
/**
- * Delete Custom Costs file.
+ * Delete Cloud Cost Management Azure config.
*
- * See {@link #deleteCustomCostsFileWithHttpInfo}.
+ *
See {@link #deleteCostAzureUCConfigWithHttpInfo}.
*
- * @param fileId File ID. (required)
+ * @param cloudAccountId Cloud Account id. (required)
* @return CompletableFuture<ApiResponse<Void>>
*/
- public CompletableFuture> deleteCustomCostsFileWithHttpInfoAsync(
- String fileId) {
+ public CompletableFuture> deleteCostAzureUCConfigWithHttpInfoAsync(
+ Long cloudAccountId) {
Object localVarPostBody = null;
- // verify the required parameter 'fileId' is set
- if (fileId == null) {
+ // verify the required parameter 'cloudAccountId' is set
+ if (cloudAccountId == null) {
CompletableFuture> result = new CompletableFuture<>();
result.completeExceptionally(
new ApiException(
- 400, "Missing the required parameter 'fileId' when calling deleteCustomCostsFile"));
+ 400,
+ "Missing the required parameter 'cloudAccountId' when calling"
+ + " deleteCostAzureUCConfig"));
return result;
}
// create path and map variables
String localVarPath =
- "/api/v2/cost/custom_costs/{file_id}"
- .replaceAll("\\{" + "file_id" + "\\}", apiClient.escapeString(fileId.toString()));
+ "/api/v2/cost/azure_uc_config/{cloud_account_id}"
+ .replaceAll(
+ "\\{" + "cloud_account_id" + "\\}",
+ apiClient.escapeString(cloudAccountId.toString()));
Map localVarHeaderParams = new HashMap();
@@ -1126,7 +1271,7 @@ public CompletableFuture> deleteCustomCostsFileWithHttpInfoAsy
try {
builder =
apiClient.createBuilder(
- "v2.CloudCostManagementApi.deleteCustomCostsFile",
+ "v2.CloudCostManagementApi.deleteCostAzureUCConfig",
localVarPath,
new ArrayList(),
localVarHeaderParams,
@@ -1150,28 +1295,27 @@ public CompletableFuture> deleteCustomCostsFileWithHttpInfoAsy
}
/**
- * Get a budget.
+ * Delete Google Cloud Usage Cost config.
*
- * See {@link #getBudgetWithHttpInfo}.
+ *
See {@link #deleteCostGCPUsageCostConfigWithHttpInfo}.
*
- * @param budgetId Budget id. (required)
- * @return BudgetWithEntries
+ * @param cloudAccountId Cloud Account id. (required)
* @throws ApiException if fails to make API call
*/
- public BudgetWithEntries getBudget(String budgetId) throws ApiException {
- return getBudgetWithHttpInfo(budgetId).getData();
+ public void deleteCostGCPUsageCostConfig(Long cloudAccountId) throws ApiException {
+ deleteCostGCPUsageCostConfigWithHttpInfo(cloudAccountId);
}
/**
- * Get a budget.
+ * Delete Google Cloud Usage Cost config.
*
- *
See {@link #getBudgetWithHttpInfoAsync}.
+ *
See {@link #deleteCostGCPUsageCostConfigWithHttpInfoAsync}.
*
- * @param budgetId Budget id. (required)
- * @return CompletableFuture<BudgetWithEntries>
+ * @param cloudAccountId Cloud Account id. (required)
+ * @return CompletableFuture
*/
- public CompletableFuture getBudgetAsync(String budgetId) {
- return getBudgetWithHttpInfoAsync(budgetId)
+ public CompletableFuture deleteCostGCPUsageCostConfigAsync(Long cloudAccountId) {
+ return deleteCostGCPUsageCostConfigWithHttpInfoAsync(cloudAccountId)
.thenApply(
response -> {
return response.getData();
@@ -1179,80 +1323,89 @@ public CompletableFuture getBudgetAsync(String budgetId) {
}
/**
- * Get a budget.
+ * Archive a Cloud Cost Management account.
*
- * @param budgetId Budget id. (required)
- * @return ApiResponse<BudgetWithEntries>
+ * @param cloudAccountId Cloud Account id. (required)
+ * @return ApiResponse<Void>
* @throws ApiException if fails to make API call
* @http.response.details
*
* Response details
* | Status Code | Description | Response Headers |
- * | 200 | OK | - |
+ * | 204 | No Content | - |
* | 400 | Bad Request | - |
* | 404 | Not Found | - |
* | 429 | Too many requests | - |
*
*/
- public ApiResponse getBudgetWithHttpInfo(String budgetId) throws ApiException {
+ public ApiResponse deleteCostGCPUsageCostConfigWithHttpInfo(Long cloudAccountId)
+ throws ApiException {
Object localVarPostBody = null;
- // verify the required parameter 'budgetId' is set
- if (budgetId == null) {
+ // verify the required parameter 'cloudAccountId' is set
+ if (cloudAccountId == null) {
throw new ApiException(
- 400, "Missing the required parameter 'budgetId' when calling getBudget");
+ 400,
+ "Missing the required parameter 'cloudAccountId' when calling"
+ + " deleteCostGCPUsageCostConfig");
}
// create path and map variables
String localVarPath =
- "/api/v2/cost/budget/{budget_id}"
- .replaceAll("\\{" + "budget_id" + "\\}", apiClient.escapeString(budgetId.toString()));
+ "/api/v2/cost/gcp_uc_config/{cloud_account_id}"
+ .replaceAll(
+ "\\{" + "cloud_account_id" + "\\}",
+ apiClient.escapeString(cloudAccountId.toString()));
Map localVarHeaderParams = new HashMap();
Invocation.Builder builder =
apiClient.createBuilder(
- "v2.CloudCostManagementApi.getBudget",
+ "v2.CloudCostManagementApi.deleteCostGCPUsageCostConfig",
localVarPath,
new ArrayList(),
localVarHeaderParams,
new HashMap(),
- new String[] {"application/json"},
+ new String[] {"*/*"},
new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
return apiClient.invokeAPI(
- "GET",
+ "DELETE",
builder,
localVarHeaderParams,
new String[] {},
localVarPostBody,
new HashMap(),
false,
- new GenericType() {});
+ null);
}
/**
- * Get a budget.
+ * Delete Google Cloud Usage Cost config.
*
- * See {@link #getBudgetWithHttpInfo}.
+ *
See {@link #deleteCostGCPUsageCostConfigWithHttpInfo}.
*
- * @param budgetId Budget id. (required)
- * @return CompletableFuture<ApiResponse<BudgetWithEntries>>
+ * @param cloudAccountId Cloud Account id. (required)
+ * @return CompletableFuture<ApiResponse<Void>>
*/
- public CompletableFuture> getBudgetWithHttpInfoAsync(
- String budgetId) {
+ public CompletableFuture> deleteCostGCPUsageCostConfigWithHttpInfoAsync(
+ Long cloudAccountId) {
Object localVarPostBody = null;
- // verify the required parameter 'budgetId' is set
- if (budgetId == null) {
- CompletableFuture> result = new CompletableFuture<>();
+ // verify the required parameter 'cloudAccountId' is set
+ if (cloudAccountId == null) {
+ CompletableFuture> result = new CompletableFuture<>();
result.completeExceptionally(
new ApiException(
- 400, "Missing the required parameter 'budgetId' when calling getBudget"));
+ 400,
+ "Missing the required parameter 'cloudAccountId' when calling"
+ + " deleteCostGCPUsageCostConfig"));
return result;
}
// create path and map variables
String localVarPath =
- "/api/v2/cost/budget/{budget_id}"
- .replaceAll("\\{" + "budget_id" + "\\}", apiClient.escapeString(budgetId.toString()));
+ "/api/v2/cost/gcp_uc_config/{cloud_account_id}"
+ .replaceAll(
+ "\\{" + "cloud_account_id" + "\\}",
+ apiClient.escapeString(cloudAccountId.toString()));
Map localVarHeaderParams = new HashMap();
@@ -1260,52 +1413,51 @@ public CompletableFuture> getBudgetWithHttpInfoAs
try {
builder =
apiClient.createBuilder(
- "v2.CloudCostManagementApi.getBudget",
+ "v2.CloudCostManagementApi.deleteCostGCPUsageCostConfig",
localVarPath,
new ArrayList(),
localVarHeaderParams,
new HashMap(),
- new String[] {"application/json"},
+ new String[] {"*/*"},
new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
} catch (ApiException ex) {
- CompletableFuture> result = new CompletableFuture<>();
+ CompletableFuture> result = new CompletableFuture<>();
result.completeExceptionally(ex);
return result;
}
return apiClient.invokeAPIAsync(
- "GET",
+ "DELETE",
builder,
localVarHeaderParams,
new String[] {},
localVarPostBody,
new HashMap(),
false,
- new GenericType() {});
+ null);
}
/**
- * Get Custom Costs file.
+ * Delete Custom Costs file.
*
- * See {@link #getCustomCostsFileWithHttpInfo}.
+ *
See {@link #deleteCustomCostsFileWithHttpInfo}.
*
* @param fileId File ID. (required)
- * @return CustomCostsFileGetResponse
* @throws ApiException if fails to make API call
*/
- public CustomCostsFileGetResponse getCustomCostsFile(String fileId) throws ApiException {
- return getCustomCostsFileWithHttpInfo(fileId).getData();
+ public void deleteCustomCostsFile(String fileId) throws ApiException {
+ deleteCustomCostsFileWithHttpInfo(fileId);
}
/**
- * Get Custom Costs file.
+ * Delete Custom Costs file.
*
- *
See {@link #getCustomCostsFileWithHttpInfoAsync}.
+ *
See {@link #deleteCustomCostsFileWithHttpInfoAsync}.
*
* @param fileId File ID. (required)
- * @return CompletableFuture<CustomCostsFileGetResponse>
+ * @return CompletableFuture
*/
- public CompletableFuture getCustomCostsFileAsync(String fileId) {
- return getCustomCostsFileWithHttpInfoAsync(fileId)
+ public CompletableFuture deleteCustomCostsFileAsync(String fileId) {
+ return deleteCustomCostsFileWithHttpInfoAsync(fileId)
.thenApply(
response -> {
return response.getData();
@@ -1313,29 +1465,28 @@ public CompletableFuture getCustomCostsFileAsync(Str
}
/**
- * Fetch the specified Custom Costs file.
+ * Delete the specified Custom Costs file.
*
* @param fileId File ID. (required)
- * @return ApiResponse<CustomCostsFileGetResponse>
+ * @return ApiResponse<Void>
* @throws ApiException if fails to make API call
* @http.response.details
*
* Response details
* | Status Code | Description | Response Headers |
- * | 200 | OK | - |
+ * | 204 | No Content | - |
* | 403 | Forbidden | - |
* | 404 | Not Found | - |
* | 429 | Too many requests | - |
*
*/
- public ApiResponse getCustomCostsFileWithHttpInfo(String fileId)
- throws ApiException {
+ public ApiResponse deleteCustomCostsFileWithHttpInfo(String fileId) throws ApiException {
Object localVarPostBody = null;
// verify the required parameter 'fileId' is set
if (fileId == null) {
throw new ApiException(
- 400, "Missing the required parameter 'fileId' when calling getCustomCostsFile");
+ 400, "Missing the required parameter 'fileId' when calling deleteCustomCostsFile");
}
// create path and map variables
String localVarPath =
@@ -1346,42 +1497,42 @@ public ApiResponse getCustomCostsFileWithHttpInfo(St
Invocation.Builder builder =
apiClient.createBuilder(
- "v2.CloudCostManagementApi.getCustomCostsFile",
+ "v2.CloudCostManagementApi.deleteCustomCostsFile",
localVarPath,
new ArrayList(),
localVarHeaderParams,
new HashMap(),
- new String[] {"application/json"},
+ new String[] {"*/*"},
new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
return apiClient.invokeAPI(
- "GET",
+ "DELETE",
builder,
localVarHeaderParams,
new String[] {},
localVarPostBody,
new HashMap(),
false,
- new GenericType() {});
+ null);
}
/**
- * Get Custom Costs file.
+ * Delete Custom Costs file.
*
- * See {@link #getCustomCostsFileWithHttpInfo}.
+ *
See {@link #deleteCustomCostsFileWithHttpInfo}.
*
* @param fileId File ID. (required)
- * @return CompletableFuture<ApiResponse<CustomCostsFileGetResponse>>
+ * @return CompletableFuture<ApiResponse<Void>>
*/
- public CompletableFuture>
- getCustomCostsFileWithHttpInfoAsync(String fileId) {
+ public CompletableFuture> deleteCustomCostsFileWithHttpInfoAsync(
+ String fileId) {
Object localVarPostBody = null;
// verify the required parameter 'fileId' is set
if (fileId == null) {
- CompletableFuture> result = new CompletableFuture<>();
+ CompletableFuture> result = new CompletableFuture<>();
result.completeExceptionally(
new ApiException(
- 400, "Missing the required parameter 'fileId' when calling getCustomCostsFile"));
+ 400, "Missing the required parameter 'fileId' when calling deleteCustomCostsFile"));
return result;
}
// create path and map variables
@@ -1395,50 +1546,51 @@ public ApiResponse getCustomCostsFileWithHttpInfo(St
try {
builder =
apiClient.createBuilder(
- "v2.CloudCostManagementApi.getCustomCostsFile",
+ "v2.CloudCostManagementApi.deleteCustomCostsFile",
localVarPath,
new ArrayList(),
localVarHeaderParams,
new HashMap(),
- new String[] {"application/json"},
+ new String[] {"*/*"},
new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
} catch (ApiException ex) {
- CompletableFuture> result = new CompletableFuture<>();
+ CompletableFuture> result = new CompletableFuture<>();
result.completeExceptionally(ex);
return result;
}
return apiClient.invokeAPIAsync(
- "GET",
+ "DELETE",
builder,
localVarHeaderParams,
new String[] {},
localVarPostBody,
new HashMap(),
false,
- new GenericType() {});
+ null);
}
/**
- * List budgets.
+ * Delete ruleset.
*
- * See {@link #listBudgetsWithHttpInfo}.
+ *
See {@link #deleteRulesetWithHttpInfo}.
*
- * @return BudgetArray
+ * @param rulesetId The unique identifier of the ruleset (required)
* @throws ApiException if fails to make API call
*/
- public BudgetArray listBudgets() throws ApiException {
- return listBudgetsWithHttpInfo().getData();
+ public void deleteRuleset(String rulesetId) throws ApiException {
+ deleteRulesetWithHttpInfo(rulesetId);
}
/**
- * List budgets.
+ * Delete ruleset.
*
- *
See {@link #listBudgetsWithHttpInfoAsync}.
+ *
See {@link #deleteRulesetWithHttpInfoAsync}.
*
- * @return CompletableFuture<BudgetArray>
+ * @param rulesetId The unique identifier of the ruleset (required)
+ * @return CompletableFuture
*/
- public CompletableFuture listBudgetsAsync() {
- return listBudgetsWithHttpInfoAsync()
+ public CompletableFuture deleteRulesetAsync(String rulesetId) {
+ return deleteRulesetWithHttpInfoAsync(rulesetId)
.thenApply(
response -> {
return response.getData();
@@ -1446,56 +1598,77 @@ public CompletableFuture listBudgetsAsync() {
}
/**
- * List budgets.
+ * Delete a tag pipeline ruleset - Delete an existing tag pipeline ruleset by its ID
*
- * @return ApiResponse<BudgetArray>
+ * @param rulesetId The unique identifier of the ruleset (required)
+ * @return ApiResponse<Void>
* @throws ApiException if fails to make API call
* @http.response.details
*
* Response details
* | Status Code | Description | Response Headers |
- * | 200 | OK | - |
+ * | 204 | No Content | - |
* | 429 | Too many requests | - |
*
*/
- public ApiResponse listBudgetsWithHttpInfo() throws ApiException {
+ public ApiResponse deleteRulesetWithHttpInfo(String rulesetId) throws ApiException {
Object localVarPostBody = null;
+
+ // verify the required parameter 'rulesetId' is set
+ if (rulesetId == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'rulesetId' when calling deleteRuleset");
+ }
// create path and map variables
- String localVarPath = "/api/v2/cost/budgets";
+ String localVarPath =
+ "/api/v2/tags/enrichment/{ruleset_id}"
+ .replaceAll("\\{" + "ruleset_id" + "\\}", apiClient.escapeString(rulesetId.toString()));
Map localVarHeaderParams = new HashMap();
Invocation.Builder builder =
apiClient.createBuilder(
- "v2.CloudCostManagementApi.listBudgets",
+ "v2.CloudCostManagementApi.deleteRuleset",
localVarPath,
new ArrayList(),
localVarHeaderParams,
new HashMap(),
- new String[] {"application/json"},
+ new String[] {"*/*"},
new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
return apiClient.invokeAPI(
- "GET",
+ "DELETE",
builder,
localVarHeaderParams,
new String[] {},
localVarPostBody,
new HashMap(),
false,
- new GenericType() {});
+ null);
}
/**
- * List budgets.
+ * Delete ruleset.
*
- * See {@link #listBudgetsWithHttpInfo}.
+ *
See {@link #deleteRulesetWithHttpInfo}.
*
- * @return CompletableFuture<ApiResponse<BudgetArray>>
+ * @param rulesetId The unique identifier of the ruleset (required)
+ * @return CompletableFuture<ApiResponse<Void>>
*/
- public CompletableFuture> listBudgetsWithHttpInfoAsync() {
+ public CompletableFuture> deleteRulesetWithHttpInfoAsync(String rulesetId) {
Object localVarPostBody = null;
+
+ // verify the required parameter 'rulesetId' is set
+ if (rulesetId == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400, "Missing the required parameter 'rulesetId' when calling deleteRuleset"));
+ return result;
+ }
// create path and map variables
- String localVarPath = "/api/v2/cost/budgets";
+ String localVarPath =
+ "/api/v2/tags/enrichment/{ruleset_id}"
+ .replaceAll("\\{" + "ruleset_id" + "\\}", apiClient.escapeString(rulesetId.toString()));
Map localVarHeaderParams = new HashMap();
@@ -1503,50 +1676,52 @@ public CompletableFuture> listBudgetsWithHttpInfoAsync(
try {
builder =
apiClient.createBuilder(
- "v2.CloudCostManagementApi.listBudgets",
+ "v2.CloudCostManagementApi.deleteRuleset",
localVarPath,
new ArrayList(),
localVarHeaderParams,
new HashMap(),
- new String[] {"application/json"},
+ new String[] {"*/*"},
new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
} catch (ApiException ex) {
- CompletableFuture> result = new CompletableFuture<>();
+ CompletableFuture> result = new CompletableFuture<>();
result.completeExceptionally(ex);
return result;
}
return apiClient.invokeAPIAsync(
- "GET",
+ "DELETE",
builder,
localVarHeaderParams,
new String[] {},
localVarPostBody,
new HashMap(),
false,
- new GenericType() {});
+ null);
}
/**
- * List Cloud Cost Management AWS CUR configs.
+ * Get arbitrary cost rule.
*
- * See {@link #listCostAWSCURConfigsWithHttpInfo}.
+ *
See {@link #getArbitraryCostRuleWithHttpInfo}.
*
- * @return AwsCURConfigsResponse
+ * @param ruleId The unique identifier of the arbitrary cost rule (required)
+ * @return ArbitraryRuleResponse
* @throws ApiException if fails to make API call
*/
- public AwsCURConfigsResponse listCostAWSCURConfigs() throws ApiException {
- return listCostAWSCURConfigsWithHttpInfo().getData();
+ public ArbitraryRuleResponse getArbitraryCostRule(Long ruleId) throws ApiException {
+ return getArbitraryCostRuleWithHttpInfo(ruleId).getData();
}
/**
- * List Cloud Cost Management AWS CUR configs.
+ * Get arbitrary cost rule.
*
- *
See {@link #listCostAWSCURConfigsWithHttpInfoAsync}.
+ *
See {@link #getArbitraryCostRuleWithHttpInfoAsync}.
*
- * @return CompletableFuture<AwsCURConfigsResponse>
+ * @param ruleId The unique identifier of the arbitrary cost rule (required)
+ * @return CompletableFuture<ArbitraryRuleResponse>
*/
- public CompletableFuture listCostAWSCURConfigsAsync() {
- return listCostAWSCURConfigsWithHttpInfoAsync()
+ public CompletableFuture getArbitraryCostRuleAsync(Long ruleId) {
+ return getArbitraryCostRuleWithHttpInfoAsync(ruleId)
.thenApply(
response -> {
return response.getData();
@@ -1554,30 +1729,38 @@ public CompletableFuture listCostAWSCURConfigsAsync() {
}
/**
- * List the AWS CUR configs.
+ * Get a specific arbitrary cost rule - Retrieve a specific arbitrary cost rule by its ID
*
- * @return ApiResponse<AwsCURConfigsResponse>
+ * @param ruleId The unique identifier of the arbitrary cost rule (required)
+ * @return ApiResponse<ArbitraryRuleResponse>
* @throws ApiException if fails to make API call
* @http.response.details
*
* Response details
* | Status Code | Description | Response Headers |
* | 200 | OK | - |
- * | 403 | Forbidden | - |
* | 429 | Too many requests | - |
*
*/
- public ApiResponse listCostAWSCURConfigsWithHttpInfo()
+ public ApiResponse getArbitraryCostRuleWithHttpInfo(Long ruleId)
throws ApiException {
Object localVarPostBody = null;
+
+ // verify the required parameter 'ruleId' is set
+ if (ruleId == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'ruleId' when calling getArbitraryCostRule");
+ }
// create path and map variables
- String localVarPath = "/api/v2/cost/aws_cur_config";
+ String localVarPath =
+ "/api/v2/cost/arbitrary_rule/{rule_id}"
+ .replaceAll("\\{" + "rule_id" + "\\}", apiClient.escapeString(ruleId.toString()));
Map localVarHeaderParams = new HashMap();
Invocation.Builder builder =
apiClient.createBuilder(
- "v2.CloudCostManagementApi.listCostAWSCURConfigs",
+ "v2.CloudCostManagementApi.getArbitraryCostRule",
localVarPath,
new ArrayList(),
localVarHeaderParams,
@@ -1592,21 +1775,33 @@ public ApiResponse listCostAWSCURConfigsWithHttpInfo()
localVarPostBody,
new HashMap(),
false,
- new GenericType() {});
+ new GenericType() {});
}
/**
- * List Cloud Cost Management AWS CUR configs.
+ * Get arbitrary cost rule.
*
- * See {@link #listCostAWSCURConfigsWithHttpInfo}.
+ *
See {@link #getArbitraryCostRuleWithHttpInfo}.
*
- * @return CompletableFuture<ApiResponse<AwsCURConfigsResponse>>
+ * @param ruleId The unique identifier of the arbitrary cost rule (required)
+ * @return CompletableFuture<ApiResponse<ArbitraryRuleResponse>>
*/
- public CompletableFuture>
- listCostAWSCURConfigsWithHttpInfoAsync() {
+ public CompletableFuture>
+ getArbitraryCostRuleWithHttpInfoAsync(Long ruleId) {
Object localVarPostBody = null;
+
+ // verify the required parameter 'ruleId' is set
+ if (ruleId == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400, "Missing the required parameter 'ruleId' when calling getArbitraryCostRule"));
+ return result;
+ }
// create path and map variables
- String localVarPath = "/api/v2/cost/aws_cur_config";
+ String localVarPath =
+ "/api/v2/cost/arbitrary_rule/{rule_id}"
+ .replaceAll("\\{" + "rule_id" + "\\}", apiClient.escapeString(ruleId.toString()));
Map localVarHeaderParams = new HashMap();
@@ -1614,7 +1809,7 @@ public ApiResponse listCostAWSCURConfigsWithHttpInfo()
try {
builder =
apiClient.createBuilder(
- "v2.CloudCostManagementApi.listCostAWSCURConfigs",
+ "v2.CloudCostManagementApi.getArbitraryCostRule",
localVarPath,
new ArrayList(),
localVarHeaderParams,
@@ -1622,7 +1817,7 @@ public ApiResponse listCostAWSCURConfigsWithHttpInfo()
new String[] {"application/json"},
new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
} catch (ApiException ex) {
- CompletableFuture> result = new CompletableFuture<>();
+ CompletableFuture> result = new CompletableFuture<>();
result.completeExceptionally(ex);
return result;
}
@@ -1634,30 +1829,32 @@ public ApiResponse listCostAWSCURConfigsWithHttpInfo()
localVarPostBody,
new HashMap(),
false,
- new GenericType() {});
+ new GenericType