diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 2cd254b6c736..96a1d4c515bf 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.rb b/examples/v2/rum/DeleteSourcemaps.rb new file mode 100644 index 000000000000..618faf6ae4f9 --- /dev/null +++ b/examples/v2/rum/DeleteSourcemaps.rb @@ -0,0 +1,18 @@ +# Delete source maps returns "OK" response + +require "datadog_api_client" +DatadogAPIClient.configure do |config| + config.access_token = ENV["DD_BEARER_TOKEN"] + config.unstable_operations["v2.delete_sourcemaps".to_sym] = true +end +api_instance = DatadogAPIClient::V2::RUMAPI.new +opts = { + symbol_type: SourcemapSymbolType::SOURCEMAP, + filter_service: [ + "nonexistent-svc", + ], + filter_version: [ + "0.0.0-none", + ], +} +p api_instance.delete_sourcemaps(SourcemapMapKind::WASM, true, opts) diff --git a/examples/v2/rum/GetServiceRepositoryInfo.rb b/examples/v2/rum/GetServiceRepositoryInfo.rb new file mode 100644 index 000000000000..5670ae0cd24f --- /dev/null +++ b/examples/v2/rum/GetServiceRepositoryInfo.rb @@ -0,0 +1,18 @@ +# Get service repository information returns "OK" response + +require "datadog_api_client" +DatadogAPIClient.configure do |config| + config.access_token = ENV["DD_BEARER_TOKEN"] + config.unstable_operations["v2.get_service_repository_info".to_sym] = true +end +api_instance = DatadogAPIClient::V2::RUMAPI.new + +body = DatadogAPIClient::V2::ServiceRepositoryInfoRequest.new({ + data: DatadogAPIClient::V2::ServiceRepositoryInfoRequestData.new({ + attributes: DatadogAPIClient::V2::ServiceRepositoryInfoRequestAttributes.new({ + debug_id: "00000000-0000-4000-8000-000000000001", + }), + type: DatadogAPIClient::V2::ServiceRepositoryInfoDataType::SERVICE_REPOSITORY_INFO, + }), +}) +p api_instance.get_service_repository_info(body) diff --git a/examples/v2/rum/GetSourcemaps.rb b/examples/v2/rum/GetSourcemaps.rb new file mode 100644 index 000000000000..cb5906f3754b --- /dev/null +++ b/examples/v2/rum/GetSourcemaps.rb @@ -0,0 +1,9 @@ +# Get a JavaScript source map returns "OK" response + +require "datadog_api_client" +DatadogAPIClient.configure do |config| + config.access_token = ENV["DD_BEARER_TOKEN"] + config.unstable_operations["v2.get_sourcemaps".to_sym] = true +end +api_instance = DatadogAPIClient::V2::RUMAPI.new +p api_instance.get_sourcemaps() diff --git a/examples/v2/rum/ListSourcemaps.rb b/examples/v2/rum/ListSourcemaps.rb new file mode 100644 index 000000000000..d108c814a980 --- /dev/null +++ b/examples/v2/rum/ListSourcemaps.rb @@ -0,0 +1,19 @@ +# List source maps returns "OK" response + +require "datadog_api_client" +DatadogAPIClient.configure do |config| + config.access_token = ENV["DD_BEARER_TOKEN"] + config.unstable_operations["v2.list_sourcemaps".to_sym] = true +end +api_instance = DatadogAPIClient::V2::RUMAPI.new +opts = { + mapkind: SourcemapMapKind::WASM, + symbol_type: SourcemapSymbolType::SOURCEMAP, + filter_service: [ + "my-wasm-app", + ], + filter_version: [ + "1.0.0", + ], +} +p api_instance.list_sourcemaps(opts) diff --git a/examples/v2/rum/RestoreSourcemaps.rb b/examples/v2/rum/RestoreSourcemaps.rb new file mode 100644 index 000000000000..a797dbd5599f --- /dev/null +++ b/examples/v2/rum/RestoreSourcemaps.rb @@ -0,0 +1,18 @@ +# Restore source maps returns "OK" response + +require "datadog_api_client" +DatadogAPIClient.configure do |config| + config.access_token = ENV["DD_BEARER_TOKEN"] + config.unstable_operations["v2.restore_sourcemaps".to_sym] = true +end +api_instance = DatadogAPIClient::V2::RUMAPI.new +opts = { + symbol_type: SourcemapSymbolType::SOURCEMAP, + filter_service: [ + "nonexistent-svc", + ], + filter_version: [ + "0.0.0-none", + ], +} +p api_instance.restore_sourcemaps(SourcemapMapKind::WASM, true, opts) diff --git a/features/scenarios_model_mapping.rb b/features/scenarios_model_mapping.rb index 11ac9c9616f1..6c359dde0793 100644 --- a/features/scenarios_model_mapping.rb +++ b/features/scenarios_model_mapping.rb @@ -6019,6 +6019,7 @@ }, "v2.DeleteSourcemaps" => { "mapkind" => "SourcemapMapKind", + "symbol_type" => "SourcemapSymbolType", "dry_run" => "Boolean", "filter_service" => "Array", "filter_version" => "Array", @@ -6048,6 +6049,7 @@ "v2.ListSourcemaps" => { "search_by" => "SourcemapSearchBy", "mapkind" => "SourcemapMapKind", + "symbol_type" => "SourcemapSymbolType", "page_after" => "String", "page_size" => "Integer", "page_number" => "Integer", @@ -6072,6 +6074,7 @@ }, "v2.RestoreSourcemaps" => { "mapkind" => "SourcemapMapKind", + "symbol_type" => "SourcemapSymbolType", "dry_run" => "Boolean", "filter_service" => "Array", "filter_version" => "Array", diff --git a/features/v2/rum.feature b/features/v2/rum.feature index 3fa9ce6776bc..52ff370ceeea 100644 --- a/features/v2/rum.feature +++ b/features/v2/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/features/v2/undo.json b/features/v2/undo.json index 369742f22ad1..dd500215b627 100644 --- a/features/v2/undo.json +++ b/features/v2/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": { diff --git a/generated-test/test-runner-data/manifest.json b/generated-test/test-runner-data/manifest.json index 076864d2a4fe..33d3a3631721 100644 --- a/generated-test/test-runner-data/manifest.json +++ b/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": "../../features/v2/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": "../../features/v2/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": "../../features/v2/rum.feature", @@ -9667,6 +9681,20 @@ "scenario": "Get a list of RUM events returns \"OK\" response with pagination", "version": "v2" }, + { + "feature": "RUM", + "feature_file": "../../features/v2/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": "../../features/v2/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": "../../features/v2/rum.feature", @@ -9674,6 +9702,27 @@ "scenario": "List all the RUM applications returns \"OK\" response", "version": "v2" }, + { + "feature": "RUM", + "feature_file": "../../features/v2/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": "../../features/v2/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": "../../features/v2/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": "../../features/v2/rum.feature", diff --git a/generated-test/test-runner-data/v2/rum/delete-source-maps-returns-ok-response.json b/generated-test/test-runner-data/v2/rum/delete-source-maps-returns-ok-response.json new file mode 100644 index 000000000000..baa21ba7128a --- /dev/null +++ b/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/generated-test/test-runner-data/v2/rum/get-a-javascript-source-map-returns-not-found-response.json b/generated-test/test-runner-data/v2/rum/get-a-javascript-source-map-returns-not-found-response.json new file mode 100644 index 000000000000..4c779e55b606 --- /dev/null +++ b/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/generated-test/test-runner-data/v2/rum/get-service-repository-information-returns-bad-request-response.json b/generated-test/test-runner-data/v2/rum/get-service-repository-information-returns-bad-request-response.json new file mode 100644 index 000000000000..dcb4b40a7951 --- /dev/null +++ b/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/generated-test/test-runner-data/v2/rum/get-service-repository-information-returns-ok-response.json b/generated-test/test-runner-data/v2/rum/get-service-repository-information-returns-ok-response.json new file mode 100644 index 000000000000..d8bd03e31a5c --- /dev/null +++ b/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/generated-test/test-runner-data/v2/rum/list-source-maps-returns-bad-request-response.json b/generated-test/test-runner-data/v2/rum/list-source-maps-returns-bad-request-response.json new file mode 100644 index 000000000000..f52288108636 --- /dev/null +++ b/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/generated-test/test-runner-data/v2/rum/list-source-maps-returns-ok-response.json b/generated-test/test-runner-data/v2/rum/list-source-maps-returns-ok-response.json new file mode 100644 index 000000000000..acae83ead753 --- /dev/null +++ b/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/generated-test/test-runner-data/v2/rum/restore-source-maps-returns-ok-response.json b/generated-test/test-runner-data/v2/rum/restore-source-maps-returns-ok-response.json new file mode 100644 index 000000000000..fc6a2b89f0f4 --- /dev/null +++ b/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/generated-test/test-server-data/v2/rum.json b/generated-test/test-server-data/v2/rum.json index 67630de8d761..9ff7668448c0 100644 --- a/generated-test/test-server-data/v2/rum.json +++ b/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/lib/datadog_api_client/inflector.rb b/lib/datadog_api_client/inflector.rb index 3cd8ab6ff4c3..6d6d456cf13f 100644 --- a/lib/datadog_api_client/inflector.rb +++ b/lib/datadog_api_client/inflector.rb @@ -8586,6 +8586,7 @@ def overrides "v2.sourcemaps_list_meta" => "SourcemapsListMeta", "v2.sourcemaps_list_meta_page" => "SourcemapsListMetaPage", "v2.sourcemaps_response" => "SourcemapsResponse", + "v2.sourcemap_symbol_type" => "SourcemapSymbolType", "v2.span" => "Span", "v2.spans_aggregate_bucket" => "SpansAggregateBucket", "v2.spans_aggregate_bucket_attributes" => "SpansAggregateBucketAttributes", diff --git a/lib/datadog_api_client/v2/api/rum_api.rb b/lib/datadog_api_client/v2/api/rum_api.rb index 25280977160d..4f03767ab7e4 100644 --- a/lib/datadog_api_client/v2/api/rum_api.rb +++ b/lib/datadog_api_client/v2/api/rum_api.rb @@ -239,11 +239,12 @@ def delete_sourcemaps(mapkind, dry_run, opts = {}) # @param mapkind [SourcemapMapKind] The type of source map. Valid values are `js`, `jvm`, `ios`, `react`, `flutter`, `elf`, `ndk`, `il2cpp`, `wasm`, `portable_pdb`. # @param dry_run [Boolean] When set to `true`, returns the source maps that would be deleted without performing the actual deletion. When set to `false`, performs the deletion. # @param opts [Hash] the optional parameters - # @option opts [Array] :filter_service Filter by service names (multiple values allowed). Required for `js`, `jvm`, `react`, and `flutter` map kinds. - # @option opts [Array] :filter_version Filter by version values (multiple values allowed, maximum 10). Required for `js`, `jvm`, `react`, and `flutter` map kinds. + # @option opts [SourcemapSymbolType] :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]`. + # @option opts [Array] :filter_service Filter by service names (multiple values allowed). Required for `js`, `jvm`, `react`, and `flutter` map kinds, and for `wasm` with `symbol_type=sourcemap`. + # @option opts [Array] :filter_version Filter by version values (multiple values allowed, maximum 10). Required for `js`, `jvm`, `react`, and `flutter` map kinds, and for `wasm` with `symbol_type=sourcemap`. # @option opts [Array] :filter_variant Filter by variant values (multiple values allowed). Supported for `jvm`. # @option opts [Array] :filter_id Filter by source map ID values (multiple values allowed). Supported for all map kinds. - # @option opts [Array] :filter_build_id Filter by build ID values (multiple values allowed). Supported for `jvm`, `ndk`, `il2cpp`, `wasm`, and `portable_pdb`. + # @option opts [Array] :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`. # @option opts [Array] :filter_uuid Filter by UUID values (multiple values allowed). Supported for `ios`. # @option opts [Array] :filter_platform Filter by platform values (multiple values allowed). Supported for `react`. # @option opts [Array] :filter_build_number Filter by build number values (multiple values allowed). Supported for `react`. @@ -278,6 +279,10 @@ def delete_sourcemaps_with_http_info(mapkind, dry_run, opts = {}) if @api_client.config.client_side_validation && !allowable_values.include?(mapkind) fail ArgumentError, "invalid value for \"mapkind\", must be one of #{allowable_values}" end + allowable_values = ['dwarf', 'sourcemap'] + if @api_client.config.client_side_validation && opts[:'symbol_type'] && !allowable_values.include?(opts[:'symbol_type']) + fail ArgumentError, "invalid value for \"symbol_type\", must be one of #{allowable_values}" + end # verify the required parameter 'dry_run' is set if @api_client.config.client_side_validation && dry_run.nil? fail ArgumentError, "Missing the required parameter 'dry_run' when calling RUMAPI.delete_sourcemaps" @@ -289,6 +294,7 @@ def delete_sourcemaps_with_http_info(mapkind, dry_run, opts = {}) query_params = opts[:query_params] || {} query_params[:'mapkind'] = mapkind query_params[:'dry_run'] = dry_run + query_params[:'symbol_type'] = opts[:'symbol_type'] if !opts[:'symbol_type'].nil? query_params[:'filter[service]'] = @api_client.build_collection_param(opts[:'filter_service'], :multi) if !opts[:'filter_service'].nil? query_params[:'filter[version]'] = @api_client.build_collection_param(opts[:'filter_version'], :multi) if !opts[:'filter_version'].nil? query_params[:'filter[variant]'] = @api_client.build_collection_param(opts[:'filter_variant'], :multi) if !opts[:'filter_variant'].nil? @@ -479,7 +485,8 @@ def get_service_repository_info(body, opts = {}) # 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. # # @param body [ServiceRepositoryInfoRequest] # @param opts [Hash] the optional parameters @@ -849,14 +856,15 @@ def list_sourcemaps(opts = {}) # @param opts [Hash] the optional parameters # @option opts [SourcemapSearchBy] :search_by Set to `debug_id` to browse JavaScript source maps indexed by debug ID. Only supported for `mapkind=js`. Omit for service/version searches or a specific `filter[debug_id]` lookup. In debug-ID browse mode, service, version, and filename filters are not supported. # @option opts [SourcemapMapKind] :mapkind The type of source map. Defaults to `js`. + # @option opts [SourcemapSymbolType] :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]`. # @option opts [String] :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 a specific `filter[debug_id]` lookup without `search_by=debug_id`. # @option opts [Integer] :page_size The number of results per page. Defaults to 100. Must be at least 1; values above 1000 are capped at 1000. # @option opts [Integer] :page_number Legacy page number, starting from 1. Prefer `page[after]` for JavaScript listings. Not supported with `search_by=debug_id`. Other map kinds default to page 1 when pagination parameters are omitted. - # @option opts [Array] :filter_service Filter by service names (multiple values allowed). Required for `jvm`, `react`, and `flutter` map kinds. Also required for `js` unless searching by `filter[debug_id]` or browsing with `search_by=debug_id`. - # @option opts [Array] :filter_version Filter by version values (multiple values allowed). Required for `jvm`, `react`, and `flutter` map kinds. Also required for `js` unless searching by `filter[debug_id]` or browsing with `search_by=debug_id`. + # @option opts [Array] :filter_service Filter by service names (multiple values allowed). Required for `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`. + # @option opts [Array] :filter_version Filter by version values (multiple values allowed). Required for `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`. # @option opts [Array] :filter_variant Filter by variant values (multiple values allowed). Supported for `jvm`. # @option opts [Array] :filter_id Filter by source map ID values (multiple values allowed). Supported for all map kinds. - # @option opts [Array] :filter_build_id Filter by build ID values (multiple values allowed). Supported for `jvm`, `ndk`, `il2cpp`, `wasm`, and `portable_pdb`. + # @option opts [Array] :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`. # @option opts [Array] :filter_uuid Filter by UUID values (multiple values allowed). Supported for `ios`. # @option opts [Array] :filter_platform Filter by platform values (multiple values allowed). Supported for `react`. # @option opts [Array] :filter_build_number Filter by build number values (multiple values allowed). Supported for `react`. @@ -890,6 +898,10 @@ def list_sourcemaps_with_http_info(opts = {}) if @api_client.config.client_side_validation && opts[:'mapkind'] && !allowable_values.include?(opts[:'mapkind']) fail ArgumentError, "invalid value for \"mapkind\", must be one of #{allowable_values}" end + allowable_values = ['dwarf', 'sourcemap'] + if @api_client.config.client_side_validation && opts[:'symbol_type'] && !allowable_values.include?(opts[:'symbol_type']) + fail ArgumentError, "invalid value for \"symbol_type\", must be one of #{allowable_values}" + end if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] < 1 fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling RUMAPI.list_sourcemaps, must be greater than or equal to 1.' end @@ -903,6 +915,7 @@ def list_sourcemaps_with_http_info(opts = {}) query_params = opts[:query_params] || {} query_params[:'search_by'] = opts[:'search_by'] if !opts[:'search_by'].nil? query_params[:'mapkind'] = opts[:'mapkind'] if !opts[:'mapkind'].nil? + query_params[:'symbol_type'] = opts[:'symbol_type'] if !opts[:'symbol_type'].nil? query_params[:'page[after]'] = opts[:'page_after'] if !opts[:'page_after'].nil? query_params[:'page[size]'] = opts[:'page_size'] if !opts[:'page_size'].nil? query_params[:'page[number]'] = opts[:'page_number'] if !opts[:'page_number'].nil? @@ -978,11 +991,12 @@ def restore_sourcemaps(mapkind, dry_run, opts = {}) # @param mapkind [SourcemapMapKind] The type of source map. Valid values are `js`, `jvm`, `ios`, `react`, `flutter`, `elf`, `ndk`, `il2cpp`, `wasm`, `portable_pdb`. # @param dry_run [Boolean] When set to `true`, returns the source maps that would be restored without performing the actual restoration. When set to `false`, performs the restoration. # @param opts [Hash] the optional parameters - # @option opts [Array] :filter_service Filter by service names (multiple values allowed). Required for `js`, `jvm`, `react`, and `flutter` map kinds. - # @option opts [Array] :filter_version Filter by version values (multiple values allowed, maximum 10). Required for `js`, `jvm`, `react`, and `flutter` map kinds. + # @option opts [SourcemapSymbolType] :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]`. + # @option opts [Array] :filter_service Filter by service names (multiple values allowed). Required for `js`, `jvm`, `react`, and `flutter` map kinds, and for `wasm` with `symbol_type=sourcemap`. + # @option opts [Array] :filter_version Filter by version values (multiple values allowed, maximum 10). Required for `js`, `jvm`, `react`, and `flutter` map kinds, and for `wasm` with `symbol_type=sourcemap`. # @option opts [Array] :filter_variant Filter by variant values (multiple values allowed). Supported for `jvm`. # @option opts [Array] :filter_id Filter by source map ID values (multiple values allowed). Supported for all map kinds. - # @option opts [Array] :filter_build_id Filter by build ID values (multiple values allowed). Supported for `jvm`, `ndk`, `il2cpp`, `wasm`, and `portable_pdb`. + # @option opts [Array] :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`. # @option opts [Array] :filter_uuid Filter by UUID values (multiple values allowed). Supported for `ios`. # @option opts [Array] :filter_platform Filter by platform values (multiple values allowed). Supported for `react`. # @option opts [Array] :filter_build_number Filter by build number values (multiple values allowed). Supported for `react`. @@ -1017,6 +1031,10 @@ def restore_sourcemaps_with_http_info(mapkind, dry_run, opts = {}) if @api_client.config.client_side_validation && !allowable_values.include?(mapkind) fail ArgumentError, "invalid value for \"mapkind\", must be one of #{allowable_values}" end + allowable_values = ['dwarf', 'sourcemap'] + if @api_client.config.client_side_validation && opts[:'symbol_type'] && !allowable_values.include?(opts[:'symbol_type']) + fail ArgumentError, "invalid value for \"symbol_type\", must be one of #{allowable_values}" + end # verify the required parameter 'dry_run' is set if @api_client.config.client_side_validation && dry_run.nil? fail ArgumentError, "Missing the required parameter 'dry_run' when calling RUMAPI.restore_sourcemaps" @@ -1028,6 +1046,7 @@ def restore_sourcemaps_with_http_info(mapkind, dry_run, opts = {}) query_params = opts[:query_params] || {} query_params[:'mapkind'] = mapkind query_params[:'dry_run'] = dry_run + query_params[:'symbol_type'] = opts[:'symbol_type'] if !opts[:'symbol_type'].nil? query_params[:'filter[service]'] = @api_client.build_collection_param(opts[:'filter_service'], :multi) if !opts[:'filter_service'].nil? query_params[:'filter[version]'] = @api_client.build_collection_param(opts[:'filter_version'], :multi) if !opts[:'filter_version'].nil? query_params[:'filter[variant]'] = @api_client.build_collection_param(opts[:'filter_variant'], :multi) if !opts[:'filter_variant'].nil? diff --git a/lib/datadog_api_client/v2/models/service_repository_info_request_attributes.rb b/lib/datadog_api_client/v2/models/service_repository_info_request_attributes.rb index be893e2fb74e..c9eb4f26f000 100644 --- a/lib/datadog_api_client/v2/models/service_repository_info_request_attributes.rb +++ b/lib/datadog_api_client/v2/models/service_repository_info_request_attributes.rb @@ -21,11 +21,14 @@ module DatadogAPIClient::V2 class ServiceRepositoryInfoRequestAttributes include BaseGenericModel - # The name of the service. - attr_reader :service + # The debug ID of a JavaScript source map, in UUID format. Alternative to `service` and `version`. + attr_accessor :debug_id - # The version of the service. - attr_reader :version + # The name of the service. Required with `version` when `debug_id` is not set. + attr_accessor :service + + # The version of the service. Required with `service` when `debug_id` is not set. + attr_accessor :version attr_accessor :additional_properties @@ -33,6 +36,7 @@ class ServiceRepositoryInfoRequestAttributes # @!visibility private def self.attribute_map { + :'debug_id' => :'debug_id', :'service' => :'service', :'version' => :'version' } @@ -42,6 +46,7 @@ def self.attribute_map # @!visibility private def self.openapi_types { + :'debug_id' => :'UUID', :'service' => :'String', :'version' => :'String' } @@ -65,6 +70,10 @@ def initialize(attributes = {}) end } + if attributes.key?(:'debug_id') + self.debug_id = attributes[:'debug_id'] + end + if attributes.key?(:'service') self.service = attributes[:'service'] end @@ -74,35 +83,6 @@ def initialize(attributes = {}) end end - # Check to see if the all the properties in the model are valid - # @return true if the model is valid - # @!visibility private - def valid? - return false if @service.nil? - return false if @version.nil? - true - end - - # Custom attribute writer method with validation - # @param service [Object] Object to be assigned - # @!visibility private - def service=(service) - if service.nil? - fail ArgumentError, 'invalid value for "service", service cannot be nil.' - end - @service = service - end - - # Custom attribute writer method with validation - # @param version [Object] Object to be assigned - # @!visibility private - def version=(version) - if version.nil? - fail ArgumentError, 'invalid value for "version", version cannot be nil.' - end - @version = version - end - # Returns the object in the form of hash, with additionalProperties support. # @return [Hash] Returns the object in the form of hash # @!visibility private @@ -129,6 +109,7 @@ def to_hash def ==(o) return true if self.equal?(o) self.class == o.class && + debug_id == o.debug_id && service == o.service && version == o.version && additional_properties == o.additional_properties @@ -138,7 +119,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [service, version, additional_properties].hash + [debug_id, service, version, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/service_repository_info_response_data.rb b/lib/datadog_api_client/v2/models/service_repository_info_response_data.rb index ff4e6278ce1a..ce2317506cd4 100644 --- a/lib/datadog_api_client/v2/models/service_repository_info_response_data.rb +++ b/lib/datadog_api_client/v2/models/service_repository_info_response_data.rb @@ -24,7 +24,7 @@ class ServiceRepositoryInfoResponseData # Attributes of the service repository information. attr_reader :attributes - # The identifier composed of the service name and version. + # The identifier composed of the service name and version, or the debug ID when the lookup was made by debug ID. attr_reader :id # The resource type for service repository info objects. diff --git a/lib/datadog_api_client/v2/models/sourcemap_symbol_type.rb b/lib/datadog_api_client/v2/models/sourcemap_symbol_type.rb new file mode 100644 index 000000000000..f1089f61c5ca --- /dev/null +++ b/lib/datadog_api_client/v2/models/sourcemap_symbol_type.rb @@ -0,0 +1,27 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # The WASM symbol representation. + class SourcemapSymbolType + include BaseEnumModel + + DWARF = "dwarf".freeze + SOURCEMAP = "sourcemap".freeze + end +end