From 877e9c652eb4b16ed9ad201d14313258a8c03f82 Mon Sep 17 00:00:00 2001 From: "ci.datadog-api-spec" Date: Thu, 29 Oct 2026 09:32:16 +0000 Subject: [PATCH] Regenerate client from commit 6a5b65e of spec repo --- .generator/schemas/v2/openapi.yaml | 91 +++++- examples/v2/rum/DeleteSourcemaps.py | 28 ++ examples/v2/rum/GetServiceRepositoryInfo.py | 32 ++ examples/v2/rum/GetSourcemaps.py | 16 + examples/v2/rum/ListSourcemaps.py | 27 ++ examples/v2/rum/RestoreSourcemaps.py | 28 ++ src/datadog_api_client/v2/api/rum_api.py | 73 ++++- ...vice_repository_info_request_attributes.py | 34 +- .../service_repository_info_response_data.py | 2 +- .../v2/model/sourcemap_symbol_type.py | 38 +++ src/datadog_api_client/v2/models/__init__.py | 2 + .../test-runner-data/manifest.json | 49 +++ ...elete-source-maps-returns-ok-response.json | 113 +++++++ ...source-map-returns-not-found-response.json | 35 ++ ...ormation-returns-bad-request-response.json | 33 ++ ...itory-information-returns-ok-response.json | 33 ++ ...rce-maps-returns-bad-request-response.json | 51 +++ .../list-source-maps-returns-ok-response.json | 97 ++++++ ...store-source-maps-returns-ok-response.json | 113 +++++++ .../test-server-data/v2/rum.json | 304 ++++++++++++++++++ tests/v2/features/rum.feature | 129 ++++++++ tests/v2/features/undo.json | 30 ++ 22 files changed, 1323 insertions(+), 35 deletions(-) create mode 100644 examples/v2/rum/DeleteSourcemaps.py create mode 100644 examples/v2/rum/GetServiceRepositoryInfo.py create mode 100644 examples/v2/rum/GetSourcemaps.py create mode 100644 examples/v2/rum/ListSourcemaps.py create mode 100644 examples/v2/rum/RestoreSourcemaps.py create mode 100644 src/datadog_api_client/v2/model/sourcemap_symbol_type.py create mode 100644 tests/generated-test/test-runner-data/v2/rum/delete-source-maps-returns-ok-response.json create mode 100644 tests/generated-test/test-runner-data/v2/rum/get-a-javascript-source-map-returns-not-found-response.json create mode 100644 tests/generated-test/test-runner-data/v2/rum/get-service-repository-information-returns-bad-request-response.json create mode 100644 tests/generated-test/test-runner-data/v2/rum/get-service-repository-information-returns-ok-response.json create mode 100644 tests/generated-test/test-runner-data/v2/rum/list-source-maps-returns-bad-request-response.json create mode 100644 tests/generated-test/test-runner-data/v2/rum/list-source-maps-returns-ok-response.json create mode 100644 tests/generated-test/test-runner-data/v2/rum/restore-source-maps-returns-ok-response.json diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 2cd254b6c7..96a1d4c515 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -122537,17 +122537,19 @@ components: ServiceRepositoryInfoRequestAttributes: description: Attributes for the service repository info request. properties: + debug_id: + description: The debug ID of a JavaScript source map, in UUID format. Alternative to `service` and `version`. + example: 00000000-0000-4000-8000-000000000001 + format: uuid + type: string service: - description: The name of the service. + description: The name of the service. Required with `version` when `debug_id` is not set. example: my-web-service type: string version: - description: The version of the service. + description: The version of the service. Required with `service` when `debug_id` is not set. example: 1.0.0 type: string - required: - - service - - version type: object ServiceRepositoryInfoRequestData: description: Data object for the service repository info request. @@ -122590,7 +122592,7 @@ components: attributes: $ref: "#/components/schemas/ServiceRepositoryInfoResponseAttributes" id: - description: The identifier composed of the service name and version. + description: The identifier composed of the service name and version, or the debug ID when the lookup was made by debug ID. example: my-web-service:1.0.0 type: string type: @@ -125270,6 +125272,16 @@ components: type: string x-enum-varnames: - DEBUG_ID + SourcemapSymbolType: + description: The WASM symbol representation. + enum: + - dwarf + - sourcemap + example: dwarf + type: string + x-enum-varnames: + - DWARF + - SOURCEMAP SourcemapsData: description: List of source map data objects. items: @@ -239382,6 +239394,14 @@ paths: required: true schema: $ref: "#/components/schemas/SourcemapMapKind" + - description: |- + WASM symbol representation. Only supported for `mapkind=wasm`. + Defaults to `dwarf`, which requires `filter[build_id]`. `sourcemap` + requires `filter[service]` and `filter[version]`. + in: query + name: symbol_type + schema: + $ref: "#/components/schemas/SourcemapSymbolType" - description: |- When set to `true`, returns the source maps that would be deleted without performing the actual deletion. When set to `false`, @@ -239394,7 +239414,8 @@ paths: type: boolean - description: |- Filter by service names (multiple values allowed). Required for - `js`, `jvm`, `react`, and `flutter` map kinds. + `js`, `jvm`, `react`, and `flutter` map kinds, and for `wasm` with + `symbol_type=sourcemap`. explode: true in: query name: filter[service] @@ -239407,7 +239428,8 @@ paths: style: form - description: |- Filter by version values (multiple values allowed, maximum 10). - Required for `js`, `jvm`, `react`, and `flutter` map kinds. + Required for `js`, `jvm`, `react`, and `flutter` map kinds, and for + `wasm` with `symbol_type=sourcemap`. explode: true in: query name: filter[version] @@ -239436,7 +239458,10 @@ paths: type: string type: array style: form - - description: Filter by build ID values (multiple values allowed). Supported for `jvm`, `ndk`, `il2cpp`, `wasm`, and `portable_pdb`. + - description: |- + Filter by build ID values (multiple values allowed). Supported for `jvm`, + `ndk`, `il2cpp`, `wasm`, and `portable_pdb`. Required for `wasm` with + `symbol_type=dwarf`. explode: true in: query name: filter[build_id] @@ -239821,6 +239846,14 @@ paths: name: mapkind schema: $ref: "#/components/schemas/SourcemapMapKind" + - description: |- + WASM symbol representation. Only supported for `mapkind=wasm`. + Defaults to `dwarf`, which requires `filter[build_id]`. `sourcemap` + requires `filter[service]` and `filter[version]`. + in: query + name: symbol_type + schema: + $ref: "#/components/schemas/SourcemapSymbolType" - description: |- Cursor for the next page of a JavaScript listing. Use the value from `meta.page.next_cursor` and keep the same search mode and filters. @@ -239852,7 +239885,8 @@ paths: type: integer - description: |- Filter by service names (multiple values allowed). Required for - `jvm`, `react`, and `flutter` map kinds. Also required for `js` unless + `jvm`, `react`, and `flutter` map kinds, and for `wasm` with + `symbol_type=sourcemap`. Also required for `js` unless searching by `filter[debug_id]` or browsing with `search_by=debug_id`. explode: true in: query @@ -239866,7 +239900,8 @@ paths: style: form - description: |- Filter by version values (multiple values allowed). Required for - `jvm`, `react`, and `flutter` map kinds. Also required for `js` unless + `jvm`, `react`, and `flutter` map kinds, and for `wasm` with + `symbol_type=sourcemap`. Also required for `js` unless searching by `filter[debug_id]` or browsing with `search_by=debug_id`. explode: true in: query @@ -239896,7 +239931,10 @@ paths: type: string type: array style: form - - description: Filter by build ID values (multiple values allowed). Supported for `jvm`, `ndk`, `il2cpp`, `wasm`, and `portable_pdb`. + - description: |- + Filter by build ID values (multiple values allowed). Supported for `jvm`, + `ndk`, `il2cpp`, `wasm`, and `portable_pdb`. Required for `wasm` with + `symbol_type=dwarf`. explode: true in: query name: filter[build_id] @@ -240094,6 +240132,14 @@ paths: required: true schema: $ref: "#/components/schemas/SourcemapMapKind" + - description: |- + WASM symbol representation. Only supported for `mapkind=wasm`. + Defaults to `dwarf`, which requires `filter[build_id]`. `sourcemap` + requires `filter[service]` and `filter[version]`. + in: query + name: symbol_type + schema: + $ref: "#/components/schemas/SourcemapSymbolType" - description: |- When set to `true`, returns the source maps that would be restored without performing the actual restoration. When set to `false`, @@ -240106,7 +240152,8 @@ paths: type: boolean - description: |- Filter by service names (multiple values allowed). Required for - `js`, `jvm`, `react`, and `flutter` map kinds. + `js`, `jvm`, `react`, and `flutter` map kinds, and for `wasm` with + `symbol_type=sourcemap`. explode: true in: query name: filter[service] @@ -240119,7 +240166,8 @@ paths: style: form - description: |- Filter by version values (multiple values allowed, maximum 10). - Required for `js`, `jvm`, `react`, and `flutter` map kinds. + Required for `js`, `jvm`, `react`, and `flutter` map kinds, and for + `wasm` with `symbol_type=sourcemap`. explode: true in: query name: filter[version] @@ -240148,7 +240196,10 @@ paths: type: string type: array style: form - - description: Filter by build ID values (multiple values allowed). Supported for `jvm`, `ndk`, `il2cpp`, `wasm`, and `portable_pdb`. + - description: |- + Filter by build ID values (multiple values allowed). Supported for `jvm`, + `ndk`, `il2cpp`, `wasm`, and `portable_pdb`. Required for `wasm` with + `symbol_type=dwarf`. explode: true in: query name: filter[build_id] @@ -240308,7 +240359,9 @@ paths: If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). /api/v2/sourcemaps/service_repository_info: post: - description: Returns the repository URL and commit SHA associated with a given service and version. + description: |- + Returns the repository URL and commit SHA associated with a debug ID or a given service and version. + Provide either `debug_id`, or both `service` and `version`. When `debug_id` is set, it takes precedence. operationId: GetServiceRepositoryInfo requestBody: content: @@ -240341,6 +240394,12 @@ paths: schema: $ref: "#/components/schemas/ServiceRepositoryInfoResponse" description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request "401": content: application/json: diff --git a/examples/v2/rum/DeleteSourcemaps.py b/examples/v2/rum/DeleteSourcemaps.py new file mode 100644 index 0000000000..7d9347ce72 --- /dev/null +++ b/examples/v2/rum/DeleteSourcemaps.py @@ -0,0 +1,28 @@ +""" +Delete source maps returns "OK" response +""" + +from os import environ +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.rum_api import RUMApi +from datadog_api_client.v2.model.sourcemap_map_kind import SourcemapMapKind +from datadog_api_client.v2.model.sourcemap_symbol_type import SourcemapSymbolType + +configuration = Configuration() +configuration.access_token = environ["DD_BEARER_TOKEN"] +configuration.unstable_operations["delete_sourcemaps"] = True +with ApiClient(configuration) as api_client: + api_instance = RUMApi(api_client) + response = api_instance.delete_sourcemaps( + mapkind=SourcemapMapKind.WASM, + symbol_type=SourcemapSymbolType.SOURCEMAP, + dry_run=True, + filter_service=[ + "nonexistent-svc", + ], + filter_version=[ + "0.0.0-none", + ], + ) + + print(response) diff --git a/examples/v2/rum/GetServiceRepositoryInfo.py b/examples/v2/rum/GetServiceRepositoryInfo.py new file mode 100644 index 0000000000..79f1312d52 --- /dev/null +++ b/examples/v2/rum/GetServiceRepositoryInfo.py @@ -0,0 +1,32 @@ +""" +Get service repository information returns "OK" response +""" + +from os import environ +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.rum_api import RUMApi +from datadog_api_client.v2.model.service_repository_info_data_type import ServiceRepositoryInfoDataType +from datadog_api_client.v2.model.service_repository_info_request import ServiceRepositoryInfoRequest +from datadog_api_client.v2.model.service_repository_info_request_attributes import ( + ServiceRepositoryInfoRequestAttributes, +) +from datadog_api_client.v2.model.service_repository_info_request_data import ServiceRepositoryInfoRequestData +from uuid import UUID + +body = ServiceRepositoryInfoRequest( + data=ServiceRepositoryInfoRequestData( + attributes=ServiceRepositoryInfoRequestAttributes( + debug_id=UUID("00000000-0000-4000-8000-000000000001"), + ), + type=ServiceRepositoryInfoDataType.SERVICE_REPOSITORY_INFO, + ), +) + +configuration = Configuration() +configuration.access_token = environ["DD_BEARER_TOKEN"] +configuration.unstable_operations["get_service_repository_info"] = True +with ApiClient(configuration) as api_client: + api_instance = RUMApi(api_client) + response = api_instance.get_service_repository_info(body=body) + + print(response) diff --git a/examples/v2/rum/GetSourcemaps.py b/examples/v2/rum/GetSourcemaps.py new file mode 100644 index 0000000000..c82b3fbe1d --- /dev/null +++ b/examples/v2/rum/GetSourcemaps.py @@ -0,0 +1,16 @@ +""" +Get a JavaScript source map returns "OK" response +""" + +from os import environ +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.rum_api import RUMApi + +configuration = Configuration() +configuration.access_token = environ["DD_BEARER_TOKEN"] +configuration.unstable_operations["get_sourcemaps"] = True +with ApiClient(configuration) as api_client: + api_instance = RUMApi(api_client) + response = api_instance.get_sourcemaps() + + print(response) diff --git a/examples/v2/rum/ListSourcemaps.py b/examples/v2/rum/ListSourcemaps.py new file mode 100644 index 0000000000..7c7e6bfde8 --- /dev/null +++ b/examples/v2/rum/ListSourcemaps.py @@ -0,0 +1,27 @@ +""" +List source maps returns "OK" response +""" + +from os import environ +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.rum_api import RUMApi +from datadog_api_client.v2.model.sourcemap_map_kind import SourcemapMapKind +from datadog_api_client.v2.model.sourcemap_symbol_type import SourcemapSymbolType + +configuration = Configuration() +configuration.access_token = environ["DD_BEARER_TOKEN"] +configuration.unstable_operations["list_sourcemaps"] = True +with ApiClient(configuration) as api_client: + api_instance = RUMApi(api_client) + response = api_instance.list_sourcemaps( + mapkind=SourcemapMapKind.WASM, + symbol_type=SourcemapSymbolType.SOURCEMAP, + filter_service=[ + "my-wasm-app", + ], + filter_version=[ + "1.0.0", + ], + ) + + print(response) diff --git a/examples/v2/rum/RestoreSourcemaps.py b/examples/v2/rum/RestoreSourcemaps.py new file mode 100644 index 0000000000..dcfe0bc9e8 --- /dev/null +++ b/examples/v2/rum/RestoreSourcemaps.py @@ -0,0 +1,28 @@ +""" +Restore source maps returns "OK" response +""" + +from os import environ +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.rum_api import RUMApi +from datadog_api_client.v2.model.sourcemap_map_kind import SourcemapMapKind +from datadog_api_client.v2.model.sourcemap_symbol_type import SourcemapSymbolType + +configuration = Configuration() +configuration.access_token = environ["DD_BEARER_TOKEN"] +configuration.unstable_operations["restore_sourcemaps"] = True +with ApiClient(configuration) as api_client: + api_instance = RUMApi(api_client) + response = api_instance.restore_sourcemaps( + mapkind=SourcemapMapKind.WASM, + symbol_type=SourcemapSymbolType.SOURCEMAP, + dry_run=True, + filter_service=[ + "nonexistent-svc", + ], + filter_version=[ + "0.0.0-none", + ], + ) + + print(response) diff --git a/src/datadog_api_client/v2/api/rum_api.py b/src/datadog_api_client/v2/api/rum_api.py index 2745cb3e20..4b5f158200 100644 --- a/src/datadog_api_client/v2/api/rum_api.py +++ b/src/datadog_api_client/v2/api/rum_api.py @@ -28,6 +28,7 @@ from datadog_api_client.v2.model.rum_search_events_request import RUMSearchEventsRequest from datadog_api_client.v2.model.sourcemaps_response import SourcemapsResponse from datadog_api_client.v2.model.sourcemap_map_kind import SourcemapMapKind +from datadog_api_client.v2.model.sourcemap_symbol_type import SourcemapSymbolType from datadog_api_client.v2.model.sourcemap_file_response import SourcemapFileResponse from datadog_api_client.v2.model.list_sourcemaps_response import ListSourcemapsResponse from datadog_api_client.v2.model.sourcemap_search_by import SourcemapSearchBy @@ -124,6 +125,11 @@ def __init__(self, api_client=None): "attribute": "mapkind", "location": "query", }, + "symbol_type": { + "openapi_types": (SourcemapSymbolType,), + "attribute": "symbol_type", + "location": "query", + }, "dry_run": { "required": True, "openapi_types": (bool,), @@ -406,6 +412,11 @@ def __init__(self, api_client=None): "attribute": "mapkind", "location": "query", }, + "symbol_type": { + "openapi_types": (SourcemapSymbolType,), + "attribute": "symbol_type", + "location": "query", + }, "page_after": { "openapi_types": (str,), "attribute": "page[after]", @@ -553,6 +564,11 @@ def __init__(self, api_client=None): "attribute": "mapkind", "location": "query", }, + "symbol_type": { + "openapi_types": (SourcemapSymbolType,), + "attribute": "symbol_type", + "location": "query", + }, "dry_run": { "required": True, "openapi_types": (bool,), @@ -769,6 +785,7 @@ def delete_sourcemaps( mapkind: SourcemapMapKind, dry_run: bool, *, + symbol_type: Union[SourcemapSymbolType, UnsetType] = unset, filter_service: Union[List[str], UnsetType] = unset, filter_version: Union[List[str], UnsetType] = unset, filter_variant: Union[List[str], UnsetType] = unset, @@ -801,17 +818,25 @@ def delete_sourcemaps( without performing the actual deletion. When set to ``false`` , performs the deletion. :type dry_run: bool + :param symbol_type: WASM symbol representation. Only supported for ``mapkind=wasm``. + Defaults to ``dwarf`` , which requires ``filter[build_id]``. ``sourcemap`` + requires ``filter[service]`` and ``filter[version]``. + :type symbol_type: SourcemapSymbolType, optional :param filter_service: Filter by service names (multiple values allowed). Required for - ``js`` , ``jvm`` , ``react`` , and ``flutter`` map kinds. + ``js`` , ``jvm`` , ``react`` , and ``flutter`` map kinds, and for ``wasm`` with + ``symbol_type=sourcemap``. :type filter_service: [str], optional :param filter_version: Filter by version values (multiple values allowed, maximum 10). - Required for ``js`` , ``jvm`` , ``react`` , and ``flutter`` map kinds. + Required for ``js`` , ``jvm`` , ``react`` , and ``flutter`` map kinds, and for + ``wasm`` with ``symbol_type=sourcemap``. :type filter_version: [str], optional :param filter_variant: Filter by variant values (multiple values allowed). Supported for ``jvm``. :type filter_variant: [str], optional :param filter_id: Filter by source map ID values (multiple values allowed). Supported for all map kinds. :type filter_id: [str], optional - :param filter_build_id: Filter by build ID values (multiple values allowed). Supported for ``jvm`` , ``ndk`` , ``il2cpp`` , ``wasm`` , and ``portable_pdb``. + :param filter_build_id: Filter by build ID values (multiple values allowed). Supported for ``jvm`` , + ``ndk`` , ``il2cpp`` , ``wasm`` , and ``portable_pdb``. Required for ``wasm`` with + ``symbol_type=dwarf``. :type filter_build_id: [str], optional :param filter_uuid: Filter by UUID values (multiple values allowed). Supported for ``ios``. :type filter_uuid: [str], optional @@ -845,6 +870,9 @@ def delete_sourcemaps( kwargs: Dict[str, Any] = {} kwargs["mapkind"] = mapkind + if symbol_type is not unset: + kwargs["symbol_type"] = symbol_type + kwargs["dry_run"] = dry_run if filter_service is not unset: @@ -938,7 +966,8 @@ def get_service_repository_info( ) -> ServiceRepositoryInfoResponse: """Get service repository information. - Returns the repository URL and commit SHA associated with a given service and version. + Returns the repository URL and commit SHA associated with a debug ID or a given service and version. + Provide either ``debug_id`` , or both ``service`` and ``version``. When ``debug_id`` is set, it takes precedence. :type body: ServiceRepositoryInfoRequest :rtype: ServiceRepositoryInfoResponse @@ -1137,6 +1166,7 @@ def list_sourcemaps( *, search_by: Union[SourcemapSearchBy, UnsetType] = unset, mapkind: Union[SourcemapMapKind, UnsetType] = unset, + symbol_type: Union[SourcemapSymbolType, UnsetType] = unset, page_after: Union[str, UnsetType] = unset, page_size: Union[int, UnsetType] = unset, page_number: Union[int, UnsetType] = unset, @@ -1251,6 +1281,10 @@ def list_sourcemaps( :type search_by: SourcemapSearchBy, optional :param mapkind: The type of source map. Defaults to ``js``. :type mapkind: SourcemapMapKind, optional + :param symbol_type: WASM symbol representation. Only supported for ``mapkind=wasm``. + Defaults to ``dwarf`` , which requires ``filter[build_id]``. ``sourcemap`` + requires ``filter[service]`` and ``filter[version]``. + :type symbol_type: SourcemapSymbolType, optional :param page_after: Cursor for the next page of a JavaScript listing. Use the value from ``meta.page.next_cursor`` and keep the same search mode and filters. Omit on the first request. Not supported for other map kinds or for @@ -1263,18 +1297,22 @@ def list_sourcemaps( default to page 1 when pagination parameters are omitted. :type page_number: int, optional :param filter_service: Filter by service names (multiple values allowed). Required for - ``jvm`` , ``react`` , and ``flutter`` map kinds. Also required for ``js`` unless + ``jvm`` , ``react`` , and ``flutter`` map kinds, and for ``wasm`` with + ``symbol_type=sourcemap``. Also required for ``js`` unless searching by ``filter[debug_id]`` or browsing with ``search_by=debug_id``. :type filter_service: [str], optional :param filter_version: Filter by version values (multiple values allowed). Required for - ``jvm`` , ``react`` , and ``flutter`` map kinds. Also required for ``js`` unless + ``jvm`` , ``react`` , and ``flutter`` map kinds, and for ``wasm`` with + ``symbol_type=sourcemap``. Also required for ``js`` unless searching by ``filter[debug_id]`` or browsing with ``search_by=debug_id``. :type filter_version: [str], optional :param filter_variant: Filter by variant values (multiple values allowed). Supported for ``jvm``. :type filter_variant: [str], optional :param filter_id: Filter by source map ID values (multiple values allowed). Supported for all map kinds. :type filter_id: [str], optional - :param filter_build_id: Filter by build ID values (multiple values allowed). Supported for ``jvm`` , ``ndk`` , ``il2cpp`` , ``wasm`` , and ``portable_pdb``. + :param filter_build_id: Filter by build ID values (multiple values allowed). Supported for ``jvm`` , + ``ndk`` , ``il2cpp`` , ``wasm`` , and ``portable_pdb``. Required for ``wasm`` with + ``symbol_type=dwarf``. :type filter_build_id: [str], optional :param filter_uuid: Filter by UUID values (multiple values allowed). Supported for ``ios``. :type filter_uuid: [str], optional @@ -1314,6 +1352,9 @@ def list_sourcemaps( if mapkind is not unset: kwargs["mapkind"] = mapkind + if symbol_type is not unset: + kwargs["symbol_type"] = symbol_type + if page_after is not unset: kwargs["page_after"] = page_after @@ -1384,6 +1425,7 @@ def restore_sourcemaps( mapkind: SourcemapMapKind, dry_run: bool, *, + symbol_type: Union[SourcemapSymbolType, UnsetType] = unset, filter_service: Union[List[str], UnsetType] = unset, filter_version: Union[List[str], UnsetType] = unset, filter_variant: Union[List[str], UnsetType] = unset, @@ -1416,17 +1458,25 @@ def restore_sourcemaps( without performing the actual restoration. When set to ``false`` , performs the restoration. :type dry_run: bool + :param symbol_type: WASM symbol representation. Only supported for ``mapkind=wasm``. + Defaults to ``dwarf`` , which requires ``filter[build_id]``. ``sourcemap`` + requires ``filter[service]`` and ``filter[version]``. + :type symbol_type: SourcemapSymbolType, optional :param filter_service: Filter by service names (multiple values allowed). Required for - ``js`` , ``jvm`` , ``react`` , and ``flutter`` map kinds. + ``js`` , ``jvm`` , ``react`` , and ``flutter`` map kinds, and for ``wasm`` with + ``symbol_type=sourcemap``. :type filter_service: [str], optional :param filter_version: Filter by version values (multiple values allowed, maximum 10). - Required for ``js`` , ``jvm`` , ``react`` , and ``flutter`` map kinds. + Required for ``js`` , ``jvm`` , ``react`` , and ``flutter`` map kinds, and for + ``wasm`` with ``symbol_type=sourcemap``. :type filter_version: [str], optional :param filter_variant: Filter by variant values (multiple values allowed). Supported for ``jvm``. :type filter_variant: [str], optional :param filter_id: Filter by source map ID values (multiple values allowed). Supported for all map kinds. :type filter_id: [str], optional - :param filter_build_id: Filter by build ID values (multiple values allowed). Supported for ``jvm`` , ``ndk`` , ``il2cpp`` , ``wasm`` , and ``portable_pdb``. + :param filter_build_id: Filter by build ID values (multiple values allowed). Supported for ``jvm`` , + ``ndk`` , ``il2cpp`` , ``wasm`` , and ``portable_pdb``. Required for ``wasm`` with + ``symbol_type=dwarf``. :type filter_build_id: [str], optional :param filter_uuid: Filter by UUID values (multiple values allowed). Supported for ``ios``. :type filter_uuid: [str], optional @@ -1460,6 +1510,9 @@ def restore_sourcemaps( kwargs: Dict[str, Any] = {} kwargs["mapkind"] = mapkind + if symbol_type is not unset: + kwargs["symbol_type"] = symbol_type + kwargs["dry_run"] = dry_run if filter_service is not unset: diff --git a/src/datadog_api_client/v2/model/service_repository_info_request_attributes.py b/src/datadog_api_client/v2/model/service_repository_info_request_attributes.py index 321a3b5a9a..daa269c690 100644 --- a/src/datadog_api_client/v2/model/service_repository_info_request_attributes.py +++ b/src/datadog_api_client/v2/model/service_repository_info_request_attributes.py @@ -3,10 +3,14 @@ # Copyright 2019-Present Datadog, Inc. from __future__ import annotations +from typing import Union from datadog_api_client.model_utils import ( ModelNormal, cached_property, + unset, + UnsetType, + UUID, ) @@ -14,26 +18,40 @@ class ServiceRepositoryInfoRequestAttributes(ModelNormal): @cached_property def openapi_types(_): return { + "debug_id": (UUID,), "service": (str,), "version": (str,), } attribute_map = { + "debug_id": "debug_id", "service": "service", "version": "version", } - def __init__(self_, service: str, version: str, **kwargs): + def __init__( + self_, + debug_id: Union[UUID, UnsetType] = unset, + service: Union[str, UnsetType] = unset, + version: Union[str, UnsetType] = unset, + **kwargs, + ): """ Attributes for the service repository info request. - :param service: The name of the service. - :type service: str + :param debug_id: The debug ID of a JavaScript source map, in UUID format. Alternative to ``service`` and ``version``. + :type debug_id: UUID, optional - :param version: The version of the service. - :type version: str + :param service: The name of the service. Required with ``version`` when ``debug_id`` is not set. + :type service: str, optional + + :param version: The version of the service. Required with ``service`` when ``debug_id`` is not set. + :type version: str, optional """ + if debug_id is not unset: + kwargs["debug_id"] = debug_id + if service is not unset: + kwargs["service"] = service + if version is not unset: + kwargs["version"] = version super().__init__(kwargs) - - self_.service = service - self_.version = version diff --git a/src/datadog_api_client/v2/model/service_repository_info_response_data.py b/src/datadog_api_client/v2/model/service_repository_info_response_data.py index 6ffecb2765..f22290a66c 100644 --- a/src/datadog_api_client/v2/model/service_repository_info_response_data.py +++ b/src/datadog_api_client/v2/model/service_repository_info_response_data.py @@ -51,7 +51,7 @@ def __init__( :param attributes: Attributes of the service repository information. :type attributes: ServiceRepositoryInfoResponseAttributes - :param id: The identifier composed of the service name and version. + :param id: The identifier composed of the service name and version, or the debug ID when the lookup was made by debug ID. :type id: str :param type: The resource type for service repository info objects. diff --git a/src/datadog_api_client/v2/model/sourcemap_symbol_type.py b/src/datadog_api_client/v2/model/sourcemap_symbol_type.py new file mode 100644 index 0000000000..57ba20eaed --- /dev/null +++ b/src/datadog_api_client/v2/model/sourcemap_symbol_type.py @@ -0,0 +1,38 @@ +# 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 SourcemapSymbolType(ModelSimple): + """ + The WASM symbol representation. + + :param value: Must be one of ["dwarf", "sourcemap"]. + :type value: str + """ + + allowed_values = { + "dwarf", + "sourcemap", + } + DWARF: ClassVar["SourcemapSymbolType"] + SOURCEMAP: ClassVar["SourcemapSymbolType"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +SourcemapSymbolType.DWARF = SourcemapSymbolType("dwarf") +SourcemapSymbolType.SOURCEMAP = SourcemapSymbolType("sourcemap") diff --git a/src/datadog_api_client/v2/models/__init__.py b/src/datadog_api_client/v2/models/__init__.py index 5ab9014f0b..bc6a7f84a2 100644 --- a/src/datadog_api_client/v2/models/__init__.py +++ b/src/datadog_api_client/v2/models/__init__.py @@ -11342,6 +11342,7 @@ from datadog_api_client.v2.model.sourcemap_item import SourcemapItem from datadog_api_client.v2.model.sourcemap_map_kind import SourcemapMapKind from datadog_api_client.v2.model.sourcemap_search_by import SourcemapSearchBy +from datadog_api_client.v2.model.sourcemap_symbol_type import SourcemapSymbolType from datadog_api_client.v2.model.sourcemaps_list_meta import SourcemapsListMeta from datadog_api_client.v2.model.sourcemaps_list_meta_page import SourcemapsListMetaPage from datadog_api_client.v2.model.sourcemaps_response import SourcemapsResponse @@ -20492,6 +20493,7 @@ "SourcemapItem", "SourcemapMapKind", "SourcemapSearchBy", + "SourcemapSymbolType", "SourcemapsListMeta", "SourcemapsListMetaPage", "SourcemapsResponse", diff --git a/tests/generated-test/test-runner-data/manifest.json b/tests/generated-test/test-runner-data/manifest.json index ce115e1632..73b1208aad 100644 --- a/tests/generated-test/test-runner-data/manifest.json +++ b/tests/generated-test/test-runner-data/manifest.json @@ -9639,6 +9639,20 @@ "scenario": "Delete a RUM application returns \"Not Found\" response", "version": "v2" }, + { + "feature": "RUM", + "feature_file": "../../v2/features/rum.feature", + "file": "v2/rum/delete-source-maps-returns-ok-response.json", + "scenario": "Delete source maps returns \"OK\" response", + "version": "v2" + }, + { + "feature": "RUM", + "feature_file": "../../v2/features/rum.feature", + "file": "v2/rum/get-a-javascript-source-map-returns-not-found-response.json", + "scenario": "Get a JavaScript source map returns \"Not Found\" response", + "version": "v2" + }, { "feature": "RUM", "feature_file": "../../v2/features/rum.feature", @@ -9667,6 +9681,20 @@ "scenario": "Get a list of RUM events returns \"OK\" response with pagination", "version": "v2" }, + { + "feature": "RUM", + "feature_file": "../../v2/features/rum.feature", + "file": "v2/rum/get-service-repository-information-returns-bad-request-response.json", + "scenario": "Get service repository information returns \"Bad Request\" response", + "version": "v2" + }, + { + "feature": "RUM", + "feature_file": "../../v2/features/rum.feature", + "file": "v2/rum/get-service-repository-information-returns-ok-response.json", + "scenario": "Get service repository information returns \"OK\" response", + "version": "v2" + }, { "feature": "RUM", "feature_file": "../../v2/features/rum.feature", @@ -9674,6 +9702,27 @@ "scenario": "List all the RUM applications returns \"OK\" response", "version": "v2" }, + { + "feature": "RUM", + "feature_file": "../../v2/features/rum.feature", + "file": "v2/rum/list-source-maps-returns-bad-request-response.json", + "scenario": "List source maps returns \"Bad Request\" response", + "version": "v2" + }, + { + "feature": "RUM", + "feature_file": "../../v2/features/rum.feature", + "file": "v2/rum/list-source-maps-returns-ok-response.json", + "scenario": "List source maps returns \"OK\" response", + "version": "v2" + }, + { + "feature": "RUM", + "feature_file": "../../v2/features/rum.feature", + "file": "v2/rum/restore-source-maps-returns-ok-response.json", + "scenario": "Restore source maps returns \"OK\" response", + "version": "v2" + }, { "feature": "RUM", "feature_file": "../../v2/features/rum.feature", diff --git a/tests/generated-test/test-runner-data/v2/rum/delete-source-maps-returns-ok-response.json b/tests/generated-test/test-runner-data/v2/rum/delete-source-maps-returns-ok-response.json new file mode 100644 index 0000000000..baa21ba712 --- /dev/null +++ b/tests/generated-test/test-runner-data/v2/rum/delete-source-maps-returns-ok-response.json @@ -0,0 +1,113 @@ +{ + "api": "RUM", + "expected_status": 200, + "feature": "RUM", + "id": "v2/RUM/Delete source maps returns \"OK\" response", + "operation_id": "DeleteSourcemaps", + "request": { + "body": null, + "content_type": null, + "method": "DELETE", + "pagination": false, + "parameters": [ + { + "explode": null, + "in": "query", + "name": "mapkind", + "required": true, + "schema": { + "format": null, + "ref": "SourcemapMapKind", + "type": "string" + }, + "source": { + "type": "literal", + "value": "wasm" + }, + "style": null + }, + { + "explode": null, + "in": "query", + "name": "dry_run", + "required": true, + "schema": { + "format": null, + "ref": null, + "type": "boolean" + }, + "source": { + "type": "literal", + "value": true + }, + "style": null + }, + { + "explode": null, + "in": "query", + "name": "symbol_type", + "required": false, + "schema": { + "format": null, + "ref": "SourcemapSymbolType", + "type": "string" + }, + "source": { + "type": "literal", + "value": "sourcemap" + }, + "style": null + }, + { + "explode": true, + "in": "query", + "name": "filter[service]", + "required": false, + "schema": { + "format": null, + "items": { + "format": null, + "ref": null, + "type": "string" + }, + "ref": null, + "type": "array" + }, + "source": { + "type": "literal", + "value": [ + "nonexistent-svc" + ] + }, + "style": "form" + }, + { + "explode": true, + "in": "query", + "name": "filter[version]", + "required": false, + "schema": { + "format": null, + "items": { + "format": null, + "ref": null, + "type": "string" + }, + "ref": null, + "type": "array" + }, + "source": { + "type": "literal", + "value": [ + "0.0.0-none" + ] + }, + "style": "form" + } + ], + "path": "/api/v2/sourcemaps" + }, + "scenario": "Delete source maps returns \"OK\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/tests/generated-test/test-runner-data/v2/rum/get-a-javascript-source-map-returns-not-found-response.json b/tests/generated-test/test-runner-data/v2/rum/get-a-javascript-source-map-returns-not-found-response.json new file mode 100644 index 0000000000..4c779e55b6 --- /dev/null +++ b/tests/generated-test/test-runner-data/v2/rum/get-a-javascript-source-map-returns-not-found-response.json @@ -0,0 +1,35 @@ +{ + "api": "RUM", + "expected_status": 404, + "feature": "RUM", + "id": "v2/RUM/Get a JavaScript source map returns \"Not Found\" response", + "operation_id": "GetSourcemaps", + "request": { + "body": null, + "content_type": null, + "method": "GET", + "pagination": false, + "parameters": [ + { + "explode": null, + "in": "query", + "name": "debug_id", + "required": false, + "schema": { + "format": "uuid", + "ref": null, + "type": "string" + }, + "source": { + "type": "literal", + "value": "00000000-0000-4000-8000-000000000001" + }, + "style": null + } + ], + "path": "/api/v2/sourcemaps" + }, + "scenario": "Get a JavaScript source map returns \"Not Found\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/tests/generated-test/test-runner-data/v2/rum/get-service-repository-information-returns-bad-request-response.json b/tests/generated-test/test-runner-data/v2/rum/get-service-repository-information-returns-bad-request-response.json new file mode 100644 index 0000000000..dcb4b40a79 --- /dev/null +++ b/tests/generated-test/test-runner-data/v2/rum/get-service-repository-information-returns-bad-request-response.json @@ -0,0 +1,33 @@ +{ + "api": "RUM", + "expected_status": 400, + "feature": "RUM", + "id": "v2/RUM/Get service repository information returns \"Bad Request\" response", + "operation_id": "GetServiceRepositoryInfo", + "request": { + "body": { + "schema": { + "format": null, + "ref": "ServiceRepositoryInfoRequest", + "type": "object" + }, + "source": "inline", + "value": { + "data": { + "attributes": { + "service": "my-web-service" + }, + "type": "service_repository_info" + } + } + }, + "content_type": "application/json", + "method": "POST", + "pagination": false, + "parameters": [], + "path": "/api/v2/sourcemaps/service_repository_info" + }, + "scenario": "Get service repository information returns \"Bad Request\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/tests/generated-test/test-runner-data/v2/rum/get-service-repository-information-returns-ok-response.json b/tests/generated-test/test-runner-data/v2/rum/get-service-repository-information-returns-ok-response.json new file mode 100644 index 0000000000..d8bd03e31a --- /dev/null +++ b/tests/generated-test/test-runner-data/v2/rum/get-service-repository-information-returns-ok-response.json @@ -0,0 +1,33 @@ +{ + "api": "RUM", + "expected_status": 200, + "feature": "RUM", + "id": "v2/RUM/Get service repository information returns \"OK\" response", + "operation_id": "GetServiceRepositoryInfo", + "request": { + "body": { + "schema": { + "format": null, + "ref": "ServiceRepositoryInfoRequest", + "type": "object" + }, + "source": "inline", + "value": { + "data": { + "attributes": { + "debug_id": "00000000-0000-4000-8000-000000000001" + }, + "type": "service_repository_info" + } + } + }, + "content_type": "application/json", + "method": "POST", + "pagination": false, + "parameters": [], + "path": "/api/v2/sourcemaps/service_repository_info" + }, + "scenario": "Get service repository information returns \"OK\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/tests/generated-test/test-runner-data/v2/rum/list-source-maps-returns-bad-request-response.json b/tests/generated-test/test-runner-data/v2/rum/list-source-maps-returns-bad-request-response.json new file mode 100644 index 0000000000..f522881086 --- /dev/null +++ b/tests/generated-test/test-runner-data/v2/rum/list-source-maps-returns-bad-request-response.json @@ -0,0 +1,51 @@ +{ + "api": "RUM", + "expected_status": 400, + "feature": "RUM", + "id": "v2/RUM/List source maps returns \"Bad Request\" response", + "operation_id": "ListSourcemaps", + "request": { + "body": null, + "content_type": null, + "method": "GET", + "pagination": false, + "parameters": [ + { + "explode": null, + "in": "query", + "name": "mapkind", + "required": false, + "schema": { + "format": null, + "ref": "SourcemapMapKind", + "type": "string" + }, + "source": { + "type": "literal", + "value": "js" + }, + "style": null + }, + { + "explode": null, + "in": "query", + "name": "symbol_type", + "required": false, + "schema": { + "format": null, + "ref": "SourcemapSymbolType", + "type": "string" + }, + "source": { + "type": "literal", + "value": "sourcemap" + }, + "style": null + } + ], + "path": "/api/v2/sourcemaps/list" + }, + "scenario": "List source maps returns \"Bad Request\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/tests/generated-test/test-runner-data/v2/rum/list-source-maps-returns-ok-response.json b/tests/generated-test/test-runner-data/v2/rum/list-source-maps-returns-ok-response.json new file mode 100644 index 0000000000..acae83ead7 --- /dev/null +++ b/tests/generated-test/test-runner-data/v2/rum/list-source-maps-returns-ok-response.json @@ -0,0 +1,97 @@ +{ + "api": "RUM", + "expected_status": 200, + "feature": "RUM", + "id": "v2/RUM/List source maps returns \"OK\" response", + "operation_id": "ListSourcemaps", + "request": { + "body": null, + "content_type": null, + "method": "GET", + "pagination": false, + "parameters": [ + { + "explode": null, + "in": "query", + "name": "mapkind", + "required": false, + "schema": { + "format": null, + "ref": "SourcemapMapKind", + "type": "string" + }, + "source": { + "type": "literal", + "value": "wasm" + }, + "style": null + }, + { + "explode": null, + "in": "query", + "name": "symbol_type", + "required": false, + "schema": { + "format": null, + "ref": "SourcemapSymbolType", + "type": "string" + }, + "source": { + "type": "literal", + "value": "sourcemap" + }, + "style": null + }, + { + "explode": true, + "in": "query", + "name": "filter[service]", + "required": false, + "schema": { + "format": null, + "items": { + "format": null, + "ref": null, + "type": "string" + }, + "ref": null, + "type": "array" + }, + "source": { + "type": "literal", + "value": [ + "my-wasm-app" + ] + }, + "style": "form" + }, + { + "explode": true, + "in": "query", + "name": "filter[version]", + "required": false, + "schema": { + "format": null, + "items": { + "format": null, + "ref": null, + "type": "string" + }, + "ref": null, + "type": "array" + }, + "source": { + "type": "literal", + "value": [ + "1.0.0" + ] + }, + "style": "form" + } + ], + "path": "/api/v2/sourcemaps/list" + }, + "scenario": "List source maps returns \"OK\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/tests/generated-test/test-runner-data/v2/rum/restore-source-maps-returns-ok-response.json b/tests/generated-test/test-runner-data/v2/rum/restore-source-maps-returns-ok-response.json new file mode 100644 index 0000000000..fc6a2b89f0 --- /dev/null +++ b/tests/generated-test/test-runner-data/v2/rum/restore-source-maps-returns-ok-response.json @@ -0,0 +1,113 @@ +{ + "api": "RUM", + "expected_status": 200, + "feature": "RUM", + "id": "v2/RUM/Restore source maps returns \"OK\" response", + "operation_id": "RestoreSourcemaps", + "request": { + "body": null, + "content_type": null, + "method": "PATCH", + "pagination": false, + "parameters": [ + { + "explode": null, + "in": "query", + "name": "mapkind", + "required": true, + "schema": { + "format": null, + "ref": "SourcemapMapKind", + "type": "string" + }, + "source": { + "type": "literal", + "value": "wasm" + }, + "style": null + }, + { + "explode": null, + "in": "query", + "name": "dry_run", + "required": true, + "schema": { + "format": null, + "ref": null, + "type": "boolean" + }, + "source": { + "type": "literal", + "value": true + }, + "style": null + }, + { + "explode": null, + "in": "query", + "name": "symbol_type", + "required": false, + "schema": { + "format": null, + "ref": "SourcemapSymbolType", + "type": "string" + }, + "source": { + "type": "literal", + "value": "sourcemap" + }, + "style": null + }, + { + "explode": true, + "in": "query", + "name": "filter[service]", + "required": false, + "schema": { + "format": null, + "items": { + "format": null, + "ref": null, + "type": "string" + }, + "ref": null, + "type": "array" + }, + "source": { + "type": "literal", + "value": [ + "nonexistent-svc" + ] + }, + "style": "form" + }, + { + "explode": true, + "in": "query", + "name": "filter[version]", + "required": false, + "schema": { + "format": null, + "items": { + "format": null, + "ref": null, + "type": "string" + }, + "ref": null, + "type": "array" + }, + "source": { + "type": "literal", + "value": [ + "0.0.0-none" + ] + }, + "style": "form" + } + ], + "path": "/api/v2/sourcemaps/restore" + }, + "scenario": "Restore source maps returns \"OK\" response", + "schema_version": 1, + "version": "v2" +} diff --git a/tests/generated-test/test-server-data/v2/rum.json b/tests/generated-test/test-server-data/v2/rum.json index 67630de8d7..9ff7668448 100644 --- a/tests/generated-test/test-server-data/v2/rum.json +++ b/tests/generated-test/test-server-data/v2/rum.json @@ -353,6 +353,94 @@ "scenario": "Delete a RUM application returns \"Not Found\" response", "version": "v2" }, + { + "feature": "RUM", + "frozen_at": "2026-10-27T21:41:28.057Z", + "interactions": [ + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "DELETE", + "path": "/api/v2/sourcemaps", + "query": [ + [ + "dry_run", + "true" + ], + [ + "filter[service]", + "nonexistent-svc" + ], + [ + "filter[version]", + "0.0.0-none" + ], + [ + "mapkind", + "wasm" + ], + [ + "symbol_type", + "sourcemap" + ] + ] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":[]}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "OK", + "status": 200 + } + } + ], + "scenario": "Delete source maps returns \"OK\" response", + "version": "v2" + }, + { + "feature": "RUM", + "frozen_at": "2026-10-27T21:41:30.244Z", + "interactions": [ + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "GET", + "path": "/api/v2/sourcemaps", + "query": [ + [ + "debug_id", + "00000000-0000-4000-8000-000000000001" + ] + ] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"errors\":[{\"status\":\"404\",\"title\":\"Not Found\"}]}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Not Found", + "status": 404 + } + } + ], + "scenario": "Get a JavaScript source map returns \"Not Found\" response", + "version": "v2" + }, { "feature": "RUM", "frozen_at": "2026-10-26T14:43:46.554Z", @@ -598,6 +686,82 @@ "scenario": "Get a list of RUM events returns \"OK\" response with pagination", "version": "v2" }, + { + "feature": "RUM", + "frozen_at": "2026-10-27T16:59:58.595Z", + "interactions": [ + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "service": "my-web-service" + }, + "type": "service_repository_info" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/sourcemaps/service_repository_info", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"errors\":[{\"title\":\"Generic Error\",\"detail\":\"debug_id or both service and version are required\"}]}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Bad Request", + "status": 400 + } + } + ], + "scenario": "Get service repository information returns \"Bad Request\" response", + "version": "v2" + }, + { + "feature": "RUM", + "frozen_at": "2026-10-27T16:22:23.688Z", + "interactions": [ + { + "request": { + "body": { + "type": "json", + "value": { + "data": { + "attributes": { + "debug_id": "00000000-0000-4000-8000-000000000001" + }, + "type": "service_repository_info" + } + } + }, + "content_type": "application/json", + "method": "POST", + "path": "/api/v2/sourcemaps/service_repository_info", + "query": [] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":{\"id\":\"00000000-0000-4000-8000-000000000001\",\"type\":\"service_repository_info\",\"attributes\":{\"status\":\"not_found\"}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "OK", + "status": 200 + } + } + ], + "scenario": "Get service repository information returns \"OK\" response", + "version": "v2" + }, { "feature": "RUM", "frozen_at": "2026-10-26T09:30:04.707Z", @@ -681,6 +845,146 @@ "scenario": "List all the RUM applications returns \"OK\" response", "version": "v2" }, + { + "feature": "RUM", + "frozen_at": "2026-10-27T16:22:23.933Z", + "interactions": [ + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "GET", + "path": "/api/v2/sourcemaps/list", + "query": [ + [ + "mapkind", + "js" + ], + [ + "symbol_type", + "sourcemap" + ] + ] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"errors\":[{\"title\":\"Generic Error\",\"detail\":\"symbol_type is only supported for mapkind=wasm\"}]}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "Bad Request", + "status": 400 + } + } + ], + "scenario": "List source maps returns \"Bad Request\" response", + "version": "v2" + }, + { + "feature": "RUM", + "frozen_at": "2026-10-27T16:22:24.136Z", + "interactions": [ + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "GET", + "path": "/api/v2/sourcemaps/list", + "query": [ + [ + "filter[service]", + "my-wasm-app" + ], + [ + "filter[version]", + "1.0.0" + ], + [ + "mapkind", + "wasm" + ], + [ + "symbol_type", + "sourcemap" + ] + ] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":[],\"meta\":{\"page\":{\"total_filtered_count\":0,\"has_more_results\":false}}}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "OK", + "status": 200 + } + } + ], + "scenario": "List source maps returns \"OK\" response", + "version": "v2" + }, + { + "feature": "RUM", + "frozen_at": "2026-10-27T21:41:30.450Z", + "interactions": [ + { + "request": { + "body": { + "type": "empty", + "value": null + }, + "content_type": "", + "method": "PATCH", + "path": "/api/v2/sourcemaps/restore", + "query": [ + [ + "dry_run", + "true" + ], + [ + "filter[service]", + "nonexistent-svc" + ], + [ + "filter[version]", + "0.0.0-none" + ], + [ + "mapkind", + "wasm" + ], + [ + "symbol_type", + "sourcemap" + ] + ] + }, + "response": { + "body": { + "encoding": "text", + "value": "{\"data\":[]}" + }, + "headers": { + "content-type": "application/vnd.api+json" + }, + "reason": "OK", + "status": 200 + } + } + ], + "scenario": "Restore source maps returns \"OK\" response", + "version": "v2" + }, { "feature": "RUM", "frozen_at": "2024-12-10T15:40:47.157Z", diff --git a/tests/v2/features/rum.feature b/tests/v2/features/rum.feature index 3fa9ce6776..52ff370cee 100644 --- a/tests/v2/features/rum.feature +++ b/tests/v2/features/rum.feature @@ -85,6 +85,59 @@ Feature: RUM When the request is sent Then the response status is 404 Not Found + @generated @skip @team:ddoghq/rum-backend + Scenario: Delete source maps returns "Bad Request" response + Given operation "DeleteSourcemaps" enabled + And new "DeleteSourcemaps" request + And request contains "mapkind" parameter from "REPLACE.ME" + And request contains "dry_run" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:ddoghq/rum-backend + Scenario: Delete source maps returns "Not Found" response + Given operation "DeleteSourcemaps" enabled + And new "DeleteSourcemaps" request + And request contains "mapkind" parameter from "REPLACE.ME" + And request contains "dry_run" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 Not Found + + @team:ddoghq/rum-backend + Scenario: Delete source maps returns "OK" response + Given operation "DeleteSourcemaps" enabled + And new "DeleteSourcemaps" request + And request contains "mapkind" parameter with value "wasm" + And request contains "dry_run" parameter with value true + And request contains "symbol_type" parameter with value "sourcemap" + And request contains "filter[service]" parameter with value ["nonexistent-svc"] + And request contains "filter[version]" parameter with value ["0.0.0-none"] + When the request is sent + Then the response status is 200 OK + And the response "data" has length 0 + + @generated @skip @team:ddoghq/rum-backend + Scenario: Get a JavaScript source map returns "Bad Request" response + Given operation "GetSourcemaps" enabled + And new "GetSourcemaps" request + When the request is sent + Then the response status is 400 Bad Request + + @team:ddoghq/rum-backend + Scenario: Get a JavaScript source map returns "Not Found" response + Given operation "GetSourcemaps" enabled + And new "GetSourcemaps" request + And request contains "debug_id" parameter with value "00000000-0000-4000-8000-000000000001" + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:ddoghq/rum-backend + Scenario: Get a JavaScript source map returns "OK" response + Given operation "GetSourcemaps" enabled + And new "GetSourcemaps" request + When the request is sent + Then the response status is 200 OK + @team:ddoghq/rum-backend Scenario: Get a RUM application returns "Not Found" response Given new "GetRUMApplication" request @@ -124,6 +177,23 @@ Feature: RUM Then the response status is 200 OK And the response has 3 items + @team:ddoghq/rum-backend + Scenario: Get service repository information returns "Bad Request" response + Given operation "GetServiceRepositoryInfo" enabled + And new "GetServiceRepositoryInfo" request + And body with value {"data": {"attributes": {"service": "my-web-service"}, "type": "service_repository_info"}} + When the request is sent + Then the response status is 400 Bad Request + + @team:ddoghq/rum-backend + Scenario: Get service repository information returns "OK" response + Given operation "GetServiceRepositoryInfo" enabled + And new "GetServiceRepositoryInfo" request + And body with value {"data": {"attributes": {"debug_id": "00000000-0000-4000-8000-000000000001"}, "type": "service_repository_info"}} + When the request is sent + Then the response status is 200 OK + And the response "data.id" is equal to "00000000-0000-4000-8000-000000000001" + @generated @skip @team:ddoghq/rum-backend Scenario: List all the RUM applications returns "Not Found" response Given new "GetRUMApplications" request @@ -140,6 +210,65 @@ Feature: RUM And the response "data" has item with field "attributes.product_scales.rum_event_processing_scale.state" with value "ALL" And the response "data" has item with field "attributes.product_scales.product_analytics_retention_scale.state" with value "NONE" + @team:ddoghq/rum-backend + Scenario: List source maps returns "Bad Request" response + Given operation "ListSourcemaps" enabled + And new "ListSourcemaps" request + And request contains "mapkind" parameter with value "js" + And request contains "symbol_type" parameter with value "sourcemap" + When the request is sent + Then the response status is 400 Bad Request + + @team:ddoghq/rum-backend + Scenario: List source maps returns "OK" response + Given operation "ListSourcemaps" enabled + And new "ListSourcemaps" request + And request contains "mapkind" parameter with value "wasm" + And request contains "symbol_type" parameter with value "sourcemap" + And request contains "filter[service]" parameter with value ["my-wasm-app"] + And request contains "filter[version]" parameter with value ["1.0.0"] + When the request is sent + Then the response status is 200 OK + And the response "data" has length 0 + + @generated @skip @team:ddoghq/rum-backend + Scenario: List source maps returns "Request Entity Too Large" response + Given operation "ListSourcemaps" enabled + And new "ListSourcemaps" request + When the request is sent + Then the response status is 413 Request Entity Too Large + + @generated @skip @team:ddoghq/rum-backend + Scenario: Restore source maps returns "Bad Request" response + Given operation "RestoreSourcemaps" enabled + And new "RestoreSourcemaps" request + And request contains "mapkind" parameter from "REPLACE.ME" + And request contains "dry_run" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:ddoghq/rum-backend + Scenario: Restore source maps returns "Not Found" response + Given operation "RestoreSourcemaps" enabled + And new "RestoreSourcemaps" request + And request contains "mapkind" parameter from "REPLACE.ME" + And request contains "dry_run" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 Not Found + + @team:ddoghq/rum-backend + Scenario: Restore source maps returns "OK" response + Given operation "RestoreSourcemaps" enabled + And new "RestoreSourcemaps" request + And request contains "mapkind" parameter with value "wasm" + And request contains "dry_run" parameter with value true + And request contains "symbol_type" parameter with value "sourcemap" + And request contains "filter[service]" parameter with value ["nonexistent-svc"] + And request contains "filter[version]" parameter with value ["0.0.0-none"] + When the request is sent + Then the response status is 200 OK + And the response "data" has length 0 + @generated @skip @team:ddoghq/rum-backend Scenario: Search RUM events returns "Bad Request" response Given new "SearchRUMEvents" request diff --git a/tests/v2/features/undo.json b/tests/v2/features/undo.json index 369742f22a..dd500215b6 100644 --- a/tests/v2/features/undo.json +++ b/tests/v2/features/undo.json @@ -9990,6 +9990,36 @@ "type": "unsafe" } }, + "DeleteSourcemaps": { + "tag": "RUM", + "undo": { + "type": "idempotent" + } + }, + "GetSourcemaps": { + "tag": "RUM", + "undo": { + "type": "safe" + } + }, + "ListSourcemaps": { + "tag": "RUM", + "undo": { + "type": "safe" + } + }, + "RestoreSourcemaps": { + "tag": "RUM", + "undo": { + "type": "idempotent" + } + }, + "GetServiceRepositoryInfo": { + "tag": "RUM", + "undo": { + "type": "safe" + } + }, "AggregateSpans": { "tag": "Spans", "undo": {