diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml
index de1bbc1393c..51127c3aea2 100644
--- a/.generator/schemas/v2/openapi.yaml
+++ b/.generator/schemas/v2/openapi.yaml
@@ -75095,6 +75095,10 @@ components:
type: integer
product_scales:
$ref: "#/components/schemas/RUMProductScales"
+ remote_config_id:
+ description: ID of the RUM SDK remote configuration for the application, if one exists.
+ example: abc12345-1234-5678-abcd-ef1234567890
+ type: string
type:
description: "Type of the RUM application. Supported values are `browser`, `ios`, `android`, `react-native`, `flutter`, `roku`, `electron`, `unity`, `kotlin-multiplatform`."
example: browser
@@ -80169,6 +80173,380 @@ components:
$ref: "#/components/schemas/RumRetentionFilterData"
type: array
type: object
+ RumSdkConfigAllowedTracingUrlList:
+ description: A list of URL configurations for distributed tracing.
+ items:
+ $ref: "#/components/schemas/RumSdkConfigTracingUrlConfig"
+ type: array
+ RumSdkConfigAllowedTrackingOriginList:
+ description: A list of origin patterns allowed for cross-origin session tracking.
+ items:
+ $ref: "#/components/schemas/RumSdkConfigMatchOption"
+ type: array
+ RumSdkConfigAttributes:
+ description: Attributes of the RUM SDK configuration.
+ properties:
+ rum:
+ $ref: "#/components/schemas/RumSdkConfigRumAttributes"
+ required:
+ - rum
+ type: object
+ RumSdkConfigData:
+ description: The RUM SDK configuration data object.
+ properties:
+ attributes:
+ $ref: "#/components/schemas/RumSdkConfigAttributes"
+ id:
+ description: The unique identifier of the RUM SDK configuration.
+ example: "abc12345-1234-5678-abcd-ef1234567890"
+ type: string
+ meta:
+ $ref: "#/components/schemas/RumSdkConfigMeta"
+ type:
+ $ref: "#/components/schemas/RumSdkConfigType"
+ required:
+ - id
+ - type
+ - attributes
+ type: object
+ RumSdkConfigDynamicOption:
+ description: A dynamic configuration option that extracts a value at runtime using a specified strategy.
+ properties:
+ attribute:
+ description: The element attribute to read. Used when `strategy` is `dom`.
+ example: "data-version"
+ type: string
+ extractor:
+ $ref: "#/components/schemas/RumSdkConfigSerializedRegex"
+ key:
+ description: The `localStorage` key to read. Required when `strategy` is `localStorage`.
+ example: "app.version"
+ type: string
+ name:
+ description: The cookie name to read. Required when `strategy` is `cookie`.
+ example: "app_version"
+ type: string
+ path:
+ description: The JavaScript path used to extract the value. Required when `strategy` is `js`.
+ example: "application.version"
+ type: string
+ rc_serialized_type:
+ $ref: "#/components/schemas/RumSdkConfigDynamicOptionSerializedType"
+ selector:
+ description: The CSS selector to read from the page. Required when `strategy` is `dom`.
+ example: "#app-version"
+ type: string
+ strategy:
+ $ref: "#/components/schemas/RumSdkConfigDynamicOptionStrategy"
+ required:
+ - rc_serialized_type
+ - strategy
+ type: object
+ RumSdkConfigDynamicOptionPair:
+ description: A key-value pair where the value is a dynamic configuration option.
+ properties:
+ key:
+ description: The key name for this dynamic configuration pair.
+ example: "id"
+ type: string
+ value:
+ $ref: "#/components/schemas/RumSdkConfigDynamicOption"
+ required:
+ - key
+ - value
+ type: object
+ RumSdkConfigDynamicOptionPairList:
+ description: A list of dynamic option key-value pairs.
+ items:
+ $ref: "#/components/schemas/RumSdkConfigDynamicOptionPair"
+ type: array
+ RumSdkConfigDynamicOptionSerializedType:
+ description: The type identifier for a dynamic option. Always `dynamic`.
+ enum:
+ - dynamic
+ example: dynamic
+ type: string
+ x-enum-varnames:
+ - DYNAMIC
+ RumSdkConfigDynamicOptionStrategy:
+ description: The strategy used to extract the dynamic value.
+ enum:
+ - js
+ - cookie
+ - dom
+ - localStorage
+ example: js
+ type: string
+ x-enum-varnames:
+ - JS
+ - COOKIE
+ - DOM
+ - LOCAL_STORAGE
+ RumSdkConfigMatchOption:
+ description: A match option used for URL or origin pattern matching.
+ properties:
+ rc_serialized_type:
+ $ref: "#/components/schemas/RumSdkConfigMatchOptionSerializedType"
+ value:
+ description: The value to match against.
+ example: "https://app.datadoghq.com"
+ type: string
+ required:
+ - rc_serialized_type
+ - value
+ type: object
+ RumSdkConfigMatchOptionSerializedType:
+ description: The type of match pattern, either a literal string or a regex.
+ enum:
+ - string
+ - regex
+ example: string
+ type: string
+ x-enum-varnames:
+ - STRING
+ - REGEX
+ RumSdkConfigMeta:
+ description: Metadata associated with a RUM SDK configuration.
+ properties:
+ updated_at:
+ description: The timestamp of the last update to this configuration.
+ example: "2024-01-15T09:30:00.000Z"
+ format: date-time
+ type: string
+ updated_by:
+ description: The handle of the user who last updated this configuration.
+ example: "user@datadoghq.com"
+ type: string
+ required:
+ - updated_at
+ - updated_by
+ type: object
+ RumSdkConfigResponse:
+ description: Response containing a RUM SDK configuration.
+ properties:
+ data:
+ $ref: "#/components/schemas/RumSdkConfigData"
+ required:
+ - data
+ type: object
+ RumSdkConfigRumAttributes:
+ description: The RUM SDK settings for a configuration.
+ properties:
+ allowed_tracing_urls:
+ $ref: "#/components/schemas/RumSdkConfigAllowedTracingUrlList"
+ allowed_tracking_origins:
+ $ref: "#/components/schemas/RumSdkConfigAllowedTrackingOriginList"
+ application_id:
+ description: The ID of the RUM application this configuration belongs to.
+ example: "f80e917c-3cd0-4048-ade7-1c4c207baa99"
+ type: string
+ context:
+ $ref: "#/components/schemas/RumSdkConfigDynamicOptionPairList"
+ default_privacy_level:
+ description: The default privacy masking level applied to all RUM data.
+ example: "mask-user-input"
+ type: string
+ enable_privacy_for_action_name:
+ description: Whether to mask user-interaction action names for privacy.
+ example: false
+ type: boolean
+ env:
+ description: The environment tag for the RUM application.
+ example: "production"
+ type: string
+ service:
+ description: The service name tag for the RUM application.
+ example: "my-service"
+ type: string
+ session_replay_sample_rate:
+ description: The percentage of collected sessions for which a replay is captured (0–100).
+ example: 10
+ format: int64
+ maximum: 100
+ minimum: 0
+ type: integer
+ session_sample_rate:
+ description: The percentage of user sessions to collect (0–100).
+ example: 50
+ format: int64
+ maximum: 100
+ minimum: 0
+ type: integer
+ trace_sample_rate:
+ description: The percentage of requests to forward as APM traces (0–100).
+ example: 100
+ format: int64
+ maximum: 100
+ minimum: 0
+ type: integer
+ track_session_across_subdomains:
+ description: Whether to share a session across subdomains of the same site.
+ example: false
+ type: boolean
+ user:
+ $ref: "#/components/schemas/RumSdkConfigDynamicOptionPairList"
+ version:
+ $ref: "#/components/schemas/RumSdkConfigDynamicOption"
+ required:
+ - application_id
+ - session_sample_rate
+ - session_replay_sample_rate
+ - default_privacy_level
+ - enable_privacy_for_action_name
+ type: object
+ RumSdkConfigRumUpdateAttributes:
+ description: The RUM SDK settings to apply when updating a configuration.
+ properties:
+ allowed_tracing_urls:
+ $ref: "#/components/schemas/RumSdkConfigAllowedTracingUrlList"
+ allowed_tracking_origins:
+ $ref: "#/components/schemas/RumSdkConfigAllowedTrackingOriginList"
+ context:
+ $ref: "#/components/schemas/RumSdkConfigDynamicOptionPairList"
+ default_privacy_level:
+ description: The default privacy masking level applied to all RUM data.
+ example: "mask"
+ type: string
+ enable_privacy_for_action_name:
+ description: Whether to mask user-interaction action names for privacy.
+ example: true
+ type: boolean
+ env:
+ description: The environment tag for the RUM application.
+ example: "production"
+ type: string
+ service:
+ description: The service name tag for the RUM application.
+ example: "my-service"
+ type: string
+ session_replay_sample_rate:
+ description: The percentage of collected sessions for which a replay is captured (0–100).
+ example: 20
+ format: int64
+ maximum: 100
+ minimum: 0
+ type: integer
+ session_sample_rate:
+ description: The percentage of user sessions to collect (0–100).
+ example: 75
+ format: int64
+ maximum: 100
+ minimum: 0
+ type: integer
+ trace_sample_rate:
+ description: The percentage of requests to forward as APM traces (0–100).
+ example: 100
+ format: int64
+ maximum: 100
+ minimum: 0
+ type: integer
+ track_session_across_subdomains:
+ description: Whether to share a session across subdomains of the same site.
+ example: false
+ type: boolean
+ user:
+ $ref: "#/components/schemas/RumSdkConfigDynamicOptionPairList"
+ version:
+ $ref: "#/components/schemas/RumSdkConfigDynamicOption"
+ required:
+ - session_sample_rate
+ - session_replay_sample_rate
+ - default_privacy_level
+ - enable_privacy_for_action_name
+ type: object
+ RumSdkConfigSerializedRegex:
+ description: A serialized regex used as an extractor in dynamic options.
+ properties:
+ rc_serialized_type:
+ $ref: "#/components/schemas/RumSdkConfigSerializedRegexType"
+ value:
+ description: The regex pattern used for extraction.
+ example: "^https://app-.*.datadoghq.com"
+ type: string
+ required:
+ - rc_serialized_type
+ - value
+ type: object
+ RumSdkConfigSerializedRegexType:
+ description: The type identifier for a serialized regex. Always `regex`.
+ enum:
+ - regex
+ example: regex
+ type: string
+ x-enum-varnames:
+ - REGEX
+ RumSdkConfigTracingUrlConfig:
+ description: Configuration for a URL that should have distributed tracing enabled.
+ properties:
+ match:
+ $ref: "#/components/schemas/RumSdkConfigMatchOption"
+ propagator_types:
+ description: The list of trace propagator types to use for this URL.
+ example:
+ - datadog
+ - tracecontext
+ items:
+ $ref: "#/components/schemas/RumSdkConfigTracingUrlPropagatorType"
+ type: array
+ required:
+ - match
+ - propagator_types
+ type: object
+ RumSdkConfigTracingUrlPropagatorType:
+ description: A trace propagator type.
+ enum:
+ - datadog
+ - b3
+ - b3multi
+ - tracecontext
+ example: datadog
+ type: string
+ x-enum-varnames:
+ - DATADOG
+ - B3
+ - B3MULTI
+ - TRACECONTEXT
+ RumSdkConfigType:
+ default: rum_sdk_config
+ description: The type of the resource. The value should always be `rum_sdk_config`.
+ enum:
+ - rum_sdk_config
+ example: rum_sdk_config
+ type: string
+ x-enum-varnames:
+ - RUM_SDK_CONFIG
+ RumSdkConfigUpdateAttributes:
+ description: Attributes of the RUM SDK configuration to update.
+ properties:
+ rum:
+ $ref: "#/components/schemas/RumSdkConfigRumUpdateAttributes"
+ required:
+ - rum
+ type: object
+ RumSdkConfigUpdateData:
+ description: The data object for updating a RUM SDK configuration.
+ properties:
+ attributes:
+ $ref: "#/components/schemas/RumSdkConfigUpdateAttributes"
+ id:
+ description: The ID of the RUM SDK configuration to update.
+ example: "abc12345-1234-5678-abcd-ef1234567890"
+ type: string
+ type:
+ $ref: "#/components/schemas/RumSdkConfigType"
+ required:
+ - id
+ - type
+ - attributes
+ type: object
+ RumSdkConfigUpdateRequest:
+ description: Request body for updating a RUM SDK configuration.
+ properties:
+ data:
+ $ref: "#/components/schemas/RumSdkConfigUpdateData"
+ required:
+ - data
+ type: object
RunDataObservabilityMonitorResponse:
description: The response returned when a data observability monitor run is triggered.
properties:
@@ -162337,6 +162715,136 @@ paths:
summary: Update a Workload Protection policy
tags: ["CSM Threats"]
x-codegen-request-body-name: body
+ /api/v2/remote_config/products/rum/configs/{config_id}:
+ get:
+ description: Retrieve a RUM SDK configuration by its identifier.
+ operationId: GetRumSdkConfig
+ parameters:
+ - description: The ID of the RUM SDK configuration.
+ example: "abc12345-1234-5678-abcd-ef1234567890"
+ in: path
+ name: config_id
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ content:
+ application/json:
+ examples:
+ default:
+ value:
+ data:
+ attributes:
+ rum:
+ application_id: "f80e917c-3cd0-4048-ade7-1c4c207baa99"
+ default_privacy_level: "mask-user-input"
+ enable_privacy_for_action_name: false
+ env: "production"
+ service: "my-service"
+ session_replay_sample_rate: 10
+ session_sample_rate: 50
+ trace_sample_rate: 100
+ track_session_across_subdomains: false
+ id: "abc12345-1234-5678-abcd-ef1234567890"
+ meta:
+ updated_at: "2024-01-15T09:30:00.000Z"
+ updated_by: "user@datadoghq.com"
+ type: rum_sdk_config
+ schema:
+ $ref: "#/components/schemas/RumSdkConfigResponse"
+ description: OK
+ "403":
+ $ref: "#/components/responses/NotAuthorizedResponse"
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Not Found
+ "429":
+ $ref: "#/components/responses/TooManyRequestsResponse"
+ summary: Get a RUM SDK configuration
+ tags:
+ - RUM Remote Config
+ x-unstable: |-
+ **Note**: This endpoint is in preview and is subject to change.
+ If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).
+ put:
+ description: |-
+ Update an existing RUM SDK configuration by its identifier.
+ Returns the updated configuration when successful.
+ operationId: UpdateRumSdkConfig
+ parameters:
+ - description: The ID of the RUM SDK configuration.
+ example: "abc12345-1234-5678-abcd-ef1234567890"
+ in: path
+ name: config_id
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ examples:
+ default:
+ value:
+ data:
+ attributes:
+ rum:
+ default_privacy_level: "mask"
+ enable_privacy_for_action_name: true
+ session_replay_sample_rate: 20
+ session_sample_rate: 75
+ id: "abc12345-1234-5678-abcd-ef1234567890"
+ type: rum_sdk_config
+ schema:
+ $ref: "#/components/schemas/RumSdkConfigUpdateRequest"
+ description: The RUM SDK configuration update.
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ examples:
+ default:
+ value:
+ data:
+ attributes:
+ rum:
+ application_id: "f80e917c-3cd0-4048-ade7-1c4c207baa99"
+ default_privacy_level: "mask"
+ enable_privacy_for_action_name: true
+ session_replay_sample_rate: 20
+ session_sample_rate: 75
+ id: "abc12345-1234-5678-abcd-ef1234567890"
+ type: rum_sdk_config
+ schema:
+ $ref: "#/components/schemas/RumSdkConfigResponse"
+ description: OK
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Bad Request
+ "403":
+ $ref: "#/components/responses/NotAuthorizedResponse"
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Not Found
+ "429":
+ $ref: "#/components/responses/TooManyRequestsResponse"
+ summary: Update a RUM SDK configuration
+ tags:
+ - RUM Remote Config
+ x-codegen-request-body-name: body
+ x-unstable: |-
+ **Note**: This endpoint is in preview and is subject to change.
+ If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).
/api/v2/replay/heatmap/snapshots:
get:
description: List heatmap snapshots.
@@ -192882,6 +193390,12 @@ tags:
- description: |-
Get insights into the performance of your Real User Monitoring (RUM) applications over HTTP. See the [RUM & Session Replay page](https://docs.datadoghq.com/real_user_monitoring/) for more information
name: RUM Insights
+ - description: |-
+ Manage [RUM SDK configurations](https://docs.datadoghq.com/real_user_monitoring/) delivered to RUM applications via Remote Configuration.
+ externalDocs:
+ description: Find out more at
+ url: https://docs.datadoghq.com/real_user_monitoring/
+ name: RUM Remote Config
- description: View and manage Reference Tables in your organization.
name: Reference Tables
- description: |-
diff --git a/examples/v2/rum-remote-config/GetRumSdkConfig.java b/examples/v2/rum-remote-config/GetRumSdkConfig.java
new file mode 100644
index 00000000000..d733f74bd22
--- /dev/null
+++ b/examples/v2/rum-remote-config/GetRumSdkConfig.java
@@ -0,0 +1,26 @@
+// Get a RUM SDK configuration returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.RumRemoteConfigApi;
+import com.datadog.api.client.v2.model.RumSdkConfigResponse;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.getRumSdkConfig", true);
+ RumRemoteConfigApi apiInstance = new RumRemoteConfigApi(defaultClient);
+
+ try {
+ RumSdkConfigResponse result =
+ apiInstance.getRumSdkConfig("abc12345-1234-5678-abcd-ef1234567890");
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling RumRemoteConfigApi#getRumSdkConfig");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/examples/v2/rum-remote-config/UpdateRumSdkConfig.java b/examples/v2/rum-remote-config/UpdateRumSdkConfig.java
new file mode 100644
index 00000000000..c58060c97cc
--- /dev/null
+++ b/examples/v2/rum-remote-config/UpdateRumSdkConfig.java
@@ -0,0 +1,144 @@
+// Update a RUM SDK configuration returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.RumRemoteConfigApi;
+import com.datadog.api.client.v2.model.RumSdkConfigDynamicOption;
+import com.datadog.api.client.v2.model.RumSdkConfigDynamicOptionPair;
+import com.datadog.api.client.v2.model.RumSdkConfigDynamicOptionSerializedType;
+import com.datadog.api.client.v2.model.RumSdkConfigDynamicOptionStrategy;
+import com.datadog.api.client.v2.model.RumSdkConfigMatchOption;
+import com.datadog.api.client.v2.model.RumSdkConfigMatchOptionSerializedType;
+import com.datadog.api.client.v2.model.RumSdkConfigResponse;
+import com.datadog.api.client.v2.model.RumSdkConfigRumUpdateAttributes;
+import com.datadog.api.client.v2.model.RumSdkConfigSerializedRegex;
+import com.datadog.api.client.v2.model.RumSdkConfigSerializedRegexType;
+import com.datadog.api.client.v2.model.RumSdkConfigTracingUrlConfig;
+import com.datadog.api.client.v2.model.RumSdkConfigTracingUrlPropagatorType;
+import com.datadog.api.client.v2.model.RumSdkConfigType;
+import com.datadog.api.client.v2.model.RumSdkConfigUpdateAttributes;
+import com.datadog.api.client.v2.model.RumSdkConfigUpdateData;
+import com.datadog.api.client.v2.model.RumSdkConfigUpdateRequest;
+import java.util.Arrays;
+import java.util.Collections;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.updateRumSdkConfig", true);
+ RumRemoteConfigApi apiInstance = new RumRemoteConfigApi(defaultClient);
+
+ RumSdkConfigUpdateRequest body =
+ new RumSdkConfigUpdateRequest()
+ .data(
+ new RumSdkConfigUpdateData()
+ .attributes(
+ new RumSdkConfigUpdateAttributes()
+ .rum(
+ new RumSdkConfigRumUpdateAttributes()
+ .allowedTracingUrls(
+ Collections.singletonList(
+ new RumSdkConfigTracingUrlConfig()
+ .match(
+ new RumSdkConfigMatchOption()
+ .rcSerializedType(
+ RumSdkConfigMatchOptionSerializedType
+ .STRING)
+ .value("https://app.datadoghq.com"))
+ .propagatorTypes(
+ Arrays.asList(
+ RumSdkConfigTracingUrlPropagatorType
+ .DATADOG,
+ RumSdkConfigTracingUrlPropagatorType
+ .TRACECONTEXT))))
+ .allowedTrackingOrigins(
+ Collections.singletonList(
+ new RumSdkConfigMatchOption()
+ .rcSerializedType(
+ RumSdkConfigMatchOptionSerializedType.STRING)
+ .value("https://app.datadoghq.com")))
+ .context(
+ Collections.singletonList(
+ new RumSdkConfigDynamicOptionPair()
+ .key("id")
+ .value(
+ new RumSdkConfigDynamicOption()
+ .attribute("data-version")
+ .extractor(
+ new RumSdkConfigSerializedRegex()
+ .rcSerializedType(
+ RumSdkConfigSerializedRegexType
+ .REGEX)
+ .value(
+ "^https://app-.*.datadoghq.com"))
+ .key("app.version")
+ .name("app_version")
+ .path("application.version")
+ .rcSerializedType(
+ RumSdkConfigDynamicOptionSerializedType
+ .DYNAMIC)
+ .selector("#app-version")
+ .strategy(
+ RumSdkConfigDynamicOptionStrategy.JS))))
+ .defaultPrivacyLevel("mask")
+ .enablePrivacyForActionName(true)
+ .env("production")
+ .service("my-service")
+ .sessionReplaySampleRate(20L)
+ .sessionSampleRate(75L)
+ .traceSampleRate(100L)
+ .trackSessionAcrossSubdomains(false)
+ .user(
+ Collections.singletonList(
+ new RumSdkConfigDynamicOptionPair()
+ .key("id")
+ .value(
+ new RumSdkConfigDynamicOption()
+ .attribute("data-version")
+ .extractor(
+ new RumSdkConfigSerializedRegex()
+ .rcSerializedType(
+ RumSdkConfigSerializedRegexType
+ .REGEX)
+ .value(
+ "^https://app-.*.datadoghq.com"))
+ .key("app.version")
+ .name("app_version")
+ .path("application.version")
+ .rcSerializedType(
+ RumSdkConfigDynamicOptionSerializedType
+ .DYNAMIC)
+ .selector("#app-version")
+ .strategy(
+ RumSdkConfigDynamicOptionStrategy.JS))))
+ .version(
+ new RumSdkConfigDynamicOption()
+ .attribute("data-version")
+ .extractor(
+ new RumSdkConfigSerializedRegex()
+ .rcSerializedType(
+ RumSdkConfigSerializedRegexType.REGEX)
+ .value("^https://app-.*.datadoghq.com"))
+ .key("app.version")
+ .name("app_version")
+ .path("application.version")
+ .rcSerializedType(
+ RumSdkConfigDynamicOptionSerializedType.DYNAMIC)
+ .selector("#app-version")
+ .strategy(RumSdkConfigDynamicOptionStrategy.JS))))
+ .id("abc12345-1234-5678-abcd-ef1234567890")
+ .type(RumSdkConfigType.RUM_SDK_CONFIG));
+
+ try {
+ RumSdkConfigResponse result =
+ apiInstance.updateRumSdkConfig("abc12345-1234-5678-abcd-ef1234567890", body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling RumRemoteConfigApi#updateRumSdkConfig");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/ApiClient.java b/src/main/java/com/datadog/api/client/ApiClient.java
index eb340ee7ad0..cc9f4472187 100644
--- a/src/main/java/com/datadog/api/client/ApiClient.java
+++ b/src/main/java/com/datadog/api/client/ApiClient.java
@@ -1200,6 +1200,8 @@ public class ApiClient {
put("v2.getPrunedTraceByID", false);
put("v2.getTraceByID", false);
put("v2.getAsmServiceByName", false);
+ put("v2.getRumSdkConfig", false);
+ put("v2.updateRumSdkConfig", false);
put("v2.createReportSchedule", false);
put("v2.patchReportSchedule", false);
put("v2.deleteSourcemaps", false);
diff --git a/src/main/java/com/datadog/api/client/v2/api/RumRemoteConfigApi.java b/src/main/java/com/datadog/api/client/v2/api/RumRemoteConfigApi.java
new file mode 100644
index 00000000000..809089ec75f
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/api/RumRemoteConfigApi.java
@@ -0,0 +1,373 @@
+package com.datadog.api.client.v2.api;
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.ApiResponse;
+import com.datadog.api.client.Pair;
+import com.datadog.api.client.v2.model.RumSdkConfigResponse;
+import com.datadog.api.client.v2.model.RumSdkConfigUpdateRequest;
+import jakarta.ws.rs.client.Invocation;
+import jakarta.ws.rs.core.GenericType;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.CompletableFuture;
+
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class RumRemoteConfigApi {
+ private ApiClient apiClient;
+
+ public RumRemoteConfigApi() {
+ this(ApiClient.getDefaultApiClient());
+ }
+
+ public RumRemoteConfigApi(ApiClient apiClient) {
+ this.apiClient = apiClient;
+ }
+
+ /**
+ * Get the API client.
+ *
+ * @return API client
+ */
+ public ApiClient getApiClient() {
+ return apiClient;
+ }
+
+ /**
+ * Set the API client.
+ *
+ * @param apiClient an instance of API client
+ */
+ public void setApiClient(ApiClient apiClient) {
+ this.apiClient = apiClient;
+ }
+
+ /**
+ * Get a RUM SDK configuration.
+ *
+ *
See {@link #getRumSdkConfigWithHttpInfo}.
+ *
+ * @param configId The ID of the RUM SDK configuration. (required)
+ * @return RumSdkConfigResponse
+ * @throws ApiException if fails to make API call
+ */
+ public RumSdkConfigResponse getRumSdkConfig(String configId) throws ApiException {
+ return getRumSdkConfigWithHttpInfo(configId).getData();
+ }
+
+ /**
+ * Get a RUM SDK configuration.
+ *
+ *
See {@link #getRumSdkConfigWithHttpInfoAsync}.
+ *
+ * @param configId The ID of the RUM SDK configuration. (required)
+ * @return CompletableFuture<RumSdkConfigResponse>
+ */
+ public CompletableFuture getRumSdkConfigAsync(String configId) {
+ return getRumSdkConfigWithHttpInfoAsync(configId)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Retrieve a RUM SDK configuration by its identifier.
+ *
+ * @param configId The ID of the RUM SDK configuration. (required)
+ * @return ApiResponse<RumSdkConfigResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | OK | - |
+ * | 403 | Not Authorized | - |
+ * | 404 | Not Found | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse getRumSdkConfigWithHttpInfo(String configId)
+ throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "getRumSdkConfig";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId));
+ }
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'configId' is set
+ if (configId == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'configId' when calling getRumSdkConfig");
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/remote_config/products/rum/configs/{config_id}"
+ .replaceAll("\\{" + "config_id" + "\\}", apiClient.escapeString(configId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.RumRemoteConfigApi.getRumSdkConfig",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ return apiClient.invokeAPI(
+ "GET",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Get a RUM SDK configuration.
+ *
+ * See {@link #getRumSdkConfigWithHttpInfo}.
+ *
+ * @param configId The ID of the RUM SDK configuration. (required)
+ * @return CompletableFuture<ApiResponse<RumSdkConfigResponse>>
+ */
+ public CompletableFuture> getRumSdkConfigWithHttpInfoAsync(
+ String configId) {
+ // Check if unstable operation is enabled
+ String operationId = "getRumSdkConfig";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)));
+ return result;
+ }
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'configId' is set
+ if (configId == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400, "Missing the required parameter 'configId' when calling getRumSdkConfig"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/remote_config/products/rum/configs/{config_id}"
+ .replaceAll("\\{" + "config_id" + "\\}", apiClient.escapeString(configId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.RumRemoteConfigApi.getRumSdkConfig",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ } catch (ApiException ex) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(ex);
+ return result;
+ }
+ return apiClient.invokeAPIAsync(
+ "GET",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Update a RUM SDK configuration.
+ *
+ * See {@link #updateRumSdkConfigWithHttpInfo}.
+ *
+ * @param configId The ID of the RUM SDK configuration. (required)
+ * @param body The RUM SDK configuration update. (required)
+ * @return RumSdkConfigResponse
+ * @throws ApiException if fails to make API call
+ */
+ public RumSdkConfigResponse updateRumSdkConfig(String configId, RumSdkConfigUpdateRequest body)
+ throws ApiException {
+ return updateRumSdkConfigWithHttpInfo(configId, body).getData();
+ }
+
+ /**
+ * Update a RUM SDK configuration.
+ *
+ *
See {@link #updateRumSdkConfigWithHttpInfoAsync}.
+ *
+ * @param configId The ID of the RUM SDK configuration. (required)
+ * @param body The RUM SDK configuration update. (required)
+ * @return CompletableFuture<RumSdkConfigResponse>
+ */
+ public CompletableFuture updateRumSdkConfigAsync(
+ String configId, RumSdkConfigUpdateRequest body) {
+ return updateRumSdkConfigWithHttpInfoAsync(configId, body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Update an existing RUM SDK configuration by its identifier. Returns the updated configuration
+ * when successful.
+ *
+ * @param configId The ID of the RUM SDK configuration. (required)
+ * @param body The RUM SDK configuration update. (required)
+ * @return ApiResponse<RumSdkConfigResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | OK | - |
+ * | 400 | Bad Request | - |
+ * | 403 | Not Authorized | - |
+ * | 404 | Not Found | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse updateRumSdkConfigWithHttpInfo(
+ String configId, RumSdkConfigUpdateRequest body) throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "updateRumSdkConfig";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId));
+ }
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'configId' is set
+ if (configId == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'configId' when calling updateRumSdkConfig");
+ }
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'body' when calling updateRumSdkConfig");
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/remote_config/products/rum/configs/{config_id}"
+ .replaceAll("\\{" + "config_id" + "\\}", apiClient.escapeString(configId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.RumRemoteConfigApi.updateRumSdkConfig",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ return apiClient.invokeAPI(
+ "PUT",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Update a RUM SDK configuration.
+ *
+ * See {@link #updateRumSdkConfigWithHttpInfo}.
+ *
+ * @param configId The ID of the RUM SDK configuration. (required)
+ * @param body The RUM SDK configuration update. (required)
+ * @return CompletableFuture<ApiResponse<RumSdkConfigResponse>>
+ */
+ public CompletableFuture> updateRumSdkConfigWithHttpInfoAsync(
+ String configId, RumSdkConfigUpdateRequest body) {
+ // Check if unstable operation is enabled
+ String operationId = "updateRumSdkConfig";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)));
+ return result;
+ }
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'configId' is set
+ if (configId == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400, "Missing the required parameter 'configId' when calling updateRumSdkConfig"));
+ return result;
+ }
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400, "Missing the required parameter 'body' when calling updateRumSdkConfig"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/remote_config/products/rum/configs/{config_id}"
+ .replaceAll("\\{" + "config_id" + "\\}", apiClient.escapeString(configId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.RumRemoteConfigApi.updateRumSdkConfig",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ } catch (ApiException ex) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(ex);
+ return result;
+ }
+ return apiClient.invokeAPIAsync(
+ "PUT",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/RUMApplicationAttributes.java b/src/main/java/com/datadog/api/client/v2/model/RUMApplicationAttributes.java
index c89a0f5c08a..87ac19c2206 100644
--- a/src/main/java/com/datadog/api/client/v2/model/RUMApplicationAttributes.java
+++ b/src/main/java/com/datadog/api/client/v2/model/RUMApplicationAttributes.java
@@ -29,6 +29,7 @@
RUMApplicationAttributes.JSON_PROPERTY_NAME,
RUMApplicationAttributes.JSON_PROPERTY_ORG_ID,
RUMApplicationAttributes.JSON_PROPERTY_PRODUCT_SCALES,
+ RUMApplicationAttributes.JSON_PROPERTY_REMOTE_CONFIG_ID,
RUMApplicationAttributes.JSON_PROPERTY_TYPE,
RUMApplicationAttributes.JSON_PROPERTY_UPDATED_AT,
RUMApplicationAttributes.JSON_PROPERTY_UPDATED_BY_HANDLE
@@ -67,6 +68,9 @@ public class RUMApplicationAttributes {
public static final String JSON_PROPERTY_PRODUCT_SCALES = "product_scales";
private RUMProductScales productScales;
+ public static final String JSON_PROPERTY_REMOTE_CONFIG_ID = "remote_config_id";
+ private String remoteConfigId;
+
public static final String JSON_PROPERTY_TYPE = "type";
private String type;
@@ -307,6 +311,27 @@ public void setProductScales(RUMProductScales productScales) {
this.productScales = productScales;
}
+ public RUMApplicationAttributes remoteConfigId(String remoteConfigId) {
+ this.remoteConfigId = remoteConfigId;
+ return this;
+ }
+
+ /**
+ * ID of the RUM SDK remote configuration for the application, if one exists.
+ *
+ * @return remoteConfigId
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_REMOTE_CONFIG_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getRemoteConfigId() {
+ return remoteConfigId;
+ }
+
+ public void setRemoteConfigId(String remoteConfigId) {
+ this.remoteConfigId = remoteConfigId;
+ }
+
public RUMApplicationAttributes type(String type) {
this.type = type;
return this;
@@ -435,6 +460,7 @@ public boolean equals(Object o) {
&& Objects.equals(this.name, rumApplicationAttributes.name)
&& Objects.equals(this.orgId, rumApplicationAttributes.orgId)
&& Objects.equals(this.productScales, rumApplicationAttributes.productScales)
+ && Objects.equals(this.remoteConfigId, rumApplicationAttributes.remoteConfigId)
&& Objects.equals(this.type, rumApplicationAttributes.type)
&& Objects.equals(this.updatedAt, rumApplicationAttributes.updatedAt)
&& Objects.equals(this.updatedByHandle, rumApplicationAttributes.updatedByHandle)
@@ -454,6 +480,7 @@ public int hashCode() {
name,
orgId,
productScales,
+ remoteConfigId,
type,
updatedAt,
updatedByHandle,
@@ -474,6 +501,7 @@ public String toString() {
sb.append(" name: ").append(toIndentedString(name)).append("\n");
sb.append(" orgId: ").append(toIndentedString(orgId)).append("\n");
sb.append(" productScales: ").append(toIndentedString(productScales)).append("\n");
+ sb.append(" remoteConfigId: ").append(toIndentedString(remoteConfigId)).append("\n");
sb.append(" type: ").append(toIndentedString(type)).append("\n");
sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n");
sb.append(" updatedByHandle: ").append(toIndentedString(updatedByHandle)).append("\n");
diff --git a/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigAttributes.java b/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigAttributes.java
new file mode 100644
index 00000000000..2edc30c9820
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigAttributes.java
@@ -0,0 +1,145 @@
+/*
+ * 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.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** Attributes of the RUM SDK configuration. */
+@JsonPropertyOrder({RumSdkConfigAttributes.JSON_PROPERTY_RUM})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class RumSdkConfigAttributes {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_RUM = "rum";
+ private RumSdkConfigRumAttributes rum;
+
+ public RumSdkConfigAttributes() {}
+
+ @JsonCreator
+ public RumSdkConfigAttributes(
+ @JsonProperty(required = true, value = JSON_PROPERTY_RUM) RumSdkConfigRumAttributes rum) {
+ this.rum = rum;
+ this.unparsed |= rum.unparsed;
+ }
+
+ public RumSdkConfigAttributes rum(RumSdkConfigRumAttributes rum) {
+ this.rum = rum;
+ this.unparsed |= rum.unparsed;
+ return this;
+ }
+
+ /**
+ * The RUM SDK settings for a configuration.
+ *
+ * @return rum
+ */
+ @JsonProperty(JSON_PROPERTY_RUM)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public RumSdkConfigRumAttributes getRum() {
+ return rum;
+ }
+
+ public void setRum(RumSdkConfigRumAttributes rum) {
+ this.rum = rum;
+ }
+
+ /**
+ * A container for additional, undeclared properties. This is a holder for any undeclared
+ * properties as specified with the 'additionalProperties' keyword in the OAS document.
+ */
+ private Map additionalProperties;
+
+ /**
+ * Set the additional (undeclared) property with the specified name and value. If the property
+ * does not already exist, create it otherwise replace it.
+ *
+ * @param key The arbitrary key to set
+ * @param value The associated value
+ * @return RumSdkConfigAttributes
+ */
+ @JsonAnySetter
+ public RumSdkConfigAttributes putAdditionalProperty(String key, Object value) {
+ if (this.additionalProperties == null) {
+ this.additionalProperties = new HashMap();
+ }
+ this.additionalProperties.put(key, value);
+ return this;
+ }
+
+ /**
+ * Return the additional (undeclared) property.
+ *
+ * @return The additional properties
+ */
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return additionalProperties;
+ }
+
+ /**
+ * Return the additional (undeclared) property with the specified name.
+ *
+ * @param key The arbitrary key to get
+ * @return The specific additional property for the given key
+ */
+ public Object getAdditionalProperty(String key) {
+ if (this.additionalProperties == null) {
+ return null;
+ }
+ return this.additionalProperties.get(key);
+ }
+
+ /** Return true if this RumSdkConfigAttributes object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ RumSdkConfigAttributes rumSdkConfigAttributes = (RumSdkConfigAttributes) o;
+ return Objects.equals(this.rum, rumSdkConfigAttributes.rum)
+ && Objects.equals(this.additionalProperties, rumSdkConfigAttributes.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(rum, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class RumSdkConfigAttributes {\n");
+ sb.append(" rum: ").append(toIndentedString(rum)).append("\n");
+ sb.append(" additionalProperties: ")
+ .append(toIndentedString(additionalProperties))
+ .append("\n");
+ sb.append('}');
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigData.java b/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigData.java
new file mode 100644
index 00000000000..0a963c39539
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigData.java
@@ -0,0 +1,237 @@
+/*
+ * 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.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** The RUM SDK configuration data object. */
+@JsonPropertyOrder({
+ RumSdkConfigData.JSON_PROPERTY_ATTRIBUTES,
+ RumSdkConfigData.JSON_PROPERTY_ID,
+ RumSdkConfigData.JSON_PROPERTY_META,
+ RumSdkConfigData.JSON_PROPERTY_TYPE
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class RumSdkConfigData {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ATTRIBUTES = "attributes";
+ private RumSdkConfigAttributes attributes;
+
+ public static final String JSON_PROPERTY_ID = "id";
+ private String id;
+
+ public static final String JSON_PROPERTY_META = "meta";
+ private RumSdkConfigMeta meta;
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ private RumSdkConfigType type = RumSdkConfigType.RUM_SDK_CONFIG;
+
+ public RumSdkConfigData() {}
+
+ @JsonCreator
+ public RumSdkConfigData(
+ @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES)
+ RumSdkConfigAttributes attributes,
+ @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id,
+ @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) RumSdkConfigType type) {
+ this.attributes = attributes;
+ this.unparsed |= attributes.unparsed;
+ this.id = id;
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ }
+
+ public RumSdkConfigData attributes(RumSdkConfigAttributes attributes) {
+ this.attributes = attributes;
+ this.unparsed |= attributes.unparsed;
+ return this;
+ }
+
+ /**
+ * Attributes of the RUM SDK configuration.
+ *
+ * @return attributes
+ */
+ @JsonProperty(JSON_PROPERTY_ATTRIBUTES)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public RumSdkConfigAttributes getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(RumSdkConfigAttributes attributes) {
+ this.attributes = attributes;
+ }
+
+ public RumSdkConfigData id(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * The unique identifier of the RUM SDK configuration.
+ *
+ * @return id
+ */
+ @JsonProperty(JSON_PROPERTY_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public RumSdkConfigData meta(RumSdkConfigMeta meta) {
+ this.meta = meta;
+ this.unparsed |= meta.unparsed;
+ return this;
+ }
+
+ /**
+ * Metadata associated with a RUM SDK configuration.
+ *
+ * @return meta
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_META)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public RumSdkConfigMeta getMeta() {
+ return meta;
+ }
+
+ public void setMeta(RumSdkConfigMeta meta) {
+ this.meta = meta;
+ }
+
+ public RumSdkConfigData type(RumSdkConfigType type) {
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ return this;
+ }
+
+ /**
+ * The type of the resource. The value should always be rum_sdk_config.
+ *
+ * @return type
+ */
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public RumSdkConfigType getType() {
+ return type;
+ }
+
+ public void setType(RumSdkConfigType type) {
+ if (!type.isValid()) {
+ this.unparsed = true;
+ }
+ this.type = type;
+ }
+
+ /**
+ * A container for additional, undeclared properties. This is a holder for any undeclared
+ * properties as specified with the 'additionalProperties' keyword in the OAS document.
+ */
+ private Map additionalProperties;
+
+ /**
+ * Set the additional (undeclared) property with the specified name and value. If the property
+ * does not already exist, create it otherwise replace it.
+ *
+ * @param key The arbitrary key to set
+ * @param value The associated value
+ * @return RumSdkConfigData
+ */
+ @JsonAnySetter
+ public RumSdkConfigData putAdditionalProperty(String key, Object value) {
+ if (this.additionalProperties == null) {
+ this.additionalProperties = new HashMap();
+ }
+ this.additionalProperties.put(key, value);
+ return this;
+ }
+
+ /**
+ * Return the additional (undeclared) property.
+ *
+ * @return The additional properties
+ */
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return additionalProperties;
+ }
+
+ /**
+ * Return the additional (undeclared) property with the specified name.
+ *
+ * @param key The arbitrary key to get
+ * @return The specific additional property for the given key
+ */
+ public Object getAdditionalProperty(String key) {
+ if (this.additionalProperties == null) {
+ return null;
+ }
+ return this.additionalProperties.get(key);
+ }
+
+ /** Return true if this RumSdkConfigData object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ RumSdkConfigData rumSdkConfigData = (RumSdkConfigData) o;
+ return Objects.equals(this.attributes, rumSdkConfigData.attributes)
+ && Objects.equals(this.id, rumSdkConfigData.id)
+ && Objects.equals(this.meta, rumSdkConfigData.meta)
+ && Objects.equals(this.type, rumSdkConfigData.type)
+ && Objects.equals(this.additionalProperties, rumSdkConfigData.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(attributes, id, meta, type, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class RumSdkConfigData {\n");
+ sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n");
+ sb.append(" id: ").append(toIndentedString(id)).append("\n");
+ sb.append(" meta: ").append(toIndentedString(meta)).append("\n");
+ sb.append(" type: ").append(toIndentedString(type)).append("\n");
+ sb.append(" additionalProperties: ")
+ .append(toIndentedString(additionalProperties))
+ .append("\n");
+ sb.append('}');
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigDynamicOption.java b/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigDynamicOption.java
new file mode 100644
index 00000000000..b6f8c38251b
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigDynamicOption.java
@@ -0,0 +1,362 @@
+/*
+ * 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.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** A dynamic configuration option that extracts a value at runtime using a specified strategy. */
+@JsonPropertyOrder({
+ RumSdkConfigDynamicOption.JSON_PROPERTY_ATTRIBUTE,
+ RumSdkConfigDynamicOption.JSON_PROPERTY_EXTRACTOR,
+ RumSdkConfigDynamicOption.JSON_PROPERTY_KEY,
+ RumSdkConfigDynamicOption.JSON_PROPERTY_NAME,
+ RumSdkConfigDynamicOption.JSON_PROPERTY_PATH,
+ RumSdkConfigDynamicOption.JSON_PROPERTY_RC_SERIALIZED_TYPE,
+ RumSdkConfigDynamicOption.JSON_PROPERTY_SELECTOR,
+ RumSdkConfigDynamicOption.JSON_PROPERTY_STRATEGY
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class RumSdkConfigDynamicOption {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ATTRIBUTE = "attribute";
+ private String attribute;
+
+ public static final String JSON_PROPERTY_EXTRACTOR = "extractor";
+ private RumSdkConfigSerializedRegex extractor;
+
+ public static final String JSON_PROPERTY_KEY = "key";
+ private String key;
+
+ public static final String JSON_PROPERTY_NAME = "name";
+ private String name;
+
+ public static final String JSON_PROPERTY_PATH = "path";
+ private String path;
+
+ public static final String JSON_PROPERTY_RC_SERIALIZED_TYPE = "rc_serialized_type";
+ private RumSdkConfigDynamicOptionSerializedType rcSerializedType;
+
+ public static final String JSON_PROPERTY_SELECTOR = "selector";
+ private String selector;
+
+ public static final String JSON_PROPERTY_STRATEGY = "strategy";
+ private RumSdkConfigDynamicOptionStrategy strategy;
+
+ public RumSdkConfigDynamicOption() {}
+
+ @JsonCreator
+ public RumSdkConfigDynamicOption(
+ @JsonProperty(required = true, value = JSON_PROPERTY_RC_SERIALIZED_TYPE)
+ RumSdkConfigDynamicOptionSerializedType rcSerializedType,
+ @JsonProperty(required = true, value = JSON_PROPERTY_STRATEGY)
+ RumSdkConfigDynamicOptionStrategy strategy) {
+ this.rcSerializedType = rcSerializedType;
+ this.unparsed |= !rcSerializedType.isValid();
+ this.strategy = strategy;
+ this.unparsed |= !strategy.isValid();
+ }
+
+ public RumSdkConfigDynamicOption attribute(String attribute) {
+ this.attribute = attribute;
+ return this;
+ }
+
+ /**
+ * The element attribute to read. Used when strategy is dom.
+ *
+ * @return attribute
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ATTRIBUTE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getAttribute() {
+ return attribute;
+ }
+
+ public void setAttribute(String attribute) {
+ this.attribute = attribute;
+ }
+
+ public RumSdkConfigDynamicOption extractor(RumSdkConfigSerializedRegex extractor) {
+ this.extractor = extractor;
+ this.unparsed |= extractor.unparsed;
+ return this;
+ }
+
+ /**
+ * A serialized regex used as an extractor in dynamic options.
+ *
+ * @return extractor
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_EXTRACTOR)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public RumSdkConfigSerializedRegex getExtractor() {
+ return extractor;
+ }
+
+ public void setExtractor(RumSdkConfigSerializedRegex extractor) {
+ this.extractor = extractor;
+ }
+
+ public RumSdkConfigDynamicOption key(String key) {
+ this.key = key;
+ return this;
+ }
+
+ /**
+ * The localStorage key to read. Required when strategy is
+ * localStorage.
+ *
+ * @return key
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_KEY)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getKey() {
+ return key;
+ }
+
+ public void setKey(String key) {
+ this.key = key;
+ }
+
+ public RumSdkConfigDynamicOption name(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * The cookie name to read. Required when strategy is cookie.
+ *
+ * @return name
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_NAME)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public RumSdkConfigDynamicOption path(String path) {
+ this.path = path;
+ return this;
+ }
+
+ /**
+ * The JavaScript path used to extract the value. Required when strategy is js
+ * .
+ *
+ * @return path
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_PATH)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getPath() {
+ return path;
+ }
+
+ public void setPath(String path) {
+ this.path = path;
+ }
+
+ public RumSdkConfigDynamicOption rcSerializedType(
+ RumSdkConfigDynamicOptionSerializedType rcSerializedType) {
+ this.rcSerializedType = rcSerializedType;
+ this.unparsed |= !rcSerializedType.isValid();
+ return this;
+ }
+
+ /**
+ * The type identifier for a dynamic option. Always dynamic.
+ *
+ * @return rcSerializedType
+ */
+ @JsonProperty(JSON_PROPERTY_RC_SERIALIZED_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public RumSdkConfigDynamicOptionSerializedType getRcSerializedType() {
+ return rcSerializedType;
+ }
+
+ public void setRcSerializedType(RumSdkConfigDynamicOptionSerializedType rcSerializedType) {
+ if (!rcSerializedType.isValid()) {
+ this.unparsed = true;
+ }
+ this.rcSerializedType = rcSerializedType;
+ }
+
+ public RumSdkConfigDynamicOption selector(String selector) {
+ this.selector = selector;
+ return this;
+ }
+
+ /**
+ * The CSS selector to read from the page. Required when strategy is dom
+ * .
+ *
+ * @return selector
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_SELECTOR)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getSelector() {
+ return selector;
+ }
+
+ public void setSelector(String selector) {
+ this.selector = selector;
+ }
+
+ public RumSdkConfigDynamicOption strategy(RumSdkConfigDynamicOptionStrategy strategy) {
+ this.strategy = strategy;
+ this.unparsed |= !strategy.isValid();
+ return this;
+ }
+
+ /**
+ * The strategy used to extract the dynamic value.
+ *
+ * @return strategy
+ */
+ @JsonProperty(JSON_PROPERTY_STRATEGY)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public RumSdkConfigDynamicOptionStrategy getStrategy() {
+ return strategy;
+ }
+
+ public void setStrategy(RumSdkConfigDynamicOptionStrategy strategy) {
+ if (!strategy.isValid()) {
+ this.unparsed = true;
+ }
+ this.strategy = strategy;
+ }
+
+ /**
+ * A container for additional, undeclared properties. This is a holder for any undeclared
+ * properties as specified with the 'additionalProperties' keyword in the OAS document.
+ */
+ private Map additionalProperties;
+
+ /**
+ * Set the additional (undeclared) property with the specified name and value. If the property
+ * does not already exist, create it otherwise replace it.
+ *
+ * @param key The arbitrary key to set
+ * @param value The associated value
+ * @return RumSdkConfigDynamicOption
+ */
+ @JsonAnySetter
+ public RumSdkConfigDynamicOption putAdditionalProperty(String key, Object value) {
+ if (this.additionalProperties == null) {
+ this.additionalProperties = new HashMap();
+ }
+ this.additionalProperties.put(key, value);
+ return this;
+ }
+
+ /**
+ * Return the additional (undeclared) property.
+ *
+ * @return The additional properties
+ */
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return additionalProperties;
+ }
+
+ /**
+ * Return the additional (undeclared) property with the specified name.
+ *
+ * @param key The arbitrary key to get
+ * @return The specific additional property for the given key
+ */
+ public Object getAdditionalProperty(String key) {
+ if (this.additionalProperties == null) {
+ return null;
+ }
+ return this.additionalProperties.get(key);
+ }
+
+ /** Return true if this RumSdkConfigDynamicOption object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ RumSdkConfigDynamicOption rumSdkConfigDynamicOption = (RumSdkConfigDynamicOption) o;
+ return Objects.equals(this.attribute, rumSdkConfigDynamicOption.attribute)
+ && Objects.equals(this.extractor, rumSdkConfigDynamicOption.extractor)
+ && Objects.equals(this.key, rumSdkConfigDynamicOption.key)
+ && Objects.equals(this.name, rumSdkConfigDynamicOption.name)
+ && Objects.equals(this.path, rumSdkConfigDynamicOption.path)
+ && Objects.equals(this.rcSerializedType, rumSdkConfigDynamicOption.rcSerializedType)
+ && Objects.equals(this.selector, rumSdkConfigDynamicOption.selector)
+ && Objects.equals(this.strategy, rumSdkConfigDynamicOption.strategy)
+ && Objects.equals(
+ this.additionalProperties, rumSdkConfigDynamicOption.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(
+ attribute,
+ extractor,
+ key,
+ name,
+ path,
+ rcSerializedType,
+ selector,
+ strategy,
+ additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class RumSdkConfigDynamicOption {\n");
+ sb.append(" attribute: ").append(toIndentedString(attribute)).append("\n");
+ sb.append(" extractor: ").append(toIndentedString(extractor)).append("\n");
+ sb.append(" key: ").append(toIndentedString(key)).append("\n");
+ sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append(" path: ").append(toIndentedString(path)).append("\n");
+ sb.append(" rcSerializedType: ").append(toIndentedString(rcSerializedType)).append("\n");
+ sb.append(" selector: ").append(toIndentedString(selector)).append("\n");
+ sb.append(" strategy: ").append(toIndentedString(strategy)).append("\n");
+ sb.append(" additionalProperties: ")
+ .append(toIndentedString(additionalProperties))
+ .append("\n");
+ sb.append('}');
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigDynamicOptionPair.java b/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigDynamicOptionPair.java
new file mode 100644
index 00000000000..79eb32d4f9f
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigDynamicOptionPair.java
@@ -0,0 +1,176 @@
+/*
+ * 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.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** A key-value pair where the value is a dynamic configuration option. */
+@JsonPropertyOrder({
+ RumSdkConfigDynamicOptionPair.JSON_PROPERTY_KEY,
+ RumSdkConfigDynamicOptionPair.JSON_PROPERTY_VALUE
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class RumSdkConfigDynamicOptionPair {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_KEY = "key";
+ private String key;
+
+ public static final String JSON_PROPERTY_VALUE = "value";
+ private RumSdkConfigDynamicOption value;
+
+ public RumSdkConfigDynamicOptionPair() {}
+
+ @JsonCreator
+ public RumSdkConfigDynamicOptionPair(
+ @JsonProperty(required = true, value = JSON_PROPERTY_KEY) String key,
+ @JsonProperty(required = true, value = JSON_PROPERTY_VALUE) RumSdkConfigDynamicOption value) {
+ this.key = key;
+ this.value = value;
+ this.unparsed |= value.unparsed;
+ }
+
+ public RumSdkConfigDynamicOptionPair key(String key) {
+ this.key = key;
+ return this;
+ }
+
+ /**
+ * The key name for this dynamic configuration pair.
+ *
+ * @return key
+ */
+ @JsonProperty(JSON_PROPERTY_KEY)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getKey() {
+ return key;
+ }
+
+ public void setKey(String key) {
+ this.key = key;
+ }
+
+ public RumSdkConfigDynamicOptionPair value(RumSdkConfigDynamicOption value) {
+ this.value = value;
+ this.unparsed |= value.unparsed;
+ return this;
+ }
+
+ /**
+ * A dynamic configuration option that extracts a value at runtime using a specified strategy.
+ *
+ * @return value
+ */
+ @JsonProperty(JSON_PROPERTY_VALUE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public RumSdkConfigDynamicOption getValue() {
+ return value;
+ }
+
+ public void setValue(RumSdkConfigDynamicOption value) {
+ this.value = value;
+ }
+
+ /**
+ * A container for additional, undeclared properties. This is a holder for any undeclared
+ * properties as specified with the 'additionalProperties' keyword in the OAS document.
+ */
+ private Map additionalProperties;
+
+ /**
+ * Set the additional (undeclared) property with the specified name and value. If the property
+ * does not already exist, create it otherwise replace it.
+ *
+ * @param key The arbitrary key to set
+ * @param value The associated value
+ * @return RumSdkConfigDynamicOptionPair
+ */
+ @JsonAnySetter
+ public RumSdkConfigDynamicOptionPair putAdditionalProperty(String key, Object value) {
+ if (this.additionalProperties == null) {
+ this.additionalProperties = new HashMap();
+ }
+ this.additionalProperties.put(key, value);
+ return this;
+ }
+
+ /**
+ * Return the additional (undeclared) property.
+ *
+ * @return The additional properties
+ */
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return additionalProperties;
+ }
+
+ /**
+ * Return the additional (undeclared) property with the specified name.
+ *
+ * @param key The arbitrary key to get
+ * @return The specific additional property for the given key
+ */
+ public Object getAdditionalProperty(String key) {
+ if (this.additionalProperties == null) {
+ return null;
+ }
+ return this.additionalProperties.get(key);
+ }
+
+ /** Return true if this RumSdkConfigDynamicOptionPair object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ RumSdkConfigDynamicOptionPair rumSdkConfigDynamicOptionPair = (RumSdkConfigDynamicOptionPair) o;
+ return Objects.equals(this.key, rumSdkConfigDynamicOptionPair.key)
+ && Objects.equals(this.value, rumSdkConfigDynamicOptionPair.value)
+ && Objects.equals(
+ this.additionalProperties, rumSdkConfigDynamicOptionPair.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(key, value, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class RumSdkConfigDynamicOptionPair {\n");
+ sb.append(" key: ").append(toIndentedString(key)).append("\n");
+ sb.append(" value: ").append(toIndentedString(value)).append("\n");
+ sb.append(" additionalProperties: ")
+ .append(toIndentedString(additionalProperties))
+ .append("\n");
+ sb.append('}');
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigDynamicOptionSerializedType.java b/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigDynamicOptionSerializedType.java
new file mode 100644
index 00000000000..75e0d3014ea
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigDynamicOptionSerializedType.java
@@ -0,0 +1,62 @@
+/*
+ * 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.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.datadog.api.client.ModelEnum;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.SerializerProvider;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.StdSerializer;
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+/** The type identifier for a dynamic option. Always dynamic. */
+@JsonSerialize(
+ using =
+ RumSdkConfigDynamicOptionSerializedType.RumSdkConfigDynamicOptionSerializedTypeSerializer
+ .class)
+public class RumSdkConfigDynamicOptionSerializedType extends ModelEnum {
+
+ private static final Set allowedValues = new HashSet(Arrays.asList("dynamic"));
+
+ public static final RumSdkConfigDynamicOptionSerializedType DYNAMIC =
+ new RumSdkConfigDynamicOptionSerializedType("dynamic");
+
+ RumSdkConfigDynamicOptionSerializedType(String value) {
+ super(value, allowedValues);
+ }
+
+ public static class RumSdkConfigDynamicOptionSerializedTypeSerializer
+ extends StdSerializer {
+ public RumSdkConfigDynamicOptionSerializedTypeSerializer(
+ Class t) {
+ super(t);
+ }
+
+ public RumSdkConfigDynamicOptionSerializedTypeSerializer() {
+ this(null);
+ }
+
+ @Override
+ public void serialize(
+ RumSdkConfigDynamicOptionSerializedType value,
+ JsonGenerator jgen,
+ SerializerProvider provider)
+ throws IOException, JsonProcessingException {
+ jgen.writeObject(value.value);
+ }
+ }
+
+ @JsonCreator
+ public static RumSdkConfigDynamicOptionSerializedType fromValue(String value) {
+ return new RumSdkConfigDynamicOptionSerializedType(value);
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigDynamicOptionStrategy.java b/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigDynamicOptionStrategy.java
new file mode 100644
index 00000000000..04b3b231ced
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigDynamicOptionStrategy.java
@@ -0,0 +1,64 @@
+/*
+ * 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.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.datadog.api.client.ModelEnum;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.SerializerProvider;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.StdSerializer;
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+/** The strategy used to extract the dynamic value. */
+@JsonSerialize(
+ using = RumSdkConfigDynamicOptionStrategy.RumSdkConfigDynamicOptionStrategySerializer.class)
+public class RumSdkConfigDynamicOptionStrategy extends ModelEnum {
+
+ private static final Set allowedValues =
+ new HashSet(Arrays.asList("js", "cookie", "dom", "localStorage"));
+
+ public static final RumSdkConfigDynamicOptionStrategy JS =
+ new RumSdkConfigDynamicOptionStrategy("js");
+ public static final RumSdkConfigDynamicOptionStrategy COOKIE =
+ new RumSdkConfigDynamicOptionStrategy("cookie");
+ public static final RumSdkConfigDynamicOptionStrategy DOM =
+ new RumSdkConfigDynamicOptionStrategy("dom");
+ public static final RumSdkConfigDynamicOptionStrategy LOCAL_STORAGE =
+ new RumSdkConfigDynamicOptionStrategy("localStorage");
+
+ RumSdkConfigDynamicOptionStrategy(String value) {
+ super(value, allowedValues);
+ }
+
+ public static class RumSdkConfigDynamicOptionStrategySerializer
+ extends StdSerializer {
+ public RumSdkConfigDynamicOptionStrategySerializer(Class t) {
+ super(t);
+ }
+
+ public RumSdkConfigDynamicOptionStrategySerializer() {
+ this(null);
+ }
+
+ @Override
+ public void serialize(
+ RumSdkConfigDynamicOptionStrategy value, JsonGenerator jgen, SerializerProvider provider)
+ throws IOException, JsonProcessingException {
+ jgen.writeObject(value.value);
+ }
+ }
+
+ @JsonCreator
+ public static RumSdkConfigDynamicOptionStrategy fromValue(String value) {
+ return new RumSdkConfigDynamicOptionStrategy(value);
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigMatchOption.java b/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigMatchOption.java
new file mode 100644
index 00000000000..a4a09e8a9e6
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigMatchOption.java
@@ -0,0 +1,180 @@
+/*
+ * 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.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** A match option used for URL or origin pattern matching. */
+@JsonPropertyOrder({
+ RumSdkConfigMatchOption.JSON_PROPERTY_RC_SERIALIZED_TYPE,
+ RumSdkConfigMatchOption.JSON_PROPERTY_VALUE
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class RumSdkConfigMatchOption {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_RC_SERIALIZED_TYPE = "rc_serialized_type";
+ private RumSdkConfigMatchOptionSerializedType rcSerializedType;
+
+ public static final String JSON_PROPERTY_VALUE = "value";
+ private String value;
+
+ public RumSdkConfigMatchOption() {}
+
+ @JsonCreator
+ public RumSdkConfigMatchOption(
+ @JsonProperty(required = true, value = JSON_PROPERTY_RC_SERIALIZED_TYPE)
+ RumSdkConfigMatchOptionSerializedType rcSerializedType,
+ @JsonProperty(required = true, value = JSON_PROPERTY_VALUE) String value) {
+ this.rcSerializedType = rcSerializedType;
+ this.unparsed |= !rcSerializedType.isValid();
+ this.value = value;
+ }
+
+ public RumSdkConfigMatchOption rcSerializedType(
+ RumSdkConfigMatchOptionSerializedType rcSerializedType) {
+ this.rcSerializedType = rcSerializedType;
+ this.unparsed |= !rcSerializedType.isValid();
+ return this;
+ }
+
+ /**
+ * The type of match pattern, either a literal string or a regex.
+ *
+ * @return rcSerializedType
+ */
+ @JsonProperty(JSON_PROPERTY_RC_SERIALIZED_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public RumSdkConfigMatchOptionSerializedType getRcSerializedType() {
+ return rcSerializedType;
+ }
+
+ public void setRcSerializedType(RumSdkConfigMatchOptionSerializedType rcSerializedType) {
+ if (!rcSerializedType.isValid()) {
+ this.unparsed = true;
+ }
+ this.rcSerializedType = rcSerializedType;
+ }
+
+ public RumSdkConfigMatchOption value(String value) {
+ this.value = value;
+ return this;
+ }
+
+ /**
+ * The value to match against.
+ *
+ * @return value
+ */
+ @JsonProperty(JSON_PROPERTY_VALUE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ /**
+ * A container for additional, undeclared properties. This is a holder for any undeclared
+ * properties as specified with the 'additionalProperties' keyword in the OAS document.
+ */
+ private Map additionalProperties;
+
+ /**
+ * Set the additional (undeclared) property with the specified name and value. If the property
+ * does not already exist, create it otherwise replace it.
+ *
+ * @param key The arbitrary key to set
+ * @param value The associated value
+ * @return RumSdkConfigMatchOption
+ */
+ @JsonAnySetter
+ public RumSdkConfigMatchOption putAdditionalProperty(String key, Object value) {
+ if (this.additionalProperties == null) {
+ this.additionalProperties = new HashMap();
+ }
+ this.additionalProperties.put(key, value);
+ return this;
+ }
+
+ /**
+ * Return the additional (undeclared) property.
+ *
+ * @return The additional properties
+ */
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return additionalProperties;
+ }
+
+ /**
+ * Return the additional (undeclared) property with the specified name.
+ *
+ * @param key The arbitrary key to get
+ * @return The specific additional property for the given key
+ */
+ public Object getAdditionalProperty(String key) {
+ if (this.additionalProperties == null) {
+ return null;
+ }
+ return this.additionalProperties.get(key);
+ }
+
+ /** Return true if this RumSdkConfigMatchOption object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ RumSdkConfigMatchOption rumSdkConfigMatchOption = (RumSdkConfigMatchOption) o;
+ return Objects.equals(this.rcSerializedType, rumSdkConfigMatchOption.rcSerializedType)
+ && Objects.equals(this.value, rumSdkConfigMatchOption.value)
+ && Objects.equals(this.additionalProperties, rumSdkConfigMatchOption.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(rcSerializedType, value, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class RumSdkConfigMatchOption {\n");
+ sb.append(" rcSerializedType: ").append(toIndentedString(rcSerializedType)).append("\n");
+ sb.append(" value: ").append(toIndentedString(value)).append("\n");
+ sb.append(" additionalProperties: ")
+ .append(toIndentedString(additionalProperties))
+ .append("\n");
+ sb.append('}');
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigMatchOptionSerializedType.java b/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigMatchOptionSerializedType.java
new file mode 100644
index 00000000000..a4e1e005436
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigMatchOptionSerializedType.java
@@ -0,0 +1,64 @@
+/*
+ * 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.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.datadog.api.client.ModelEnum;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.SerializerProvider;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.StdSerializer;
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+/** The type of match pattern, either a literal string or a regex. */
+@JsonSerialize(
+ using =
+ RumSdkConfigMatchOptionSerializedType.RumSdkConfigMatchOptionSerializedTypeSerializer.class)
+public class RumSdkConfigMatchOptionSerializedType extends ModelEnum {
+
+ private static final Set allowedValues =
+ new HashSet(Arrays.asList("string", "regex"));
+
+ public static final RumSdkConfigMatchOptionSerializedType STRING =
+ new RumSdkConfigMatchOptionSerializedType("string");
+ public static final RumSdkConfigMatchOptionSerializedType REGEX =
+ new RumSdkConfigMatchOptionSerializedType("regex");
+
+ RumSdkConfigMatchOptionSerializedType(String value) {
+ super(value, allowedValues);
+ }
+
+ public static class RumSdkConfigMatchOptionSerializedTypeSerializer
+ extends StdSerializer {
+ public RumSdkConfigMatchOptionSerializedTypeSerializer(
+ Class t) {
+ super(t);
+ }
+
+ public RumSdkConfigMatchOptionSerializedTypeSerializer() {
+ this(null);
+ }
+
+ @Override
+ public void serialize(
+ RumSdkConfigMatchOptionSerializedType value,
+ JsonGenerator jgen,
+ SerializerProvider provider)
+ throws IOException, JsonProcessingException {
+ jgen.writeObject(value.value);
+ }
+ }
+
+ @JsonCreator
+ public static RumSdkConfigMatchOptionSerializedType fromValue(String value) {
+ return new RumSdkConfigMatchOptionSerializedType(value);
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigMeta.java b/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigMeta.java
new file mode 100644
index 00000000000..a22e424b346
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigMeta.java
@@ -0,0 +1,174 @@
+/*
+ * 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.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.time.OffsetDateTime;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** Metadata associated with a RUM SDK configuration. */
+@JsonPropertyOrder({
+ RumSdkConfigMeta.JSON_PROPERTY_UPDATED_AT,
+ RumSdkConfigMeta.JSON_PROPERTY_UPDATED_BY
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class RumSdkConfigMeta {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_UPDATED_AT = "updated_at";
+ private OffsetDateTime updatedAt;
+
+ public static final String JSON_PROPERTY_UPDATED_BY = "updated_by";
+ private String updatedBy;
+
+ public RumSdkConfigMeta() {}
+
+ @JsonCreator
+ public RumSdkConfigMeta(
+ @JsonProperty(required = true, value = JSON_PROPERTY_UPDATED_AT) OffsetDateTime updatedAt,
+ @JsonProperty(required = true, value = JSON_PROPERTY_UPDATED_BY) String updatedBy) {
+ this.updatedAt = updatedAt;
+ this.updatedBy = updatedBy;
+ }
+
+ public RumSdkConfigMeta updatedAt(OffsetDateTime updatedAt) {
+ this.updatedAt = updatedAt;
+ return this;
+ }
+
+ /**
+ * The timestamp of the last update to this configuration.
+ *
+ * @return updatedAt
+ */
+ @JsonProperty(JSON_PROPERTY_UPDATED_AT)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public OffsetDateTime getUpdatedAt() {
+ return updatedAt;
+ }
+
+ public void setUpdatedAt(OffsetDateTime updatedAt) {
+ this.updatedAt = updatedAt;
+ }
+
+ public RumSdkConfigMeta updatedBy(String updatedBy) {
+ this.updatedBy = updatedBy;
+ return this;
+ }
+
+ /**
+ * The handle of the user who last updated this configuration.
+ *
+ * @return updatedBy
+ */
+ @JsonProperty(JSON_PROPERTY_UPDATED_BY)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getUpdatedBy() {
+ return updatedBy;
+ }
+
+ public void setUpdatedBy(String updatedBy) {
+ this.updatedBy = updatedBy;
+ }
+
+ /**
+ * A container for additional, undeclared properties. This is a holder for any undeclared
+ * properties as specified with the 'additionalProperties' keyword in the OAS document.
+ */
+ private Map additionalProperties;
+
+ /**
+ * Set the additional (undeclared) property with the specified name and value. If the property
+ * does not already exist, create it otherwise replace it.
+ *
+ * @param key The arbitrary key to set
+ * @param value The associated value
+ * @return RumSdkConfigMeta
+ */
+ @JsonAnySetter
+ public RumSdkConfigMeta putAdditionalProperty(String key, Object value) {
+ if (this.additionalProperties == null) {
+ this.additionalProperties = new HashMap();
+ }
+ this.additionalProperties.put(key, value);
+ return this;
+ }
+
+ /**
+ * Return the additional (undeclared) property.
+ *
+ * @return The additional properties
+ */
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return additionalProperties;
+ }
+
+ /**
+ * Return the additional (undeclared) property with the specified name.
+ *
+ * @param key The arbitrary key to get
+ * @return The specific additional property for the given key
+ */
+ public Object getAdditionalProperty(String key) {
+ if (this.additionalProperties == null) {
+ return null;
+ }
+ return this.additionalProperties.get(key);
+ }
+
+ /** Return true if this RumSdkConfigMeta object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ RumSdkConfigMeta rumSdkConfigMeta = (RumSdkConfigMeta) o;
+ return Objects.equals(this.updatedAt, rumSdkConfigMeta.updatedAt)
+ && Objects.equals(this.updatedBy, rumSdkConfigMeta.updatedBy)
+ && Objects.equals(this.additionalProperties, rumSdkConfigMeta.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(updatedAt, updatedBy, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class RumSdkConfigMeta {\n");
+ sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n");
+ sb.append(" updatedBy: ").append(toIndentedString(updatedBy)).append("\n");
+ sb.append(" additionalProperties: ")
+ .append(toIndentedString(additionalProperties))
+ .append("\n");
+ sb.append('}');
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigResponse.java b/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigResponse.java
new file mode 100644
index 00000000000..374e8211272
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigResponse.java
@@ -0,0 +1,145 @@
+/*
+ * 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.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** Response containing a RUM SDK configuration. */
+@JsonPropertyOrder({RumSdkConfigResponse.JSON_PROPERTY_DATA})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class RumSdkConfigResponse {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_DATA = "data";
+ private RumSdkConfigData data;
+
+ public RumSdkConfigResponse() {}
+
+ @JsonCreator
+ public RumSdkConfigResponse(
+ @JsonProperty(required = true, value = JSON_PROPERTY_DATA) RumSdkConfigData data) {
+ this.data = data;
+ this.unparsed |= data.unparsed;
+ }
+
+ public RumSdkConfigResponse data(RumSdkConfigData data) {
+ this.data = data;
+ this.unparsed |= data.unparsed;
+ return this;
+ }
+
+ /**
+ * The RUM SDK configuration data object.
+ *
+ * @return data
+ */
+ @JsonProperty(JSON_PROPERTY_DATA)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public RumSdkConfigData getData() {
+ return data;
+ }
+
+ public void setData(RumSdkConfigData data) {
+ this.data = data;
+ }
+
+ /**
+ * A container for additional, undeclared properties. This is a holder for any undeclared
+ * properties as specified with the 'additionalProperties' keyword in the OAS document.
+ */
+ private Map additionalProperties;
+
+ /**
+ * Set the additional (undeclared) property with the specified name and value. If the property
+ * does not already exist, create it otherwise replace it.
+ *
+ * @param key The arbitrary key to set
+ * @param value The associated value
+ * @return RumSdkConfigResponse
+ */
+ @JsonAnySetter
+ public RumSdkConfigResponse putAdditionalProperty(String key, Object value) {
+ if (this.additionalProperties == null) {
+ this.additionalProperties = new HashMap();
+ }
+ this.additionalProperties.put(key, value);
+ return this;
+ }
+
+ /**
+ * Return the additional (undeclared) property.
+ *
+ * @return The additional properties
+ */
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return additionalProperties;
+ }
+
+ /**
+ * Return the additional (undeclared) property with the specified name.
+ *
+ * @param key The arbitrary key to get
+ * @return The specific additional property for the given key
+ */
+ public Object getAdditionalProperty(String key) {
+ if (this.additionalProperties == null) {
+ return null;
+ }
+ return this.additionalProperties.get(key);
+ }
+
+ /** Return true if this RumSdkConfigResponse object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ RumSdkConfigResponse rumSdkConfigResponse = (RumSdkConfigResponse) o;
+ return Objects.equals(this.data, rumSdkConfigResponse.data)
+ && Objects.equals(this.additionalProperties, rumSdkConfigResponse.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(data, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class RumSdkConfigResponse {\n");
+ sb.append(" data: ").append(toIndentedString(data)).append("\n");
+ sb.append(" additionalProperties: ")
+ .append(toIndentedString(additionalProperties))
+ .append("\n");
+ sb.append('}');
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigRumAttributes.java b/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigRumAttributes.java
new file mode 100644
index 00000000000..753ed2ad600
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigRumAttributes.java
@@ -0,0 +1,595 @@
+/*
+ * 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.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+/** The RUM SDK settings for a configuration. */
+@JsonPropertyOrder({
+ RumSdkConfigRumAttributes.JSON_PROPERTY_ALLOWED_TRACING_URLS,
+ RumSdkConfigRumAttributes.JSON_PROPERTY_ALLOWED_TRACKING_ORIGINS,
+ RumSdkConfigRumAttributes.JSON_PROPERTY_APPLICATION_ID,
+ RumSdkConfigRumAttributes.JSON_PROPERTY_CONTEXT,
+ RumSdkConfigRumAttributes.JSON_PROPERTY_DEFAULT_PRIVACY_LEVEL,
+ RumSdkConfigRumAttributes.JSON_PROPERTY_ENABLE_PRIVACY_FOR_ACTION_NAME,
+ RumSdkConfigRumAttributes.JSON_PROPERTY_ENV,
+ RumSdkConfigRumAttributes.JSON_PROPERTY_SERVICE,
+ RumSdkConfigRumAttributes.JSON_PROPERTY_SESSION_REPLAY_SAMPLE_RATE,
+ RumSdkConfigRumAttributes.JSON_PROPERTY_SESSION_SAMPLE_RATE,
+ RumSdkConfigRumAttributes.JSON_PROPERTY_TRACE_SAMPLE_RATE,
+ RumSdkConfigRumAttributes.JSON_PROPERTY_TRACK_SESSION_ACROSS_SUBDOMAINS,
+ RumSdkConfigRumAttributes.JSON_PROPERTY_USER,
+ RumSdkConfigRumAttributes.JSON_PROPERTY_VERSION
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class RumSdkConfigRumAttributes {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ALLOWED_TRACING_URLS = "allowed_tracing_urls";
+ private List allowedTracingUrls = null;
+
+ public static final String JSON_PROPERTY_ALLOWED_TRACKING_ORIGINS = "allowed_tracking_origins";
+ private List allowedTrackingOrigins = null;
+
+ public static final String JSON_PROPERTY_APPLICATION_ID = "application_id";
+ private String applicationId;
+
+ public static final String JSON_PROPERTY_CONTEXT = "context";
+ private List context = null;
+
+ public static final String JSON_PROPERTY_DEFAULT_PRIVACY_LEVEL = "default_privacy_level";
+ private String defaultPrivacyLevel;
+
+ public static final String JSON_PROPERTY_ENABLE_PRIVACY_FOR_ACTION_NAME =
+ "enable_privacy_for_action_name";
+ private Boolean enablePrivacyForActionName;
+
+ public static final String JSON_PROPERTY_ENV = "env";
+ private String env;
+
+ public static final String JSON_PROPERTY_SERVICE = "service";
+ private String service;
+
+ public static final String JSON_PROPERTY_SESSION_REPLAY_SAMPLE_RATE =
+ "session_replay_sample_rate";
+ private Long sessionReplaySampleRate;
+
+ public static final String JSON_PROPERTY_SESSION_SAMPLE_RATE = "session_sample_rate";
+ private Long sessionSampleRate;
+
+ public static final String JSON_PROPERTY_TRACE_SAMPLE_RATE = "trace_sample_rate";
+ private Long traceSampleRate;
+
+ public static final String JSON_PROPERTY_TRACK_SESSION_ACROSS_SUBDOMAINS =
+ "track_session_across_subdomains";
+ private Boolean trackSessionAcrossSubdomains;
+
+ public static final String JSON_PROPERTY_USER = "user";
+ private List user = null;
+
+ public static final String JSON_PROPERTY_VERSION = "version";
+ private RumSdkConfigDynamicOption version;
+
+ public RumSdkConfigRumAttributes() {}
+
+ @JsonCreator
+ public RumSdkConfigRumAttributes(
+ @JsonProperty(required = true, value = JSON_PROPERTY_APPLICATION_ID) String applicationId,
+ @JsonProperty(required = true, value = JSON_PROPERTY_DEFAULT_PRIVACY_LEVEL)
+ String defaultPrivacyLevel,
+ @JsonProperty(required = true, value = JSON_PROPERTY_ENABLE_PRIVACY_FOR_ACTION_NAME)
+ Boolean enablePrivacyForActionName,
+ @JsonProperty(required = true, value = JSON_PROPERTY_SESSION_REPLAY_SAMPLE_RATE)
+ Long sessionReplaySampleRate,
+ @JsonProperty(required = true, value = JSON_PROPERTY_SESSION_SAMPLE_RATE)
+ Long sessionSampleRate) {
+ this.applicationId = applicationId;
+ this.defaultPrivacyLevel = defaultPrivacyLevel;
+ this.enablePrivacyForActionName = enablePrivacyForActionName;
+ this.sessionReplaySampleRate = sessionReplaySampleRate;
+ this.sessionSampleRate = sessionSampleRate;
+ }
+
+ public RumSdkConfigRumAttributes allowedTracingUrls(
+ List allowedTracingUrls) {
+ this.allowedTracingUrls = allowedTracingUrls;
+ for (RumSdkConfigTracingUrlConfig item : allowedTracingUrls) {
+ this.unparsed |= item.unparsed;
+ }
+ return this;
+ }
+
+ public RumSdkConfigRumAttributes addAllowedTracingUrlsItem(
+ RumSdkConfigTracingUrlConfig allowedTracingUrlsItem) {
+ if (this.allowedTracingUrls == null) {
+ this.allowedTracingUrls = new ArrayList<>();
+ }
+ this.allowedTracingUrls.add(allowedTracingUrlsItem);
+ this.unparsed |= allowedTracingUrlsItem.unparsed;
+ return this;
+ }
+
+ /**
+ * A list of URL configurations for distributed tracing.
+ *
+ * @return allowedTracingUrls
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ALLOWED_TRACING_URLS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getAllowedTracingUrls() {
+ return allowedTracingUrls;
+ }
+
+ public void setAllowedTracingUrls(List allowedTracingUrls) {
+ this.allowedTracingUrls = allowedTracingUrls;
+ }
+
+ public RumSdkConfigRumAttributes allowedTrackingOrigins(
+ List allowedTrackingOrigins) {
+ this.allowedTrackingOrigins = allowedTrackingOrigins;
+ for (RumSdkConfigMatchOption item : allowedTrackingOrigins) {
+ this.unparsed |= item.unparsed;
+ }
+ return this;
+ }
+
+ public RumSdkConfigRumAttributes addAllowedTrackingOriginsItem(
+ RumSdkConfigMatchOption allowedTrackingOriginsItem) {
+ if (this.allowedTrackingOrigins == null) {
+ this.allowedTrackingOrigins = new ArrayList<>();
+ }
+ this.allowedTrackingOrigins.add(allowedTrackingOriginsItem);
+ this.unparsed |= allowedTrackingOriginsItem.unparsed;
+ return this;
+ }
+
+ /**
+ * A list of origin patterns allowed for cross-origin session tracking.
+ *
+ * @return allowedTrackingOrigins
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ALLOWED_TRACKING_ORIGINS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getAllowedTrackingOrigins() {
+ return allowedTrackingOrigins;
+ }
+
+ public void setAllowedTrackingOrigins(List allowedTrackingOrigins) {
+ this.allowedTrackingOrigins = allowedTrackingOrigins;
+ }
+
+ public RumSdkConfigRumAttributes applicationId(String applicationId) {
+ this.applicationId = applicationId;
+ return this;
+ }
+
+ /**
+ * The ID of the RUM application this configuration belongs to.
+ *
+ * @return applicationId
+ */
+ @JsonProperty(JSON_PROPERTY_APPLICATION_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getApplicationId() {
+ return applicationId;
+ }
+
+ public void setApplicationId(String applicationId) {
+ this.applicationId = applicationId;
+ }
+
+ public RumSdkConfigRumAttributes context(List context) {
+ this.context = context;
+ for (RumSdkConfigDynamicOptionPair item : context) {
+ this.unparsed |= item.unparsed;
+ }
+ return this;
+ }
+
+ public RumSdkConfigRumAttributes addContextItem(RumSdkConfigDynamicOptionPair contextItem) {
+ if (this.context == null) {
+ this.context = new ArrayList<>();
+ }
+ this.context.add(contextItem);
+ this.unparsed |= contextItem.unparsed;
+ return this;
+ }
+
+ /**
+ * A list of dynamic option key-value pairs.
+ *
+ * @return context
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_CONTEXT)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getContext() {
+ return context;
+ }
+
+ public void setContext(List context) {
+ this.context = context;
+ }
+
+ public RumSdkConfigRumAttributes defaultPrivacyLevel(String defaultPrivacyLevel) {
+ this.defaultPrivacyLevel = defaultPrivacyLevel;
+ return this;
+ }
+
+ /**
+ * The default privacy masking level applied to all RUM data.
+ *
+ * @return defaultPrivacyLevel
+ */
+ @JsonProperty(JSON_PROPERTY_DEFAULT_PRIVACY_LEVEL)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getDefaultPrivacyLevel() {
+ return defaultPrivacyLevel;
+ }
+
+ public void setDefaultPrivacyLevel(String defaultPrivacyLevel) {
+ this.defaultPrivacyLevel = defaultPrivacyLevel;
+ }
+
+ public RumSdkConfigRumAttributes enablePrivacyForActionName(Boolean enablePrivacyForActionName) {
+ this.enablePrivacyForActionName = enablePrivacyForActionName;
+ return this;
+ }
+
+ /**
+ * Whether to mask user-interaction action names for privacy.
+ *
+ * @return enablePrivacyForActionName
+ */
+ @JsonProperty(JSON_PROPERTY_ENABLE_PRIVACY_FOR_ACTION_NAME)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public Boolean getEnablePrivacyForActionName() {
+ return enablePrivacyForActionName;
+ }
+
+ public void setEnablePrivacyForActionName(Boolean enablePrivacyForActionName) {
+ this.enablePrivacyForActionName = enablePrivacyForActionName;
+ }
+
+ public RumSdkConfigRumAttributes env(String env) {
+ this.env = env;
+ return this;
+ }
+
+ /**
+ * The environment tag for the RUM application.
+ *
+ * @return env
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ENV)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getEnv() {
+ return env;
+ }
+
+ public void setEnv(String env) {
+ this.env = env;
+ }
+
+ public RumSdkConfigRumAttributes service(String service) {
+ this.service = service;
+ return this;
+ }
+
+ /**
+ * The service name tag for the RUM application.
+ *
+ * @return service
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_SERVICE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getService() {
+ return service;
+ }
+
+ public void setService(String service) {
+ this.service = service;
+ }
+
+ public RumSdkConfigRumAttributes sessionReplaySampleRate(Long sessionReplaySampleRate) {
+ this.sessionReplaySampleRate = sessionReplaySampleRate;
+ return this;
+ }
+
+ /**
+ * The percentage of collected sessions for which a replay is captured (0–100). minimum: 0
+ * maximum: 100
+ *
+ * @return sessionReplaySampleRate
+ */
+ @JsonProperty(JSON_PROPERTY_SESSION_REPLAY_SAMPLE_RATE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public Long getSessionReplaySampleRate() {
+ return sessionReplaySampleRate;
+ }
+
+ public void setSessionReplaySampleRate(Long sessionReplaySampleRate) {
+ this.sessionReplaySampleRate = sessionReplaySampleRate;
+ }
+
+ public RumSdkConfigRumAttributes sessionSampleRate(Long sessionSampleRate) {
+ this.sessionSampleRate = sessionSampleRate;
+ return this;
+ }
+
+ /**
+ * The percentage of user sessions to collect (0–100). minimum: 0 maximum: 100
+ *
+ * @return sessionSampleRate
+ */
+ @JsonProperty(JSON_PROPERTY_SESSION_SAMPLE_RATE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public Long getSessionSampleRate() {
+ return sessionSampleRate;
+ }
+
+ public void setSessionSampleRate(Long sessionSampleRate) {
+ this.sessionSampleRate = sessionSampleRate;
+ }
+
+ public RumSdkConfigRumAttributes traceSampleRate(Long traceSampleRate) {
+ this.traceSampleRate = traceSampleRate;
+ return this;
+ }
+
+ /**
+ * The percentage of requests to forward as APM traces (0–100). minimum: 0 maximum: 100
+ *
+ * @return traceSampleRate
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_TRACE_SAMPLE_RATE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Long getTraceSampleRate() {
+ return traceSampleRate;
+ }
+
+ public void setTraceSampleRate(Long traceSampleRate) {
+ this.traceSampleRate = traceSampleRate;
+ }
+
+ public RumSdkConfigRumAttributes trackSessionAcrossSubdomains(
+ Boolean trackSessionAcrossSubdomains) {
+ this.trackSessionAcrossSubdomains = trackSessionAcrossSubdomains;
+ return this;
+ }
+
+ /**
+ * Whether to share a session across subdomains of the same site.
+ *
+ * @return trackSessionAcrossSubdomains
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_TRACK_SESSION_ACROSS_SUBDOMAINS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Boolean getTrackSessionAcrossSubdomains() {
+ return trackSessionAcrossSubdomains;
+ }
+
+ public void setTrackSessionAcrossSubdomains(Boolean trackSessionAcrossSubdomains) {
+ this.trackSessionAcrossSubdomains = trackSessionAcrossSubdomains;
+ }
+
+ public RumSdkConfigRumAttributes user(List user) {
+ this.user = user;
+ for (RumSdkConfigDynamicOptionPair item : user) {
+ this.unparsed |= item.unparsed;
+ }
+ return this;
+ }
+
+ public RumSdkConfigRumAttributes addUserItem(RumSdkConfigDynamicOptionPair userItem) {
+ if (this.user == null) {
+ this.user = new ArrayList<>();
+ }
+ this.user.add(userItem);
+ this.unparsed |= userItem.unparsed;
+ return this;
+ }
+
+ /**
+ * A list of dynamic option key-value pairs.
+ *
+ * @return user
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_USER)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getUser() {
+ return user;
+ }
+
+ public void setUser(List user) {
+ this.user = user;
+ }
+
+ public RumSdkConfigRumAttributes version(RumSdkConfigDynamicOption version) {
+ this.version = version;
+ this.unparsed |= version.unparsed;
+ return this;
+ }
+
+ /**
+ * A dynamic configuration option that extracts a value at runtime using a specified strategy.
+ *
+ * @return version
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_VERSION)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public RumSdkConfigDynamicOption getVersion() {
+ return version;
+ }
+
+ public void setVersion(RumSdkConfigDynamicOption version) {
+ this.version = version;
+ }
+
+ /**
+ * A container for additional, undeclared properties. This is a holder for any undeclared
+ * properties as specified with the 'additionalProperties' keyword in the OAS document.
+ */
+ private Map additionalProperties;
+
+ /**
+ * Set the additional (undeclared) property with the specified name and value. If the property
+ * does not already exist, create it otherwise replace it.
+ *
+ * @param key The arbitrary key to set
+ * @param value The associated value
+ * @return RumSdkConfigRumAttributes
+ */
+ @JsonAnySetter
+ public RumSdkConfigRumAttributes putAdditionalProperty(String key, Object value) {
+ if (this.additionalProperties == null) {
+ this.additionalProperties = new HashMap();
+ }
+ this.additionalProperties.put(key, value);
+ return this;
+ }
+
+ /**
+ * Return the additional (undeclared) property.
+ *
+ * @return The additional properties
+ */
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return additionalProperties;
+ }
+
+ /**
+ * Return the additional (undeclared) property with the specified name.
+ *
+ * @param key The arbitrary key to get
+ * @return The specific additional property for the given key
+ */
+ public Object getAdditionalProperty(String key) {
+ if (this.additionalProperties == null) {
+ return null;
+ }
+ return this.additionalProperties.get(key);
+ }
+
+ /** Return true if this RumSdkConfigRumAttributes object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ RumSdkConfigRumAttributes rumSdkConfigRumAttributes = (RumSdkConfigRumAttributes) o;
+ return Objects.equals(this.allowedTracingUrls, rumSdkConfigRumAttributes.allowedTracingUrls)
+ && Objects.equals(
+ this.allowedTrackingOrigins, rumSdkConfigRumAttributes.allowedTrackingOrigins)
+ && Objects.equals(this.applicationId, rumSdkConfigRumAttributes.applicationId)
+ && Objects.equals(this.context, rumSdkConfigRumAttributes.context)
+ && Objects.equals(this.defaultPrivacyLevel, rumSdkConfigRumAttributes.defaultPrivacyLevel)
+ && Objects.equals(
+ this.enablePrivacyForActionName, rumSdkConfigRumAttributes.enablePrivacyForActionName)
+ && Objects.equals(this.env, rumSdkConfigRumAttributes.env)
+ && Objects.equals(this.service, rumSdkConfigRumAttributes.service)
+ && Objects.equals(
+ this.sessionReplaySampleRate, rumSdkConfigRumAttributes.sessionReplaySampleRate)
+ && Objects.equals(this.sessionSampleRate, rumSdkConfigRumAttributes.sessionSampleRate)
+ && Objects.equals(this.traceSampleRate, rumSdkConfigRumAttributes.traceSampleRate)
+ && Objects.equals(
+ this.trackSessionAcrossSubdomains,
+ rumSdkConfigRumAttributes.trackSessionAcrossSubdomains)
+ && Objects.equals(this.user, rumSdkConfigRumAttributes.user)
+ && Objects.equals(this.version, rumSdkConfigRumAttributes.version)
+ && Objects.equals(
+ this.additionalProperties, rumSdkConfigRumAttributes.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(
+ allowedTracingUrls,
+ allowedTrackingOrigins,
+ applicationId,
+ context,
+ defaultPrivacyLevel,
+ enablePrivacyForActionName,
+ env,
+ service,
+ sessionReplaySampleRate,
+ sessionSampleRate,
+ traceSampleRate,
+ trackSessionAcrossSubdomains,
+ user,
+ version,
+ additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class RumSdkConfigRumAttributes {\n");
+ sb.append(" allowedTracingUrls: ").append(toIndentedString(allowedTracingUrls)).append("\n");
+ sb.append(" allowedTrackingOrigins: ")
+ .append(toIndentedString(allowedTrackingOrigins))
+ .append("\n");
+ sb.append(" applicationId: ").append(toIndentedString(applicationId)).append("\n");
+ sb.append(" context: ").append(toIndentedString(context)).append("\n");
+ sb.append(" defaultPrivacyLevel: ")
+ .append(toIndentedString(defaultPrivacyLevel))
+ .append("\n");
+ sb.append(" enablePrivacyForActionName: ")
+ .append(toIndentedString(enablePrivacyForActionName))
+ .append("\n");
+ sb.append(" env: ").append(toIndentedString(env)).append("\n");
+ sb.append(" service: ").append(toIndentedString(service)).append("\n");
+ sb.append(" sessionReplaySampleRate: ")
+ .append(toIndentedString(sessionReplaySampleRate))
+ .append("\n");
+ sb.append(" sessionSampleRate: ").append(toIndentedString(sessionSampleRate)).append("\n");
+ sb.append(" traceSampleRate: ").append(toIndentedString(traceSampleRate)).append("\n");
+ sb.append(" trackSessionAcrossSubdomains: ")
+ .append(toIndentedString(trackSessionAcrossSubdomains))
+ .append("\n");
+ sb.append(" user: ").append(toIndentedString(user)).append("\n");
+ sb.append(" version: ").append(toIndentedString(version)).append("\n");
+ sb.append(" additionalProperties: ")
+ .append(toIndentedString(additionalProperties))
+ .append("\n");
+ sb.append('}');
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigRumUpdateAttributes.java b/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigRumUpdateAttributes.java
new file mode 100644
index 00000000000..0f2a72ffa5c
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigRumUpdateAttributes.java
@@ -0,0 +1,571 @@
+/*
+ * 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.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+/** The RUM SDK settings to apply when updating a configuration. */
+@JsonPropertyOrder({
+ RumSdkConfigRumUpdateAttributes.JSON_PROPERTY_ALLOWED_TRACING_URLS,
+ RumSdkConfigRumUpdateAttributes.JSON_PROPERTY_ALLOWED_TRACKING_ORIGINS,
+ RumSdkConfigRumUpdateAttributes.JSON_PROPERTY_CONTEXT,
+ RumSdkConfigRumUpdateAttributes.JSON_PROPERTY_DEFAULT_PRIVACY_LEVEL,
+ RumSdkConfigRumUpdateAttributes.JSON_PROPERTY_ENABLE_PRIVACY_FOR_ACTION_NAME,
+ RumSdkConfigRumUpdateAttributes.JSON_PROPERTY_ENV,
+ RumSdkConfigRumUpdateAttributes.JSON_PROPERTY_SERVICE,
+ RumSdkConfigRumUpdateAttributes.JSON_PROPERTY_SESSION_REPLAY_SAMPLE_RATE,
+ RumSdkConfigRumUpdateAttributes.JSON_PROPERTY_SESSION_SAMPLE_RATE,
+ RumSdkConfigRumUpdateAttributes.JSON_PROPERTY_TRACE_SAMPLE_RATE,
+ RumSdkConfigRumUpdateAttributes.JSON_PROPERTY_TRACK_SESSION_ACROSS_SUBDOMAINS,
+ RumSdkConfigRumUpdateAttributes.JSON_PROPERTY_USER,
+ RumSdkConfigRumUpdateAttributes.JSON_PROPERTY_VERSION
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class RumSdkConfigRumUpdateAttributes {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ALLOWED_TRACING_URLS = "allowed_tracing_urls";
+ private List allowedTracingUrls = null;
+
+ public static final String JSON_PROPERTY_ALLOWED_TRACKING_ORIGINS = "allowed_tracking_origins";
+ private List allowedTrackingOrigins = null;
+
+ public static final String JSON_PROPERTY_CONTEXT = "context";
+ private List context = null;
+
+ public static final String JSON_PROPERTY_DEFAULT_PRIVACY_LEVEL = "default_privacy_level";
+ private String defaultPrivacyLevel;
+
+ public static final String JSON_PROPERTY_ENABLE_PRIVACY_FOR_ACTION_NAME =
+ "enable_privacy_for_action_name";
+ private Boolean enablePrivacyForActionName;
+
+ public static final String JSON_PROPERTY_ENV = "env";
+ private String env;
+
+ public static final String JSON_PROPERTY_SERVICE = "service";
+ private String service;
+
+ public static final String JSON_PROPERTY_SESSION_REPLAY_SAMPLE_RATE =
+ "session_replay_sample_rate";
+ private Long sessionReplaySampleRate;
+
+ public static final String JSON_PROPERTY_SESSION_SAMPLE_RATE = "session_sample_rate";
+ private Long sessionSampleRate;
+
+ public static final String JSON_PROPERTY_TRACE_SAMPLE_RATE = "trace_sample_rate";
+ private Long traceSampleRate;
+
+ public static final String JSON_PROPERTY_TRACK_SESSION_ACROSS_SUBDOMAINS =
+ "track_session_across_subdomains";
+ private Boolean trackSessionAcrossSubdomains;
+
+ public static final String JSON_PROPERTY_USER = "user";
+ private List user = null;
+
+ public static final String JSON_PROPERTY_VERSION = "version";
+ private RumSdkConfigDynamicOption version;
+
+ public RumSdkConfigRumUpdateAttributes() {}
+
+ @JsonCreator
+ public RumSdkConfigRumUpdateAttributes(
+ @JsonProperty(required = true, value = JSON_PROPERTY_DEFAULT_PRIVACY_LEVEL)
+ String defaultPrivacyLevel,
+ @JsonProperty(required = true, value = JSON_PROPERTY_ENABLE_PRIVACY_FOR_ACTION_NAME)
+ Boolean enablePrivacyForActionName,
+ @JsonProperty(required = true, value = JSON_PROPERTY_SESSION_REPLAY_SAMPLE_RATE)
+ Long sessionReplaySampleRate,
+ @JsonProperty(required = true, value = JSON_PROPERTY_SESSION_SAMPLE_RATE)
+ Long sessionSampleRate) {
+ this.defaultPrivacyLevel = defaultPrivacyLevel;
+ this.enablePrivacyForActionName = enablePrivacyForActionName;
+ this.sessionReplaySampleRate = sessionReplaySampleRate;
+ this.sessionSampleRate = sessionSampleRate;
+ }
+
+ public RumSdkConfigRumUpdateAttributes allowedTracingUrls(
+ List allowedTracingUrls) {
+ this.allowedTracingUrls = allowedTracingUrls;
+ for (RumSdkConfigTracingUrlConfig item : allowedTracingUrls) {
+ this.unparsed |= item.unparsed;
+ }
+ return this;
+ }
+
+ public RumSdkConfigRumUpdateAttributes addAllowedTracingUrlsItem(
+ RumSdkConfigTracingUrlConfig allowedTracingUrlsItem) {
+ if (this.allowedTracingUrls == null) {
+ this.allowedTracingUrls = new ArrayList<>();
+ }
+ this.allowedTracingUrls.add(allowedTracingUrlsItem);
+ this.unparsed |= allowedTracingUrlsItem.unparsed;
+ return this;
+ }
+
+ /**
+ * A list of URL configurations for distributed tracing.
+ *
+ * @return allowedTracingUrls
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ALLOWED_TRACING_URLS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getAllowedTracingUrls() {
+ return allowedTracingUrls;
+ }
+
+ public void setAllowedTracingUrls(List allowedTracingUrls) {
+ this.allowedTracingUrls = allowedTracingUrls;
+ }
+
+ public RumSdkConfigRumUpdateAttributes allowedTrackingOrigins(
+ List allowedTrackingOrigins) {
+ this.allowedTrackingOrigins = allowedTrackingOrigins;
+ for (RumSdkConfigMatchOption item : allowedTrackingOrigins) {
+ this.unparsed |= item.unparsed;
+ }
+ return this;
+ }
+
+ public RumSdkConfigRumUpdateAttributes addAllowedTrackingOriginsItem(
+ RumSdkConfigMatchOption allowedTrackingOriginsItem) {
+ if (this.allowedTrackingOrigins == null) {
+ this.allowedTrackingOrigins = new ArrayList<>();
+ }
+ this.allowedTrackingOrigins.add(allowedTrackingOriginsItem);
+ this.unparsed |= allowedTrackingOriginsItem.unparsed;
+ return this;
+ }
+
+ /**
+ * A list of origin patterns allowed for cross-origin session tracking.
+ *
+ * @return allowedTrackingOrigins
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ALLOWED_TRACKING_ORIGINS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getAllowedTrackingOrigins() {
+ return allowedTrackingOrigins;
+ }
+
+ public void setAllowedTrackingOrigins(List allowedTrackingOrigins) {
+ this.allowedTrackingOrigins = allowedTrackingOrigins;
+ }
+
+ public RumSdkConfigRumUpdateAttributes context(List context) {
+ this.context = context;
+ for (RumSdkConfigDynamicOptionPair item : context) {
+ this.unparsed |= item.unparsed;
+ }
+ return this;
+ }
+
+ public RumSdkConfigRumUpdateAttributes addContextItem(RumSdkConfigDynamicOptionPair contextItem) {
+ if (this.context == null) {
+ this.context = new ArrayList<>();
+ }
+ this.context.add(contextItem);
+ this.unparsed |= contextItem.unparsed;
+ return this;
+ }
+
+ /**
+ * A list of dynamic option key-value pairs.
+ *
+ * @return context
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_CONTEXT)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getContext() {
+ return context;
+ }
+
+ public void setContext(List context) {
+ this.context = context;
+ }
+
+ public RumSdkConfigRumUpdateAttributes defaultPrivacyLevel(String defaultPrivacyLevel) {
+ this.defaultPrivacyLevel = defaultPrivacyLevel;
+ return this;
+ }
+
+ /**
+ * The default privacy masking level applied to all RUM data.
+ *
+ * @return defaultPrivacyLevel
+ */
+ @JsonProperty(JSON_PROPERTY_DEFAULT_PRIVACY_LEVEL)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getDefaultPrivacyLevel() {
+ return defaultPrivacyLevel;
+ }
+
+ public void setDefaultPrivacyLevel(String defaultPrivacyLevel) {
+ this.defaultPrivacyLevel = defaultPrivacyLevel;
+ }
+
+ public RumSdkConfigRumUpdateAttributes enablePrivacyForActionName(
+ Boolean enablePrivacyForActionName) {
+ this.enablePrivacyForActionName = enablePrivacyForActionName;
+ return this;
+ }
+
+ /**
+ * Whether to mask user-interaction action names for privacy.
+ *
+ * @return enablePrivacyForActionName
+ */
+ @JsonProperty(JSON_PROPERTY_ENABLE_PRIVACY_FOR_ACTION_NAME)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public Boolean getEnablePrivacyForActionName() {
+ return enablePrivacyForActionName;
+ }
+
+ public void setEnablePrivacyForActionName(Boolean enablePrivacyForActionName) {
+ this.enablePrivacyForActionName = enablePrivacyForActionName;
+ }
+
+ public RumSdkConfigRumUpdateAttributes env(String env) {
+ this.env = env;
+ return this;
+ }
+
+ /**
+ * The environment tag for the RUM application.
+ *
+ * @return env
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ENV)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getEnv() {
+ return env;
+ }
+
+ public void setEnv(String env) {
+ this.env = env;
+ }
+
+ public RumSdkConfigRumUpdateAttributes service(String service) {
+ this.service = service;
+ return this;
+ }
+
+ /**
+ * The service name tag for the RUM application.
+ *
+ * @return service
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_SERVICE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getService() {
+ return service;
+ }
+
+ public void setService(String service) {
+ this.service = service;
+ }
+
+ public RumSdkConfigRumUpdateAttributes sessionReplaySampleRate(Long sessionReplaySampleRate) {
+ this.sessionReplaySampleRate = sessionReplaySampleRate;
+ return this;
+ }
+
+ /**
+ * The percentage of collected sessions for which a replay is captured (0–100). minimum: 0
+ * maximum: 100
+ *
+ * @return sessionReplaySampleRate
+ */
+ @JsonProperty(JSON_PROPERTY_SESSION_REPLAY_SAMPLE_RATE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public Long getSessionReplaySampleRate() {
+ return sessionReplaySampleRate;
+ }
+
+ public void setSessionReplaySampleRate(Long sessionReplaySampleRate) {
+ this.sessionReplaySampleRate = sessionReplaySampleRate;
+ }
+
+ public RumSdkConfigRumUpdateAttributes sessionSampleRate(Long sessionSampleRate) {
+ this.sessionSampleRate = sessionSampleRate;
+ return this;
+ }
+
+ /**
+ * The percentage of user sessions to collect (0–100). minimum: 0 maximum: 100
+ *
+ * @return sessionSampleRate
+ */
+ @JsonProperty(JSON_PROPERTY_SESSION_SAMPLE_RATE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public Long getSessionSampleRate() {
+ return sessionSampleRate;
+ }
+
+ public void setSessionSampleRate(Long sessionSampleRate) {
+ this.sessionSampleRate = sessionSampleRate;
+ }
+
+ public RumSdkConfigRumUpdateAttributes traceSampleRate(Long traceSampleRate) {
+ this.traceSampleRate = traceSampleRate;
+ return this;
+ }
+
+ /**
+ * The percentage of requests to forward as APM traces (0–100). minimum: 0 maximum: 100
+ *
+ * @return traceSampleRate
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_TRACE_SAMPLE_RATE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Long getTraceSampleRate() {
+ return traceSampleRate;
+ }
+
+ public void setTraceSampleRate(Long traceSampleRate) {
+ this.traceSampleRate = traceSampleRate;
+ }
+
+ public RumSdkConfigRumUpdateAttributes trackSessionAcrossSubdomains(
+ Boolean trackSessionAcrossSubdomains) {
+ this.trackSessionAcrossSubdomains = trackSessionAcrossSubdomains;
+ return this;
+ }
+
+ /**
+ * Whether to share a session across subdomains of the same site.
+ *
+ * @return trackSessionAcrossSubdomains
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_TRACK_SESSION_ACROSS_SUBDOMAINS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Boolean getTrackSessionAcrossSubdomains() {
+ return trackSessionAcrossSubdomains;
+ }
+
+ public void setTrackSessionAcrossSubdomains(Boolean trackSessionAcrossSubdomains) {
+ this.trackSessionAcrossSubdomains = trackSessionAcrossSubdomains;
+ }
+
+ public RumSdkConfigRumUpdateAttributes user(List user) {
+ this.user = user;
+ for (RumSdkConfigDynamicOptionPair item : user) {
+ this.unparsed |= item.unparsed;
+ }
+ return this;
+ }
+
+ public RumSdkConfigRumUpdateAttributes addUserItem(RumSdkConfigDynamicOptionPair userItem) {
+ if (this.user == null) {
+ this.user = new ArrayList<>();
+ }
+ this.user.add(userItem);
+ this.unparsed |= userItem.unparsed;
+ return this;
+ }
+
+ /**
+ * A list of dynamic option key-value pairs.
+ *
+ * @return user
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_USER)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getUser() {
+ return user;
+ }
+
+ public void setUser(List user) {
+ this.user = user;
+ }
+
+ public RumSdkConfigRumUpdateAttributes version(RumSdkConfigDynamicOption version) {
+ this.version = version;
+ this.unparsed |= version.unparsed;
+ return this;
+ }
+
+ /**
+ * A dynamic configuration option that extracts a value at runtime using a specified strategy.
+ *
+ * @return version
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_VERSION)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public RumSdkConfigDynamicOption getVersion() {
+ return version;
+ }
+
+ public void setVersion(RumSdkConfigDynamicOption version) {
+ this.version = version;
+ }
+
+ /**
+ * A container for additional, undeclared properties. This is a holder for any undeclared
+ * properties as specified with the 'additionalProperties' keyword in the OAS document.
+ */
+ private Map additionalProperties;
+
+ /**
+ * Set the additional (undeclared) property with the specified name and value. If the property
+ * does not already exist, create it otherwise replace it.
+ *
+ * @param key The arbitrary key to set
+ * @param value The associated value
+ * @return RumSdkConfigRumUpdateAttributes
+ */
+ @JsonAnySetter
+ public RumSdkConfigRumUpdateAttributes putAdditionalProperty(String key, Object value) {
+ if (this.additionalProperties == null) {
+ this.additionalProperties = new HashMap();
+ }
+ this.additionalProperties.put(key, value);
+ return this;
+ }
+
+ /**
+ * Return the additional (undeclared) property.
+ *
+ * @return The additional properties
+ */
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return additionalProperties;
+ }
+
+ /**
+ * Return the additional (undeclared) property with the specified name.
+ *
+ * @param key The arbitrary key to get
+ * @return The specific additional property for the given key
+ */
+ public Object getAdditionalProperty(String key) {
+ if (this.additionalProperties == null) {
+ return null;
+ }
+ return this.additionalProperties.get(key);
+ }
+
+ /** Return true if this RumSdkConfigRumUpdateAttributes object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ RumSdkConfigRumUpdateAttributes rumSdkConfigRumUpdateAttributes =
+ (RumSdkConfigRumUpdateAttributes) o;
+ return Objects.equals(
+ this.allowedTracingUrls, rumSdkConfigRumUpdateAttributes.allowedTracingUrls)
+ && Objects.equals(
+ this.allowedTrackingOrigins, rumSdkConfigRumUpdateAttributes.allowedTrackingOrigins)
+ && Objects.equals(this.context, rumSdkConfigRumUpdateAttributes.context)
+ && Objects.equals(
+ this.defaultPrivacyLevel, rumSdkConfigRumUpdateAttributes.defaultPrivacyLevel)
+ && Objects.equals(
+ this.enablePrivacyForActionName,
+ rumSdkConfigRumUpdateAttributes.enablePrivacyForActionName)
+ && Objects.equals(this.env, rumSdkConfigRumUpdateAttributes.env)
+ && Objects.equals(this.service, rumSdkConfigRumUpdateAttributes.service)
+ && Objects.equals(
+ this.sessionReplaySampleRate, rumSdkConfigRumUpdateAttributes.sessionReplaySampleRate)
+ && Objects.equals(this.sessionSampleRate, rumSdkConfigRumUpdateAttributes.sessionSampleRate)
+ && Objects.equals(this.traceSampleRate, rumSdkConfigRumUpdateAttributes.traceSampleRate)
+ && Objects.equals(
+ this.trackSessionAcrossSubdomains,
+ rumSdkConfigRumUpdateAttributes.trackSessionAcrossSubdomains)
+ && Objects.equals(this.user, rumSdkConfigRumUpdateAttributes.user)
+ && Objects.equals(this.version, rumSdkConfigRumUpdateAttributes.version)
+ && Objects.equals(
+ this.additionalProperties, rumSdkConfigRumUpdateAttributes.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(
+ allowedTracingUrls,
+ allowedTrackingOrigins,
+ context,
+ defaultPrivacyLevel,
+ enablePrivacyForActionName,
+ env,
+ service,
+ sessionReplaySampleRate,
+ sessionSampleRate,
+ traceSampleRate,
+ trackSessionAcrossSubdomains,
+ user,
+ version,
+ additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class RumSdkConfigRumUpdateAttributes {\n");
+ sb.append(" allowedTracingUrls: ").append(toIndentedString(allowedTracingUrls)).append("\n");
+ sb.append(" allowedTrackingOrigins: ")
+ .append(toIndentedString(allowedTrackingOrigins))
+ .append("\n");
+ sb.append(" context: ").append(toIndentedString(context)).append("\n");
+ sb.append(" defaultPrivacyLevel: ")
+ .append(toIndentedString(defaultPrivacyLevel))
+ .append("\n");
+ sb.append(" enablePrivacyForActionName: ")
+ .append(toIndentedString(enablePrivacyForActionName))
+ .append("\n");
+ sb.append(" env: ").append(toIndentedString(env)).append("\n");
+ sb.append(" service: ").append(toIndentedString(service)).append("\n");
+ sb.append(" sessionReplaySampleRate: ")
+ .append(toIndentedString(sessionReplaySampleRate))
+ .append("\n");
+ sb.append(" sessionSampleRate: ").append(toIndentedString(sessionSampleRate)).append("\n");
+ sb.append(" traceSampleRate: ").append(toIndentedString(traceSampleRate)).append("\n");
+ sb.append(" trackSessionAcrossSubdomains: ")
+ .append(toIndentedString(trackSessionAcrossSubdomains))
+ .append("\n");
+ sb.append(" user: ").append(toIndentedString(user)).append("\n");
+ sb.append(" version: ").append(toIndentedString(version)).append("\n");
+ sb.append(" additionalProperties: ")
+ .append(toIndentedString(additionalProperties))
+ .append("\n");
+ sb.append('}');
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigSerializedRegex.java b/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigSerializedRegex.java
new file mode 100644
index 00000000000..d408260a5ed
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigSerializedRegex.java
@@ -0,0 +1,181 @@
+/*
+ * 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.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** A serialized regex used as an extractor in dynamic options. */
+@JsonPropertyOrder({
+ RumSdkConfigSerializedRegex.JSON_PROPERTY_RC_SERIALIZED_TYPE,
+ RumSdkConfigSerializedRegex.JSON_PROPERTY_VALUE
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class RumSdkConfigSerializedRegex {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_RC_SERIALIZED_TYPE = "rc_serialized_type";
+ private RumSdkConfigSerializedRegexType rcSerializedType;
+
+ public static final String JSON_PROPERTY_VALUE = "value";
+ private String value;
+
+ public RumSdkConfigSerializedRegex() {}
+
+ @JsonCreator
+ public RumSdkConfigSerializedRegex(
+ @JsonProperty(required = true, value = JSON_PROPERTY_RC_SERIALIZED_TYPE)
+ RumSdkConfigSerializedRegexType rcSerializedType,
+ @JsonProperty(required = true, value = JSON_PROPERTY_VALUE) String value) {
+ this.rcSerializedType = rcSerializedType;
+ this.unparsed |= !rcSerializedType.isValid();
+ this.value = value;
+ }
+
+ public RumSdkConfigSerializedRegex rcSerializedType(
+ RumSdkConfigSerializedRegexType rcSerializedType) {
+ this.rcSerializedType = rcSerializedType;
+ this.unparsed |= !rcSerializedType.isValid();
+ return this;
+ }
+
+ /**
+ * The type identifier for a serialized regex. Always regex.
+ *
+ * @return rcSerializedType
+ */
+ @JsonProperty(JSON_PROPERTY_RC_SERIALIZED_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public RumSdkConfigSerializedRegexType getRcSerializedType() {
+ return rcSerializedType;
+ }
+
+ public void setRcSerializedType(RumSdkConfigSerializedRegexType rcSerializedType) {
+ if (!rcSerializedType.isValid()) {
+ this.unparsed = true;
+ }
+ this.rcSerializedType = rcSerializedType;
+ }
+
+ public RumSdkConfigSerializedRegex value(String value) {
+ this.value = value;
+ return this;
+ }
+
+ /**
+ * The regex pattern used for extraction.
+ *
+ * @return value
+ */
+ @JsonProperty(JSON_PROPERTY_VALUE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ /**
+ * A container for additional, undeclared properties. This is a holder for any undeclared
+ * properties as specified with the 'additionalProperties' keyword in the OAS document.
+ */
+ private Map additionalProperties;
+
+ /**
+ * Set the additional (undeclared) property with the specified name and value. If the property
+ * does not already exist, create it otherwise replace it.
+ *
+ * @param key The arbitrary key to set
+ * @param value The associated value
+ * @return RumSdkConfigSerializedRegex
+ */
+ @JsonAnySetter
+ public RumSdkConfigSerializedRegex putAdditionalProperty(String key, Object value) {
+ if (this.additionalProperties == null) {
+ this.additionalProperties = new HashMap();
+ }
+ this.additionalProperties.put(key, value);
+ return this;
+ }
+
+ /**
+ * Return the additional (undeclared) property.
+ *
+ * @return The additional properties
+ */
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return additionalProperties;
+ }
+
+ /**
+ * Return the additional (undeclared) property with the specified name.
+ *
+ * @param key The arbitrary key to get
+ * @return The specific additional property for the given key
+ */
+ public Object getAdditionalProperty(String key) {
+ if (this.additionalProperties == null) {
+ return null;
+ }
+ return this.additionalProperties.get(key);
+ }
+
+ /** Return true if this RumSdkConfigSerializedRegex object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ RumSdkConfigSerializedRegex rumSdkConfigSerializedRegex = (RumSdkConfigSerializedRegex) o;
+ return Objects.equals(this.rcSerializedType, rumSdkConfigSerializedRegex.rcSerializedType)
+ && Objects.equals(this.value, rumSdkConfigSerializedRegex.value)
+ && Objects.equals(
+ this.additionalProperties, rumSdkConfigSerializedRegex.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(rcSerializedType, value, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class RumSdkConfigSerializedRegex {\n");
+ sb.append(" rcSerializedType: ").append(toIndentedString(rcSerializedType)).append("\n");
+ sb.append(" value: ").append(toIndentedString(value)).append("\n");
+ sb.append(" additionalProperties: ")
+ .append(toIndentedString(additionalProperties))
+ .append("\n");
+ sb.append('}');
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigSerializedRegexType.java b/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigSerializedRegexType.java
new file mode 100644
index 00000000000..9bd18620232
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigSerializedRegexType.java
@@ -0,0 +1,57 @@
+/*
+ * 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.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.datadog.api.client.ModelEnum;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.SerializerProvider;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.StdSerializer;
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+/** The type identifier for a serialized regex. Always regex. */
+@JsonSerialize(
+ using = RumSdkConfigSerializedRegexType.RumSdkConfigSerializedRegexTypeSerializer.class)
+public class RumSdkConfigSerializedRegexType extends ModelEnum {
+
+ private static final Set allowedValues = new HashSet(Arrays.asList("regex"));
+
+ public static final RumSdkConfigSerializedRegexType REGEX =
+ new RumSdkConfigSerializedRegexType("regex");
+
+ RumSdkConfigSerializedRegexType(String value) {
+ super(value, allowedValues);
+ }
+
+ public static class RumSdkConfigSerializedRegexTypeSerializer
+ extends StdSerializer {
+ public RumSdkConfigSerializedRegexTypeSerializer(Class t) {
+ super(t);
+ }
+
+ public RumSdkConfigSerializedRegexTypeSerializer() {
+ this(null);
+ }
+
+ @Override
+ public void serialize(
+ RumSdkConfigSerializedRegexType value, JsonGenerator jgen, SerializerProvider provider)
+ throws IOException, JsonProcessingException {
+ jgen.writeObject(value.value);
+ }
+ }
+
+ @JsonCreator
+ public static RumSdkConfigSerializedRegexType fromValue(String value) {
+ return new RumSdkConfigSerializedRegexType(value);
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigTracingUrlConfig.java b/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigTracingUrlConfig.java
new file mode 100644
index 00000000000..45261895104
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigTracingUrlConfig.java
@@ -0,0 +1,187 @@
+/*
+ * 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.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+/** Configuration for a URL that should have distributed tracing enabled. */
+@JsonPropertyOrder({
+ RumSdkConfigTracingUrlConfig.JSON_PROPERTY_MATCH,
+ RumSdkConfigTracingUrlConfig.JSON_PROPERTY_PROPAGATOR_TYPES
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class RumSdkConfigTracingUrlConfig {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_MATCH = "match";
+ private RumSdkConfigMatchOption match;
+
+ public static final String JSON_PROPERTY_PROPAGATOR_TYPES = "propagator_types";
+ private List propagatorTypes = new ArrayList<>();
+
+ public RumSdkConfigTracingUrlConfig() {}
+
+ @JsonCreator
+ public RumSdkConfigTracingUrlConfig(
+ @JsonProperty(required = true, value = JSON_PROPERTY_MATCH) RumSdkConfigMatchOption match,
+ @JsonProperty(required = true, value = JSON_PROPERTY_PROPAGATOR_TYPES)
+ List propagatorTypes) {
+ this.match = match;
+ this.unparsed |= match.unparsed;
+ this.propagatorTypes = propagatorTypes;
+ }
+
+ public RumSdkConfigTracingUrlConfig match(RumSdkConfigMatchOption match) {
+ this.match = match;
+ this.unparsed |= match.unparsed;
+ return this;
+ }
+
+ /**
+ * A match option used for URL or origin pattern matching.
+ *
+ * @return match
+ */
+ @JsonProperty(JSON_PROPERTY_MATCH)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public RumSdkConfigMatchOption getMatch() {
+ return match;
+ }
+
+ public void setMatch(RumSdkConfigMatchOption match) {
+ this.match = match;
+ }
+
+ public RumSdkConfigTracingUrlConfig propagatorTypes(
+ List propagatorTypes) {
+ this.propagatorTypes = propagatorTypes;
+ return this;
+ }
+
+ public RumSdkConfigTracingUrlConfig addPropagatorTypesItem(
+ RumSdkConfigTracingUrlPropagatorType propagatorTypesItem) {
+ this.propagatorTypes.add(propagatorTypesItem);
+ this.unparsed |= !propagatorTypesItem.isValid();
+ return this;
+ }
+
+ /**
+ * The list of trace propagator types to use for this URL.
+ *
+ * @return propagatorTypes
+ */
+ @JsonProperty(JSON_PROPERTY_PROPAGATOR_TYPES)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public List getPropagatorTypes() {
+ return propagatorTypes;
+ }
+
+ public void setPropagatorTypes(List propagatorTypes) {
+ this.propagatorTypes = propagatorTypes;
+ }
+
+ /**
+ * A container for additional, undeclared properties. This is a holder for any undeclared
+ * properties as specified with the 'additionalProperties' keyword in the OAS document.
+ */
+ private Map additionalProperties;
+
+ /**
+ * Set the additional (undeclared) property with the specified name and value. If the property
+ * does not already exist, create it otherwise replace it.
+ *
+ * @param key The arbitrary key to set
+ * @param value The associated value
+ * @return RumSdkConfigTracingUrlConfig
+ */
+ @JsonAnySetter
+ public RumSdkConfigTracingUrlConfig putAdditionalProperty(String key, Object value) {
+ if (this.additionalProperties == null) {
+ this.additionalProperties = new HashMap();
+ }
+ this.additionalProperties.put(key, value);
+ return this;
+ }
+
+ /**
+ * Return the additional (undeclared) property.
+ *
+ * @return The additional properties
+ */
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return additionalProperties;
+ }
+
+ /**
+ * Return the additional (undeclared) property with the specified name.
+ *
+ * @param key The arbitrary key to get
+ * @return The specific additional property for the given key
+ */
+ public Object getAdditionalProperty(String key) {
+ if (this.additionalProperties == null) {
+ return null;
+ }
+ return this.additionalProperties.get(key);
+ }
+
+ /** Return true if this RumSdkConfigTracingUrlConfig object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ RumSdkConfigTracingUrlConfig rumSdkConfigTracingUrlConfig = (RumSdkConfigTracingUrlConfig) o;
+ return Objects.equals(this.match, rumSdkConfigTracingUrlConfig.match)
+ && Objects.equals(this.propagatorTypes, rumSdkConfigTracingUrlConfig.propagatorTypes)
+ && Objects.equals(
+ this.additionalProperties, rumSdkConfigTracingUrlConfig.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(match, propagatorTypes, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class RumSdkConfigTracingUrlConfig {\n");
+ sb.append(" match: ").append(toIndentedString(match)).append("\n");
+ sb.append(" propagatorTypes: ").append(toIndentedString(propagatorTypes)).append("\n");
+ sb.append(" additionalProperties: ")
+ .append(toIndentedString(additionalProperties))
+ .append("\n");
+ sb.append('}');
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigTracingUrlPropagatorType.java b/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigTracingUrlPropagatorType.java
new file mode 100644
index 00000000000..73cea00c34c
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigTracingUrlPropagatorType.java
@@ -0,0 +1,66 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.datadog.api.client.ModelEnum;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.SerializerProvider;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.StdSerializer;
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+/** A trace propagator type. */
+@JsonSerialize(
+ using =
+ RumSdkConfigTracingUrlPropagatorType.RumSdkConfigTracingUrlPropagatorTypeSerializer.class)
+public class RumSdkConfigTracingUrlPropagatorType extends ModelEnum {
+
+ private static final Set allowedValues =
+ new HashSet(Arrays.asList("datadog", "b3", "b3multi", "tracecontext"));
+
+ public static final RumSdkConfigTracingUrlPropagatorType DATADOG =
+ new RumSdkConfigTracingUrlPropagatorType("datadog");
+ public static final RumSdkConfigTracingUrlPropagatorType B3 =
+ new RumSdkConfigTracingUrlPropagatorType("b3");
+ public static final RumSdkConfigTracingUrlPropagatorType B3MULTI =
+ new RumSdkConfigTracingUrlPropagatorType("b3multi");
+ public static final RumSdkConfigTracingUrlPropagatorType TRACECONTEXT =
+ new RumSdkConfigTracingUrlPropagatorType("tracecontext");
+
+ RumSdkConfigTracingUrlPropagatorType(String value) {
+ super(value, allowedValues);
+ }
+
+ public static class RumSdkConfigTracingUrlPropagatorTypeSerializer
+ extends StdSerializer {
+ public RumSdkConfigTracingUrlPropagatorTypeSerializer(
+ Class t) {
+ super(t);
+ }
+
+ public RumSdkConfigTracingUrlPropagatorTypeSerializer() {
+ this(null);
+ }
+
+ @Override
+ public void serialize(
+ RumSdkConfigTracingUrlPropagatorType value, JsonGenerator jgen, SerializerProvider provider)
+ throws IOException, JsonProcessingException {
+ jgen.writeObject(value.value);
+ }
+ }
+
+ @JsonCreator
+ public static RumSdkConfigTracingUrlPropagatorType fromValue(String value) {
+ return new RumSdkConfigTracingUrlPropagatorType(value);
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigType.java b/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigType.java
new file mode 100644
index 00000000000..eabcea54928
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigType.java
@@ -0,0 +1,54 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.datadog.api.client.ModelEnum;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.SerializerProvider;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.StdSerializer;
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+/** The type of the resource. The value should always be rum_sdk_config. */
+@JsonSerialize(using = RumSdkConfigType.RumSdkConfigTypeSerializer.class)
+public class RumSdkConfigType extends ModelEnum {
+
+ private static final Set allowedValues =
+ new HashSet(Arrays.asList("rum_sdk_config"));
+
+ public static final RumSdkConfigType RUM_SDK_CONFIG = new RumSdkConfigType("rum_sdk_config");
+
+ RumSdkConfigType(String value) {
+ super(value, allowedValues);
+ }
+
+ public static class RumSdkConfigTypeSerializer extends StdSerializer {
+ public RumSdkConfigTypeSerializer(Class t) {
+ super(t);
+ }
+
+ public RumSdkConfigTypeSerializer() {
+ this(null);
+ }
+
+ @Override
+ public void serialize(RumSdkConfigType value, JsonGenerator jgen, SerializerProvider provider)
+ throws IOException, JsonProcessingException {
+ jgen.writeObject(value.value);
+ }
+ }
+
+ @JsonCreator
+ public static RumSdkConfigType fromValue(String value) {
+ return new RumSdkConfigType(value);
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigUpdateAttributes.java b/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigUpdateAttributes.java
new file mode 100644
index 00000000000..b3d43a7c3bf
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigUpdateAttributes.java
@@ -0,0 +1,147 @@
+/*
+ * 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.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** Attributes of the RUM SDK configuration to update. */
+@JsonPropertyOrder({RumSdkConfigUpdateAttributes.JSON_PROPERTY_RUM})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class RumSdkConfigUpdateAttributes {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_RUM = "rum";
+ private RumSdkConfigRumUpdateAttributes rum;
+
+ public RumSdkConfigUpdateAttributes() {}
+
+ @JsonCreator
+ public RumSdkConfigUpdateAttributes(
+ @JsonProperty(required = true, value = JSON_PROPERTY_RUM)
+ RumSdkConfigRumUpdateAttributes rum) {
+ this.rum = rum;
+ this.unparsed |= rum.unparsed;
+ }
+
+ public RumSdkConfigUpdateAttributes rum(RumSdkConfigRumUpdateAttributes rum) {
+ this.rum = rum;
+ this.unparsed |= rum.unparsed;
+ return this;
+ }
+
+ /**
+ * The RUM SDK settings to apply when updating a configuration.
+ *
+ * @return rum
+ */
+ @JsonProperty(JSON_PROPERTY_RUM)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public RumSdkConfigRumUpdateAttributes getRum() {
+ return rum;
+ }
+
+ public void setRum(RumSdkConfigRumUpdateAttributes rum) {
+ this.rum = rum;
+ }
+
+ /**
+ * A container for additional, undeclared properties. This is a holder for any undeclared
+ * properties as specified with the 'additionalProperties' keyword in the OAS document.
+ */
+ private Map additionalProperties;
+
+ /**
+ * Set the additional (undeclared) property with the specified name and value. If the property
+ * does not already exist, create it otherwise replace it.
+ *
+ * @param key The arbitrary key to set
+ * @param value The associated value
+ * @return RumSdkConfigUpdateAttributes
+ */
+ @JsonAnySetter
+ public RumSdkConfigUpdateAttributes putAdditionalProperty(String key, Object value) {
+ if (this.additionalProperties == null) {
+ this.additionalProperties = new HashMap();
+ }
+ this.additionalProperties.put(key, value);
+ return this;
+ }
+
+ /**
+ * Return the additional (undeclared) property.
+ *
+ * @return The additional properties
+ */
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return additionalProperties;
+ }
+
+ /**
+ * Return the additional (undeclared) property with the specified name.
+ *
+ * @param key The arbitrary key to get
+ * @return The specific additional property for the given key
+ */
+ public Object getAdditionalProperty(String key) {
+ if (this.additionalProperties == null) {
+ return null;
+ }
+ return this.additionalProperties.get(key);
+ }
+
+ /** Return true if this RumSdkConfigUpdateAttributes object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ RumSdkConfigUpdateAttributes rumSdkConfigUpdateAttributes = (RumSdkConfigUpdateAttributes) o;
+ return Objects.equals(this.rum, rumSdkConfigUpdateAttributes.rum)
+ && Objects.equals(
+ this.additionalProperties, rumSdkConfigUpdateAttributes.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(rum, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class RumSdkConfigUpdateAttributes {\n");
+ sb.append(" rum: ").append(toIndentedString(rum)).append("\n");
+ sb.append(" additionalProperties: ")
+ .append(toIndentedString(additionalProperties))
+ .append("\n");
+ sb.append('}');
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigUpdateData.java b/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigUpdateData.java
new file mode 100644
index 00000000000..9bffbe7f975
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigUpdateData.java
@@ -0,0 +1,209 @@
+/*
+ * 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.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** The data object for updating a RUM SDK configuration. */
+@JsonPropertyOrder({
+ RumSdkConfigUpdateData.JSON_PROPERTY_ATTRIBUTES,
+ RumSdkConfigUpdateData.JSON_PROPERTY_ID,
+ RumSdkConfigUpdateData.JSON_PROPERTY_TYPE
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class RumSdkConfigUpdateData {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ATTRIBUTES = "attributes";
+ private RumSdkConfigUpdateAttributes attributes;
+
+ public static final String JSON_PROPERTY_ID = "id";
+ private String id;
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ private RumSdkConfigType type = RumSdkConfigType.RUM_SDK_CONFIG;
+
+ public RumSdkConfigUpdateData() {}
+
+ @JsonCreator
+ public RumSdkConfigUpdateData(
+ @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES)
+ RumSdkConfigUpdateAttributes attributes,
+ @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id,
+ @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) RumSdkConfigType type) {
+ this.attributes = attributes;
+ this.unparsed |= attributes.unparsed;
+ this.id = id;
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ }
+
+ public RumSdkConfigUpdateData attributes(RumSdkConfigUpdateAttributes attributes) {
+ this.attributes = attributes;
+ this.unparsed |= attributes.unparsed;
+ return this;
+ }
+
+ /**
+ * Attributes of the RUM SDK configuration to update.
+ *
+ * @return attributes
+ */
+ @JsonProperty(JSON_PROPERTY_ATTRIBUTES)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public RumSdkConfigUpdateAttributes getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(RumSdkConfigUpdateAttributes attributes) {
+ this.attributes = attributes;
+ }
+
+ public RumSdkConfigUpdateData id(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * The ID of the RUM SDK configuration to update.
+ *
+ * @return id
+ */
+ @JsonProperty(JSON_PROPERTY_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public RumSdkConfigUpdateData type(RumSdkConfigType type) {
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ return this;
+ }
+
+ /**
+ * The type of the resource. The value should always be rum_sdk_config.
+ *
+ * @return type
+ */
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public RumSdkConfigType getType() {
+ return type;
+ }
+
+ public void setType(RumSdkConfigType type) {
+ if (!type.isValid()) {
+ this.unparsed = true;
+ }
+ this.type = type;
+ }
+
+ /**
+ * A container for additional, undeclared properties. This is a holder for any undeclared
+ * properties as specified with the 'additionalProperties' keyword in the OAS document.
+ */
+ private Map additionalProperties;
+
+ /**
+ * Set the additional (undeclared) property with the specified name and value. If the property
+ * does not already exist, create it otherwise replace it.
+ *
+ * @param key The arbitrary key to set
+ * @param value The associated value
+ * @return RumSdkConfigUpdateData
+ */
+ @JsonAnySetter
+ public RumSdkConfigUpdateData putAdditionalProperty(String key, Object value) {
+ if (this.additionalProperties == null) {
+ this.additionalProperties = new HashMap();
+ }
+ this.additionalProperties.put(key, value);
+ return this;
+ }
+
+ /**
+ * Return the additional (undeclared) property.
+ *
+ * @return The additional properties
+ */
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return additionalProperties;
+ }
+
+ /**
+ * Return the additional (undeclared) property with the specified name.
+ *
+ * @param key The arbitrary key to get
+ * @return The specific additional property for the given key
+ */
+ public Object getAdditionalProperty(String key) {
+ if (this.additionalProperties == null) {
+ return null;
+ }
+ return this.additionalProperties.get(key);
+ }
+
+ /** Return true if this RumSdkConfigUpdateData object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ RumSdkConfigUpdateData rumSdkConfigUpdateData = (RumSdkConfigUpdateData) o;
+ return Objects.equals(this.attributes, rumSdkConfigUpdateData.attributes)
+ && Objects.equals(this.id, rumSdkConfigUpdateData.id)
+ && Objects.equals(this.type, rumSdkConfigUpdateData.type)
+ && Objects.equals(this.additionalProperties, rumSdkConfigUpdateData.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(attributes, id, type, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class RumSdkConfigUpdateData {\n");
+ sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n");
+ sb.append(" id: ").append(toIndentedString(id)).append("\n");
+ sb.append(" type: ").append(toIndentedString(type)).append("\n");
+ sb.append(" additionalProperties: ")
+ .append(toIndentedString(additionalProperties))
+ .append("\n");
+ sb.append('}');
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigUpdateRequest.java b/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigUpdateRequest.java
new file mode 100644
index 00000000000..7c09f29bcac
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/RumSdkConfigUpdateRequest.java
@@ -0,0 +1,146 @@
+/*
+ * 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.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** Request body for updating a RUM SDK configuration. */
+@JsonPropertyOrder({RumSdkConfigUpdateRequest.JSON_PROPERTY_DATA})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class RumSdkConfigUpdateRequest {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_DATA = "data";
+ private RumSdkConfigUpdateData data;
+
+ public RumSdkConfigUpdateRequest() {}
+
+ @JsonCreator
+ public RumSdkConfigUpdateRequest(
+ @JsonProperty(required = true, value = JSON_PROPERTY_DATA) RumSdkConfigUpdateData data) {
+ this.data = data;
+ this.unparsed |= data.unparsed;
+ }
+
+ public RumSdkConfigUpdateRequest data(RumSdkConfigUpdateData data) {
+ this.data = data;
+ this.unparsed |= data.unparsed;
+ return this;
+ }
+
+ /**
+ * The data object for updating a RUM SDK configuration.
+ *
+ * @return data
+ */
+ @JsonProperty(JSON_PROPERTY_DATA)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public RumSdkConfigUpdateData getData() {
+ return data;
+ }
+
+ public void setData(RumSdkConfigUpdateData data) {
+ this.data = data;
+ }
+
+ /**
+ * A container for additional, undeclared properties. This is a holder for any undeclared
+ * properties as specified with the 'additionalProperties' keyword in the OAS document.
+ */
+ private Map additionalProperties;
+
+ /**
+ * Set the additional (undeclared) property with the specified name and value. If the property
+ * does not already exist, create it otherwise replace it.
+ *
+ * @param key The arbitrary key to set
+ * @param value The associated value
+ * @return RumSdkConfigUpdateRequest
+ */
+ @JsonAnySetter
+ public RumSdkConfigUpdateRequest putAdditionalProperty(String key, Object value) {
+ if (this.additionalProperties == null) {
+ this.additionalProperties = new HashMap();
+ }
+ this.additionalProperties.put(key, value);
+ return this;
+ }
+
+ /**
+ * Return the additional (undeclared) property.
+ *
+ * @return The additional properties
+ */
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return additionalProperties;
+ }
+
+ /**
+ * Return the additional (undeclared) property with the specified name.
+ *
+ * @param key The arbitrary key to get
+ * @return The specific additional property for the given key
+ */
+ public Object getAdditionalProperty(String key) {
+ if (this.additionalProperties == null) {
+ return null;
+ }
+ return this.additionalProperties.get(key);
+ }
+
+ /** Return true if this RumSdkConfigUpdateRequest object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ RumSdkConfigUpdateRequest rumSdkConfigUpdateRequest = (RumSdkConfigUpdateRequest) o;
+ return Objects.equals(this.data, rumSdkConfigUpdateRequest.data)
+ && Objects.equals(
+ this.additionalProperties, rumSdkConfigUpdateRequest.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(data, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class RumSdkConfigUpdateRequest {\n");
+ sb.append(" data: ").append(toIndentedString(data)).append("\n");
+ sb.append(" additionalProperties: ")
+ .append(toIndentedString(additionalProperties))
+ .append("\n");
+ sb.append('}');
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/test/resources/cassettes/features/v2/Get_a_RUM_SDK_configuration_returns_Forbidden_response.freeze b/src/test/resources/cassettes/features/v2/Get_a_RUM_SDK_configuration_returns_Forbidden_response.freeze
new file mode 100644
index 00000000000..cbb7fdd824a
--- /dev/null
+++ b/src/test/resources/cassettes/features/v2/Get_a_RUM_SDK_configuration_returns_Forbidden_response.freeze
@@ -0,0 +1 @@
+2026-06-17T12:36:53.338Z
\ No newline at end of file
diff --git a/src/test/resources/cassettes/features/v2/Get_a_RUM_SDK_configuration_returns_Forbidden_response.json b/src/test/resources/cassettes/features/v2/Get_a_RUM_SDK_configuration_returns_Forbidden_response.json
new file mode 100644
index 00000000000..859f3c9c578
--- /dev/null
+++ b/src/test/resources/cassettes/features/v2/Get_a_RUM_SDK_configuration_returns_Forbidden_response.json
@@ -0,0 +1,28 @@
+[
+ {
+ "httpRequest": {
+ "headers": {},
+ "method": "GET",
+ "path": "/api/v2/remote_config/products/rum/configs/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
+ "keepAlive": false,
+ "secure": true
+ },
+ "httpResponse": {
+ "body": "{\"errors\":[{\"title\":\"Forbidden\"}]}\n",
+ "headers": {
+ "Content-Type": [
+ "text/plain; charset=utf-8"
+ ]
+ },
+ "statusCode": 403,
+ "reasonPhrase": "Forbidden"
+ },
+ "times": {
+ "remainingTimes": 1
+ },
+ "timeToLive": {
+ "unlimited": true
+ },
+ "id": "e0c7c782-056c-f124-b275-b28421d82197"
+ }
+]
\ No newline at end of file
diff --git a/src/test/resources/cassettes/features/v2/Update_a_RUM_SDK_configuration_returns_Forbidden_response.freeze b/src/test/resources/cassettes/features/v2/Update_a_RUM_SDK_configuration_returns_Forbidden_response.freeze
new file mode 100644
index 00000000000..9f95eabe3eb
--- /dev/null
+++ b/src/test/resources/cassettes/features/v2/Update_a_RUM_SDK_configuration_returns_Forbidden_response.freeze
@@ -0,0 +1 @@
+2026-06-17T12:36:53.745Z
\ No newline at end of file
diff --git a/src/test/resources/cassettes/features/v2/Update_a_RUM_SDK_configuration_returns_Forbidden_response.json b/src/test/resources/cassettes/features/v2/Update_a_RUM_SDK_configuration_returns_Forbidden_response.json
new file mode 100644
index 00000000000..3b09bb79a9c
--- /dev/null
+++ b/src/test/resources/cassettes/features/v2/Update_a_RUM_SDK_configuration_returns_Forbidden_response.json
@@ -0,0 +1,32 @@
+[
+ {
+ "httpRequest": {
+ "body": {
+ "type": "JSON",
+ "json": "{\"data\":{\"attributes\":{\"rum\":{\"default_privacy_level\":\"mask\",\"enable_privacy_for_action_name\":true,\"session_replay_sample_rate\":20,\"session_sample_rate\":75}},\"id\":\"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa\",\"type\":\"rum_sdk_config\"}}"
+ },
+ "headers": {},
+ "method": "PUT",
+ "path": "/api/v2/remote_config/products/rum/configs/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
+ "keepAlive": false,
+ "secure": true
+ },
+ "httpResponse": {
+ "body": "{\"errors\":[{\"title\":\"Forbidden\"}]}\n",
+ "headers": {
+ "Content-Type": [
+ "text/plain; charset=utf-8"
+ ]
+ },
+ "statusCode": 403,
+ "reasonPhrase": "Forbidden"
+ },
+ "times": {
+ "remainingTimes": 1
+ },
+ "timeToLive": {
+ "unlimited": true
+ },
+ "id": "71c220b0-2a7d-7598-63af-4f882856e2fb"
+ }
+]
\ No newline at end of file
diff --git a/src/test/resources/com/datadog/api/client/v2/api/rum_remote_config.feature b/src/test/resources/com/datadog/api/client/v2/api/rum_remote_config.feature
new file mode 100644
index 00000000000..363d3f0ac32
--- /dev/null
+++ b/src/test/resources/com/datadog/api/client/v2/api/rum_remote_config.feature
@@ -0,0 +1,70 @@
+@endpoint(rum-remote-config) @endpoint(rum-remote-config-v2)
+Feature: RUM Remote Config
+ Manage [RUM SDK
+ configurations](https://docs.datadoghq.com/real_user_monitoring/)
+ delivered to RUM applications via Remote Configuration.
+
+ Background:
+ Given a valid "apiKeyAuth" key in the system
+ And a valid "appKeyAuth" key in the system
+ And an instance of "RUMRemoteConfig" API
+
+ @team:DataDog/rum-backend
+ Scenario: Get a RUM SDK configuration returns "Forbidden" response
+ Given operation "GetRumSdkConfig" enabled
+ And new "GetRumSdkConfig" request
+ And request contains "config_id" parameter with value "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
+ When the request is sent
+ Then the response status is 403 Forbidden
+
+ @generated @skip @team:DataDog/rum-backend
+ Scenario: Get a RUM SDK configuration returns "Not Found" response
+ Given operation "GetRumSdkConfig" enabled
+ And new "GetRumSdkConfig" request
+ And request contains "config_id" parameter from "REPLACE.ME"
+ When the request is sent
+ Then the response status is 404 Not Found
+
+ @generated @skip @team:DataDog/rum-backend
+ Scenario: Get a RUM SDK configuration returns "OK" response
+ Given operation "GetRumSdkConfig" enabled
+ And new "GetRumSdkConfig" request
+ And request contains "config_id" parameter from "REPLACE.ME"
+ When the request is sent
+ Then the response status is 200 OK
+
+ @generated @skip @team:DataDog/rum-backend
+ Scenario: Update a RUM SDK configuration returns "Bad Request" response
+ Given operation "UpdateRumSdkConfig" enabled
+ And new "UpdateRumSdkConfig" request
+ And request contains "config_id" parameter from "REPLACE.ME"
+ And body with value {"data": {"attributes": {"rum": {"allowed_tracing_urls": [{"match": {"rc_serialized_type": "string", "value": "https://app.datadoghq.com"}, "propagator_types": ["datadog", "tracecontext"]}], "allowed_tracking_origins": [{"rc_serialized_type": "string", "value": "https://app.datadoghq.com"}], "context": [{"key": "id", "value": {"attribute": "data-version", "extractor": {"rc_serialized_type": "regex", "value": "^https://app-.*.datadoghq.com"}, "key": "app.version", "name": "app_version", "path": "application.version", "rc_serialized_type": "dynamic", "selector": "#app-version", "strategy": "js"}}], "default_privacy_level": "mask", "enable_privacy_for_action_name": true, "env": "production", "service": "my-service", "session_replay_sample_rate": 20, "session_sample_rate": 75, "trace_sample_rate": 100, "track_session_across_subdomains": false, "user": [{"key": "id", "value": {"attribute": "data-version", "extractor": {"rc_serialized_type": "regex", "value": "^https://app-.*.datadoghq.com"}, "key": "app.version", "name": "app_version", "path": "application.version", "rc_serialized_type": "dynamic", "selector": "#app-version", "strategy": "js"}}], "version": {"attribute": "data-version", "extractor": {"rc_serialized_type": "regex", "value": "^https://app-.*.datadoghq.com"}, "key": "app.version", "name": "app_version", "path": "application.version", "rc_serialized_type": "dynamic", "selector": "#app-version", "strategy": "js"}}}, "id": "abc12345-1234-5678-abcd-ef1234567890", "type": "rum_sdk_config"}}
+ When the request is sent
+ Then the response status is 400 Bad Request
+
+ @team:DataDog/rum-backend
+ Scenario: Update a RUM SDK configuration returns "Forbidden" response
+ Given operation "UpdateRumSdkConfig" enabled
+ And new "UpdateRumSdkConfig" request
+ And request contains "config_id" parameter with value "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
+ And body with value {"data": {"id": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa", "type": "rum_sdk_config", "attributes": {"rum": {"session_sample_rate": 75, "session_replay_sample_rate": 20, "default_privacy_level": "mask", "enable_privacy_for_action_name": true}}}}
+ When the request is sent
+ Then the response status is 403 Forbidden
+
+ @generated @skip @team:DataDog/rum-backend
+ Scenario: Update a RUM SDK configuration returns "Not Found" response
+ Given operation "UpdateRumSdkConfig" enabled
+ And new "UpdateRumSdkConfig" request
+ And request contains "config_id" parameter from "REPLACE.ME"
+ And body with value {"data": {"attributes": {"rum": {"allowed_tracing_urls": [{"match": {"rc_serialized_type": "string", "value": "https://app.datadoghq.com"}, "propagator_types": ["datadog", "tracecontext"]}], "allowed_tracking_origins": [{"rc_serialized_type": "string", "value": "https://app.datadoghq.com"}], "context": [{"key": "id", "value": {"attribute": "data-version", "extractor": {"rc_serialized_type": "regex", "value": "^https://app-.*.datadoghq.com"}, "key": "app.version", "name": "app_version", "path": "application.version", "rc_serialized_type": "dynamic", "selector": "#app-version", "strategy": "js"}}], "default_privacy_level": "mask", "enable_privacy_for_action_name": true, "env": "production", "service": "my-service", "session_replay_sample_rate": 20, "session_sample_rate": 75, "trace_sample_rate": 100, "track_session_across_subdomains": false, "user": [{"key": "id", "value": {"attribute": "data-version", "extractor": {"rc_serialized_type": "regex", "value": "^https://app-.*.datadoghq.com"}, "key": "app.version", "name": "app_version", "path": "application.version", "rc_serialized_type": "dynamic", "selector": "#app-version", "strategy": "js"}}], "version": {"attribute": "data-version", "extractor": {"rc_serialized_type": "regex", "value": "^https://app-.*.datadoghq.com"}, "key": "app.version", "name": "app_version", "path": "application.version", "rc_serialized_type": "dynamic", "selector": "#app-version", "strategy": "js"}}}, "id": "abc12345-1234-5678-abcd-ef1234567890", "type": "rum_sdk_config"}}
+ When the request is sent
+ Then the response status is 404 Not Found
+
+ @generated @skip @team:DataDog/rum-backend
+ Scenario: Update a RUM SDK configuration returns "OK" response
+ Given operation "UpdateRumSdkConfig" enabled
+ And new "UpdateRumSdkConfig" request
+ And request contains "config_id" parameter from "REPLACE.ME"
+ And body with value {"data": {"attributes": {"rum": {"allowed_tracing_urls": [{"match": {"rc_serialized_type": "string", "value": "https://app.datadoghq.com"}, "propagator_types": ["datadog", "tracecontext"]}], "allowed_tracking_origins": [{"rc_serialized_type": "string", "value": "https://app.datadoghq.com"}], "context": [{"key": "id", "value": {"attribute": "data-version", "extractor": {"rc_serialized_type": "regex", "value": "^https://app-.*.datadoghq.com"}, "key": "app.version", "name": "app_version", "path": "application.version", "rc_serialized_type": "dynamic", "selector": "#app-version", "strategy": "js"}}], "default_privacy_level": "mask", "enable_privacy_for_action_name": true, "env": "production", "service": "my-service", "session_replay_sample_rate": 20, "session_sample_rate": 75, "trace_sample_rate": 100, "track_session_across_subdomains": false, "user": [{"key": "id", "value": {"attribute": "data-version", "extractor": {"rc_serialized_type": "regex", "value": "^https://app-.*.datadoghq.com"}, "key": "app.version", "name": "app_version", "path": "application.version", "rc_serialized_type": "dynamic", "selector": "#app-version", "strategy": "js"}}], "version": {"attribute": "data-version", "extractor": {"rc_serialized_type": "regex", "value": "^https://app-.*.datadoghq.com"}, "key": "app.version", "name": "app_version", "path": "application.version", "rc_serialized_type": "dynamic", "selector": "#app-version", "strategy": "js"}}}, "id": "abc12345-1234-5678-abcd-ef1234567890", "type": "rum_sdk_config"}}
+ When the request is sent
+ Then the response status is 200 OK
diff --git a/src/test/resources/com/datadog/api/client/v2/api/undo.json b/src/test/resources/com/datadog/api/client/v2/api/undo.json
index 896b23d3d81..89626bc569e 100644
--- a/src/test/resources/com/datadog/api/client/v2/api/undo.json
+++ b/src/test/resources/com/datadog/api/client/v2/api/undo.json
@@ -6302,6 +6302,18 @@
"type": "idempotent"
}
},
+ "GetRumSdkConfig": {
+ "tag": "RUM Remote Config",
+ "undo": {
+ "type": "safe"
+ }
+ },
+ "UpdateRumSdkConfig": {
+ "tag": "RUM Remote Config",
+ "undo": {
+ "type": "idempotent"
+ }
+ },
"ListReplayHeatmapSnapshots": {
"tag": "Rum Replay Heatmaps",
"undo": {