diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml
index b8dc06e8386..0bb0d8932be 100644
--- a/.generator/schemas/v2/openapi.yaml
+++ b/.generator/schemas/v2/openapi.yaml
@@ -109726,6 +109726,354 @@ components:
type: string
x-enum-varnames:
- RULESET_STATUS
+ RumArchiveConfig:
+ description: JSON:API resource.
+ properties:
+ attributes:
+ $ref: "#/components/schemas/RumArchiveConfigAttributes"
+ id:
+ description: Resource identifier.
+ example: a33671aa-24fd-4dcd-ba4b-5bbdbafe7690
+ type: string
+ type:
+ $ref: "#/components/schemas/RumArchiveConfigType"
+ required:
+ - id
+ - type
+ - attributes
+ type: object
+ RumArchiveConfigAttributes:
+ description: Archive configuration.
+ properties:
+ enabled:
+ description: Whether archiving is enabled.
+ example: true
+ type: boolean
+ org_id:
+ description: Organization ID.
+ example: 123
+ format: int64
+ type: integer
+ retention_days:
+ description: Configured retention in days; omitted when unset.
+ example: 90
+ format: int32
+ maximum: 2147483647
+ type: integer
+ updated_at:
+ description: Last update time.
+ example: "2026-09-21T12:00:00Z"
+ format: date-time
+ type: string
+ updated_by:
+ description: Handle of the user who last updated the configuration.
+ example: user@example.com
+ type: string
+ required:
+ - org_id
+ - enabled
+ type: object
+ RumArchiveConfigListResponse:
+ description: JSON:API document.
+ properties:
+ data:
+ description: Configurations in page order.
+ items:
+ $ref: "#/components/schemas/RumArchiveConfig"
+ type: array
+ meta:
+ $ref: "#/components/schemas/RumArchiveConfigMeta"
+ required:
+ - data
+ - meta
+ type: object
+ RumArchiveConfigMeta:
+ description: Pagination metadata.
+ properties:
+ page:
+ $ref: "#/components/schemas/RumArchiveConfigPage"
+ required:
+ - page
+ type: object
+ RumArchiveConfigPage:
+ description: Page information.
+ properties:
+ total_filtered_count:
+ description: Total configurations for the organization.
+ example: 0
+ format: int64
+ minimum: 0
+ type: integer
+ required:
+ - total_filtered_count
+ type: object
+ RumArchiveConfigResponse:
+ description: JSON:API document.
+ properties:
+ data:
+ $ref: "#/components/schemas/RumArchiveConfig"
+ required:
+ - data
+ type: object
+ RumArchiveConfigType:
+ description: JSON:API resource type.
+ enum:
+ - rum_archive_config
+ example: rum_archive_config
+ type: string
+ x-enum-varnames:
+ - RUM_ARCHIVE_CONFIG
+ RumArchiveConfigUpsertAttributes:
+ description: >-
+ Archive configuration to save. When enabled is true, retention_days is required and must be 30, 90, or 180. When disabled, retention_days can be omitted.
+ properties:
+ enabled:
+ description: Whether archiving is enabled.
+ example: true
+ type: boolean
+ retention_days:
+ description: Retention in days. Required and restricted to 30, 90, or 180 only when enabled is true.
+ example: 90
+ format: int32
+ maximum: 2147483647
+ type: integer
+ required:
+ - enabled
+ type: object
+ RumArchiveConfigUpsertData:
+ description: JSON:API resource.
+ properties:
+ attributes:
+ $ref: "#/components/schemas/RumArchiveConfigUpsertAttributes"
+ id:
+ description: Resource identifier.
+ example: a33671aa-24fd-4dcd-ba4b-5bbdbafe7690
+ type: string
+ type:
+ $ref: "#/components/schemas/RumArchiveConfigType"
+ required:
+ - id
+ - type
+ - attributes
+ type: object
+ RumArchiveConfigUpsertRequest:
+ description: JSON:API document.
+ properties:
+ data:
+ $ref: "#/components/schemas/RumArchiveConfigUpsertData"
+ required:
+ - data
+ type: object
+ RumArchiveSession:
+ description: JSON:API resource.
+ properties:
+ attributes:
+ $ref: "#/components/schemas/RumArchiveSessionAttributes"
+ id:
+ description: Resource identifier.
+ example: 11111111-1111-4111-8111-111111111111
+ type: string
+ type:
+ $ref: "#/components/schemas/RumArchiveSessionType"
+ required:
+ - id
+ - type
+ - attributes
+ type: object
+ RumArchiveSessionAttributes:
+ description: Archived session metadata.
+ properties:
+ account_id:
+ description: Session account id, or null when unavailable.
+ example: account-123
+ nullable: true
+ type: string
+ anonymous_id:
+ description: Session anonymous id, or null when unavailable.
+ example: anonymous-123
+ nullable: true
+ type: string
+ application_id:
+ description: Application UUID.
+ example: a33671aa-24fd-4dcd-ba4b-5bbdbafe7690
+ format: uuid
+ type: string
+ country:
+ description: Session country, or null when unavailable.
+ example: US
+ nullable: true
+ type: string
+ recovery_status:
+ $ref: "#/components/schemas/RumArchiveSessionRecoveryStatus"
+ service:
+ description: Service name.
+ example: web
+ type: string
+ session_id:
+ description: Session identifier.
+ example: 00000000-0000-4000-8000-000000000001
+ type: string
+ timestamp:
+ description: Session timestamp in Unix milliseconds.
+ example: 1789905600000
+ format: int64
+ type: integer
+ user_id:
+ description: Session user id, or null when unavailable.
+ example: user-123
+ nullable: true
+ type: string
+ version:
+ description: Session version, or null when unavailable.
+ example: 1.0.0
+ nullable: true
+ type: string
+ required:
+ - session_id
+ - application_id
+ - timestamp
+ - service
+ - user_id
+ - anonymous_id
+ - account_id
+ - country
+ - version
+ - recovery_status
+ type: object
+ RumArchiveSessionRecoveryStatus:
+ description: >-
+ Session recovery state. A missing recovery record can be represented as null. Optional request_id and recovered_at are omitted when unavailable.
+ nullable: true
+ properties:
+ recovered_at:
+ description: Recovery timestamp, when available.
+ example: example
+ format: date-time
+ type: string
+ request_id:
+ description: Associated recovery request ID.
+ example: 11111111-1111-4111-8111-111111111111
+ type: string
+ status:
+ $ref: "#/components/schemas/RumRecoverySessionStatus"
+ required:
+ - status
+ type: object
+ RumArchiveSessionType:
+ description: JSON:API resource type.
+ enum:
+ - rum_archive_session
+ example: rum_archive_session
+ type: string
+ x-enum-varnames:
+ - RUM_ARCHIVE_SESSION
+ RumArchiveSessionsMeta:
+ description: Search metadata.
+ properties:
+ page:
+ $ref: "#/components/schemas/RumArchiveSessionsPage"
+ required:
+ - page
+ type: object
+ RumArchiveSessionsPage:
+ description: Search pagination.
+ properties:
+ next_cursor:
+ description: Opaque continuation cursor. Omitted when no further page is available.
+ example: example
+ type: string
+ total_count:
+ description: >-
+ Search result count. Can be zero on continuation pages even when sessions are returned. Use `next_cursor` to determine whether more pages are available.
+ example: 0
+ format: int64
+ minimum: 0
+ type: integer
+ required:
+ - total_count
+ type: object
+ RumArchiveSessionsResponse:
+ description: JSON:API document.
+ properties:
+ data:
+ description: Archived sessions.
+ items:
+ $ref: "#/components/schemas/RumArchiveSession"
+ type: array
+ meta:
+ $ref: "#/components/schemas/RumArchiveSessionsMeta"
+ required:
+ - data
+ - meta
+ type: object
+ RumArchiveSessionsSearchAttributes:
+ description: >-
+ Archived-session query. A window wider than configured archive retention is narrowed before searching.
+ properties:
+ cursor:
+ description: Opaque next-page cursor. Keep the query, time range, and hide_retained value unchanged.
+ example: example
+ type: string
+ from:
+ description: Start of the range in Unix milliseconds. Must be positive and earlier than to.
+ example: 1789905600000
+ format: int64
+ minimum: 1
+ type: integer
+ hide_retained:
+ default: false
+ description: >-
+ When true, exclude sessions already present in hot RUM storage. When false, those sessions can appear in the results. Keep this value unchanged when continuing with a cursor.
+ example: false
+ type: boolean
+ limit:
+ default: 50
+ description: Page size. Values at or below zero use 50; values above 1000 are clamped to 1000.
+ example: 0
+ format: int32
+ maximum: 2147483647
+ type: integer
+ query:
+ description: RUM search query. Must not be empty.
+ example: service:web
+ type: string
+ to:
+ description: End of the range in Unix milliseconds.
+ example: 1789992000000
+ format: int64
+ minimum: 1
+ type: integer
+ required:
+ - query
+ - from
+ - to
+ type: object
+ RumArchiveSessionsSearchData:
+ description: JSON:API resource.
+ properties:
+ attributes:
+ $ref: "#/components/schemas/RumArchiveSessionsSearchAttributes"
+ id:
+ description: >-
+ Optional resource identifier.
+ example: 11111111-1111-4111-8111-111111111111
+ type: string
+ type:
+ description: >-
+ JSON:API resource type.
+ example: rum_archive_sessions_request
+ type: string
+ required:
+ - attributes
+ type: object
+ RumArchiveSessionsSearchRequest:
+ description: JSON:API document.
+ properties:
+ data:
+ $ref: "#/components/schemas/RumArchiveSessionsSearchData"
+ required:
+ - data
+ type: object
RumConfigAttributes:
description: Attributes of the RUM configuration.
properties:
@@ -110090,6 +110438,19 @@ components:
$ref: "#/components/schemas/RumExclusionFilterData"
type: array
type: object
+ RumManagedArchiveErrorResponse:
+ description: API error response.
+ properties:
+ errors:
+ description: Errors as plain-text messages or JSON:API error objects containing status, title, and detail.
+ example:
+ - Forbidden
+ items:
+ description: A plain-text message or a JSON:API error object.
+ type: array
+ required:
+ - errors
+ type: object
RumMetricCompute:
description: The compute rule to compute the RUM-based metric. It is set at creation and only `include_percentiles` can be updated afterward.
properties:
@@ -110448,6 +110809,753 @@ components:
$ref: "#/components/schemas/RumPermanentRetentionFilterData"
type: array
type: object
+ RumRecoveredSession:
+ description: Progress for one targeted session.
+ properties:
+ application_id:
+ description: Application UUID.
+ example: a33671aa-24fd-4dcd-ba4b-5bbdbafe7690
+ format: uuid
+ type: string
+ error_message:
+ description: Failure details, if present.
+ example: example
+ type: string
+ events_recovered:
+ description: Recovered event count.
+ example: 0
+ format: int64
+ minimum: 0
+ type: integer
+ session_id:
+ description: Session identifier.
+ example: 00000000-0000-4000-8000-000000000001
+ format: uuid
+ type: string
+ status:
+ $ref: "#/components/schemas/RumRecoverySessionStatus"
+ required:
+ - session_id
+ - application_id
+ - status
+ - events_recovered
+ type: object
+ RumRecoveryBatchCreateAttributes:
+ description: >-
+ Recover sessions selected by a query. The range cannot exceed 180 days; from cannot be more than 4 years ago and to cannot be more than 1 hour in the future. Session availability depends on the configured archive retention.
+ properties:
+ estimated_count:
+ description: >-
+ Optional client estimate. Creation validates and stores a fresh server estimate instead of this value.
+ example: 0
+ format: int64
+ minimum: 0
+ type: integer
+ from:
+ description: Start of the range in Unix milliseconds. Must be positive and earlier than to.
+ example: 1789905600000
+ format: int64
+ minimum: 1
+ type: integer
+ query:
+ description: RUM search query. Not blank, at most 4096 bytes for batch creation and count.
+ example: service:web
+ type: string
+ request_type:
+ $ref: "#/components/schemas/RumRecoveryBatchRequestType"
+ to:
+ description: End of the range in Unix milliseconds.
+ example: 1789992000000
+ format: int64
+ minimum: 1
+ type: integer
+ required:
+ - request_type
+ - query
+ - from
+ - to
+ type: object
+ RumRecoveryBatchListAttributes:
+ description: >-
+ Batch recovery progress. Status updates can appear here before they appear in request details.
+ properties:
+ created_at:
+ description: Creation time.
+ example: "2026-09-21T12:00:00Z"
+ format: date-time
+ type: string
+ discovery_status:
+ $ref: "#/components/schemas/RumRecoveryDiscoveryStatus"
+ estimated_count:
+ description: >-
+ Batch estimate stored at creation, when present. New batches use a fresh server estimate; older batches may contain a client-supplied estimate.
+ example: 0
+ format: int64
+ minimum: 0
+ type: integer
+ from:
+ description: Start of the range in Unix milliseconds. Must be positive and earlier than to.
+ example: 1789905600000
+ format: int64
+ minimum: 1
+ type: integer
+ query:
+ description: RUM search query. Not blank, at most 4096 bytes for batch creation and count.
+ example: service:web
+ type: string
+ sessions_discovered:
+ description: Discovered sessions.
+ example: 0
+ format: int64
+ minimum: 0
+ type: integer
+ sessions_failed:
+ description: Failed sessions.
+ example: 0
+ format: int64
+ minimum: 0
+ type: integer
+ sessions_processed:
+ description: Processed sessions.
+ example: 0
+ format: int64
+ minimum: 0
+ type: integer
+ slices_completed:
+ description: Completed slices.
+ example: 0
+ format: int64
+ minimum: 0
+ type: integer
+ slices_failed:
+ description: Failed slices.
+ example: 0
+ format: int64
+ minimum: 0
+ type: integer
+ status:
+ $ref: "#/components/schemas/RumRecoveryRequestStatus"
+ to:
+ description: End of the range in Unix milliseconds.
+ example: 1789992000000
+ format: int64
+ minimum: 1
+ type: integer
+ total_slices:
+ description: Total discovery slices.
+ example: 0
+ format: int64
+ minimum: 0
+ type: integer
+ updated_at:
+ description: Last update time.
+ example: "2026-09-21T12:00:00Z"
+ format: date-time
+ type: string
+ required:
+ - status
+ - discovery_status
+ - created_at
+ - updated_at
+ - query
+ - from
+ - to
+ - total_slices
+ - slices_completed
+ - slices_failed
+ - sessions_discovered
+ - sessions_processed
+ - sessions_failed
+ type: object
+ RumRecoveryBatchListData:
+ description: JSON:API resource.
+ properties:
+ attributes:
+ $ref: "#/components/schemas/RumRecoveryBatchListAttributes"
+ id:
+ description: Resource identifier.
+ example: 11111111-1111-4111-8111-111111111111
+ type: string
+ type:
+ $ref: "#/components/schemas/RumRecoveryBatchListDataType"
+ required:
+ - id
+ - type
+ - attributes
+ type: object
+ RumRecoveryBatchListDataType:
+ description: JSON:API resource type.
+ enum:
+ - rum_batch_recovery_request
+ example: rum_batch_recovery_request
+ type: string
+ x-enum-varnames:
+ - RUM_BATCH_RECOVERY_REQUEST
+ RumRecoveryBatchListMeta:
+ description: Batch-list pagination metadata.
+ properties:
+ next_cursor:
+ description: Opaque next-page cursor. Omitted on the final page.
+ example: example
+ type: string
+ type: object
+ RumRecoveryBatchListResponse:
+ description: JSON:API document.
+ properties:
+ data:
+ description: >-
+ Batch requests ordered newest first. A filtered page can be empty while meta.next_cursor is present.
+ items:
+ $ref: "#/components/schemas/RumRecoveryBatchListData"
+ type: array
+ meta:
+ $ref: "#/components/schemas/RumRecoveryBatchListMeta"
+ required:
+ - data
+ - meta
+ type: object
+ RumRecoveryBatchRequestType:
+ description: Query-based batch recovery.
+ enum:
+ - batch
+ example: batch
+ type: string
+ x-enum-varnames:
+ - BATCH
+ RumRecoveryCancelAttributes:
+ description: Batch cancellation.
+ properties:
+ status:
+ $ref: "#/components/schemas/RumRecoveryCancelStatus"
+ required:
+ - status
+ type: object
+ RumRecoveryCancelData:
+ description: JSON:API resource.
+ properties:
+ attributes:
+ $ref: "#/components/schemas/RumRecoveryCancelAttributes"
+ id:
+ description: >-
+ Optional resource identifier.
+ example: 11111111-1111-4111-8111-111111111111
+ type: string
+ type:
+ description: >-
+ JSON:API resource type.
+ example: rum_recovery_request
+ type: string
+ required:
+ - attributes
+ type: object
+ RumRecoveryCancelRequest:
+ description: JSON:API document.
+ properties:
+ data:
+ $ref: "#/components/schemas/RumRecoveryCancelData"
+ required:
+ - data
+ type: object
+ RumRecoveryCancelResponse:
+ description: JSON:API document.
+ properties:
+ data:
+ $ref: "#/components/schemas/RumRecoveryCancelResponseData"
+ required:
+ - data
+ type: object
+ RumRecoveryCancelResponseAttributes:
+ description: >-
+ Batch cancellation acknowledgment.
+ properties:
+ cancelled_at:
+ description: Cancellation time.
+ example: "2026-09-21T12:00:00Z"
+ format: date-time
+ type: string
+ cancelled_by:
+ description: Handle of the user who canceled the batch.
+ example: user@example.com
+ type: string
+ discovery_status:
+ $ref: "#/components/schemas/RumRecoveryDiscoveryStatus"
+ required:
+ - discovery_status
+ - cancelled_at
+ - cancelled_by
+ type: object
+ RumRecoveryCancelResponseData:
+ description: JSON:API resource.
+ properties:
+ attributes:
+ $ref: "#/components/schemas/RumRecoveryCancelResponseAttributes"
+ id:
+ description: Resource identifier.
+ example: 11111111-1111-4111-8111-111111111111
+ type: string
+ type:
+ $ref: "#/components/schemas/RumRecoveryRequestType"
+ required:
+ - id
+ - type
+ - attributes
+ type: object
+ RumRecoveryCancelStatus:
+ description: Requested cancellation state.
+ enum:
+ - cancelled
+ example: cancelled
+ type: string
+ x-enum-varnames:
+ - CANCELLED
+ RumRecoveryCountAttributes:
+ description: >-
+ Query for a recovery estimate. The range cannot exceed 180 days; from cannot be more than 4 years ago and to cannot be more than 1 hour in the future. Session availability depends on the configured archive retention.
+ properties:
+ from:
+ description: Start of the range in Unix milliseconds. Must be positive and earlier than to.
+ example: 1789905600000
+ format: int64
+ minimum: 1
+ type: integer
+ query:
+ description: RUM search query. Not blank, at most 4096 bytes for batch creation and count.
+ example: service:web
+ type: string
+ to:
+ description: End of the range in Unix milliseconds.
+ example: 1789992000000
+ format: int64
+ minimum: 1
+ type: integer
+ required:
+ - query
+ - from
+ - to
+ type: object
+ RumRecoveryCountRequest:
+ description: JSON:API document.
+ properties:
+ data:
+ $ref: "#/components/schemas/RumRecoveryCountRequestData"
+ required:
+ - data
+ type: object
+ RumRecoveryCountRequestData:
+ description: JSON:API resource.
+ properties:
+ attributes:
+ $ref: "#/components/schemas/RumRecoveryCountAttributes"
+ id:
+ description: >-
+ Optional resource identifier.
+ example: 11111111-1111-4111-8111-111111111111
+ type: string
+ type:
+ description: >-
+ JSON:API resource type.
+ example: rum_recovery_count
+ type: string
+ required:
+ - attributes
+ type: object
+ RumRecoveryCountResponse:
+ description: JSON:API document.
+ properties:
+ data:
+ $ref: "#/components/schemas/RumRecoveryCountResponseData"
+ required:
+ - data
+ type: object
+ RumRecoveryCountResponseAttributes:
+ description: Approximate recoverable count.
+ properties:
+ estimated_count:
+ description: >-
+ Estimated distinct recoverable sessions not already retained in hot storage. This can exceed max_recoverable_sessions.
+ example: 0
+ format: int64
+ minimum: 0
+ type: integer
+ max_recoverable_sessions:
+ description: >-
+ Configured maximum estimated recoverable sessions per batch (100,000 by default). Estimates equal to this value are accepted at creation.
+ example: 100000
+ format: int64
+ maximum: 2147483647
+ minimum: 1
+ type: integer
+ required:
+ - estimated_count
+ - max_recoverable_sessions
+ type: object
+ RumRecoveryCountResponseData:
+ description: JSON:API resource.
+ properties:
+ attributes:
+ $ref: "#/components/schemas/RumRecoveryCountResponseAttributes"
+ id:
+ description: Resource identifier.
+ example: count
+ type: string
+ type:
+ $ref: "#/components/schemas/RumRecoveryCountResponseDataType"
+ required:
+ - id
+ - type
+ - attributes
+ type: object
+ RumRecoveryCountResponseDataType:
+ description: JSON:API resource type.
+ enum:
+ - rum_recovery_count
+ example: rum_recovery_count
+ type: string
+ x-enum-varnames:
+ - RUM_RECOVERY_COUNT
+ RumRecoveryCreateAttributes:
+ description: Targeted recovery (the default) or query-based batch recovery.
+ oneOf:
+ - $ref: "#/components/schemas/RumRecoverySessionsCreateAttributes"
+ - $ref: "#/components/schemas/RumRecoveryBatchCreateAttributes"
+ RumRecoveryCreateData:
+ description: JSON:API resource.
+ properties:
+ attributes:
+ $ref: "#/components/schemas/RumRecoveryCreateAttributes"
+ type:
+ description: >-
+ JSON:API resource type.
+ example: rum_recovery_request
+ type: string
+ required:
+ - attributes
+ type: object
+ RumRecoveryCreateRequest:
+ description: JSON:API document.
+ properties:
+ data:
+ $ref: "#/components/schemas/RumRecoveryCreateData"
+ required:
+ - data
+ type: object
+ RumRecoveryCreateResponse:
+ description: JSON:API document.
+ properties:
+ data:
+ $ref: "#/components/schemas/RumRecoveryCreateResponseData"
+ required:
+ - data
+ type: object
+ RumRecoveryCreateResponseAttributes:
+ description: Accepted recovery request.
+ properties:
+ created_at:
+ description: Creation time.
+ example: "2026-09-21T12:00:00Z"
+ format: date-time
+ type: string
+ discovery_status:
+ $ref: "#/components/schemas/RumRecoveryDiscoveryStatus"
+ estimated_count:
+ description: >-
+ Batch estimate stored at creation, when present. New batches use a fresh server estimate; older batches may contain a client-supplied estimate.
+ example: 0
+ format: int64
+ minimum: 0
+ type: integer
+ failed_sessions:
+ description: Failed session count.
+ example: 0
+ format: int64
+ minimum: 0
+ type: integer
+ processed_sessions:
+ description: Processed session count.
+ example: 0
+ format: int64
+ minimum: 0
+ type: integer
+ status:
+ $ref: "#/components/schemas/RumRecoveryRequestStatus"
+ total_sessions:
+ description: Total targeted sessions. Omitted while a batch total is unknown.
+ example: 0
+ format: int64
+ minimum: 0
+ type: integer
+ required:
+ - status
+ - processed_sessions
+ - failed_sessions
+ - created_at
+ type: object
+ RumRecoveryCreateResponseData:
+ description: JSON:API resource.
+ properties:
+ attributes:
+ $ref: "#/components/schemas/RumRecoveryCreateResponseAttributes"
+ id:
+ description: Resource identifier.
+ example: 11111111-1111-4111-8111-111111111111
+ type: string
+ type:
+ $ref: "#/components/schemas/RumRecoveryRequestType"
+ required:
+ - id
+ - type
+ - attributes
+ type: object
+ RumRecoveryDiscoveryStatus:
+ description: Batch discovery state. QUEUED indicates that the request is waiting for processing capacity.
+ enum:
+ - QUEUED
+ - PENDING
+ - SLICING
+ - DISCOVERED
+ - PROCESSING
+ - COMPLETED
+ - FAILED
+ - CANCELLED
+ example: QUEUED
+ type: string
+ x-enum-varnames:
+ - QUEUED
+ - PENDING
+ - SLICING
+ - DISCOVERED
+ - PROCESSING
+ - COMPLETED
+ - FAILED
+ - CANCELLED
+ RumRecoveryRequestAttributes:
+ description: >-
+ Recovery progress. Batch-only attributes are omitted for targeted requests; request_type is also omitted for targeted requests.
+ properties:
+ created_at:
+ description: Creation time.
+ example: "2026-09-21T12:00:00Z"
+ format: date-time
+ type: string
+ discovery_status:
+ $ref: "#/components/schemas/RumRecoveryDiscoveryStatus"
+ error_message:
+ description: Failure details, if present.
+ example: example
+ type: string
+ estimated_count:
+ description: >-
+ Batch estimate stored at creation, when present. New batches use a fresh server estimate; older batches may contain a client-supplied estimate.
+ example: 0
+ format: int64
+ minimum: 0
+ type: integer
+ failed_sessions:
+ description: Failed session count.
+ example: 0
+ format: int64
+ minimum: 0
+ type: integer
+ from:
+ description: Start of the range in Unix milliseconds. Must be positive and earlier than to.
+ example: 1789905600000
+ format: int64
+ minimum: 1
+ type: integer
+ processed_sessions:
+ description: Processed session count.
+ example: 0
+ format: int64
+ minimum: 0
+ type: integer
+ query:
+ description: RUM search query. Not blank, at most 4096 bytes for batch creation and count.
+ example: service:web
+ type: string
+ request_type:
+ $ref: "#/components/schemas/RumRecoveryBatchRequestType"
+ sessions:
+ description: Targeted session progress. Omitted when empty or not applicable.
+ items:
+ $ref: "#/components/schemas/RumRecoveredSession"
+ type: array
+ sessions_discovered:
+ description: Discovered sessions.
+ example: 0
+ format: int64
+ minimum: 0
+ type: integer
+ sessions_failed:
+ description: Failed sessions.
+ example: 0
+ format: int64
+ minimum: 0
+ type: integer
+ sessions_processed:
+ description: Processed sessions.
+ example: 0
+ format: int64
+ minimum: 0
+ type: integer
+ slices_completed:
+ description: Completed slices.
+ example: 0
+ format: int64
+ minimum: 0
+ type: integer
+ slices_failed:
+ description: Failed slices.
+ example: 0
+ format: int64
+ minimum: 0
+ type: integer
+ status:
+ $ref: "#/components/schemas/RumRecoveryRequestStatus"
+ to:
+ description: End of the range in Unix milliseconds.
+ example: 1789992000000
+ format: int64
+ minimum: 1
+ type: integer
+ total_sessions:
+ description: Total targeted sessions. Omitted while a batch total is unknown.
+ example: 0
+ format: int64
+ minimum: 0
+ type: integer
+ total_slices:
+ description: Total discovery slices.
+ example: 0
+ format: int64
+ minimum: 0
+ type: integer
+ updated_at:
+ description: Last update time.
+ example: "2026-09-21T12:00:00Z"
+ format: date-time
+ type: string
+ required:
+ - status
+ - processed_sessions
+ - failed_sessions
+ - created_at
+ - updated_at
+ type: object
+ RumRecoveryRequestData:
+ description: JSON:API resource.
+ properties:
+ attributes:
+ $ref: "#/components/schemas/RumRecoveryRequestAttributes"
+ id:
+ description: Resource identifier.
+ example: 11111111-1111-4111-8111-111111111111
+ type: string
+ type:
+ $ref: "#/components/schemas/RumRecoveryRequestType"
+ required:
+ - id
+ - type
+ - attributes
+ type: object
+ RumRecoveryRequestResponse:
+ description: JSON:API document.
+ properties:
+ data:
+ $ref: "#/components/schemas/RumRecoveryRequestData"
+ required:
+ - data
+ type: object
+ RumRecoveryRequestStatus:
+ description: >-
+ Recovery request state.
+ enum:
+ - PENDING
+ - PROCESSING
+ - COMPLETED
+ - FAILED
+ - CANCELLED
+ - EXPIRED
+ example: PENDING
+ type: string
+ x-enum-varnames:
+ - PENDING
+ - PROCESSING
+ - COMPLETED
+ - FAILED
+ - CANCELLED
+ - EXPIRED
+ RumRecoveryRequestType:
+ description: JSON:API resource type.
+ enum:
+ - rum_recovery_request
+ example: rum_recovery_request
+ type: string
+ x-enum-varnames:
+ - RUM_RECOVERY_REQUEST
+ RumRecoverySessionInput:
+ description: Archived session to recover.
+ properties:
+ application_id:
+ description: Application UUID.
+ example: a33671aa-24fd-4dcd-ba4b-5bbdbafe7690
+ format: uuid
+ type: string
+ session_id:
+ description: Session UUID.
+ example: 00000000-0000-4000-8000-000000000001
+ format: uuid
+ type: string
+ required:
+ - application_id
+ - session_id
+ type: object
+ RumRecoverySessionStatus:
+ description: >-
+ Session availability or recovery state. `RECOVERED` indicates that the session is ready to query.
+ enum:
+ - AVAILABLE
+ - PENDING
+ - PROCESSING
+ - RECOVERED
+ - FAILED
+ - RETAINED
+ - EXPIRED
+ - CANCELLED
+ example: AVAILABLE
+ type: string
+ x-enum-varnames:
+ - AVAILABLE
+ - PENDING
+ - PROCESSING
+ - RECOVERED
+ - FAILED
+ - RETAINED
+ - EXPIRED
+ - CANCELLED
+ RumRecoverySessionsCreateAttributes:
+ description: Recover 1 to 100 explicit archived sessions. Session IDs must be unique within the request.
+ properties:
+ request_type:
+ $ref: "#/components/schemas/RumRecoverySessionsRequestType"
+ sessions:
+ description: Sessions to recover.
+ items:
+ $ref: "#/components/schemas/RumRecoverySessionInput"
+ maxItems: 100
+ minItems: 1
+ type: array
+ required:
+ - sessions
+ type: object
+ RumRecoverySessionsRequestType:
+ default: sessions
+ description: Targeted recovery. Omitted request_type defaults to sessions.
+ enum:
+ - sessions
+ example: sessions
+ type: string
+ x-enum-varnames:
+ - SESSIONS
RumRetentionFilterAttributes:
description: The object describing attributes of a RUM retention filter.
properties:
@@ -223944,6 +225052,306 @@ paths:
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/rum/config/archive:
+ get:
+ description: >-
+ Get the list of archive configurations for your organization.
+ operationId: ListRUMArchiveConfigs
+ parameters:
+ - description: Page number.
+ in: query
+ name: page[number]
+ required: false
+ schema:
+ default: 0
+ format: int32
+ maximum: 10000
+ minimum: 0
+ type: integer
+ - description: Configurations per page.
+ in: query
+ name: page[size]
+ required: false
+ schema:
+ default: 20
+ format: int32
+ maximum: 100
+ minimum: 1
+ type: integer
+ responses:
+ "200":
+ content:
+ application/json:
+ examples:
+ default:
+ value:
+ data:
+ - attributes:
+ enabled: true
+ org_id: 123
+ retention_days: 90
+ updated_at: "2026-09-21T12:00:00Z"
+ updated_by: user@example.com
+ id: a33671aa-24fd-4dcd-ba4b-5bbdbafe7690
+ type: rum_archive_config
+ meta:
+ page:
+ total_filtered_count: 1
+ empty:
+ value:
+ data: []
+ meta:
+ page:
+ total_filtered_count: 0
+ schema:
+ $ref: "#/components/schemas/RumArchiveConfigListResponse"
+ description: OK
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/RumManagedArchiveErrorResponse"
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/RumManagedArchiveErrorResponse"
+ description: Forbidden
+ "429":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/RumManagedArchiveErrorResponse"
+ description: Too Many Requests
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ summary: List archive configurations
+ tags:
+ - RUM Managed Archives
+ /api/v2/rum/config/archive/{app_id}:
+ delete:
+ description: >-
+ Delete the archive configuration for a RUM application. Archived and recovered session data is not deleted.
+ operationId: DeleteRUMArchiveConfig
+ parameters:
+ - description: RUM application ID.
+ in: path
+ name: app_id
+ required: true
+ schema:
+ description: Application UUID.
+ example: a33671aa-24fd-4dcd-ba4b-5bbdbafe7690
+ format: uuid
+ type: string
+ responses:
+ "204":
+ description: No Content
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/RumManagedArchiveErrorResponse"
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/RumManagedArchiveErrorResponse"
+ description: Forbidden
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Not Found
+ "429":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/RumManagedArchiveErrorResponse"
+ description: Too Many Requests
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ summary: Delete an archive configuration
+ tags:
+ - RUM Managed Archives
+ get:
+ description: >-
+ Get the archive configuration for a RUM application.
+ operationId: GetRUMArchiveConfig
+ parameters:
+ - description: RUM application ID.
+ in: path
+ name: app_id
+ required: true
+ schema:
+ description: Application UUID.
+ example: a33671aa-24fd-4dcd-ba4b-5bbdbafe7690
+ format: uuid
+ type: string
+ responses:
+ "200":
+ content:
+ application/json:
+ examples:
+ default:
+ value:
+ data:
+ attributes:
+ enabled: true
+ org_id: 123
+ retention_days: 90
+ updated_at: "2026-09-21T12:00:00Z"
+ updated_by: user@example.com
+ id: a33671aa-24fd-4dcd-ba4b-5bbdbafe7690
+ type: rum_archive_config
+ schema:
+ $ref: "#/components/schemas/RumArchiveConfigResponse"
+ description: OK
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/RumManagedArchiveErrorResponse"
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/RumManagedArchiveErrorResponse"
+ description: Forbidden
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Not Found
+ "429":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/RumManagedArchiveErrorResponse"
+ description: Too Many Requests
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ summary: Get an archive configuration
+ tags:
+ - RUM Managed Archives
+ put:
+ description: >-
+ Create or update the archive configuration for a RUM application. The application ID in the path must match `data.id`. Disabling archiving does not delete archived sessions.
+ operationId: UpdateRUMArchiveConfig
+ parameters:
+ - description: RUM application ID. Must match data.id for PUT.
+ in: path
+ name: app_id
+ required: true
+ schema:
+ description: Application UUID.
+ example: a33671aa-24fd-4dcd-ba4b-5bbdbafe7690
+ format: uuid
+ type: string
+ requestBody:
+ content:
+ application/json:
+ examples:
+ default:
+ value:
+ data:
+ attributes:
+ enabled: true
+ retention_days: 90
+ id: a33671aa-24fd-4dcd-ba4b-5bbdbafe7690
+ type: rum_archive_config
+ disabled:
+ value:
+ data:
+ attributes:
+ enabled: false
+ id: a33671aa-24fd-4dcd-ba4b-5bbdbafe7690
+ type: rum_archive_config
+ schema:
+ $ref: "#/components/schemas/RumArchiveConfigUpsertRequest"
+ description: JSON:API request body.
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ examples:
+ default:
+ value:
+ data:
+ attributes:
+ enabled: true
+ org_id: 123
+ retention_days: 90
+ updated_at: "2026-09-21T12:00:00Z"
+ updated_by: user@example.com
+ id: a33671aa-24fd-4dcd-ba4b-5bbdbafe7690
+ type: rum_archive_config
+ schema:
+ $ref: "#/components/schemas/RumArchiveConfigResponse"
+ description: OK
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/RumManagedArchiveErrorResponse"
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/RumManagedArchiveErrorResponse"
+ description: Forbidden
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Not Found
+ "429":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/RumManagedArchiveErrorResponse"
+ description: Too Many Requests
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ summary: Create or update an archive configuration
+ tags:
+ - RUM Managed Archives
+ x-codegen-request-body-name: body
/api/v2/rum/config/metrics:
get:
description: |-
@@ -225822,6 +227230,690 @@ paths:
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/rum/recover/count:
+ post:
+ description: >-
+ Estimate the number of sessions available for batch recovery and return the configured maximum per batch. Estimates above the maximum are returned unchanged. Creation checks a fresh estimate, so the estimate can change between counting and creating a request.
+ operationId: GetRUMRecoverySessionCount
+ requestBody:
+ content:
+ application/json:
+ examples:
+ default:
+ value:
+ data:
+ attributes:
+ from: 1789905600000
+ query: service:web
+ to: 1789992000000
+ type: rum_recovery_count
+ schema:
+ $ref: "#/components/schemas/RumRecoveryCountRequest"
+ description: JSON:API request body.
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ examples:
+ above_maximum:
+ summary: A count above the batch maximum is still returned successfully
+ value:
+ data:
+ attributes:
+ estimated_count: 100001
+ max_recoverable_sessions: 100000
+ id: count
+ type: rum_recovery_count
+ default:
+ value:
+ data:
+ attributes:
+ estimated_count: 100
+ max_recoverable_sessions: 100000
+ id: count
+ type: rum_recovery_count
+ schema:
+ $ref: "#/components/schemas/RumRecoveryCountResponse"
+ description: OK
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/RumManagedArchiveErrorResponse"
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/RumManagedArchiveErrorResponse"
+ description: Forbidden
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Not Found
+ "429":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/RumManagedArchiveErrorResponse"
+ description: Too Many Requests
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ summary: Estimate recoverable sessions
+ tags:
+ - RUM Recovery
+ x-codegen-request-body-name: body
+ /api/v2/rum/recover/requests:
+ get:
+ description: >-
+ List batch recovery requests for your organization. Set `type=batch`. Optional `from` and `to` bounds filter request creation time; `query` filters the queries stored on recovery requests.
+
+ A filtered page can be empty or contain fewer than `limit` results and still include `meta.next_cursor`. Continue until the cursor is absent, keeping the filters unchanged between pages.
+ operationId: ListRUMRecoveryBatchRequests
+ parameters:
+ - description: Must equal batch.
+ in: query
+ name: type
+ required: true
+ schema:
+ $ref: "#/components/schemas/RumRecoveryBatchRequestType"
+ - description: >-
+ Page size. Omitted, zero, or negative values use 50; values above 100 are clamped to 100. Invalid integers return 400.
+ in: query
+ name: limit
+ required: false
+ schema:
+ default: 50
+ format: int32
+ maximum: 2147483647
+ type: integer
+ - description: Opaque next-page cursor. Keep type, from, to, and query unchanged between pages.
+ in: query
+ name: cursor
+ required: false
+ schema:
+ type: string
+ - description: >-
+ Start of the request creation-time range in Unix milliseconds, inclusive. This filters created_at, not the time range of the sessions being recovered. Must be earlier than to when both are provided.
+ example: 1789905600000
+ in: query
+ name: from
+ required: false
+ schema:
+ format: int64
+ maximum: 253402300799999
+ minimum: 1
+ type: integer
+ - description: >-
+ End of the request creation-time range in Unix milliseconds, exclusive. This filters created_at, not the time range of the sessions being recovered. Must be later than from when both are provided.
+ example: 1789992000000
+ in: query
+ name: to
+ required: false
+ schema:
+ format: int64
+ maximum: 253402300799999
+ minimum: 1
+ type: integer
+ - description: >-
+ Filter recovery requests whose stored query selects matching facet values. Supports facet:value and facet:(A OR B) terms combined with AND, including * and ? wildcards in filter values. Attribute facets keep their leading @. At most 4096 bytes. Exclusions, repeated facets, free text, ranges, and OR between terms return 400. Stored queries that cannot be matched unambiguously are excluded. Blank values apply no query filter.
+ example: "service:checkout AND @usr.id:(123 OR 456)"
+ in: query
+ name: query
+ required: false
+ schema:
+ type: string
+ responses:
+ "200":
+ content:
+ application/json:
+ examples:
+ default:
+ value:
+ data:
+ - attributes:
+ created_at: "2026-09-21T12:00:00Z"
+ discovery_status: PROCESSING
+ from: 1789905600000
+ query: service:checkout
+ sessions_discovered: 84200
+ sessions_failed: 0
+ sessions_processed: 56000
+ slices_completed: 8
+ slices_failed: 0
+ status: PROCESSING
+ to: 1789992000000
+ total_slices: 12
+ updated_at: "2026-09-21T12:05:00Z"
+ id: 11111111-1111-4111-8111-111111111111
+ type: rum_batch_recovery_request
+ meta: {}
+ empty:
+ value:
+ data: []
+ meta: {}
+ filtered_page:
+ summary: An empty filtered page with more history to scan
+ value:
+ data: []
+ meta:
+ next_cursor: example
+ schema:
+ $ref: "#/components/schemas/RumRecoveryBatchListResponse"
+ description: OK
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/RumManagedArchiveErrorResponse"
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/RumManagedArchiveErrorResponse"
+ description: Forbidden
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Not Found
+ "429":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/RumManagedArchiveErrorResponse"
+ description: Too Many Requests
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ summary: List batch recovery requests
+ tags:
+ - RUM Recovery
+ post:
+ description: >-
+ Start targeted or query-based batch recovery. Use the returned `data.id` to poll the recovery request for progress. Batch creation checks a fresh recoverable-session estimate against the configured maximum (100,000 by default), accepting estimates equal to the maximum. Use the count operation to check the current maximum; creation can still reject a changed estimate. Narrow the query or time range if the maximum is exceeded.
+
+
+ Creation is not idempotent. After an uncertain response, check session search or batch listing before retrying.
+ operationId: CreateRUMRecoveryRequest
+ requestBody:
+ content:
+ application/json:
+ examples:
+ batch:
+ value:
+ data:
+ attributes:
+ estimated_count: 100
+ from: 1789905600000
+ query: service:web
+ request_type: batch
+ to: 1789992000000
+ type: rum_recovery_request
+ default:
+ value:
+ data:
+ attributes:
+ sessions:
+ - application_id: a33671aa-24fd-4dcd-ba4b-5bbdbafe7690
+ session_id: 00000000-0000-4000-8000-000000000001
+ type: rum_recovery_request
+ targeted:
+ value:
+ data:
+ attributes:
+ sessions:
+ - application_id: a33671aa-24fd-4dcd-ba4b-5bbdbafe7690
+ session_id: 00000000-0000-4000-8000-000000000001
+ type: rum_recovery_request
+ schema:
+ $ref: "#/components/schemas/RumRecoveryCreateRequest"
+ description: JSON:API request body.
+ required: true
+ responses:
+ "202":
+ content:
+ application/json:
+ examples:
+ default:
+ value:
+ data:
+ attributes:
+ created_at: "2026-09-21T12:00:00Z"
+ failed_sessions: 0
+ processed_sessions: 0
+ status: PENDING
+ total_sessions: 1
+ id: 11111111-1111-4111-8111-111111111111
+ type: rum_recovery_request
+ pending_batch:
+ value:
+ data:
+ attributes:
+ created_at: "2026-09-21T12:00:00Z"
+ discovery_status: PENDING
+ estimated_count: 100
+ failed_sessions: 0
+ processed_sessions: 0
+ status: PENDING
+ id: 11111111-1111-4111-8111-111111111111
+ type: rum_recovery_request
+ queued_batch:
+ value:
+ data:
+ attributes:
+ created_at: "2026-09-21T12:00:00Z"
+ discovery_status: QUEUED
+ estimated_count: 100
+ failed_sessions: 0
+ processed_sessions: 0
+ status: PENDING
+ id: 11111111-1111-4111-8111-111111111111
+ type: rum_recovery_request
+ targeted:
+ value:
+ data:
+ attributes:
+ created_at: "2026-09-21T12:00:00Z"
+ failed_sessions: 0
+ processed_sessions: 0
+ status: PENDING
+ total_sessions: 1
+ id: 11111111-1111-4111-8111-111111111111
+ type: rum_recovery_request
+ schema:
+ $ref: "#/components/schemas/RumRecoveryCreateResponse"
+ description: Accepted
+ "400":
+ content:
+ application/json:
+ examples:
+ limit_exceeded:
+ summary: The server estimate exceeds the configured batch maximum
+ value:
+ errors:
+ - code: batch_recovery_limit_exceeded
+ detail: >-
+ Estimated recoverable sessions exceed the batch maximum. Narrow the query or time range.
+ meta:
+ estimated_count: 100001
+ max_recoverable_sessions: 100000
+ status: "400"
+ title: Bad Request
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/RumManagedArchiveErrorResponse"
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/RumManagedArchiveErrorResponse"
+ description: Forbidden
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Not Found
+ "409":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: >-
+ Conflict. Targeted sessions are already retained, in flight, or previously failed, or a concurrent batch was created.
+ "429":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/RumManagedArchiveErrorResponse"
+ description: >-
+ Too many requests, or the batch recovery queue is full.
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ summary: Create a recovery request
+ tags:
+ - RUM Recovery
+ x-codegen-request-body-name: body
+ /api/v2/rum/recover/requests/{request_id}:
+ get:
+ description: >-
+ Get progress for a targeted or batch recovery request. A `COMPLETED` request can include failed sessions; check individual session statuses for targeted recovery.
+ operationId: GetRUMRecoveryRequest
+ parameters:
+ - description: Recovery request UUID.
+ in: path
+ name: request_id
+ required: true
+ schema:
+ description: Request identifier.
+ example: 11111111-1111-4111-8111-111111111111
+ format: uuid
+ type: string
+ responses:
+ "200":
+ content:
+ application/json:
+ examples:
+ default:
+ value:
+ data:
+ attributes:
+ created_at: "2026-09-21T12:00:00Z"
+ failed_sessions: 0
+ processed_sessions: 1
+ sessions:
+ - application_id: a33671aa-24fd-4dcd-ba4b-5bbdbafe7690
+ events_recovered: 17
+ session_id: 00000000-0000-4000-8000-000000000001
+ status: RECOVERED
+ status: COMPLETED
+ total_sessions: 1
+ updated_at: "2026-09-21T12:00:00Z"
+ id: 11111111-1111-4111-8111-111111111111
+ type: rum_recovery_request
+ targeted:
+ value:
+ data:
+ attributes:
+ created_at: "2026-09-21T12:00:00Z"
+ failed_sessions: 0
+ processed_sessions: 1
+ sessions:
+ - application_id: a33671aa-24fd-4dcd-ba4b-5bbdbafe7690
+ events_recovered: 17
+ session_id: 00000000-0000-4000-8000-000000000001
+ status: RECOVERED
+ status: COMPLETED
+ total_sessions: 1
+ updated_at: "2026-09-21T12:00:00Z"
+ id: 11111111-1111-4111-8111-111111111111
+ type: rum_recovery_request
+ schema:
+ $ref: "#/components/schemas/RumRecoveryRequestResponse"
+ description: OK
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/RumManagedArchiveErrorResponse"
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/RumManagedArchiveErrorResponse"
+ description: Forbidden
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Not Found
+ "429":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/RumManagedArchiveErrorResponse"
+ description: Too Many Requests
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ summary: Get recovery request progress
+ tags:
+ - RUM Recovery
+ patch:
+ description: >-
+ Cancel pending work for a batch recovery request. Work already in progress can finish, and recovered data is not removed. Requests in a terminal state return `409`.
+ operationId: UpdateRUMRecoveryBatchRequest
+ parameters:
+ - description: Recovery request UUID.
+ in: path
+ name: request_id
+ required: true
+ schema:
+ description: Request identifier.
+ example: 11111111-1111-4111-8111-111111111111
+ format: uuid
+ type: string
+ requestBody:
+ content:
+ application/json:
+ examples:
+ default:
+ value:
+ data:
+ attributes:
+ status: cancelled
+ type: rum_recovery_request
+ minimal:
+ value:
+ data:
+ attributes:
+ status: cancelled
+ schema:
+ $ref: "#/components/schemas/RumRecoveryCancelRequest"
+ description: JSON:API request body.
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ examples:
+ default:
+ value:
+ data:
+ attributes:
+ cancelled_at: "2026-09-21T12:00:00Z"
+ cancelled_by: user@example.com
+ discovery_status: CANCELLED
+ id: 11111111-1111-4111-8111-111111111111
+ type: rum_recovery_request
+ schema:
+ $ref: "#/components/schemas/RumRecoveryCancelResponse"
+ description: OK
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/RumManagedArchiveErrorResponse"
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/RumManagedArchiveErrorResponse"
+ description: Forbidden
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Not Found
+ "409":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Conflict
+ "429":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/RumManagedArchiveErrorResponse"
+ description: Too Many Requests
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ summary: Cancel a batch recovery request
+ tags:
+ - RUM Recovery
+ x-codegen-request-body-name: body
+ /api/v2/rum/recover/sessions:
+ post:
+ description: >-
+ Search archived RUM sessions. Use `meta.page.next_cursor` to retrieve the next page.
+ operationId: SearchRUMArchiveSessions
+ requestBody:
+ content:
+ application/json:
+ examples:
+ default:
+ value:
+ data:
+ attributes:
+ from: 1789905600000
+ limit: 50
+ query: service:web
+ to: 1789992000000
+ type: rum_archive_sessions_request
+ schema:
+ $ref: "#/components/schemas/RumArchiveSessionsSearchRequest"
+ description: JSON:API request body.
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ examples:
+ default:
+ value:
+ data:
+ - attributes:
+ account_id:
+ anonymous_id:
+ application_id: a33671aa-24fd-4dcd-ba4b-5bbdbafe7690
+ country:
+ recovery_status:
+ status: AVAILABLE
+ service: web
+ session_id: 00000000-0000-4000-8000-000000000001
+ timestamp: 1789905600000
+ user_id:
+ version:
+ id: 00000000-0000-4000-8000-000000000001
+ type: rum_archive_session
+ meta:
+ page:
+ total_count: 1
+ empty:
+ value:
+ data: []
+ meta:
+ page:
+ total_count: 0
+ recovered:
+ value:
+ data:
+ - attributes:
+ account_id:
+ anonymous_id:
+ application_id: a33671aa-24fd-4dcd-ba4b-5bbdbafe7690
+ country:
+ recovery_status:
+ recovered_at: "2026-09-21T12:00:00Z"
+ request_id: 11111111-1111-4111-8111-111111111111
+ status: RECOVERED
+ service: web
+ session_id: 00000000-0000-4000-8000-000000000001
+ timestamp: 1789905600000
+ user_id:
+ version:
+ id: 00000000-0000-4000-8000-000000000001
+ type: rum_archive_session
+ meta:
+ page:
+ total_count: 1
+ unavailable_status:
+ value:
+ data:
+ - attributes:
+ account_id:
+ anonymous_id:
+ application_id: a33671aa-24fd-4dcd-ba4b-5bbdbafe7690
+ country:
+ recovery_status:
+ service: web
+ session_id: 00000000-0000-4000-8000-000000000001
+ timestamp: 1789905600000
+ user_id:
+ version:
+ id: 00000000-0000-4000-8000-000000000001
+ type: rum_archive_session
+ meta:
+ page:
+ total_count: 1
+ schema:
+ $ref: "#/components/schemas/RumArchiveSessionsResponse"
+ description: OK
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/JSONAPIErrorResponse"
+ description: Bad Request
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/RumManagedArchiveErrorResponse"
+ description: Unauthorized
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/RumManagedArchiveErrorResponse"
+ description: Forbidden
+ "429":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/RumManagedArchiveErrorResponse"
+ description: Too Many Requests
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ summary: Search archived sessions
+ tags:
+ - RUM Recovery
+ x-codegen-request-body-name: body
/api/v2/rum/replay/playlists:
get:
description: List playlists.
@@ -260494,12 +262586,24 @@ 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: >-
+ Configure Managed Archives for RUM applications. Your organization must have Managed Archives enabled.
+
+
+ Requires `rum_rehydration_filter_read` to list or get configurations, or `rum_rehydration_filter_write` to create, update, or delete them.
+ name: RUM Managed Archives
- description: |-
Manage [RUM Operations](https://docs.datadoghq.com/real_user_monitoring/), business
transactions detected from RUM events through a configurable journey, and their links
to journeys. See the [RUM & Session Replay page](https://docs.datadoghq.com/real_user_monitoring/)
for more information.
name: RUM Operations
+ - description: >-
+ Search archived RUM sessions and recover individual sessions or query-based batches. Your organization must have Managed Archives enabled. Creating, counting, listing, and canceling batches also require batch recovery enablement.
+
+
+ Requires `rum_rehydration_filter_read` for search and request details, or `rum_rehydration_index` to create, estimate recoverable sessions, list batches, or cancel recovery requests.
+ name: RUM Recovery
- description: |-
Manage [RUM SDK configurations](https://docs.datadoghq.com/real_user_monitoring/) delivered to RUM applications via Remote Configuration.
externalDocs:
diff --git a/examples/v2/rum-managed-archives/DeleteRUMArchiveConfig.java b/examples/v2/rum-managed-archives/DeleteRUMArchiveConfig.java
new file mode 100644
index 00000000000..a131fa88e8f
--- /dev/null
+++ b/examples/v2/rum-managed-archives/DeleteRUMArchiveConfig.java
@@ -0,0 +1,23 @@
+// Delete an archive configuration returns "No Content" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.RumManagedArchivesApi;
+import java.util.UUID;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ RumManagedArchivesApi apiInstance = new RumManagedArchivesApi(defaultClient);
+
+ try {
+ apiInstance.deleteRUMArchiveConfig(UUID.fromString("a33671aa-24fd-4dcd-ba4b-5bbdbafe7690"));
+ } catch (ApiException e) {
+ System.err.println("Exception when calling RumManagedArchivesApi#deleteRUMArchiveConfig");
+ 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-managed-archives/GetRUMArchiveConfig.java b/examples/v2/rum-managed-archives/GetRUMArchiveConfig.java
new file mode 100644
index 00000000000..5731fc62d84
--- /dev/null
+++ b/examples/v2/rum-managed-archives/GetRUMArchiveConfig.java
@@ -0,0 +1,26 @@
+// Get an archive configuration returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.RumManagedArchivesApi;
+import com.datadog.api.client.v2.model.RumArchiveConfigResponse;
+import java.util.UUID;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ RumManagedArchivesApi apiInstance = new RumManagedArchivesApi(defaultClient);
+
+ try {
+ RumArchiveConfigResponse result =
+ apiInstance.getRUMArchiveConfig(UUID.fromString("a33671aa-24fd-4dcd-ba4b-5bbdbafe7690"));
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling RumManagedArchivesApi#getRUMArchiveConfig");
+ 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-managed-archives/ListRUMArchiveConfigs.java b/examples/v2/rum-managed-archives/ListRUMArchiveConfigs.java
new file mode 100644
index 00000000000..71757da1715
--- /dev/null
+++ b/examples/v2/rum-managed-archives/ListRUMArchiveConfigs.java
@@ -0,0 +1,27 @@
+// List archive configurations returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.RumManagedArchivesApi;
+import com.datadog.api.client.v2.api.RumManagedArchivesApi.ListRUMArchiveConfigsOptionalParameters;
+import com.datadog.api.client.v2.model.RumArchiveConfigListResponse;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ RumManagedArchivesApi apiInstance = new RumManagedArchivesApi(defaultClient);
+
+ try {
+ RumArchiveConfigListResponse result =
+ apiInstance.listRUMArchiveConfigs(
+ new ListRUMArchiveConfigsOptionalParameters().pageNumber(0).pageSize(1));
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling RumManagedArchivesApi#listRUMArchiveConfigs");
+ 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-managed-archives/UpdateRUMArchiveConfig.java b/examples/v2/rum-managed-archives/UpdateRUMArchiveConfig.java
new file mode 100644
index 00000000000..9bfb19aeca0
--- /dev/null
+++ b/examples/v2/rum-managed-archives/UpdateRUMArchiveConfig.java
@@ -0,0 +1,40 @@
+// Create or update an archive configuration returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.RumManagedArchivesApi;
+import com.datadog.api.client.v2.model.RumArchiveConfigResponse;
+import com.datadog.api.client.v2.model.RumArchiveConfigType;
+import com.datadog.api.client.v2.model.RumArchiveConfigUpsertAttributes;
+import com.datadog.api.client.v2.model.RumArchiveConfigUpsertData;
+import com.datadog.api.client.v2.model.RumArchiveConfigUpsertRequest;
+import java.util.UUID;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ RumManagedArchivesApi apiInstance = new RumManagedArchivesApi(defaultClient);
+
+ RumArchiveConfigUpsertRequest body =
+ new RumArchiveConfigUpsertRequest()
+ .data(
+ new RumArchiveConfigUpsertData()
+ .attributes(
+ new RumArchiveConfigUpsertAttributes().enabled(true).retentionDays(90))
+ .id("a33671aa-24fd-4dcd-ba4b-5bbdbafe7690")
+ .type(RumArchiveConfigType.RUM_ARCHIVE_CONFIG));
+
+ try {
+ RumArchiveConfigResponse result =
+ apiInstance.updateRUMArchiveConfig(
+ UUID.fromString("a33671aa-24fd-4dcd-ba4b-5bbdbafe7690"), body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling RumManagedArchivesApi#updateRUMArchiveConfig");
+ 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-recovery/CreateRUMRecoveryRequest.java b/examples/v2/rum-recovery/CreateRUMRecoveryRequest.java
new file mode 100644
index 00000000000..89cdffaa9e3
--- /dev/null
+++ b/examples/v2/rum-recovery/CreateRUMRecoveryRequest.java
@@ -0,0 +1,51 @@
+// Create a recovery request returns "Accepted" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.RumRecoveryApi;
+import com.datadog.api.client.v2.model.RumRecoveryCreateAttributes;
+import com.datadog.api.client.v2.model.RumRecoveryCreateData;
+import com.datadog.api.client.v2.model.RumRecoveryCreateRequest;
+import com.datadog.api.client.v2.model.RumRecoveryCreateResponse;
+import com.datadog.api.client.v2.model.RumRecoverySessionInput;
+import com.datadog.api.client.v2.model.RumRecoverySessionsCreateAttributes;
+import com.datadog.api.client.v2.model.RumRecoverySessionsRequestType;
+import java.util.Collections;
+import java.util.UUID;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ RumRecoveryApi apiInstance = new RumRecoveryApi(defaultClient);
+
+ RumRecoveryCreateRequest body =
+ new RumRecoveryCreateRequest()
+ .data(
+ new RumRecoveryCreateData()
+ .attributes(
+ new RumRecoveryCreateAttributes(
+ new RumRecoverySessionsCreateAttributes()
+ .requestType(RumRecoverySessionsRequestType.SESSIONS)
+ .sessions(
+ Collections.singletonList(
+ new RumRecoverySessionInput()
+ .applicationId(
+ UUID.fromString(
+ "a33671aa-24fd-4dcd-ba4b-5bbdbafe7690"))
+ .sessionId(
+ UUID.fromString(
+ "00000000-0000-4000-8000-000000000001"))))))
+ .type("rum_recovery_request"));
+
+ try {
+ RumRecoveryCreateResponse result = apiInstance.createRUMRecoveryRequest(body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling RumRecoveryApi#createRUMRecoveryRequest");
+ 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-recovery/GetRUMRecoveryRequest.java b/examples/v2/rum-recovery/GetRUMRecoveryRequest.java
new file mode 100644
index 00000000000..c9f2251923b
--- /dev/null
+++ b/examples/v2/rum-recovery/GetRUMRecoveryRequest.java
@@ -0,0 +1,27 @@
+// Get recovery request progress returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.RumRecoveryApi;
+import com.datadog.api.client.v2.model.RumRecoveryRequestResponse;
+import java.util.UUID;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ RumRecoveryApi apiInstance = new RumRecoveryApi(defaultClient);
+
+ try {
+ RumRecoveryRequestResponse result =
+ apiInstance.getRUMRecoveryRequest(
+ UUID.fromString("11111111-1111-4111-8111-111111111111"));
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling RumRecoveryApi#getRUMRecoveryRequest");
+ 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-recovery/GetRUMRecoverySessionCount.java b/examples/v2/rum-recovery/GetRUMRecoverySessionCount.java
new file mode 100644
index 00000000000..ade02977251
--- /dev/null
+++ b/examples/v2/rum-recovery/GetRUMRecoverySessionCount.java
@@ -0,0 +1,39 @@
+// Estimate recoverable sessions returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.RumRecoveryApi;
+import com.datadog.api.client.v2.model.RumRecoveryCountAttributes;
+import com.datadog.api.client.v2.model.RumRecoveryCountRequest;
+import com.datadog.api.client.v2.model.RumRecoveryCountRequestData;
+import com.datadog.api.client.v2.model.RumRecoveryCountResponse;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ RumRecoveryApi apiInstance = new RumRecoveryApi(defaultClient);
+
+ RumRecoveryCountRequest body =
+ new RumRecoveryCountRequest()
+ .data(
+ new RumRecoveryCountRequestData()
+ .attributes(
+ new RumRecoveryCountAttributes()
+ .from(1789905600000L)
+ .query("service:web")
+ .to(1789992000000L))
+ .id("11111111-1111-4111-8111-111111111111")
+ .type("rum_recovery_count"));
+
+ try {
+ RumRecoveryCountResponse result = apiInstance.getRUMRecoverySessionCount(body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling RumRecoveryApi#getRUMRecoverySessionCount");
+ 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-recovery/GetRUMRecoverySessionCount_4221178610.java b/examples/v2/rum-recovery/GetRUMRecoverySessionCount_4221178610.java
new file mode 100644
index 00000000000..c9677ef781c
--- /dev/null
+++ b/examples/v2/rum-recovery/GetRUMRecoverySessionCount_4221178610.java
@@ -0,0 +1,38 @@
+// Count recoverable sessions accepts exactly 180 days
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.RumRecoveryApi;
+import com.datadog.api.client.v2.model.RumRecoveryCountAttributes;
+import com.datadog.api.client.v2.model.RumRecoveryCountRequest;
+import com.datadog.api.client.v2.model.RumRecoveryCountRequestData;
+import com.datadog.api.client.v2.model.RumRecoveryCountResponse;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ RumRecoveryApi apiInstance = new RumRecoveryApi(defaultClient);
+
+ RumRecoveryCountRequest body =
+ new RumRecoveryCountRequest()
+ .data(
+ new RumRecoveryCountRequestData()
+ .type("rum_recovery_count")
+ .attributes(
+ new RumRecoveryCountAttributes()
+ .query("service:rum18600-fixture")
+ .from(1621077071000L)
+ .to(1636629071000L)));
+
+ try {
+ RumRecoveryCountResponse result = apiInstance.getRUMRecoverySessionCount(body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling RumRecoveryApi#getRUMRecoverySessionCount");
+ 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-recovery/ListRUMRecoveryBatchRequests.java b/examples/v2/rum-recovery/ListRUMRecoveryBatchRequests.java
new file mode 100644
index 00000000000..85dc5638a24
--- /dev/null
+++ b/examples/v2/rum-recovery/ListRUMRecoveryBatchRequests.java
@@ -0,0 +1,26 @@
+// List batch recovery requests returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.RumRecoveryApi;
+import com.datadog.api.client.v2.model.RumRecoveryBatchListResponse;
+import com.datadog.api.client.v2.model.RumRecoveryBatchRequestType;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ RumRecoveryApi apiInstance = new RumRecoveryApi(defaultClient);
+
+ try {
+ RumRecoveryBatchListResponse result =
+ apiInstance.listRUMRecoveryBatchRequests(RumRecoveryBatchRequestType.BATCH);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling RumRecoveryApi#listRUMRecoveryBatchRequests");
+ 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-recovery/ListRUMRecoveryBatchRequests_2586058226.java b/examples/v2/rum-recovery/ListRUMRecoveryBatchRequests_2586058226.java
new file mode 100644
index 00000000000..183de52c4d8
--- /dev/null
+++ b/examples/v2/rum-recovery/ListRUMRecoveryBatchRequests_2586058226.java
@@ -0,0 +1,32 @@
+// List batch history filters request creation time independently of session time
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.RumRecoveryApi;
+import com.datadog.api.client.v2.api.RumRecoveryApi.ListRUMRecoveryBatchRequestsOptionalParameters;
+import com.datadog.api.client.v2.model.RumRecoveryBatchListResponse;
+import com.datadog.api.client.v2.model.RumRecoveryBatchRequestType;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ RumRecoveryApi apiInstance = new RumRecoveryApi(defaultClient);
+
+ try {
+ RumRecoveryBatchListResponse result =
+ apiInstance.listRUMRecoveryBatchRequests(
+ RumRecoveryBatchRequestType.BATCH,
+ new ListRUMRecoveryBatchRequestsOptionalParameters()
+ .from(1L)
+ .to(2L)
+ .query("service:rum18600-fixture AND @usr.id:(123 OR 456)"));
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling RumRecoveryApi#listRUMRecoveryBatchRequests");
+ 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-recovery/SearchRUMArchiveSessions.java b/examples/v2/rum-recovery/SearchRUMArchiveSessions.java
new file mode 100644
index 00000000000..957fcfa7ece
--- /dev/null
+++ b/examples/v2/rum-recovery/SearchRUMArchiveSessions.java
@@ -0,0 +1,42 @@
+// Search archived sessions returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.RumRecoveryApi;
+import com.datadog.api.client.v2.model.RumArchiveSessionsResponse;
+import com.datadog.api.client.v2.model.RumArchiveSessionsSearchAttributes;
+import com.datadog.api.client.v2.model.RumArchiveSessionsSearchData;
+import com.datadog.api.client.v2.model.RumArchiveSessionsSearchRequest;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ RumRecoveryApi apiInstance = new RumRecoveryApi(defaultClient);
+
+ RumArchiveSessionsSearchRequest body =
+ new RumArchiveSessionsSearchRequest()
+ .data(
+ new RumArchiveSessionsSearchData()
+ .attributes(
+ new RumArchiveSessionsSearchAttributes()
+ .cursor("example")
+ .from(1789905600000L)
+ .hideRetained(false)
+ .limit(0)
+ .query("service:web")
+ .to(1789992000000L))
+ .id("11111111-1111-4111-8111-111111111111")
+ .type("rum_archive_sessions_request"));
+
+ try {
+ RumArchiveSessionsResponse result = apiInstance.searchRUMArchiveSessions(body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling RumRecoveryApi#searchRUMArchiveSessions");
+ 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-recovery/SearchRUMArchiveSessions_3394116303.java b/examples/v2/rum-recovery/SearchRUMArchiveSessions_3394116303.java
new file mode 100644
index 00000000000..cc475f45479
--- /dev/null
+++ b/examples/v2/rum-recovery/SearchRUMArchiveSessions_3394116303.java
@@ -0,0 +1,39 @@
+// Search archived sessions returns canonical data and first-page metadata
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.RumRecoveryApi;
+import com.datadog.api.client.v2.model.RumArchiveSessionsResponse;
+import com.datadog.api.client.v2.model.RumArchiveSessionsSearchAttributes;
+import com.datadog.api.client.v2.model.RumArchiveSessionsSearchData;
+import com.datadog.api.client.v2.model.RumArchiveSessionsSearchRequest;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ RumRecoveryApi apiInstance = new RumRecoveryApi(defaultClient);
+
+ RumArchiveSessionsSearchRequest body =
+ new RumArchiveSessionsSearchRequest()
+ .data(
+ new RumArchiveSessionsSearchData()
+ .type("rum_archive_sessions_request")
+ .attributes(
+ new RumArchiveSessionsSearchAttributes()
+ .query("service:rum18600-fixture")
+ .from(1636024271000L)
+ .to(1636629071000L)
+ .limit(1)));
+
+ try {
+ RumArchiveSessionsResponse result = apiInstance.searchRUMArchiveSessions(body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling RumRecoveryApi#searchRUMArchiveSessions");
+ 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-recovery/UpdateRUMRecoveryBatchRequest.java b/examples/v2/rum-recovery/UpdateRUMRecoveryBatchRequest.java
new file mode 100644
index 00000000000..01b66625fb0
--- /dev/null
+++ b/examples/v2/rum-recovery/UpdateRUMRecoveryBatchRequest.java
@@ -0,0 +1,40 @@
+// Cancel a batch recovery request returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.RumRecoveryApi;
+import com.datadog.api.client.v2.model.RumRecoveryCancelAttributes;
+import com.datadog.api.client.v2.model.RumRecoveryCancelData;
+import com.datadog.api.client.v2.model.RumRecoveryCancelRequest;
+import com.datadog.api.client.v2.model.RumRecoveryCancelResponse;
+import com.datadog.api.client.v2.model.RumRecoveryCancelStatus;
+import java.util.UUID;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ RumRecoveryApi apiInstance = new RumRecoveryApi(defaultClient);
+
+ RumRecoveryCancelRequest body =
+ new RumRecoveryCancelRequest()
+ .data(
+ new RumRecoveryCancelData()
+ .attributes(
+ new RumRecoveryCancelAttributes().status(RumRecoveryCancelStatus.CANCELLED))
+ .id("11111111-1111-4111-8111-111111111111")
+ .type("rum_recovery_request"));
+
+ try {
+ RumRecoveryCancelResponse result =
+ apiInstance.updateRUMRecoveryBatchRequest(
+ UUID.fromString("11111111-1111-4111-8111-111111111111"), body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling RumRecoveryApi#updateRUMRecoveryBatchRequest");
+ 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/v2/api/RumManagedArchivesApi.java b/src/main/java/com/datadog/api/client/v2/api/RumManagedArchivesApi.java
new file mode 100644
index 00000000000..7ff0afa811c
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/api/RumManagedArchivesApi.java
@@ -0,0 +1,668 @@
+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.RumArchiveConfigListResponse;
+import com.datadog.api.client.v2.model.RumArchiveConfigResponse;
+import com.datadog.api.client.v2.model.RumArchiveConfigUpsertRequest;
+import jakarta.ws.rs.client.Invocation;
+import jakarta.ws.rs.core.GenericType;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import java.util.concurrent.CompletableFuture;
+
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class RumManagedArchivesApi {
+ private ApiClient apiClient;
+
+ public RumManagedArchivesApi() {
+ this(ApiClient.getDefaultApiClient());
+ }
+
+ public RumManagedArchivesApi(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;
+ }
+
+ /**
+ * Delete an archive configuration.
+ *
+ *
See {@link #deleteRUMArchiveConfigWithHttpInfo}.
+ *
+ * @param appId RUM application ID. (required)
+ * @throws ApiException if fails to make API call
+ */
+ public void deleteRUMArchiveConfig(UUID appId) throws ApiException {
+ deleteRUMArchiveConfigWithHttpInfo(appId);
+ }
+
+ /**
+ * Delete an archive configuration.
+ *
+ *
See {@link #deleteRUMArchiveConfigWithHttpInfoAsync}.
+ *
+ * @param appId RUM application ID. (required)
+ * @return CompletableFuture
+ */
+ public CompletableFuture deleteRUMArchiveConfigAsync(UUID appId) {
+ return deleteRUMArchiveConfigWithHttpInfoAsync(appId)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Delete the archive configuration for a RUM application. Archived and recovered session data is
+ * not deleted.
+ *
+ * @param appId RUM application ID. (required)
+ * @return ApiResponse<Void>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 204 | No Content | - |
+ * | 400 | Bad Request | - |
+ * | 401 | Unauthorized | - |
+ * | 403 | Forbidden | - |
+ * | 404 | Not Found | - |
+ * | 429 | Too Many Requests | - |
+ *
+ */
+ public ApiResponse deleteRUMArchiveConfigWithHttpInfo(UUID appId) throws ApiException {
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'appId' is set
+ if (appId == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'appId' when calling deleteRUMArchiveConfig");
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/rum/config/archive/{app_id}"
+ .replaceAll("\\{" + "app_id" + "\\}", apiClient.escapeString(appId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.RumManagedArchivesApi.deleteRUMArchiveConfig",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"*/*"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ return apiClient.invokeAPI(
+ "DELETE",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ null);
+ }
+
+ /**
+ * Delete an archive configuration.
+ *
+ * See {@link #deleteRUMArchiveConfigWithHttpInfo}.
+ *
+ * @param appId RUM application ID. (required)
+ * @return CompletableFuture<ApiResponse<Void>>
+ */
+ public CompletableFuture> deleteRUMArchiveConfigWithHttpInfoAsync(UUID appId) {
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'appId' is set
+ if (appId == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400, "Missing the required parameter 'appId' when calling deleteRUMArchiveConfig"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/rum/config/archive/{app_id}"
+ .replaceAll("\\{" + "app_id" + "\\}", apiClient.escapeString(appId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.RumManagedArchivesApi.deleteRUMArchiveConfig",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"*/*"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ } catch (ApiException ex) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(ex);
+ return result;
+ }
+ return apiClient.invokeAPIAsync(
+ "DELETE",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ null);
+ }
+
+ /**
+ * Get an archive configuration.
+ *
+ * See {@link #getRUMArchiveConfigWithHttpInfo}.
+ *
+ * @param appId RUM application ID. (required)
+ * @return RumArchiveConfigResponse
+ * @throws ApiException if fails to make API call
+ */
+ public RumArchiveConfigResponse getRUMArchiveConfig(UUID appId) throws ApiException {
+ return getRUMArchiveConfigWithHttpInfo(appId).getData();
+ }
+
+ /**
+ * Get an archive configuration.
+ *
+ *
See {@link #getRUMArchiveConfigWithHttpInfoAsync}.
+ *
+ * @param appId RUM application ID. (required)
+ * @return CompletableFuture<RumArchiveConfigResponse>
+ */
+ public CompletableFuture getRUMArchiveConfigAsync(UUID appId) {
+ return getRUMArchiveConfigWithHttpInfoAsync(appId)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Get the archive configuration for a RUM application.
+ *
+ * @param appId RUM application ID. (required)
+ * @return ApiResponse<RumArchiveConfigResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | OK | - |
+ * | 400 | Bad Request | - |
+ * | 401 | Unauthorized | - |
+ * | 403 | Forbidden | - |
+ * | 404 | Not Found | - |
+ * | 429 | Too Many Requests | - |
+ *
+ */
+ public ApiResponse getRUMArchiveConfigWithHttpInfo(UUID appId)
+ throws ApiException {
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'appId' is set
+ if (appId == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'appId' when calling getRUMArchiveConfig");
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/rum/config/archive/{app_id}"
+ .replaceAll("\\{" + "app_id" + "\\}", apiClient.escapeString(appId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.RumManagedArchivesApi.getRUMArchiveConfig",
+ 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 an archive configuration.
+ *
+ * See {@link #getRUMArchiveConfigWithHttpInfo}.
+ *
+ * @param appId RUM application ID. (required)
+ * @return CompletableFuture<ApiResponse<RumArchiveConfigResponse>>
+ */
+ public CompletableFuture>
+ getRUMArchiveConfigWithHttpInfoAsync(UUID appId) {
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'appId' is set
+ if (appId == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400, "Missing the required parameter 'appId' when calling getRUMArchiveConfig"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/rum/config/archive/{app_id}"
+ .replaceAll("\\{" + "app_id" + "\\}", apiClient.escapeString(appId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.RumManagedArchivesApi.getRUMArchiveConfig",
+ 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() {});
+ }
+
+ /** Manage optional parameters to listRUMArchiveConfigs. */
+ public static class ListRUMArchiveConfigsOptionalParameters {
+ private Integer pageNumber;
+ private Integer pageSize;
+
+ /**
+ * Set pageNumber.
+ *
+ * @param pageNumber Page number. (optional, default to 0)
+ * @return ListRUMArchiveConfigsOptionalParameters
+ */
+ public ListRUMArchiveConfigsOptionalParameters pageNumber(Integer pageNumber) {
+ this.pageNumber = pageNumber;
+ return this;
+ }
+
+ /**
+ * Set pageSize.
+ *
+ * @param pageSize Configurations per page. (optional, default to 20)
+ * @return ListRUMArchiveConfigsOptionalParameters
+ */
+ public ListRUMArchiveConfigsOptionalParameters pageSize(Integer pageSize) {
+ this.pageSize = pageSize;
+ return this;
+ }
+ }
+
+ /**
+ * List archive configurations.
+ *
+ * See {@link #listRUMArchiveConfigsWithHttpInfo}.
+ *
+ * @return RumArchiveConfigListResponse
+ * @throws ApiException if fails to make API call
+ */
+ public RumArchiveConfigListResponse listRUMArchiveConfigs() throws ApiException {
+ return listRUMArchiveConfigsWithHttpInfo(new ListRUMArchiveConfigsOptionalParameters())
+ .getData();
+ }
+
+ /**
+ * List archive configurations.
+ *
+ *
See {@link #listRUMArchiveConfigsWithHttpInfoAsync}.
+ *
+ * @return CompletableFuture<RumArchiveConfigListResponse>
+ */
+ public CompletableFuture listRUMArchiveConfigsAsync() {
+ return listRUMArchiveConfigsWithHttpInfoAsync(new ListRUMArchiveConfigsOptionalParameters())
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * List archive configurations.
+ *
+ * See {@link #listRUMArchiveConfigsWithHttpInfo}.
+ *
+ * @param parameters Optional parameters for the request.
+ * @return RumArchiveConfigListResponse
+ * @throws ApiException if fails to make API call
+ */
+ public RumArchiveConfigListResponse listRUMArchiveConfigs(
+ ListRUMArchiveConfigsOptionalParameters parameters) throws ApiException {
+ return listRUMArchiveConfigsWithHttpInfo(parameters).getData();
+ }
+
+ /**
+ * List archive configurations.
+ *
+ *
See {@link #listRUMArchiveConfigsWithHttpInfoAsync}.
+ *
+ * @param parameters Optional parameters for the request.
+ * @return CompletableFuture<RumArchiveConfigListResponse>
+ */
+ public CompletableFuture listRUMArchiveConfigsAsync(
+ ListRUMArchiveConfigsOptionalParameters parameters) {
+ return listRUMArchiveConfigsWithHttpInfoAsync(parameters)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Get the list of archive configurations for your organization.
+ *
+ * @param parameters Optional parameters for the request.
+ * @return ApiResponse<RumArchiveConfigListResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | OK | - |
+ * | 400 | Bad Request | - |
+ * | 401 | Unauthorized | - |
+ * | 403 | Forbidden | - |
+ * | 429 | Too Many Requests | - |
+ *
+ */
+ public ApiResponse listRUMArchiveConfigsWithHttpInfo(
+ ListRUMArchiveConfigsOptionalParameters parameters) throws ApiException {
+ Object localVarPostBody = null;
+ Integer pageNumber = parameters.pageNumber;
+ Integer pageSize = parameters.pageSize;
+ // create path and map variables
+ String localVarPath = "/api/v2/rum/config/archive";
+
+ List localVarQueryParams = new ArrayList();
+ Map localVarHeaderParams = new HashMap();
+
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[number]", pageNumber));
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[size]", pageSize));
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.RumManagedArchivesApi.listRUMArchiveConfigs",
+ localVarPath,
+ localVarQueryParams,
+ 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() {});
+ }
+
+ /**
+ * List archive configurations.
+ *
+ * See {@link #listRUMArchiveConfigsWithHttpInfo}.
+ *
+ * @param parameters Optional parameters for the request.
+ * @return CompletableFuture<ApiResponse<RumArchiveConfigListResponse>>
+ */
+ public CompletableFuture>
+ listRUMArchiveConfigsWithHttpInfoAsync(ListRUMArchiveConfigsOptionalParameters parameters) {
+ Object localVarPostBody = null;
+ Integer pageNumber = parameters.pageNumber;
+ Integer pageSize = parameters.pageSize;
+ // create path and map variables
+ String localVarPath = "/api/v2/rum/config/archive";
+
+ List localVarQueryParams = new ArrayList();
+ Map localVarHeaderParams = new HashMap();
+
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[number]", pageNumber));
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[size]", pageSize));
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.RumManagedArchivesApi.listRUMArchiveConfigs",
+ localVarPath,
+ localVarQueryParams,
+ 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() {});
+ }
+
+ /**
+ * Create or update an archive configuration.
+ *
+ * See {@link #updateRUMArchiveConfigWithHttpInfo}.
+ *
+ * @param appId RUM application ID. Must match data.id for PUT. (required)
+ * @param body JSON:API request body. (required)
+ * @return RumArchiveConfigResponse
+ * @throws ApiException if fails to make API call
+ */
+ public RumArchiveConfigResponse updateRUMArchiveConfig(
+ UUID appId, RumArchiveConfigUpsertRequest body) throws ApiException {
+ return updateRUMArchiveConfigWithHttpInfo(appId, body).getData();
+ }
+
+ /**
+ * Create or update an archive configuration.
+ *
+ *
See {@link #updateRUMArchiveConfigWithHttpInfoAsync}.
+ *
+ * @param appId RUM application ID. Must match data.id for PUT. (required)
+ * @param body JSON:API request body. (required)
+ * @return CompletableFuture<RumArchiveConfigResponse>
+ */
+ public CompletableFuture updateRUMArchiveConfigAsync(
+ UUID appId, RumArchiveConfigUpsertRequest body) {
+ return updateRUMArchiveConfigWithHttpInfoAsync(appId, body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Create or update the archive configuration for a RUM application. The application ID in the
+ * path must match data.id. Disabling archiving does not delete archived sessions.
+ *
+ * @param appId RUM application ID. Must match data.id for PUT. (required)
+ * @param body JSON:API request body. (required)
+ * @return ApiResponse<RumArchiveConfigResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | OK | - |
+ * | 400 | Bad Request | - |
+ * | 401 | Unauthorized | - |
+ * | 403 | Forbidden | - |
+ * | 404 | Not Found | - |
+ * | 429 | Too Many Requests | - |
+ *
+ */
+ public ApiResponse updateRUMArchiveConfigWithHttpInfo(
+ UUID appId, RumArchiveConfigUpsertRequest body) throws ApiException {
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'appId' is set
+ if (appId == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'appId' when calling updateRUMArchiveConfig");
+ }
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'body' when calling updateRUMArchiveConfig");
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/rum/config/archive/{app_id}"
+ .replaceAll("\\{" + "app_id" + "\\}", apiClient.escapeString(appId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.RumManagedArchivesApi.updateRUMArchiveConfig",
+ 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() {});
+ }
+
+ /**
+ * Create or update an archive configuration.
+ *
+ * See {@link #updateRUMArchiveConfigWithHttpInfo}.
+ *
+ * @param appId RUM application ID. Must match data.id for PUT. (required)
+ * @param body JSON:API request body. (required)
+ * @return CompletableFuture<ApiResponse<RumArchiveConfigResponse>>
+ */
+ public CompletableFuture>
+ updateRUMArchiveConfigWithHttpInfoAsync(UUID appId, RumArchiveConfigUpsertRequest body) {
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'appId' is set
+ if (appId == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400, "Missing the required parameter 'appId' when calling updateRUMArchiveConfig"));
+ 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 updateRUMArchiveConfig"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/rum/config/archive/{app_id}"
+ .replaceAll("\\{" + "app_id" + "\\}", apiClient.escapeString(appId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.RumManagedArchivesApi.updateRUMArchiveConfig",
+ 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/api/RumRecoveryApi.java b/src/main/java/com/datadog/api/client/v2/api/RumRecoveryApi.java
new file mode 100644
index 00000000000..5aa057d7ae1
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/api/RumRecoveryApi.java
@@ -0,0 +1,1061 @@
+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.RumArchiveSessionsResponse;
+import com.datadog.api.client.v2.model.RumArchiveSessionsSearchRequest;
+import com.datadog.api.client.v2.model.RumRecoveryBatchListResponse;
+import com.datadog.api.client.v2.model.RumRecoveryBatchRequestType;
+import com.datadog.api.client.v2.model.RumRecoveryCancelRequest;
+import com.datadog.api.client.v2.model.RumRecoveryCancelResponse;
+import com.datadog.api.client.v2.model.RumRecoveryCountRequest;
+import com.datadog.api.client.v2.model.RumRecoveryCountResponse;
+import com.datadog.api.client.v2.model.RumRecoveryCreateRequest;
+import com.datadog.api.client.v2.model.RumRecoveryCreateResponse;
+import com.datadog.api.client.v2.model.RumRecoveryRequestResponse;
+import jakarta.ws.rs.client.Invocation;
+import jakarta.ws.rs.core.GenericType;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import java.util.concurrent.CompletableFuture;
+
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class RumRecoveryApi {
+ private ApiClient apiClient;
+
+ public RumRecoveryApi() {
+ this(ApiClient.getDefaultApiClient());
+ }
+
+ public RumRecoveryApi(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;
+ }
+
+ /**
+ * Create a recovery request.
+ *
+ * See {@link #createRUMRecoveryRequestWithHttpInfo}.
+ *
+ * @param body JSON:API request body. (required)
+ * @return RumRecoveryCreateResponse
+ * @throws ApiException if fails to make API call
+ */
+ public RumRecoveryCreateResponse createRUMRecoveryRequest(RumRecoveryCreateRequest body)
+ throws ApiException {
+ return createRUMRecoveryRequestWithHttpInfo(body).getData();
+ }
+
+ /**
+ * Create a recovery request.
+ *
+ *
See {@link #createRUMRecoveryRequestWithHttpInfoAsync}.
+ *
+ * @param body JSON:API request body. (required)
+ * @return CompletableFuture<RumRecoveryCreateResponse>
+ */
+ public CompletableFuture createRUMRecoveryRequestAsync(
+ RumRecoveryCreateRequest body) {
+ return createRUMRecoveryRequestWithHttpInfoAsync(body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Start targeted or query-based batch recovery. Use the returned data.id to poll the
+ * recovery request for progress. Batch creation checks a fresh recoverable-session estimate
+ * against the configured maximum (100,000 by default), accepting estimates equal to the maximum.
+ * Use the count operation to check the current maximum; creation can still reject a changed
+ * estimate. Narrow the query or time range if the maximum is exceeded.
+ *
+ * Creation is not idempotent. After an uncertain response, check session search or batch
+ * listing before retrying.
+ *
+ * @param body JSON:API request body. (required)
+ * @return ApiResponse<RumRecoveryCreateResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 202 | Accepted | - |
+ * | 400 | Bad Request | - |
+ * | 401 | Unauthorized | - |
+ * | 403 | Forbidden | - |
+ * | 404 | Not Found | - |
+ * | 409 | Conflict. Targeted sessions are already retained, in flight, or previously failed, or a concurrent batch was created. | - |
+ * | 429 | Too many requests, or the batch recovery queue is full. | - |
+ *
+ */
+ public ApiResponse createRUMRecoveryRequestWithHttpInfo(
+ RumRecoveryCreateRequest body) throws ApiException {
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'body' when calling createRUMRecoveryRequest");
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/rum/recover/requests";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.RumRecoveryApi.createRUMRecoveryRequest",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ return apiClient.invokeAPI(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Create a recovery request.
+ *
+ * See {@link #createRUMRecoveryRequestWithHttpInfo}.
+ *
+ * @param body JSON:API request body. (required)
+ * @return CompletableFuture<ApiResponse<RumRecoveryCreateResponse>>
+ */
+ public CompletableFuture>
+ createRUMRecoveryRequestWithHttpInfoAsync(RumRecoveryCreateRequest body) {
+ Object localVarPostBody = body;
+
+ // 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 createRUMRecoveryRequest"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/rum/recover/requests";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.RumRecoveryApi.createRUMRecoveryRequest",
+ 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(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Get recovery request progress.
+ *
+ * See {@link #getRUMRecoveryRequestWithHttpInfo}.
+ *
+ * @param requestId Recovery request UUID. (required)
+ * @return RumRecoveryRequestResponse
+ * @throws ApiException if fails to make API call
+ */
+ public RumRecoveryRequestResponse getRUMRecoveryRequest(UUID requestId) throws ApiException {
+ return getRUMRecoveryRequestWithHttpInfo(requestId).getData();
+ }
+
+ /**
+ * Get recovery request progress.
+ *
+ *
See {@link #getRUMRecoveryRequestWithHttpInfoAsync}.
+ *
+ * @param requestId Recovery request UUID. (required)
+ * @return CompletableFuture<RumRecoveryRequestResponse>
+ */
+ public CompletableFuture getRUMRecoveryRequestAsync(UUID requestId) {
+ return getRUMRecoveryRequestWithHttpInfoAsync(requestId)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Get progress for a targeted or batch recovery request. A COMPLETED request can
+ * include failed sessions; check individual session statuses for targeted recovery.
+ *
+ * @param requestId Recovery request UUID. (required)
+ * @return ApiResponse<RumRecoveryRequestResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | OK | - |
+ * | 400 | Bad Request | - |
+ * | 401 | Unauthorized | - |
+ * | 403 | Forbidden | - |
+ * | 404 | Not Found | - |
+ * | 429 | Too Many Requests | - |
+ *
+ */
+ public ApiResponse getRUMRecoveryRequestWithHttpInfo(UUID requestId)
+ throws ApiException {
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'requestId' is set
+ if (requestId == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'requestId' when calling getRUMRecoveryRequest");
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/rum/recover/requests/{request_id}"
+ .replaceAll("\\{" + "request_id" + "\\}", apiClient.escapeString(requestId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.RumRecoveryApi.getRUMRecoveryRequest",
+ 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 recovery request progress.
+ *
+ * See {@link #getRUMRecoveryRequestWithHttpInfo}.
+ *
+ * @param requestId Recovery request UUID. (required)
+ * @return CompletableFuture<ApiResponse<RumRecoveryRequestResponse>>
+ */
+ public CompletableFuture>
+ getRUMRecoveryRequestWithHttpInfoAsync(UUID requestId) {
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'requestId' is set
+ if (requestId == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'requestId' when calling getRUMRecoveryRequest"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/rum/recover/requests/{request_id}"
+ .replaceAll("\\{" + "request_id" + "\\}", apiClient.escapeString(requestId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.RumRecoveryApi.getRUMRecoveryRequest",
+ 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() {});
+ }
+
+ /**
+ * Estimate recoverable sessions.
+ *
+ * See {@link #getRUMRecoverySessionCountWithHttpInfo}.
+ *
+ * @param body JSON:API request body. (required)
+ * @return RumRecoveryCountResponse
+ * @throws ApiException if fails to make API call
+ */
+ public RumRecoveryCountResponse getRUMRecoverySessionCount(RumRecoveryCountRequest body)
+ throws ApiException {
+ return getRUMRecoverySessionCountWithHttpInfo(body).getData();
+ }
+
+ /**
+ * Estimate recoverable sessions.
+ *
+ *
See {@link #getRUMRecoverySessionCountWithHttpInfoAsync}.
+ *
+ * @param body JSON:API request body. (required)
+ * @return CompletableFuture<RumRecoveryCountResponse>
+ */
+ public CompletableFuture getRUMRecoverySessionCountAsync(
+ RumRecoveryCountRequest body) {
+ return getRUMRecoverySessionCountWithHttpInfoAsync(body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Estimate the number of sessions available for batch recovery and return the configured maximum
+ * per batch. Estimates above the maximum are returned unchanged. Creation checks a fresh
+ * estimate, so the estimate can change between counting and creating a request.
+ *
+ * @param body JSON:API request body. (required)
+ * @return ApiResponse<RumRecoveryCountResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | OK | - |
+ * | 400 | Bad Request | - |
+ * | 401 | Unauthorized | - |
+ * | 403 | Forbidden | - |
+ * | 404 | Not Found | - |
+ * | 429 | Too Many Requests | - |
+ *
+ */
+ public ApiResponse getRUMRecoverySessionCountWithHttpInfo(
+ RumRecoveryCountRequest body) throws ApiException {
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'body' when calling getRUMRecoverySessionCount");
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/rum/recover/count";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.RumRecoveryApi.getRUMRecoverySessionCount",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ return apiClient.invokeAPI(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Estimate recoverable sessions.
+ *
+ * See {@link #getRUMRecoverySessionCountWithHttpInfo}.
+ *
+ * @param body JSON:API request body. (required)
+ * @return CompletableFuture<ApiResponse<RumRecoveryCountResponse>>
+ */
+ public CompletableFuture>
+ getRUMRecoverySessionCountWithHttpInfoAsync(RumRecoveryCountRequest body) {
+ Object localVarPostBody = body;
+
+ // 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 getRUMRecoverySessionCount"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/rum/recover/count";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.RumRecoveryApi.getRUMRecoverySessionCount",
+ 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(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /** Manage optional parameters to listRUMRecoveryBatchRequests. */
+ public static class ListRUMRecoveryBatchRequestsOptionalParameters {
+ private Integer limit;
+ private String cursor;
+ private Long from;
+ private Long to;
+ private String query;
+
+ /**
+ * Set limit.
+ *
+ * @param limit Page size. Omitted, zero, or negative values use 50; values above 100 are
+ * clamped to 100. Invalid integers return 400. (optional, default to 50)
+ * @return ListRUMRecoveryBatchRequestsOptionalParameters
+ */
+ public ListRUMRecoveryBatchRequestsOptionalParameters limit(Integer limit) {
+ this.limit = limit;
+ return this;
+ }
+
+ /**
+ * Set cursor.
+ *
+ * @param cursor Opaque next-page cursor. Keep type, from, to, and query unchanged between
+ * pages. (optional)
+ * @return ListRUMRecoveryBatchRequestsOptionalParameters
+ */
+ public ListRUMRecoveryBatchRequestsOptionalParameters cursor(String cursor) {
+ this.cursor = cursor;
+ return this;
+ }
+
+ /**
+ * Set from.
+ *
+ * @param from Start of the request creation-time range in Unix milliseconds, inclusive. This
+ * filters created_at, not the time range of the sessions being recovered. Must be earlier
+ * than to when both are provided. (optional)
+ * @return ListRUMRecoveryBatchRequestsOptionalParameters
+ */
+ public ListRUMRecoveryBatchRequestsOptionalParameters from(Long from) {
+ this.from = from;
+ return this;
+ }
+
+ /**
+ * Set to.
+ *
+ * @param to End of the request creation-time range in Unix milliseconds, exclusive. This
+ * filters created_at, not the time range of the sessions being recovered. Must be later
+ * than from when both are provided. (optional)
+ * @return ListRUMRecoveryBatchRequestsOptionalParameters
+ */
+ public ListRUMRecoveryBatchRequestsOptionalParameters to(Long to) {
+ this.to = to;
+ return this;
+ }
+
+ /**
+ * Set query.
+ *
+ * @param query Filter recovery requests whose stored query selects matching facet values.
+ * Supports facet:value and facet:(A OR B) terms combined with AND, including * and ?
+ * wildcards in filter values. Attribute facets keep their leading @. At most 4096 bytes.
+ * Exclusions, repeated facets, free text, ranges, and OR between terms return 400. Stored
+ * queries that cannot be matched unambiguously are excluded. Blank values apply no query
+ * filter. (optional)
+ * @return ListRUMRecoveryBatchRequestsOptionalParameters
+ */
+ public ListRUMRecoveryBatchRequestsOptionalParameters query(String query) {
+ this.query = query;
+ return this;
+ }
+ }
+
+ /**
+ * List batch recovery requests.
+ *
+ * See {@link #listRUMRecoveryBatchRequestsWithHttpInfo}.
+ *
+ * @param type Must equal batch. (required)
+ * @return RumRecoveryBatchListResponse
+ * @throws ApiException if fails to make API call
+ */
+ public RumRecoveryBatchListResponse listRUMRecoveryBatchRequests(RumRecoveryBatchRequestType type)
+ throws ApiException {
+ return listRUMRecoveryBatchRequestsWithHttpInfo(
+ type, new ListRUMRecoveryBatchRequestsOptionalParameters())
+ .getData();
+ }
+
+ /**
+ * List batch recovery requests.
+ *
+ *
See {@link #listRUMRecoveryBatchRequestsWithHttpInfoAsync}.
+ *
+ * @param type Must equal batch. (required)
+ * @return CompletableFuture<RumRecoveryBatchListResponse>
+ */
+ public CompletableFuture listRUMRecoveryBatchRequestsAsync(
+ RumRecoveryBatchRequestType type) {
+ return listRUMRecoveryBatchRequestsWithHttpInfoAsync(
+ type, new ListRUMRecoveryBatchRequestsOptionalParameters())
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * List batch recovery requests.
+ *
+ * See {@link #listRUMRecoveryBatchRequestsWithHttpInfo}.
+ *
+ * @param type Must equal batch. (required)
+ * @param parameters Optional parameters for the request.
+ * @return RumRecoveryBatchListResponse
+ * @throws ApiException if fails to make API call
+ */
+ public RumRecoveryBatchListResponse listRUMRecoveryBatchRequests(
+ RumRecoveryBatchRequestType type, ListRUMRecoveryBatchRequestsOptionalParameters parameters)
+ throws ApiException {
+ return listRUMRecoveryBatchRequestsWithHttpInfo(type, parameters).getData();
+ }
+
+ /**
+ * List batch recovery requests.
+ *
+ *
See {@link #listRUMRecoveryBatchRequestsWithHttpInfoAsync}.
+ *
+ * @param type Must equal batch. (required)
+ * @param parameters Optional parameters for the request.
+ * @return CompletableFuture<RumRecoveryBatchListResponse>
+ */
+ public CompletableFuture listRUMRecoveryBatchRequestsAsync(
+ RumRecoveryBatchRequestType type, ListRUMRecoveryBatchRequestsOptionalParameters parameters) {
+ return listRUMRecoveryBatchRequestsWithHttpInfoAsync(type, parameters)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * List batch recovery requests for your organization. Set type=batch. Optional
+ * from and to bounds filter request creation time; query
+ * filters the queries stored on recovery requests. A filtered page can be empty or contain fewer
+ * than limit results and still include meta.next_cursor. Continue until
+ * the cursor is absent, keeping the filters unchanged between pages.
+ *
+ * @param type Must equal batch. (required)
+ * @param parameters Optional parameters for the request.
+ * @return ApiResponse<RumRecoveryBatchListResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | OK | - |
+ * | 400 | Bad Request | - |
+ * | 401 | Unauthorized | - |
+ * | 403 | Forbidden | - |
+ * | 404 | Not Found | - |
+ * | 429 | Too Many Requests | - |
+ *
+ */
+ public ApiResponse listRUMRecoveryBatchRequestsWithHttpInfo(
+ RumRecoveryBatchRequestType type, ListRUMRecoveryBatchRequestsOptionalParameters parameters)
+ throws ApiException {
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'type' is set
+ if (type == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'type' when calling listRUMRecoveryBatchRequests");
+ }
+ Integer limit = parameters.limit;
+ String cursor = parameters.cursor;
+ Long from = parameters.from;
+ Long to = parameters.to;
+ String query = parameters.query;
+ // create path and map variables
+ String localVarPath = "/api/v2/rum/recover/requests";
+
+ List localVarQueryParams = new ArrayList();
+ Map localVarHeaderParams = new HashMap();
+
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "type", type));
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "limit", limit));
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "cursor", cursor));
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "from", from));
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "to", to));
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "query", query));
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.RumRecoveryApi.listRUMRecoveryBatchRequests",
+ localVarPath,
+ localVarQueryParams,
+ 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() {});
+ }
+
+ /**
+ * List batch recovery requests.
+ *
+ * See {@link #listRUMRecoveryBatchRequestsWithHttpInfo}.
+ *
+ * @param type Must equal batch. (required)
+ * @param parameters Optional parameters for the request.
+ * @return CompletableFuture<ApiResponse<RumRecoveryBatchListResponse>>
+ */
+ public CompletableFuture>
+ listRUMRecoveryBatchRequestsWithHttpInfoAsync(
+ RumRecoveryBatchRequestType type,
+ ListRUMRecoveryBatchRequestsOptionalParameters parameters) {
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'type' is set
+ if (type == null) {
+ CompletableFuture> result =
+ new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'type' when calling listRUMRecoveryBatchRequests"));
+ return result;
+ }
+ Integer limit = parameters.limit;
+ String cursor = parameters.cursor;
+ Long from = parameters.from;
+ Long to = parameters.to;
+ String query = parameters.query;
+ // create path and map variables
+ String localVarPath = "/api/v2/rum/recover/requests";
+
+ List localVarQueryParams = new ArrayList();
+ Map localVarHeaderParams = new HashMap();
+
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "type", type));
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "limit", limit));
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "cursor", cursor));
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "from", from));
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "to", to));
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "query", query));
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.RumRecoveryApi.listRUMRecoveryBatchRequests",
+ localVarPath,
+ localVarQueryParams,
+ 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() {});
+ }
+
+ /**
+ * Search archived sessions.
+ *
+ * See {@link #searchRUMArchiveSessionsWithHttpInfo}.
+ *
+ * @param body JSON:API request body. (required)
+ * @return RumArchiveSessionsResponse
+ * @throws ApiException if fails to make API call
+ */
+ public RumArchiveSessionsResponse searchRUMArchiveSessions(RumArchiveSessionsSearchRequest body)
+ throws ApiException {
+ return searchRUMArchiveSessionsWithHttpInfo(body).getData();
+ }
+
+ /**
+ * Search archived sessions.
+ *
+ *
See {@link #searchRUMArchiveSessionsWithHttpInfoAsync}.
+ *
+ * @param body JSON:API request body. (required)
+ * @return CompletableFuture<RumArchiveSessionsResponse>
+ */
+ public CompletableFuture searchRUMArchiveSessionsAsync(
+ RumArchiveSessionsSearchRequest body) {
+ return searchRUMArchiveSessionsWithHttpInfoAsync(body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Search archived RUM sessions. Use meta.page.next_cursor to retrieve the next page.
+ *
+ * @param body JSON:API request body. (required)
+ * @return ApiResponse<RumArchiveSessionsResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | OK | - |
+ * | 400 | Bad Request | - |
+ * | 401 | Unauthorized | - |
+ * | 403 | Forbidden | - |
+ * | 429 | Too Many Requests | - |
+ *
+ */
+ public ApiResponse searchRUMArchiveSessionsWithHttpInfo(
+ RumArchiveSessionsSearchRequest body) throws ApiException {
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'body' when calling searchRUMArchiveSessions");
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/rum/recover/sessions";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.RumRecoveryApi.searchRUMArchiveSessions",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ return apiClient.invokeAPI(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Search archived sessions.
+ *
+ * See {@link #searchRUMArchiveSessionsWithHttpInfo}.
+ *
+ * @param body JSON:API request body. (required)
+ * @return CompletableFuture<ApiResponse<RumArchiveSessionsResponse>>
+ */
+ public CompletableFuture>
+ searchRUMArchiveSessionsWithHttpInfoAsync(RumArchiveSessionsSearchRequest body) {
+ Object localVarPostBody = body;
+
+ // 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 searchRUMArchiveSessions"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/rum/recover/sessions";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.RumRecoveryApi.searchRUMArchiveSessions",
+ 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(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Cancel a batch recovery request.
+ *
+ * See {@link #updateRUMRecoveryBatchRequestWithHttpInfo}.
+ *
+ * @param requestId Recovery request UUID. (required)
+ * @param body JSON:API request body. (required)
+ * @return RumRecoveryCancelResponse
+ * @throws ApiException if fails to make API call
+ */
+ public RumRecoveryCancelResponse updateRUMRecoveryBatchRequest(
+ UUID requestId, RumRecoveryCancelRequest body) throws ApiException {
+ return updateRUMRecoveryBatchRequestWithHttpInfo(requestId, body).getData();
+ }
+
+ /**
+ * Cancel a batch recovery request.
+ *
+ *
See {@link #updateRUMRecoveryBatchRequestWithHttpInfoAsync}.
+ *
+ * @param requestId Recovery request UUID. (required)
+ * @param body JSON:API request body. (required)
+ * @return CompletableFuture<RumRecoveryCancelResponse>
+ */
+ public CompletableFuture updateRUMRecoveryBatchRequestAsync(
+ UUID requestId, RumRecoveryCancelRequest body) {
+ return updateRUMRecoveryBatchRequestWithHttpInfoAsync(requestId, body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Cancel pending work for a batch recovery request. Work already in progress can finish, and
+ * recovered data is not removed. Requests in a terminal state return 409.
+ *
+ * @param requestId Recovery request UUID. (required)
+ * @param body JSON:API request body. (required)
+ * @return ApiResponse<RumRecoveryCancelResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | OK | - |
+ * | 400 | Bad Request | - |
+ * | 401 | Unauthorized | - |
+ * | 403 | Forbidden | - |
+ * | 404 | Not Found | - |
+ * | 409 | Conflict | - |
+ * | 429 | Too Many Requests | - |
+ *
+ */
+ public ApiResponse updateRUMRecoveryBatchRequestWithHttpInfo(
+ UUID requestId, RumRecoveryCancelRequest body) throws ApiException {
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'requestId' is set
+ if (requestId == null) {
+ throw new ApiException(
+ 400,
+ "Missing the required parameter 'requestId' when calling updateRUMRecoveryBatchRequest");
+ }
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'body' when calling updateRUMRecoveryBatchRequest");
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/rum/recover/requests/{request_id}"
+ .replaceAll("\\{" + "request_id" + "\\}", apiClient.escapeString(requestId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.RumRecoveryApi.updateRUMRecoveryBatchRequest",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ return apiClient.invokeAPI(
+ "PATCH",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Cancel a batch recovery request.
+ *
+ * See {@link #updateRUMRecoveryBatchRequestWithHttpInfo}.
+ *
+ * @param requestId Recovery request UUID. (required)
+ * @param body JSON:API request body. (required)
+ * @return CompletableFuture<ApiResponse<RumRecoveryCancelResponse>>
+ */
+ public CompletableFuture>
+ updateRUMRecoveryBatchRequestWithHttpInfoAsync(
+ UUID requestId, RumRecoveryCancelRequest body) {
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'requestId' is set
+ if (requestId == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'requestId' when calling"
+ + " updateRUMRecoveryBatchRequest"));
+ 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 updateRUMRecoveryBatchRequest"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/rum/recover/requests/{request_id}"
+ .replaceAll("\\{" + "request_id" + "\\}", apiClient.escapeString(requestId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.RumRecoveryApi.updateRUMRecoveryBatchRequest",
+ 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(
+ "PATCH",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/RumArchiveConfig.java b/src/main/java/com/datadog/api/client/v2/model/RumArchiveConfig.java
new file mode 100644
index 00000000000..5eaaf229934
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/RumArchiveConfig.java
@@ -0,0 +1,212 @@
+/*
+ * 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;
+
+/** JSON:API resource. */
+@JsonPropertyOrder({
+ RumArchiveConfig.JSON_PROPERTY_ATTRIBUTES,
+ RumArchiveConfig.JSON_PROPERTY_ID,
+ RumArchiveConfig.JSON_PROPERTY_TYPE
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class RumArchiveConfig {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ATTRIBUTES = "attributes";
+ private RumArchiveConfigAttributes attributes;
+
+ public static final String JSON_PROPERTY_ID = "id";
+ private String id;
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ private RumArchiveConfigType type;
+
+ public RumArchiveConfig() {}
+
+ @JsonCreator
+ public RumArchiveConfig(
+ @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES)
+ RumArchiveConfigAttributes attributes,
+ @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id,
+ @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) RumArchiveConfigType type) {
+ this.attributes = attributes;
+ this.unparsed |= attributes.unparsed;
+ this.id = id;
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ }
+
+ public RumArchiveConfig attributes(RumArchiveConfigAttributes attributes) {
+ this.attributes = attributes;
+ this.unparsed |= attributes.unparsed;
+ return this;
+ }
+
+ /**
+ * Archive configuration.
+ *
+ * @return attributes
+ */
+ @JsonProperty(JSON_PROPERTY_ATTRIBUTES)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public RumArchiveConfigAttributes getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(RumArchiveConfigAttributes attributes) {
+ this.attributes = attributes;
+ if (attributes != null) {
+ this.unparsed |= attributes.unparsed;
+ }
+ }
+
+ public RumArchiveConfig id(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Resource identifier.
+ *
+ * @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 RumArchiveConfig type(RumArchiveConfigType type) {
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ return this;
+ }
+
+ /**
+ * JSON:API resource type.
+ *
+ * @return type
+ */
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public RumArchiveConfigType getType() {
+ return type;
+ }
+
+ public void setType(RumArchiveConfigType 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 RumArchiveConfig
+ */
+ @JsonAnySetter
+ public RumArchiveConfig 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 RumArchiveConfig object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ RumArchiveConfig rumArchiveConfig = (RumArchiveConfig) o;
+ return Objects.equals(this.attributes, rumArchiveConfig.attributes)
+ && Objects.equals(this.id, rumArchiveConfig.id)
+ && Objects.equals(this.type, rumArchiveConfig.type)
+ && Objects.equals(this.additionalProperties, rumArchiveConfig.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(attributes, id, type, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class RumArchiveConfig {\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/RumArchiveConfigAttributes.java b/src/main/java/com/datadog/api/client/v2/model/RumArchiveConfigAttributes.java
new file mode 100644
index 00000000000..e64be1c1ee4
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/RumArchiveConfigAttributes.java
@@ -0,0 +1,256 @@
+/*
+ * 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;
+
+/** Archive configuration. */
+@JsonPropertyOrder({
+ RumArchiveConfigAttributes.JSON_PROPERTY_ENABLED,
+ RumArchiveConfigAttributes.JSON_PROPERTY_ORG_ID,
+ RumArchiveConfigAttributes.JSON_PROPERTY_RETENTION_DAYS,
+ RumArchiveConfigAttributes.JSON_PROPERTY_UPDATED_AT,
+ RumArchiveConfigAttributes.JSON_PROPERTY_UPDATED_BY
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class RumArchiveConfigAttributes {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ENABLED = "enabled";
+ private Boolean enabled;
+
+ public static final String JSON_PROPERTY_ORG_ID = "org_id";
+ private Long orgId;
+
+ public static final String JSON_PROPERTY_RETENTION_DAYS = "retention_days";
+ private Integer retentionDays;
+
+ 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 RumArchiveConfigAttributes() {}
+
+ @JsonCreator
+ public RumArchiveConfigAttributes(
+ @JsonProperty(required = true, value = JSON_PROPERTY_ENABLED) Boolean enabled,
+ @JsonProperty(required = true, value = JSON_PROPERTY_ORG_ID) Long orgId) {
+ this.enabled = enabled;
+ this.orgId = orgId;
+ }
+
+ public RumArchiveConfigAttributes enabled(Boolean enabled) {
+ this.enabled = enabled;
+ return this;
+ }
+
+ /**
+ * Whether archiving is enabled.
+ *
+ * @return enabled
+ */
+ @JsonProperty(JSON_PROPERTY_ENABLED)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public Boolean getEnabled() {
+ return enabled;
+ }
+
+ public void setEnabled(Boolean enabled) {
+ this.enabled = enabled;
+ }
+
+ public RumArchiveConfigAttributes orgId(Long orgId) {
+ this.orgId = orgId;
+ return this;
+ }
+
+ /**
+ * Organization ID.
+ *
+ * @return orgId
+ */
+ @JsonProperty(JSON_PROPERTY_ORG_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public Long getOrgId() {
+ return orgId;
+ }
+
+ public void setOrgId(Long orgId) {
+ this.orgId = orgId;
+ }
+
+ public RumArchiveConfigAttributes retentionDays(Integer retentionDays) {
+ this.retentionDays = retentionDays;
+ return this;
+ }
+
+ /**
+ * Configured retention in days; omitted when unset. maximum: 2147483647
+ *
+ * @return retentionDays
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_RETENTION_DAYS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Integer getRetentionDays() {
+ return retentionDays;
+ }
+
+ public void setRetentionDays(Integer retentionDays) {
+ this.retentionDays = retentionDays;
+ }
+
+ public RumArchiveConfigAttributes updatedAt(OffsetDateTime updatedAt) {
+ this.updatedAt = updatedAt;
+ return this;
+ }
+
+ /**
+ * Last update time.
+ *
+ * @return updatedAt
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_UPDATED_AT)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public OffsetDateTime getUpdatedAt() {
+ return updatedAt;
+ }
+
+ public void setUpdatedAt(OffsetDateTime updatedAt) {
+ this.updatedAt = updatedAt;
+ }
+
+ public RumArchiveConfigAttributes updatedBy(String updatedBy) {
+ this.updatedBy = updatedBy;
+ return this;
+ }
+
+ /**
+ * Handle of the user who last updated the configuration.
+ *
+ * @return updatedBy
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_UPDATED_BY)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ 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 RumArchiveConfigAttributes
+ */
+ @JsonAnySetter
+ public RumArchiveConfigAttributes 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 RumArchiveConfigAttributes object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ RumArchiveConfigAttributes rumArchiveConfigAttributes = (RumArchiveConfigAttributes) o;
+ return Objects.equals(this.enabled, rumArchiveConfigAttributes.enabled)
+ && Objects.equals(this.orgId, rumArchiveConfigAttributes.orgId)
+ && Objects.equals(this.retentionDays, rumArchiveConfigAttributes.retentionDays)
+ && Objects.equals(this.updatedAt, rumArchiveConfigAttributes.updatedAt)
+ && Objects.equals(this.updatedBy, rumArchiveConfigAttributes.updatedBy)
+ && Objects.equals(
+ this.additionalProperties, rumArchiveConfigAttributes.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(enabled, orgId, retentionDays, updatedAt, updatedBy, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class RumArchiveConfigAttributes {\n");
+ sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n");
+ sb.append(" orgId: ").append(toIndentedString(orgId)).append("\n");
+ sb.append(" retentionDays: ").append(toIndentedString(retentionDays)).append("\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/RumArchiveConfigListResponse.java b/src/main/java/com/datadog/api/client/v2/model/RumArchiveConfigListResponse.java
new file mode 100644
index 00000000000..5102109658e
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/RumArchiveConfigListResponse.java
@@ -0,0 +1,198 @@
+/*
+ * 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;
+
+/** JSON:API document. */
+@JsonPropertyOrder({
+ RumArchiveConfigListResponse.JSON_PROPERTY_DATA,
+ RumArchiveConfigListResponse.JSON_PROPERTY_META
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class RumArchiveConfigListResponse {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_DATA = "data";
+ private List data = new ArrayList<>();
+
+ public static final String JSON_PROPERTY_META = "meta";
+ private RumArchiveConfigMeta meta;
+
+ public RumArchiveConfigListResponse() {}
+
+ @JsonCreator
+ public RumArchiveConfigListResponse(
+ @JsonProperty(required = true, value = JSON_PROPERTY_DATA) List data,
+ @JsonProperty(required = true, value = JSON_PROPERTY_META) RumArchiveConfigMeta meta) {
+ this.data = data;
+ for (RumArchiveConfig item : data) {
+ this.unparsed |= item.unparsed;
+ }
+ this.meta = meta;
+ this.unparsed |= meta.unparsed;
+ }
+
+ public RumArchiveConfigListResponse data(List data) {
+ this.data = data;
+ for (RumArchiveConfig item : data) {
+ this.unparsed |= item.unparsed;
+ }
+ return this;
+ }
+
+ public RumArchiveConfigListResponse addDataItem(RumArchiveConfig dataItem) {
+ this.data.add(dataItem);
+ this.unparsed |= dataItem.unparsed;
+ return this;
+ }
+
+ /**
+ * Configurations in page order.
+ *
+ * @return data
+ */
+ @JsonProperty(JSON_PROPERTY_DATA)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ if (data != null) {
+ for (RumArchiveConfig item : data) {
+ this.unparsed |= item.unparsed;
+ }
+ }
+ }
+
+ public RumArchiveConfigListResponse meta(RumArchiveConfigMeta meta) {
+ this.meta = meta;
+ this.unparsed |= meta.unparsed;
+ return this;
+ }
+
+ /**
+ * Pagination metadata.
+ *
+ * @return meta
+ */
+ @JsonProperty(JSON_PROPERTY_META)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public RumArchiveConfigMeta getMeta() {
+ return meta;
+ }
+
+ public void setMeta(RumArchiveConfigMeta meta) {
+ this.meta = meta;
+ if (meta != null) {
+ this.unparsed |= meta.unparsed;
+ }
+ }
+
+ /**
+ * 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 RumArchiveConfigListResponse
+ */
+ @JsonAnySetter
+ public RumArchiveConfigListResponse 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 RumArchiveConfigListResponse object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ RumArchiveConfigListResponse rumArchiveConfigListResponse = (RumArchiveConfigListResponse) o;
+ return Objects.equals(this.data, rumArchiveConfigListResponse.data)
+ && Objects.equals(this.meta, rumArchiveConfigListResponse.meta)
+ && Objects.equals(
+ this.additionalProperties, rumArchiveConfigListResponse.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(data, meta, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class RumArchiveConfigListResponse {\n");
+ sb.append(" data: ").append(toIndentedString(data)).append("\n");
+ sb.append(" meta: ").append(toIndentedString(meta)).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/RumArchiveConfigMeta.java b/src/main/java/com/datadog/api/client/v2/model/RumArchiveConfigMeta.java
new file mode 100644
index 00000000000..62eaea27fba
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/RumArchiveConfigMeta.java
@@ -0,0 +1,148 @@
+/*
+ * 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;
+
+/** Pagination metadata. */
+@JsonPropertyOrder({RumArchiveConfigMeta.JSON_PROPERTY_PAGE})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class RumArchiveConfigMeta {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_PAGE = "page";
+ private RumArchiveConfigPage page;
+
+ public RumArchiveConfigMeta() {}
+
+ @JsonCreator
+ public RumArchiveConfigMeta(
+ @JsonProperty(required = true, value = JSON_PROPERTY_PAGE) RumArchiveConfigPage page) {
+ this.page = page;
+ this.unparsed |= page.unparsed;
+ }
+
+ public RumArchiveConfigMeta page(RumArchiveConfigPage page) {
+ this.page = page;
+ this.unparsed |= page.unparsed;
+ return this;
+ }
+
+ /**
+ * Page information.
+ *
+ * @return page
+ */
+ @JsonProperty(JSON_PROPERTY_PAGE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public RumArchiveConfigPage getPage() {
+ return page;
+ }
+
+ public void setPage(RumArchiveConfigPage page) {
+ this.page = page;
+ if (page != null) {
+ this.unparsed |= page.unparsed;
+ }
+ }
+
+ /**
+ * 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 RumArchiveConfigMeta
+ */
+ @JsonAnySetter
+ public RumArchiveConfigMeta 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 RumArchiveConfigMeta object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ RumArchiveConfigMeta rumArchiveConfigMeta = (RumArchiveConfigMeta) o;
+ return Objects.equals(this.page, rumArchiveConfigMeta.page)
+ && Objects.equals(this.additionalProperties, rumArchiveConfigMeta.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(page, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class RumArchiveConfigMeta {\n");
+ sb.append(" page: ").append(toIndentedString(page)).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/RumArchiveConfigPage.java b/src/main/java/com/datadog/api/client/v2/model/RumArchiveConfigPage.java
new file mode 100644
index 00000000000..8eb124bcee9
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/RumArchiveConfigPage.java
@@ -0,0 +1,144 @@
+/*
+ * 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;
+
+/** Page information. */
+@JsonPropertyOrder({RumArchiveConfigPage.JSON_PROPERTY_TOTAL_FILTERED_COUNT})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class RumArchiveConfigPage {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_TOTAL_FILTERED_COUNT = "total_filtered_count";
+ private Long totalFilteredCount;
+
+ public RumArchiveConfigPage() {}
+
+ @JsonCreator
+ public RumArchiveConfigPage(
+ @JsonProperty(required = true, value = JSON_PROPERTY_TOTAL_FILTERED_COUNT)
+ Long totalFilteredCount) {
+ this.totalFilteredCount = totalFilteredCount;
+ }
+
+ public RumArchiveConfigPage totalFilteredCount(Long totalFilteredCount) {
+ this.totalFilteredCount = totalFilteredCount;
+ return this;
+ }
+
+ /**
+ * Total configurations for the organization. minimum: 0
+ *
+ * @return totalFilteredCount
+ */
+ @JsonProperty(JSON_PROPERTY_TOTAL_FILTERED_COUNT)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public Long getTotalFilteredCount() {
+ return totalFilteredCount;
+ }
+
+ public void setTotalFilteredCount(Long totalFilteredCount) {
+ this.totalFilteredCount = totalFilteredCount;
+ }
+
+ /**
+ * 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 RumArchiveConfigPage
+ */
+ @JsonAnySetter
+ public RumArchiveConfigPage 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 RumArchiveConfigPage object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ RumArchiveConfigPage rumArchiveConfigPage = (RumArchiveConfigPage) o;
+ return Objects.equals(this.totalFilteredCount, rumArchiveConfigPage.totalFilteredCount)
+ && Objects.equals(this.additionalProperties, rumArchiveConfigPage.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(totalFilteredCount, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class RumArchiveConfigPage {\n");
+ sb.append(" totalFilteredCount: ").append(toIndentedString(totalFilteredCount)).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/RumArchiveConfigResponse.java b/src/main/java/com/datadog/api/client/v2/model/RumArchiveConfigResponse.java
new file mode 100644
index 00000000000..cacab4b32ec
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/RumArchiveConfigResponse.java
@@ -0,0 +1,148 @@
+/*
+ * 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;
+
+/** JSON:API document. */
+@JsonPropertyOrder({RumArchiveConfigResponse.JSON_PROPERTY_DATA})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class RumArchiveConfigResponse {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_DATA = "data";
+ private RumArchiveConfig data;
+
+ public RumArchiveConfigResponse() {}
+
+ @JsonCreator
+ public RumArchiveConfigResponse(
+ @JsonProperty(required = true, value = JSON_PROPERTY_DATA) RumArchiveConfig data) {
+ this.data = data;
+ this.unparsed |= data.unparsed;
+ }
+
+ public RumArchiveConfigResponse data(RumArchiveConfig data) {
+ this.data = data;
+ this.unparsed |= data.unparsed;
+ return this;
+ }
+
+ /**
+ * JSON:API resource.
+ *
+ * @return data
+ */
+ @JsonProperty(JSON_PROPERTY_DATA)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public RumArchiveConfig getData() {
+ return data;
+ }
+
+ public void setData(RumArchiveConfig data) {
+ this.data = data;
+ if (data != null) {
+ this.unparsed |= data.unparsed;
+ }
+ }
+
+ /**
+ * 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 RumArchiveConfigResponse
+ */
+ @JsonAnySetter
+ public RumArchiveConfigResponse 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 RumArchiveConfigResponse object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ RumArchiveConfigResponse rumArchiveConfigResponse = (RumArchiveConfigResponse) o;
+ return Objects.equals(this.data, rumArchiveConfigResponse.data)
+ && Objects.equals(this.additionalProperties, rumArchiveConfigResponse.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(data, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class RumArchiveConfigResponse {\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/RumArchiveConfigType.java b/src/main/java/com/datadog/api/client/v2/model/RumArchiveConfigType.java
new file mode 100644
index 00000000000..64c504f14aa
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/RumArchiveConfigType.java
@@ -0,0 +1,56 @@
+/*
+ * 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;
+
+/** JSON:API resource type. */
+@JsonSerialize(using = RumArchiveConfigType.RumArchiveConfigTypeSerializer.class)
+public class RumArchiveConfigType extends ModelEnum {
+
+ private static final Set allowedValues =
+ new HashSet(Arrays.asList("rum_archive_config"));
+
+ public static final RumArchiveConfigType RUM_ARCHIVE_CONFIG =
+ new RumArchiveConfigType("rum_archive_config");
+
+ RumArchiveConfigType(String value) {
+ super(value, allowedValues);
+ }
+
+ public static class RumArchiveConfigTypeSerializer extends StdSerializer {
+ public RumArchiveConfigTypeSerializer(Class t) {
+ super(t);
+ }
+
+ public RumArchiveConfigTypeSerializer() {
+ this(null);
+ }
+
+ @Override
+ public void serialize(
+ RumArchiveConfigType value, JsonGenerator jgen, SerializerProvider provider)
+ throws IOException, JsonProcessingException {
+ jgen.writeObject(value.value);
+ }
+ }
+
+ @JsonCreator
+ public static RumArchiveConfigType fromValue(String value) {
+ return new RumArchiveConfigType(value);
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/RumArchiveConfigUpsertAttributes.java b/src/main/java/com/datadog/api/client/v2/model/RumArchiveConfigUpsertAttributes.java
new file mode 100644
index 00000000000..3db14e71966
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/RumArchiveConfigUpsertAttributes.java
@@ -0,0 +1,178 @@
+/*
+ * 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;
+
+/**
+ * Archive configuration to save. When enabled is true, retention_days is required and must be 30,
+ * 90, or 180. When disabled, retention_days can be omitted.
+ */
+@JsonPropertyOrder({
+ RumArchiveConfigUpsertAttributes.JSON_PROPERTY_ENABLED,
+ RumArchiveConfigUpsertAttributes.JSON_PROPERTY_RETENTION_DAYS
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class RumArchiveConfigUpsertAttributes {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ENABLED = "enabled";
+ private Boolean enabled;
+
+ public static final String JSON_PROPERTY_RETENTION_DAYS = "retention_days";
+ private Integer retentionDays;
+
+ public RumArchiveConfigUpsertAttributes() {}
+
+ @JsonCreator
+ public RumArchiveConfigUpsertAttributes(
+ @JsonProperty(required = true, value = JSON_PROPERTY_ENABLED) Boolean enabled) {
+ this.enabled = enabled;
+ }
+
+ public RumArchiveConfigUpsertAttributes enabled(Boolean enabled) {
+ this.enabled = enabled;
+ return this;
+ }
+
+ /**
+ * Whether archiving is enabled.
+ *
+ * @return enabled
+ */
+ @JsonProperty(JSON_PROPERTY_ENABLED)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public Boolean getEnabled() {
+ return enabled;
+ }
+
+ public void setEnabled(Boolean enabled) {
+ this.enabled = enabled;
+ }
+
+ public RumArchiveConfigUpsertAttributes retentionDays(Integer retentionDays) {
+ this.retentionDays = retentionDays;
+ return this;
+ }
+
+ /**
+ * Retention in days. Required and restricted to 30, 90, or 180 only when enabled is true.
+ * maximum: 2147483647
+ *
+ * @return retentionDays
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_RETENTION_DAYS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Integer getRetentionDays() {
+ return retentionDays;
+ }
+
+ public void setRetentionDays(Integer retentionDays) {
+ this.retentionDays = retentionDays;
+ }
+
+ /**
+ * 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 RumArchiveConfigUpsertAttributes
+ */
+ @JsonAnySetter
+ public RumArchiveConfigUpsertAttributes 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 RumArchiveConfigUpsertAttributes object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ RumArchiveConfigUpsertAttributes rumArchiveConfigUpsertAttributes =
+ (RumArchiveConfigUpsertAttributes) o;
+ return Objects.equals(this.enabled, rumArchiveConfigUpsertAttributes.enabled)
+ && Objects.equals(this.retentionDays, rumArchiveConfigUpsertAttributes.retentionDays)
+ && Objects.equals(
+ this.additionalProperties, rumArchiveConfigUpsertAttributes.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(enabled, retentionDays, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class RumArchiveConfigUpsertAttributes {\n");
+ sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n");
+ sb.append(" retentionDays: ").append(toIndentedString(retentionDays)).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/RumArchiveConfigUpsertData.java b/src/main/java/com/datadog/api/client/v2/model/RumArchiveConfigUpsertData.java
new file mode 100644
index 00000000000..e992f4d3751
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/RumArchiveConfigUpsertData.java
@@ -0,0 +1,214 @@
+/*
+ * 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;
+
+/** JSON:API resource. */
+@JsonPropertyOrder({
+ RumArchiveConfigUpsertData.JSON_PROPERTY_ATTRIBUTES,
+ RumArchiveConfigUpsertData.JSON_PROPERTY_ID,
+ RumArchiveConfigUpsertData.JSON_PROPERTY_TYPE
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class RumArchiveConfigUpsertData {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ATTRIBUTES = "attributes";
+ private RumArchiveConfigUpsertAttributes attributes;
+
+ public static final String JSON_PROPERTY_ID = "id";
+ private String id;
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ private RumArchiveConfigType type;
+
+ public RumArchiveConfigUpsertData() {}
+
+ @JsonCreator
+ public RumArchiveConfigUpsertData(
+ @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES)
+ RumArchiveConfigUpsertAttributes attributes,
+ @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id,
+ @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) RumArchiveConfigType type) {
+ this.attributes = attributes;
+ this.unparsed |= attributes.unparsed;
+ this.id = id;
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ }
+
+ public RumArchiveConfigUpsertData attributes(RumArchiveConfigUpsertAttributes attributes) {
+ this.attributes = attributes;
+ this.unparsed |= attributes.unparsed;
+ return this;
+ }
+
+ /**
+ * Archive configuration to save. When enabled is true, retention_days is required and must be 30,
+ * 90, or 180. When disabled, retention_days can be omitted.
+ *
+ * @return attributes
+ */
+ @JsonProperty(JSON_PROPERTY_ATTRIBUTES)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public RumArchiveConfigUpsertAttributes getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(RumArchiveConfigUpsertAttributes attributes) {
+ this.attributes = attributes;
+ if (attributes != null) {
+ this.unparsed |= attributes.unparsed;
+ }
+ }
+
+ public RumArchiveConfigUpsertData id(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Resource identifier.
+ *
+ * @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 RumArchiveConfigUpsertData type(RumArchiveConfigType type) {
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ return this;
+ }
+
+ /**
+ * JSON:API resource type.
+ *
+ * @return type
+ */
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public RumArchiveConfigType getType() {
+ return type;
+ }
+
+ public void setType(RumArchiveConfigType 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 RumArchiveConfigUpsertData
+ */
+ @JsonAnySetter
+ public RumArchiveConfigUpsertData 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 RumArchiveConfigUpsertData object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ RumArchiveConfigUpsertData rumArchiveConfigUpsertData = (RumArchiveConfigUpsertData) o;
+ return Objects.equals(this.attributes, rumArchiveConfigUpsertData.attributes)
+ && Objects.equals(this.id, rumArchiveConfigUpsertData.id)
+ && Objects.equals(this.type, rumArchiveConfigUpsertData.type)
+ && Objects.equals(
+ this.additionalProperties, rumArchiveConfigUpsertData.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(attributes, id, type, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class RumArchiveConfigUpsertData {\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/RumArchiveConfigUpsertRequest.java b/src/main/java/com/datadog/api/client/v2/model/RumArchiveConfigUpsertRequest.java
new file mode 100644
index 00000000000..9f46808bed2
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/RumArchiveConfigUpsertRequest.java
@@ -0,0 +1,149 @@
+/*
+ * 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;
+
+/** JSON:API document. */
+@JsonPropertyOrder({RumArchiveConfigUpsertRequest.JSON_PROPERTY_DATA})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class RumArchiveConfigUpsertRequest {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_DATA = "data";
+ private RumArchiveConfigUpsertData data;
+
+ public RumArchiveConfigUpsertRequest() {}
+
+ @JsonCreator
+ public RumArchiveConfigUpsertRequest(
+ @JsonProperty(required = true, value = JSON_PROPERTY_DATA) RumArchiveConfigUpsertData data) {
+ this.data = data;
+ this.unparsed |= data.unparsed;
+ }
+
+ public RumArchiveConfigUpsertRequest data(RumArchiveConfigUpsertData data) {
+ this.data = data;
+ this.unparsed |= data.unparsed;
+ return this;
+ }
+
+ /**
+ * JSON:API resource.
+ *
+ * @return data
+ */
+ @JsonProperty(JSON_PROPERTY_DATA)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public RumArchiveConfigUpsertData getData() {
+ return data;
+ }
+
+ public void setData(RumArchiveConfigUpsertData data) {
+ this.data = data;
+ if (data != null) {
+ this.unparsed |= data.unparsed;
+ }
+ }
+
+ /**
+ * 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 RumArchiveConfigUpsertRequest
+ */
+ @JsonAnySetter
+ public RumArchiveConfigUpsertRequest 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 RumArchiveConfigUpsertRequest object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ RumArchiveConfigUpsertRequest rumArchiveConfigUpsertRequest = (RumArchiveConfigUpsertRequest) o;
+ return Objects.equals(this.data, rumArchiveConfigUpsertRequest.data)
+ && Objects.equals(
+ this.additionalProperties, rumArchiveConfigUpsertRequest.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(data, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class RumArchiveConfigUpsertRequest {\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/RumArchiveSession.java b/src/main/java/com/datadog/api/client/v2/model/RumArchiveSession.java
new file mode 100644
index 00000000000..9b254190628
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/RumArchiveSession.java
@@ -0,0 +1,212 @@
+/*
+ * 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;
+
+/** JSON:API resource. */
+@JsonPropertyOrder({
+ RumArchiveSession.JSON_PROPERTY_ATTRIBUTES,
+ RumArchiveSession.JSON_PROPERTY_ID,
+ RumArchiveSession.JSON_PROPERTY_TYPE
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class RumArchiveSession {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ATTRIBUTES = "attributes";
+ private RumArchiveSessionAttributes attributes;
+
+ public static final String JSON_PROPERTY_ID = "id";
+ private String id;
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ private RumArchiveSessionType type;
+
+ public RumArchiveSession() {}
+
+ @JsonCreator
+ public RumArchiveSession(
+ @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES)
+ RumArchiveSessionAttributes attributes,
+ @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id,
+ @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) RumArchiveSessionType type) {
+ this.attributes = attributes;
+ this.unparsed |= attributes.unparsed;
+ this.id = id;
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ }
+
+ public RumArchiveSession attributes(RumArchiveSessionAttributes attributes) {
+ this.attributes = attributes;
+ this.unparsed |= attributes.unparsed;
+ return this;
+ }
+
+ /**
+ * Archived session metadata.
+ *
+ * @return attributes
+ */
+ @JsonProperty(JSON_PROPERTY_ATTRIBUTES)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public RumArchiveSessionAttributes getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(RumArchiveSessionAttributes attributes) {
+ this.attributes = attributes;
+ if (attributes != null) {
+ this.unparsed |= attributes.unparsed;
+ }
+ }
+
+ public RumArchiveSession id(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Resource identifier.
+ *
+ * @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 RumArchiveSession type(RumArchiveSessionType type) {
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ return this;
+ }
+
+ /**
+ * JSON:API resource type.
+ *
+ * @return type
+ */
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public RumArchiveSessionType getType() {
+ return type;
+ }
+
+ public void setType(RumArchiveSessionType 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 RumArchiveSession
+ */
+ @JsonAnySetter
+ public RumArchiveSession 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 RumArchiveSession object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ RumArchiveSession rumArchiveSession = (RumArchiveSession) o;
+ return Objects.equals(this.attributes, rumArchiveSession.attributes)
+ && Objects.equals(this.id, rumArchiveSession.id)
+ && Objects.equals(this.type, rumArchiveSession.type)
+ && Objects.equals(this.additionalProperties, rumArchiveSession.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(attributes, id, type, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class RumArchiveSession {\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/RumArchiveSessionAttributes.java b/src/main/java/com/datadog/api/client/v2/model/RumArchiveSessionAttributes.java
new file mode 100644
index 00000000000..ecdbeb431a6
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/RumArchiveSessionAttributes.java
@@ -0,0 +1,438 @@
+/*
+ * 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;
+import java.util.UUID;
+
+/** Archived session metadata. */
+@JsonPropertyOrder({
+ RumArchiveSessionAttributes.JSON_PROPERTY_ACCOUNT_ID,
+ RumArchiveSessionAttributes.JSON_PROPERTY_ANONYMOUS_ID,
+ RumArchiveSessionAttributes.JSON_PROPERTY_APPLICATION_ID,
+ RumArchiveSessionAttributes.JSON_PROPERTY_COUNTRY,
+ RumArchiveSessionAttributes.JSON_PROPERTY_RECOVERY_STATUS,
+ RumArchiveSessionAttributes.JSON_PROPERTY_SERVICE,
+ RumArchiveSessionAttributes.JSON_PROPERTY_SESSION_ID,
+ RumArchiveSessionAttributes.JSON_PROPERTY_TIMESTAMP,
+ RumArchiveSessionAttributes.JSON_PROPERTY_USER_ID,
+ RumArchiveSessionAttributes.JSON_PROPERTY_VERSION
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class RumArchiveSessionAttributes {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ACCOUNT_ID = "account_id";
+ private String accountId;
+
+ public static final String JSON_PROPERTY_ANONYMOUS_ID = "anonymous_id";
+ private String anonymousId;
+
+ public static final String JSON_PROPERTY_APPLICATION_ID = "application_id";
+ private UUID applicationId;
+
+ public static final String JSON_PROPERTY_COUNTRY = "country";
+ private String country;
+
+ public static final String JSON_PROPERTY_RECOVERY_STATUS = "recovery_status";
+ private RumArchiveSessionRecoveryStatus recoveryStatus;
+
+ public static final String JSON_PROPERTY_SERVICE = "service";
+ private String service;
+
+ public static final String JSON_PROPERTY_SESSION_ID = "session_id";
+ private String sessionId;
+
+ public static final String JSON_PROPERTY_TIMESTAMP = "timestamp";
+ private Long timestamp;
+
+ public static final String JSON_PROPERTY_USER_ID = "user_id";
+ private String userId;
+
+ public static final String JSON_PROPERTY_VERSION = "version";
+ private String version;
+
+ public RumArchiveSessionAttributes() {}
+
+ @JsonCreator
+ public RumArchiveSessionAttributes(
+ @JsonProperty(required = true, value = JSON_PROPERTY_ACCOUNT_ID) String accountId,
+ @JsonProperty(required = true, value = JSON_PROPERTY_ANONYMOUS_ID) String anonymousId,
+ @JsonProperty(required = true, value = JSON_PROPERTY_APPLICATION_ID) UUID applicationId,
+ @JsonProperty(required = true, value = JSON_PROPERTY_COUNTRY) String country,
+ @JsonProperty(required = true, value = JSON_PROPERTY_RECOVERY_STATUS)
+ RumArchiveSessionRecoveryStatus recoveryStatus,
+ @JsonProperty(required = true, value = JSON_PROPERTY_SERVICE) String service,
+ @JsonProperty(required = true, value = JSON_PROPERTY_SESSION_ID) String sessionId,
+ @JsonProperty(required = true, value = JSON_PROPERTY_TIMESTAMP) Long timestamp,
+ @JsonProperty(required = true, value = JSON_PROPERTY_USER_ID) String userId,
+ @JsonProperty(required = true, value = JSON_PROPERTY_VERSION) String version) {
+ this.accountId = accountId;
+ if (accountId != null) {}
+ this.anonymousId = anonymousId;
+ if (anonymousId != null) {}
+ this.applicationId = applicationId;
+ this.country = country;
+ if (country != null) {}
+ this.recoveryStatus = recoveryStatus;
+ if (recoveryStatus != null) {
+ this.unparsed |= recoveryStatus.unparsed;
+ }
+ this.service = service;
+ this.sessionId = sessionId;
+ this.timestamp = timestamp;
+ this.userId = userId;
+ if (userId != null) {}
+ this.version = version;
+ if (version != null) {}
+ }
+
+ public RumArchiveSessionAttributes accountId(String accountId) {
+ this.accountId = accountId;
+ if (accountId != null) {}
+ return this;
+ }
+
+ /**
+ * Session account id, or null when unavailable.
+ *
+ * @return accountId
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ACCOUNT_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getAccountId() {
+ return accountId;
+ }
+
+ public void setAccountId(String accountId) {
+ this.accountId = accountId;
+ }
+
+ public RumArchiveSessionAttributes anonymousId(String anonymousId) {
+ this.anonymousId = anonymousId;
+ if (anonymousId != null) {}
+ return this;
+ }
+
+ /**
+ * Session anonymous id, or null when unavailable.
+ *
+ * @return anonymousId
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ANONYMOUS_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getAnonymousId() {
+ return anonymousId;
+ }
+
+ public void setAnonymousId(String anonymousId) {
+ this.anonymousId = anonymousId;
+ }
+
+ public RumArchiveSessionAttributes applicationId(UUID applicationId) {
+ this.applicationId = applicationId;
+ return this;
+ }
+
+ /**
+ * Application UUID.
+ *
+ * @return applicationId
+ */
+ @JsonProperty(JSON_PROPERTY_APPLICATION_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public UUID getApplicationId() {
+ return applicationId;
+ }
+
+ public void setApplicationId(UUID applicationId) {
+ this.applicationId = applicationId;
+ }
+
+ public RumArchiveSessionAttributes country(String country) {
+ this.country = country;
+ if (country != null) {}
+ return this;
+ }
+
+ /**
+ * Session country, or null when unavailable.
+ *
+ * @return country
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_COUNTRY)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getCountry() {
+ return country;
+ }
+
+ public void setCountry(String country) {
+ this.country = country;
+ }
+
+ public RumArchiveSessionAttributes recoveryStatus(
+ RumArchiveSessionRecoveryStatus recoveryStatus) {
+ this.recoveryStatus = recoveryStatus;
+ if (recoveryStatus != null) {
+ this.unparsed |= recoveryStatus.unparsed;
+ }
+ return this;
+ }
+
+ /**
+ * Session recovery state. A missing recovery record can be represented as null. Optional
+ * request_id and recovered_at are omitted when unavailable.
+ *
+ * @return recoveryStatus
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_RECOVERY_STATUS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public RumArchiveSessionRecoveryStatus getRecoveryStatus() {
+ return recoveryStatus;
+ }
+
+ public void setRecoveryStatus(RumArchiveSessionRecoveryStatus recoveryStatus) {
+ this.recoveryStatus = recoveryStatus;
+ if (recoveryStatus != null) {
+ this.unparsed |= recoveryStatus.unparsed;
+ }
+ }
+
+ public RumArchiveSessionAttributes service(String service) {
+ this.service = service;
+ return this;
+ }
+
+ /**
+ * Service name.
+ *
+ * @return service
+ */
+ @JsonProperty(JSON_PROPERTY_SERVICE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getService() {
+ return service;
+ }
+
+ public void setService(String service) {
+ this.service = service;
+ }
+
+ public RumArchiveSessionAttributes sessionId(String sessionId) {
+ this.sessionId = sessionId;
+ return this;
+ }
+
+ /**
+ * Session identifier.
+ *
+ * @return sessionId
+ */
+ @JsonProperty(JSON_PROPERTY_SESSION_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getSessionId() {
+ return sessionId;
+ }
+
+ public void setSessionId(String sessionId) {
+ this.sessionId = sessionId;
+ }
+
+ public RumArchiveSessionAttributes timestamp(Long timestamp) {
+ this.timestamp = timestamp;
+ return this;
+ }
+
+ /**
+ * Session timestamp in Unix milliseconds.
+ *
+ * @return timestamp
+ */
+ @JsonProperty(JSON_PROPERTY_TIMESTAMP)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public Long getTimestamp() {
+ return timestamp;
+ }
+
+ public void setTimestamp(Long timestamp) {
+ this.timestamp = timestamp;
+ }
+
+ public RumArchiveSessionAttributes userId(String userId) {
+ this.userId = userId;
+ if (userId != null) {}
+ return this;
+ }
+
+ /**
+ * Session user id, or null when unavailable.
+ *
+ * @return userId
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_USER_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getUserId() {
+ return userId;
+ }
+
+ public void setUserId(String userId) {
+ this.userId = userId;
+ }
+
+ public RumArchiveSessionAttributes version(String version) {
+ this.version = version;
+ if (version != null) {}
+ return this;
+ }
+
+ /**
+ * Session version, or null when unavailable.
+ *
+ * @return version
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_VERSION)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getVersion() {
+ return version;
+ }
+
+ public void setVersion(String 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 RumArchiveSessionAttributes
+ */
+ @JsonAnySetter
+ public RumArchiveSessionAttributes 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 RumArchiveSessionAttributes object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ RumArchiveSessionAttributes rumArchiveSessionAttributes = (RumArchiveSessionAttributes) o;
+ return Objects.equals(this.accountId, rumArchiveSessionAttributes.accountId)
+ && Objects.equals(this.anonymousId, rumArchiveSessionAttributes.anonymousId)
+ && Objects.equals(this.applicationId, rumArchiveSessionAttributes.applicationId)
+ && Objects.equals(this.country, rumArchiveSessionAttributes.country)
+ && Objects.equals(this.recoveryStatus, rumArchiveSessionAttributes.recoveryStatus)
+ && Objects.equals(this.service, rumArchiveSessionAttributes.service)
+ && Objects.equals(this.sessionId, rumArchiveSessionAttributes.sessionId)
+ && Objects.equals(this.timestamp, rumArchiveSessionAttributes.timestamp)
+ && Objects.equals(this.userId, rumArchiveSessionAttributes.userId)
+ && Objects.equals(this.version, rumArchiveSessionAttributes.version)
+ && Objects.equals(
+ this.additionalProperties, rumArchiveSessionAttributes.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(
+ accountId,
+ anonymousId,
+ applicationId,
+ country,
+ recoveryStatus,
+ service,
+ sessionId,
+ timestamp,
+ userId,
+ version,
+ additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class RumArchiveSessionAttributes {\n");
+ sb.append(" accountId: ").append(toIndentedString(accountId)).append("\n");
+ sb.append(" anonymousId: ").append(toIndentedString(anonymousId)).append("\n");
+ sb.append(" applicationId: ").append(toIndentedString(applicationId)).append("\n");
+ sb.append(" country: ").append(toIndentedString(country)).append("\n");
+ sb.append(" recoveryStatus: ").append(toIndentedString(recoveryStatus)).append("\n");
+ sb.append(" service: ").append(toIndentedString(service)).append("\n");
+ sb.append(" sessionId: ").append(toIndentedString(sessionId)).append("\n");
+ sb.append(" timestamp: ").append(toIndentedString(timestamp)).append("\n");
+ sb.append(" userId: ").append(toIndentedString(userId)).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/RumArchiveSessionRecoveryStatus.java b/src/main/java/com/datadog/api/client/v2/model/RumArchiveSessionRecoveryStatus.java
new file mode 100644
index 00000000000..a688a86297e
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/RumArchiveSessionRecoveryStatus.java
@@ -0,0 +1,212 @@
+/*
+ * 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;
+
+/**
+ * Session recovery state. A missing recovery record can be represented as null. Optional request_id
+ * and recovered_at are omitted when unavailable.
+ */
+@JsonPropertyOrder({
+ RumArchiveSessionRecoveryStatus.JSON_PROPERTY_RECOVERED_AT,
+ RumArchiveSessionRecoveryStatus.JSON_PROPERTY_REQUEST_ID,
+ RumArchiveSessionRecoveryStatus.JSON_PROPERTY_STATUS
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class RumArchiveSessionRecoveryStatus {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_RECOVERED_AT = "recovered_at";
+ private OffsetDateTime recoveredAt;
+
+ public static final String JSON_PROPERTY_REQUEST_ID = "request_id";
+ private String requestId;
+
+ public static final String JSON_PROPERTY_STATUS = "status";
+ private RumRecoverySessionStatus status;
+
+ public RumArchiveSessionRecoveryStatus() {}
+
+ @JsonCreator
+ public RumArchiveSessionRecoveryStatus(
+ @JsonProperty(required = true, value = JSON_PROPERTY_STATUS)
+ RumRecoverySessionStatus status) {
+ this.status = status;
+ this.unparsed |= !status.isValid();
+ }
+
+ public RumArchiveSessionRecoveryStatus recoveredAt(OffsetDateTime recoveredAt) {
+ this.recoveredAt = recoveredAt;
+ return this;
+ }
+
+ /**
+ * Recovery timestamp, when available.
+ *
+ * @return recoveredAt
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_RECOVERED_AT)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public OffsetDateTime getRecoveredAt() {
+ return recoveredAt;
+ }
+
+ public void setRecoveredAt(OffsetDateTime recoveredAt) {
+ this.recoveredAt = recoveredAt;
+ }
+
+ public RumArchiveSessionRecoveryStatus requestId(String requestId) {
+ this.requestId = requestId;
+ return this;
+ }
+
+ /**
+ * Associated recovery request ID.
+ *
+ * @return requestId
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_REQUEST_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getRequestId() {
+ return requestId;
+ }
+
+ public void setRequestId(String requestId) {
+ this.requestId = requestId;
+ }
+
+ public RumArchiveSessionRecoveryStatus status(RumRecoverySessionStatus status) {
+ this.status = status;
+ this.unparsed |= !status.isValid();
+ return this;
+ }
+
+ /**
+ * Session availability or recovery state. RECOVERED indicates that the session is
+ * ready to query.
+ *
+ * @return status
+ */
+ @JsonProperty(JSON_PROPERTY_STATUS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public RumRecoverySessionStatus getStatus() {
+ return status;
+ }
+
+ public void setStatus(RumRecoverySessionStatus status) {
+ if (!status.isValid()) {
+ this.unparsed = true;
+ }
+ this.status = status;
+ }
+
+ /**
+ * 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 RumArchiveSessionRecoveryStatus
+ */
+ @JsonAnySetter
+ public RumArchiveSessionRecoveryStatus 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 RumArchiveSessionRecoveryStatus object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ RumArchiveSessionRecoveryStatus rumArchiveSessionRecoveryStatus =
+ (RumArchiveSessionRecoveryStatus) o;
+ return Objects.equals(this.recoveredAt, rumArchiveSessionRecoveryStatus.recoveredAt)
+ && Objects.equals(this.requestId, rumArchiveSessionRecoveryStatus.requestId)
+ && Objects.equals(this.status, rumArchiveSessionRecoveryStatus.status)
+ && Objects.equals(
+ this.additionalProperties, rumArchiveSessionRecoveryStatus.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(recoveredAt, requestId, status, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class RumArchiveSessionRecoveryStatus {\n");
+ sb.append(" recoveredAt: ").append(toIndentedString(recoveredAt)).append("\n");
+ sb.append(" requestId: ").append(toIndentedString(requestId)).append("\n");
+ sb.append(" status: ").append(toIndentedString(status)).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/RumArchiveSessionType.java b/src/main/java/com/datadog/api/client/v2/model/RumArchiveSessionType.java
new file mode 100644
index 00000000000..64bcb20ec27
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/RumArchiveSessionType.java
@@ -0,0 +1,56 @@
+/*
+ * 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;
+
+/** JSON:API resource type. */
+@JsonSerialize(using = RumArchiveSessionType.RumArchiveSessionTypeSerializer.class)
+public class RumArchiveSessionType extends ModelEnum {
+
+ private static final Set allowedValues =
+ new HashSet(Arrays.asList("rum_archive_session"));
+
+ public static final RumArchiveSessionType RUM_ARCHIVE_SESSION =
+ new RumArchiveSessionType("rum_archive_session");
+
+ RumArchiveSessionType(String value) {
+ super(value, allowedValues);
+ }
+
+ public static class RumArchiveSessionTypeSerializer extends StdSerializer {
+ public RumArchiveSessionTypeSerializer(Class t) {
+ super(t);
+ }
+
+ public RumArchiveSessionTypeSerializer() {
+ this(null);
+ }
+
+ @Override
+ public void serialize(
+ RumArchiveSessionType value, JsonGenerator jgen, SerializerProvider provider)
+ throws IOException, JsonProcessingException {
+ jgen.writeObject(value.value);
+ }
+ }
+
+ @JsonCreator
+ public static RumArchiveSessionType fromValue(String value) {
+ return new RumArchiveSessionType(value);
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/RumArchiveSessionsMeta.java b/src/main/java/com/datadog/api/client/v2/model/RumArchiveSessionsMeta.java
new file mode 100644
index 00000000000..a5b96ad2b31
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/RumArchiveSessionsMeta.java
@@ -0,0 +1,148 @@
+/*
+ * 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;
+
+/** Search metadata. */
+@JsonPropertyOrder({RumArchiveSessionsMeta.JSON_PROPERTY_PAGE})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class RumArchiveSessionsMeta {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_PAGE = "page";
+ private RumArchiveSessionsPage page;
+
+ public RumArchiveSessionsMeta() {}
+
+ @JsonCreator
+ public RumArchiveSessionsMeta(
+ @JsonProperty(required = true, value = JSON_PROPERTY_PAGE) RumArchiveSessionsPage page) {
+ this.page = page;
+ this.unparsed |= page.unparsed;
+ }
+
+ public RumArchiveSessionsMeta page(RumArchiveSessionsPage page) {
+ this.page = page;
+ this.unparsed |= page.unparsed;
+ return this;
+ }
+
+ /**
+ * Search pagination.
+ *
+ * @return page
+ */
+ @JsonProperty(JSON_PROPERTY_PAGE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public RumArchiveSessionsPage getPage() {
+ return page;
+ }
+
+ public void setPage(RumArchiveSessionsPage page) {
+ this.page = page;
+ if (page != null) {
+ this.unparsed |= page.unparsed;
+ }
+ }
+
+ /**
+ * 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 RumArchiveSessionsMeta
+ */
+ @JsonAnySetter
+ public RumArchiveSessionsMeta 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 RumArchiveSessionsMeta object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ RumArchiveSessionsMeta rumArchiveSessionsMeta = (RumArchiveSessionsMeta) o;
+ return Objects.equals(this.page, rumArchiveSessionsMeta.page)
+ && Objects.equals(this.additionalProperties, rumArchiveSessionsMeta.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(page, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class RumArchiveSessionsMeta {\n");
+ sb.append(" page: ").append(toIndentedString(page)).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/RumArchiveSessionsPage.java b/src/main/java/com/datadog/api/client/v2/model/RumArchiveSessionsPage.java
new file mode 100644
index 00000000000..1f6246a4658
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/RumArchiveSessionsPage.java
@@ -0,0 +1,173 @@
+/*
+ * 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;
+
+/** Search pagination. */
+@JsonPropertyOrder({
+ RumArchiveSessionsPage.JSON_PROPERTY_NEXT_CURSOR,
+ RumArchiveSessionsPage.JSON_PROPERTY_TOTAL_COUNT
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class RumArchiveSessionsPage {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_NEXT_CURSOR = "next_cursor";
+ private String nextCursor;
+
+ public static final String JSON_PROPERTY_TOTAL_COUNT = "total_count";
+ private Long totalCount;
+
+ public RumArchiveSessionsPage() {}
+
+ @JsonCreator
+ public RumArchiveSessionsPage(
+ @JsonProperty(required = true, value = JSON_PROPERTY_TOTAL_COUNT) Long totalCount) {
+ this.totalCount = totalCount;
+ }
+
+ public RumArchiveSessionsPage nextCursor(String nextCursor) {
+ this.nextCursor = nextCursor;
+ return this;
+ }
+
+ /**
+ * Opaque continuation cursor. Omitted when no further page is available.
+ *
+ * @return nextCursor
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_NEXT_CURSOR)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getNextCursor() {
+ return nextCursor;
+ }
+
+ public void setNextCursor(String nextCursor) {
+ this.nextCursor = nextCursor;
+ }
+
+ public RumArchiveSessionsPage totalCount(Long totalCount) {
+ this.totalCount = totalCount;
+ return this;
+ }
+
+ /**
+ * Search result count. Can be zero on continuation pages even when sessions are returned. Use
+ * next_cursor to determine whether more pages are available. minimum: 0
+ *
+ * @return totalCount
+ */
+ @JsonProperty(JSON_PROPERTY_TOTAL_COUNT)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public Long getTotalCount() {
+ return totalCount;
+ }
+
+ public void setTotalCount(Long totalCount) {
+ this.totalCount = totalCount;
+ }
+
+ /**
+ * 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 RumArchiveSessionsPage
+ */
+ @JsonAnySetter
+ public RumArchiveSessionsPage 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