diff --git a/.apigentools-info b/.apigentools-info index 80a7d5f79b..b6a45ccfd7 100644 --- a/.apigentools-info +++ b/.apigentools-info @@ -4,13 +4,13 @@ "spec_versions": { "v1": { "apigentools_version": "1.6.6", - "regenerated": "2024-09-18 14:45:15.242991", - "spec_repo_commit": "bae57ce1" + "regenerated": "2024-09-18 15:50:00.894907", + "spec_repo_commit": "c4c9bbbf" }, "v2": { "apigentools_version": "1.6.6", - "regenerated": "2024-09-18 14:45:15.259945", - "spec_repo_commit": "bae57ce1" + "regenerated": "2024-09-18 15:50:00.912494", + "spec_repo_commit": "c4c9bbbf" } } } \ No newline at end of file diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 1bb007d88c..3817a00d58 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -2175,6 +2175,73 @@ components: - storage_account - storage_container type: object + BillingDimensionsMappingBody: + description: Billing dimensions mapping data. + items: + $ref: '#/components/schemas/BillingDimensionsMappingBodyItem' + type: array + BillingDimensionsMappingBodyItem: + description: The definition of `BillingDimensionsMappingBodyItem` object. + properties: + attributes: + $ref: '#/components/schemas/BillingDimensionsMappingBodyItemAttributes' + id: + description: ID of the billing dimension. + type: string + type: + $ref: '#/components/schemas/ActiveBillingDimensionsType' + type: object + BillingDimensionsMappingBodyItemAttributes: + description: Mapping of billing dimensions to endpoint keys. + properties: + endpoints: + description: List of supported endpoints with their keys mapped to the billing_dimension. + items: + $ref: '#/components/schemas/BillingDimensionsMappingBodyItemAttributesEndpointsItems' + type: array + in_app_label: + description: Label used for the billing dimension in the Plan & Usage charts. + example: APM Hosts + type: string + timestamp: + description: 'Month in ISO-8601 format, UTC, precise to second: `[YYYY-MM-DDThh:mm:ss]`.' + format: date-time + type: string + type: object + BillingDimensionsMappingBodyItemAttributesEndpointsItems: + description: An endpoint's keys mapped to the billing_dimension. + properties: + id: + description: The URL for the endpoint. + example: api/v1/usage/billable-summary + type: string + keys: + description: The billing dimension. + example: + - apm_host_top99p + - apm_host_sum + items: + example: apm_host_top99p + type: string + type: array + status: + $ref: '#/components/schemas/BillingDimensionsMappingBodyItemAttributesEndpointsItemsStatus' + type: object + BillingDimensionsMappingBodyItemAttributesEndpointsItemsStatus: + description: Denotes whether or not mapping keys were available for this endpoint. + enum: + - OK + - NOT_FOUND + type: string + x-enum-varnames: + - OK + - NOT_FOUND + BillingDimensionsMappingResponse: + description: Billing dimensions mapping response. + properties: + data: + $ref: '#/components/schemas/BillingDimensionsMappingBody' + type: object BulkMuteFindingsRequest: description: The new bulk mute finding request. properties: @@ -38471,6 +38538,68 @@ paths: summary: Get hourly usage for application security tags: - Usage Metering + /api/v2/usage/billing_dimension_mapping: + get: + description: 'Get a mapping of billing dimensions to the corresponding keys + for the supported usage metering public API endpoints. + + + This endpoint is only accessible for [parent-level organizations](https://docs.datadoghq.com/account_management/multi_organization/).' + operationId: GetBillingDimensionMapping + parameters: + - description: Datetime in ISO-8601 format, UTC, for mappings beginning this + month. Defaults to the current month. + in: query + name: filter[month] + required: false + schema: + format: date-time + type: string + - description: String to specify whether to retrieve active billing dimension + mappings for the contract or all available mappings. Allowed views are `active` + and `all`. Defaults to `active`. + in: query + name: filter[view] + required: false + schema: + default: active + type: string + responses: + '200': + content: + application/json;datetime-format=rfc3339: + schema: + $ref: '#/components/schemas/BillingDimensionsMappingResponse' + description: OK + '400': + content: + application/json;datetime-format=rfc3339: + schema: + $ref: '#/components/schemas/APIErrorResponse' + description: Bad Request + '403': + content: + application/json;datetime-format=rfc3339: + schema: + $ref: '#/components/schemas/APIErrorResponse' + description: Forbidden - User is not authorized + '429': + content: + application/json;datetime-format=rfc3339: + schema: + $ref: '#/components/schemas/APIErrorResponse' + description: Too many requests + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - usage_read + summary: Get billing dimension mapping for usage endpoints + tags: + - Usage Metering + x-unstable: '**Note**: This endpoint is in public beta. + + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' /api/v2/usage/cost_by_org: get: deprecated: true diff --git a/docs/datadog_api_client.v2.model.rst b/docs/datadog_api_client.v2.model.rst index 4cd0f78081..c95385ad11 100644 --- a/docs/datadog_api_client.v2.model.rst +++ b/docs/datadog_api_client.v2.model.rst @@ -725,6 +725,41 @@ datadog\_api\_client.v2.model.bill\_config module :members: :show-inheritance: +datadog\_api\_client.v2.model.billing\_dimensions\_mapping\_body\_item module +----------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.billing_dimensions_mapping_body_item + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.billing\_dimensions\_mapping\_body\_item\_attributes module +----------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.billing_dimensions_mapping_body_item_attributes + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.billing\_dimensions\_mapping\_body\_item\_attributes\_endpoints\_items module +----------------------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.billing_dimensions_mapping_body_item_attributes_endpoints_items + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.billing\_dimensions\_mapping\_body\_item\_attributes\_endpoints\_items\_status module +------------------------------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.billing_dimensions_mapping_body_item_attributes_endpoints_items_status + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.billing\_dimensions\_mapping\_response module +--------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.billing_dimensions_mapping_response + :members: + :show-inheritance: + datadog\_api\_client.v2.model.bulk\_mute\_findings\_request module ------------------------------------------------------------------ diff --git a/examples/v2/usage-metering/GetBillingDimensionMapping.py b/examples/v2/usage-metering/GetBillingDimensionMapping.py new file mode 100644 index 0000000000..96dc75a9a9 --- /dev/null +++ b/examples/v2/usage-metering/GetBillingDimensionMapping.py @@ -0,0 +1,14 @@ +""" +Get billing dimension mapping for usage endpoints returns "OK" response +""" + +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.usage_metering_api import UsageMeteringApi + +configuration = Configuration() +configuration.unstable_operations["get_billing_dimension_mapping"] = True +with ApiClient(configuration) as api_client: + api_instance = UsageMeteringApi(api_client) + response = api_instance.get_billing_dimension_mapping() + + print(response) diff --git a/src/datadog_api_client/configuration.py b/src/datadog_api_client/configuration.py index b56efd790d..91423292e8 100644 --- a/src/datadog_api_client/configuration.py +++ b/src/datadog_api_client/configuration.py @@ -242,6 +242,7 @@ def __init__( "v2.list_apis": False, "v2.update_open_api": False, "v2.get_active_billing_dimensions": False, + "v2.get_billing_dimension_mapping": False, "v2.get_monthly_cost_attribution": False, "v2.create_dora_deployment": False, "v2.create_dora_incident": False, diff --git a/src/datadog_api_client/v2/api/usage_metering_api.py b/src/datadog_api_client/v2/api/usage_metering_api.py index 8e9256819f..e3351dc62c 100644 --- a/src/datadog_api_client/v2/api/usage_metering_api.py +++ b/src/datadog_api_client/v2/api/usage_metering_api.py @@ -19,6 +19,7 @@ from datadog_api_client.v2.model.usage_application_security_monitoring_response import ( UsageApplicationSecurityMonitoringResponse, ) +from datadog_api_client.v2.model.billing_dimensions_mapping_response import BillingDimensionsMappingResponse from datadog_api_client.v2.model.cost_by_org_response import CostByOrgResponse from datadog_api_client.v2.model.hourly_usage_response import HourlyUsageResponse from datadog_api_client.v2.model.usage_lambda_traced_invocations_response import UsageLambdaTracedInvocationsResponse @@ -61,6 +62,33 @@ def __init__(self, api_client=None): api_client=api_client, ) + self._get_billing_dimension_mapping_endpoint = _Endpoint( + settings={ + "response_type": (BillingDimensionsMappingResponse,), + "auth": ["apiKeyAuth", "appKeyAuth", "AuthZ"], + "endpoint_path": "/api/v2/usage/billing_dimension_mapping", + "operation_id": "get_billing_dimension_mapping", + "http_method": "GET", + "version": "v2", + }, + params_map={ + "filter_month": { + "openapi_types": (datetime,), + "attribute": "filter[month]", + "location": "query", + }, + "filter_view": { + "openapi_types": (str,), + "attribute": "filter[view]", + "location": "query", + }, + }, + headers_map={ + "accept": ["application/json;datetime-format=rfc3339"], + }, + api_client=api_client, + ) + self._get_cost_by_org_endpoint = _Endpoint( settings={ "response_type": (CostByOrgResponse,), @@ -425,6 +453,33 @@ def get_active_billing_dimensions( kwargs: Dict[str, Any] = {} return self._get_active_billing_dimensions_endpoint.call_with_http_info(**kwargs) + def get_billing_dimension_mapping( + self, + *, + filter_month: Union[datetime, UnsetType] = unset, + filter_view: Union[str, UnsetType] = unset, + ) -> BillingDimensionsMappingResponse: + """Get billing dimension mapping for usage endpoints. + + Get a mapping of billing dimensions to the corresponding keys for the supported usage metering public API endpoints. + + This endpoint is only accessible for `parent-level organizations `_. + + :param filter_month: Datetime in ISO-8601 format, UTC, for mappings beginning this month. Defaults to the current month. + :type filter_month: datetime, optional + :param filter_view: String to specify whether to retrieve active billing dimension mappings for the contract or all available mappings. Allowed views are ``active`` and ``all``. Defaults to ``active``. + :type filter_view: str, optional + :rtype: BillingDimensionsMappingResponse + """ + kwargs: Dict[str, Any] = {} + if filter_month is not unset: + kwargs["filter_month"] = filter_month + + if filter_view is not unset: + kwargs["filter_view"] = filter_view + + return self._get_billing_dimension_mapping_endpoint.call_with_http_info(**kwargs) + def get_cost_by_org( self, start_month: datetime, diff --git a/src/datadog_api_client/v2/model/billing_dimensions_mapping_body_item.py b/src/datadog_api_client/v2/model/billing_dimensions_mapping_body_item.py new file mode 100644 index 0000000000..3c4fdf451a --- /dev/null +++ b/src/datadog_api_client/v2/model/billing_dimensions_mapping_body_item.py @@ -0,0 +1,68 @@ +# 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 Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.billing_dimensions_mapping_body_item_attributes import ( + BillingDimensionsMappingBodyItemAttributes, + ) + from datadog_api_client.v2.model.active_billing_dimensions_type import ActiveBillingDimensionsType + + +class BillingDimensionsMappingBodyItem(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.billing_dimensions_mapping_body_item_attributes import ( + BillingDimensionsMappingBodyItemAttributes, + ) + from datadog_api_client.v2.model.active_billing_dimensions_type import ActiveBillingDimensionsType + + return { + "attributes": (BillingDimensionsMappingBodyItemAttributes,), + "id": (str,), + "type": (ActiveBillingDimensionsType,), + } + + attribute_map = { + "attributes": "attributes", + "id": "id", + "type": "type", + } + + def __init__( + self_, + attributes: Union[BillingDimensionsMappingBodyItemAttributes, UnsetType] = unset, + id: Union[str, UnsetType] = unset, + type: Union[ActiveBillingDimensionsType, UnsetType] = unset, + **kwargs, + ): + """ + The definition of ``BillingDimensionsMappingBodyItem`` object. + + :param attributes: Mapping of billing dimensions to endpoint keys. + :type attributes: BillingDimensionsMappingBodyItemAttributes, optional + + :param id: ID of the billing dimension. + :type id: str, optional + + :param type: Type of active billing dimensions data. + :type type: ActiveBillingDimensionsType, optional + """ + if attributes is not unset: + kwargs["attributes"] = attributes + if id is not unset: + kwargs["id"] = id + if type is not unset: + kwargs["type"] = type + super().__init__(kwargs) diff --git a/src/datadog_api_client/v2/model/billing_dimensions_mapping_body_item_attributes.py b/src/datadog_api_client/v2/model/billing_dimensions_mapping_body_item_attributes.py new file mode 100644 index 0000000000..4618a527d8 --- /dev/null +++ b/src/datadog_api_client/v2/model/billing_dimensions_mapping_body_item_attributes.py @@ -0,0 +1,67 @@ +# 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, Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + datetime, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.billing_dimensions_mapping_body_item_attributes_endpoints_items import ( + BillingDimensionsMappingBodyItemAttributesEndpointsItems, + ) + + +class BillingDimensionsMappingBodyItemAttributes(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.billing_dimensions_mapping_body_item_attributes_endpoints_items import ( + BillingDimensionsMappingBodyItemAttributesEndpointsItems, + ) + + return { + "endpoints": ([BillingDimensionsMappingBodyItemAttributesEndpointsItems],), + "in_app_label": (str,), + "timestamp": (datetime,), + } + + attribute_map = { + "endpoints": "endpoints", + "in_app_label": "in_app_label", + "timestamp": "timestamp", + } + + def __init__( + self_, + endpoints: Union[List[BillingDimensionsMappingBodyItemAttributesEndpointsItems], UnsetType] = unset, + in_app_label: Union[str, UnsetType] = unset, + timestamp: Union[datetime, UnsetType] = unset, + **kwargs, + ): + """ + Mapping of billing dimensions to endpoint keys. + + :param endpoints: List of supported endpoints with their keys mapped to the billing_dimension. + :type endpoints: [BillingDimensionsMappingBodyItemAttributesEndpointsItems], optional + + :param in_app_label: Label used for the billing dimension in the Plan & Usage charts. + :type in_app_label: str, optional + + :param timestamp: Month in ISO-8601 format, UTC, precise to second: ``[YYYY-MM-DDThh:mm:ss]``. + :type timestamp: datetime, optional + """ + if endpoints is not unset: + kwargs["endpoints"] = endpoints + if in_app_label is not unset: + kwargs["in_app_label"] = in_app_label + if timestamp is not unset: + kwargs["timestamp"] = timestamp + super().__init__(kwargs) diff --git a/src/datadog_api_client/v2/model/billing_dimensions_mapping_body_item_attributes_endpoints_items.py b/src/datadog_api_client/v2/model/billing_dimensions_mapping_body_item_attributes_endpoints_items.py new file mode 100644 index 0000000000..35d3a13d79 --- /dev/null +++ b/src/datadog_api_client/v2/model/billing_dimensions_mapping_body_item_attributes_endpoints_items.py @@ -0,0 +1,66 @@ +# 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, Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.billing_dimensions_mapping_body_item_attributes_endpoints_items_status import ( + BillingDimensionsMappingBodyItemAttributesEndpointsItemsStatus, + ) + + +class BillingDimensionsMappingBodyItemAttributesEndpointsItems(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.billing_dimensions_mapping_body_item_attributes_endpoints_items_status import ( + BillingDimensionsMappingBodyItemAttributesEndpointsItemsStatus, + ) + + return { + "id": (str,), + "keys": ([str],), + "status": (BillingDimensionsMappingBodyItemAttributesEndpointsItemsStatus,), + } + + attribute_map = { + "id": "id", + "keys": "keys", + "status": "status", + } + + def __init__( + self_, + id: Union[str, UnsetType] = unset, + keys: Union[List[str], UnsetType] = unset, + status: Union[BillingDimensionsMappingBodyItemAttributesEndpointsItemsStatus, UnsetType] = unset, + **kwargs, + ): + """ + An endpoint's keys mapped to the billing_dimension. + + :param id: The URL for the endpoint. + :type id: str, optional + + :param keys: The billing dimension. + :type keys: [str], optional + + :param status: Denotes whether or not mapping keys were available for this endpoint. + :type status: BillingDimensionsMappingBodyItemAttributesEndpointsItemsStatus, optional + """ + if id is not unset: + kwargs["id"] = id + if keys is not unset: + kwargs["keys"] = keys + if status is not unset: + kwargs["status"] = status + super().__init__(kwargs) diff --git a/src/datadog_api_client/v2/model/billing_dimensions_mapping_body_item_attributes_endpoints_items_status.py b/src/datadog_api_client/v2/model/billing_dimensions_mapping_body_item_attributes_endpoints_items_status.py new file mode 100644 index 0000000000..b1e31267b1 --- /dev/null +++ b/src/datadog_api_client/v2/model/billing_dimensions_mapping_body_item_attributes_endpoints_items_status.py @@ -0,0 +1,42 @@ +# 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 BillingDimensionsMappingBodyItemAttributesEndpointsItemsStatus(ModelSimple): + """ + Denotes whether or not mapping keys were available for this endpoint. + + :param value: Must be one of ["OK", "NOT_FOUND"]. + :type value: str + """ + + allowed_values = { + "OK", + "NOT_FOUND", + } + OK: ClassVar["BillingDimensionsMappingBodyItemAttributesEndpointsItemsStatus"] + NOT_FOUND: ClassVar["BillingDimensionsMappingBodyItemAttributesEndpointsItemsStatus"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +BillingDimensionsMappingBodyItemAttributesEndpointsItemsStatus.OK = ( + BillingDimensionsMappingBodyItemAttributesEndpointsItemsStatus("OK") +) +BillingDimensionsMappingBodyItemAttributesEndpointsItemsStatus.NOT_FOUND = ( + BillingDimensionsMappingBodyItemAttributesEndpointsItemsStatus("NOT_FOUND") +) diff --git a/src/datadog_api_client/v2/model/billing_dimensions_mapping_response.py b/src/datadog_api_client/v2/model/billing_dimensions_mapping_response.py new file mode 100644 index 0000000000..b1e6bd22dd --- /dev/null +++ b/src/datadog_api_client/v2/model/billing_dimensions_mapping_response.py @@ -0,0 +1,42 @@ +# 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, Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.billing_dimensions_mapping_body_item import BillingDimensionsMappingBodyItem + + +class BillingDimensionsMappingResponse(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.billing_dimensions_mapping_body_item import BillingDimensionsMappingBodyItem + + return { + "data": ([BillingDimensionsMappingBodyItem],), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: Union[List[BillingDimensionsMappingBodyItem], UnsetType] = unset, **kwargs): + """ + Billing dimensions mapping response. + + :param data: Billing dimensions mapping data. + :type data: [BillingDimensionsMappingBodyItem], optional + """ + if data is not unset: + kwargs["data"] = data + super().__init__(kwargs) diff --git a/src/datadog_api_client/v2/models/__init__.py b/src/datadog_api_client/v2/models/__init__.py index 18f6d4bdea..6afe3d7df5 100644 --- a/src/datadog_api_client/v2/models/__init__.py +++ b/src/datadog_api_client/v2/models/__init__.py @@ -101,6 +101,17 @@ from datadog_api_client.v2.model.azure_uc_config_post_request_type import AzureUCConfigPostRequestType from datadog_api_client.v2.model.azure_uc_configs_response import AzureUCConfigsResponse from datadog_api_client.v2.model.bill_config import BillConfig +from datadog_api_client.v2.model.billing_dimensions_mapping_body_item import BillingDimensionsMappingBodyItem +from datadog_api_client.v2.model.billing_dimensions_mapping_body_item_attributes import ( + BillingDimensionsMappingBodyItemAttributes, +) +from datadog_api_client.v2.model.billing_dimensions_mapping_body_item_attributes_endpoints_items import ( + BillingDimensionsMappingBodyItemAttributesEndpointsItems, +) +from datadog_api_client.v2.model.billing_dimensions_mapping_body_item_attributes_endpoints_items_status import ( + BillingDimensionsMappingBodyItemAttributesEndpointsItemsStatus, +) +from datadog_api_client.v2.model.billing_dimensions_mapping_response import BillingDimensionsMappingResponse from datadog_api_client.v2.model.bulk_mute_findings_request import BulkMuteFindingsRequest from datadog_api_client.v2.model.bulk_mute_findings_request_attributes import BulkMuteFindingsRequestAttributes from datadog_api_client.v2.model.bulk_mute_findings_request_data import BulkMuteFindingsRequestData @@ -2064,6 +2075,11 @@ "AzureUCConfigPostRequestType", "AzureUCConfigsResponse", "BillConfig", + "BillingDimensionsMappingBodyItem", + "BillingDimensionsMappingBodyItemAttributes", + "BillingDimensionsMappingBodyItemAttributesEndpointsItems", + "BillingDimensionsMappingBodyItemAttributesEndpointsItemsStatus", + "BillingDimensionsMappingResponse", "BulkMuteFindingsRequest", "BulkMuteFindingsRequestAttributes", "BulkMuteFindingsRequestData", diff --git a/tests/v2/features/undo.json b/tests/v2/features/undo.json index c8228c1a92..501cf5a487 100644 --- a/tests/v2/features/undo.json +++ b/tests/v2/features/undo.json @@ -2365,6 +2365,12 @@ "type": "safe" } }, + "GetBillingDimensionMapping": { + "tag": "Usage Metering", + "undo": { + "type": "safe" + } + }, "GetCostByOrg": { "tag": "Usage Metering", "undo": { diff --git a/tests/v2/features/usage_metering.feature b/tests/v2/features/usage_metering.feature index b4c81950a9..823e06e536 100644 --- a/tests/v2/features/usage_metering.feature +++ b/tests/v2/features/usage_metering.feature @@ -48,6 +48,20 @@ Feature: Usage Metering When the request is sent Then the response status is 200 OK + @generated @skip @team:DataDog/revenue-query + Scenario: Get billing dimension mapping for usage endpoints returns "Bad Request" response + Given operation "GetBillingDimensionMapping" enabled + And new "GetBillingDimensionMapping" request + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/revenue-query + Scenario: Get billing dimension mapping for usage endpoints returns "OK" response + Given operation "GetBillingDimensionMapping" enabled + And new "GetBillingDimensionMapping" request + When the request is sent + Then the response status is 200 OK + @generated @skip @team:DataDog/revenue-query Scenario: Get cost across multi-org account returns "Bad Request" response Given new "GetCostByOrg" request