diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 440627d7e6..ec3132be28 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -1454,6 +1454,14 @@ components: schema: example: "my-service" type: string + SettingType: + description: The type of cost setting. + example: preferred_tags + in: path + name: setting_type + required: true + schema: + type: string SignalID: description: The ID of the signal. in: path @@ -15439,6 +15447,64 @@ components: data: $ref: "#/components/schemas/ConvertJobResultsToSignalsData" type: object + CostAIPreferredTagsAttributes: + description: Attributes for the preferred tags response. + properties: + message: + description: A contextual message about the preferred tags configuration. + example: No preferred tags are configured. + type: string + preferred_tags: + description: The list of preferred cost allocation tags. + example: + - "" + items: + description: A preferred tag key. + type: string + type: array + required: + - message + - preferred_tags + type: object + CostAIPreferredTagsData: + description: Preferred tags data object. + properties: + attributes: + $ref: "#/components/schemas/CostAIPreferredTagsAttributes" + id: + description: The unique identifier. + example: preferred_tags + type: string + type: + $ref: "#/components/schemas/CostAIPreferredTagsType" + required: + - id + - type + - attributes + type: object + CostAIPreferredTagsResponse: + description: Response containing preferred cost allocation tags for AI agents. + example: + data: + attributes: + message: No preferred tags are configured. + preferred_tags: [] + id: preferred_tags + type: preferred_tags + properties: + data: + $ref: "#/components/schemas/CostAIPreferredTagsData" + required: + - data + type: object + CostAIPreferredTagsType: + description: Preferred tags resource type. + enum: + - preferred_tags + example: preferred_tags + type: string + x-enum-varnames: + - PREFERRED_TAGS CostAggregationType: description: "Controls how costs are aggregated when using `start_date`. The `cumulative` option returns month-to-date running totals." enum: @@ -15556,6 +15622,148 @@ components: type: string x-enum-varnames: - COST_BY_ORG + CostSettingData: + description: Cost setting data object. + properties: + attributes: + $ref: "#/components/schemas/CostSettingDataAttributes" + id: + description: The unique identifier of the setting. + example: preferred_tags + type: string + type: + $ref: "#/components/schemas/CostSettingType" + required: + - id + - type + - attributes + type: object + CostSettingDataAttributes: + description: Attributes for a cost setting. + properties: + created_at: + description: The timestamp when the setting was created. + example: "" + type: string + created_by: + description: The UUID of the user who created the setting. + example: user-uuid + type: string + data: + additionalProperties: {} + description: The setting data as a flexible key-value map. + nullable: true + type: object + description: + description: A human-readable description of the setting. + example: User's preferred cost allocation tags. + type: string + last_modified_by: + description: The UUID of the user who last modified the setting. + example: user-uuid + type: string + setting_name: + description: The name of the setting. + example: preferred_tags + type: string + updated_at: + description: The timestamp when the setting was last updated. + example: "" + type: string + version: + description: The version of the setting. + example: "1" + type: string + required: + - created_at + - created_by + - description + - last_modified_by + - setting_name + - updated_at + - version + type: object + CostSettingResponse: + description: Response for a cost setting. + example: + data: + attributes: + created_at: "" + created_by: user-uuid + data: + description: User's preferred cost allocation tags. + last_modified_by: user-uuid + setting_name: preferred_tags + updated_at: "" + version: "1" + id: preferred_tags + type: setting + properties: + data: + $ref: "#/components/schemas/CostSettingData" + required: + - data + type: object + CostSettingType: + description: Cost setting resource type. + enum: + - setting + example: setting + type: string + x-enum-varnames: + - SETTING + CostTagPipelineActiveKeyAttributes: + description: Attributes for an active tag pipeline key. + properties: + rule_count: + description: The number of tag pipeline rules that set this tag key. + example: 3 + format: int64 + type: integer + required: + - rule_count + type: object + CostTagPipelineActiveKeyData: + description: Active tag key data object. + properties: + attributes: + $ref: "#/components/schemas/CostTagPipelineActiveKeyAttributes" + id: + description: The tag key name. + example: cost_center + type: string + type: + $ref: "#/components/schemas/CostTagPipelineActiveKeyType" + required: + - id + - type + - attributes + type: object + CostTagPipelineActiveKeyResponse: + description: List of tag keys actively set by tag pipeline rules. + example: + data: + - attributes: + rule_count: 3 + id: cost_center + type: active_tag_key + properties: + data: + description: List of active tag keys. + items: + $ref: "#/components/schemas/CostTagPipelineActiveKeyData" + type: array + required: + - data + type: object + CostTagPipelineActiveKeyType: + description: Active tag key resource type. + enum: + - active_tag_key + example: active_tag_key + type: string + x-enum-varnames: + - ACTIVE_TAG_KEY CoverageSummaryAttributes: description: Attributes object for code coverage summary response. properties: @@ -18348,6 +18556,57 @@ components: data: $ref: "#/components/schemas/CsmServerlessCoverageAnalysisData" type: object + CustomAllocationRuleStatusAttributes: + description: Attributes for a custom allocation rule status. + properties: + processing_status: + description: The processing status of the custom allocation rule. + example: done + type: string + required: + - processing_status + type: object + CustomAllocationRuleStatusData: + description: Custom allocation rule status data. + properties: + attributes: + $ref: "#/components/schemas/CustomAllocationRuleStatusAttributes" + id: + description: The unique identifier of the custom allocation rule. + example: "123" + type: string + type: + $ref: "#/components/schemas/CustomAllocationRuleStatusType" + required: + - id + - type + - attributes + type: object + CustomAllocationRuleStatusResponse: + description: List of custom allocation rule statuses. + example: + data: + - attributes: + processing_status: done + id: "123" + type: arbitrary_rule_status + properties: + data: + description: List of custom allocation rule statuses. + items: + $ref: "#/components/schemas/CustomAllocationRuleStatusData" + type: array + required: + - data + type: object + CustomAllocationRuleStatusType: + description: Custom allocation rule status resource type. + enum: + - arbitrary_rule_status + example: arbitrary_rule_status + type: string + x-enum-varnames: + - ARBITRARY_RULE_STATUS CustomAttributeConfig: description: The definition of `CustomAttributeConfig` object. properties: @@ -76454,6 +76713,57 @@ components: - type - id type: object + TagPipelinesRulesetStatusAttributes: + description: Attributes for a tag pipeline ruleset status. + properties: + processing_status: + description: The processing status of the ruleset. + example: pending + type: string + required: + - processing_status + type: object + TagPipelinesRulesetStatusData: + description: Tag pipeline ruleset status data. + properties: + attributes: + $ref: "#/components/schemas/TagPipelinesRulesetStatusAttributes" + id: + description: The unique identifier of the ruleset. + example: 55ef2385-9ae1-4410-90c4-5ac1b60fec10 + type: string + type: + $ref: "#/components/schemas/TagPipelinesRulesetStatusType" + required: + - id + - type + - attributes + type: object + TagPipelinesRulesetStatusResponse: + description: List of tag pipeline ruleset statuses. + example: + data: + - attributes: + processing_status: pending + id: blahblah + type: ruleset_status + properties: + data: + description: List of ruleset statuses. + items: + $ref: "#/components/schemas/TagPipelinesRulesetStatusData" + type: array + required: + - data + type: object + TagPipelinesRulesetStatusType: + description: Tag pipeline ruleset status resource type. + enum: + - ruleset_status + example: ruleset_status + type: string + x-enum-varnames: + - RULESET_STATUS TagsEventAttribute: description: Array of tags associated with your event. example: ["team:A"] @@ -94321,6 +94631,71 @@ paths: "x-permission": operator: OPEN permissions: [] + /api/v2/cost/ai/preferred_tags: + get: + description: Get the preferred cost allocation tags for AI agent use. Returns a simplified response with contextual messaging based on configuration status. + operationId: GetCostAIPreferredTags + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + message: No preferred tags are configured. + preferred_tags: [] + id: preferred_tags + type: preferred_tags + schema: + $ref: "#/components/schemas/CostAIPreferredTagsResponse" + description: OK + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cloud_cost_management_read + summary: Get preferred cost allocation tags + tags: + - Cloud Cost Management + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/cost/ai/tag_pipelines/active_keys: + get: + description: List the tag keys that are actively set by tag pipeline rules, sorted by rule count in descending order. + operationId: ListCostTagPipelineActiveKeys + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + - attributes: + rule_count: 3 + id: cost_center + type: active_tag_key + schema: + $ref: "#/components/schemas/CostTagPipelineActiveKeyResponse" + description: OK + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cloud_cost_management_read + summary: List active tag pipeline keys + tags: + - Cloud Cost Management + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). /api/v2/cost/arbitrary_rule: get: description: List all custom allocation rules - Retrieve a list of all custom allocation rules for the organization @@ -94513,6 +94888,38 @@ paths: summary: Reorder custom allocation rules tags: - Cloud Cost Management + /api/v2/cost/arbitrary_rule/status: + get: + description: List the processing status of all custom allocation rules. + operationId: ListCustomAllocationRulesStatus + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + - attributes: + processing_status: done + id: "123" + type: arbitrary_rule_status + schema: + $ref: "#/components/schemas/CustomAllocationRuleStatusResponse" + description: OK + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cloud_cost_management_read + summary: List custom allocation rule statuses + tags: + - Cloud Cost Management + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). /api/v2/cost/arbitrary_rule/{rule_id}: delete: description: Delete a custom allocation rule - Delete an existing custom allocation rule by its ID @@ -96133,6 +96540,59 @@ paths: operator: OR permissions: - cloud_cost_management_read + /api/v2/cost/settings/{setting_type}: + get: + description: Get a specific cost management setting by type. + operationId: GetCostSetting + parameters: + - $ref: "#/components/parameters/SettingType" + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + created_at: "" + created_by: user-uuid + data: + description: User's preferred cost allocation tags. + last_modified_by: user-uuid + setting_name: preferred_tags + updated_at: "" + version: "1" + id: preferred_tags + type: setting + schema: + $ref: "#/components/schemas/CostSettingResponse" + description: OK + "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_read + summary: Get cost setting + tags: + - Cloud Cost Management + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). /api/v2/cost_by_tag/active_billing_dimensions: get: description: |- @@ -140518,6 +140978,38 @@ paths: summary: Reorder tag pipeline rulesets tags: - Cloud Cost Management + /api/v2/tags/enrichment/status: + get: + description: List the processing status of all tag pipeline rulesets. + operationId: ListTagPipelinesRulesetsStatus + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + - attributes: + processing_status: pending + id: blahblah + type: ruleset_status + schema: + $ref: "#/components/schemas/TagPipelinesRulesetStatusResponse" + description: OK + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - cloud_cost_management_read + summary: List tag pipeline ruleset statuses + tags: + - Cloud Cost Management + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). /api/v2/tags/enrichment/validate-query: post: description: Validate a tag pipeline query - Validate the syntax and structure of a tag pipeline query diff --git a/docs/datadog_api_client.v2.model.rst b/docs/datadog_api_client.v2.model.rst index a897eca3b3..c8832d4de7 100644 --- a/docs/datadog_api_client.v2.model.rst +++ b/docs/datadog_api_client.v2.model.rst @@ -6143,6 +6143,34 @@ datadog\_api\_client.v2.model.cost\_aggregation\_type module :members: :show-inheritance: +datadog\_api\_client.v2.model.cost\_ai\_preferred\_tags\_attributes module +-------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.cost_ai_preferred_tags_attributes + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.cost\_ai\_preferred\_tags\_data module +-------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.cost_ai_preferred_tags_data + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.cost\_ai\_preferred\_tags\_response module +------------------------------------------------------------------------ + +.. automodule:: datadog_api_client.v2.model.cost_ai_preferred_tags_response + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.cost\_ai\_preferred\_tags\_type module +-------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.cost_ai_preferred_tags_type + :members: + :show-inheritance: + datadog\_api\_client.v2.model.cost\_attribution\_aggregates\_body module ------------------------------------------------------------------------ @@ -6192,6 +6220,62 @@ datadog\_api\_client.v2.model.cost\_by\_org\_type module :members: :show-inheritance: +datadog\_api\_client.v2.model.cost\_setting\_data module +-------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.cost_setting_data + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.cost\_setting\_data\_attributes module +-------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.cost_setting_data_attributes + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.cost\_setting\_response module +------------------------------------------------------------ + +.. automodule:: datadog_api_client.v2.model.cost_setting_response + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.cost\_setting\_type module +-------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.cost_setting_type + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.cost\_tag\_pipeline\_active\_key\_attributes module +--------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.cost_tag_pipeline_active_key_attributes + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.cost\_tag\_pipeline\_active\_key\_data module +--------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.cost_tag_pipeline_active_key_data + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.cost\_tag\_pipeline\_active\_key\_response module +------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.cost_tag_pipeline_active_key_response + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.cost\_tag\_pipeline\_active\_key\_type module +--------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.cost_tag_pipeline_active_key_type + :members: + :show-inheritance: + datadog\_api\_client.v2.model.coverage\_summary\_attributes module ------------------------------------------------------------------ @@ -7396,6 +7480,34 @@ datadog\_api\_client.v2.model.csm\_serverless\_coverage\_analysis\_response modu :members: :show-inheritance: +datadog\_api\_client.v2.model.custom\_allocation\_rule\_status\_attributes module +--------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.custom_allocation_rule_status_attributes + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.custom\_allocation\_rule\_status\_data module +--------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.custom_allocation_rule_status_data + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.custom\_allocation\_rule\_status\_response module +------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.custom_allocation_rule_status_response + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.custom\_allocation\_rule\_status\_type module +--------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.custom_allocation_rule_status_type + :members: + :show-inheritance: + datadog\_api\_client.v2.model.custom\_attribute\_config module -------------------------------------------------------------- @@ -33604,6 +33716,34 @@ datadog\_api\_client.v2.model.table\_row\_resource\_identifier module :members: :show-inheritance: +datadog\_api\_client.v2.model.tag\_pipelines\_ruleset\_status\_attributes module +-------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.tag_pipelines_ruleset_status_attributes + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.tag\_pipelines\_ruleset\_status\_data module +-------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.tag_pipelines_ruleset_status_data + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.tag\_pipelines\_ruleset\_status\_response module +------------------------------------------------------------------------------ + +.. automodule:: datadog_api_client.v2.model.tag_pipelines_ruleset_status_response + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.tag\_pipelines\_ruleset\_status\_type module +-------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.tag_pipelines_ruleset_status_type + :members: + :show-inheritance: + datadog\_api\_client.v2.model.tags\_event\_attribute module ----------------------------------------------------------- diff --git a/examples/v2/cloud-cost-management/GetCostAIPreferredTags.py b/examples/v2/cloud-cost-management/GetCostAIPreferredTags.py new file mode 100644 index 0000000000..65840686c7 --- /dev/null +++ b/examples/v2/cloud-cost-management/GetCostAIPreferredTags.py @@ -0,0 +1,14 @@ +""" +Get preferred cost allocation tags returns "OK" response +""" + +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.cloud_cost_management_api import CloudCostManagementApi + +configuration = Configuration() +configuration.unstable_operations["get_cost_ai_preferred_tags"] = True +with ApiClient(configuration) as api_client: + api_instance = CloudCostManagementApi(api_client) + response = api_instance.get_cost_ai_preferred_tags() + + print(response) diff --git a/examples/v2/cloud-cost-management/GetCostSetting.py b/examples/v2/cloud-cost-management/GetCostSetting.py new file mode 100644 index 0000000000..5357227c45 --- /dev/null +++ b/examples/v2/cloud-cost-management/GetCostSetting.py @@ -0,0 +1,16 @@ +""" +Get cost setting returns "OK" response +""" + +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.cloud_cost_management_api import CloudCostManagementApi + +configuration = Configuration() +configuration.unstable_operations["get_cost_setting"] = True +with ApiClient(configuration) as api_client: + api_instance = CloudCostManagementApi(api_client) + response = api_instance.get_cost_setting( + setting_type="setting_type", + ) + + print(response) diff --git a/examples/v2/cloud-cost-management/ListCostTagPipelineActiveKeys.py b/examples/v2/cloud-cost-management/ListCostTagPipelineActiveKeys.py new file mode 100644 index 0000000000..f1553d90f3 --- /dev/null +++ b/examples/v2/cloud-cost-management/ListCostTagPipelineActiveKeys.py @@ -0,0 +1,14 @@ +""" +List active tag pipeline keys returns "OK" response +""" + +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.cloud_cost_management_api import CloudCostManagementApi + +configuration = Configuration() +configuration.unstable_operations["list_cost_tag_pipeline_active_keys"] = True +with ApiClient(configuration) as api_client: + api_instance = CloudCostManagementApi(api_client) + response = api_instance.list_cost_tag_pipeline_active_keys() + + print(response) diff --git a/examples/v2/cloud-cost-management/ListCustomAllocationRulesStatus.py b/examples/v2/cloud-cost-management/ListCustomAllocationRulesStatus.py new file mode 100644 index 0000000000..725376d75f --- /dev/null +++ b/examples/v2/cloud-cost-management/ListCustomAllocationRulesStatus.py @@ -0,0 +1,14 @@ +""" +List custom allocation rule statuses returns "OK" response +""" + +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.cloud_cost_management_api import CloudCostManagementApi + +configuration = Configuration() +configuration.unstable_operations["list_custom_allocation_rules_status"] = True +with ApiClient(configuration) as api_client: + api_instance = CloudCostManagementApi(api_client) + response = api_instance.list_custom_allocation_rules_status() + + print(response) diff --git a/examples/v2/cloud-cost-management/ListTagPipelinesRulesetsStatus.py b/examples/v2/cloud-cost-management/ListTagPipelinesRulesetsStatus.py new file mode 100644 index 0000000000..338cfb0468 --- /dev/null +++ b/examples/v2/cloud-cost-management/ListTagPipelinesRulesetsStatus.py @@ -0,0 +1,14 @@ +""" +List tag pipeline ruleset statuses returns "OK" response +""" + +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.cloud_cost_management_api import CloudCostManagementApi + +configuration = Configuration() +configuration.unstable_operations["list_tag_pipelines_rulesets_status"] = True +with ApiClient(configuration) as api_client: + api_instance = CloudCostManagementApi(api_client) + response = api_instance.list_tag_pipelines_rulesets_status() + + print(response) diff --git a/src/datadog_api_client/configuration.py b/src/datadog_api_client/configuration.py index 6e38061ac6..16e8c9b624 100644 --- a/src/datadog_api_client/configuration.py +++ b/src/datadog_api_client/configuration.py @@ -351,6 +351,11 @@ def __init__( "v2.upsert_sync_config": False, "v2.get_code_coverage_branch_summary": False, "v2.get_code_coverage_commit_summary": False, + "v2.get_cost_ai_preferred_tags": False, + "v2.get_cost_setting": False, + "v2.list_cost_tag_pipeline_active_keys": False, + "v2.list_custom_allocation_rules_status": False, + "v2.list_tag_pipelines_rulesets_status": False, "v2.create_dashboard_secure_embed": False, "v2.delete_dashboard_secure_embed": False, "v2.get_dashboard_secure_embed": False, diff --git a/src/datadog_api_client/v2/api/cloud_cost_management_api.py b/src/datadog_api_client/v2/api/cloud_cost_management_api.py index 0e895e45a1..45cbaee8dc 100644 --- a/src/datadog_api_client/v2/api/cloud_cost_management_api.py +++ b/src/datadog_api_client/v2/api/cloud_cost_management_api.py @@ -11,10 +11,13 @@ UnsetType, unset, ) +from datadog_api_client.v2.model.cost_ai_preferred_tags_response import CostAIPreferredTagsResponse +from datadog_api_client.v2.model.cost_tag_pipeline_active_key_response import CostTagPipelineActiveKeyResponse from datadog_api_client.v2.model.arbitrary_rule_response_array import ArbitraryRuleResponseArray from datadog_api_client.v2.model.arbitrary_rule_response import ArbitraryRuleResponse from datadog_api_client.v2.model.arbitrary_cost_upsert_request import ArbitraryCostUpsertRequest from datadog_api_client.v2.model.reorder_rule_resource_array import ReorderRuleResourceArray +from datadog_api_client.v2.model.custom_allocation_rule_status_response import CustomAllocationRuleStatusResponse from datadog_api_client.v2.model.aws_cur_configs_response import AwsCURConfigsResponse from datadog_api_client.v2.model.aws_cur_config_response import AwsCurConfigResponse from datadog_api_client.v2.model.aws_cur_config_post_request import AwsCURConfigPostRequest @@ -39,10 +42,12 @@ from datadog_api_client.v2.model.gcp_uc_config_response import GcpUcConfigResponse from datadog_api_client.v2.model.gcp_usage_cost_config_patch_request import GCPUsageCostConfigPatchRequest from datadog_api_client.v2.model.oci_configs_response import OCIConfigsResponse +from datadog_api_client.v2.model.cost_setting_response import CostSettingResponse from datadog_api_client.v2.model.ruleset_resp_array import RulesetRespArray from datadog_api_client.v2.model.ruleset_resp import RulesetResp from datadog_api_client.v2.model.create_ruleset_request import CreateRulesetRequest from datadog_api_client.v2.model.reorder_ruleset_resource_array import ReorderRulesetResourceArray +from datadog_api_client.v2.model.tag_pipelines_ruleset_status_response import TagPipelinesRulesetStatusResponse from datadog_api_client.v2.model.rules_validate_query_response import RulesValidateQueryResponse from datadog_api_client.v2.model.rules_validate_query_request import RulesValidateQueryRequest from datadog_api_client.v2.model.update_ruleset_request import UpdateRulesetRequest @@ -342,6 +347,22 @@ def __init__(self, api_client=None): api_client=api_client, ) + self._get_cost_ai_preferred_tags_endpoint = _Endpoint( + settings={ + "response_type": (CostAIPreferredTagsResponse,), + "auth": ["apiKeyAuth", "appKeyAuth", "AuthZ"], + "endpoint_path": "/api/v2/cost/ai/preferred_tags", + "operation_id": "get_cost_ai_preferred_tags", + "http_method": "GET", + "version": "v2", + }, + params_map={}, + headers_map={ + "accept": ["application/json"], + }, + api_client=api_client, + ) + self._get_cost_awscur_config_endpoint = _Endpoint( settings={ "response_type": (AwsCurConfigResponse,), @@ -411,6 +432,29 @@ def __init__(self, api_client=None): api_client=api_client, ) + self._get_cost_setting_endpoint = _Endpoint( + settings={ + "response_type": (CostSettingResponse,), + "auth": ["apiKeyAuth", "appKeyAuth", "AuthZ"], + "endpoint_path": "/api/v2/cost/settings/{setting_type}", + "operation_id": "get_cost_setting", + "http_method": "GET", + "version": "v2", + }, + params_map={ + "setting_type": { + "required": True, + "openapi_types": (str,), + "attribute": "setting_type", + "location": "path", + }, + }, + headers_map={ + "accept": ["application/json"], + }, + api_client=api_client, + ) + self._get_custom_allocation_rule_endpoint = _Endpoint( settings={ "response_type": (ArbitraryRuleResponse,), @@ -560,6 +604,22 @@ def __init__(self, api_client=None): api_client=api_client, ) + self._list_cost_tag_pipeline_active_keys_endpoint = _Endpoint( + settings={ + "response_type": (CostTagPipelineActiveKeyResponse,), + "auth": ["apiKeyAuth", "appKeyAuth", "AuthZ"], + "endpoint_path": "/api/v2/cost/ai/tag_pipelines/active_keys", + "operation_id": "list_cost_tag_pipeline_active_keys", + "http_method": "GET", + "version": "v2", + }, + params_map={}, + headers_map={ + "accept": ["application/json"], + }, + api_client=api_client, + ) + self._list_custom_allocation_rules_endpoint = _Endpoint( settings={ "response_type": (ArbitraryRuleResponseArray,), @@ -576,6 +636,22 @@ def __init__(self, api_client=None): api_client=api_client, ) + self._list_custom_allocation_rules_status_endpoint = _Endpoint( + settings={ + "response_type": (CustomAllocationRuleStatusResponse,), + "auth": ["apiKeyAuth", "appKeyAuth", "AuthZ"], + "endpoint_path": "/api/v2/cost/arbitrary_rule/status", + "operation_id": "list_custom_allocation_rules_status", + "http_method": "GET", + "version": "v2", + }, + params_map={}, + headers_map={ + "accept": ["application/json"], + }, + api_client=api_client, + ) + self._list_custom_costs_files_endpoint = _Endpoint( settings={ "response_type": (CustomCostsFileListResponse,), @@ -640,6 +716,22 @@ def __init__(self, api_client=None): api_client=api_client, ) + self._list_tag_pipelines_rulesets_status_endpoint = _Endpoint( + settings={ + "response_type": (TagPipelinesRulesetStatusResponse,), + "auth": ["apiKeyAuth", "appKeyAuth", "AuthZ"], + "endpoint_path": "/api/v2/tags/enrichment/status", + "operation_id": "list_tag_pipelines_rulesets_status", + "http_method": "GET", + "version": "v2", + }, + params_map={}, + headers_map={ + "accept": ["application/json"], + }, + api_client=api_client, + ) + self._reorder_custom_allocation_rules_endpoint = _Endpoint( settings={ "response_type": None, @@ -1137,6 +1229,18 @@ def get_budget( return self._get_budget_endpoint.call_with_http_info(**kwargs) + def get_cost_ai_preferred_tags( + self, + ) -> CostAIPreferredTagsResponse: + """Get preferred cost allocation tags. + + Get the preferred cost allocation tags for AI agent use. Returns a simplified response with contextual messaging based on configuration status. + + :rtype: CostAIPreferredTagsResponse + """ + kwargs: Dict[str, Any] = {} + return self._get_cost_ai_preferred_tags_endpoint.call_with_http_info(**kwargs) + def get_cost_awscur_config( self, cloud_account_id: int, @@ -1188,6 +1292,23 @@ def get_cost_gcp_usage_cost_config( return self._get_cost_gcp_usage_cost_config_endpoint.call_with_http_info(**kwargs) + def get_cost_setting( + self, + setting_type: str, + ) -> CostSettingResponse: + """Get cost setting. + + Get a specific cost management setting by type. + + :param setting_type: The type of cost setting. + :type setting_type: str + :rtype: CostSettingResponse + """ + kwargs: Dict[str, Any] = {} + kwargs["setting_type"] = setting_type + + return self._get_cost_setting_endpoint.call_with_http_info(**kwargs) + def get_custom_allocation_rule( self, rule_id: int, @@ -1299,6 +1420,18 @@ def list_cost_oci_configs( kwargs: Dict[str, Any] = {} return self._list_cost_oci_configs_endpoint.call_with_http_info(**kwargs) + def list_cost_tag_pipeline_active_keys( + self, + ) -> CostTagPipelineActiveKeyResponse: + """List active tag pipeline keys. + + List the tag keys that are actively set by tag pipeline rules, sorted by rule count in descending order. + + :rtype: CostTagPipelineActiveKeyResponse + """ + kwargs: Dict[str, Any] = {} + return self._list_cost_tag_pipeline_active_keys_endpoint.call_with_http_info(**kwargs) + def list_custom_allocation_rules( self, ) -> ArbitraryRuleResponseArray: @@ -1311,6 +1444,18 @@ def list_custom_allocation_rules( kwargs: Dict[str, Any] = {} return self._list_custom_allocation_rules_endpoint.call_with_http_info(**kwargs) + def list_custom_allocation_rules_status( + self, + ) -> CustomAllocationRuleStatusResponse: + """List custom allocation rule statuses. + + List the processing status of all custom allocation rules. + + :rtype: CustomAllocationRuleStatusResponse + """ + kwargs: Dict[str, Any] = {} + return self._list_custom_allocation_rules_status_endpoint.call_with_http_info(**kwargs) + def list_custom_costs_files( self, *, @@ -1372,6 +1517,18 @@ def list_tag_pipelines_rulesets( kwargs: Dict[str, Any] = {} return self._list_tag_pipelines_rulesets_endpoint.call_with_http_info(**kwargs) + def list_tag_pipelines_rulesets_status( + self, + ) -> TagPipelinesRulesetStatusResponse: + """List tag pipeline ruleset statuses. + + List the processing status of all tag pipeline rulesets. + + :rtype: TagPipelinesRulesetStatusResponse + """ + kwargs: Dict[str, Any] = {} + return self._list_tag_pipelines_rulesets_status_endpoint.call_with_http_info(**kwargs) + def reorder_custom_allocation_rules( self, body: ReorderRuleResourceArray, diff --git a/src/datadog_api_client/v2/model/cost_ai_preferred_tags_attributes.py b/src/datadog_api_client/v2/model/cost_ai_preferred_tags_attributes.py new file mode 100644 index 0000000000..0e3e1e8127 --- /dev/null +++ b/src/datadog_api_client/v2/model/cost_ai_preferred_tags_attributes.py @@ -0,0 +1,40 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import List + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +class CostAIPreferredTagsAttributes(ModelNormal): + @cached_property + def openapi_types(_): + return { + "message": (str,), + "preferred_tags": ([str],), + } + + attribute_map = { + "message": "message", + "preferred_tags": "preferred_tags", + } + + def __init__(self_, message: str, preferred_tags: List[str], **kwargs): + """ + Attributes for the preferred tags response. + + :param message: A contextual message about the preferred tags configuration. + :type message: str + + :param preferred_tags: The list of preferred cost allocation tags. + :type preferred_tags: [str] + """ + super().__init__(kwargs) + + self_.message = message + self_.preferred_tags = preferred_tags diff --git a/src/datadog_api_client/v2/model/cost_ai_preferred_tags_data.py b/src/datadog_api_client/v2/model/cost_ai_preferred_tags_data.py new file mode 100644 index 0000000000..0a64e69edb --- /dev/null +++ b/src/datadog_api_client/v2/model/cost_ai_preferred_tags_data.py @@ -0,0 +1,54 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.cost_ai_preferred_tags_attributes import CostAIPreferredTagsAttributes + from datadog_api_client.v2.model.cost_ai_preferred_tags_type import CostAIPreferredTagsType + + +class CostAIPreferredTagsData(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.cost_ai_preferred_tags_attributes import CostAIPreferredTagsAttributes + from datadog_api_client.v2.model.cost_ai_preferred_tags_type import CostAIPreferredTagsType + + return { + "attributes": (CostAIPreferredTagsAttributes,), + "id": (str,), + "type": (CostAIPreferredTagsType,), + } + + attribute_map = { + "attributes": "attributes", + "id": "id", + "type": "type", + } + + def __init__(self_, attributes: CostAIPreferredTagsAttributes, id: str, type: CostAIPreferredTagsType, **kwargs): + """ + Preferred tags data object. + + :param attributes: Attributes for the preferred tags response. + :type attributes: CostAIPreferredTagsAttributes + + :param id: The unique identifier. + :type id: str + + :param type: Preferred tags resource type. + :type type: CostAIPreferredTagsType + """ + super().__init__(kwargs) + + self_.attributes = attributes + self_.id = id + self_.type = type diff --git a/src/datadog_api_client/v2/model/cost_ai_preferred_tags_response.py b/src/datadog_api_client/v2/model/cost_ai_preferred_tags_response.py new file mode 100644 index 0000000000..4cf2624295 --- /dev/null +++ b/src/datadog_api_client/v2/model/cost_ai_preferred_tags_response.py @@ -0,0 +1,40 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.cost_ai_preferred_tags_data import CostAIPreferredTagsData + + +class CostAIPreferredTagsResponse(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.cost_ai_preferred_tags_data import CostAIPreferredTagsData + + return { + "data": (CostAIPreferredTagsData,), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: CostAIPreferredTagsData, **kwargs): + """ + Response containing preferred cost allocation tags for AI agents. + + :param data: Preferred tags data object. + :type data: CostAIPreferredTagsData + """ + super().__init__(kwargs) + + self_.data = data diff --git a/src/datadog_api_client/v2/model/cost_ai_preferred_tags_type.py b/src/datadog_api_client/v2/model/cost_ai_preferred_tags_type.py new file mode 100644 index 0000000000..945790391e --- /dev/null +++ b/src/datadog_api_client/v2/model/cost_ai_preferred_tags_type.py @@ -0,0 +1,35 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class CostAIPreferredTagsType(ModelSimple): + """ + Preferred tags resource type. + + :param value: If omitted defaults to "preferred_tags". Must be one of ["preferred_tags"]. + :type value: str + """ + + allowed_values = { + "preferred_tags", + } + PREFERRED_TAGS: ClassVar["CostAIPreferredTagsType"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +CostAIPreferredTagsType.PREFERRED_TAGS = CostAIPreferredTagsType("preferred_tags") diff --git a/src/datadog_api_client/v2/model/cost_setting_data.py b/src/datadog_api_client/v2/model/cost_setting_data.py new file mode 100644 index 0000000000..9b03f5db82 --- /dev/null +++ b/src/datadog_api_client/v2/model/cost_setting_data.py @@ -0,0 +1,54 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.cost_setting_data_attributes import CostSettingDataAttributes + from datadog_api_client.v2.model.cost_setting_type import CostSettingType + + +class CostSettingData(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.cost_setting_data_attributes import CostSettingDataAttributes + from datadog_api_client.v2.model.cost_setting_type import CostSettingType + + return { + "attributes": (CostSettingDataAttributes,), + "id": (str,), + "type": (CostSettingType,), + } + + attribute_map = { + "attributes": "attributes", + "id": "id", + "type": "type", + } + + def __init__(self_, attributes: CostSettingDataAttributes, id: str, type: CostSettingType, **kwargs): + """ + Cost setting data object. + + :param attributes: Attributes for a cost setting. + :type attributes: CostSettingDataAttributes + + :param id: The unique identifier of the setting. + :type id: str + + :param type: Cost setting resource type. + :type type: CostSettingType + """ + super().__init__(kwargs) + + self_.attributes = attributes + self_.id = id + self_.type = type diff --git a/src/datadog_api_client/v2/model/cost_setting_data_attributes.py b/src/datadog_api_client/v2/model/cost_setting_data_attributes.py new file mode 100644 index 0000000000..1faa9e6171 --- /dev/null +++ b/src/datadog_api_client/v2/model/cost_setting_data_attributes.py @@ -0,0 +1,110 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Any, Dict, Union + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + date, + datetime, + none_type, + unset, + UnsetType, + UUID, +) + + +class CostSettingDataAttributes(ModelNormal): + @cached_property + def openapi_types(_): + return { + "created_at": (str,), + "created_by": (str,), + "data": ( + { + str: ( + bool, + date, + datetime, + dict, + float, + int, + list, + str, + UUID, + none_type, + ) + }, + none_type, + ), + "description": (str,), + "last_modified_by": (str,), + "setting_name": (str,), + "updated_at": (str,), + "version": (str,), + } + + attribute_map = { + "created_at": "created_at", + "created_by": "created_by", + "data": "data", + "description": "description", + "last_modified_by": "last_modified_by", + "setting_name": "setting_name", + "updated_at": "updated_at", + "version": "version", + } + + def __init__( + self_, + created_at: str, + created_by: str, + description: str, + last_modified_by: str, + setting_name: str, + updated_at: str, + version: str, + data: Union[Dict[str, Any], none_type, UnsetType] = unset, + **kwargs, + ): + """ + Attributes for a cost setting. + + :param created_at: The timestamp when the setting was created. + :type created_at: str + + :param created_by: The UUID of the user who created the setting. + :type created_by: str + + :param data: The setting data as a flexible key-value map. + :type data: {str: (bool, date, datetime, dict, float, int, list, str, UUID, none_type,)}, none_type, optional + + :param description: A human-readable description of the setting. + :type description: str + + :param last_modified_by: The UUID of the user who last modified the setting. + :type last_modified_by: str + + :param setting_name: The name of the setting. + :type setting_name: str + + :param updated_at: The timestamp when the setting was last updated. + :type updated_at: str + + :param version: The version of the setting. + :type version: str + """ + if data is not unset: + kwargs["data"] = data + super().__init__(kwargs) + + self_.created_at = created_at + self_.created_by = created_by + self_.description = description + self_.last_modified_by = last_modified_by + self_.setting_name = setting_name + self_.updated_at = updated_at + self_.version = version diff --git a/src/datadog_api_client/v2/model/cost_setting_response.py b/src/datadog_api_client/v2/model/cost_setting_response.py new file mode 100644 index 0000000000..02c7d03f47 --- /dev/null +++ b/src/datadog_api_client/v2/model/cost_setting_response.py @@ -0,0 +1,40 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.cost_setting_data import CostSettingData + + +class CostSettingResponse(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.cost_setting_data import CostSettingData + + return { + "data": (CostSettingData,), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: CostSettingData, **kwargs): + """ + Response for a cost setting. + + :param data: Cost setting data object. + :type data: CostSettingData + """ + super().__init__(kwargs) + + self_.data = data diff --git a/src/datadog_api_client/v2/model/cost_setting_type.py b/src/datadog_api_client/v2/model/cost_setting_type.py new file mode 100644 index 0000000000..2d7e5da9f7 --- /dev/null +++ b/src/datadog_api_client/v2/model/cost_setting_type.py @@ -0,0 +1,35 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class CostSettingType(ModelSimple): + """ + Cost setting resource type. + + :param value: If omitted defaults to "setting". Must be one of ["setting"]. + :type value: str + """ + + allowed_values = { + "setting", + } + SETTING: ClassVar["CostSettingType"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +CostSettingType.SETTING = CostSettingType("setting") diff --git a/src/datadog_api_client/v2/model/cost_tag_pipeline_active_key_attributes.py b/src/datadog_api_client/v2/model/cost_tag_pipeline_active_key_attributes.py new file mode 100644 index 0000000000..12d2ce5c12 --- /dev/null +++ b/src/datadog_api_client/v2/model/cost_tag_pipeline_active_key_attributes.py @@ -0,0 +1,33 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +class CostTagPipelineActiveKeyAttributes(ModelNormal): + @cached_property + def openapi_types(_): + return { + "rule_count": (int,), + } + + attribute_map = { + "rule_count": "rule_count", + } + + def __init__(self_, rule_count: int, **kwargs): + """ + Attributes for an active tag pipeline key. + + :param rule_count: The number of tag pipeline rules that set this tag key. + :type rule_count: int + """ + super().__init__(kwargs) + + self_.rule_count = rule_count diff --git a/src/datadog_api_client/v2/model/cost_tag_pipeline_active_key_data.py b/src/datadog_api_client/v2/model/cost_tag_pipeline_active_key_data.py new file mode 100644 index 0000000000..7be30c9242 --- /dev/null +++ b/src/datadog_api_client/v2/model/cost_tag_pipeline_active_key_data.py @@ -0,0 +1,58 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.cost_tag_pipeline_active_key_attributes import CostTagPipelineActiveKeyAttributes + from datadog_api_client.v2.model.cost_tag_pipeline_active_key_type import CostTagPipelineActiveKeyType + + +class CostTagPipelineActiveKeyData(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.cost_tag_pipeline_active_key_attributes import ( + CostTagPipelineActiveKeyAttributes, + ) + from datadog_api_client.v2.model.cost_tag_pipeline_active_key_type import CostTagPipelineActiveKeyType + + return { + "attributes": (CostTagPipelineActiveKeyAttributes,), + "id": (str,), + "type": (CostTagPipelineActiveKeyType,), + } + + attribute_map = { + "attributes": "attributes", + "id": "id", + "type": "type", + } + + def __init__( + self_, attributes: CostTagPipelineActiveKeyAttributes, id: str, type: CostTagPipelineActiveKeyType, **kwargs + ): + """ + Active tag key data object. + + :param attributes: Attributes for an active tag pipeline key. + :type attributes: CostTagPipelineActiveKeyAttributes + + :param id: The tag key name. + :type id: str + + :param type: Active tag key resource type. + :type type: CostTagPipelineActiveKeyType + """ + super().__init__(kwargs) + + self_.attributes = attributes + self_.id = id + self_.type = type diff --git a/src/datadog_api_client/v2/model/cost_tag_pipeline_active_key_response.py b/src/datadog_api_client/v2/model/cost_tag_pipeline_active_key_response.py new file mode 100644 index 0000000000..c3a69db1c9 --- /dev/null +++ b/src/datadog_api_client/v2/model/cost_tag_pipeline_active_key_response.py @@ -0,0 +1,40 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import List, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.cost_tag_pipeline_active_key_data import CostTagPipelineActiveKeyData + + +class CostTagPipelineActiveKeyResponse(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.cost_tag_pipeline_active_key_data import CostTagPipelineActiveKeyData + + return { + "data": ([CostTagPipelineActiveKeyData],), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: List[CostTagPipelineActiveKeyData], **kwargs): + """ + List of tag keys actively set by tag pipeline rules. + + :param data: List of active tag keys. + :type data: [CostTagPipelineActiveKeyData] + """ + super().__init__(kwargs) + + self_.data = data diff --git a/src/datadog_api_client/v2/model/cost_tag_pipeline_active_key_type.py b/src/datadog_api_client/v2/model/cost_tag_pipeline_active_key_type.py new file mode 100644 index 0000000000..57a1198560 --- /dev/null +++ b/src/datadog_api_client/v2/model/cost_tag_pipeline_active_key_type.py @@ -0,0 +1,35 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class CostTagPipelineActiveKeyType(ModelSimple): + """ + Active tag key resource type. + + :param value: If omitted defaults to "active_tag_key". Must be one of ["active_tag_key"]. + :type value: str + """ + + allowed_values = { + "active_tag_key", + } + ACTIVE_TAG_KEY: ClassVar["CostTagPipelineActiveKeyType"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +CostTagPipelineActiveKeyType.ACTIVE_TAG_KEY = CostTagPipelineActiveKeyType("active_tag_key") diff --git a/src/datadog_api_client/v2/model/custom_allocation_rule_status_attributes.py b/src/datadog_api_client/v2/model/custom_allocation_rule_status_attributes.py new file mode 100644 index 0000000000..007a0bf202 --- /dev/null +++ b/src/datadog_api_client/v2/model/custom_allocation_rule_status_attributes.py @@ -0,0 +1,33 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +class CustomAllocationRuleStatusAttributes(ModelNormal): + @cached_property + def openapi_types(_): + return { + "processing_status": (str,), + } + + attribute_map = { + "processing_status": "processing_status", + } + + def __init__(self_, processing_status: str, **kwargs): + """ + Attributes for a custom allocation rule status. + + :param processing_status: The processing status of the custom allocation rule. + :type processing_status: str + """ + super().__init__(kwargs) + + self_.processing_status = processing_status diff --git a/src/datadog_api_client/v2/model/custom_allocation_rule_status_data.py b/src/datadog_api_client/v2/model/custom_allocation_rule_status_data.py new file mode 100644 index 0000000000..4adb9c3ada --- /dev/null +++ b/src/datadog_api_client/v2/model/custom_allocation_rule_status_data.py @@ -0,0 +1,60 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.custom_allocation_rule_status_attributes import ( + CustomAllocationRuleStatusAttributes, + ) + from datadog_api_client.v2.model.custom_allocation_rule_status_type import CustomAllocationRuleStatusType + + +class CustomAllocationRuleStatusData(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.custom_allocation_rule_status_attributes import ( + CustomAllocationRuleStatusAttributes, + ) + from datadog_api_client.v2.model.custom_allocation_rule_status_type import CustomAllocationRuleStatusType + + return { + "attributes": (CustomAllocationRuleStatusAttributes,), + "id": (str,), + "type": (CustomAllocationRuleStatusType,), + } + + attribute_map = { + "attributes": "attributes", + "id": "id", + "type": "type", + } + + def __init__( + self_, attributes: CustomAllocationRuleStatusAttributes, id: str, type: CustomAllocationRuleStatusType, **kwargs + ): + """ + Custom allocation rule status data. + + :param attributes: Attributes for a custom allocation rule status. + :type attributes: CustomAllocationRuleStatusAttributes + + :param id: The unique identifier of the custom allocation rule. + :type id: str + + :param type: Custom allocation rule status resource type. + :type type: CustomAllocationRuleStatusType + """ + super().__init__(kwargs) + + self_.attributes = attributes + self_.id = id + self_.type = type diff --git a/src/datadog_api_client/v2/model/custom_allocation_rule_status_response.py b/src/datadog_api_client/v2/model/custom_allocation_rule_status_response.py new file mode 100644 index 0000000000..15c155044c --- /dev/null +++ b/src/datadog_api_client/v2/model/custom_allocation_rule_status_response.py @@ -0,0 +1,40 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import List, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.custom_allocation_rule_status_data import CustomAllocationRuleStatusData + + +class CustomAllocationRuleStatusResponse(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.custom_allocation_rule_status_data import CustomAllocationRuleStatusData + + return { + "data": ([CustomAllocationRuleStatusData],), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: List[CustomAllocationRuleStatusData], **kwargs): + """ + List of custom allocation rule statuses. + + :param data: List of custom allocation rule statuses. + :type data: [CustomAllocationRuleStatusData] + """ + super().__init__(kwargs) + + self_.data = data diff --git a/src/datadog_api_client/v2/model/custom_allocation_rule_status_type.py b/src/datadog_api_client/v2/model/custom_allocation_rule_status_type.py new file mode 100644 index 0000000000..fa321bb151 --- /dev/null +++ b/src/datadog_api_client/v2/model/custom_allocation_rule_status_type.py @@ -0,0 +1,35 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class CustomAllocationRuleStatusType(ModelSimple): + """ + Custom allocation rule status resource type. + + :param value: If omitted defaults to "arbitrary_rule_status". Must be one of ["arbitrary_rule_status"]. + :type value: str + """ + + allowed_values = { + "arbitrary_rule_status", + } + ARBITRARY_RULE_STATUS: ClassVar["CustomAllocationRuleStatusType"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +CustomAllocationRuleStatusType.ARBITRARY_RULE_STATUS = CustomAllocationRuleStatusType("arbitrary_rule_status") diff --git a/src/datadog_api_client/v2/model/tag_pipelines_ruleset_status_attributes.py b/src/datadog_api_client/v2/model/tag_pipelines_ruleset_status_attributes.py new file mode 100644 index 0000000000..2994a72f39 --- /dev/null +++ b/src/datadog_api_client/v2/model/tag_pipelines_ruleset_status_attributes.py @@ -0,0 +1,33 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +class TagPipelinesRulesetStatusAttributes(ModelNormal): + @cached_property + def openapi_types(_): + return { + "processing_status": (str,), + } + + attribute_map = { + "processing_status": "processing_status", + } + + def __init__(self_, processing_status: str, **kwargs): + """ + Attributes for a tag pipeline ruleset status. + + :param processing_status: The processing status of the ruleset. + :type processing_status: str + """ + super().__init__(kwargs) + + self_.processing_status = processing_status diff --git a/src/datadog_api_client/v2/model/tag_pipelines_ruleset_status_data.py b/src/datadog_api_client/v2/model/tag_pipelines_ruleset_status_data.py new file mode 100644 index 0000000000..2095a6e2a1 --- /dev/null +++ b/src/datadog_api_client/v2/model/tag_pipelines_ruleset_status_data.py @@ -0,0 +1,58 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.tag_pipelines_ruleset_status_attributes import TagPipelinesRulesetStatusAttributes + from datadog_api_client.v2.model.tag_pipelines_ruleset_status_type import TagPipelinesRulesetStatusType + + +class TagPipelinesRulesetStatusData(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.tag_pipelines_ruleset_status_attributes import ( + TagPipelinesRulesetStatusAttributes, + ) + from datadog_api_client.v2.model.tag_pipelines_ruleset_status_type import TagPipelinesRulesetStatusType + + return { + "attributes": (TagPipelinesRulesetStatusAttributes,), + "id": (str,), + "type": (TagPipelinesRulesetStatusType,), + } + + attribute_map = { + "attributes": "attributes", + "id": "id", + "type": "type", + } + + def __init__( + self_, attributes: TagPipelinesRulesetStatusAttributes, id: str, type: TagPipelinesRulesetStatusType, **kwargs + ): + """ + Tag pipeline ruleset status data. + + :param attributes: Attributes for a tag pipeline ruleset status. + :type attributes: TagPipelinesRulesetStatusAttributes + + :param id: The unique identifier of the ruleset. + :type id: str + + :param type: Tag pipeline ruleset status resource type. + :type type: TagPipelinesRulesetStatusType + """ + super().__init__(kwargs) + + self_.attributes = attributes + self_.id = id + self_.type = type diff --git a/src/datadog_api_client/v2/model/tag_pipelines_ruleset_status_response.py b/src/datadog_api_client/v2/model/tag_pipelines_ruleset_status_response.py new file mode 100644 index 0000000000..7953407ef8 --- /dev/null +++ b/src/datadog_api_client/v2/model/tag_pipelines_ruleset_status_response.py @@ -0,0 +1,40 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import List, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.tag_pipelines_ruleset_status_data import TagPipelinesRulesetStatusData + + +class TagPipelinesRulesetStatusResponse(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.tag_pipelines_ruleset_status_data import TagPipelinesRulesetStatusData + + return { + "data": ([TagPipelinesRulesetStatusData],), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: List[TagPipelinesRulesetStatusData], **kwargs): + """ + List of tag pipeline ruleset statuses. + + :param data: List of ruleset statuses. + :type data: [TagPipelinesRulesetStatusData] + """ + super().__init__(kwargs) + + self_.data = data diff --git a/src/datadog_api_client/v2/model/tag_pipelines_ruleset_status_type.py b/src/datadog_api_client/v2/model/tag_pipelines_ruleset_status_type.py new file mode 100644 index 0000000000..5856860184 --- /dev/null +++ b/src/datadog_api_client/v2/model/tag_pipelines_ruleset_status_type.py @@ -0,0 +1,35 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class TagPipelinesRulesetStatusType(ModelSimple): + """ + Tag pipeline ruleset status resource type. + + :param value: If omitted defaults to "ruleset_status". Must be one of ["ruleset_status"]. + :type value: str + """ + + allowed_values = { + "ruleset_status", + } + RULESET_STATUS: ClassVar["TagPipelinesRulesetStatusType"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +TagPipelinesRulesetStatusType.RULESET_STATUS = TagPipelinesRulesetStatusType("ruleset_status") diff --git a/src/datadog_api_client/v2/models/__init__.py b/src/datadog_api_client/v2/models/__init__.py index f1cb60da57..1a0ad6a689 100644 --- a/src/datadog_api_client/v2/models/__init__.py +++ b/src/datadog_api_client/v2/models/__init__.py @@ -1157,6 +1157,10 @@ from datadog_api_client.v2.model.convert_job_results_to_signals_data import ConvertJobResultsToSignalsData from datadog_api_client.v2.model.convert_job_results_to_signals_data_type import ConvertJobResultsToSignalsDataType from datadog_api_client.v2.model.convert_job_results_to_signals_request import ConvertJobResultsToSignalsRequest +from datadog_api_client.v2.model.cost_ai_preferred_tags_attributes import CostAIPreferredTagsAttributes +from datadog_api_client.v2.model.cost_ai_preferred_tags_data import CostAIPreferredTagsData +from datadog_api_client.v2.model.cost_ai_preferred_tags_response import CostAIPreferredTagsResponse +from datadog_api_client.v2.model.cost_ai_preferred_tags_type import CostAIPreferredTagsType from datadog_api_client.v2.model.cost_aggregation_type import CostAggregationType from datadog_api_client.v2.model.cost_attribution_aggregates_body import CostAttributionAggregatesBody from datadog_api_client.v2.model.cost_attribution_tag_names import CostAttributionTagNames @@ -1165,6 +1169,14 @@ from datadog_api_client.v2.model.cost_by_org_attributes import CostByOrgAttributes from datadog_api_client.v2.model.cost_by_org_response import CostByOrgResponse from datadog_api_client.v2.model.cost_by_org_type import CostByOrgType +from datadog_api_client.v2.model.cost_setting_data import CostSettingData +from datadog_api_client.v2.model.cost_setting_data_attributes import CostSettingDataAttributes +from datadog_api_client.v2.model.cost_setting_response import CostSettingResponse +from datadog_api_client.v2.model.cost_setting_type import CostSettingType +from datadog_api_client.v2.model.cost_tag_pipeline_active_key_attributes import CostTagPipelineActiveKeyAttributes +from datadog_api_client.v2.model.cost_tag_pipeline_active_key_data import CostTagPipelineActiveKeyData +from datadog_api_client.v2.model.cost_tag_pipeline_active_key_response import CostTagPipelineActiveKeyResponse +from datadog_api_client.v2.model.cost_tag_pipeline_active_key_type import CostTagPipelineActiveKeyType from datadog_api_client.v2.model.coverage_summary_attributes import CoverageSummaryAttributes from datadog_api_client.v2.model.coverage_summary_codeowner_stats import CoverageSummaryCodeownerStats from datadog_api_client.v2.model.coverage_summary_data import CoverageSummaryData @@ -1435,6 +1447,10 @@ ) from datadog_api_client.v2.model.csm_serverless_coverage_analysis_data import CsmServerlessCoverageAnalysisData from datadog_api_client.v2.model.csm_serverless_coverage_analysis_response import CsmServerlessCoverageAnalysisResponse +from datadog_api_client.v2.model.custom_allocation_rule_status_attributes import CustomAllocationRuleStatusAttributes +from datadog_api_client.v2.model.custom_allocation_rule_status_data import CustomAllocationRuleStatusData +from datadog_api_client.v2.model.custom_allocation_rule_status_response import CustomAllocationRuleStatusResponse +from datadog_api_client.v2.model.custom_allocation_rule_status_type import CustomAllocationRuleStatusType from datadog_api_client.v2.model.custom_attribute_config import CustomAttributeConfig from datadog_api_client.v2.model.custom_attribute_config_attributes_create import CustomAttributeConfigAttributesCreate from datadog_api_client.v2.model.custom_attribute_config_create import CustomAttributeConfigCreate @@ -6855,6 +6871,10 @@ from datadog_api_client.v2.model.table_row_resource_data_attributes import TableRowResourceDataAttributes from datadog_api_client.v2.model.table_row_resource_data_type import TableRowResourceDataType from datadog_api_client.v2.model.table_row_resource_identifier import TableRowResourceIdentifier +from datadog_api_client.v2.model.tag_pipelines_ruleset_status_attributes import TagPipelinesRulesetStatusAttributes +from datadog_api_client.v2.model.tag_pipelines_ruleset_status_data import TagPipelinesRulesetStatusData +from datadog_api_client.v2.model.tag_pipelines_ruleset_status_response import TagPipelinesRulesetStatusResponse +from datadog_api_client.v2.model.tag_pipelines_ruleset_status_type import TagPipelinesRulesetStatusType from datadog_api_client.v2.model.tags_event_attribute import TagsEventAttribute from datadog_api_client.v2.model.targeting_rule import TargetingRule from datadog_api_client.v2.model.targeting_rule_request import TargetingRuleRequest @@ -8375,6 +8395,10 @@ "ConvertJobResultsToSignalsData", "ConvertJobResultsToSignalsDataType", "ConvertJobResultsToSignalsRequest", + "CostAIPreferredTagsAttributes", + "CostAIPreferredTagsData", + "CostAIPreferredTagsResponse", + "CostAIPreferredTagsType", "CostAggregationType", "CostAttributionAggregatesBody", "CostAttributionTagNames", @@ -8383,6 +8407,14 @@ "CostByOrgAttributes", "CostByOrgResponse", "CostByOrgType", + "CostSettingData", + "CostSettingDataAttributes", + "CostSettingResponse", + "CostSettingType", + "CostTagPipelineActiveKeyAttributes", + "CostTagPipelineActiveKeyData", + "CostTagPipelineActiveKeyResponse", + "CostTagPipelineActiveKeyType", "CoverageSummaryAttributes", "CoverageSummaryCodeownerStats", "CoverageSummaryData", @@ -8553,6 +8585,10 @@ "CsmServerlessCoverageAnalysisAttributes", "CsmServerlessCoverageAnalysisData", "CsmServerlessCoverageAnalysisResponse", + "CustomAllocationRuleStatusAttributes", + "CustomAllocationRuleStatusData", + "CustomAllocationRuleStatusResponse", + "CustomAllocationRuleStatusType", "CustomAttributeConfig", "CustomAttributeConfigAttributesCreate", "CustomAttributeConfigCreate", @@ -12305,6 +12341,10 @@ "TableRowResourceDataAttributes", "TableRowResourceDataType", "TableRowResourceIdentifier", + "TagPipelinesRulesetStatusAttributes", + "TagPipelinesRulesetStatusData", + "TagPipelinesRulesetStatusResponse", + "TagPipelinesRulesetStatusType", "TagsEventAttribute", "TargetingRule", "TargetingRuleRequest", diff --git a/tests/v2/features/cloud_cost_management.feature b/tests/v2/features/cloud_cost_management.feature index c5fc0adc05..49cde4dfa2 100644 --- a/tests/v2/features/cloud_cost_management.feature +++ b/tests/v2/features/cloud_cost_management.feature @@ -292,6 +292,30 @@ Feature: Cloud Cost Management And the response "data.attributes.configs[0].dataset_type" is equal to "amortized" And the response "data.attributes.configs[1].dataset_type" is equal to "actual" + @generated @skip @team:DataDog/cloud-cost-management + Scenario: Get cost setting returns "Bad Request" response + Given operation "GetCostSetting" enabled + And new "GetCostSetting" request + And request contains "setting_type" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/cloud-cost-management + Scenario: Get cost setting returns "Not Found" response + Given operation "GetCostSetting" enabled + And new "GetCostSetting" request + And request contains "setting_type" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/cloud-cost-management + Scenario: Get cost setting returns "OK" response + Given operation "GetCostSetting" enabled + And new "GetCostSetting" request + And request contains "setting_type" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 200 OK + @replay-only @team:DataDog/cloud-cost-management Scenario: Get custom allocation rule returns "OK" response Given new "GetCustomAllocationRule" request @@ -299,6 +323,13 @@ Feature: Cloud Cost Management When the request is sent Then the response status is 200 OK + @generated @skip @team:DataDog/cloud-cost-management + Scenario: Get preferred cost allocation tags returns "OK" response + Given operation "GetCostAIPreferredTags" enabled + And new "GetCostAIPreferredTags" request + When the request is sent + Then the response status is 200 OK + @replay-only @team:DataDog/cloud-cost-management Scenario: List Cloud Cost Management AWS CUR configs returns "OK" response Given new "ListCostAWSCURConfigs" request @@ -345,12 +376,26 @@ Feature: Cloud Cost Management When the request is sent Then the response status is 200 OK + @generated @skip @team:DataDog/cloud-cost-management + Scenario: List active tag pipeline keys returns "OK" response + Given operation "ListCostTagPipelineActiveKeys" enabled + And new "ListCostTagPipelineActiveKeys" request + When the request is sent + Then the response status is 200 OK + @team:DataDog/cloud-cost-management Scenario: List budgets returns "OK" response Given new "ListBudgets" request When the request is sent Then the response status is 200 OK + @generated @skip @team:DataDog/cloud-cost-management + Scenario: List custom allocation rule statuses returns "OK" response + Given operation "ListCustomAllocationRulesStatus" enabled + And new "ListCustomAllocationRulesStatus" request + When the request is sent + Then the response status is 200 OK + @replay-only @team:DataDog/cloud-cost-management Scenario: List custom allocation rules returns "OK" response Given new "ListCustomAllocationRules" request @@ -358,6 +403,13 @@ Feature: Cloud Cost Management Then the response status is 200 OK And the response "data[0].attributes.rule_name" is equal to "example-arbitrary-cost-rule" + @generated @skip @team:DataDog/cloud-cost-management + Scenario: List tag pipeline ruleset statuses returns "OK" response + Given operation "ListTagPipelinesRulesetsStatus" enabled + And new "ListTagPipelinesRulesetsStatus" request + When the request is sent + Then the response status is 200 OK + @replay-only @team:DataDog/cloud-cost-management Scenario: List tag pipeline rulesets returns "OK" response Given new "ListTagPipelinesRulesets" request diff --git a/tests/v2/features/undo.json b/tests/v2/features/undo.json index d5a8323e27..b1a5715ec6 100644 --- a/tests/v2/features/undo.json +++ b/tests/v2/features/undo.json @@ -1265,6 +1265,18 @@ "type": "safe" } }, + "GetCostAIPreferredTags": { + "tag": "Cloud Cost Management", + "undo": { + "type": "safe" + } + }, + "ListCostTagPipelineActiveKeys": { + "tag": "Cloud Cost Management", + "undo": { + "type": "safe" + } + }, "ListCustomAllocationRules": { "tag": "Cloud Cost Management", "undo": { @@ -1283,6 +1295,12 @@ "type": "idempotent" } }, + "ListCustomAllocationRulesStatus": { + "tag": "Cloud Cost Management", + "undo": { + "type": "safe" + } + }, "DeleteCustomAllocationRule": { "tag": "Cloud Cost Management", "undo": { @@ -1464,6 +1482,12 @@ "type": "safe" } }, + "GetCostSetting": { + "tag": "Cloud Cost Management", + "undo": { + "type": "safe" + } + }, "GetActiveBillingDimensions": { "tag": "Usage Metering", "undo": { @@ -6697,6 +6721,12 @@ "type": "idempotent" } }, + "ListTagPipelinesRulesetsStatus": { + "tag": "Cloud Cost Management", + "undo": { + "type": "safe" + } + }, "ValidateQuery": { "tag": "Cloud Cost Management", "undo": {