diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml
index af969a3d7f0..840ac4eef97 100644
--- a/.generator/schemas/v2/openapi.yaml
+++ b/.generator/schemas/v2/openapi.yaml
@@ -44773,6 +44773,118 @@ components:
type: string
x-enum-varnames:
- PERMISSIONS
+ Playlist:
+ properties:
+ data:
+ $ref: '#/components/schemas/PlaylistData'
+ required:
+ - data
+ type: object
+ PlaylistArray:
+ properties:
+ data:
+ items:
+ $ref: '#/components/schemas/PlaylistData'
+ type: array
+ required:
+ - data
+ type: object
+ PlaylistData:
+ properties:
+ attributes:
+ $ref: '#/components/schemas/PlaylistDataAttributes'
+ id:
+ type: string
+ type:
+ $ref: '#/components/schemas/PlaylistDataType'
+ required:
+ - type
+ type: object
+ PlaylistDataAttributes:
+ properties:
+ created_at:
+ format: date-time
+ type: string
+ created_by:
+ $ref: '#/components/schemas/PlaylistDataAttributesCreatedBy'
+ description:
+ type: string
+ name:
+ example: My Playlist
+ type: string
+ session_count:
+ format: int64
+ type: integer
+ updated_at:
+ format: date-time
+ type: string
+ required:
+ - name
+ type: object
+ PlaylistDataAttributesCreatedBy:
+ properties:
+ handle:
+ example: john.doe@example.com
+ type: string
+ icon:
+ type: string
+ id:
+ example: 00000000-0000-0000-0000-000000000001
+ type: string
+ name:
+ type: string
+ uuid:
+ example: 00000000-0000-0000-0000-000000000001
+ type: string
+ required:
+ - handle
+ - id
+ - uuid
+ type: object
+ PlaylistDataType:
+ default: rum_replay_playlist
+ description: Rum replay playlist resource type.
+ enum:
+ - rum_replay_playlist
+ example: rum_replay_playlist
+ type: string
+ x-enum-varnames:
+ - RUM_REPLAY_PLAYLIST
+ PlaylistsSession:
+ properties:
+ data:
+ $ref: '#/components/schemas/PlaylistsSessionData'
+ required:
+ - data
+ type: object
+ PlaylistsSessionArray:
+ properties:
+ data:
+ items:
+ $ref: '#/components/schemas/PlaylistsSessionData'
+ type: array
+ required:
+ - data
+ type: object
+ PlaylistsSessionData:
+ properties:
+ attributes:
+ $ref: '#/components/schemas/PlaylistsSessionDataAttributes'
+ id:
+ type: string
+ type:
+ $ref: '#/components/schemas/ViewershipHistorySessionDataType'
+ required:
+ - type
+ type: object
+ PlaylistsSessionDataAttributes:
+ properties:
+ session_event:
+ additionalProperties: {}
+ type: object
+ track:
+ type: string
+ type: object
PostmortemAttachmentRequest:
properties:
data:
@@ -57433,6 +57545,25 @@ components:
required:
- data
type: object
+ SessionIdArray:
+ properties:
+ data:
+ items:
+ $ref: '#/components/schemas/SessionIdData'
+ type: array
+ required:
+ - data
+ type: object
+ SessionIdData:
+ properties:
+ id:
+ example: 00000000-0000-0000-0000-000000000001
+ type: string
+ type:
+ $ref: '#/components/schemas/ViewershipHistorySessionDataType'
+ required:
+ - type
+ type: object
Shift:
description: An on-call shift with its associated data and relationships.
example:
@@ -57943,6 +58074,178 @@ components:
type: string
x-enum-varnames:
- SLO_STATUS
+ Snapshot:
+ properties:
+ data:
+ $ref: '#/components/schemas/SnapshotData'
+ type: object
+ SnapshotArray:
+ properties:
+ data:
+ items:
+ $ref: '#/components/schemas/SnapshotData'
+ type: array
+ required:
+ - data
+ type: object
+ SnapshotCreateRequest:
+ properties:
+ data:
+ $ref: '#/components/schemas/SnapshotCreateRequestData'
+ required:
+ - data
+ type: object
+ SnapshotCreateRequestData:
+ properties:
+ attributes:
+ $ref: '#/components/schemas/SnapshotCreateRequestDataAttributes'
+ type:
+ $ref: '#/components/schemas/SnapshotUpdateRequestDataType'
+ required:
+ - type
+ type: object
+ SnapshotCreateRequestDataAttributes:
+ properties:
+ application_id:
+ example: aaaaaaaa-1111-2222-3333-bbbbbbbbbbbb
+ type: string
+ device_type:
+ example: desktop
+ type: string
+ event_id:
+ example: 11111111-2222-3333-4444-555555555555
+ type: string
+ is_device_type_selected_by_user:
+ example: false
+ type: boolean
+ session_id:
+ type: string
+ snapshot_name:
+ example: My Snapshot
+ type: string
+ start:
+ example: 0
+ format: int64
+ type: integer
+ view_id:
+ type: string
+ view_name:
+ example: /home
+ type: string
+ required:
+ - view_name
+ - device_type
+ - application_id
+ - snapshot_name
+ - event_id
+ - start
+ - is_device_type_selected_by_user
+ type: object
+ SnapshotData:
+ properties:
+ attributes:
+ $ref: '#/components/schemas/SnapshotDataAttributes'
+ id:
+ readOnly: true
+ type: string
+ type:
+ $ref: '#/components/schemas/SnapshotUpdateRequestDataType'
+ required:
+ - type
+ type: object
+ SnapshotDataAttributes:
+ properties:
+ application_id:
+ type: string
+ created_at:
+ format: date-time
+ readOnly: true
+ type: string
+ created_by:
+ readOnly: true
+ type: string
+ created_by_handle:
+ readOnly: true
+ type: string
+ created_by_user_id:
+ format: int64
+ readOnly: true
+ type: integer
+ device_type:
+ type: string
+ event_id:
+ type: string
+ is_device_type_selected_by_user:
+ type: boolean
+ modified_at:
+ format: date-time
+ readOnly: true
+ type: string
+ org_id:
+ format: int64
+ readOnly: true
+ type: integer
+ session_id:
+ type: string
+ snapshot_name:
+ type: string
+ start:
+ format: int64
+ type: integer
+ view_id:
+ type: string
+ view_name:
+ type: string
+ type: object
+ SnapshotUpdateRequest:
+ properties:
+ data:
+ $ref: '#/components/schemas/SnapshotUpdateRequestData'
+ required:
+ - data
+ type: object
+ SnapshotUpdateRequestData:
+ properties:
+ attributes:
+ $ref: '#/components/schemas/SnapshotUpdateRequestDataAttributes'
+ id:
+ example: 00000000-0000-0000-0000-000000000001
+ type: string
+ type:
+ $ref: '#/components/schemas/SnapshotUpdateRequestDataType'
+ required:
+ - type
+ type: object
+ SnapshotUpdateRequestDataAttributes:
+ properties:
+ event_id:
+ example: 11111111-2222-3333-4444-555555555555
+ type: string
+ is_device_type_selected_by_user:
+ example: false
+ type: boolean
+ session_id:
+ type: string
+ start:
+ example: 0
+ format: int64
+ type: integer
+ view_id:
+ type: string
+ required:
+ - event_id
+ - start
+ - is_device_type_selected_by_user
+ type: object
+ SnapshotUpdateRequestDataType:
+ default: snapshots
+ description: Snapshots resource type.
+ enum:
+ - snapshots
+ example: snapshots
+ type: string
+ x-enum-varnames:
+ - SNAPSHOTS
SoftwareCatalogTriggerWrapper:
description: Schema for a Software Catalog-based trigger.
properties:
@@ -65057,6 +65360,51 @@ components:
- CREATE
- UPDATE
- DELETE
+ ViewershipHistorySessionArray:
+ properties:
+ data:
+ items:
+ $ref: '#/components/schemas/ViewershipHistorySessionData'
+ type: array
+ required:
+ - data
+ type: object
+ ViewershipHistorySessionData:
+ properties:
+ attributes:
+ $ref: '#/components/schemas/ViewershipHistorySessionDataAttributes'
+ id:
+ type: string
+ type:
+ $ref: '#/components/schemas/ViewershipHistorySessionDataType'
+ required:
+ - type
+ type: object
+ ViewershipHistorySessionDataAttributes:
+ properties:
+ event_id:
+ type: string
+ last_watched_at:
+ example: '2026-01-13T17:15:53.208340Z'
+ format: date-time
+ type: string
+ session_event:
+ additionalProperties: {}
+ type: object
+ track:
+ type: string
+ required:
+ - last_watched_at
+ type: object
+ ViewershipHistorySessionDataType:
+ default: rum_replay_session
+ description: Rum replay session resource type.
+ enum:
+ - rum_replay_session
+ example: rum_replay_session
+ type: string
+ x-enum-varnames:
+ - RUM_REPLAY_SESSION
VirusTotalAPIKey:
description: The definition of the `VirusTotalAPIKey` object.
properties:
@@ -65545,6 +65893,104 @@ components:
- X_CONTENT_TYPE_HEADER_MISSING
- X_PATH_INJECTION
- XSS
+ Watch:
+ properties:
+ data:
+ $ref: '#/components/schemas/WatchData'
+ required:
+ - data
+ type: object
+ WatchData:
+ properties:
+ attributes:
+ $ref: '#/components/schemas/WatchDataAttributes'
+ id:
+ type: string
+ type:
+ $ref: '#/components/schemas/WatchDataType'
+ required:
+ - type
+ type: object
+ WatchDataAttributes:
+ properties:
+ application_id:
+ example: aaaaaaaa-1111-2222-3333-bbbbbbbbbbbb
+ type: string
+ data_source:
+ type: string
+ event_id:
+ example: 11111111-2222-3333-4444-555555555555
+ type: string
+ timestamp:
+ example: '2026-01-13T17:15:53.208340Z'
+ format: date-time
+ type: string
+ required:
+ - application_id
+ - event_id
+ - timestamp
+ type: object
+ WatchDataType:
+ default: rum_replay_watch
+ description: Rum replay watch resource type.
+ enum:
+ - rum_replay_watch
+ example: rum_replay_watch
+ type: string
+ x-enum-varnames:
+ - RUM_REPLAY_WATCH
+ WatcherArray:
+ properties:
+ data:
+ items:
+ $ref: '#/components/schemas/WatcherData'
+ type: array
+ required:
+ - data
+ type: object
+ WatcherData:
+ properties:
+ attributes:
+ $ref: '#/components/schemas/WatcherDataAttributes'
+ id:
+ type: string
+ type:
+ $ref: '#/components/schemas/WatcherDataType'
+ required:
+ - type
+ type: object
+ WatcherDataAttributes:
+ properties:
+ handle:
+ example: john.doe@example.com
+ type: string
+ icon:
+ type: string
+ last_watched_at:
+ example: '2026-01-13T17:15:53.208340Z'
+ format: date-time
+ type: string
+ name:
+ type: string
+ watch_count:
+ example: 0
+ format: int32
+ maximum: 2147483647
+ type: integer
+ required:
+ - handle
+ - last_watched_at
+ - watch_count
+ type: object
+ WatcherDataType:
+ default: rum_replay_watcher
+ description: Rum replay watcher resource type.
+ enum:
+ - rum_replay_watcher
+ example: rum_replay_watcher
+ type: string
+ x-enum-varnames:
+ - RUM_REPLAY_WATCHER
Weekday:
description: A day of the week.
enum:
@@ -87922,6 +88368,134 @@ paths:
tags:
- CSM Threats
x-codegen-request-body-name: body
+ /api/v2/replay/heatmap/snapshots:
+ get:
+ description: List heatmap snapshots.
+ operationId: ListReplayHeatmapSnapshots
+ parameters:
+ - description: Device type to filter snapshots.
+ in: query
+ name: filter[device_type]
+ schema:
+ example: desktop
+ type: string
+ - description: View name to filter snapshots.
+ in: query
+ name: filter[view_name]
+ required: true
+ schema:
+ example: /home
+ type: string
+ - description: Maximum number of snapshots to return.
+ in: query
+ name: page[limit]
+ schema:
+ example: 10
+ type: integer
+ - description: Filter by application ID.
+ in: query
+ name: filter[application_id]
+ schema:
+ example: aaaaaaaa-1111-2222-3333-bbbbbbbbbbbb
+ type: string
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SnapshotArray'
+ description: OK
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ: []
+ summary: List replay heatmap snapshots
+ tags:
+ - Rum Replay Heatmaps
+ post:
+ description: Create a heatmap snapshot.
+ operationId: CreateReplayHeatmapSnapshot
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SnapshotCreateRequest'
+ required: true
+ responses:
+ '201':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Snapshot'
+ description: Created
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ: []
+ summary: Create replay heatmap snapshot
+ tags:
+ - Rum Replay Heatmaps
+ /api/v2/replay/heatmap/snapshots/{snapshot_id}:
+ delete:
+ description: Delete a heatmap snapshot.
+ operationId: DeleteReplayHeatmapSnapshot
+ parameters:
+ - description: Unique identifier of the heatmap snapshot.
+ in: path
+ name: snapshot_id
+ required: true
+ schema:
+ example: 00000000-0000-0000-0000-000000000001
+ type: string
+ responses:
+ '204':
+ description: No Content
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ: []
+ summary: Delete replay heatmap snapshot
+ tags:
+ - Rum Replay Heatmaps
+ patch:
+ description: Update a heatmap snapshot.
+ operationId: UpdateReplayHeatmapSnapshot
+ parameters:
+ - description: Unique identifier of the heatmap snapshot.
+ in: path
+ name: snapshot_id
+ required: true
+ schema:
+ example: 00000000-0000-0000-0000-000000000001
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SnapshotUpdateRequest'
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Snapshot'
+ description: OK
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ: []
+ summary: Update replay heatmap snapshot
+ tags:
+ - Rum Replay Heatmaps
/api/v2/restriction_policy/{resource_id}:
delete:
description: Deletes the restriction policy associated with a specified resource.
@@ -89321,6 +89895,533 @@ paths:
operator: OR
permissions:
- rum_apps_read
+ /api/v2/rum/replay/playlists:
+ get:
+ description: List playlists.
+ operationId: ListRumReplayPlaylists
+ parameters:
+ - description: Filter playlists by the UUID of the user who created them.
+ in: query
+ name: filter[created_by_uuid]
+ schema:
+ example: 00000000-0000-0000-0000-000000000001
+ type: string
+ - description: Search query to filter playlists by name.
+ in: query
+ name: filter[query]
+ schema:
+ example: my playlist
+ type: string
+ - description: Page number for pagination (0-indexed).
+ in: query
+ name: page[number]
+ schema:
+ example: 0
+ type: integer
+ - description: Number of items per page.
+ in: query
+ name: page[size]
+ schema:
+ example: 25
+ type: integer
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/PlaylistArray'
+ description: OK
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ: []
+ summary: List rum replay playlists
+ tags:
+ - Rum Replay Playlists
+ post:
+ description: Create a playlist.
+ operationId: CreateRumReplayPlaylist
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Playlist'
+ required: true
+ responses:
+ '201':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Playlist'
+ description: Created
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ: []
+ summary: Create rum replay playlist
+ tags:
+ - Rum Replay Playlists
+ /api/v2/rum/replay/playlists/{playlist_id}:
+ delete:
+ description: Delete a playlist.
+ operationId: DeleteRumReplayPlaylist
+ parameters:
+ - description: Unique identifier of the playlist.
+ in: path
+ name: playlist_id
+ required: true
+ schema:
+ example: 1234567
+ type: integer
+ responses:
+ '204':
+ description: No Content
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ: []
+ summary: Delete rum replay playlist
+ tags:
+ - Rum Replay Playlists
+ get:
+ description: Get a playlist.
+ operationId: GetRumReplayPlaylist
+ parameters:
+ - description: Unique identifier of the playlist.
+ in: path
+ name: playlist_id
+ required: true
+ schema:
+ example: 1234567
+ type: integer
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Playlist'
+ description: OK
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ: []
+ summary: Get rum replay playlist
+ tags:
+ - Rum Replay Playlists
+ put:
+ description: Update a playlist.
+ operationId: UpdateRumReplayPlaylist
+ parameters:
+ - description: Unique identifier of the playlist.
+ in: path
+ name: playlist_id
+ required: true
+ schema:
+ example: 1234567
+ type: integer
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Playlist'
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Playlist'
+ description: OK
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ: []
+ summary: Update rum replay playlist
+ tags:
+ - Rum Replay Playlists
+ /api/v2/rum/replay/playlists/{playlist_id}/sessions:
+ delete:
+ description: Remove sessions from a playlist.
+ operationId: BulkRemoveRumReplayPlaylistSessions
+ parameters:
+ - description: Unique identifier of the playlist.
+ in: path
+ name: playlist_id
+ required: true
+ schema:
+ example: 1234567
+ type: integer
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SessionIdArray'
+ required: true
+ responses:
+ '204':
+ description: No Content
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ: []
+ summary: Bulk remove rum replay playlist sessions
+ tags:
+ - Rum Replay Playlists
+ get:
+ description: List sessions in a playlist.
+ operationId: ListRumReplayPlaylistSessions
+ parameters:
+ - description: Unique identifier of the playlist.
+ in: path
+ name: playlist_id
+ required: true
+ schema:
+ example: 1234567
+ type: integer
+ - description: Page number for pagination (0-indexed).
+ in: query
+ name: page[number]
+ schema:
+ example: 0
+ type: integer
+ - description: Number of items per page.
+ in: query
+ name: page[size]
+ schema:
+ example: 25
+ type: integer
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/PlaylistsSessionArray'
+ description: OK
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ: []
+ summary: List rum replay playlist sessions
+ tags:
+ - Rum Replay Playlists
+ /api/v2/rum/replay/playlists/{playlist_id}/sessions/{session_id}:
+ delete:
+ description: Remove a session from a playlist.
+ operationId: RemoveRumReplaySessionFromPlaylist
+ parameters:
+ - description: Unique identifier of the playlist.
+ in: path
+ name: playlist_id
+ required: true
+ schema:
+ example: 1234567
+ type: integer
+ - description: Unique identifier of the session.
+ in: path
+ name: session_id
+ required: true
+ schema:
+ example: 00000000-0000-0000-0000-000000000001
+ type: string
+ responses:
+ '204':
+ description: No Content
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ: []
+ summary: Remove rum replay session from playlist
+ tags:
+ - Rum Replay Playlists
+ put:
+ description: Add a session to a playlist.
+ operationId: AddRumReplaySessionToPlaylist
+ parameters:
+ - description: 'Data source type. Valid values: ''rum'' or ''product_analytics''.
+ Defaults to ''rum''.'
+ in: query
+ name: data_source
+ schema:
+ example: rum
+ type: string
+ - description: Server-side timestamp in milliseconds.
+ in: query
+ name: ts
+ required: true
+ schema:
+ example: 1704067200000
+ format: int64
+ type: integer
+ - description: Unique identifier of the playlist.
+ in: path
+ name: playlist_id
+ required: true
+ schema:
+ example: 1234567
+ type: integer
+ - description: Unique identifier of the session.
+ in: path
+ name: session_id
+ required: true
+ schema:
+ example: 00000000-0000-0000-0000-000000000001
+ type: string
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/PlaylistsSession'
+ description: OK
+ '201':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/PlaylistsSession'
+ description: Created
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ: []
+ summary: Add rum replay session to playlist
+ tags:
+ - Rum Replay Playlists
+ /api/v2/rum/replay/sessions/{session_id}/views/{view_id}/segments:
+ get:
+ description: Get segments for a view.
+ operationId: GetSegments
+ parameters:
+ - description: Unique identifier of the view.
+ in: path
+ name: view_id
+ required: true
+ schema:
+ example: 00000000-0000-0000-0000-000000000002
+ type: string
+ - description: 'Storage source: ''event_platform'' or ''blob''.'
+ in: query
+ name: source
+ schema:
+ example: event_platform
+ type: string
+ - description: Unique identifier of the session.
+ in: path
+ name: session_id
+ required: true
+ schema:
+ example: 00000000-0000-0000-0000-000000000001
+ type: string
+ - description: Server-side timestamp in milliseconds.
+ in: query
+ name: ts
+ schema:
+ example: 1704067200000
+ format: int64
+ type: integer
+ - description: Maximum size in bytes for the segment list.
+ in: query
+ name: max_list_size
+ schema:
+ example: 1048576
+ type: integer
+ - description: Paging token for pagination.
+ in: query
+ name: paging
+ schema:
+ example: eyJuZXh0IjoiYWJjMTIzIn0
+ type: string
+ responses:
+ '200':
+ description: OK
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ: []
+ summary: Get segments
+ tags:
+ - Rum Replay Sessions
+ /api/v2/rum/replay/sessions/{session_id}/watchers:
+ get:
+ description: List session watchers.
+ operationId: ListRumReplaySessionWatchers
+ parameters:
+ - description: Number of items per page.
+ in: query
+ name: page[size]
+ schema:
+ example: 25
+ type: integer
+ - description: Page number for pagination (0-indexed).
+ in: query
+ name: page[number]
+ schema:
+ example: 0
+ type: integer
+ - description: Unique identifier of the session.
+ in: path
+ name: session_id
+ required: true
+ schema:
+ example: 00000000-0000-0000-0000-000000000001
+ type: string
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/WatcherArray'
+ description: OK
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ: []
+ summary: List rum replay session watchers
+ tags:
+ - Rum Replay Viewership
+ /api/v2/rum/replay/sessions/{session_id}/watches:
+ delete:
+ description: Delete session watch history.
+ operationId: DeleteRumReplaySessionWatch
+ parameters:
+ - description: Unique identifier of the session.
+ in: path
+ name: session_id
+ required: true
+ schema:
+ example: 00000000-0000-0000-0000-000000000001
+ type: string
+ responses:
+ '204':
+ description: No Content
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ: []
+ summary: Delete rum replay session watch
+ tags:
+ - Rum Replay Viewership
+ post:
+ description: Record a session watch.
+ operationId: CreateRumReplaySessionWatch
+ parameters:
+ - description: Unique identifier of the session.
+ in: path
+ name: session_id
+ required: true
+ schema:
+ example: 00000000-0000-0000-0000-000000000001
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Watch'
+ required: true
+ responses:
+ '201':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Watch'
+ description: Created
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ: []
+ summary: Create rum replay session watch
+ tags:
+ - Rum Replay Viewership
+ /api/v2/rum/replay/viewership-history/sessions:
+ get:
+ description: List watched sessions.
+ operationId: ListRumReplayViewershipHistorySessions
+ parameters:
+ - description: Start timestamp in milliseconds for watched_at filter.
+ in: query
+ name: filter[watched_at][start]
+ schema:
+ example: 1704067200000
+ format: int64
+ type: integer
+ - description: Page number for pagination (0-indexed).
+ in: query
+ name: page[number]
+ schema:
+ example: 0
+ type: integer
+ - description: Filter by user UUID. Defaults to current user if not specified.
+ in: query
+ name: filter[created_by]
+ schema:
+ example: 00000000-0000-0000-0000-000000000001
+ type: string
+ - description: End timestamp in milliseconds for watched_at filter.
+ in: query
+ name: filter[watched_at][end]
+ schema:
+ example: 1704153600000
+ format: int64
+ type: integer
+ - description: Comma-separated list of session IDs to filter by.
+ in: query
+ name: filter[session_ids]
+ schema:
+ example: 11111111-2222-3333-4444-555555555555,22222222-3333-4444-5555-666666666666
+ type: string
+ - description: Number of items per page.
+ in: query
+ name: page[size]
+ schema:
+ example: 25
+ type: integer
+ - description: Filter by application ID.
+ in: query
+ name: filter[application_id]
+ schema:
+ example: aaaaaaaa-1111-2222-3333-bbbbbbbbbbbb
+ type: string
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ViewershipHistorySessionArray'
+ description: OK
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ: []
+ summary: List rum replay viewership history sessions
+ tags:
+ - Rum Replay Viewership
/api/v2/saml_configurations/idp_metadata:
post:
description: 'Endpoint for uploading IdP metadata for SAML setup.
@@ -100685,6 +101786,18 @@ tags:
description: Find out more at
url: https://docs.datadoghq.com/real_user_monitoring/platform/generate_metrics/
name: Rum Metrics
+- description: Manage heatmap snapshots for RUM replay sessions. Create, update, delete,
+ and retrieve snapshots to visualize user interactions on specific views.
+ name: Rum Replay Heatmaps
+- description: Create and manage playlists of RUM replay sessions. Organize, categorize,
+ and share collections of replay sessions for analysis and collaboration.
+ name: Rum Replay Playlists
+- description: Retrieve segments for RUM replay sessions. Access session replay data
+ stored in event platform or blob storage.
+ name: Rum Replay Sessions
+- description: Track and manage RUM replay session viewership. Monitor who watches
+ replay sessions and maintain watch history for audit and analytics purposes.
+ name: Rum Replay Viewership
- description: Manage retention filters through [Manage Applications](https://app.datadoghq.com/rum/list)
of RUM for your organization.
name: Rum Retention Filters
diff --git a/examples/v2/rum-replay-heatmaps/CreateReplayHeatmapSnapshot.java b/examples/v2/rum-replay-heatmaps/CreateReplayHeatmapSnapshot.java
new file mode 100644
index 00000000000..7cd6723b8d9
--- /dev/null
+++ b/examples/v2/rum-replay-heatmaps/CreateReplayHeatmapSnapshot.java
@@ -0,0 +1,43 @@
+// Create replay heatmap snapshot returns "Created" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.RumReplayHeatmapsApi;
+import com.datadog.api.client.v2.model.Snapshot;
+import com.datadog.api.client.v2.model.SnapshotCreateRequest;
+import com.datadog.api.client.v2.model.SnapshotCreateRequestData;
+import com.datadog.api.client.v2.model.SnapshotCreateRequestDataAttributes;
+import com.datadog.api.client.v2.model.SnapshotUpdateRequestDataType;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ RumReplayHeatmapsApi apiInstance = new RumReplayHeatmapsApi(defaultClient);
+
+ SnapshotCreateRequest body =
+ new SnapshotCreateRequest()
+ .data(
+ new SnapshotCreateRequestData()
+ .attributes(
+ new SnapshotCreateRequestDataAttributes()
+ .applicationId("aaaaaaaa-1111-2222-3333-bbbbbbbbbbbb")
+ .deviceType("desktop")
+ .eventId("11111111-2222-3333-4444-555555555555")
+ .isDeviceTypeSelectedByUser(false)
+ .snapshotName("My Snapshot")
+ .start(0L)
+ .viewName("/home"))
+ .type(SnapshotUpdateRequestDataType.SNAPSHOTS));
+
+ try {
+ Snapshot result = apiInstance.createReplayHeatmapSnapshot(body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling RumReplayHeatmapsApi#createReplayHeatmapSnapshot");
+ 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-replay-heatmaps/DeleteReplayHeatmapSnapshot.java b/examples/v2/rum-replay-heatmaps/DeleteReplayHeatmapSnapshot.java
new file mode 100644
index 00000000000..bdc125dd28c
--- /dev/null
+++ b/examples/v2/rum-replay-heatmaps/DeleteReplayHeatmapSnapshot.java
@@ -0,0 +1,22 @@
+// Delete replay heatmap snapshot returns "No Content" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.RumReplayHeatmapsApi;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ RumReplayHeatmapsApi apiInstance = new RumReplayHeatmapsApi(defaultClient);
+
+ try {
+ apiInstance.deleteReplayHeatmapSnapshot("00000000-0000-0000-0000-000000000001");
+ } catch (ApiException e) {
+ System.err.println("Exception when calling RumReplayHeatmapsApi#deleteReplayHeatmapSnapshot");
+ 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-replay-heatmaps/ListReplayHeatmapSnapshots.java b/examples/v2/rum-replay-heatmaps/ListReplayHeatmapSnapshots.java
new file mode 100644
index 00000000000..976da76a730
--- /dev/null
+++ b/examples/v2/rum-replay-heatmaps/ListReplayHeatmapSnapshots.java
@@ -0,0 +1,24 @@
+// List replay heatmap snapshots returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.RumReplayHeatmapsApi;
+import com.datadog.api.client.v2.model.SnapshotArray;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ RumReplayHeatmapsApi apiInstance = new RumReplayHeatmapsApi(defaultClient);
+
+ try {
+ SnapshotArray result = apiInstance.listReplayHeatmapSnapshots("/home");
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling RumReplayHeatmapsApi#listReplayHeatmapSnapshots");
+ 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-replay-heatmaps/UpdateReplayHeatmapSnapshot.java b/examples/v2/rum-replay-heatmaps/UpdateReplayHeatmapSnapshot.java
new file mode 100644
index 00000000000..1690b396697
--- /dev/null
+++ b/examples/v2/rum-replay-heatmaps/UpdateReplayHeatmapSnapshot.java
@@ -0,0 +1,41 @@
+// Update replay heatmap snapshot returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.RumReplayHeatmapsApi;
+import com.datadog.api.client.v2.model.Snapshot;
+import com.datadog.api.client.v2.model.SnapshotUpdateRequest;
+import com.datadog.api.client.v2.model.SnapshotUpdateRequestData;
+import com.datadog.api.client.v2.model.SnapshotUpdateRequestDataAttributes;
+import com.datadog.api.client.v2.model.SnapshotUpdateRequestDataType;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ RumReplayHeatmapsApi apiInstance = new RumReplayHeatmapsApi(defaultClient);
+
+ SnapshotUpdateRequest body =
+ new SnapshotUpdateRequest()
+ .data(
+ new SnapshotUpdateRequestData()
+ .attributes(
+ new SnapshotUpdateRequestDataAttributes()
+ .eventId("11111111-2222-3333-4444-555555555555")
+ .isDeviceTypeSelectedByUser(false)
+ .start(0L))
+ .id("00000000-0000-0000-0000-000000000001")
+ .type(SnapshotUpdateRequestDataType.SNAPSHOTS));
+
+ try {
+ Snapshot result =
+ apiInstance.updateReplayHeatmapSnapshot("00000000-0000-0000-0000-000000000001", body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling RumReplayHeatmapsApi#updateReplayHeatmapSnapshot");
+ 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-replay-playlists/AddRumReplaySessionToPlaylist.java b/examples/v2/rum-replay-playlists/AddRumReplaySessionToPlaylist.java
new file mode 100644
index 00000000000..c7d6e93ebb4
--- /dev/null
+++ b/examples/v2/rum-replay-playlists/AddRumReplaySessionToPlaylist.java
@@ -0,0 +1,27 @@
+// Add rum replay session to playlist returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.RumReplayPlaylistsApi;
+import com.datadog.api.client.v2.model.PlaylistsSession;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ RumReplayPlaylistsApi apiInstance = new RumReplayPlaylistsApi(defaultClient);
+
+ try {
+ PlaylistsSession result =
+ apiInstance.addRumReplaySessionToPlaylist(
+ 1704067200000L, 1234567, "00000000-0000-0000-0000-000000000001");
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println(
+ "Exception when calling RumReplayPlaylistsApi#addRumReplaySessionToPlaylist");
+ 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-replay-playlists/BulkRemoveRumReplayPlaylistSessions.java b/examples/v2/rum-replay-playlists/BulkRemoveRumReplayPlaylistSessions.java
new file mode 100644
index 00000000000..5088a739a31
--- /dev/null
+++ b/examples/v2/rum-replay-playlists/BulkRemoveRumReplayPlaylistSessions.java
@@ -0,0 +1,35 @@
+// Bulk remove rum replay playlist sessions returns "No Content" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.RumReplayPlaylistsApi;
+import com.datadog.api.client.v2.model.SessionIdArray;
+import com.datadog.api.client.v2.model.SessionIdData;
+import com.datadog.api.client.v2.model.ViewershipHistorySessionDataType;
+import java.util.Collections;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ RumReplayPlaylistsApi apiInstance = new RumReplayPlaylistsApi(defaultClient);
+
+ SessionIdArray body =
+ new SessionIdArray()
+ .data(
+ Collections.singletonList(
+ new SessionIdData()
+ .id("00000000-0000-0000-0000-000000000001")
+ .type(ViewershipHistorySessionDataType.RUM_REPLAY_SESSION)));
+
+ try {
+ apiInstance.bulkRemoveRumReplayPlaylistSessions(1234567, body);
+ } catch (ApiException e) {
+ System.err.println(
+ "Exception when calling RumReplayPlaylistsApi#bulkRemoveRumReplayPlaylistSessions");
+ 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-replay-playlists/CreateRumReplayPlaylist.java b/examples/v2/rum-replay-playlists/CreateRumReplayPlaylist.java
new file mode 100644
index 00000000000..ad3e4655b7f
--- /dev/null
+++ b/examples/v2/rum-replay-playlists/CreateRumReplayPlaylist.java
@@ -0,0 +1,42 @@
+// Create rum replay playlist returns "Created" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.RumReplayPlaylistsApi;
+import com.datadog.api.client.v2.model.Playlist;
+import com.datadog.api.client.v2.model.PlaylistData;
+import com.datadog.api.client.v2.model.PlaylistDataAttributes;
+import com.datadog.api.client.v2.model.PlaylistDataAttributesCreatedBy;
+import com.datadog.api.client.v2.model.PlaylistDataType;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ RumReplayPlaylistsApi apiInstance = new RumReplayPlaylistsApi(defaultClient);
+
+ Playlist body =
+ new Playlist()
+ .data(
+ new PlaylistData()
+ .attributes(
+ new PlaylistDataAttributes()
+ .createdBy(
+ new PlaylistDataAttributesCreatedBy()
+ .handle("john.doe@example.com")
+ .id("00000000-0000-0000-0000-000000000001")
+ .uuid("00000000-0000-0000-0000-000000000001"))
+ .name("My Playlist"))
+ .type(PlaylistDataType.RUM_REPLAY_PLAYLIST));
+
+ try {
+ Playlist result = apiInstance.createRumReplayPlaylist(body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling RumReplayPlaylistsApi#createRumReplayPlaylist");
+ 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-replay-playlists/DeleteRumReplayPlaylist.java b/examples/v2/rum-replay-playlists/DeleteRumReplayPlaylist.java
new file mode 100644
index 00000000000..592938cd19f
--- /dev/null
+++ b/examples/v2/rum-replay-playlists/DeleteRumReplayPlaylist.java
@@ -0,0 +1,22 @@
+// Delete rum replay playlist returns "No Content" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.RumReplayPlaylistsApi;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ RumReplayPlaylistsApi apiInstance = new RumReplayPlaylistsApi(defaultClient);
+
+ try {
+ apiInstance.deleteRumReplayPlaylist(1234567);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling RumReplayPlaylistsApi#deleteRumReplayPlaylist");
+ 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-replay-playlists/GetRumReplayPlaylist.java b/examples/v2/rum-replay-playlists/GetRumReplayPlaylist.java
new file mode 100644
index 00000000000..82680706bf4
--- /dev/null
+++ b/examples/v2/rum-replay-playlists/GetRumReplayPlaylist.java
@@ -0,0 +1,24 @@
+// Get rum replay playlist returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.RumReplayPlaylistsApi;
+import com.datadog.api.client.v2.model.Playlist;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ RumReplayPlaylistsApi apiInstance = new RumReplayPlaylistsApi(defaultClient);
+
+ try {
+ Playlist result = apiInstance.getRumReplayPlaylist(1234567);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling RumReplayPlaylistsApi#getRumReplayPlaylist");
+ 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-replay-playlists/ListRumReplayPlaylistSessions.java b/examples/v2/rum-replay-playlists/ListRumReplayPlaylistSessions.java
new file mode 100644
index 00000000000..657b4c8eb07
--- /dev/null
+++ b/examples/v2/rum-replay-playlists/ListRumReplayPlaylistSessions.java
@@ -0,0 +1,25 @@
+// List rum replay playlist sessions returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.RumReplayPlaylistsApi;
+import com.datadog.api.client.v2.model.PlaylistsSessionArray;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ RumReplayPlaylistsApi apiInstance = new RumReplayPlaylistsApi(defaultClient);
+
+ try {
+ PlaylistsSessionArray result = apiInstance.listRumReplayPlaylistSessions(1234567);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println(
+ "Exception when calling RumReplayPlaylistsApi#listRumReplayPlaylistSessions");
+ 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-replay-playlists/ListRumReplayPlaylists.java b/examples/v2/rum-replay-playlists/ListRumReplayPlaylists.java
new file mode 100644
index 00000000000..36c9a4ad076
--- /dev/null
+++ b/examples/v2/rum-replay-playlists/ListRumReplayPlaylists.java
@@ -0,0 +1,24 @@
+// List rum replay playlists returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.RumReplayPlaylistsApi;
+import com.datadog.api.client.v2.model.PlaylistArray;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ RumReplayPlaylistsApi apiInstance = new RumReplayPlaylistsApi(defaultClient);
+
+ try {
+ PlaylistArray result = apiInstance.listRumReplayPlaylists();
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling RumReplayPlaylistsApi#listRumReplayPlaylists");
+ 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-replay-playlists/RemoveRumReplaySessionFromPlaylist.java b/examples/v2/rum-replay-playlists/RemoveRumReplaySessionFromPlaylist.java
new file mode 100644
index 00000000000..e486a9d493e
--- /dev/null
+++ b/examples/v2/rum-replay-playlists/RemoveRumReplaySessionFromPlaylist.java
@@ -0,0 +1,24 @@
+// Remove rum replay session from playlist returns "No Content" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.RumReplayPlaylistsApi;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ RumReplayPlaylistsApi apiInstance = new RumReplayPlaylistsApi(defaultClient);
+
+ try {
+ apiInstance.removeRumReplaySessionFromPlaylist(
+ 1234567, "00000000-0000-0000-0000-000000000001");
+ } catch (ApiException e) {
+ System.err.println(
+ "Exception when calling RumReplayPlaylistsApi#removeRumReplaySessionFromPlaylist");
+ 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-replay-playlists/UpdateRumReplayPlaylist.java b/examples/v2/rum-replay-playlists/UpdateRumReplayPlaylist.java
new file mode 100644
index 00000000000..eb7bfd0172a
--- /dev/null
+++ b/examples/v2/rum-replay-playlists/UpdateRumReplayPlaylist.java
@@ -0,0 +1,42 @@
+// Update rum replay playlist returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.RumReplayPlaylistsApi;
+import com.datadog.api.client.v2.model.Playlist;
+import com.datadog.api.client.v2.model.PlaylistData;
+import com.datadog.api.client.v2.model.PlaylistDataAttributes;
+import com.datadog.api.client.v2.model.PlaylistDataAttributesCreatedBy;
+import com.datadog.api.client.v2.model.PlaylistDataType;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ RumReplayPlaylistsApi apiInstance = new RumReplayPlaylistsApi(defaultClient);
+
+ Playlist body =
+ new Playlist()
+ .data(
+ new PlaylistData()
+ .attributes(
+ new PlaylistDataAttributes()
+ .createdBy(
+ new PlaylistDataAttributesCreatedBy()
+ .handle("john.doe@example.com")
+ .id("00000000-0000-0000-0000-000000000001")
+ .uuid("00000000-0000-0000-0000-000000000001"))
+ .name("My Playlist"))
+ .type(PlaylistDataType.RUM_REPLAY_PLAYLIST));
+
+ try {
+ Playlist result = apiInstance.updateRumReplayPlaylist(1234567, body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling RumReplayPlaylistsApi#updateRumReplayPlaylist");
+ 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-replay-sessions/GetSegments.java b/examples/v2/rum-replay-sessions/GetSegments.java
new file mode 100644
index 00000000000..322352f0c97
--- /dev/null
+++ b/examples/v2/rum-replay-sessions/GetSegments.java
@@ -0,0 +1,23 @@
+// Get segments returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.RumReplaySessionsApi;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ RumReplaySessionsApi apiInstance = new RumReplaySessionsApi(defaultClient);
+
+ try {
+ apiInstance.getSegments(
+ "00000000-0000-0000-0000-000000000002", "00000000-0000-0000-0000-000000000001");
+ } catch (ApiException e) {
+ System.err.println("Exception when calling RumReplaySessionsApi#getSegments");
+ 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-replay-viewership/CreateRumReplaySessionWatch.java b/examples/v2/rum-replay-viewership/CreateRumReplaySessionWatch.java
new file mode 100644
index 00000000000..05b8c82a21d
--- /dev/null
+++ b/examples/v2/rum-replay-viewership/CreateRumReplaySessionWatch.java
@@ -0,0 +1,41 @@
+// Create rum replay session watch returns "Created" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.RumReplayViewershipApi;
+import com.datadog.api.client.v2.model.Watch;
+import com.datadog.api.client.v2.model.WatchData;
+import com.datadog.api.client.v2.model.WatchDataAttributes;
+import com.datadog.api.client.v2.model.WatchDataType;
+import java.time.OffsetDateTime;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ RumReplayViewershipApi apiInstance = new RumReplayViewershipApi(defaultClient);
+
+ Watch body =
+ new Watch()
+ .data(
+ new WatchData()
+ .attributes(
+ new WatchDataAttributes()
+ .applicationId("aaaaaaaa-1111-2222-3333-bbbbbbbbbbbb")
+ .eventId("11111111-2222-3333-4444-555555555555")
+ .timestamp(OffsetDateTime.parse("2026-01-13T17:15:53.208340Z")))
+ .type(WatchDataType.RUM_REPLAY_WATCH));
+
+ try {
+ Watch result =
+ apiInstance.createRumReplaySessionWatch("00000000-0000-0000-0000-000000000001", body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println(
+ "Exception when calling RumReplayViewershipApi#createRumReplaySessionWatch");
+ 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-replay-viewership/DeleteRumReplaySessionWatch.java b/examples/v2/rum-replay-viewership/DeleteRumReplaySessionWatch.java
new file mode 100644
index 00000000000..8cdb823d2a7
--- /dev/null
+++ b/examples/v2/rum-replay-viewership/DeleteRumReplaySessionWatch.java
@@ -0,0 +1,23 @@
+// Delete rum replay session watch returns "No Content" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.RumReplayViewershipApi;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ RumReplayViewershipApi apiInstance = new RumReplayViewershipApi(defaultClient);
+
+ try {
+ apiInstance.deleteRumReplaySessionWatch("00000000-0000-0000-0000-000000000001");
+ } catch (ApiException e) {
+ System.err.println(
+ "Exception when calling RumReplayViewershipApi#deleteRumReplaySessionWatch");
+ 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-replay-viewership/ListRumReplaySessionWatchers.java b/examples/v2/rum-replay-viewership/ListRumReplaySessionWatchers.java
new file mode 100644
index 00000000000..791a087a1e3
--- /dev/null
+++ b/examples/v2/rum-replay-viewership/ListRumReplaySessionWatchers.java
@@ -0,0 +1,26 @@
+// List rum replay session watchers returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.RumReplayViewershipApi;
+import com.datadog.api.client.v2.model.WatcherArray;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ RumReplayViewershipApi apiInstance = new RumReplayViewershipApi(defaultClient);
+
+ try {
+ WatcherArray result =
+ apiInstance.listRumReplaySessionWatchers("00000000-0000-0000-0000-000000000001");
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println(
+ "Exception when calling RumReplayViewershipApi#listRumReplaySessionWatchers");
+ 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-replay-viewership/ListRumReplayViewershipHistorySessions.java b/examples/v2/rum-replay-viewership/ListRumReplayViewershipHistorySessions.java
new file mode 100644
index 00000000000..e2ce0709b44
--- /dev/null
+++ b/examples/v2/rum-replay-viewership/ListRumReplayViewershipHistorySessions.java
@@ -0,0 +1,25 @@
+// List rum replay viewership history sessions returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.RumReplayViewershipApi;
+import com.datadog.api.client.v2.model.ViewershipHistorySessionArray;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ RumReplayViewershipApi apiInstance = new RumReplayViewershipApi(defaultClient);
+
+ try {
+ ViewershipHistorySessionArray result = apiInstance.listRumReplayViewershipHistorySessions();
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println(
+ "Exception when calling RumReplayViewershipApi#listRumReplayViewershipHistorySessions");
+ 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/RumReplayHeatmapsApi.java b/src/main/java/com/datadog/api/client/v2/api/RumReplayHeatmapsApi.java
new file mode 100644
index 00000000000..ff626f38a0b
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/api/RumReplayHeatmapsApi.java
@@ -0,0 +1,712 @@
+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.Snapshot;
+import com.datadog.api.client.v2.model.SnapshotArray;
+import com.datadog.api.client.v2.model.SnapshotCreateRequest;
+import com.datadog.api.client.v2.model.SnapshotUpdateRequest;
+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.concurrent.CompletableFuture;
+
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class RumReplayHeatmapsApi {
+ private ApiClient apiClient;
+
+ public RumReplayHeatmapsApi() {
+ this(ApiClient.getDefaultApiClient());
+ }
+
+ public RumReplayHeatmapsApi(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 replay heatmap snapshot.
+ *
+ *
See {@link #createReplayHeatmapSnapshotWithHttpInfo}.
+ *
+ * @param body (required)
+ * @return Snapshot
+ * @throws ApiException if fails to make API call
+ */
+ public Snapshot createReplayHeatmapSnapshot(SnapshotCreateRequest body) throws ApiException {
+ return createReplayHeatmapSnapshotWithHttpInfo(body).getData();
+ }
+
+ /**
+ * Create replay heatmap snapshot.
+ *
+ *
See {@link #createReplayHeatmapSnapshotWithHttpInfoAsync}.
+ *
+ * @param body (required)
+ * @return CompletableFuture<Snapshot>
+ */
+ public CompletableFuture createReplayHeatmapSnapshotAsync(SnapshotCreateRequest body) {
+ return createReplayHeatmapSnapshotWithHttpInfoAsync(body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Create a heatmap snapshot.
+ *
+ * @param body (required)
+ * @return ApiResponse<Snapshot>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 201 | Created | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse createReplayHeatmapSnapshotWithHttpInfo(SnapshotCreateRequest 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 createReplayHeatmapSnapshot");
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/replay/heatmap/snapshots";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.RumReplayHeatmapsApi.createReplayHeatmapSnapshot",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ return apiClient.invokeAPI(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Create replay heatmap snapshot.
+ *
+ * See {@link #createReplayHeatmapSnapshotWithHttpInfo}.
+ *
+ * @param body (required)
+ * @return CompletableFuture<ApiResponse<Snapshot>>
+ */
+ public CompletableFuture> createReplayHeatmapSnapshotWithHttpInfoAsync(
+ SnapshotCreateRequest 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 createReplayHeatmapSnapshot"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/replay/heatmap/snapshots";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.RumReplayHeatmapsApi.createReplayHeatmapSnapshot",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ } 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() {});
+ }
+
+ /**
+ * Delete replay heatmap snapshot.
+ *
+ * See {@link #deleteReplayHeatmapSnapshotWithHttpInfo}.
+ *
+ * @param snapshotId Unique identifier of the heatmap snapshot. (required)
+ * @throws ApiException if fails to make API call
+ */
+ public void deleteReplayHeatmapSnapshot(String snapshotId) throws ApiException {
+ deleteReplayHeatmapSnapshotWithHttpInfo(snapshotId);
+ }
+
+ /**
+ * Delete replay heatmap snapshot.
+ *
+ *
See {@link #deleteReplayHeatmapSnapshotWithHttpInfoAsync}.
+ *
+ * @param snapshotId Unique identifier of the heatmap snapshot. (required)
+ * @return CompletableFuture
+ */
+ public CompletableFuture deleteReplayHeatmapSnapshotAsync(String snapshotId) {
+ return deleteReplayHeatmapSnapshotWithHttpInfoAsync(snapshotId)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Delete a heatmap snapshot.
+ *
+ * @param snapshotId Unique identifier of the heatmap snapshot. (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 | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse deleteReplayHeatmapSnapshotWithHttpInfo(String snapshotId)
+ throws ApiException {
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'snapshotId' is set
+ if (snapshotId == null) {
+ throw new ApiException(
+ 400,
+ "Missing the required parameter 'snapshotId' when calling deleteReplayHeatmapSnapshot");
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/replay/heatmap/snapshots/{snapshot_id}"
+ .replaceAll(
+ "\\{" + "snapshot_id" + "\\}", apiClient.escapeString(snapshotId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.RumReplayHeatmapsApi.deleteReplayHeatmapSnapshot",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"*/*"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ return apiClient.invokeAPI(
+ "DELETE",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ null);
+ }
+
+ /**
+ * Delete replay heatmap snapshot.
+ *
+ * See {@link #deleteReplayHeatmapSnapshotWithHttpInfo}.
+ *
+ * @param snapshotId Unique identifier of the heatmap snapshot. (required)
+ * @return CompletableFuture<ApiResponse<Void>>
+ */
+ public CompletableFuture> deleteReplayHeatmapSnapshotWithHttpInfoAsync(
+ String snapshotId) {
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'snapshotId' is set
+ if (snapshotId == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'snapshotId' when calling"
+ + " deleteReplayHeatmapSnapshot"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/replay/heatmap/snapshots/{snapshot_id}"
+ .replaceAll(
+ "\\{" + "snapshot_id" + "\\}", apiClient.escapeString(snapshotId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.RumReplayHeatmapsApi.deleteReplayHeatmapSnapshot",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"*/*"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ } 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);
+ }
+
+ /** Manage optional parameters to listReplayHeatmapSnapshots. */
+ public static class ListReplayHeatmapSnapshotsOptionalParameters {
+ private String filterDeviceType;
+ private Integer pageLimit;
+ private String filterApplicationId;
+
+ /**
+ * Set filterDeviceType.
+ *
+ * @param filterDeviceType Device type to filter snapshots. (optional)
+ * @return ListReplayHeatmapSnapshotsOptionalParameters
+ */
+ public ListReplayHeatmapSnapshotsOptionalParameters filterDeviceType(String filterDeviceType) {
+ this.filterDeviceType = filterDeviceType;
+ return this;
+ }
+
+ /**
+ * Set pageLimit.
+ *
+ * @param pageLimit Maximum number of snapshots to return. (optional)
+ * @return ListReplayHeatmapSnapshotsOptionalParameters
+ */
+ public ListReplayHeatmapSnapshotsOptionalParameters pageLimit(Integer pageLimit) {
+ this.pageLimit = pageLimit;
+ return this;
+ }
+
+ /**
+ * Set filterApplicationId.
+ *
+ * @param filterApplicationId Filter by application ID. (optional)
+ * @return ListReplayHeatmapSnapshotsOptionalParameters
+ */
+ public ListReplayHeatmapSnapshotsOptionalParameters filterApplicationId(
+ String filterApplicationId) {
+ this.filterApplicationId = filterApplicationId;
+ return this;
+ }
+ }
+
+ /**
+ * List replay heatmap snapshots.
+ *
+ * See {@link #listReplayHeatmapSnapshotsWithHttpInfo}.
+ *
+ * @param filterViewName View name to filter snapshots. (required)
+ * @return SnapshotArray
+ * @throws ApiException if fails to make API call
+ */
+ public SnapshotArray listReplayHeatmapSnapshots(String filterViewName) throws ApiException {
+ return listReplayHeatmapSnapshotsWithHttpInfo(
+ filterViewName, new ListReplayHeatmapSnapshotsOptionalParameters())
+ .getData();
+ }
+
+ /**
+ * List replay heatmap snapshots.
+ *
+ *
See {@link #listReplayHeatmapSnapshotsWithHttpInfoAsync}.
+ *
+ * @param filterViewName View name to filter snapshots. (required)
+ * @return CompletableFuture<SnapshotArray>
+ */
+ public CompletableFuture listReplayHeatmapSnapshotsAsync(String filterViewName) {
+ return listReplayHeatmapSnapshotsWithHttpInfoAsync(
+ filterViewName, new ListReplayHeatmapSnapshotsOptionalParameters())
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * List replay heatmap snapshots.
+ *
+ * See {@link #listReplayHeatmapSnapshotsWithHttpInfo}.
+ *
+ * @param filterViewName View name to filter snapshots. (required)
+ * @param parameters Optional parameters for the request.
+ * @return SnapshotArray
+ * @throws ApiException if fails to make API call
+ */
+ public SnapshotArray listReplayHeatmapSnapshots(
+ String filterViewName, ListReplayHeatmapSnapshotsOptionalParameters parameters)
+ throws ApiException {
+ return listReplayHeatmapSnapshotsWithHttpInfo(filterViewName, parameters).getData();
+ }
+
+ /**
+ * List replay heatmap snapshots.
+ *
+ *
See {@link #listReplayHeatmapSnapshotsWithHttpInfoAsync}.
+ *
+ * @param filterViewName View name to filter snapshots. (required)
+ * @param parameters Optional parameters for the request.
+ * @return CompletableFuture<SnapshotArray>
+ */
+ public CompletableFuture listReplayHeatmapSnapshotsAsync(
+ String filterViewName, ListReplayHeatmapSnapshotsOptionalParameters parameters) {
+ return listReplayHeatmapSnapshotsWithHttpInfoAsync(filterViewName, parameters)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * List heatmap snapshots.
+ *
+ * @param filterViewName View name to filter snapshots. (required)
+ * @param parameters Optional parameters for the request.
+ * @return ApiResponse<SnapshotArray>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | OK | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse listReplayHeatmapSnapshotsWithHttpInfo(
+ String filterViewName, ListReplayHeatmapSnapshotsOptionalParameters parameters)
+ throws ApiException {
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'filterViewName' is set
+ if (filterViewName == null) {
+ throw new ApiException(
+ 400,
+ "Missing the required parameter 'filterViewName' when calling"
+ + " listReplayHeatmapSnapshots");
+ }
+ String filterDeviceType = parameters.filterDeviceType;
+ Integer pageLimit = parameters.pageLimit;
+ String filterApplicationId = parameters.filterApplicationId;
+ // create path and map variables
+ String localVarPath = "/api/v2/replay/heatmap/snapshots";
+
+ List localVarQueryParams = new ArrayList();
+ Map localVarHeaderParams = new HashMap();
+
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[view_name]", filterViewName));
+ localVarQueryParams.addAll(
+ apiClient.parameterToPairs("", "filter[device_type]", filterDeviceType));
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[limit]", pageLimit));
+ localVarQueryParams.addAll(
+ apiClient.parameterToPairs("", "filter[application_id]", filterApplicationId));
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.RumReplayHeatmapsApi.listReplayHeatmapSnapshots",
+ localVarPath,
+ localVarQueryParams,
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ return apiClient.invokeAPI(
+ "GET",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * List replay heatmap snapshots.
+ *
+ * See {@link #listReplayHeatmapSnapshotsWithHttpInfo}.
+ *
+ * @param filterViewName View name to filter snapshots. (required)
+ * @param parameters Optional parameters for the request.
+ * @return CompletableFuture<ApiResponse<SnapshotArray>>
+ */
+ public CompletableFuture> listReplayHeatmapSnapshotsWithHttpInfoAsync(
+ String filterViewName, ListReplayHeatmapSnapshotsOptionalParameters parameters) {
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'filterViewName' is set
+ if (filterViewName == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'filterViewName' when calling"
+ + " listReplayHeatmapSnapshots"));
+ return result;
+ }
+ String filterDeviceType = parameters.filterDeviceType;
+ Integer pageLimit = parameters.pageLimit;
+ String filterApplicationId = parameters.filterApplicationId;
+ // create path and map variables
+ String localVarPath = "/api/v2/replay/heatmap/snapshots";
+
+ List localVarQueryParams = new ArrayList();
+ Map localVarHeaderParams = new HashMap();
+
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[view_name]", filterViewName));
+ localVarQueryParams.addAll(
+ apiClient.parameterToPairs("", "filter[device_type]", filterDeviceType));
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[limit]", pageLimit));
+ localVarQueryParams.addAll(
+ apiClient.parameterToPairs("", "filter[application_id]", filterApplicationId));
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.RumReplayHeatmapsApi.listReplayHeatmapSnapshots",
+ localVarPath,
+ localVarQueryParams,
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ } catch (ApiException ex) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(ex);
+ return result;
+ }
+ return apiClient.invokeAPIAsync(
+ "GET",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Update replay heatmap snapshot.
+ *
+ * See {@link #updateReplayHeatmapSnapshotWithHttpInfo}.
+ *
+ * @param snapshotId Unique identifier of the heatmap snapshot. (required)
+ * @param body (required)
+ * @return Snapshot
+ * @throws ApiException if fails to make API call
+ */
+ public Snapshot updateReplayHeatmapSnapshot(String snapshotId, SnapshotUpdateRequest body)
+ throws ApiException {
+ return updateReplayHeatmapSnapshotWithHttpInfo(snapshotId, body).getData();
+ }
+
+ /**
+ * Update replay heatmap snapshot.
+ *
+ *
See {@link #updateReplayHeatmapSnapshotWithHttpInfoAsync}.
+ *
+ * @param snapshotId Unique identifier of the heatmap snapshot. (required)
+ * @param body (required)
+ * @return CompletableFuture<Snapshot>
+ */
+ public CompletableFuture updateReplayHeatmapSnapshotAsync(
+ String snapshotId, SnapshotUpdateRequest body) {
+ return updateReplayHeatmapSnapshotWithHttpInfoAsync(snapshotId, body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Update a heatmap snapshot.
+ *
+ * @param snapshotId Unique identifier of the heatmap snapshot. (required)
+ * @param body (required)
+ * @return ApiResponse<Snapshot>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | OK | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse updateReplayHeatmapSnapshotWithHttpInfo(
+ String snapshotId, SnapshotUpdateRequest body) throws ApiException {
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'snapshotId' is set
+ if (snapshotId == null) {
+ throw new ApiException(
+ 400,
+ "Missing the required parameter 'snapshotId' when calling updateReplayHeatmapSnapshot");
+ }
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'body' when calling updateReplayHeatmapSnapshot");
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/replay/heatmap/snapshots/{snapshot_id}"
+ .replaceAll(
+ "\\{" + "snapshot_id" + "\\}", apiClient.escapeString(snapshotId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.RumReplayHeatmapsApi.updateReplayHeatmapSnapshot",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ return apiClient.invokeAPI(
+ "PATCH",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Update replay heatmap snapshot.
+ *
+ * See {@link #updateReplayHeatmapSnapshotWithHttpInfo}.
+ *
+ * @param snapshotId Unique identifier of the heatmap snapshot. (required)
+ * @param body (required)
+ * @return CompletableFuture<ApiResponse<Snapshot>>
+ */
+ public CompletableFuture> updateReplayHeatmapSnapshotWithHttpInfoAsync(
+ String snapshotId, SnapshotUpdateRequest body) {
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'snapshotId' is set
+ if (snapshotId == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'snapshotId' when calling"
+ + " updateReplayHeatmapSnapshot"));
+ 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 updateReplayHeatmapSnapshot"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/replay/heatmap/snapshots/{snapshot_id}"
+ .replaceAll(
+ "\\{" + "snapshot_id" + "\\}", apiClient.escapeString(snapshotId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.RumReplayHeatmapsApi.updateReplayHeatmapSnapshot",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ } 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/api/RumReplayPlaylistsApi.java b/src/main/java/com/datadog/api/client/v2/api/RumReplayPlaylistsApi.java
new file mode 100644
index 00000000000..55d5cdf9e68
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/api/RumReplayPlaylistsApi.java
@@ -0,0 +1,1644 @@
+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.Playlist;
+import com.datadog.api.client.v2.model.PlaylistArray;
+import com.datadog.api.client.v2.model.PlaylistsSession;
+import com.datadog.api.client.v2.model.PlaylistsSessionArray;
+import com.datadog.api.client.v2.model.SessionIdArray;
+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.concurrent.CompletableFuture;
+
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class RumReplayPlaylistsApi {
+ private ApiClient apiClient;
+
+ public RumReplayPlaylistsApi() {
+ this(ApiClient.getDefaultApiClient());
+ }
+
+ public RumReplayPlaylistsApi(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;
+ }
+
+ /** Manage optional parameters to addRumReplaySessionToPlaylist. */
+ public static class AddRumReplaySessionToPlaylistOptionalParameters {
+ private String dataSource;
+
+ /**
+ * Set dataSource.
+ *
+ * @param dataSource Data source type. Valid values: 'rum' or 'product_analytics'. Defaults to
+ * 'rum'. (optional)
+ * @return AddRumReplaySessionToPlaylistOptionalParameters
+ */
+ public AddRumReplaySessionToPlaylistOptionalParameters dataSource(String dataSource) {
+ this.dataSource = dataSource;
+ return this;
+ }
+ }
+
+ /**
+ * Add rum replay session to playlist.
+ *
+ * See {@link #addRumReplaySessionToPlaylistWithHttpInfo}.
+ *
+ * @param ts Server-side timestamp in milliseconds. (required)
+ * @param playlistId Unique identifier of the playlist. (required)
+ * @param sessionId Unique identifier of the session. (required)
+ * @return PlaylistsSession
+ * @throws ApiException if fails to make API call
+ */
+ public PlaylistsSession addRumReplaySessionToPlaylist(
+ Long ts, Integer playlistId, String sessionId) throws ApiException {
+ return addRumReplaySessionToPlaylistWithHttpInfo(
+ ts, playlistId, sessionId, new AddRumReplaySessionToPlaylistOptionalParameters())
+ .getData();
+ }
+
+ /**
+ * Add rum replay session to playlist.
+ *
+ *
See {@link #addRumReplaySessionToPlaylistWithHttpInfoAsync}.
+ *
+ * @param ts Server-side timestamp in milliseconds. (required)
+ * @param playlistId Unique identifier of the playlist. (required)
+ * @param sessionId Unique identifier of the session. (required)
+ * @return CompletableFuture<PlaylistsSession>
+ */
+ public CompletableFuture addRumReplaySessionToPlaylistAsync(
+ Long ts, Integer playlistId, String sessionId) {
+ return addRumReplaySessionToPlaylistWithHttpInfoAsync(
+ ts, playlistId, sessionId, new AddRumReplaySessionToPlaylistOptionalParameters())
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Add rum replay session to playlist.
+ *
+ * See {@link #addRumReplaySessionToPlaylistWithHttpInfo}.
+ *
+ * @param ts Server-side timestamp in milliseconds. (required)
+ * @param playlistId Unique identifier of the playlist. (required)
+ * @param sessionId Unique identifier of the session. (required)
+ * @param parameters Optional parameters for the request.
+ * @return PlaylistsSession
+ * @throws ApiException if fails to make API call
+ */
+ public PlaylistsSession addRumReplaySessionToPlaylist(
+ Long ts,
+ Integer playlistId,
+ String sessionId,
+ AddRumReplaySessionToPlaylistOptionalParameters parameters)
+ throws ApiException {
+ return addRumReplaySessionToPlaylistWithHttpInfo(ts, playlistId, sessionId, parameters)
+ .getData();
+ }
+
+ /**
+ * Add rum replay session to playlist.
+ *
+ *
See {@link #addRumReplaySessionToPlaylistWithHttpInfoAsync}.
+ *
+ * @param ts Server-side timestamp in milliseconds. (required)
+ * @param playlistId Unique identifier of the playlist. (required)
+ * @param sessionId Unique identifier of the session. (required)
+ * @param parameters Optional parameters for the request.
+ * @return CompletableFuture<PlaylistsSession>
+ */
+ public CompletableFuture addRumReplaySessionToPlaylistAsync(
+ Long ts,
+ Integer playlistId,
+ String sessionId,
+ AddRumReplaySessionToPlaylistOptionalParameters parameters) {
+ return addRumReplaySessionToPlaylistWithHttpInfoAsync(ts, playlistId, sessionId, parameters)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Add a session to a playlist.
+ *
+ * @param ts Server-side timestamp in milliseconds. (required)
+ * @param playlistId Unique identifier of the playlist. (required)
+ * @param sessionId Unique identifier of the session. (required)
+ * @param parameters Optional parameters for the request.
+ * @return ApiResponse<PlaylistsSession>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | OK | - |
+ * | 201 | Created | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse addRumReplaySessionToPlaylistWithHttpInfo(
+ Long ts,
+ Integer playlistId,
+ String sessionId,
+ AddRumReplaySessionToPlaylistOptionalParameters parameters)
+ throws ApiException {
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'ts' is set
+ if (ts == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'ts' when calling addRumReplaySessionToPlaylist");
+ }
+
+ // verify the required parameter 'playlistId' is set
+ if (playlistId == null) {
+ throw new ApiException(
+ 400,
+ "Missing the required parameter 'playlistId' when calling addRumReplaySessionToPlaylist");
+ }
+
+ // verify the required parameter 'sessionId' is set
+ if (sessionId == null) {
+ throw new ApiException(
+ 400,
+ "Missing the required parameter 'sessionId' when calling addRumReplaySessionToPlaylist");
+ }
+ String dataSource = parameters.dataSource;
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/rum/replay/playlists/{playlist_id}/sessions/{session_id}"
+ .replaceAll(
+ "\\{" + "playlist_id" + "\\}", apiClient.escapeString(playlistId.toString()))
+ .replaceAll("\\{" + "session_id" + "\\}", apiClient.escapeString(sessionId.toString()));
+
+ List localVarQueryParams = new ArrayList();
+ Map localVarHeaderParams = new HashMap();
+
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "ts", ts));
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "data_source", dataSource));
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.RumReplayPlaylistsApi.addRumReplaySessionToPlaylist",
+ localVarPath,
+ localVarQueryParams,
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ return apiClient.invokeAPI(
+ "PUT",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Add rum replay session to playlist.
+ *
+ * See {@link #addRumReplaySessionToPlaylistWithHttpInfo}.
+ *
+ * @param ts Server-side timestamp in milliseconds. (required)
+ * @param playlistId Unique identifier of the playlist. (required)
+ * @param sessionId Unique identifier of the session. (required)
+ * @param parameters Optional parameters for the request.
+ * @return CompletableFuture<ApiResponse<PlaylistsSession>>
+ */
+ public CompletableFuture>
+ addRumReplaySessionToPlaylistWithHttpInfoAsync(
+ Long ts,
+ Integer playlistId,
+ String sessionId,
+ AddRumReplaySessionToPlaylistOptionalParameters parameters) {
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'ts' is set
+ if (ts == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'ts' when calling addRumReplaySessionToPlaylist"));
+ return result;
+ }
+
+ // verify the required parameter 'playlistId' is set
+ if (playlistId == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'playlistId' when calling"
+ + " addRumReplaySessionToPlaylist"));
+ return result;
+ }
+
+ // verify the required parameter 'sessionId' is set
+ if (sessionId == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'sessionId' when calling"
+ + " addRumReplaySessionToPlaylist"));
+ return result;
+ }
+ String dataSource = parameters.dataSource;
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/rum/replay/playlists/{playlist_id}/sessions/{session_id}"
+ .replaceAll(
+ "\\{" + "playlist_id" + "\\}", apiClient.escapeString(playlistId.toString()))
+ .replaceAll("\\{" + "session_id" + "\\}", apiClient.escapeString(sessionId.toString()));
+
+ List localVarQueryParams = new ArrayList();
+ Map localVarHeaderParams = new HashMap();
+
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "ts", ts));
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "data_source", dataSource));
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.RumReplayPlaylistsApi.addRumReplaySessionToPlaylist",
+ localVarPath,
+ localVarQueryParams,
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ } catch (ApiException ex) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(ex);
+ return result;
+ }
+ return apiClient.invokeAPIAsync(
+ "PUT",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Bulk remove rum replay playlist sessions.
+ *
+ * See {@link #bulkRemoveRumReplayPlaylistSessionsWithHttpInfo}.
+ *
+ * @param playlistId Unique identifier of the playlist. (required)
+ * @param body (required)
+ * @throws ApiException if fails to make API call
+ */
+ public void bulkRemoveRumReplayPlaylistSessions(Integer playlistId, SessionIdArray body)
+ throws ApiException {
+ bulkRemoveRumReplayPlaylistSessionsWithHttpInfo(playlistId, body);
+ }
+
+ /**
+ * Bulk remove rum replay playlist sessions.
+ *
+ *
See {@link #bulkRemoveRumReplayPlaylistSessionsWithHttpInfoAsync}.
+ *
+ * @param playlistId Unique identifier of the playlist. (required)
+ * @param body (required)
+ * @return CompletableFuture
+ */
+ public CompletableFuture bulkRemoveRumReplayPlaylistSessionsAsync(
+ Integer playlistId, SessionIdArray body) {
+ return bulkRemoveRumReplayPlaylistSessionsWithHttpInfoAsync(playlistId, body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Remove sessions from a playlist.
+ *
+ * @param playlistId Unique identifier of the playlist. (required)
+ * @param body (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 | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse bulkRemoveRumReplayPlaylistSessionsWithHttpInfo(
+ Integer playlistId, SessionIdArray body) throws ApiException {
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'playlistId' is set
+ if (playlistId == null) {
+ throw new ApiException(
+ 400,
+ "Missing the required parameter 'playlistId' when calling"
+ + " bulkRemoveRumReplayPlaylistSessions");
+ }
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ throw new ApiException(
+ 400,
+ "Missing the required parameter 'body' when calling bulkRemoveRumReplayPlaylistSessions");
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/rum/replay/playlists/{playlist_id}/sessions"
+ .replaceAll(
+ "\\{" + "playlist_id" + "\\}", apiClient.escapeString(playlistId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.RumReplayPlaylistsApi.bulkRemoveRumReplayPlaylistSessions",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"*/*"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ return apiClient.invokeAPI(
+ "DELETE",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ null);
+ }
+
+ /**
+ * Bulk remove rum replay playlist sessions.
+ *
+ * See {@link #bulkRemoveRumReplayPlaylistSessionsWithHttpInfo}.
+ *
+ * @param playlistId Unique identifier of the playlist. (required)
+ * @param body (required)
+ * @return CompletableFuture<ApiResponse<Void>>
+ */
+ public CompletableFuture> bulkRemoveRumReplayPlaylistSessionsWithHttpInfoAsync(
+ Integer playlistId, SessionIdArray body) {
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'playlistId' is set
+ if (playlistId == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'playlistId' when calling"
+ + " bulkRemoveRumReplayPlaylistSessions"));
+ 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"
+ + " bulkRemoveRumReplayPlaylistSessions"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/rum/replay/playlists/{playlist_id}/sessions"
+ .replaceAll(
+ "\\{" + "playlist_id" + "\\}", apiClient.escapeString(playlistId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.RumReplayPlaylistsApi.bulkRemoveRumReplayPlaylistSessions",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"*/*"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ } catch (ApiException ex) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(ex);
+ return result;
+ }
+ return apiClient.invokeAPIAsync(
+ "DELETE",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ null);
+ }
+
+ /**
+ * Create rum replay playlist.
+ *
+ * See {@link #createRumReplayPlaylistWithHttpInfo}.
+ *
+ * @param body (required)
+ * @return Playlist
+ * @throws ApiException if fails to make API call
+ */
+ public Playlist createRumReplayPlaylist(Playlist body) throws ApiException {
+ return createRumReplayPlaylistWithHttpInfo(body).getData();
+ }
+
+ /**
+ * Create rum replay playlist.
+ *
+ *
See {@link #createRumReplayPlaylistWithHttpInfoAsync}.
+ *
+ * @param body (required)
+ * @return CompletableFuture<Playlist>
+ */
+ public CompletableFuture createRumReplayPlaylistAsync(Playlist body) {
+ return createRumReplayPlaylistWithHttpInfoAsync(body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Create a playlist.
+ *
+ * @param body (required)
+ * @return ApiResponse<Playlist>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 201 | Created | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse createRumReplayPlaylistWithHttpInfo(Playlist 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 createRumReplayPlaylist");
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/rum/replay/playlists";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.RumReplayPlaylistsApi.createRumReplayPlaylist",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ return apiClient.invokeAPI(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Create rum replay playlist.
+ *
+ * See {@link #createRumReplayPlaylistWithHttpInfo}.
+ *
+ * @param body (required)
+ * @return CompletableFuture<ApiResponse<Playlist>>
+ */
+ public CompletableFuture> createRumReplayPlaylistWithHttpInfoAsync(
+ Playlist 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 createRumReplayPlaylist"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/rum/replay/playlists";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.RumReplayPlaylistsApi.createRumReplayPlaylist",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ } 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() {});
+ }
+
+ /**
+ * Delete rum replay playlist.
+ *
+ * See {@link #deleteRumReplayPlaylistWithHttpInfo}.
+ *
+ * @param playlistId Unique identifier of the playlist. (required)
+ * @throws ApiException if fails to make API call
+ */
+ public void deleteRumReplayPlaylist(Integer playlistId) throws ApiException {
+ deleteRumReplayPlaylistWithHttpInfo(playlistId);
+ }
+
+ /**
+ * Delete rum replay playlist.
+ *
+ *
See {@link #deleteRumReplayPlaylistWithHttpInfoAsync}.
+ *
+ * @param playlistId Unique identifier of the playlist. (required)
+ * @return CompletableFuture
+ */
+ public CompletableFuture deleteRumReplayPlaylistAsync(Integer playlistId) {
+ return deleteRumReplayPlaylistWithHttpInfoAsync(playlistId)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Delete a playlist.
+ *
+ * @param playlistId Unique identifier of the playlist. (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 | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse deleteRumReplayPlaylistWithHttpInfo(Integer playlistId)
+ throws ApiException {
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'playlistId' is set
+ if (playlistId == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'playlistId' when calling deleteRumReplayPlaylist");
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/rum/replay/playlists/{playlist_id}"
+ .replaceAll(
+ "\\{" + "playlist_id" + "\\}", apiClient.escapeString(playlistId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.RumReplayPlaylistsApi.deleteRumReplayPlaylist",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"*/*"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ return apiClient.invokeAPI(
+ "DELETE",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ null);
+ }
+
+ /**
+ * Delete rum replay playlist.
+ *
+ * See {@link #deleteRumReplayPlaylistWithHttpInfo}.
+ *
+ * @param playlistId Unique identifier of the playlist. (required)
+ * @return CompletableFuture<ApiResponse<Void>>
+ */
+ public CompletableFuture> deleteRumReplayPlaylistWithHttpInfoAsync(
+ Integer playlistId) {
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'playlistId' is set
+ if (playlistId == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'playlistId' when calling deleteRumReplayPlaylist"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/rum/replay/playlists/{playlist_id}"
+ .replaceAll(
+ "\\{" + "playlist_id" + "\\}", apiClient.escapeString(playlistId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.RumReplayPlaylistsApi.deleteRumReplayPlaylist",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"*/*"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ } 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 rum replay playlist.
+ *
+ * See {@link #getRumReplayPlaylistWithHttpInfo}.
+ *
+ * @param playlistId Unique identifier of the playlist. (required)
+ * @return Playlist
+ * @throws ApiException if fails to make API call
+ */
+ public Playlist getRumReplayPlaylist(Integer playlistId) throws ApiException {
+ return getRumReplayPlaylistWithHttpInfo(playlistId).getData();
+ }
+
+ /**
+ * Get rum replay playlist.
+ *
+ *
See {@link #getRumReplayPlaylistWithHttpInfoAsync}.
+ *
+ * @param playlistId Unique identifier of the playlist. (required)
+ * @return CompletableFuture<Playlist>
+ */
+ public CompletableFuture getRumReplayPlaylistAsync(Integer playlistId) {
+ return getRumReplayPlaylistWithHttpInfoAsync(playlistId)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Get a playlist.
+ *
+ * @param playlistId Unique identifier of the playlist. (required)
+ * @return ApiResponse<Playlist>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | OK | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse getRumReplayPlaylistWithHttpInfo(Integer playlistId)
+ throws ApiException {
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'playlistId' is set
+ if (playlistId == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'playlistId' when calling getRumReplayPlaylist");
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/rum/replay/playlists/{playlist_id}"
+ .replaceAll(
+ "\\{" + "playlist_id" + "\\}", apiClient.escapeString(playlistId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.RumReplayPlaylistsApi.getRumReplayPlaylist",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ return apiClient.invokeAPI(
+ "GET",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Get rum replay playlist.
+ *
+ * See {@link #getRumReplayPlaylistWithHttpInfo}.
+ *
+ * @param playlistId Unique identifier of the playlist. (required)
+ * @return CompletableFuture<ApiResponse<Playlist>>
+ */
+ public CompletableFuture> getRumReplayPlaylistWithHttpInfoAsync(
+ Integer playlistId) {
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'playlistId' is set
+ if (playlistId == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'playlistId' when calling getRumReplayPlaylist"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/rum/replay/playlists/{playlist_id}"
+ .replaceAll(
+ "\\{" + "playlist_id" + "\\}", apiClient.escapeString(playlistId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.RumReplayPlaylistsApi.getRumReplayPlaylist",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ } 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 listRumReplayPlaylists. */
+ public static class ListRumReplayPlaylistsOptionalParameters {
+ private String filterCreatedByUuid;
+ private String filterQuery;
+ private Integer pageNumber;
+ private Integer pageSize;
+
+ /**
+ * Set filterCreatedByUuid.
+ *
+ * @param filterCreatedByUuid Filter playlists by the UUID of the user who created them.
+ * (optional)
+ * @return ListRumReplayPlaylistsOptionalParameters
+ */
+ public ListRumReplayPlaylistsOptionalParameters filterCreatedByUuid(
+ String filterCreatedByUuid) {
+ this.filterCreatedByUuid = filterCreatedByUuid;
+ return this;
+ }
+
+ /**
+ * Set filterQuery.
+ *
+ * @param filterQuery Search query to filter playlists by name. (optional)
+ * @return ListRumReplayPlaylistsOptionalParameters
+ */
+ public ListRumReplayPlaylistsOptionalParameters filterQuery(String filterQuery) {
+ this.filterQuery = filterQuery;
+ return this;
+ }
+
+ /**
+ * Set pageNumber.
+ *
+ * @param pageNumber Page number for pagination (0-indexed). (optional)
+ * @return ListRumReplayPlaylistsOptionalParameters
+ */
+ public ListRumReplayPlaylistsOptionalParameters pageNumber(Integer pageNumber) {
+ this.pageNumber = pageNumber;
+ return this;
+ }
+
+ /**
+ * Set pageSize.
+ *
+ * @param pageSize Number of items per page. (optional)
+ * @return ListRumReplayPlaylistsOptionalParameters
+ */
+ public ListRumReplayPlaylistsOptionalParameters pageSize(Integer pageSize) {
+ this.pageSize = pageSize;
+ return this;
+ }
+ }
+
+ /**
+ * List rum replay playlists.
+ *
+ * See {@link #listRumReplayPlaylistsWithHttpInfo}.
+ *
+ * @return PlaylistArray
+ * @throws ApiException if fails to make API call
+ */
+ public PlaylistArray listRumReplayPlaylists() throws ApiException {
+ return listRumReplayPlaylistsWithHttpInfo(new ListRumReplayPlaylistsOptionalParameters())
+ .getData();
+ }
+
+ /**
+ * List rum replay playlists.
+ *
+ *
See {@link #listRumReplayPlaylistsWithHttpInfoAsync}.
+ *
+ * @return CompletableFuture<PlaylistArray>
+ */
+ public CompletableFuture listRumReplayPlaylistsAsync() {
+ return listRumReplayPlaylistsWithHttpInfoAsync(new ListRumReplayPlaylistsOptionalParameters())
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * List rum replay playlists.
+ *
+ * See {@link #listRumReplayPlaylistsWithHttpInfo}.
+ *
+ * @param parameters Optional parameters for the request.
+ * @return PlaylistArray
+ * @throws ApiException if fails to make API call
+ */
+ public PlaylistArray listRumReplayPlaylists(ListRumReplayPlaylistsOptionalParameters parameters)
+ throws ApiException {
+ return listRumReplayPlaylistsWithHttpInfo(parameters).getData();
+ }
+
+ /**
+ * List rum replay playlists.
+ *
+ *
See {@link #listRumReplayPlaylistsWithHttpInfoAsync}.
+ *
+ * @param parameters Optional parameters for the request.
+ * @return CompletableFuture<PlaylistArray>
+ */
+ public CompletableFuture listRumReplayPlaylistsAsync(
+ ListRumReplayPlaylistsOptionalParameters parameters) {
+ return listRumReplayPlaylistsWithHttpInfoAsync(parameters)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * List playlists.
+ *
+ * @param parameters Optional parameters for the request.
+ * @return ApiResponse<PlaylistArray>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | OK | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse listRumReplayPlaylistsWithHttpInfo(
+ ListRumReplayPlaylistsOptionalParameters parameters) throws ApiException {
+ Object localVarPostBody = null;
+ String filterCreatedByUuid = parameters.filterCreatedByUuid;
+ String filterQuery = parameters.filterQuery;
+ Integer pageNumber = parameters.pageNumber;
+ Integer pageSize = parameters.pageSize;
+ // create path and map variables
+ String localVarPath = "/api/v2/rum/replay/playlists";
+
+ List localVarQueryParams = new ArrayList();
+ Map localVarHeaderParams = new HashMap();
+
+ localVarQueryParams.addAll(
+ apiClient.parameterToPairs("", "filter[created_by_uuid]", filterCreatedByUuid));
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[query]", filterQuery));
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[number]", pageNumber));
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[size]", pageSize));
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.RumReplayPlaylistsApi.listRumReplayPlaylists",
+ localVarPath,
+ localVarQueryParams,
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ return apiClient.invokeAPI(
+ "GET",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * List rum replay playlists.
+ *
+ * See {@link #listRumReplayPlaylistsWithHttpInfo}.
+ *
+ * @param parameters Optional parameters for the request.
+ * @return CompletableFuture<ApiResponse<PlaylistArray>>
+ */
+ public CompletableFuture> listRumReplayPlaylistsWithHttpInfoAsync(
+ ListRumReplayPlaylistsOptionalParameters parameters) {
+ Object localVarPostBody = null;
+ String filterCreatedByUuid = parameters.filterCreatedByUuid;
+ String filterQuery = parameters.filterQuery;
+ Integer pageNumber = parameters.pageNumber;
+ Integer pageSize = parameters.pageSize;
+ // create path and map variables
+ String localVarPath = "/api/v2/rum/replay/playlists";
+
+ List localVarQueryParams = new ArrayList();
+ Map localVarHeaderParams = new HashMap();
+
+ localVarQueryParams.addAll(
+ apiClient.parameterToPairs("", "filter[created_by_uuid]", filterCreatedByUuid));
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[query]", filterQuery));
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[number]", pageNumber));
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[size]", pageSize));
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.RumReplayPlaylistsApi.listRumReplayPlaylists",
+ localVarPath,
+ localVarQueryParams,
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ } 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 listRumReplayPlaylistSessions. */
+ public static class ListRumReplayPlaylistSessionsOptionalParameters {
+ private Integer pageNumber;
+ private Integer pageSize;
+
+ /**
+ * Set pageNumber.
+ *
+ * @param pageNumber Page number for pagination (0-indexed). (optional)
+ * @return ListRumReplayPlaylistSessionsOptionalParameters
+ */
+ public ListRumReplayPlaylistSessionsOptionalParameters pageNumber(Integer pageNumber) {
+ this.pageNumber = pageNumber;
+ return this;
+ }
+
+ /**
+ * Set pageSize.
+ *
+ * @param pageSize Number of items per page. (optional)
+ * @return ListRumReplayPlaylistSessionsOptionalParameters
+ */
+ public ListRumReplayPlaylistSessionsOptionalParameters pageSize(Integer pageSize) {
+ this.pageSize = pageSize;
+ return this;
+ }
+ }
+
+ /**
+ * List rum replay playlist sessions.
+ *
+ * See {@link #listRumReplayPlaylistSessionsWithHttpInfo}.
+ *
+ * @param playlistId Unique identifier of the playlist. (required)
+ * @return PlaylistsSessionArray
+ * @throws ApiException if fails to make API call
+ */
+ public PlaylistsSessionArray listRumReplayPlaylistSessions(Integer playlistId)
+ throws ApiException {
+ return listRumReplayPlaylistSessionsWithHttpInfo(
+ playlistId, new ListRumReplayPlaylistSessionsOptionalParameters())
+ .getData();
+ }
+
+ /**
+ * List rum replay playlist sessions.
+ *
+ *
See {@link #listRumReplayPlaylistSessionsWithHttpInfoAsync}.
+ *
+ * @param playlistId Unique identifier of the playlist. (required)
+ * @return CompletableFuture<PlaylistsSessionArray>
+ */
+ public CompletableFuture listRumReplayPlaylistSessionsAsync(
+ Integer playlistId) {
+ return listRumReplayPlaylistSessionsWithHttpInfoAsync(
+ playlistId, new ListRumReplayPlaylistSessionsOptionalParameters())
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * List rum replay playlist sessions.
+ *
+ * See {@link #listRumReplayPlaylistSessionsWithHttpInfo}.
+ *
+ * @param playlistId Unique identifier of the playlist. (required)
+ * @param parameters Optional parameters for the request.
+ * @return PlaylistsSessionArray
+ * @throws ApiException if fails to make API call
+ */
+ public PlaylistsSessionArray listRumReplayPlaylistSessions(
+ Integer playlistId, ListRumReplayPlaylistSessionsOptionalParameters parameters)
+ throws ApiException {
+ return listRumReplayPlaylistSessionsWithHttpInfo(playlistId, parameters).getData();
+ }
+
+ /**
+ * List rum replay playlist sessions.
+ *
+ *
See {@link #listRumReplayPlaylistSessionsWithHttpInfoAsync}.
+ *
+ * @param playlistId Unique identifier of the playlist. (required)
+ * @param parameters Optional parameters for the request.
+ * @return CompletableFuture<PlaylistsSessionArray>
+ */
+ public CompletableFuture listRumReplayPlaylistSessionsAsync(
+ Integer playlistId, ListRumReplayPlaylistSessionsOptionalParameters parameters) {
+ return listRumReplayPlaylistSessionsWithHttpInfoAsync(playlistId, parameters)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * List sessions in a playlist.
+ *
+ * @param playlistId Unique identifier of the playlist. (required)
+ * @param parameters Optional parameters for the request.
+ * @return ApiResponse<PlaylistsSessionArray>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | OK | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse listRumReplayPlaylistSessionsWithHttpInfo(
+ Integer playlistId, ListRumReplayPlaylistSessionsOptionalParameters parameters)
+ throws ApiException {
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'playlistId' is set
+ if (playlistId == null) {
+ throw new ApiException(
+ 400,
+ "Missing the required parameter 'playlistId' when calling listRumReplayPlaylistSessions");
+ }
+ Integer pageNumber = parameters.pageNumber;
+ Integer pageSize = parameters.pageSize;
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/rum/replay/playlists/{playlist_id}/sessions"
+ .replaceAll(
+ "\\{" + "playlist_id" + "\\}", apiClient.escapeString(playlistId.toString()));
+
+ 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.RumReplayPlaylistsApi.listRumReplayPlaylistSessions",
+ localVarPath,
+ localVarQueryParams,
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ return apiClient.invokeAPI(
+ "GET",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * List rum replay playlist sessions.
+ *
+ * See {@link #listRumReplayPlaylistSessionsWithHttpInfo}.
+ *
+ * @param playlistId Unique identifier of the playlist. (required)
+ * @param parameters Optional parameters for the request.
+ * @return CompletableFuture<ApiResponse<PlaylistsSessionArray>>
+ */
+ public CompletableFuture>
+ listRumReplayPlaylistSessionsWithHttpInfoAsync(
+ Integer playlistId, ListRumReplayPlaylistSessionsOptionalParameters parameters) {
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'playlistId' is set
+ if (playlistId == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'playlistId' when calling"
+ + " listRumReplayPlaylistSessions"));
+ return result;
+ }
+ Integer pageNumber = parameters.pageNumber;
+ Integer pageSize = parameters.pageSize;
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/rum/replay/playlists/{playlist_id}/sessions"
+ .replaceAll(
+ "\\{" + "playlist_id" + "\\}", apiClient.escapeString(playlistId.toString()));
+
+ 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.RumReplayPlaylistsApi.listRumReplayPlaylistSessions",
+ localVarPath,
+ localVarQueryParams,
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ } 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() {});
+ }
+
+ /**
+ * Remove rum replay session from playlist.
+ *
+ * See {@link #removeRumReplaySessionFromPlaylistWithHttpInfo}.
+ *
+ * @param playlistId Unique identifier of the playlist. (required)
+ * @param sessionId Unique identifier of the session. (required)
+ * @throws ApiException if fails to make API call
+ */
+ public void removeRumReplaySessionFromPlaylist(Integer playlistId, String sessionId)
+ throws ApiException {
+ removeRumReplaySessionFromPlaylistWithHttpInfo(playlistId, sessionId);
+ }
+
+ /**
+ * Remove rum replay session from playlist.
+ *
+ *
See {@link #removeRumReplaySessionFromPlaylistWithHttpInfoAsync}.
+ *
+ * @param playlistId Unique identifier of the playlist. (required)
+ * @param sessionId Unique identifier of the session. (required)
+ * @return CompletableFuture
+ */
+ public CompletableFuture removeRumReplaySessionFromPlaylistAsync(
+ Integer playlistId, String sessionId) {
+ return removeRumReplaySessionFromPlaylistWithHttpInfoAsync(playlistId, sessionId)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Remove a session from a playlist.
+ *
+ * @param playlistId Unique identifier of the playlist. (required)
+ * @param sessionId Unique identifier of the session. (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 | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse removeRumReplaySessionFromPlaylistWithHttpInfo(
+ Integer playlistId, String sessionId) throws ApiException {
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'playlistId' is set
+ if (playlistId == null) {
+ throw new ApiException(
+ 400,
+ "Missing the required parameter 'playlistId' when calling"
+ + " removeRumReplaySessionFromPlaylist");
+ }
+
+ // verify the required parameter 'sessionId' is set
+ if (sessionId == null) {
+ throw new ApiException(
+ 400,
+ "Missing the required parameter 'sessionId' when calling"
+ + " removeRumReplaySessionFromPlaylist");
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/rum/replay/playlists/{playlist_id}/sessions/{session_id}"
+ .replaceAll(
+ "\\{" + "playlist_id" + "\\}", apiClient.escapeString(playlistId.toString()))
+ .replaceAll("\\{" + "session_id" + "\\}", apiClient.escapeString(sessionId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.RumReplayPlaylistsApi.removeRumReplaySessionFromPlaylist",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"*/*"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ return apiClient.invokeAPI(
+ "DELETE",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ null);
+ }
+
+ /**
+ * Remove rum replay session from playlist.
+ *
+ * See {@link #removeRumReplaySessionFromPlaylistWithHttpInfo}.
+ *
+ * @param playlistId Unique identifier of the playlist. (required)
+ * @param sessionId Unique identifier of the session. (required)
+ * @return CompletableFuture<ApiResponse<Void>>
+ */
+ public CompletableFuture> removeRumReplaySessionFromPlaylistWithHttpInfoAsync(
+ Integer playlistId, String sessionId) {
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'playlistId' is set
+ if (playlistId == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'playlistId' when calling"
+ + " removeRumReplaySessionFromPlaylist"));
+ return result;
+ }
+
+ // verify the required parameter 'sessionId' is set
+ if (sessionId == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'sessionId' when calling"
+ + " removeRumReplaySessionFromPlaylist"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/rum/replay/playlists/{playlist_id}/sessions/{session_id}"
+ .replaceAll(
+ "\\{" + "playlist_id" + "\\}", apiClient.escapeString(playlistId.toString()))
+ .replaceAll("\\{" + "session_id" + "\\}", apiClient.escapeString(sessionId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.RumReplayPlaylistsApi.removeRumReplaySessionFromPlaylist",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"*/*"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ } 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);
+ }
+
+ /**
+ * Update rum replay playlist.
+ *
+ * See {@link #updateRumReplayPlaylistWithHttpInfo}.
+ *
+ * @param playlistId Unique identifier of the playlist. (required)
+ * @param body (required)
+ * @return Playlist
+ * @throws ApiException if fails to make API call
+ */
+ public Playlist updateRumReplayPlaylist(Integer playlistId, Playlist body) throws ApiException {
+ return updateRumReplayPlaylistWithHttpInfo(playlistId, body).getData();
+ }
+
+ /**
+ * Update rum replay playlist.
+ *
+ *
See {@link #updateRumReplayPlaylistWithHttpInfoAsync}.
+ *
+ * @param playlistId Unique identifier of the playlist. (required)
+ * @param body (required)
+ * @return CompletableFuture<Playlist>
+ */
+ public CompletableFuture updateRumReplayPlaylistAsync(
+ Integer playlistId, Playlist body) {
+ return updateRumReplayPlaylistWithHttpInfoAsync(playlistId, body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Update a playlist.
+ *
+ * @param playlistId Unique identifier of the playlist. (required)
+ * @param body (required)
+ * @return ApiResponse<Playlist>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | OK | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse updateRumReplayPlaylistWithHttpInfo(
+ Integer playlistId, Playlist body) throws ApiException {
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'playlistId' is set
+ if (playlistId == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'playlistId' when calling updateRumReplayPlaylist");
+ }
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'body' when calling updateRumReplayPlaylist");
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/rum/replay/playlists/{playlist_id}"
+ .replaceAll(
+ "\\{" + "playlist_id" + "\\}", apiClient.escapeString(playlistId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.RumReplayPlaylistsApi.updateRumReplayPlaylist",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ return apiClient.invokeAPI(
+ "PUT",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Update rum replay playlist.
+ *
+ * See {@link #updateRumReplayPlaylistWithHttpInfo}.
+ *
+ * @param playlistId Unique identifier of the playlist. (required)
+ * @param body (required)
+ * @return CompletableFuture<ApiResponse<Playlist>>
+ */
+ public CompletableFuture> updateRumReplayPlaylistWithHttpInfoAsync(
+ Integer playlistId, Playlist body) {
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'playlistId' is set
+ if (playlistId == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'playlistId' when calling updateRumReplayPlaylist"));
+ 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 updateRumReplayPlaylist"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/rum/replay/playlists/{playlist_id}"
+ .replaceAll(
+ "\\{" + "playlist_id" + "\\}", apiClient.escapeString(playlistId.toString()));
+
+ Map