From 5d3c008e66fbb5ad596a3416940351cf13f8470c Mon Sep 17 00:00:00 2001 From: "ci.datadog-api-spec" Date: Thu, 18 Jun 2026 14:17:24 +0000 Subject: [PATCH] Regenerate client from commit 55b2240 of spec repo --- .generator/schemas/v2/openapi.yaml | 514 +++++++++++++++ .../v2/rum-remote-config/GetRumSdkConfig.java | 26 + .../rum-remote-config/UpdateRumSdkConfig.java | 144 +++++ .../com/datadog/api/client/ApiClient.java | 2 + .../api/client/v2/api/RumRemoteConfigApi.java | 373 +++++++++++ .../v2/model/RUMApplicationAttributes.java | 28 + .../v2/model/RumSdkConfigAttributes.java | 145 +++++ .../api/client/v2/model/RumSdkConfigData.java | 237 +++++++ .../v2/model/RumSdkConfigDynamicOption.java | 362 +++++++++++ .../model/RumSdkConfigDynamicOptionPair.java | 176 ++++++ ...mSdkConfigDynamicOptionSerializedType.java | 62 ++ .../RumSdkConfigDynamicOptionStrategy.java | 64 ++ .../v2/model/RumSdkConfigMatchOption.java | 180 ++++++ ...RumSdkConfigMatchOptionSerializedType.java | 64 ++ .../api/client/v2/model/RumSdkConfigMeta.java | 174 +++++ .../client/v2/model/RumSdkConfigResponse.java | 145 +++++ .../v2/model/RumSdkConfigRumAttributes.java | 595 ++++++++++++++++++ .../RumSdkConfigRumUpdateAttributes.java | 571 +++++++++++++++++ .../v2/model/RumSdkConfigSerializedRegex.java | 181 ++++++ .../RumSdkConfigSerializedRegexType.java | 57 ++ .../model/RumSdkConfigTracingUrlConfig.java | 187 ++++++ .../RumSdkConfigTracingUrlPropagatorType.java | 66 ++ .../api/client/v2/model/RumSdkConfigType.java | 54 ++ .../model/RumSdkConfigUpdateAttributes.java | 147 +++++ .../v2/model/RumSdkConfigUpdateData.java | 209 ++++++ .../v2/model/RumSdkConfigUpdateRequest.java | 146 +++++ ...guration_returns_Forbidden_response.freeze | 1 + ...figuration_returns_Forbidden_response.json | 28 + ...guration_returns_Forbidden_response.freeze | 1 + ...figuration_returns_Forbidden_response.json | 32 + .../client/v2/api/rum_remote_config.feature | 70 +++ .../com/datadog/api/client/v2/api/undo.json | 12 + 32 files changed, 5053 insertions(+) create mode 100644 examples/v2/rum-remote-config/GetRumSdkConfig.java create mode 100644 examples/v2/rum-remote-config/UpdateRumSdkConfig.java create mode 100644 src/main/java/com/datadog/api/client/v2/api/RumRemoteConfigApi.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/RumSdkConfigAttributes.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/RumSdkConfigData.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/RumSdkConfigDynamicOption.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/RumSdkConfigDynamicOptionPair.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/RumSdkConfigDynamicOptionSerializedType.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/RumSdkConfigDynamicOptionStrategy.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/RumSdkConfigMatchOption.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/RumSdkConfigMatchOptionSerializedType.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/RumSdkConfigMeta.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/RumSdkConfigResponse.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/RumSdkConfigRumAttributes.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/RumSdkConfigRumUpdateAttributes.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/RumSdkConfigSerializedRegex.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/RumSdkConfigSerializedRegexType.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/RumSdkConfigTracingUrlConfig.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/RumSdkConfigTracingUrlPropagatorType.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/RumSdkConfigType.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/RumSdkConfigUpdateAttributes.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/RumSdkConfigUpdateData.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/RumSdkConfigUpdateRequest.java create mode 100644 src/test/resources/cassettes/features/v2/Get_a_RUM_SDK_configuration_returns_Forbidden_response.freeze create mode 100644 src/test/resources/cassettes/features/v2/Get_a_RUM_SDK_configuration_returns_Forbidden_response.json create mode 100644 src/test/resources/cassettes/features/v2/Update_a_RUM_SDK_configuration_returns_Forbidden_response.freeze create mode 100644 src/test/resources/cassettes/features/v2/Update_a_RUM_SDK_configuration_returns_Forbidden_response.json create mode 100644 src/test/resources/com/datadog/api/client/v2/api/rum_remote_config.feature 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": {