diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml
index 6bc9597abb6..94f4594ca87 100644
--- a/.generator/schemas/v2/openapi.yaml
+++ b/.generator/schemas/v2/openapi.yaml
@@ -12489,6 +12489,89 @@ components:
required:
- type
type: object
+ CreateConnectionRequest:
+ example:
+ data:
+ attributes:
+ fields:
+ - description: Customer subscription tier from `CRM`
+ display_name: Customer Tier
+ id: customer_tier
+ source_name: subscription_tier
+ type: string
+ - description: Customer lifetime value in `USD`
+ display_name: Lifetime Value
+ id: lifetime_value
+ source_name: ltv
+ type: number
+ join_attribute: user_email
+ join_type: email
+ type: ref_table
+ id: crm-integration
+ type: connection_id
+ properties:
+ data:
+ $ref: '#/components/schemas/CreateConnectionRequestData'
+ type: object
+ CreateConnectionRequestData:
+ properties:
+ attributes:
+ $ref: '#/components/schemas/CreateConnectionRequestDataAttributes'
+ id:
+ type: string
+ type:
+ $ref: '#/components/schemas/UpdateConnectionRequestDataType'
+ required:
+ - type
+ type: object
+ CreateConnectionRequestDataAttributes:
+ properties:
+ fields:
+ items:
+ $ref: '#/components/schemas/CreateConnectionRequestDataAttributesFieldsItems'
+ type: array
+ join_attribute:
+ example: ''
+ type: string
+ join_type:
+ example: ''
+ type: string
+ metadata:
+ additionalProperties:
+ type: string
+ type: object
+ type:
+ example: ''
+ type: string
+ required:
+ - join_attribute
+ - join_type
+ - type
+ type: object
+ CreateConnectionRequestDataAttributesFieldsItems:
+ properties:
+ description:
+ type: string
+ display_name:
+ type: string
+ groups:
+ items:
+ type: string
+ type: array
+ id:
+ example: ''
+ type: string
+ source_name:
+ example: ''
+ type: string
+ type:
+ example: ''
+ type: string
+ required:
+ - id
+ - source_name
+ - type
+ type: object
CreateCustomFrameworkRequest:
description: Request object to create a custom framework.
properties:
@@ -19701,6 +19784,140 @@ components:
from the other indexes.
type: string
type: object
+ FacetInfoRequest:
+ example:
+ data:
+ attributes:
+ facet_id: first_browser_name
+ limit: 10
+ search:
+ query: user_org_id:5001 AND first_country_code:US
+ term_search:
+ value: Chrome
+ id: facet_info_request
+ type: users_facet_info_request
+ properties:
+ data:
+ $ref: '#/components/schemas/FacetInfoRequestData'
+ type: object
+ FacetInfoRequestData:
+ properties:
+ attributes:
+ $ref: '#/components/schemas/FacetInfoRequestDataAttributes'
+ id:
+ type: string
+ type:
+ $ref: '#/components/schemas/FacetInfoRequestDataType'
+ required:
+ - type
+ type: object
+ FacetInfoRequestDataAttributes:
+ properties:
+ facet_id:
+ example: ''
+ type: string
+ limit:
+ example: 0
+ format: int64
+ type: integer
+ search:
+ $ref: '#/components/schemas/FacetInfoRequestDataAttributesSearch'
+ term_search:
+ $ref: '#/components/schemas/FacetInfoRequestDataAttributesTermSearch'
+ required:
+ - facet_id
+ - limit
+ type: object
+ FacetInfoRequestDataAttributesSearch:
+ properties:
+ query:
+ type: string
+ type: object
+ FacetInfoRequestDataAttributesTermSearch:
+ properties:
+ value:
+ type: string
+ type: object
+ FacetInfoRequestDataType:
+ default: users_facet_info_request
+ description: Users facet info request resource type.
+ enum:
+ - users_facet_info_request
+ example: users_facet_info_request
+ type: string
+ x-enum-varnames:
+ - USERS_FACET_INFO_REQUEST
+ FacetInfoResponse:
+ example:
+ data:
+ attributes:
+ result:
+ values:
+ - count: 4892
+ value: Chrome
+ - count: 2341
+ value: Safari
+ - count: 1567
+ value: Firefox
+ - count: 892
+ value: Edge
+ - count: 234
+ value: Opera
+ id: facet_info_response
+ type: users_facet_info
+ properties:
+ data:
+ $ref: '#/components/schemas/FacetInfoResponseData'
+ type: object
+ FacetInfoResponseData:
+ properties:
+ attributes:
+ $ref: '#/components/schemas/FacetInfoResponseDataAttributes'
+ id:
+ type: string
+ type:
+ $ref: '#/components/schemas/FacetInfoResponseDataType'
+ required:
+ - type
+ type: object
+ FacetInfoResponseDataAttributes:
+ properties:
+ result:
+ $ref: '#/components/schemas/FacetInfoResponseDataAttributesResult'
+ type: object
+ FacetInfoResponseDataAttributesResult:
+ properties:
+ range:
+ $ref: '#/components/schemas/FacetInfoResponseDataAttributesResultRange'
+ values:
+ items:
+ $ref: '#/components/schemas/FacetInfoResponseDataAttributesResultValuesItems'
+ type: array
+ type: object
+ FacetInfoResponseDataAttributesResultRange:
+ properties:
+ max:
+ type: object
+ min:
+ type: object
+ type: object
+ FacetInfoResponseDataAttributesResultValuesItems:
+ properties:
+ count:
+ format: int64
+ type: integer
+ value:
+ type: string
+ type: object
+ FacetInfoResponseDataType:
+ default: users_facet_info
+ description: Users facet info resource type.
+ enum:
+ - users_facet_info
+ example: users_facet_info
+ type: string
+ x-enum-varnames:
+ - USERS_FACET_INFO
FastlyAPIKey:
description: The definition of the `FastlyAPIKey` object.
properties:
@@ -22089,6 +22306,90 @@ components:
- ASSIGNEE
- CASE
- TEAM_OWNERS
+ GetMappingResponse:
+ example:
+ data:
+ attributes:
+ attributes:
+ - attribute: user_id
+ description: Unique user identifier
+ display_name: User ID
+ groups:
+ - Identity
+ is_custom: false
+ type: string
+ - attribute: user_email
+ description: User email address
+ display_name: Email Address
+ groups:
+ - Identity
+ - Contact
+ is_custom: false
+ type: string
+ - attribute: first_country_code
+ description: The ISO code of the country for the user's first session
+ display_name: First Country Code
+ groups:
+ - Geography
+ is_custom: false
+ type: string
+ - attribute: '@customer_tier'
+ description: Customer subscription tier
+ display_name: Customer Tier
+ groups:
+ - Business
+ is_custom: true
+ type: string
+ id: get_mappings_response
+ type: get_mappings_response
+ properties:
+ data:
+ $ref: '#/components/schemas/GetMappingResponseData'
+ type: object
+ GetMappingResponseData:
+ properties:
+ attributes:
+ $ref: '#/components/schemas/GetMappingResponseDataAttributes'
+ id:
+ type: string
+ type:
+ $ref: '#/components/schemas/GetMappingResponseDataType'
+ required:
+ - type
+ type: object
+ GetMappingResponseDataAttributes:
+ properties:
+ attributes:
+ items:
+ $ref: '#/components/schemas/GetMappingResponseDataAttributesAttributesItems'
+ type: array
+ type: object
+ GetMappingResponseDataAttributesAttributesItems:
+ properties:
+ attribute:
+ type: string
+ description:
+ type: string
+ display_name:
+ type: string
+ groups:
+ items:
+ type: string
+ type: array
+ is_custom:
+ type: boolean
+ type:
+ type: string
+ type: object
+ GetMappingResponseDataType:
+ default: get_mappings_response
+ description: Get mappings response resource type.
+ enum:
+ - get_mappings_response
+ example: get_mappings_response
+ type: string
+ x-enum-varnames:
+ - GET_MAPPINGS_RESPONSE
GetMultipleRulesetsRequest:
properties:
data:
@@ -27737,6 +28038,104 @@ components:
required:
- data
type: object
+ ListConnectionsResponse:
+ example:
+ data:
+ attributes:
+ connections:
+ - created_at: '0001-01-01T00:00:00Z'
+ created_by: 00000000-0000-0000-0000-000000000000
+ fields:
+ - description: Customer subscription tier
+ display_name: Customer Tier
+ groups:
+ - Business
+ - Subscription
+ id: customer_tier
+ source_name: subscription_tier
+ type: string
+ - description: Channel through which user signed up
+ display_name: Signup Source
+ groups:
+ - Marketing
+ - Attribution
+ id: signup_source
+ source_name: acquisition_channel
+ type: string
+ id: user-profiles-connection
+ join:
+ attribute: user_email
+ type: email
+ type: ref_table
+ updated_at: '0001-01-01T00:00:00Z'
+ updated_by: 00000000-0000-0000-0000-000000000000
+ id: list_connections_response
+ type: list_connections_response
+ properties:
+ data:
+ $ref: '#/components/schemas/ListConnectionsResponseData'
+ type: object
+ ListConnectionsResponseData:
+ properties:
+ attributes:
+ $ref: '#/components/schemas/ListConnectionsResponseDataAttributes'
+ id:
+ type: string
+ type:
+ $ref: '#/components/schemas/ListConnectionsResponseDataType'
+ required:
+ - type
+ type: object
+ ListConnectionsResponseDataAttributes:
+ properties:
+ connections:
+ items:
+ $ref: '#/components/schemas/ListConnectionsResponseDataAttributesConnectionsItems'
+ type: array
+ type: object
+ ListConnectionsResponseDataAttributesConnectionsItems:
+ properties:
+ created_at:
+ format: date-time
+ type: string
+ created_by:
+ type: string
+ fields:
+ items:
+ $ref: '#/components/schemas/CreateConnectionRequestDataAttributesFieldsItems'
+ type: array
+ id:
+ type: string
+ join:
+ $ref: '#/components/schemas/ListConnectionsResponseDataAttributesConnectionsItemsJoin'
+ metadata:
+ additionalProperties:
+ type: string
+ type: object
+ type:
+ type: string
+ updated_at:
+ format: date-time
+ type: string
+ updated_by:
+ type: string
+ type: object
+ ListConnectionsResponseDataAttributesConnectionsItemsJoin:
+ properties:
+ attribute:
+ type: string
+ type:
+ type: string
+ type: object
+ ListConnectionsResponseDataType:
+ default: list_connections_response
+ description: List connections response resource type.
+ enum:
+ - list_connections_response
+ example: list_connections_response
+ type: string
+ x-enum-varnames:
+ - LIST_CONNECTIONS_RESPONSE
ListDevicesResponse:
description: List devices response.
properties:
@@ -38196,6 +38595,153 @@ components:
- $ref: '#/components/schemas/ActionQuery'
- $ref: '#/components/schemas/DataTransform'
- $ref: '#/components/schemas/StateVariable'
+ QueryAccountRequest:
+ example:
+ data:
+ attributes:
+ limit: 20
+ query: plan_type:enterprise AND user_count:>100 AND subscription_status:active
+ select_columns:
+ - account_id
+ - account_name
+ - user_count
+ - plan_type
+ - subscription_status
+ - created_at
+ - mrr
+ - industry
+ sort:
+ field: user_count
+ order: DESC
+ wildcard_search_term: tech
+ id: query_account_request
+ type: query_account_request
+ properties:
+ data:
+ $ref: '#/components/schemas/QueryAccountRequestData'
+ type: object
+ QueryAccountRequestData:
+ properties:
+ attributes:
+ $ref: '#/components/schemas/QueryAccountRequestDataAttributes'
+ id:
+ type: string
+ type:
+ $ref: '#/components/schemas/QueryAccountRequestDataType'
+ required:
+ - type
+ type: object
+ QueryAccountRequestDataAttributes:
+ properties:
+ limit:
+ format: int64
+ type: integer
+ query:
+ type: string
+ select_columns:
+ items:
+ type: string
+ type: array
+ sort:
+ $ref: '#/components/schemas/QueryAccountRequestDataAttributesSort'
+ wildcard_search_term:
+ type: string
+ type: object
+ QueryAccountRequestDataAttributesSort:
+ properties:
+ field:
+ type: string
+ order:
+ type: string
+ type: object
+ QueryAccountRequestDataType:
+ default: query_account_request
+ description: Query account request resource type.
+ enum:
+ - query_account_request
+ example: query_account_request
+ type: string
+ x-enum-varnames:
+ - QUERY_ACCOUNT_REQUEST
+ QueryEventFilteredUsersRequest:
+ example:
+ data:
+ attributes:
+ event_query:
+ query: '@type:view AND @view.loading_time:>3000 AND @application.name:ecommerce-platform'
+ time_frame:
+ end: 1761309676
+ start: 1760100076
+ include_row_count: true
+ limit: 25
+ query: user_org_id:5001 AND first_country_code:US AND first_browser_name:Chrome
+ select_columns:
+ - user_id
+ - user_email
+ - first_country_code
+ - first_browser_name
+ - events_count
+ - session_count
+ - error_count
+ - avg_loading_time
+ id: query_event_filtered_users_request
+ type: query_event_filtered_users_request
+ properties:
+ data:
+ $ref: '#/components/schemas/QueryEventFilteredUsersRequestData'
+ type: object
+ QueryEventFilteredUsersRequestData:
+ properties:
+ attributes:
+ $ref: '#/components/schemas/QueryEventFilteredUsersRequestDataAttributes'
+ id:
+ type: string
+ type:
+ $ref: '#/components/schemas/QueryEventFilteredUsersRequestDataType'
+ required:
+ - type
+ type: object
+ QueryEventFilteredUsersRequestDataAttributes:
+ properties:
+ event_query:
+ $ref: '#/components/schemas/QueryEventFilteredUsersRequestDataAttributesEventQuery'
+ include_row_count:
+ type: boolean
+ limit:
+ format: int64
+ type: integer
+ query:
+ type: string
+ select_columns:
+ items:
+ type: string
+ type: array
+ type: object
+ QueryEventFilteredUsersRequestDataAttributesEventQuery:
+ properties:
+ query:
+ type: string
+ time_frame:
+ $ref: '#/components/schemas/QueryEventFilteredUsersRequestDataAttributesEventQueryTimeFrame'
+ type: object
+ QueryEventFilteredUsersRequestDataAttributesEventQueryTimeFrame:
+ properties:
+ end:
+ format: int64
+ type: integer
+ start:
+ format: int64
+ type: integer
+ type: object
+ QueryEventFilteredUsersRequestDataType:
+ default: query_event_filtered_users_request
+ description: Query event filtered users request resource type.
+ enum:
+ - query_event_filtered_users_request
+ example: query_event_filtered_users_request
+ type: string
+ x-enum-varnames:
+ - QUERY_EVENT_FILTERED_USERS_REQUEST
QueryFormula:
description: A formula for calculation based on one or more queries.
properties:
@@ -38209,6 +38755,81 @@ components:
required:
- formula
type: object
+ QueryResponse:
+ example:
+ data:
+ attributes:
+ hits:
+ - first_browser_name: Chrome
+ first_city: San Francisco
+ first_country_code: US
+ first_device_type: Desktop
+ last_seen: '2025-08-14T06:45:12.142Z'
+ session_count: 47
+ user_created: '2024-12-15T08:42:33.287Z'
+ user_email: john.smith@techcorp.com
+ user_id: '150847'
+ user_name: John Smith
+ user_org_id: '5001'
+ - first_browser_name: Chrome
+ first_city: Austin
+ first_country_code: US
+ first_device_type: Desktop
+ last_seen: '2025-08-14T05:22:08.951Z'
+ session_count: 89
+ user_created: '2024-11-28T14:17:45.634Z'
+ user_email: john.williams@techcorp.com
+ user_id: '150848'
+ user_name: John Williams
+ user_org_id: '5001'
+ - first_browser_name: Chrome
+ first_city: Seattle
+ first_country_code: US
+ first_device_type: Desktop
+ last_seen: '2025-08-14T04:18:34.726Z'
+ session_count: 23
+ user_created: '2025-01-03T16:33:21.445Z'
+ user_email: john.jones@techcorp.com
+ user_id: '150849'
+ user_name: John Jones
+ user_org_id: '5001'
+ total: 147
+ id: query_response
+ type: query_response
+ properties:
+ data:
+ $ref: '#/components/schemas/QueryResponseData'
+ type: object
+ QueryResponseData:
+ properties:
+ attributes:
+ $ref: '#/components/schemas/QueryResponseDataAttributes'
+ id:
+ type: string
+ type:
+ $ref: '#/components/schemas/QueryResponseDataType'
+ required:
+ - type
+ type: object
+ QueryResponseDataAttributes:
+ properties:
+ hits:
+ items:
+ additionalProperties: {}
+ type: array
+ total:
+ format: int64
+ type: integer
+ type: object
+ QueryResponseDataType:
+ default: query_response
+ description: Query response resource type.
+ enum:
+ - query_response
+ example: query_response
+ type: string
+ x-enum-varnames:
+ - QUERY_RESPONSE
QuerySortOrder:
default: desc
description: Direction of sort.
@@ -38219,6 +38840,74 @@ components:
x-enum-varnames:
- ASC
- DESC
+ QueryUsersRequest:
+ example:
+ data:
+ attributes:
+ limit: 25
+ query: user_email:*@techcorp.com AND first_country_code:US AND first_browser_name:Chrome
+ select_columns:
+ - user_id
+ - user_email
+ - user_name
+ - user_org_id
+ - first_country_code
+ - first_browser_name
+ - first_device_type
+ - last_seen
+ sort:
+ field: first_seen
+ order: DESC
+ wildcard_search_term: john
+ id: query_users_request
+ type: query_users_request
+ properties:
+ data:
+ $ref: '#/components/schemas/QueryUsersRequestData'
+ type: object
+ QueryUsersRequestData:
+ properties:
+ attributes:
+ $ref: '#/components/schemas/QueryUsersRequestDataAttributes'
+ id:
+ type: string
+ type:
+ $ref: '#/components/schemas/QueryUsersRequestDataType'
+ required:
+ - type
+ type: object
+ QueryUsersRequestDataAttributes:
+ properties:
+ limit:
+ format: int64
+ type: integer
+ query:
+ type: string
+ select_columns:
+ items:
+ type: string
+ type: array
+ sort:
+ $ref: '#/components/schemas/QueryUsersRequestDataAttributesSort'
+ wildcard_search_term:
+ type: string
+ type: object
+ QueryUsersRequestDataAttributesSort:
+ properties:
+ field:
+ type: string
+ order:
+ type: string
+ type: object
+ QueryUsersRequestDataType:
+ default: query_users_request
+ description: Query users request resource type.
+ enum:
+ - query_users_request
+ example: query_users_request
+ type: string
+ x-enum-varnames:
+ - QUERY_USERS_REQUEST
RUMAggregateBucketValue:
description: A bucket value, can be either a timeseries or a single value.
oneOf:
@@ -52083,6 +52772,88 @@ components:
description: The display name of the datastore.
type: string
type: object
+ UpdateConnectionRequest:
+ example:
+ data:
+ attributes:
+ fields_to_add:
+ - description: Net Promoter Score from customer surveys
+ display_name: NPS Score
+ groups:
+ - Satisfaction
+ - Metrics
+ id: nps_score
+ source_name: net_promoter_score
+ type: number
+ fields_to_delete:
+ - old_revenue_field
+ fields_to_update:
+ - field_id: lifetime_value
+ updated_display_name: Customer Lifetime Value (`USD`)
+ updated_groups:
+ - Financial
+ - Metrics
+ id: crm-integration
+ type: connection_id
+ properties:
+ data:
+ $ref: '#/components/schemas/UpdateConnectionRequestData'
+ type: object
+ UpdateConnectionRequestData:
+ properties:
+ attributes:
+ $ref: '#/components/schemas/UpdateConnectionRequestDataAttributes'
+ id:
+ example: ''
+ type: string
+ type:
+ $ref: '#/components/schemas/UpdateConnectionRequestDataType'
+ required:
+ - type
+ - id
+ type: object
+ UpdateConnectionRequestDataAttributes:
+ properties:
+ fields_to_add:
+ items:
+ $ref: '#/components/schemas/CreateConnectionRequestDataAttributesFieldsItems'
+ type: array
+ fields_to_delete:
+ items:
+ type: string
+ type: array
+ fields_to_update:
+ items:
+ $ref: '#/components/schemas/UpdateConnectionRequestDataAttributesFieldsToUpdateItems'
+ type: array
+ type: object
+ UpdateConnectionRequestDataAttributesFieldsToUpdateItems:
+ properties:
+ field_id:
+ example: ''
+ type: string
+ updated_description:
+ type: string
+ updated_display_name:
+ type: string
+ updated_field_id:
+ type: string
+ updated_groups:
+ items:
+ type: string
+ type: array
+ required:
+ - field_id
+ type: object
+ UpdateConnectionRequestDataType:
+ default: connection_id
+ description: Connection id resource type.
+ enum:
+ - connection_id
+ example: connection_id
+ type: string
+ x-enum-varnames:
+ - CONNECTION_ID
UpdateCustomFrameworkRequest:
description: Request object to update a custom framework.
properties:
@@ -70940,6 +71711,298 @@ paths:
x-permission:
operator: OPEN
permissions: []
+ /api/v2/product-analytics/accounts/facet_info:
+ post:
+ description: Get facet information for account attributes including possible
+ values and counts
+ operationId: GetAccountFacetInfo
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/FacetInfoRequest'
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/FacetInfoResponse'
+ description: Successful response with facet information
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ: []
+ summary: Get account facet info
+ tags:
+ - Rum Audience Management
+ x-unstable: '**Note**: This endpoint may be subject to changes.'
+ /api/v2/product-analytics/accounts/query:
+ post:
+ description: Query accounts with flexible filtering by account properties
+ operationId: QueryAccounts
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/QueryAccountRequest'
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/QueryResponse'
+ description: Successful response with account data
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ: []
+ summary: Query accounts
+ tags:
+ - Rum Audience Management
+ x-unstable: '**Note**: This endpoint may be subject to changes.'
+ /api/v2/product-analytics/users/event_filtered_query:
+ post:
+ description: Query users filtered by both user properties and event platform
+ data
+ operationId: QueryEventFilteredUsers
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/QueryEventFilteredUsersRequest'
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/QueryResponse'
+ description: Successful response with filtered user data
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ: []
+ summary: Query event filtered users
+ tags:
+ - Rum Audience Management
+ x-unstable: '**Note**: This endpoint may be subject to changes.'
+ /api/v2/product-analytics/users/facet_info:
+ post:
+ description: Get facet information for user attributes including possible values
+ and counts
+ operationId: GetUserFacetInfo
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/FacetInfoRequest'
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/FacetInfoResponse'
+ description: Successful response with facet information
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ: []
+ summary: Get user facet info
+ tags:
+ - Rum Audience Management
+ x-unstable: '**Note**: This endpoint may be subject to changes.'
+ /api/v2/product-analytics/users/query:
+ post:
+ description: Query users with flexible filtering by user properties, with optional
+ wildcard search
+ operationId: QueryUsers
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/QueryUsersRequest'
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/QueryResponse'
+ description: Successful response with user data
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ: []
+ summary: Query users
+ tags:
+ - Rum Audience Management
+ x-unstable: '**Note**: This endpoint may be subject to changes.'
+ /api/v2/product-analytics/{entity}/mapping:
+ get:
+ description: Get entity mapping configuration including all available attributes
+ and their properties
+ operationId: GetMapping
+ parameters:
+ - description: The entity for which to get the mapping
+ in: path
+ name: entity
+ required: true
+ schema:
+ example: users
+ type: string
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/GetMappingResponse'
+ description: Successful response with entity mapping configuration
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ: []
+ summary: Get mapping
+ tags:
+ - Rum Audience Management
+ x-unstable: '**Note**: This endpoint may be subject to changes.'
+ /api/v2/product-analytics/{entity}/mapping/connection:
+ post:
+ description: Create a new data connection and its fields for an entity
+ operationId: CreateConnection
+ parameters:
+ - description: The entity for which to create the connection
+ in: path
+ name: entity
+ required: true
+ schema:
+ example: users
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateConnectionRequest'
+ required: true
+ responses:
+ '201':
+ description: Connection created successfully
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ: []
+ summary: Create connection
+ tags:
+ - Rum Audience Management
+ x-unstable: '**Note**: This endpoint may be subject to changes.'
+ put:
+ description: Update an existing data connection by adding, updating, or deleting
+ fields
+ operationId: UpdateConnection
+ parameters:
+ - description: The entity for which to update the connection
+ in: path
+ name: entity
+ required: true
+ schema:
+ example: users
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UpdateConnectionRequest'
+ required: true
+ responses:
+ '200':
+ description: Connection updated successfully
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ: []
+ summary: Update connection
+ tags:
+ - Rum Audience Management
+ x-unstable: '**Note**: This endpoint may be subject to changes.'
+ /api/v2/product-analytics/{entity}/mapping/connection/{id}:
+ delete:
+ description: Delete an existing data connection for an entity
+ operationId: DeleteConnection
+ parameters:
+ - description: The connection ID to delete
+ in: path
+ name: id
+ required: true
+ schema:
+ example: connection-id-123
+ type: string
+ - description: The entity for which to delete the connection
+ in: path
+ name: entity
+ required: true
+ schema:
+ example: users
+ type: string
+ responses:
+ '204':
+ description: Connection deleted successfully
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ: []
+ summary: Delete connection
+ tags:
+ - Rum Audience Management
+ x-unstable: '**Note**: This endpoint may be subject to changes.'
+ /api/v2/product-analytics/{entity}/mapping/connections:
+ get:
+ description: List all data connections for an entity
+ operationId: ListConnections
+ parameters:
+ - description: The entity for which to list connections
+ in: path
+ name: entity
+ required: true
+ schema:
+ example: users
+ type: string
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ListConnectionsResponse'
+ description: Successful response with list of connections
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ: []
+ summary: List connections
+ tags:
+ - Rum Audience Management
+ x-unstable: '**Note**: This endpoint may be subject to changes.'
/api/v2/query/scalar:
post:
description: 'Query scalar values (as seen on Query Value, Table, and Toplist
@@ -81770,6 +82833,8 @@ tags:
[Pipelines page](https://app.datadoghq.com/logs/pipelines).'
name: Roles
+- description: Auto-generated tag Rum Audience Management
+ name: Rum Audience Management
- description: Manage configuration of [rum-based metrics](https://app.datadoghq.com/rum/generate-metrics)
for your organization.
externalDocs:
diff --git a/examples/v2/rum-audience-management/CreateConnection.java b/examples/v2/rum-audience-management/CreateConnection.java
new file mode 100644
index 00000000000..aceea4a2ed3
--- /dev/null
+++ b/examples/v2/rum-audience-management/CreateConnection.java
@@ -0,0 +1,55 @@
+// Create connection returns "Connection created successfully" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.RumAudienceManagementApi;
+import com.datadog.api.client.v2.model.CreateConnectionRequest;
+import com.datadog.api.client.v2.model.CreateConnectionRequestData;
+import com.datadog.api.client.v2.model.CreateConnectionRequestDataAttributes;
+import com.datadog.api.client.v2.model.CreateConnectionRequestDataAttributesFieldsItems;
+import com.datadog.api.client.v2.model.UpdateConnectionRequestDataType;
+import java.util.Arrays;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.createConnection", true);
+ RumAudienceManagementApi apiInstance = new RumAudienceManagementApi(defaultClient);
+
+ CreateConnectionRequest body =
+ new CreateConnectionRequest()
+ .data(
+ new CreateConnectionRequestData()
+ .attributes(
+ new CreateConnectionRequestDataAttributes()
+ .fields(
+ Arrays.asList(
+ new CreateConnectionRequestDataAttributesFieldsItems()
+ .description("Customer subscription tier from `CRM`")
+ .displayName("Customer Tier")
+ .id("customer_tier")
+ .sourceName("subscription_tier")
+ .type("string"),
+ new CreateConnectionRequestDataAttributesFieldsItems()
+ .description("Customer lifetime value in `USD`")
+ .displayName("Lifetime Value")
+ .id("lifetime_value")
+ .sourceName("ltv")
+ .type("number")))
+ .joinAttribute("user_email")
+ .joinType("email")
+ .type("ref_table"))
+ .id("crm-integration")
+ .type(UpdateConnectionRequestDataType.CONNECTION_ID));
+
+ try {
+ apiInstance.createConnection("users", body);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling RumAudienceManagementApi#createConnection");
+ 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-audience-management/DeleteConnection.java b/examples/v2/rum-audience-management/DeleteConnection.java
new file mode 100644
index 00000000000..cc152257a5c
--- /dev/null
+++ b/examples/v2/rum-audience-management/DeleteConnection.java
@@ -0,0 +1,23 @@
+// Delete connection returns "Connection deleted successfully" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.RumAudienceManagementApi;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.deleteConnection", true);
+ RumAudienceManagementApi apiInstance = new RumAudienceManagementApi(defaultClient);
+
+ try {
+ apiInstance.deleteConnection("connection-id-123", "users");
+ } catch (ApiException e) {
+ System.err.println("Exception when calling RumAudienceManagementApi#deleteConnection");
+ 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-audience-management/GetAccountFacetInfo.java b/examples/v2/rum-audience-management/GetAccountFacetInfo.java
new file mode 100644
index 00000000000..b5c6c190b77
--- /dev/null
+++ b/examples/v2/rum-audience-management/GetAccountFacetInfo.java
@@ -0,0 +1,47 @@
+// Get account facet info returns "Successful response with facet information" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.RumAudienceManagementApi;
+import com.datadog.api.client.v2.model.FacetInfoRequest;
+import com.datadog.api.client.v2.model.FacetInfoRequestData;
+import com.datadog.api.client.v2.model.FacetInfoRequestDataAttributes;
+import com.datadog.api.client.v2.model.FacetInfoRequestDataAttributesSearch;
+import com.datadog.api.client.v2.model.FacetInfoRequestDataAttributesTermSearch;
+import com.datadog.api.client.v2.model.FacetInfoRequestDataType;
+import com.datadog.api.client.v2.model.FacetInfoResponse;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.getAccountFacetInfo", true);
+ RumAudienceManagementApi apiInstance = new RumAudienceManagementApi(defaultClient);
+
+ FacetInfoRequest body =
+ new FacetInfoRequest()
+ .data(
+ new FacetInfoRequestData()
+ .attributes(
+ new FacetInfoRequestDataAttributes()
+ .facetId("first_browser_name")
+ .limit(10L)
+ .search(
+ new FacetInfoRequestDataAttributesSearch()
+ .query("user_org_id:5001 AND first_country_code:US"))
+ .termSearch(
+ new FacetInfoRequestDataAttributesTermSearch().value("Chrome")))
+ .id("facet_info_request")
+ .type(FacetInfoRequestDataType.USERS_FACET_INFO_REQUEST));
+
+ try {
+ FacetInfoResponse result = apiInstance.getAccountFacetInfo(body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling RumAudienceManagementApi#getAccountFacetInfo");
+ 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-audience-management/GetMapping.java b/examples/v2/rum-audience-management/GetMapping.java
new file mode 100644
index 00000000000..3fbd455edbd
--- /dev/null
+++ b/examples/v2/rum-audience-management/GetMapping.java
@@ -0,0 +1,25 @@
+// Get mapping returns "Successful response with entity mapping configuration" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.RumAudienceManagementApi;
+import com.datadog.api.client.v2.model.GetMappingResponse;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.getMapping", true);
+ RumAudienceManagementApi apiInstance = new RumAudienceManagementApi(defaultClient);
+
+ try {
+ GetMappingResponse result = apiInstance.getMapping("users");
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling RumAudienceManagementApi#getMapping");
+ 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-audience-management/GetUserFacetInfo.java b/examples/v2/rum-audience-management/GetUserFacetInfo.java
new file mode 100644
index 00000000000..f9ea311f12a
--- /dev/null
+++ b/examples/v2/rum-audience-management/GetUserFacetInfo.java
@@ -0,0 +1,47 @@
+// Get user facet info returns "Successful response with facet information" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.RumAudienceManagementApi;
+import com.datadog.api.client.v2.model.FacetInfoRequest;
+import com.datadog.api.client.v2.model.FacetInfoRequestData;
+import com.datadog.api.client.v2.model.FacetInfoRequestDataAttributes;
+import com.datadog.api.client.v2.model.FacetInfoRequestDataAttributesSearch;
+import com.datadog.api.client.v2.model.FacetInfoRequestDataAttributesTermSearch;
+import com.datadog.api.client.v2.model.FacetInfoRequestDataType;
+import com.datadog.api.client.v2.model.FacetInfoResponse;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.getUserFacetInfo", true);
+ RumAudienceManagementApi apiInstance = new RumAudienceManagementApi(defaultClient);
+
+ FacetInfoRequest body =
+ new FacetInfoRequest()
+ .data(
+ new FacetInfoRequestData()
+ .attributes(
+ new FacetInfoRequestDataAttributes()
+ .facetId("first_browser_name")
+ .limit(10L)
+ .search(
+ new FacetInfoRequestDataAttributesSearch()
+ .query("user_org_id:5001 AND first_country_code:US"))
+ .termSearch(
+ new FacetInfoRequestDataAttributesTermSearch().value("Chrome")))
+ .id("facet_info_request")
+ .type(FacetInfoRequestDataType.USERS_FACET_INFO_REQUEST));
+
+ try {
+ FacetInfoResponse result = apiInstance.getUserFacetInfo(body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling RumAudienceManagementApi#getUserFacetInfo");
+ 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-audience-management/ListConnections.java b/examples/v2/rum-audience-management/ListConnections.java
new file mode 100644
index 00000000000..e175a4e5b8c
--- /dev/null
+++ b/examples/v2/rum-audience-management/ListConnections.java
@@ -0,0 +1,25 @@
+// List connections returns "Successful response with list of connections" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.RumAudienceManagementApi;
+import com.datadog.api.client.v2.model.ListConnectionsResponse;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.listConnections", true);
+ RumAudienceManagementApi apiInstance = new RumAudienceManagementApi(defaultClient);
+
+ try {
+ ListConnectionsResponse result = apiInstance.listConnections("users");
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling RumAudienceManagementApi#listConnections");
+ 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-audience-management/QueryAccounts.java b/examples/v2/rum-audience-management/QueryAccounts.java
new file mode 100644
index 00000000000..c4d51edb470
--- /dev/null
+++ b/examples/v2/rum-audience-management/QueryAccounts.java
@@ -0,0 +1,59 @@
+// Query accounts returns "Successful response with account data" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.RumAudienceManagementApi;
+import com.datadog.api.client.v2.model.QueryAccountRequest;
+import com.datadog.api.client.v2.model.QueryAccountRequestData;
+import com.datadog.api.client.v2.model.QueryAccountRequestDataAttributes;
+import com.datadog.api.client.v2.model.QueryAccountRequestDataAttributesSort;
+import com.datadog.api.client.v2.model.QueryAccountRequestDataType;
+import com.datadog.api.client.v2.model.QueryResponse;
+import java.util.Arrays;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.queryAccounts", true);
+ RumAudienceManagementApi apiInstance = new RumAudienceManagementApi(defaultClient);
+
+ QueryAccountRequest body =
+ new QueryAccountRequest()
+ .data(
+ new QueryAccountRequestData()
+ .attributes(
+ new QueryAccountRequestDataAttributes()
+ .limit(20L)
+ .query(
+ "plan_type:enterprise AND user_count:>100 AND"
+ + " subscription_status:active")
+ .selectColumns(
+ Arrays.asList(
+ "account_id",
+ "account_name",
+ "user_count",
+ "plan_type",
+ "subscription_status",
+ "created_at",
+ "mrr",
+ "industry"))
+ .sort(
+ new QueryAccountRequestDataAttributesSort()
+ .field("user_count")
+ .order("DESC"))
+ .wildcardSearchTerm("tech"))
+ .id("query_account_request")
+ .type(QueryAccountRequestDataType.QUERY_ACCOUNT_REQUEST));
+
+ try {
+ QueryResponse result = apiInstance.queryAccounts(body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling RumAudienceManagementApi#queryAccounts");
+ 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-audience-management/QueryEventFilteredUsers.java b/examples/v2/rum-audience-management/QueryEventFilteredUsers.java
new file mode 100644
index 00000000000..3a72708f116
--- /dev/null
+++ b/examples/v2/rum-audience-management/QueryEventFilteredUsers.java
@@ -0,0 +1,66 @@
+// Query event filtered users returns "Successful response with filtered user data" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.RumAudienceManagementApi;
+import com.datadog.api.client.v2.model.QueryEventFilteredUsersRequest;
+import com.datadog.api.client.v2.model.QueryEventFilteredUsersRequestData;
+import com.datadog.api.client.v2.model.QueryEventFilteredUsersRequestDataAttributes;
+import com.datadog.api.client.v2.model.QueryEventFilteredUsersRequestDataAttributesEventQuery;
+import com.datadog.api.client.v2.model.QueryEventFilteredUsersRequestDataAttributesEventQueryTimeFrame;
+import com.datadog.api.client.v2.model.QueryEventFilteredUsersRequestDataType;
+import com.datadog.api.client.v2.model.QueryResponse;
+import java.util.Arrays;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.queryEventFilteredUsers", true);
+ RumAudienceManagementApi apiInstance = new RumAudienceManagementApi(defaultClient);
+
+ QueryEventFilteredUsersRequest body =
+ new QueryEventFilteredUsersRequest()
+ .data(
+ new QueryEventFilteredUsersRequestData()
+ .attributes(
+ new QueryEventFilteredUsersRequestDataAttributes()
+ .eventQuery(
+ new QueryEventFilteredUsersRequestDataAttributesEventQuery()
+ .query(
+ "@type:view AND @view.loading_time:>3000 AND"
+ + " @application.name:ecommerce-platform")
+ .timeFrame(
+ new QueryEventFilteredUsersRequestDataAttributesEventQueryTimeFrame()
+ .end(1761309676L)
+ .start(1760100076L)))
+ .includeRowCount(true)
+ .limit(25L)
+ .query(
+ "user_org_id:5001 AND first_country_code:US AND"
+ + " first_browser_name:Chrome")
+ .selectColumns(
+ Arrays.asList(
+ "user_id",
+ "user_email",
+ "first_country_code",
+ "first_browser_name",
+ "events_count",
+ "session_count",
+ "error_count",
+ "avg_loading_time")))
+ .id("query_event_filtered_users_request")
+ .type(
+ QueryEventFilteredUsersRequestDataType.QUERY_EVENT_FILTERED_USERS_REQUEST));
+
+ try {
+ QueryResponse result = apiInstance.queryEventFilteredUsers(body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling RumAudienceManagementApi#queryEventFilteredUsers");
+ 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-audience-management/QueryUsers.java b/examples/v2/rum-audience-management/QueryUsers.java
new file mode 100644
index 00000000000..24725ed1238
--- /dev/null
+++ b/examples/v2/rum-audience-management/QueryUsers.java
@@ -0,0 +1,59 @@
+// Query users returns "Successful response with user data" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.RumAudienceManagementApi;
+import com.datadog.api.client.v2.model.QueryResponse;
+import com.datadog.api.client.v2.model.QueryUsersRequest;
+import com.datadog.api.client.v2.model.QueryUsersRequestData;
+import com.datadog.api.client.v2.model.QueryUsersRequestDataAttributes;
+import com.datadog.api.client.v2.model.QueryUsersRequestDataAttributesSort;
+import com.datadog.api.client.v2.model.QueryUsersRequestDataType;
+import java.util.Arrays;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.queryUsers", true);
+ RumAudienceManagementApi apiInstance = new RumAudienceManagementApi(defaultClient);
+
+ QueryUsersRequest body =
+ new QueryUsersRequest()
+ .data(
+ new QueryUsersRequestData()
+ .attributes(
+ new QueryUsersRequestDataAttributes()
+ .limit(25L)
+ .query(
+ "user_email:*@techcorp.com AND first_country_code:US AND"
+ + " first_browser_name:Chrome")
+ .selectColumns(
+ Arrays.asList(
+ "user_id",
+ "user_email",
+ "user_name",
+ "user_org_id",
+ "first_country_code",
+ "first_browser_name",
+ "first_device_type",
+ "last_seen"))
+ .sort(
+ new QueryUsersRequestDataAttributesSort()
+ .field("first_seen")
+ .order("DESC"))
+ .wildcardSearchTerm("john"))
+ .id("query_users_request")
+ .type(QueryUsersRequestDataType.QUERY_USERS_REQUEST));
+
+ try {
+ QueryResponse result = apiInstance.queryUsers(body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling RumAudienceManagementApi#queryUsers");
+ 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-audience-management/UpdateConnection.java b/examples/v2/rum-audience-management/UpdateConnection.java
new file mode 100644
index 00000000000..9ea97eba268
--- /dev/null
+++ b/examples/v2/rum-audience-management/UpdateConnection.java
@@ -0,0 +1,56 @@
+// Update connection returns "Connection updated successfully" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.RumAudienceManagementApi;
+import com.datadog.api.client.v2.model.CreateConnectionRequestDataAttributesFieldsItems;
+import com.datadog.api.client.v2.model.UpdateConnectionRequest;
+import com.datadog.api.client.v2.model.UpdateConnectionRequestData;
+import com.datadog.api.client.v2.model.UpdateConnectionRequestDataAttributes;
+import com.datadog.api.client.v2.model.UpdateConnectionRequestDataAttributesFieldsToUpdateItems;
+import com.datadog.api.client.v2.model.UpdateConnectionRequestDataType;
+import java.util.Arrays;
+import java.util.Collections;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.updateConnection", true);
+ RumAudienceManagementApi apiInstance = new RumAudienceManagementApi(defaultClient);
+
+ UpdateConnectionRequest body =
+ new UpdateConnectionRequest()
+ .data(
+ new UpdateConnectionRequestData()
+ .attributes(
+ new UpdateConnectionRequestDataAttributes()
+ .fieldsToAdd(
+ Collections.singletonList(
+ new CreateConnectionRequestDataAttributesFieldsItems()
+ .description("Net Promoter Score from customer surveys")
+ .displayName("NPS Score")
+ .groups(Arrays.asList("Satisfaction", "Metrics"))
+ .id("nps_score")
+ .sourceName("net_promoter_score")
+ .type("number")))
+ .fieldsToDelete(Collections.singletonList("old_revenue_field"))
+ .fieldsToUpdate(
+ Collections.singletonList(
+ new UpdateConnectionRequestDataAttributesFieldsToUpdateItems()
+ .fieldId("lifetime_value")
+ .updatedDisplayName("Customer Lifetime Value (`USD`)")
+ .updatedGroups(Arrays.asList("Financial", "Metrics")))))
+ .id("crm-integration")
+ .type(UpdateConnectionRequestDataType.CONNECTION_ID));
+
+ try {
+ apiInstance.updateConnection("users", body);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling RumAudienceManagementApi#updateConnection");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/ApiClient.java b/src/main/java/com/datadog/api/client/ApiClient.java
index 790a403d960..86942c2362d 100644
--- a/src/main/java/com/datadog/api/client/ApiClient.java
+++ b/src/main/java/com/datadog/api/client/ApiClient.java
@@ -769,6 +769,16 @@ public class ApiClient {
put("v2.validateExistingMonitorUserTemplate", false);
put("v2.validateMonitorUserTemplate", false);
put("v2.listRoleTemplates", false);
+ put("v2.createConnection", false);
+ put("v2.deleteConnection", false);
+ put("v2.getAccountFacetInfo", false);
+ put("v2.getMapping", false);
+ put("v2.getUserFacetInfo", false);
+ put("v2.listConnections", false);
+ put("v2.queryAccounts", false);
+ put("v2.queryEventFilteredUsers", false);
+ put("v2.queryUsers", false);
+ put("v2.updateConnection", false);
put("v2.createPipeline", false);
put("v2.deletePipeline", false);
put("v2.getPipeline", false);
diff --git a/src/main/java/com/datadog/api/client/v2/api/RumAudienceManagementApi.java b/src/main/java/com/datadog/api/client/v2/api/RumAudienceManagementApi.java
new file mode 100644
index 00000000000..1546c58d57a
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/api/RumAudienceManagementApi.java
@@ -0,0 +1,1590 @@
+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.CreateConnectionRequest;
+import com.datadog.api.client.v2.model.FacetInfoRequest;
+import com.datadog.api.client.v2.model.FacetInfoResponse;
+import com.datadog.api.client.v2.model.GetMappingResponse;
+import com.datadog.api.client.v2.model.ListConnectionsResponse;
+import com.datadog.api.client.v2.model.QueryAccountRequest;
+import com.datadog.api.client.v2.model.QueryEventFilteredUsersRequest;
+import com.datadog.api.client.v2.model.QueryResponse;
+import com.datadog.api.client.v2.model.QueryUsersRequest;
+import com.datadog.api.client.v2.model.UpdateConnectionRequest;
+import jakarta.ws.rs.client.Invocation;
+import jakarta.ws.rs.core.GenericType;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.CompletableFuture;
+
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class RumAudienceManagementApi {
+ private ApiClient apiClient;
+
+ public RumAudienceManagementApi() {
+ this(ApiClient.getDefaultApiClient());
+ }
+
+ public RumAudienceManagementApi(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 connection.
+ *
+ *
See {@link #createConnectionWithHttpInfo}.
+ *
+ * @param entity The entity for which to create the connection (required)
+ * @param body (required)
+ * @throws ApiException if fails to make API call
+ */
+ public void createConnection(String entity, CreateConnectionRequest body) throws ApiException {
+ createConnectionWithHttpInfo(entity, body);
+ }
+
+ /**
+ * Create connection.
+ *
+ *
See {@link #createConnectionWithHttpInfoAsync}.
+ *
+ * @param entity The entity for which to create the connection (required)
+ * @param body (required)
+ * @return CompletableFuture
+ */
+ public CompletableFuture createConnectionAsync(
+ String entity, CreateConnectionRequest body) {
+ return createConnectionWithHttpInfoAsync(entity, body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Create a new data connection and its fields for an entity
+ *
+ * @param entity The entity for which to create the connection (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 |
+ * | 201 | Connection created successfully | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse createConnectionWithHttpInfo(String entity, CreateConnectionRequest body)
+ throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "createConnection";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId));
+ }
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'entity' is set
+ if (entity == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'entity' when calling createConnection");
+ }
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'body' when calling createConnection");
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/product-analytics/{entity}/mapping/connection"
+ .replaceAll("\\{" + "entity" + "\\}", apiClient.escapeString(entity.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.RumAudienceManagementApi.createConnection",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"*/*"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ return apiClient.invokeAPI(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ null);
+ }
+
+ /**
+ * Create connection.
+ *
+ * See {@link #createConnectionWithHttpInfo}.
+ *
+ * @param entity The entity for which to create the connection (required)
+ * @param body (required)
+ * @return CompletableFuture<ApiResponse<Void>>
+ */
+ public CompletableFuture> createConnectionWithHttpInfoAsync(
+ String entity, CreateConnectionRequest body) {
+ // Check if unstable operation is enabled
+ String operationId = "createConnection";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)));
+ return result;
+ }
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'entity' is set
+ if (entity == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400, "Missing the required parameter 'entity' when calling createConnection"));
+ 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 createConnection"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/product-analytics/{entity}/mapping/connection"
+ .replaceAll("\\{" + "entity" + "\\}", apiClient.escapeString(entity.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.RumAudienceManagementApi.createConnection",
+ 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(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ null);
+ }
+
+ /**
+ * Delete connection.
+ *
+ * See {@link #deleteConnectionWithHttpInfo}.
+ *
+ * @param id The connection ID to delete (required)
+ * @param entity The entity for which to delete the connection (required)
+ * @throws ApiException if fails to make API call
+ */
+ public void deleteConnection(String id, String entity) throws ApiException {
+ deleteConnectionWithHttpInfo(id, entity);
+ }
+
+ /**
+ * Delete connection.
+ *
+ *
See {@link #deleteConnectionWithHttpInfoAsync}.
+ *
+ * @param id The connection ID to delete (required)
+ * @param entity The entity for which to delete the connection (required)
+ * @return CompletableFuture
+ */
+ public CompletableFuture deleteConnectionAsync(String id, String entity) {
+ return deleteConnectionWithHttpInfoAsync(id, entity)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Delete an existing data connection for an entity
+ *
+ * @param id The connection ID to delete (required)
+ * @param entity The entity for which to delete the connection (required)
+ * @return ApiResponse<Void>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 204 | Connection deleted successfully | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse deleteConnectionWithHttpInfo(String id, String entity)
+ throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "deleteConnection";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId));
+ }
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'id' is set
+ if (id == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'id' when calling deleteConnection");
+ }
+
+ // verify the required parameter 'entity' is set
+ if (entity == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'entity' when calling deleteConnection");
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/product-analytics/{entity}/mapping/connection/{id}"
+ .replaceAll("\\{" + "id" + "\\}", apiClient.escapeString(id.toString()))
+ .replaceAll("\\{" + "entity" + "\\}", apiClient.escapeString(entity.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.RumAudienceManagementApi.deleteConnection",
+ 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 connection.
+ *
+ * See {@link #deleteConnectionWithHttpInfo}.
+ *
+ * @param id The connection ID to delete (required)
+ * @param entity The entity for which to delete the connection (required)
+ * @return CompletableFuture<ApiResponse<Void>>
+ */
+ public CompletableFuture> deleteConnectionWithHttpInfoAsync(
+ String id, String entity) {
+ // Check if unstable operation is enabled
+ String operationId = "deleteConnection";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)));
+ return result;
+ }
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'id' is set
+ if (id == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400, "Missing the required parameter 'id' when calling deleteConnection"));
+ return result;
+ }
+
+ // verify the required parameter 'entity' is set
+ if (entity == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400, "Missing the required parameter 'entity' when calling deleteConnection"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/product-analytics/{entity}/mapping/connection/{id}"
+ .replaceAll("\\{" + "id" + "\\}", apiClient.escapeString(id.toString()))
+ .replaceAll("\\{" + "entity" + "\\}", apiClient.escapeString(entity.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.RumAudienceManagementApi.deleteConnection",
+ 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 account facet info.
+ *
+ * See {@link #getAccountFacetInfoWithHttpInfo}.
+ *
+ * @param body (required)
+ * @return FacetInfoResponse
+ * @throws ApiException if fails to make API call
+ */
+ public FacetInfoResponse getAccountFacetInfo(FacetInfoRequest body) throws ApiException {
+ return getAccountFacetInfoWithHttpInfo(body).getData();
+ }
+
+ /**
+ * Get account facet info.
+ *
+ *
See {@link #getAccountFacetInfoWithHttpInfoAsync}.
+ *
+ * @param body (required)
+ * @return CompletableFuture<FacetInfoResponse>
+ */
+ public CompletableFuture getAccountFacetInfoAsync(FacetInfoRequest body) {
+ return getAccountFacetInfoWithHttpInfoAsync(body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Get facet information for account attributes including possible values and counts
+ *
+ * @param body (required)
+ * @return ApiResponse<FacetInfoResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | Successful response with facet information | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse getAccountFacetInfoWithHttpInfo(FacetInfoRequest body)
+ throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "getAccountFacetInfo";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId));
+ }
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'body' when calling getAccountFacetInfo");
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/product-analytics/accounts/facet_info";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.RumAudienceManagementApi.getAccountFacetInfo",
+ 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() {});
+ }
+
+ /**
+ * Get account facet info.
+ *
+ * See {@link #getAccountFacetInfoWithHttpInfo}.
+ *
+ * @param body (required)
+ * @return CompletableFuture<ApiResponse<FacetInfoResponse>>
+ */
+ public CompletableFuture> getAccountFacetInfoWithHttpInfoAsync(
+ FacetInfoRequest body) {
+ // Check if unstable operation is enabled
+ String operationId = "getAccountFacetInfo";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)));
+ return result;
+ }
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400, "Missing the required parameter 'body' when calling getAccountFacetInfo"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/product-analytics/accounts/facet_info";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.RumAudienceManagementApi.getAccountFacetInfo",
+ 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() {});
+ }
+
+ /**
+ * Get mapping.
+ *
+ * See {@link #getMappingWithHttpInfo}.
+ *
+ * @param entity The entity for which to get the mapping (required)
+ * @return GetMappingResponse
+ * @throws ApiException if fails to make API call
+ */
+ public GetMappingResponse getMapping(String entity) throws ApiException {
+ return getMappingWithHttpInfo(entity).getData();
+ }
+
+ /**
+ * Get mapping.
+ *
+ *
See {@link #getMappingWithHttpInfoAsync}.
+ *
+ * @param entity The entity for which to get the mapping (required)
+ * @return CompletableFuture<GetMappingResponse>
+ */
+ public CompletableFuture getMappingAsync(String entity) {
+ return getMappingWithHttpInfoAsync(entity)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Get entity mapping configuration including all available attributes and their properties
+ *
+ * @param entity The entity for which to get the mapping (required)
+ * @return ApiResponse<GetMappingResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | Successful response with entity mapping configuration | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse getMappingWithHttpInfo(String entity) throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "getMapping";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId));
+ }
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'entity' is set
+ if (entity == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'entity' when calling getMapping");
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/product-analytics/{entity}/mapping"
+ .replaceAll("\\{" + "entity" + "\\}", apiClient.escapeString(entity.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.RumAudienceManagementApi.getMapping",
+ 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 mapping.
+ *
+ * See {@link #getMappingWithHttpInfo}.
+ *
+ * @param entity The entity for which to get the mapping (required)
+ * @return CompletableFuture<ApiResponse<GetMappingResponse>>
+ */
+ public CompletableFuture> getMappingWithHttpInfoAsync(
+ String entity) {
+ // Check if unstable operation is enabled
+ String operationId = "getMapping";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)));
+ return result;
+ }
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'entity' is set
+ if (entity == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(400, "Missing the required parameter 'entity' when calling getMapping"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/product-analytics/{entity}/mapping"
+ .replaceAll("\\{" + "entity" + "\\}", apiClient.escapeString(entity.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.RumAudienceManagementApi.getMapping",
+ 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() {});
+ }
+
+ /**
+ * Get user facet info.
+ *
+ * See {@link #getUserFacetInfoWithHttpInfo}.
+ *
+ * @param body (required)
+ * @return FacetInfoResponse
+ * @throws ApiException if fails to make API call
+ */
+ public FacetInfoResponse getUserFacetInfo(FacetInfoRequest body) throws ApiException {
+ return getUserFacetInfoWithHttpInfo(body).getData();
+ }
+
+ /**
+ * Get user facet info.
+ *
+ *
See {@link #getUserFacetInfoWithHttpInfoAsync}.
+ *
+ * @param body (required)
+ * @return CompletableFuture<FacetInfoResponse>
+ */
+ public CompletableFuture getUserFacetInfoAsync(FacetInfoRequest body) {
+ return getUserFacetInfoWithHttpInfoAsync(body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Get facet information for user attributes including possible values and counts
+ *
+ * @param body (required)
+ * @return ApiResponse<FacetInfoResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | Successful response with facet information | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse getUserFacetInfoWithHttpInfo(FacetInfoRequest body)
+ throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "getUserFacetInfo";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId));
+ }
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'body' when calling getUserFacetInfo");
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/product-analytics/users/facet_info";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.RumAudienceManagementApi.getUserFacetInfo",
+ 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() {});
+ }
+
+ /**
+ * Get user facet info.
+ *
+ * See {@link #getUserFacetInfoWithHttpInfo}.
+ *
+ * @param body (required)
+ * @return CompletableFuture<ApiResponse<FacetInfoResponse>>
+ */
+ public CompletableFuture> getUserFacetInfoWithHttpInfoAsync(
+ FacetInfoRequest body) {
+ // Check if unstable operation is enabled
+ String operationId = "getUserFacetInfo";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)));
+ return result;
+ }
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400, "Missing the required parameter 'body' when calling getUserFacetInfo"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/product-analytics/users/facet_info";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.RumAudienceManagementApi.getUserFacetInfo",
+ 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() {});
+ }
+
+ /**
+ * List connections.
+ *
+ * See {@link #listConnectionsWithHttpInfo}.
+ *
+ * @param entity The entity for which to list connections (required)
+ * @return ListConnectionsResponse
+ * @throws ApiException if fails to make API call
+ */
+ public ListConnectionsResponse listConnections(String entity) throws ApiException {
+ return listConnectionsWithHttpInfo(entity).getData();
+ }
+
+ /**
+ * List connections.
+ *
+ *
See {@link #listConnectionsWithHttpInfoAsync}.
+ *
+ * @param entity The entity for which to list connections (required)
+ * @return CompletableFuture<ListConnectionsResponse>
+ */
+ public CompletableFuture listConnectionsAsync(String entity) {
+ return listConnectionsWithHttpInfoAsync(entity)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * List all data connections for an entity
+ *
+ * @param entity The entity for which to list connections (required)
+ * @return ApiResponse<ListConnectionsResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | Successful response with list of connections | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse listConnectionsWithHttpInfo(String entity)
+ throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "listConnections";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId));
+ }
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'entity' is set
+ if (entity == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'entity' when calling listConnections");
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/product-analytics/{entity}/mapping/connections"
+ .replaceAll("\\{" + "entity" + "\\}", apiClient.escapeString(entity.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.RumAudienceManagementApi.listConnections",
+ 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() {});
+ }
+
+ /**
+ * List connections.
+ *
+ * See {@link #listConnectionsWithHttpInfo}.
+ *
+ * @param entity The entity for which to list connections (required)
+ * @return CompletableFuture<ApiResponse<ListConnectionsResponse>>
+ */
+ public CompletableFuture> listConnectionsWithHttpInfoAsync(
+ String entity) {
+ // Check if unstable operation is enabled
+ String operationId = "listConnections";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)));
+ return result;
+ }
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'entity' is set
+ if (entity == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400, "Missing the required parameter 'entity' when calling listConnections"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/product-analytics/{entity}/mapping/connections"
+ .replaceAll("\\{" + "entity" + "\\}", apiClient.escapeString(entity.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.RumAudienceManagementApi.listConnections",
+ 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() {});
+ }
+
+ /**
+ * Query accounts.
+ *
+ * See {@link #queryAccountsWithHttpInfo}.
+ *
+ * @param body (required)
+ * @return QueryResponse
+ * @throws ApiException if fails to make API call
+ */
+ public QueryResponse queryAccounts(QueryAccountRequest body) throws ApiException {
+ return queryAccountsWithHttpInfo(body).getData();
+ }
+
+ /**
+ * Query accounts.
+ *
+ *
See {@link #queryAccountsWithHttpInfoAsync}.
+ *
+ * @param body (required)
+ * @return CompletableFuture<QueryResponse>
+ */
+ public CompletableFuture queryAccountsAsync(QueryAccountRequest body) {
+ return queryAccountsWithHttpInfoAsync(body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Query accounts with flexible filtering by account properties
+ *
+ * @param body (required)
+ * @return ApiResponse<QueryResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | Successful response with account data | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse queryAccountsWithHttpInfo(QueryAccountRequest body)
+ throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "queryAccounts";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId));
+ }
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'body' when calling queryAccounts");
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/product-analytics/accounts/query";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.RumAudienceManagementApi.queryAccounts",
+ 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() {});
+ }
+
+ /**
+ * Query accounts.
+ *
+ * See {@link #queryAccountsWithHttpInfo}.
+ *
+ * @param body (required)
+ * @return CompletableFuture<ApiResponse<QueryResponse>>
+ */
+ public CompletableFuture> queryAccountsWithHttpInfoAsync(
+ QueryAccountRequest body) {
+ // Check if unstable operation is enabled
+ String operationId = "queryAccounts";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)));
+ return result;
+ }
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400, "Missing the required parameter 'body' when calling queryAccounts"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/product-analytics/accounts/query";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.RumAudienceManagementApi.queryAccounts",
+ 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() {});
+ }
+
+ /**
+ * Query event filtered users.
+ *
+ * See {@link #queryEventFilteredUsersWithHttpInfo}.
+ *
+ * @param body (required)
+ * @return QueryResponse
+ * @throws ApiException if fails to make API call
+ */
+ public QueryResponse queryEventFilteredUsers(QueryEventFilteredUsersRequest body)
+ throws ApiException {
+ return queryEventFilteredUsersWithHttpInfo(body).getData();
+ }
+
+ /**
+ * Query event filtered users.
+ *
+ *
See {@link #queryEventFilteredUsersWithHttpInfoAsync}.
+ *
+ * @param body (required)
+ * @return CompletableFuture<QueryResponse>
+ */
+ public CompletableFuture queryEventFilteredUsersAsync(
+ QueryEventFilteredUsersRequest body) {
+ return queryEventFilteredUsersWithHttpInfoAsync(body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Query users filtered by both user properties and event platform data
+ *
+ * @param body (required)
+ * @return ApiResponse<QueryResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | Successful response with filtered user data | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse queryEventFilteredUsersWithHttpInfo(
+ QueryEventFilteredUsersRequest body) throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "queryEventFilteredUsers";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId));
+ }
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'body' when calling queryEventFilteredUsers");
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/product-analytics/users/event_filtered_query";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.RumAudienceManagementApi.queryEventFilteredUsers",
+ 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() {});
+ }
+
+ /**
+ * Query event filtered users.
+ *
+ * See {@link #queryEventFilteredUsersWithHttpInfo}.
+ *
+ * @param body (required)
+ * @return CompletableFuture<ApiResponse<QueryResponse>>
+ */
+ public CompletableFuture> queryEventFilteredUsersWithHttpInfoAsync(
+ QueryEventFilteredUsersRequest body) {
+ // Check if unstable operation is enabled
+ String operationId = "queryEventFilteredUsers";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)));
+ return result;
+ }
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400, "Missing the required parameter 'body' when calling queryEventFilteredUsers"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/product-analytics/users/event_filtered_query";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.RumAudienceManagementApi.queryEventFilteredUsers",
+ 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() {});
+ }
+
+ /**
+ * Query users.
+ *
+ * See {@link #queryUsersWithHttpInfo}.
+ *
+ * @param body (required)
+ * @return QueryResponse
+ * @throws ApiException if fails to make API call
+ */
+ public QueryResponse queryUsers(QueryUsersRequest body) throws ApiException {
+ return queryUsersWithHttpInfo(body).getData();
+ }
+
+ /**
+ * Query users.
+ *
+ *
See {@link #queryUsersWithHttpInfoAsync}.
+ *
+ * @param body (required)
+ * @return CompletableFuture<QueryResponse>
+ */
+ public CompletableFuture queryUsersAsync(QueryUsersRequest body) {
+ return queryUsersWithHttpInfoAsync(body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Query users with flexible filtering by user properties, with optional wildcard search
+ *
+ * @param body (required)
+ * @return ApiResponse<QueryResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | Successful response with user data | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse queryUsersWithHttpInfo(QueryUsersRequest body)
+ throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "queryUsers";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId));
+ }
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ throw new ApiException(400, "Missing the required parameter 'body' when calling queryUsers");
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/product-analytics/users/query";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.RumAudienceManagementApi.queryUsers",
+ 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() {});
+ }
+
+ /**
+ * Query users.
+ *
+ * See {@link #queryUsersWithHttpInfo}.
+ *
+ * @param body (required)
+ * @return CompletableFuture<ApiResponse<QueryResponse>>
+ */
+ public CompletableFuture> queryUsersWithHttpInfoAsync(
+ QueryUsersRequest body) {
+ // Check if unstable operation is enabled
+ String operationId = "queryUsers";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)));
+ return result;
+ }
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(400, "Missing the required parameter 'body' when calling queryUsers"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/product-analytics/users/query";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.RumAudienceManagementApi.queryUsers",
+ 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() {});
+ }
+
+ /**
+ * Update connection.
+ *
+ * See {@link #updateConnectionWithHttpInfo}.
+ *
+ * @param entity The entity for which to update the connection (required)
+ * @param body (required)
+ * @throws ApiException if fails to make API call
+ */
+ public void updateConnection(String entity, UpdateConnectionRequest body) throws ApiException {
+ updateConnectionWithHttpInfo(entity, body);
+ }
+
+ /**
+ * Update connection.
+ *
+ *
See {@link #updateConnectionWithHttpInfoAsync}.
+ *
+ * @param entity The entity for which to update the connection (required)
+ * @param body (required)
+ * @return CompletableFuture
+ */
+ public CompletableFuture updateConnectionAsync(
+ String entity, UpdateConnectionRequest body) {
+ return updateConnectionWithHttpInfoAsync(entity, body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Update an existing data connection by adding, updating, or deleting fields
+ *
+ * @param entity The entity for which to update the connection (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 |
+ * | 200 | Connection updated successfully | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse updateConnectionWithHttpInfo(String entity, UpdateConnectionRequest body)
+ throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "updateConnection";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId));
+ }
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'entity' is set
+ if (entity == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'entity' when calling updateConnection");
+ }
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'body' when calling updateConnection");
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/product-analytics/{entity}/mapping/connection"
+ .replaceAll("\\{" + "entity" + "\\}", apiClient.escapeString(entity.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.RumAudienceManagementApi.updateConnection",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"*/*"},
+ new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"});
+ return apiClient.invokeAPI(
+ "PUT",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ null);
+ }
+
+ /**
+ * Update connection.
+ *
+ * See {@link #updateConnectionWithHttpInfo}.
+ *
+ * @param entity The entity for which to update the connection (required)
+ * @param body (required)
+ * @return CompletableFuture<ApiResponse<Void>>
+ */
+ public CompletableFuture> updateConnectionWithHttpInfoAsync(
+ String entity, UpdateConnectionRequest body) {
+ // Check if unstable operation is enabled
+ String operationId = "updateConnection";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)));
+ return result;
+ }
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'entity' is set
+ if (entity == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400, "Missing the required parameter 'entity' when calling updateConnection"));
+ 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 updateConnection"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/product-analytics/{entity}/mapping/connection"
+ .replaceAll("\\{" + "entity" + "\\}", apiClient.escapeString(entity.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.RumAudienceManagementApi.updateConnection",
+ 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(
+ "PUT",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ null);
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/CreateConnectionRequest.java b/src/main/java/com/datadog/api/client/v2/model/CreateConnectionRequest.java
new file mode 100644
index 00000000000..41eb89dcaca
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/CreateConnectionRequest.java
@@ -0,0 +1,136 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** */
+@JsonPropertyOrder({CreateConnectionRequest.JSON_PROPERTY_DATA})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class CreateConnectionRequest {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_DATA = "data";
+ private CreateConnectionRequestData data;
+
+ public CreateConnectionRequest data(CreateConnectionRequestData data) {
+ this.data = data;
+ this.unparsed |= data.unparsed;
+ return this;
+ }
+
+ /**
+ * Getdata
+ *
+ * @return data
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_DATA)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public CreateConnectionRequestData getData() {
+ return data;
+ }
+
+ public void setData(CreateConnectionRequestData data) {
+ this.data = data;
+ }
+
+ /**
+ * A container for additional, undeclared properties. This is a holder for any undeclared
+ * properties as specified with the 'additionalProperties' keyword in the OAS document.
+ */
+ private Map additionalProperties;
+
+ /**
+ * Set the additional (undeclared) property with the specified name and value. If the property
+ * does not already exist, create it otherwise replace it.
+ *
+ * @param key The arbitrary key to set
+ * @param value The associated value
+ * @return CreateConnectionRequest
+ */
+ @JsonAnySetter
+ public CreateConnectionRequest putAdditionalProperty(String key, Object value) {
+ if (this.additionalProperties == null) {
+ this.additionalProperties = new HashMap();
+ }
+ this.additionalProperties.put(key, value);
+ return this;
+ }
+
+ /**
+ * Return the additional (undeclared) property.
+ *
+ * @return The additional properties
+ */
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return additionalProperties;
+ }
+
+ /**
+ * Return the additional (undeclared) property with the specified name.
+ *
+ * @param key The arbitrary key to get
+ * @return The specific additional property for the given key
+ */
+ public Object getAdditionalProperty(String key) {
+ if (this.additionalProperties == null) {
+ return null;
+ }
+ return this.additionalProperties.get(key);
+ }
+
+ /** Return true if this CreateConnectionRequest object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ CreateConnectionRequest createConnectionRequest = (CreateConnectionRequest) o;
+ return Objects.equals(this.data, createConnectionRequest.data)
+ && Objects.equals(this.additionalProperties, createConnectionRequest.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(data, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class CreateConnectionRequest {\n");
+ sb.append(" data: ").append(toIndentedString(data)).append("\n");
+ sb.append(" additionalProperties: ")
+ .append(toIndentedString(additionalProperties))
+ .append("\n");
+ sb.append('}');
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/CreateConnectionRequestData.java b/src/main/java/com/datadog/api/client/v2/model/CreateConnectionRequestData.java
new file mode 100644
index 00000000000..9721872d943
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/CreateConnectionRequestData.java
@@ -0,0 +1,207 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** */
+@JsonPropertyOrder({
+ CreateConnectionRequestData.JSON_PROPERTY_ATTRIBUTES,
+ CreateConnectionRequestData.JSON_PROPERTY_ID,
+ CreateConnectionRequestData.JSON_PROPERTY_TYPE
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class CreateConnectionRequestData {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ATTRIBUTES = "attributes";
+ private CreateConnectionRequestDataAttributes attributes;
+
+ public static final String JSON_PROPERTY_ID = "id";
+ private String id;
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ private UpdateConnectionRequestDataType type = UpdateConnectionRequestDataType.CONNECTION_ID;
+
+ public CreateConnectionRequestData() {}
+
+ @JsonCreator
+ public CreateConnectionRequestData(
+ @JsonProperty(required = true, value = JSON_PROPERTY_TYPE)
+ UpdateConnectionRequestDataType type) {
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ }
+
+ public CreateConnectionRequestData attributes(CreateConnectionRequestDataAttributes attributes) {
+ this.attributes = attributes;
+ this.unparsed |= attributes.unparsed;
+ return this;
+ }
+
+ /**
+ * Getattributes
+ *
+ * @return attributes
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ATTRIBUTES)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public CreateConnectionRequestDataAttributes getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(CreateConnectionRequestDataAttributes attributes) {
+ this.attributes = attributes;
+ }
+
+ public CreateConnectionRequestData id(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Getid
+ *
+ * @return id
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public CreateConnectionRequestData type(UpdateConnectionRequestDataType type) {
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ return this;
+ }
+
+ /**
+ * Connection id resource type.
+ *
+ * @return type
+ */
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public UpdateConnectionRequestDataType getType() {
+ return type;
+ }
+
+ public void setType(UpdateConnectionRequestDataType type) {
+ if (!type.isValid()) {
+ this.unparsed = true;
+ }
+ this.type = type;
+ }
+
+ /**
+ * A container for additional, undeclared properties. This is a holder for any undeclared
+ * properties as specified with the 'additionalProperties' keyword in the OAS document.
+ */
+ private Map additionalProperties;
+
+ /**
+ * Set the additional (undeclared) property with the specified name and value. If the property
+ * does not already exist, create it otherwise replace it.
+ *
+ * @param key The arbitrary key to set
+ * @param value The associated value
+ * @return CreateConnectionRequestData
+ */
+ @JsonAnySetter
+ public CreateConnectionRequestData putAdditionalProperty(String key, Object value) {
+ if (this.additionalProperties == null) {
+ this.additionalProperties = new HashMap();
+ }
+ this.additionalProperties.put(key, value);
+ return this;
+ }
+
+ /**
+ * Return the additional (undeclared) property.
+ *
+ * @return The additional properties
+ */
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return additionalProperties;
+ }
+
+ /**
+ * Return the additional (undeclared) property with the specified name.
+ *
+ * @param key The arbitrary key to get
+ * @return The specific additional property for the given key
+ */
+ public Object getAdditionalProperty(String key) {
+ if (this.additionalProperties == null) {
+ return null;
+ }
+ return this.additionalProperties.get(key);
+ }
+
+ /** Return true if this CreateConnectionRequestData object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ CreateConnectionRequestData createConnectionRequestData = (CreateConnectionRequestData) o;
+ return Objects.equals(this.attributes, createConnectionRequestData.attributes)
+ && Objects.equals(this.id, createConnectionRequestData.id)
+ && Objects.equals(this.type, createConnectionRequestData.type)
+ && Objects.equals(
+ this.additionalProperties, createConnectionRequestData.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(attributes, id, type, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class CreateConnectionRequestData {\n");
+ sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n");
+ sb.append(" id: ").append(toIndentedString(id)).append("\n");
+ sb.append(" type: ").append(toIndentedString(type)).append("\n");
+ sb.append(" additionalProperties: ")
+ .append(toIndentedString(additionalProperties))
+ .append("\n");
+ sb.append('}');
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/CreateConnectionRequestDataAttributes.java b/src/main/java/com/datadog/api/client/v2/model/CreateConnectionRequestDataAttributes.java
new file mode 100644
index 00000000000..1760f148c75
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/CreateConnectionRequestDataAttributes.java
@@ -0,0 +1,281 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+/** */
+@JsonPropertyOrder({
+ CreateConnectionRequestDataAttributes.JSON_PROPERTY_FIELDS,
+ CreateConnectionRequestDataAttributes.JSON_PROPERTY_JOIN_ATTRIBUTE,
+ CreateConnectionRequestDataAttributes.JSON_PROPERTY_JOIN_TYPE,
+ CreateConnectionRequestDataAttributes.JSON_PROPERTY_METADATA,
+ CreateConnectionRequestDataAttributes.JSON_PROPERTY_TYPE
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class CreateConnectionRequestDataAttributes {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_FIELDS = "fields";
+ private List fields = null;
+
+ public static final String JSON_PROPERTY_JOIN_ATTRIBUTE = "join_attribute";
+ private String joinAttribute;
+
+ public static final String JSON_PROPERTY_JOIN_TYPE = "join_type";
+ private String joinType;
+
+ public static final String JSON_PROPERTY_METADATA = "metadata";
+ private Map metadata = null;
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ private String type;
+
+ public CreateConnectionRequestDataAttributes() {}
+
+ @JsonCreator
+ public CreateConnectionRequestDataAttributes(
+ @JsonProperty(required = true, value = JSON_PROPERTY_JOIN_ATTRIBUTE) String joinAttribute,
+ @JsonProperty(required = true, value = JSON_PROPERTY_JOIN_TYPE) String joinType,
+ @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) String type) {
+ this.joinAttribute = joinAttribute;
+ this.joinType = joinType;
+ this.type = type;
+ }
+
+ public CreateConnectionRequestDataAttributes fields(
+ List fields) {
+ this.fields = fields;
+ for (CreateConnectionRequestDataAttributesFieldsItems item : fields) {
+ this.unparsed |= item.unparsed;
+ }
+ return this;
+ }
+
+ public CreateConnectionRequestDataAttributes addFieldsItem(
+ CreateConnectionRequestDataAttributesFieldsItems fieldsItem) {
+ if (this.fields == null) {
+ this.fields = new ArrayList<>();
+ }
+ this.fields.add(fieldsItem);
+ this.unparsed |= fieldsItem.unparsed;
+ return this;
+ }
+
+ /**
+ * Getfields
+ *
+ * @return fields
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_FIELDS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getFields() {
+ return fields;
+ }
+
+ public void setFields(List fields) {
+ this.fields = fields;
+ }
+
+ public CreateConnectionRequestDataAttributes joinAttribute(String joinAttribute) {
+ this.joinAttribute = joinAttribute;
+ return this;
+ }
+
+ /**
+ * GetjoinAttribute
+ *
+ * @return joinAttribute
+ */
+ @JsonProperty(JSON_PROPERTY_JOIN_ATTRIBUTE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getJoinAttribute() {
+ return joinAttribute;
+ }
+
+ public void setJoinAttribute(String joinAttribute) {
+ this.joinAttribute = joinAttribute;
+ }
+
+ public CreateConnectionRequestDataAttributes joinType(String joinType) {
+ this.joinType = joinType;
+ return this;
+ }
+
+ /**
+ * GetjoinType
+ *
+ * @return joinType
+ */
+ @JsonProperty(JSON_PROPERTY_JOIN_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getJoinType() {
+ return joinType;
+ }
+
+ public void setJoinType(String joinType) {
+ this.joinType = joinType;
+ }
+
+ public CreateConnectionRequestDataAttributes metadata(Map metadata) {
+ this.metadata = metadata;
+ return this;
+ }
+
+ public CreateConnectionRequestDataAttributes putMetadataItem(String key, String metadataItem) {
+ if (this.metadata == null) {
+ this.metadata = new HashMap<>();
+ }
+ this.metadata.put(key, metadataItem);
+ return this;
+ }
+
+ /**
+ * Getmetadata
+ *
+ * @return metadata
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_METADATA)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Map getMetadata() {
+ return metadata;
+ }
+
+ public void setMetadata(Map metadata) {
+ this.metadata = metadata;
+ }
+
+ public CreateConnectionRequestDataAttributes type(String type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Gettype
+ *
+ * @return type
+ */
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ /**
+ * A container for additional, undeclared properties. This is a holder for any undeclared
+ * properties as specified with the 'additionalProperties' keyword in the OAS document.
+ */
+ private Map additionalProperties;
+
+ /**
+ * Set the additional (undeclared) property with the specified name and value. If the property
+ * does not already exist, create it otherwise replace it.
+ *
+ * @param key The arbitrary key to set
+ * @param value The associated value
+ * @return CreateConnectionRequestDataAttributes
+ */
+ @JsonAnySetter
+ public CreateConnectionRequestDataAttributes putAdditionalProperty(String key, Object value) {
+ if (this.additionalProperties == null) {
+ this.additionalProperties = new HashMap();
+ }
+ this.additionalProperties.put(key, value);
+ return this;
+ }
+
+ /**
+ * Return the additional (undeclared) property.
+ *
+ * @return The additional properties
+ */
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return additionalProperties;
+ }
+
+ /**
+ * Return the additional (undeclared) property with the specified name.
+ *
+ * @param key The arbitrary key to get
+ * @return The specific additional property for the given key
+ */
+ public Object getAdditionalProperty(String key) {
+ if (this.additionalProperties == null) {
+ return null;
+ }
+ return this.additionalProperties.get(key);
+ }
+
+ /** Return true if this CreateConnectionRequestDataAttributes object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ CreateConnectionRequestDataAttributes createConnectionRequestDataAttributes =
+ (CreateConnectionRequestDataAttributes) o;
+ return Objects.equals(this.fields, createConnectionRequestDataAttributes.fields)
+ && Objects.equals(this.joinAttribute, createConnectionRequestDataAttributes.joinAttribute)
+ && Objects.equals(this.joinType, createConnectionRequestDataAttributes.joinType)
+ && Objects.equals(this.metadata, createConnectionRequestDataAttributes.metadata)
+ && Objects.equals(this.type, createConnectionRequestDataAttributes.type)
+ && Objects.equals(
+ this.additionalProperties, createConnectionRequestDataAttributes.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(fields, joinAttribute, joinType, metadata, type, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class CreateConnectionRequestDataAttributes {\n");
+ sb.append(" fields: ").append(toIndentedString(fields)).append("\n");
+ sb.append(" joinAttribute: ").append(toIndentedString(joinAttribute)).append("\n");
+ sb.append(" joinType: ").append(toIndentedString(joinType)).append("\n");
+ sb.append(" metadata: ").append(toIndentedString(metadata)).append("\n");
+ sb.append(" type: ").append(toIndentedString(type)).append("\n");
+ sb.append(" additionalProperties: ")
+ .append(toIndentedString(additionalProperties))
+ .append("\n");
+ sb.append('}');
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/CreateConnectionRequestDataAttributesFieldsItems.java b/src/main/java/com/datadog/api/client/v2/model/CreateConnectionRequestDataAttributesFieldsItems.java
new file mode 100644
index 00000000000..f28f8da52d9
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/CreateConnectionRequestDataAttributesFieldsItems.java
@@ -0,0 +1,301 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+/** */
+@JsonPropertyOrder({
+ CreateConnectionRequestDataAttributesFieldsItems.JSON_PROPERTY_DESCRIPTION,
+ CreateConnectionRequestDataAttributesFieldsItems.JSON_PROPERTY_DISPLAY_NAME,
+ CreateConnectionRequestDataAttributesFieldsItems.JSON_PROPERTY_GROUPS,
+ CreateConnectionRequestDataAttributesFieldsItems.JSON_PROPERTY_ID,
+ CreateConnectionRequestDataAttributesFieldsItems.JSON_PROPERTY_SOURCE_NAME,
+ CreateConnectionRequestDataAttributesFieldsItems.JSON_PROPERTY_TYPE
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class CreateConnectionRequestDataAttributesFieldsItems {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_DESCRIPTION = "description";
+ private String description;
+
+ public static final String JSON_PROPERTY_DISPLAY_NAME = "display_name";
+ private String displayName;
+
+ public static final String JSON_PROPERTY_GROUPS = "groups";
+ private List groups = null;
+
+ public static final String JSON_PROPERTY_ID = "id";
+ private String id;
+
+ public static final String JSON_PROPERTY_SOURCE_NAME = "source_name";
+ private String sourceName;
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ private String type;
+
+ public CreateConnectionRequestDataAttributesFieldsItems() {}
+
+ @JsonCreator
+ public CreateConnectionRequestDataAttributesFieldsItems(
+ @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id,
+ @JsonProperty(required = true, value = JSON_PROPERTY_SOURCE_NAME) String sourceName,
+ @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) String type) {
+ this.id = id;
+ this.sourceName = sourceName;
+ this.type = type;
+ }
+
+ public CreateConnectionRequestDataAttributesFieldsItems description(String description) {
+ this.description = description;
+ return this;
+ }
+
+ /**
+ * Getdescription
+ *
+ * @return description
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_DESCRIPTION)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public CreateConnectionRequestDataAttributesFieldsItems displayName(String displayName) {
+ this.displayName = displayName;
+ return this;
+ }
+
+ /**
+ * GetdisplayName
+ *
+ * @return displayName
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_DISPLAY_NAME)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getDisplayName() {
+ return displayName;
+ }
+
+ public void setDisplayName(String displayName) {
+ this.displayName = displayName;
+ }
+
+ public CreateConnectionRequestDataAttributesFieldsItems groups(List groups) {
+ this.groups = groups;
+ return this;
+ }
+
+ public CreateConnectionRequestDataAttributesFieldsItems addGroupsItem(String groupsItem) {
+ if (this.groups == null) {
+ this.groups = new ArrayList<>();
+ }
+ this.groups.add(groupsItem);
+ return this;
+ }
+
+ /**
+ * Getgroups
+ *
+ * @return groups
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_GROUPS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getGroups() {
+ return groups;
+ }
+
+ public void setGroups(List groups) {
+ this.groups = groups;
+ }
+
+ public CreateConnectionRequestDataAttributesFieldsItems id(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Getid
+ *
+ * @return id
+ */
+ @JsonProperty(JSON_PROPERTY_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public CreateConnectionRequestDataAttributesFieldsItems sourceName(String sourceName) {
+ this.sourceName = sourceName;
+ return this;
+ }
+
+ /**
+ * GetsourceName
+ *
+ * @return sourceName
+ */
+ @JsonProperty(JSON_PROPERTY_SOURCE_NAME)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getSourceName() {
+ return sourceName;
+ }
+
+ public void setSourceName(String sourceName) {
+ this.sourceName = sourceName;
+ }
+
+ public CreateConnectionRequestDataAttributesFieldsItems type(String type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Gettype
+ *
+ * @return type
+ */
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ /**
+ * A container for additional, undeclared properties. This is a holder for any undeclared
+ * properties as specified with the 'additionalProperties' keyword in the OAS document.
+ */
+ private Map additionalProperties;
+
+ /**
+ * Set the additional (undeclared) property with the specified name and value. If the property
+ * does not already exist, create it otherwise replace it.
+ *
+ * @param key The arbitrary key to set
+ * @param value The associated value
+ * @return CreateConnectionRequestDataAttributesFieldsItems
+ */
+ @JsonAnySetter
+ public CreateConnectionRequestDataAttributesFieldsItems putAdditionalProperty(
+ String key, Object value) {
+ if (this.additionalProperties == null) {
+ this.additionalProperties = new HashMap();
+ }
+ this.additionalProperties.put(key, value);
+ return this;
+ }
+
+ /**
+ * Return the additional (undeclared) property.
+ *
+ * @return The additional properties
+ */
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return additionalProperties;
+ }
+
+ /**
+ * Return the additional (undeclared) property with the specified name.
+ *
+ * @param key The arbitrary key to get
+ * @return The specific additional property for the given key
+ */
+ public Object getAdditionalProperty(String key) {
+ if (this.additionalProperties == null) {
+ return null;
+ }
+ return this.additionalProperties.get(key);
+ }
+
+ /** Return true if this CreateConnectionRequestDataAttributesFieldsItems object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ CreateConnectionRequestDataAttributesFieldsItems
+ createConnectionRequestDataAttributesFieldsItems =
+ (CreateConnectionRequestDataAttributesFieldsItems) o;
+ return Objects.equals(
+ this.description, createConnectionRequestDataAttributesFieldsItems.description)
+ && Objects.equals(
+ this.displayName, createConnectionRequestDataAttributesFieldsItems.displayName)
+ && Objects.equals(this.groups, createConnectionRequestDataAttributesFieldsItems.groups)
+ && Objects.equals(this.id, createConnectionRequestDataAttributesFieldsItems.id)
+ && Objects.equals(
+ this.sourceName, createConnectionRequestDataAttributesFieldsItems.sourceName)
+ && Objects.equals(this.type, createConnectionRequestDataAttributesFieldsItems.type)
+ && Objects.equals(
+ this.additionalProperties,
+ createConnectionRequestDataAttributesFieldsItems.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(
+ description, displayName, groups, id, sourceName, type, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class CreateConnectionRequestDataAttributesFieldsItems {\n");
+ sb.append(" description: ").append(toIndentedString(description)).append("\n");
+ sb.append(" displayName: ").append(toIndentedString(displayName)).append("\n");
+ sb.append(" groups: ").append(toIndentedString(groups)).append("\n");
+ sb.append(" id: ").append(toIndentedString(id)).append("\n");
+ sb.append(" sourceName: ").append(toIndentedString(sourceName)).append("\n");
+ sb.append(" type: ").append(toIndentedString(type)).append("\n");
+ sb.append(" additionalProperties: ")
+ .append(toIndentedString(additionalProperties))
+ .append("\n");
+ sb.append('}');
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/FacetInfoRequest.java b/src/main/java/com/datadog/api/client/v2/model/FacetInfoRequest.java
new file mode 100644
index 00000000000..b54a0d7fa80
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/FacetInfoRequest.java
@@ -0,0 +1,136 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** */
+@JsonPropertyOrder({FacetInfoRequest.JSON_PROPERTY_DATA})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class FacetInfoRequest {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_DATA = "data";
+ private FacetInfoRequestData data;
+
+ public FacetInfoRequest data(FacetInfoRequestData data) {
+ this.data = data;
+ this.unparsed |= data.unparsed;
+ return this;
+ }
+
+ /**
+ * Getdata
+ *
+ * @return data
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_DATA)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public FacetInfoRequestData getData() {
+ return data;
+ }
+
+ public void setData(FacetInfoRequestData data) {
+ this.data = data;
+ }
+
+ /**
+ * A container for additional, undeclared properties. This is a holder for any undeclared
+ * properties as specified with the 'additionalProperties' keyword in the OAS document.
+ */
+ private Map additionalProperties;
+
+ /**
+ * Set the additional (undeclared) property with the specified name and value. If the property
+ * does not already exist, create it otherwise replace it.
+ *
+ * @param key The arbitrary key to set
+ * @param value The associated value
+ * @return FacetInfoRequest
+ */
+ @JsonAnySetter
+ public FacetInfoRequest putAdditionalProperty(String key, Object value) {
+ if (this.additionalProperties == null) {
+ this.additionalProperties = new HashMap();
+ }
+ this.additionalProperties.put(key, value);
+ return this;
+ }
+
+ /**
+ * Return the additional (undeclared) property.
+ *
+ * @return The additional properties
+ */
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return additionalProperties;
+ }
+
+ /**
+ * Return the additional (undeclared) property with the specified name.
+ *
+ * @param key The arbitrary key to get
+ * @return The specific additional property for the given key
+ */
+ public Object getAdditionalProperty(String key) {
+ if (this.additionalProperties == null) {
+ return null;
+ }
+ return this.additionalProperties.get(key);
+ }
+
+ /** Return true if this FacetInfoRequest object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ FacetInfoRequest facetInfoRequest = (FacetInfoRequest) o;
+ return Objects.equals(this.data, facetInfoRequest.data)
+ && Objects.equals(this.additionalProperties, facetInfoRequest.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(data, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class FacetInfoRequest {\n");
+ sb.append(" data: ").append(toIndentedString(data)).append("\n");
+ sb.append(" additionalProperties: ")
+ .append(toIndentedString(additionalProperties))
+ .append("\n");
+ sb.append('}');
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/FacetInfoRequestData.java b/src/main/java/com/datadog/api/client/v2/model/FacetInfoRequestData.java
new file mode 100644
index 00000000000..8c21f4413cb
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/FacetInfoRequestData.java
@@ -0,0 +1,205 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** */
+@JsonPropertyOrder({
+ FacetInfoRequestData.JSON_PROPERTY_ATTRIBUTES,
+ FacetInfoRequestData.JSON_PROPERTY_ID,
+ FacetInfoRequestData.JSON_PROPERTY_TYPE
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class FacetInfoRequestData {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ATTRIBUTES = "attributes";
+ private FacetInfoRequestDataAttributes attributes;
+
+ public static final String JSON_PROPERTY_ID = "id";
+ private String id;
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ private FacetInfoRequestDataType type = FacetInfoRequestDataType.USERS_FACET_INFO_REQUEST;
+
+ public FacetInfoRequestData() {}
+
+ @JsonCreator
+ public FacetInfoRequestData(
+ @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) FacetInfoRequestDataType type) {
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ }
+
+ public FacetInfoRequestData attributes(FacetInfoRequestDataAttributes attributes) {
+ this.attributes = attributes;
+ this.unparsed |= attributes.unparsed;
+ return this;
+ }
+
+ /**
+ * Getattributes
+ *
+ * @return attributes
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ATTRIBUTES)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public FacetInfoRequestDataAttributes getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(FacetInfoRequestDataAttributes attributes) {
+ this.attributes = attributes;
+ }
+
+ public FacetInfoRequestData id(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Getid
+ *
+ * @return id
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public FacetInfoRequestData type(FacetInfoRequestDataType type) {
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ return this;
+ }
+
+ /**
+ * Users facet info request resource type.
+ *
+ * @return type
+ */
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public FacetInfoRequestDataType getType() {
+ return type;
+ }
+
+ public void setType(FacetInfoRequestDataType type) {
+ if (!type.isValid()) {
+ this.unparsed = true;
+ }
+ this.type = type;
+ }
+
+ /**
+ * A container for additional, undeclared properties. This is a holder for any undeclared
+ * properties as specified with the 'additionalProperties' keyword in the OAS document.
+ */
+ private Map additionalProperties;
+
+ /**
+ * Set the additional (undeclared) property with the specified name and value. If the property
+ * does not already exist, create it otherwise replace it.
+ *
+ * @param key The arbitrary key to set
+ * @param value The associated value
+ * @return FacetInfoRequestData
+ */
+ @JsonAnySetter
+ public FacetInfoRequestData putAdditionalProperty(String key, Object value) {
+ if (this.additionalProperties == null) {
+ this.additionalProperties = new HashMap();
+ }
+ this.additionalProperties.put(key, value);
+ return this;
+ }
+
+ /**
+ * Return the additional (undeclared) property.
+ *
+ * @return The additional properties
+ */
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return additionalProperties;
+ }
+
+ /**
+ * Return the additional (undeclared) property with the specified name.
+ *
+ * @param key The arbitrary key to get
+ * @return The specific additional property for the given key
+ */
+ public Object getAdditionalProperty(String key) {
+ if (this.additionalProperties == null) {
+ return null;
+ }
+ return this.additionalProperties.get(key);
+ }
+
+ /** Return true if this FacetInfoRequestData object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ FacetInfoRequestData facetInfoRequestData = (FacetInfoRequestData) o;
+ return Objects.equals(this.attributes, facetInfoRequestData.attributes)
+ && Objects.equals(this.id, facetInfoRequestData.id)
+ && Objects.equals(this.type, facetInfoRequestData.type)
+ && Objects.equals(this.additionalProperties, facetInfoRequestData.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(attributes, id, type, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class FacetInfoRequestData {\n");
+ sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n");
+ sb.append(" id: ").append(toIndentedString(id)).append("\n");
+ sb.append(" type: ").append(toIndentedString(type)).append("\n");
+ sb.append(" additionalProperties: ")
+ .append(toIndentedString(additionalProperties))
+ .append("\n");
+ sb.append('}');
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/FacetInfoRequestDataAttributes.java b/src/main/java/com/datadog/api/client/v2/model/FacetInfoRequestDataAttributes.java
new file mode 100644
index 00000000000..0613ea90984
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/FacetInfoRequestDataAttributes.java
@@ -0,0 +1,232 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** */
+@JsonPropertyOrder({
+ FacetInfoRequestDataAttributes.JSON_PROPERTY_FACET_ID,
+ FacetInfoRequestDataAttributes.JSON_PROPERTY_LIMIT,
+ FacetInfoRequestDataAttributes.JSON_PROPERTY_SEARCH,
+ FacetInfoRequestDataAttributes.JSON_PROPERTY_TERM_SEARCH
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class FacetInfoRequestDataAttributes {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_FACET_ID = "facet_id";
+ private String facetId;
+
+ public static final String JSON_PROPERTY_LIMIT = "limit";
+ private Long limit;
+
+ public static final String JSON_PROPERTY_SEARCH = "search";
+ private FacetInfoRequestDataAttributesSearch search;
+
+ public static final String JSON_PROPERTY_TERM_SEARCH = "term_search";
+ private FacetInfoRequestDataAttributesTermSearch termSearch;
+
+ public FacetInfoRequestDataAttributes() {}
+
+ @JsonCreator
+ public FacetInfoRequestDataAttributes(
+ @JsonProperty(required = true, value = JSON_PROPERTY_FACET_ID) String facetId,
+ @JsonProperty(required = true, value = JSON_PROPERTY_LIMIT) Long limit) {
+ this.facetId = facetId;
+ this.limit = limit;
+ }
+
+ public FacetInfoRequestDataAttributes facetId(String facetId) {
+ this.facetId = facetId;
+ return this;
+ }
+
+ /**
+ * GetfacetId
+ *
+ * @return facetId
+ */
+ @JsonProperty(JSON_PROPERTY_FACET_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getFacetId() {
+ return facetId;
+ }
+
+ public void setFacetId(String facetId) {
+ this.facetId = facetId;
+ }
+
+ public FacetInfoRequestDataAttributes limit(Long limit) {
+ this.limit = limit;
+ return this;
+ }
+
+ /**
+ * Getlimit
+ *
+ * @return limit
+ */
+ @JsonProperty(JSON_PROPERTY_LIMIT)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public Long getLimit() {
+ return limit;
+ }
+
+ public void setLimit(Long limit) {
+ this.limit = limit;
+ }
+
+ public FacetInfoRequestDataAttributes search(FacetInfoRequestDataAttributesSearch search) {
+ this.search = search;
+ this.unparsed |= search.unparsed;
+ return this;
+ }
+
+ /**
+ * Getsearch
+ *
+ * @return search
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_SEARCH)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public FacetInfoRequestDataAttributesSearch getSearch() {
+ return search;
+ }
+
+ public void setSearch(FacetInfoRequestDataAttributesSearch search) {
+ this.search = search;
+ }
+
+ public FacetInfoRequestDataAttributes termSearch(
+ FacetInfoRequestDataAttributesTermSearch termSearch) {
+ this.termSearch = termSearch;
+ this.unparsed |= termSearch.unparsed;
+ return this;
+ }
+
+ /**
+ * GettermSearch
+ *
+ * @return termSearch
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_TERM_SEARCH)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public FacetInfoRequestDataAttributesTermSearch getTermSearch() {
+ return termSearch;
+ }
+
+ public void setTermSearch(FacetInfoRequestDataAttributesTermSearch termSearch) {
+ this.termSearch = termSearch;
+ }
+
+ /**
+ * A container for additional, undeclared properties. This is a holder for any undeclared
+ * properties as specified with the 'additionalProperties' keyword in the OAS document.
+ */
+ private Map additionalProperties;
+
+ /**
+ * Set the additional (undeclared) property with the specified name and value. If the property
+ * does not already exist, create it otherwise replace it.
+ *
+ * @param key The arbitrary key to set
+ * @param value The associated value
+ * @return FacetInfoRequestDataAttributes
+ */
+ @JsonAnySetter
+ public FacetInfoRequestDataAttributes putAdditionalProperty(String key, Object value) {
+ if (this.additionalProperties == null) {
+ this.additionalProperties = new HashMap();
+ }
+ this.additionalProperties.put(key, value);
+ return this;
+ }
+
+ /**
+ * Return the additional (undeclared) property.
+ *
+ * @return The additional properties
+ */
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return additionalProperties;
+ }
+
+ /**
+ * Return the additional (undeclared) property with the specified name.
+ *
+ * @param key The arbitrary key to get
+ * @return The specific additional property for the given key
+ */
+ public Object getAdditionalProperty(String key) {
+ if (this.additionalProperties == null) {
+ return null;
+ }
+ return this.additionalProperties.get(key);
+ }
+
+ /** Return true if this FacetInfoRequestDataAttributes object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ FacetInfoRequestDataAttributes facetInfoRequestDataAttributes =
+ (FacetInfoRequestDataAttributes) o;
+ return Objects.equals(this.facetId, facetInfoRequestDataAttributes.facetId)
+ && Objects.equals(this.limit, facetInfoRequestDataAttributes.limit)
+ && Objects.equals(this.search, facetInfoRequestDataAttributes.search)
+ && Objects.equals(this.termSearch, facetInfoRequestDataAttributes.termSearch)
+ && Objects.equals(
+ this.additionalProperties, facetInfoRequestDataAttributes.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(facetId, limit, search, termSearch, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class FacetInfoRequestDataAttributes {\n");
+ sb.append(" facetId: ").append(toIndentedString(facetId)).append("\n");
+ sb.append(" limit: ").append(toIndentedString(limit)).append("\n");
+ sb.append(" search: ").append(toIndentedString(search)).append("\n");
+ sb.append(" termSearch: ").append(toIndentedString(termSearch)).append("\n");
+ sb.append(" additionalProperties: ")
+ .append(toIndentedString(additionalProperties))
+ .append("\n");
+ sb.append('}');
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/FacetInfoRequestDataAttributesSearch.java b/src/main/java/com/datadog/api/client/v2/model/FacetInfoRequestDataAttributesSearch.java
new file mode 100644
index 00000000000..2358bbd3f33
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/FacetInfoRequestDataAttributesSearch.java
@@ -0,0 +1,137 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** */
+@JsonPropertyOrder({FacetInfoRequestDataAttributesSearch.JSON_PROPERTY_QUERY})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class FacetInfoRequestDataAttributesSearch {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_QUERY = "query";
+ private String query;
+
+ public FacetInfoRequestDataAttributesSearch query(String query) {
+ this.query = query;
+ return this;
+ }
+
+ /**
+ * Getquery
+ *
+ * @return query
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_QUERY)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getQuery() {
+ return query;
+ }
+
+ public void setQuery(String query) {
+ this.query = query;
+ }
+
+ /**
+ * A container for additional, undeclared properties. This is a holder for any undeclared
+ * properties as specified with the 'additionalProperties' keyword in the OAS document.
+ */
+ private Map additionalProperties;
+
+ /**
+ * Set the additional (undeclared) property with the specified name and value. If the property
+ * does not already exist, create it otherwise replace it.
+ *
+ * @param key The arbitrary key to set
+ * @param value The associated value
+ * @return FacetInfoRequestDataAttributesSearch
+ */
+ @JsonAnySetter
+ public FacetInfoRequestDataAttributesSearch putAdditionalProperty(String key, Object value) {
+ if (this.additionalProperties == null) {
+ this.additionalProperties = new HashMap();
+ }
+ this.additionalProperties.put(key, value);
+ return this;
+ }
+
+ /**
+ * Return the additional (undeclared) property.
+ *
+ * @return The additional properties
+ */
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return additionalProperties;
+ }
+
+ /**
+ * Return the additional (undeclared) property with the specified name.
+ *
+ * @param key The arbitrary key to get
+ * @return The specific additional property for the given key
+ */
+ public Object getAdditionalProperty(String key) {
+ if (this.additionalProperties == null) {
+ return null;
+ }
+ return this.additionalProperties.get(key);
+ }
+
+ /** Return true if this FacetInfoRequestDataAttributesSearch object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ FacetInfoRequestDataAttributesSearch facetInfoRequestDataAttributesSearch =
+ (FacetInfoRequestDataAttributesSearch) o;
+ return Objects.equals(this.query, facetInfoRequestDataAttributesSearch.query)
+ && Objects.equals(
+ this.additionalProperties, facetInfoRequestDataAttributesSearch.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(query, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class FacetInfoRequestDataAttributesSearch {\n");
+ sb.append(" query: ").append(toIndentedString(query)).append("\n");
+ sb.append(" additionalProperties: ")
+ .append(toIndentedString(additionalProperties))
+ .append("\n");
+ sb.append('}');
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/FacetInfoRequestDataAttributesTermSearch.java b/src/main/java/com/datadog/api/client/v2/model/FacetInfoRequestDataAttributesTermSearch.java
new file mode 100644
index 00000000000..dc11fa3b360
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/FacetInfoRequestDataAttributesTermSearch.java
@@ -0,0 +1,138 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** */
+@JsonPropertyOrder({FacetInfoRequestDataAttributesTermSearch.JSON_PROPERTY_VALUE})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class FacetInfoRequestDataAttributesTermSearch {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_VALUE = "value";
+ private String value;
+
+ public FacetInfoRequestDataAttributesTermSearch value(String value) {
+ this.value = value;
+ return this;
+ }
+
+ /**
+ * Getvalue
+ *
+ * @return value
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_VALUE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ /**
+ * A container for additional, undeclared properties. This is a holder for any undeclared
+ * properties as specified with the 'additionalProperties' keyword in the OAS document.
+ */
+ private Map additionalProperties;
+
+ /**
+ * Set the additional (undeclared) property with the specified name and value. If the property
+ * does not already exist, create it otherwise replace it.
+ *
+ * @param key The arbitrary key to set
+ * @param value The associated value
+ * @return FacetInfoRequestDataAttributesTermSearch
+ */
+ @JsonAnySetter
+ public FacetInfoRequestDataAttributesTermSearch putAdditionalProperty(String key, Object value) {
+ if (this.additionalProperties == null) {
+ this.additionalProperties = new HashMap();
+ }
+ this.additionalProperties.put(key, value);
+ return this;
+ }
+
+ /**
+ * Return the additional (undeclared) property.
+ *
+ * @return The additional properties
+ */
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return additionalProperties;
+ }
+
+ /**
+ * Return the additional (undeclared) property with the specified name.
+ *
+ * @param key The arbitrary key to get
+ * @return The specific additional property for the given key
+ */
+ public Object getAdditionalProperty(String key) {
+ if (this.additionalProperties == null) {
+ return null;
+ }
+ return this.additionalProperties.get(key);
+ }
+
+ /** Return true if this FacetInfoRequestDataAttributesTermSearch object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ FacetInfoRequestDataAttributesTermSearch facetInfoRequestDataAttributesTermSearch =
+ (FacetInfoRequestDataAttributesTermSearch) o;
+ return Objects.equals(this.value, facetInfoRequestDataAttributesTermSearch.value)
+ && Objects.equals(
+ this.additionalProperties,
+ facetInfoRequestDataAttributesTermSearch.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(value, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class FacetInfoRequestDataAttributesTermSearch {\n");
+ sb.append(" value: ").append(toIndentedString(value)).append("\n");
+ sb.append(" additionalProperties: ")
+ .append(toIndentedString(additionalProperties))
+ .append("\n");
+ sb.append('}');
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/FacetInfoRequestDataType.java b/src/main/java/com/datadog/api/client/v2/model/FacetInfoRequestDataType.java
new file mode 100644
index 00000000000..ad7749a6401
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/FacetInfoRequestDataType.java
@@ -0,0 +1,57 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.datadog.api.client.ModelEnum;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.SerializerProvider;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.StdSerializer;
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+/** Users facet info request resource type. */
+@JsonSerialize(using = FacetInfoRequestDataType.FacetInfoRequestDataTypeSerializer.class)
+public class FacetInfoRequestDataType extends ModelEnum {
+
+ private static final Set allowedValues =
+ new HashSet(Arrays.asList("users_facet_info_request"));
+
+ public static final FacetInfoRequestDataType USERS_FACET_INFO_REQUEST =
+ new FacetInfoRequestDataType("users_facet_info_request");
+
+ FacetInfoRequestDataType(String value) {
+ super(value, allowedValues);
+ }
+
+ public static class FacetInfoRequestDataTypeSerializer
+ extends StdSerializer {
+ public FacetInfoRequestDataTypeSerializer(Class t) {
+ super(t);
+ }
+
+ public FacetInfoRequestDataTypeSerializer() {
+ this(null);
+ }
+
+ @Override
+ public void serialize(
+ FacetInfoRequestDataType value, JsonGenerator jgen, SerializerProvider provider)
+ throws IOException, JsonProcessingException {
+ jgen.writeObject(value.value);
+ }
+ }
+
+ @JsonCreator
+ public static FacetInfoRequestDataType fromValue(String value) {
+ return new FacetInfoRequestDataType(value);
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/FacetInfoResponse.java b/src/main/java/com/datadog/api/client/v2/model/FacetInfoResponse.java
new file mode 100644
index 00000000000..fd5db972705
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/FacetInfoResponse.java
@@ -0,0 +1,136 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** */
+@JsonPropertyOrder({FacetInfoResponse.JSON_PROPERTY_DATA})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class FacetInfoResponse {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_DATA = "data";
+ private FacetInfoResponseData data;
+
+ public FacetInfoResponse data(FacetInfoResponseData data) {
+ this.data = data;
+ this.unparsed |= data.unparsed;
+ return this;
+ }
+
+ /**
+ * Getdata
+ *
+ * @return data
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_DATA)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public FacetInfoResponseData getData() {
+ return data;
+ }
+
+ public void setData(FacetInfoResponseData data) {
+ this.data = data;
+ }
+
+ /**
+ * A container for additional, undeclared properties. This is a holder for any undeclared
+ * properties as specified with the 'additionalProperties' keyword in the OAS document.
+ */
+ private Map additionalProperties;
+
+ /**
+ * Set the additional (undeclared) property with the specified name and value. If the property
+ * does not already exist, create it otherwise replace it.
+ *
+ * @param key The arbitrary key to set
+ * @param value The associated value
+ * @return FacetInfoResponse
+ */
+ @JsonAnySetter
+ public FacetInfoResponse putAdditionalProperty(String key, Object value) {
+ if (this.additionalProperties == null) {
+ this.additionalProperties = new HashMap();
+ }
+ this.additionalProperties.put(key, value);
+ return this;
+ }
+
+ /**
+ * Return the additional (undeclared) property.
+ *
+ * @return The additional properties
+ */
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return additionalProperties;
+ }
+
+ /**
+ * Return the additional (undeclared) property with the specified name.
+ *
+ * @param key The arbitrary key to get
+ * @return The specific additional property for the given key
+ */
+ public Object getAdditionalProperty(String key) {
+ if (this.additionalProperties == null) {
+ return null;
+ }
+ return this.additionalProperties.get(key);
+ }
+
+ /** Return true if this FacetInfoResponse object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ FacetInfoResponse facetInfoResponse = (FacetInfoResponse) o;
+ return Objects.equals(this.data, facetInfoResponse.data)
+ && Objects.equals(this.additionalProperties, facetInfoResponse.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(data, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class FacetInfoResponse {\n");
+ sb.append(" data: ").append(toIndentedString(data)).append("\n");
+ sb.append(" additionalProperties: ")
+ .append(toIndentedString(additionalProperties))
+ .append("\n");
+ sb.append('}');
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/FacetInfoResponseData.java b/src/main/java/com/datadog/api/client/v2/model/FacetInfoResponseData.java
new file mode 100644
index 00000000000..6530bf8c4eb
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/FacetInfoResponseData.java
@@ -0,0 +1,205 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** */
+@JsonPropertyOrder({
+ FacetInfoResponseData.JSON_PROPERTY_ATTRIBUTES,
+ FacetInfoResponseData.JSON_PROPERTY_ID,
+ FacetInfoResponseData.JSON_PROPERTY_TYPE
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class FacetInfoResponseData {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ATTRIBUTES = "attributes";
+ private FacetInfoResponseDataAttributes attributes;
+
+ public static final String JSON_PROPERTY_ID = "id";
+ private String id;
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ private FacetInfoResponseDataType type = FacetInfoResponseDataType.USERS_FACET_INFO;
+
+ public FacetInfoResponseData() {}
+
+ @JsonCreator
+ public FacetInfoResponseData(
+ @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) FacetInfoResponseDataType type) {
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ }
+
+ public FacetInfoResponseData attributes(FacetInfoResponseDataAttributes attributes) {
+ this.attributes = attributes;
+ this.unparsed |= attributes.unparsed;
+ return this;
+ }
+
+ /**
+ * Getattributes
+ *
+ * @return attributes
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ATTRIBUTES)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public FacetInfoResponseDataAttributes getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(FacetInfoResponseDataAttributes attributes) {
+ this.attributes = attributes;
+ }
+
+ public FacetInfoResponseData id(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Getid
+ *
+ * @return id
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public FacetInfoResponseData type(FacetInfoResponseDataType type) {
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ return this;
+ }
+
+ /**
+ * Users facet info resource type.
+ *
+ * @return type
+ */
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public FacetInfoResponseDataType getType() {
+ return type;
+ }
+
+ public void setType(FacetInfoResponseDataType type) {
+ if (!type.isValid()) {
+ this.unparsed = true;
+ }
+ this.type = type;
+ }
+
+ /**
+ * A container for additional, undeclared properties. This is a holder for any undeclared
+ * properties as specified with the 'additionalProperties' keyword in the OAS document.
+ */
+ private Map additionalProperties;
+
+ /**
+ * Set the additional (undeclared) property with the specified name and value. If the property
+ * does not already exist, create it otherwise replace it.
+ *
+ * @param key The arbitrary key to set
+ * @param value The associated value
+ * @return FacetInfoResponseData
+ */
+ @JsonAnySetter
+ public FacetInfoResponseData putAdditionalProperty(String key, Object value) {
+ if (this.additionalProperties == null) {
+ this.additionalProperties = new HashMap();
+ }
+ this.additionalProperties.put(key, value);
+ return this;
+ }
+
+ /**
+ * Return the additional (undeclared) property.
+ *
+ * @return The additional properties
+ */
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return additionalProperties;
+ }
+
+ /**
+ * Return the additional (undeclared) property with the specified name.
+ *
+ * @param key The arbitrary key to get
+ * @return The specific additional property for the given key
+ */
+ public Object getAdditionalProperty(String key) {
+ if (this.additionalProperties == null) {
+ return null;
+ }
+ return this.additionalProperties.get(key);
+ }
+
+ /** Return true if this FacetInfoResponseData object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ FacetInfoResponseData facetInfoResponseData = (FacetInfoResponseData) o;
+ return Objects.equals(this.attributes, facetInfoResponseData.attributes)
+ && Objects.equals(this.id, facetInfoResponseData.id)
+ && Objects.equals(this.type, facetInfoResponseData.type)
+ && Objects.equals(this.additionalProperties, facetInfoResponseData.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(attributes, id, type, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class FacetInfoResponseData {\n");
+ sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n");
+ sb.append(" id: ").append(toIndentedString(id)).append("\n");
+ sb.append(" type: ").append(toIndentedString(type)).append("\n");
+ sb.append(" additionalProperties: ")
+ .append(toIndentedString(additionalProperties))
+ .append("\n");
+ sb.append('}');
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/FacetInfoResponseDataAttributes.java b/src/main/java/com/datadog/api/client/v2/model/FacetInfoResponseDataAttributes.java
new file mode 100644
index 00000000000..571d34d9284
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/FacetInfoResponseDataAttributes.java
@@ -0,0 +1,138 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** */
+@JsonPropertyOrder({FacetInfoResponseDataAttributes.JSON_PROPERTY_RESULT})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class FacetInfoResponseDataAttributes {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_RESULT = "result";
+ private FacetInfoResponseDataAttributesResult result;
+
+ public FacetInfoResponseDataAttributes result(FacetInfoResponseDataAttributesResult result) {
+ this.result = result;
+ this.unparsed |= result.unparsed;
+ return this;
+ }
+
+ /**
+ * Getresult
+ *
+ * @return result
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_RESULT)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public FacetInfoResponseDataAttributesResult getResult() {
+ return result;
+ }
+
+ public void setResult(FacetInfoResponseDataAttributesResult result) {
+ this.result = result;
+ }
+
+ /**
+ * A container for additional, undeclared properties. This is a holder for any undeclared
+ * properties as specified with the 'additionalProperties' keyword in the OAS document.
+ */
+ private Map additionalProperties;
+
+ /**
+ * Set the additional (undeclared) property with the specified name and value. If the property
+ * does not already exist, create it otherwise replace it.
+ *
+ * @param key The arbitrary key to set
+ * @param value The associated value
+ * @return FacetInfoResponseDataAttributes
+ */
+ @JsonAnySetter
+ public FacetInfoResponseDataAttributes putAdditionalProperty(String key, Object value) {
+ if (this.additionalProperties == null) {
+ this.additionalProperties = new HashMap();
+ }
+ this.additionalProperties.put(key, value);
+ return this;
+ }
+
+ /**
+ * Return the additional (undeclared) property.
+ *
+ * @return The additional properties
+ */
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return additionalProperties;
+ }
+
+ /**
+ * Return the additional (undeclared) property with the specified name.
+ *
+ * @param key The arbitrary key to get
+ * @return The specific additional property for the given key
+ */
+ public Object getAdditionalProperty(String key) {
+ if (this.additionalProperties == null) {
+ return null;
+ }
+ return this.additionalProperties.get(key);
+ }
+
+ /** Return true if this FacetInfoResponseDataAttributes object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ FacetInfoResponseDataAttributes facetInfoResponseDataAttributes =
+ (FacetInfoResponseDataAttributes) o;
+ return Objects.equals(this.result, facetInfoResponseDataAttributes.result)
+ && Objects.equals(
+ this.additionalProperties, facetInfoResponseDataAttributes.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(result, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class FacetInfoResponseDataAttributes {\n");
+ sb.append(" result: ").append(toIndentedString(result)).append("\n");
+ sb.append(" additionalProperties: ")
+ .append(toIndentedString(additionalProperties))
+ .append("\n");
+ sb.append('}');
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/FacetInfoResponseDataAttributesResult.java b/src/main/java/com/datadog/api/client/v2/model/FacetInfoResponseDataAttributesResult.java
new file mode 100644
index 00000000000..b48e11ec179
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/FacetInfoResponseDataAttributesResult.java
@@ -0,0 +1,184 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+/** */
+@JsonPropertyOrder({
+ FacetInfoResponseDataAttributesResult.JSON_PROPERTY_RANGE,
+ FacetInfoResponseDataAttributesResult.JSON_PROPERTY_VALUES
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class FacetInfoResponseDataAttributesResult {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_RANGE = "range";
+ private FacetInfoResponseDataAttributesResultRange range;
+
+ public static final String JSON_PROPERTY_VALUES = "values";
+ private List values = null;
+
+ public FacetInfoResponseDataAttributesResult range(
+ FacetInfoResponseDataAttributesResultRange range) {
+ this.range = range;
+ this.unparsed |= range.unparsed;
+ return this;
+ }
+
+ /**
+ * Getrange
+ *
+ * @return range
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_RANGE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public FacetInfoResponseDataAttributesResultRange getRange() {
+ return range;
+ }
+
+ public void setRange(FacetInfoResponseDataAttributesResultRange range) {
+ this.range = range;
+ }
+
+ public FacetInfoResponseDataAttributesResult values(
+ List values) {
+ this.values = values;
+ for (FacetInfoResponseDataAttributesResultValuesItems item : values) {
+ this.unparsed |= item.unparsed;
+ }
+ return this;
+ }
+
+ public FacetInfoResponseDataAttributesResult addValuesItem(
+ FacetInfoResponseDataAttributesResultValuesItems valuesItem) {
+ if (this.values == null) {
+ this.values = new ArrayList<>();
+ }
+ this.values.add(valuesItem);
+ this.unparsed |= valuesItem.unparsed;
+ return this;
+ }
+
+ /**
+ * Getvalues
+ *
+ * @return values
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_VALUES)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getValues() {
+ return values;
+ }
+
+ public void setValues(List