diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml
index 93efc78e5a9..f95a76690c8 100644
--- a/.generator/schemas/v2/openapi.yaml
+++ b/.generator/schemas/v2/openapi.yaml
@@ -20823,6 +20823,326 @@ components:
- name
- requirements
type: object
+ FunnelRequest:
+ example:
+ data:
+ attributes:
+ data_source: rum
+ enforced_execution_type: ''
+ request_id: ''
+ search:
+ cross_session_filter: ''
+ query_string: '@type:view'
+ steps:
+ - facet: '@view.name'
+ step_filter: ''
+ value: /apm/home
+ - facet: '@view.name'
+ step_filter: ''
+ value: /apm/traces
+ subquery_id: ''
+ time:
+ from: 1756425600000
+ to: 1756857600000
+ id: funnel_request
+ type: funnel_request
+ properties:
+ data:
+ $ref: '#/components/schemas/FunnelRequestData'
+ type: object
+ FunnelRequestData:
+ properties:
+ attributes:
+ $ref: '#/components/schemas/FunnelRequestDataAttributes'
+ id:
+ type: string
+ type:
+ $ref: '#/components/schemas/FunnelRequestDataType'
+ required:
+ - type
+ type: object
+ FunnelRequestDataAttributes:
+ properties:
+ data_source:
+ type: string
+ enforced_execution_type:
+ type: string
+ request_id:
+ type: string
+ search:
+ $ref: '#/components/schemas/FunnelRequestDataAttributesSearch'
+ time:
+ $ref: '#/components/schemas/FunnelRequestDataAttributesTime'
+ type: object
+ FunnelRequestDataAttributesSearch:
+ properties:
+ cross_session_filter:
+ type: string
+ query_string:
+ type: string
+ steps:
+ items:
+ $ref: '#/components/schemas/FunnelRequestDataAttributesSearchStepsItems'
+ type: array
+ subquery_id:
+ type: string
+ type: object
+ FunnelRequestDataAttributesSearchStepsItems:
+ properties:
+ facet:
+ type: string
+ step_filter:
+ type: string
+ value:
+ type: string
+ type: object
+ FunnelRequestDataAttributesTime:
+ properties:
+ from:
+ format: int64
+ type: integer
+ to:
+ format: int64
+ type: integer
+ type: object
+ FunnelRequestDataType:
+ default: funnel_request
+ enum:
+ - funnel_request
+ example: funnel_request
+ type: string
+ x-enum-varnames:
+ - FUNNEL_REQUEST
+ FunnelResponse:
+ example:
+ data:
+ attributes:
+ end_to_end_conversion_rate: 0.1161386890038228
+ funnel_steps:
+ - label: '@type:view @view.name:/apm/home'
+ value: 284608
+ - label: '@type:view @view.name:/apm/traces'
+ value: 33054
+ initial_count: 3925047
+ id: funnel_response
+ type: funnel_response
+ properties:
+ data:
+ $ref: '#/components/schemas/FunnelResponseData'
+ type: object
+ FunnelResponseData:
+ properties:
+ attributes:
+ $ref: '#/components/schemas/FunnelResponseDataAttributes'
+ id:
+ type: string
+ type:
+ $ref: '#/components/schemas/FunnelResponseDataType'
+ required:
+ - type
+ type: object
+ FunnelResponseDataAttributes:
+ properties:
+ end_to_end_conversion_rate:
+ format: double
+ type: number
+ end_to_end_elapsed_time:
+ $ref: '#/components/schemas/FunnelResponseElapsedTime'
+ funnel_steps:
+ items:
+ $ref: '#/components/schemas/FunnelResponseDataAttributesFunnelStepsItems'
+ type: array
+ initial_count:
+ format: int64
+ type: integer
+ type: object
+ FunnelResponseDataAttributesFunnelStepsItems:
+ properties:
+ elapsed_time_to_next_step:
+ $ref: '#/components/schemas/FunnelResponseElapsedTime'
+ label:
+ type: string
+ value:
+ format: int64
+ type: integer
+ type: object
+ FunnelResponseDataType:
+ default: funnel_response
+ enum:
+ - funnel_response
+ example: funnel_response
+ type: string
+ x-enum-varnames:
+ - FUNNEL_RESPONSE
+ FunnelResponseElapsedTime:
+ properties:
+ avg:
+ format: int64
+ type: integer
+ max:
+ format: int64
+ type: integer
+ min:
+ format: int64
+ type: integer
+ p5:
+ format: int64
+ type: integer
+ p50:
+ format: int64
+ type: integer
+ p95:
+ format: int64
+ type: integer
+ type: object
+ FunnelSuggestionRequest:
+ example:
+ data:
+ attributes:
+ data_source: ''
+ search:
+ cross_session_filter: ''
+ query_string: '@type:view'
+ steps:
+ - facet: '@view.name'
+ step_filter: ''
+ value: /apm/home
+ subquery_id: ''
+ term_search:
+ query: apm
+ time:
+ from: 1756425600000
+ to: 1756857600000
+ id: funnel_suggestion_request
+ type: funnel_suggestion_request
+ properties:
+ data:
+ $ref: '#/components/schemas/FunnelSuggestionRequestData'
+ type: object
+ FunnelSuggestionRequestData:
+ properties:
+ attributes:
+ $ref: '#/components/schemas/FunnelSuggestionRequestDataAttributes'
+ id:
+ type: string
+ type:
+ $ref: '#/components/schemas/FunnelSuggestionRequestDataType'
+ required:
+ - type
+ type: object
+ FunnelSuggestionRequestDataAttributes:
+ properties:
+ data_source:
+ type: string
+ search:
+ $ref: '#/components/schemas/FunnelSuggestionRequestDataAttributesSearch'
+ term_search:
+ $ref: '#/components/schemas/FunnelSuggestionRequestDataAttributesTermSearch'
+ time:
+ $ref: '#/components/schemas/FunnelSuggestionRequestDataAttributesTime'
+ type: object
+ FunnelSuggestionRequestDataAttributesSearch:
+ properties:
+ cross_session_filter:
+ type: string
+ query_string:
+ type: string
+ steps:
+ items:
+ $ref: '#/components/schemas/FunnelSuggestionRequestDataAttributesSearchStepsItems'
+ type: array
+ subquery_id:
+ type: string
+ type: object
+ FunnelSuggestionRequestDataAttributesSearchStepsItems:
+ properties:
+ facet:
+ type: string
+ step_filter:
+ type: string
+ value:
+ type: string
+ type: object
+ FunnelSuggestionRequestDataAttributesTermSearch:
+ properties:
+ query:
+ type: string
+ type: object
+ FunnelSuggestionRequestDataAttributesTime:
+ properties:
+ from:
+ format: int64
+ type: integer
+ to:
+ format: int64
+ type: integer
+ type: object
+ FunnelSuggestionRequestDataType:
+ default: funnel_suggestion_request
+ enum:
+ - funnel_suggestion_request
+ example: funnel_suggestion_request
+ type: string
+ x-enum-varnames:
+ - FUNNEL_SUGGESTION_REQUEST
+ FunnelSuggestionResponse:
+ example:
+ data:
+ attributes:
+ actions:
+ - name: view_trace_details
+ - name: filter_by_service
+ - name: analyze_performance
+ views:
+ - name: /apm/traces
+ - name: /apm/services
+ - name: /apm/service-map
+ id: funnel_suggestion_response
+ type: funnel_suggestion_response
+ properties:
+ data:
+ $ref: '#/components/schemas/FunnelSuggestionResponseData'
+ type: object
+ FunnelSuggestionResponseData:
+ properties:
+ attributes:
+ $ref: '#/components/schemas/FunnelSuggestionResponseDataAttributes'
+ id:
+ type: string
+ type:
+ $ref: '#/components/schemas/FunnelSuggestionResponseDataType'
+ required:
+ - type
+ type: object
+ FunnelSuggestionResponseDataAttributes:
+ properties:
+ actions:
+ items:
+ $ref: '#/components/schemas/FunnelSuggestionResponseDataAttributesActionsItems'
+ type: array
+ views:
+ items:
+ $ref: '#/components/schemas/FunnelSuggestionResponseDataAttributesViewsItems'
+ type: array
+ type: object
+ FunnelSuggestionResponseDataAttributesActionsItems:
+ properties:
+ name:
+ type: string
+ type: object
+ FunnelSuggestionResponseDataAttributesViewsItems:
+ properties:
+ name:
+ type: string
+ type: object
+ FunnelSuggestionResponseDataType:
+ default: funnel_suggestion_response
+ enum:
+ - funnel_suggestion_response
+ example: funnel_suggestion_response
+ type: string
+ x-enum-varnames:
+ - FUNNEL_SUGGESTION_RESPONSE
GCPCredentials:
description: The definition of the `GCPCredentials` object.
oneOf:
@@ -21735,6 +22055,369 @@ components:
type: string
type: array
type: object
+ GetCohortRequest:
+ properties:
+ data:
+ $ref: '#/components/schemas/GetCohortRequestData'
+ type: object
+ GetCohortRequestData:
+ properties:
+ attributes:
+ $ref: '#/components/schemas/GetCohortRequestDataAttributes'
+ id:
+ type: string
+ type:
+ $ref: '#/components/schemas/GetCohortRequestDataType'
+ required:
+ - type
+ type: object
+ GetCohortRequestDataAttributes:
+ properties:
+ data_source:
+ type: string
+ definition:
+ $ref: '#/components/schemas/GetCohortRequestDataAttributesDefinition'
+ enforced_execution_type:
+ type: string
+ request_id:
+ type: string
+ time:
+ $ref: '#/components/schemas/GetCohortRequestDataAttributesTime'
+ window_size:
+ type: string
+ type: object
+ GetCohortRequestDataAttributesDefinition:
+ properties:
+ audience_filters:
+ $ref: '#/components/schemas/GetCohortRequestDataAttributesDefinitionAudienceFilters'
+ inclusion_search:
+ type: string
+ return_search:
+ type: string
+ segment_id:
+ type: string
+ type: object
+ GetCohortRequestDataAttributesDefinitionAudienceFilters:
+ properties:
+ accounts:
+ items:
+ $ref: '#/components/schemas/GetCohortRequestDataAttributesDefinitionAudienceFiltersAccountsItems'
+ type: array
+ formula:
+ type: string
+ segments:
+ items:
+ $ref: '#/components/schemas/GetCohortRequestDataAttributesDefinitionAudienceFiltersSegmentsItems'
+ type: array
+ users:
+ items:
+ $ref: '#/components/schemas/GetCohortRequestDataAttributesDefinitionAudienceFiltersUsersItems'
+ type: array
+ type: object
+ GetCohortRequestDataAttributesDefinitionAudienceFiltersAccountsItems:
+ properties:
+ name:
+ example: ''
+ type: string
+ query:
+ type: string
+ required:
+ - name
+ type: object
+ GetCohortRequestDataAttributesDefinitionAudienceFiltersSegmentsItems:
+ properties:
+ name:
+ example: ''
+ type: string
+ segment_id:
+ example: ''
+ type: string
+ required:
+ - name
+ - segment_id
+ type: object
+ GetCohortRequestDataAttributesDefinitionAudienceFiltersUsersItems:
+ properties:
+ name:
+ example: ''
+ type: string
+ query:
+ type: string
+ required:
+ - name
+ type: object
+ GetCohortRequestDataAttributesTime:
+ properties:
+ from:
+ format: int64
+ type: integer
+ to:
+ format: int64
+ type: integer
+ type: object
+ GetCohortRequestDataType:
+ default: cohort_request
+ enum:
+ - cohort_request
+ example: cohort_request
+ type: string
+ x-enum-varnames:
+ - COHORT_REQUEST
+ GetCohortResponse:
+ example:
+ data:
+ attributes:
+ cohorts:
+ - cohort: '2024-01-01'
+ cohort_size: 1000
+ start_time: 1704067200000
+ values:
+ - absolute_value: 1000
+ end_time: 1704672000000
+ relative_value: 100
+ start_time: 1704067200000
+ window: 0
+ - absolute_value: 750
+ end_time: 1705276800000
+ relative_value: 75
+ start_time: 1704672000000
+ window: 1
+ - absolute_value: 600
+ end_time: 1705881600000
+ relative_value: 60
+ start_time: 1705276800000
+ window: 2
+ id: cohort_response
+ type: cohort_response
+ properties:
+ data:
+ $ref: '#/components/schemas/GetCohortResponseData'
+ type: object
+ GetCohortResponseData:
+ properties:
+ attributes:
+ $ref: '#/components/schemas/GetCohortResponseDataAttributes'
+ id:
+ type: string
+ type:
+ $ref: '#/components/schemas/GetCohortResponseDataType'
+ required:
+ - type
+ type: object
+ GetCohortResponseDataAttributes:
+ properties:
+ cohorts:
+ items:
+ $ref: '#/components/schemas/GetCohortResponseDataAttributesCohortsItems'
+ type: array
+ type: object
+ GetCohortResponseDataAttributesCohortsItems:
+ properties:
+ cohort:
+ type: string
+ cohort_size:
+ format: int64
+ type: integer
+ start_time:
+ format: int64
+ type: integer
+ values:
+ items:
+ $ref: '#/components/schemas/GetCohortResponseDataAttributesCohortsItemsValuesItems'
+ type: array
+ type: object
+ GetCohortResponseDataAttributesCohortsItemsValuesItems:
+ properties:
+ absolute_value:
+ format: int64
+ type: integer
+ end_time:
+ format: int64
+ type: integer
+ relative_value:
+ format: double
+ type: number
+ start_time:
+ format: int64
+ type: integer
+ window:
+ format: int64
+ type: integer
+ type: object
+ GetCohortResponseDataType:
+ default: cohort_response
+ enum:
+ - cohort_response
+ example: cohort_response
+ type: string
+ x-enum-varnames:
+ - COHORT_RESPONSE
+ GetCohortUsersRequest:
+ properties:
+ data:
+ $ref: '#/components/schemas/GetCohortUsersRequestData'
+ type: object
+ GetCohortUsersRequestData:
+ properties:
+ attributes:
+ $ref: '#/components/schemas/GetCohortUsersRequestDataAttributes'
+ id:
+ type: string
+ type:
+ $ref: '#/components/schemas/GetCohortUsersRequestDataType'
+ required:
+ - type
+ type: object
+ GetCohortUsersRequestDataAttributes:
+ properties:
+ data_source:
+ type: string
+ definition:
+ $ref: '#/components/schemas/GetCohortUsersRequestDataAttributesDefinition'
+ execution:
+ format: int64
+ type: integer
+ time:
+ $ref: '#/components/schemas/GetCohortUsersRequestDataAttributesTime'
+ user_selection:
+ type: string
+ window_size:
+ type: string
+ type: object
+ GetCohortUsersRequestDataAttributesDefinition:
+ properties:
+ audience_filters:
+ $ref: '#/components/schemas/GetCohortUsersRequestDataAttributesDefinitionAudienceFilters'
+ cohort:
+ type: string
+ inclusion_search:
+ type: string
+ return_search:
+ type: string
+ segment_id:
+ type: string
+ window:
+ format: int64
+ type: integer
+ type: object
+ GetCohortUsersRequestDataAttributesDefinitionAudienceFilters:
+ properties:
+ accounts:
+ items:
+ $ref: '#/components/schemas/GetCohortUsersRequestDataAttributesDefinitionAudienceFiltersAccountsItems'
+ type: array
+ formula:
+ type: string
+ segments:
+ items:
+ $ref: '#/components/schemas/GetCohortUsersRequestDataAttributesDefinitionAudienceFiltersSegmentsItems'
+ type: array
+ users:
+ items:
+ $ref: '#/components/schemas/GetCohortUsersRequestDataAttributesDefinitionAudienceFiltersUsersItems'
+ type: array
+ type: object
+ GetCohortUsersRequestDataAttributesDefinitionAudienceFiltersAccountsItems:
+ properties:
+ name:
+ example: ''
+ type: string
+ query:
+ type: string
+ required:
+ - name
+ type: object
+ GetCohortUsersRequestDataAttributesDefinitionAudienceFiltersSegmentsItems:
+ properties:
+ name:
+ example: ''
+ type: string
+ segment_id:
+ example: ''
+ type: string
+ required:
+ - name
+ - segment_id
+ type: object
+ GetCohortUsersRequestDataAttributesDefinitionAudienceFiltersUsersItems:
+ properties:
+ name:
+ example: ''
+ type: string
+ query:
+ type: string
+ required:
+ - name
+ type: object
+ GetCohortUsersRequestDataAttributesTime:
+ properties:
+ from:
+ format: int64
+ type: integer
+ to:
+ format: int64
+ type: integer
+ type: object
+ GetCohortUsersRequestDataType:
+ default: cohort_users_request
+ enum:
+ - cohort_users_request
+ example: cohort_users_request
+ type: string
+ x-enum-varnames:
+ - COHORT_USERS_REQUEST
+ GetCohortUsersResponse:
+ example:
+ data:
+ attributes:
+ users:
+ - email: user@example.com
+ id: user123
+ name: John Doe
+ - email: jane@example.com
+ id: user456
+ name: Jane Smith
+ id: cohort_users_response
+ type: cohort_users_response
+ properties:
+ data:
+ $ref: '#/components/schemas/GetCohortUsersResponseData'
+ type: object
+ GetCohortUsersResponseData:
+ properties:
+ attributes:
+ $ref: '#/components/schemas/GetCohortUsersResponseDataAttributes'
+ id:
+ type: string
+ type:
+ $ref: '#/components/schemas/GetCohortUsersResponseDataType'
+ required:
+ - type
+ type: object
+ GetCohortUsersResponseDataAttributes:
+ properties:
+ users:
+ items:
+ $ref: '#/components/schemas/GetCohortUsersResponseDataAttributesUsersItems'
+ type: array
+ type: object
+ GetCohortUsersResponseDataAttributesUsersItems:
+ properties:
+ email:
+ type: string
+ id:
+ type: string
+ name:
+ type: string
+ type: object
+ GetCohortUsersResponseDataType:
+ default: cohort_users_response
+ enum:
+ - cohort_users_response
+ example: cohort_users_response
+ type: string
+ x-enum-varnames:
+ - COHORT_USERS_RESPONSE
GetCustomFrameworkResponse:
description: Response object to get a custom framework.
properties:
@@ -42312,6 +42995,294 @@ components:
example: report_id
type: string
type: object
+ SankeyRequest:
+ example:
+ data:
+ attributes:
+ data_source: ''
+ definition:
+ entries_per_step: 10
+ number_of_steps: 5
+ source: '@view.name'
+ target: '@view.name'
+ enforced_execution_type: ''
+ request_id: ''
+ sampling:
+ enabled: true
+ search:
+ audience_filters: {}
+ query: '@type:view @application.id:*'
+ subquery_id: ''
+ time:
+ from: 1756425600000
+ to: 1756857600000
+ id: sankey_request
+ type: sankey_request
+ properties:
+ data:
+ $ref: '#/components/schemas/SankeyRequestData'
+ type: object
+ SankeyRequestData:
+ properties:
+ attributes:
+ $ref: '#/components/schemas/SankeyRequestDataAttributes'
+ id:
+ type: string
+ type:
+ $ref: '#/components/schemas/SankeyRequestDataType'
+ required:
+ - type
+ type: object
+ SankeyRequestDataAttributes:
+ properties:
+ data_source:
+ type: string
+ definition:
+ $ref: '#/components/schemas/SankeyRequestDataAttributesDefinition'
+ enforced_execution_type:
+ type: string
+ request_id:
+ type: string
+ sampling:
+ $ref: '#/components/schemas/SankeyRequestDataAttributesSampling'
+ search:
+ $ref: '#/components/schemas/SankeyRequestDataAttributesSearch'
+ time:
+ $ref: '#/components/schemas/SankeyRequestDataAttributesTime'
+ type: object
+ SankeyRequestDataAttributesDefinition:
+ properties:
+ entries_per_step:
+ format: int64
+ type: integer
+ number_of_steps:
+ format: int64
+ type: integer
+ source:
+ type: string
+ target:
+ type: string
+ type: object
+ SankeyRequestDataAttributesSampling:
+ properties:
+ enabled:
+ description: The `sampling` `enabled`.
+ type: boolean
+ type: object
+ SankeyRequestDataAttributesSearch:
+ properties:
+ audience_filters:
+ $ref: '#/components/schemas/SankeyRequestDataAttributesSearchAudienceFilters'
+ occurrences:
+ $ref: '#/components/schemas/SankeyRequestDataAttributesSearchOccurrences'
+ query:
+ type: string
+ subquery_id:
+ type: string
+ type: object
+ SankeyRequestDataAttributesSearchAudienceFilters:
+ properties:
+ accounts:
+ items:
+ $ref: '#/components/schemas/SankeyRequestDataAttributesSearchAudienceFiltersAccountsItems'
+ type: array
+ formula:
+ type: string
+ segments:
+ items:
+ $ref: '#/components/schemas/SankeyRequestDataAttributesSearchAudienceFiltersSegmentsItems'
+ type: array
+ users:
+ items:
+ $ref: '#/components/schemas/SankeyRequestDataAttributesSearchAudienceFiltersUsersItems'
+ type: array
+ type: object
+ SankeyRequestDataAttributesSearchAudienceFiltersAccountsItems:
+ properties:
+ name:
+ example: ''
+ type: string
+ query:
+ type: string
+ required:
+ - name
+ type: object
+ SankeyRequestDataAttributesSearchAudienceFiltersSegmentsItems:
+ properties:
+ name:
+ example: ''
+ type: string
+ segment_id:
+ example: ''
+ type: string
+ required:
+ - name
+ - segment_id
+ type: object
+ SankeyRequestDataAttributesSearchAudienceFiltersUsersItems:
+ properties:
+ name:
+ example: ''
+ type: string
+ query:
+ type: string
+ required:
+ - name
+ type: object
+ SankeyRequestDataAttributesSearchOccurrences:
+ properties:
+ meta:
+ additionalProperties:
+ type: string
+ type: object
+ operator:
+ example: ''
+ type: string
+ value:
+ example: ''
+ type: string
+ required:
+ - operator
+ - value
+ type: object
+ SankeyRequestDataAttributesTime:
+ properties:
+ from:
+ format: int64
+ type: integer
+ to:
+ format: int64
+ type: integer
+ type: object
+ SankeyRequestDataType:
+ default: sankey_request
+ enum:
+ - sankey_request
+ example: sankey_request
+ type: string
+ x-enum-varnames:
+ - SANKEY_REQUEST
+ SankeyResponse:
+ example:
+ data:
+ attributes:
+ links:
+ - column: 0
+ id: apm_home-to-apm_traces
+ source: apm_home
+ target: apm_traces
+ value: 33054
+ nodes:
+ - aggregated_nodes: null
+ column: 0
+ id: apm_home
+ incoming_value: 0
+ name: /apm/home
+ outgoing_value: 33054
+ type: regular
+ value: 284608
+ - aggregated_nodes: null
+ column: 1
+ id: apm_traces
+ incoming_value: 33054
+ name: /apm/traces
+ outgoing_value: 15000
+ type: regular
+ value: 33054
+ id: sankey_response
+ type: sankey_response
+ properties:
+ data:
+ $ref: '#/components/schemas/SankeyResponseData'
+ type: object
+ SankeyResponseData:
+ properties:
+ attributes:
+ $ref: '#/components/schemas/SankeyResponseDataAttributes'
+ id:
+ type: string
+ type:
+ $ref: '#/components/schemas/SankeyResponseDataType'
+ required:
+ - type
+ type: object
+ SankeyResponseDataAttributes:
+ properties:
+ links:
+ items:
+ $ref: '#/components/schemas/SankeyResponseDataAttributesLinksItems'
+ type: array
+ nodes:
+ items:
+ $ref: '#/components/schemas/SankeyResponseDataAttributesNodesItems'
+ type: array
+ type: object
+ SankeyResponseDataAttributesLinksItems:
+ properties:
+ column:
+ format: int64
+ type: integer
+ id:
+ type: string
+ source:
+ type: string
+ target:
+ type: string
+ value:
+ format: int64
+ type: integer
+ type: object
+ SankeyResponseDataAttributesNodesItems:
+ properties:
+ aggregated_nodes:
+ items:
+ $ref: '#/components/schemas/SankeyResponseDataAttributesNodesItemsAggregatedNodesItems'
+ type: array
+ column:
+ format: int64
+ type: integer
+ id:
+ type: string
+ incoming_value:
+ format: int64
+ type: integer
+ name:
+ type: string
+ outgoing_value:
+ format: int64
+ type: integer
+ type:
+ type: string
+ value:
+ format: int64
+ type: integer
+ type: object
+ SankeyResponseDataAttributesNodesItemsAggregatedNodesItems:
+ properties:
+ id:
+ type: string
+ incoming_value:
+ format: int64
+ type: integer
+ name:
+ type: string
+ outgoing_value:
+ format: int64
+ type: integer
+ type:
+ type: string
+ value:
+ format: int64
+ type: integer
+ type: object
+ SankeyResponseDataType:
+ default: sankey_response
+ enum:
+ - sankey_response
+ example: sankey_response
+ type: string
+ x-enum-varnames:
+ - SANKEY_RESPONSE
ScaRequest:
properties:
data:
@@ -45944,6 +46915,229 @@ components:
required:
- securityTrigger
type: object
+ Segment:
+ example:
+ data:
+ attributes:
+ created_at: '0001-01-01T00:00:00Z'
+ created_by:
+ handle: ''
+ id: ''
+ uuid: ''
+ data_query:
+ event_platform:
+ - facet: '@usr.id'
+ from: '2025-08-01'
+ name: high_value_users
+ query: '@type:view @view.name:/logs @usr.session_duration:>300000'
+ to: '2025-09-01'
+ description: Users who frequently visit logs and have high session duration
+ modified_at: '0001-01-01T00:00:00Z'
+ modified_by:
+ handle: ''
+ id: ''
+ uuid: ''
+ name: High-Value Users
+ org_id: 123456
+ source: 0
+ tags:
+ - high-value
+ - logs
+ - active
+ version: 1
+ id: segment-12345
+ type: segment
+ properties:
+ data:
+ $ref: '#/components/schemas/SegmentData'
+ type: object
+ SegmentArray:
+ properties:
+ data:
+ items:
+ $ref: '#/components/schemas/SegmentData'
+ type: array
+ required:
+ - data
+ type: object
+ SegmentData:
+ properties:
+ attributes:
+ $ref: '#/components/schemas/SegmentDataAttributes'
+ id:
+ type: string
+ type:
+ $ref: '#/components/schemas/SegmentDataType'
+ required:
+ - type
+ type: object
+ SegmentDataAttributes:
+ properties:
+ created_at:
+ format: date-time
+ type: string
+ created_by:
+ $ref: '#/components/schemas/SegmentDataSource'
+ data_query:
+ $ref: '#/components/schemas/SegmentDataAttributesDataQuery'
+ description:
+ type: string
+ disabled_at:
+ format: date-time
+ type: string
+ disabled_by:
+ $ref: '#/components/schemas/SegmentDataSource'
+ materialization_row_count:
+ format: int64
+ type: integer
+ materialized_at:
+ type: string
+ modified_at:
+ format: date-time
+ type: string
+ modified_by:
+ $ref: '#/components/schemas/SegmentDataSource'
+ name:
+ example: ''
+ type: string
+ org_id:
+ format: int64
+ type: integer
+ source:
+ format: int64
+ type: integer
+ tags:
+ items:
+ type: string
+ type: array
+ version:
+ format: int64
+ type: integer
+ required:
+ - data_query
+ - name
+ type: object
+ SegmentDataAttributesDataQuery:
+ properties:
+ combination:
+ type: string
+ event_platform:
+ items:
+ $ref: '#/components/schemas/SegmentDataAttributesDataQueryEventPlatformItems'
+ type: array
+ reference_table:
+ items:
+ $ref: '#/components/schemas/SegmentDataAttributesDataQueryReferenceTableItems'
+ type: array
+ static:
+ items:
+ $ref: '#/components/schemas/SegmentDataAttributesDataQueryStaticItems'
+ type: array
+ user_store:
+ items:
+ $ref: '#/components/schemas/SegmentDataAttributesDataQueryUserStoreItems'
+ type: array
+ type: object
+ SegmentDataAttributesDataQueryEventPlatformItems:
+ properties:
+ facet:
+ example: ''
+ type: string
+ from:
+ type: string
+ name:
+ type: string
+ query:
+ type: string
+ to:
+ type: string
+ required:
+ - facet
+ type: object
+ SegmentDataAttributesDataQueryReferenceTableItems:
+ properties:
+ columns:
+ items:
+ $ref: '#/components/schemas/SegmentDataAttributesDataQueryReferenceTableItemsColumnsItems'
+ type: array
+ filter_query:
+ type: string
+ join_condition:
+ $ref: '#/components/schemas/SegmentDataAttributesDataQueryReferenceTableItemsJoinCondition'
+ name:
+ type: string
+ table_name:
+ example: ''
+ type: string
+ required:
+ - join_condition
+ - table_name
+ type: object
+ SegmentDataAttributesDataQueryReferenceTableItemsColumnsItems:
+ properties:
+ alias:
+ type: string
+ name:
+ type: string
+ type: object
+ SegmentDataAttributesDataQueryReferenceTableItemsJoinCondition:
+ properties:
+ column_name:
+ example: ''
+ type: string
+ facet:
+ type: string
+ required:
+ - column_name
+ type: object
+ SegmentDataAttributesDataQueryStaticItems:
+ properties:
+ id:
+ type: string
+ name:
+ type: string
+ user_count:
+ format: int64
+ minimum: 0
+ type: integer
+ type: object
+ SegmentDataAttributesDataQueryUserStoreItems:
+ properties:
+ facet:
+ type: string
+ name:
+ type: string
+ query:
+ type: string
+ type: object
+ SegmentDataSource:
+ properties:
+ handle:
+ example: ''
+ type: string
+ icon:
+ type: string
+ id:
+ example: ''
+ type: string
+ name:
+ type: string
+ uuid:
+ example: ''
+ type: string
+ required:
+ - handle
+ - id
+ - uuid
+ type: object
+ SegmentDataType:
+ default: segment
+ enum:
+ - segment
+ example: segment
+ type: string
+ x-enum-varnames:
+ - SEGMENT
Selectors:
description: 'Selectors are used to filter security issues for which notifications
should be generated.
@@ -73028,6 +74222,54 @@ paths:
operator: OR
permissions:
- rum_apps_write
+ /api/v2/rum/cohort:
+ post:
+ description: Analyze user cohorts for retention and conversion analysis
+ operationId: GetRumCohort
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/GetCohortRequest'
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/GetCohortResponse'
+ description: Successful response with cohort analysis data
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security: []
+ summary: Get rum cohort
+ tags:
+ - Cohort
+ x-unstable: '**Note**: This endpoint may be subject to changes.'
+ /api/v2/rum/cohort/users:
+ post:
+ description: Get users within a specific cohort for retention analysis
+ operationId: GetRumCohortUsers
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/GetCohortUsersRequest'
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/GetCohortUsersResponse'
+ description: Successful response with cohort users
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security: []
+ summary: Get rum cohort users
+ tags:
+ - Cohort
+ x-unstable: '**Note**: This endpoint may be subject to changes.'
/api/v2/rum/config/metrics:
get:
description: Get the list of configured rum-based metrics with their definitions.
@@ -73282,6 +74524,134 @@ paths:
operator: OR
permissions:
- rum_apps_read
+ /api/v2/rum/funnel:
+ post:
+ description: Analyze conversion funnels to understand user drop-off patterns
+ operationId: GetRumFunnel
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/FunnelRequest'
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/FunnelResponse'
+ description: Successful response with funnel analysis data
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security: []
+ summary: Get rum funnel
+ tags:
+ - Funnel
+ x-unstable: '**Note**: This endpoint may be subject to changes.'
+ /api/v2/rum/funnel/new_step_suggestions:
+ post:
+ description: Get suggested steps for building conversion funnels
+ operationId: GetRumFunnelStepSuggestions
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/FunnelSuggestionRequest'
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/FunnelSuggestionResponse'
+ description: Successful response with funnel step suggestions
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security: []
+ summary: Get rum funnel step suggestions
+ tags:
+ - Funnel
+ x-unstable: '**Note**: This endpoint may be subject to changes.'
+ /api/v2/rum/sankey:
+ post:
+ description: Generate Sankey diagrams to visualize user flow paths and drop-off
+ points
+ operationId: GetRumSankey
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SankeyRequest'
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SankeyResponse'
+ description: Successful response with Sankey diagram data
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security: []
+ summary: Get rum sankey
+ tags:
+ - User Flow
+ x-unstable: '**Note**: This endpoint may be subject to changes.'
+ /api/v2/rum/segment:
+ get:
+ description: List all available user segments for audience targeting
+ operationId: ListRumSegments
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SegmentArray'
+ description: Successful response with list of segments
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security: []
+ summary: List rum segments
+ tags:
+ - Segments
+ x-unstable: '**Note**: This endpoint may be subject to changes.'
+ post:
+ description: Create a new user segment for audience targeting
+ operationId: CreateRumSegment
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Segment'
+ required: true
+ responses:
+ '201':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Segment'
+ description: Segment created successfully
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security: []
+ summary: Create rum segment
+ tags:
+ - Segments
+ x-unstable: '**Note**: This endpoint may be subject to changes.'
+ /api/v2/rum/segment/initialize:
+ post:
+ description: Initialize default segments for a new organization
+ operationId: InitializeRumSegments
+ responses:
+ '200':
+ description: Default segments created successfully
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security: []
+ summary: Initialize rum segments
+ tags:
+ - Segments
+ x-unstable: '**Note**: This endpoint may be subject to changes.'
/api/v2/saml_configurations/idp_metadata:
post:
description: 'Endpoint for uploading IdP metadata for SAML setup.
@@ -81252,6 +82622,8 @@ tags:
API. See the [Cloudflare integration page](https://docs.datadoghq.com/integrations/cloudflare/)
for more information.
name: Cloudflare Integration
+- description: API for Cohort.
+ name: Cohort
- description: Manage your Datadog Confluent Cloud integration accounts and account
resources directly through the Datadog API. See the [Confluent Cloud page](https://docs.datadoghq.com/integrations/confluent_cloud/)
for more information.
@@ -81335,6 +82707,8 @@ tags:
that apply configuration changes to multiple hosts at once.'
name: Fleet Automation
+- description: API for funnel.
+ name: Funnel
- description: 'Configure your Datadog-Google Cloud Platform (GCP) integration directly
through the Datadog API. Read more about the [Datadog-Google Cloud Platform integration](https://docs.datadoghq.com/integrations/google_cloud_platform).'
@@ -81556,6 +82930,8 @@ tags:
See the [Datadog Security page](https://docs.datadoghq.com/security/) for more
information.
name: Security Monitoring
+- description: API for segments.
+ name: Segments
- description: Create, update, delete, and retrieve sensitive data scanner groups
and rules. See the [Sensitive Data Scanner page](https://docs.datadoghq.com/sensitive_data_scanner/)
for more information.
@@ -81643,6 +83019,8 @@ tags:
description: Find out more at
url: https://docs.datadoghq.com/account_management/billing/usage_details/
name: Usage Metering
+- description: API for user flow.
+ name: User Flow
- description: Create, edit, and disable users.
externalDocs:
url: https://docs.datadoghq.com/account_management/users
diff --git a/examples/v2/cohort/GetRumCohort.java b/examples/v2/cohort/GetRumCohort.java
new file mode 100644
index 00000000000..70511472e49
--- /dev/null
+++ b/examples/v2/cohort/GetRumCohort.java
@@ -0,0 +1,62 @@
+// Get rum cohort returns "Successful response with cohort analysis data" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.CohortApi;
+import com.datadog.api.client.v2.model.GetCohortRequest;
+import com.datadog.api.client.v2.model.GetCohortRequestData;
+import com.datadog.api.client.v2.model.GetCohortRequestDataAttributes;
+import com.datadog.api.client.v2.model.GetCohortRequestDataAttributesDefinition;
+import com.datadog.api.client.v2.model.GetCohortRequestDataAttributesDefinitionAudienceFilters;
+import com.datadog.api.client.v2.model.GetCohortRequestDataAttributesDefinitionAudienceFiltersAccountsItems;
+import com.datadog.api.client.v2.model.GetCohortRequestDataAttributesDefinitionAudienceFiltersSegmentsItems;
+import com.datadog.api.client.v2.model.GetCohortRequestDataAttributesDefinitionAudienceFiltersUsersItems;
+import com.datadog.api.client.v2.model.GetCohortRequestDataAttributesTime;
+import com.datadog.api.client.v2.model.GetCohortRequestDataType;
+import com.datadog.api.client.v2.model.GetCohortResponse;
+import java.util.Collections;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.getRumCohort", true);
+ CohortApi apiInstance = new CohortApi(defaultClient);
+
+ GetCohortRequest body =
+ new GetCohortRequest()
+ .data(
+ new GetCohortRequestData()
+ .attributes(
+ new GetCohortRequestDataAttributes()
+ .definition(
+ new GetCohortRequestDataAttributesDefinition()
+ .audienceFilters(
+ new GetCohortRequestDataAttributesDefinitionAudienceFilters()
+ .accounts(
+ Collections.singletonList(
+ new GetCohortRequestDataAttributesDefinitionAudienceFiltersAccountsItems()
+ .name("")))
+ .segments(
+ Collections.singletonList(
+ new GetCohortRequestDataAttributesDefinitionAudienceFiltersSegmentsItems()
+ .name("")
+ .segmentId("")))
+ .users(
+ Collections.singletonList(
+ new GetCohortRequestDataAttributesDefinitionAudienceFiltersUsersItems()
+ .name("")))))
+ .time(new GetCohortRequestDataAttributesTime()))
+ .type(GetCohortRequestDataType.COHORT_REQUEST));
+
+ try {
+ GetCohortResponse result = apiInstance.getRumCohort(body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling CohortApi#getRumCohort");
+ 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/cohort/GetRumCohortUsers.java b/examples/v2/cohort/GetRumCohortUsers.java
new file mode 100644
index 00000000000..c7a7f8462a8
--- /dev/null
+++ b/examples/v2/cohort/GetRumCohortUsers.java
@@ -0,0 +1,62 @@
+// Get rum cohort users returns "Successful response with cohort users" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.CohortApi;
+import com.datadog.api.client.v2.model.GetCohortUsersRequest;
+import com.datadog.api.client.v2.model.GetCohortUsersRequestData;
+import com.datadog.api.client.v2.model.GetCohortUsersRequestDataAttributes;
+import com.datadog.api.client.v2.model.GetCohortUsersRequestDataAttributesDefinition;
+import com.datadog.api.client.v2.model.GetCohortUsersRequestDataAttributesDefinitionAudienceFilters;
+import com.datadog.api.client.v2.model.GetCohortUsersRequestDataAttributesDefinitionAudienceFiltersAccountsItems;
+import com.datadog.api.client.v2.model.GetCohortUsersRequestDataAttributesDefinitionAudienceFiltersSegmentsItems;
+import com.datadog.api.client.v2.model.GetCohortUsersRequestDataAttributesDefinitionAudienceFiltersUsersItems;
+import com.datadog.api.client.v2.model.GetCohortUsersRequestDataAttributesTime;
+import com.datadog.api.client.v2.model.GetCohortUsersRequestDataType;
+import com.datadog.api.client.v2.model.GetCohortUsersResponse;
+import java.util.Collections;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.getRumCohortUsers", true);
+ CohortApi apiInstance = new CohortApi(defaultClient);
+
+ GetCohortUsersRequest body =
+ new GetCohortUsersRequest()
+ .data(
+ new GetCohortUsersRequestData()
+ .attributes(
+ new GetCohortUsersRequestDataAttributes()
+ .definition(
+ new GetCohortUsersRequestDataAttributesDefinition()
+ .audienceFilters(
+ new GetCohortUsersRequestDataAttributesDefinitionAudienceFilters()
+ .accounts(
+ Collections.singletonList(
+ new GetCohortUsersRequestDataAttributesDefinitionAudienceFiltersAccountsItems()
+ .name("")))
+ .segments(
+ Collections.singletonList(
+ new GetCohortUsersRequestDataAttributesDefinitionAudienceFiltersSegmentsItems()
+ .name("")
+ .segmentId("")))
+ .users(
+ Collections.singletonList(
+ new GetCohortUsersRequestDataAttributesDefinitionAudienceFiltersUsersItems()
+ .name("")))))
+ .time(new GetCohortUsersRequestDataAttributesTime()))
+ .type(GetCohortUsersRequestDataType.COHORT_USERS_REQUEST));
+
+ try {
+ GetCohortUsersResponse result = apiInstance.getRumCohortUsers(body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling CohortApi#getRumCohortUsers");
+ 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/funnel/GetRumFunnel.java b/examples/v2/funnel/GetRumFunnel.java
new file mode 100644
index 00000000000..f54b9275b4a
--- /dev/null
+++ b/examples/v2/funnel/GetRumFunnel.java
@@ -0,0 +1,64 @@
+// Get rum funnel returns "Successful response with funnel analysis data" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.FunnelApi;
+import com.datadog.api.client.v2.model.FunnelRequest;
+import com.datadog.api.client.v2.model.FunnelRequestData;
+import com.datadog.api.client.v2.model.FunnelRequestDataAttributes;
+import com.datadog.api.client.v2.model.FunnelRequestDataAttributesSearch;
+import com.datadog.api.client.v2.model.FunnelRequestDataAttributesSearchStepsItems;
+import com.datadog.api.client.v2.model.FunnelRequestDataAttributesTime;
+import com.datadog.api.client.v2.model.FunnelRequestDataType;
+import com.datadog.api.client.v2.model.FunnelResponse;
+import java.util.Arrays;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.getRumFunnel", true);
+ FunnelApi apiInstance = new FunnelApi(defaultClient);
+
+ FunnelRequest body =
+ new FunnelRequest()
+ .data(
+ new FunnelRequestData()
+ .attributes(
+ new FunnelRequestDataAttributes()
+ .dataSource("rum")
+ .enforcedExecutionType("")
+ .requestId("")
+ .search(
+ new FunnelRequestDataAttributesSearch()
+ .crossSessionFilter("")
+ .queryString("@type:view")
+ .steps(
+ Arrays.asList(
+ new FunnelRequestDataAttributesSearchStepsItems()
+ .facet("@view.name")
+ .stepFilter("")
+ .value("/apm/home"),
+ new FunnelRequestDataAttributesSearchStepsItems()
+ .facet("@view.name")
+ .stepFilter("")
+ .value("/apm/traces")))
+ .subqueryId(""))
+ .time(
+ new FunnelRequestDataAttributesTime()
+ .from(1756425600000L)
+ .to(1756857600000L)))
+ .id("funnel_request")
+ .type(FunnelRequestDataType.FUNNEL_REQUEST));
+
+ try {
+ FunnelResponse result = apiInstance.getRumFunnel(body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling FunnelApi#getRumFunnel");
+ 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/funnel/GetRumFunnelStepSuggestions.java b/examples/v2/funnel/GetRumFunnelStepSuggestions.java
new file mode 100644
index 00000000000..f3e91f5c3ed
--- /dev/null
+++ b/examples/v2/funnel/GetRumFunnelStepSuggestions.java
@@ -0,0 +1,62 @@
+// Get rum funnel step suggestions returns "Successful response with funnel step suggestions"
+// response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.FunnelApi;
+import com.datadog.api.client.v2.model.FunnelSuggestionRequest;
+import com.datadog.api.client.v2.model.FunnelSuggestionRequestData;
+import com.datadog.api.client.v2.model.FunnelSuggestionRequestDataAttributes;
+import com.datadog.api.client.v2.model.FunnelSuggestionRequestDataAttributesSearch;
+import com.datadog.api.client.v2.model.FunnelSuggestionRequestDataAttributesSearchStepsItems;
+import com.datadog.api.client.v2.model.FunnelSuggestionRequestDataAttributesTermSearch;
+import com.datadog.api.client.v2.model.FunnelSuggestionRequestDataAttributesTime;
+import com.datadog.api.client.v2.model.FunnelSuggestionRequestDataType;
+import com.datadog.api.client.v2.model.FunnelSuggestionResponse;
+import java.util.Collections;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.getRumFunnelStepSuggestions", true);
+ FunnelApi apiInstance = new FunnelApi(defaultClient);
+
+ FunnelSuggestionRequest body =
+ new FunnelSuggestionRequest()
+ .data(
+ new FunnelSuggestionRequestData()
+ .attributes(
+ new FunnelSuggestionRequestDataAttributes()
+ .dataSource("")
+ .search(
+ new FunnelSuggestionRequestDataAttributesSearch()
+ .crossSessionFilter("")
+ .queryString("@type:view")
+ .steps(
+ Collections.singletonList(
+ new FunnelSuggestionRequestDataAttributesSearchStepsItems()
+ .facet("@view.name")
+ .stepFilter("")
+ .value("/apm/home")))
+ .subqueryId(""))
+ .termSearch(
+ new FunnelSuggestionRequestDataAttributesTermSearch().query("apm"))
+ .time(
+ new FunnelSuggestionRequestDataAttributesTime()
+ .from(1756425600000L)
+ .to(1756857600000L)))
+ .id("funnel_suggestion_request")
+ .type(FunnelSuggestionRequestDataType.FUNNEL_SUGGESTION_REQUEST));
+
+ try {
+ FunnelSuggestionResponse result = apiInstance.getRumFunnelStepSuggestions(body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling FunnelApi#getRumFunnelStepSuggestions");
+ 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/segments/CreateRumSegment.java b/examples/v2/segments/CreateRumSegment.java
new file mode 100644
index 00000000000..7b73bfc071f
--- /dev/null
+++ b/examples/v2/segments/CreateRumSegment.java
@@ -0,0 +1,66 @@
+// Create rum segment returns "Segment created successfully" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.SegmentsApi;
+import com.datadog.api.client.v2.model.Segment;
+import com.datadog.api.client.v2.model.SegmentData;
+import com.datadog.api.client.v2.model.SegmentDataAttributes;
+import com.datadog.api.client.v2.model.SegmentDataAttributesDataQuery;
+import com.datadog.api.client.v2.model.SegmentDataAttributesDataQueryEventPlatformItems;
+import com.datadog.api.client.v2.model.SegmentDataSource;
+import com.datadog.api.client.v2.model.SegmentDataType;
+import java.time.OffsetDateTime;
+import java.util.Arrays;
+import java.util.Collections;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.createRumSegment", true);
+ SegmentsApi apiInstance = new SegmentsApi(defaultClient);
+
+ Segment body =
+ new Segment()
+ .data(
+ new SegmentData()
+ .attributes(
+ new SegmentDataAttributes()
+ .createdAt(OffsetDateTime.parse("0001-01-01T00:00:00Z"))
+ .createdBy(new SegmentDataSource().handle("").id("").uuid(""))
+ .dataQuery(
+ new SegmentDataAttributesDataQuery()
+ .eventPlatform(
+ Collections.singletonList(
+ new SegmentDataAttributesDataQueryEventPlatformItems()
+ .facet("@usr.id")
+ .from("2025-08-01")
+ .name("high_value_users")
+ .query(
+ "@type:view @view.name:/logs"
+ + " @usr.session_duration:>300000")
+ .to("2025-09-01"))))
+ .description(
+ "Users who frequently visit logs and have high session duration")
+ .modifiedAt(OffsetDateTime.parse("0001-01-01T00:00:00Z"))
+ .modifiedBy(new SegmentDataSource().handle("").id("").uuid(""))
+ .name("High-Value Users")
+ .orgId(123456L)
+ .source(0L)
+ .tags(Arrays.asList("high-value", "logs", "active"))
+ .version(1L))
+ .id("segment-12345")
+ .type(SegmentDataType.SEGMENT));
+
+ try {
+ Segment result = apiInstance.createRumSegment(body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling SegmentsApi#createRumSegment");
+ 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/segments/InitializeRumSegments.java b/examples/v2/segments/InitializeRumSegments.java
new file mode 100644
index 00000000000..fb07b006dec
--- /dev/null
+++ b/examples/v2/segments/InitializeRumSegments.java
@@ -0,0 +1,23 @@
+// Initialize rum segments returns "Default segments created successfully" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.SegmentsApi;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.initializeRumSegments", true);
+ SegmentsApi apiInstance = new SegmentsApi(defaultClient);
+
+ try {
+ apiInstance.initializeRumSegments();
+ } catch (ApiException e) {
+ System.err.println("Exception when calling SegmentsApi#initializeRumSegments");
+ 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/segments/ListRumSegments.java b/examples/v2/segments/ListRumSegments.java
new file mode 100644
index 00000000000..60be37c3894
--- /dev/null
+++ b/examples/v2/segments/ListRumSegments.java
@@ -0,0 +1,25 @@
+// List rum segments returns "Successful response with list of segments" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.SegmentsApi;
+import com.datadog.api.client.v2.model.SegmentArray;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.listRumSegments", true);
+ SegmentsApi apiInstance = new SegmentsApi(defaultClient);
+
+ try {
+ SegmentArray result = apiInstance.listRumSegments();
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling SegmentsApi#listRumSegments");
+ 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/user-flow/GetRumSankey.java b/examples/v2/user-flow/GetRumSankey.java
new file mode 100644
index 00000000000..0fe08258fbe
--- /dev/null
+++ b/examples/v2/user-flow/GetRumSankey.java
@@ -0,0 +1,63 @@
+// Get rum sankey returns "Successful response with Sankey diagram data" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.UserFlowApi;
+import com.datadog.api.client.v2.model.SankeyRequest;
+import com.datadog.api.client.v2.model.SankeyRequestData;
+import com.datadog.api.client.v2.model.SankeyRequestDataAttributes;
+import com.datadog.api.client.v2.model.SankeyRequestDataAttributesDefinition;
+import com.datadog.api.client.v2.model.SankeyRequestDataAttributesSampling;
+import com.datadog.api.client.v2.model.SankeyRequestDataAttributesSearch;
+import com.datadog.api.client.v2.model.SankeyRequestDataAttributesSearchAudienceFilters;
+import com.datadog.api.client.v2.model.SankeyRequestDataAttributesTime;
+import com.datadog.api.client.v2.model.SankeyRequestDataType;
+import com.datadog.api.client.v2.model.SankeyResponse;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.getRumSankey", true);
+ UserFlowApi apiInstance = new UserFlowApi(defaultClient);
+
+ SankeyRequest body =
+ new SankeyRequest()
+ .data(
+ new SankeyRequestData()
+ .attributes(
+ new SankeyRequestDataAttributes()
+ .dataSource("")
+ .definition(
+ new SankeyRequestDataAttributesDefinition()
+ .entriesPerStep(10L)
+ .numberOfSteps(5L)
+ .source("@view.name")
+ .target("@view.name"))
+ .enforcedExecutionType("")
+ .requestId("")
+ .sampling(new SankeyRequestDataAttributesSampling().enabled(true))
+ .search(
+ new SankeyRequestDataAttributesSearch()
+ .audienceFilters(
+ new SankeyRequestDataAttributesSearchAudienceFilters())
+ .query("@type:view @application.id:*")
+ .subqueryId(""))
+ .time(
+ new SankeyRequestDataAttributesTime()
+ .from(1756425600000L)
+ .to(1756857600000L)))
+ .id("sankey_request")
+ .type(SankeyRequestDataType.SANKEY_REQUEST));
+
+ try {
+ SankeyResponse result = apiInstance.getRumSankey(body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling UserFlowApi#getRumSankey");
+ 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..6ff53b7e510 100644
--- a/src/main/java/com/datadog/api/client/ApiClient.java
+++ b/src/main/java/com/datadog/api/client/ApiClient.java
@@ -775,6 +775,14 @@ public class ApiClient {
put("v2.listPipelines", false);
put("v2.updatePipeline", false);
put("v2.validatePipeline", false);
+ put("v2.getRumCohort", false);
+ put("v2.getRumCohortUsers", false);
+ put("v2.getRumFunnel", false);
+ put("v2.getRumFunnelStepSuggestions", false);
+ put("v2.getRumSankey", false);
+ put("v2.createRumSegment", false);
+ put("v2.initializeRumSegments", false);
+ put("v2.listRumSegments", false);
put("v2.createScorecardOutcomesBatch", false);
put("v2.createScorecardRule", false);
put("v2.deleteScorecardRule", false);
diff --git a/src/main/java/com/datadog/api/client/v2/api/CohortApi.java b/src/main/java/com/datadog/api/client/v2/api/CohortApi.java
new file mode 100644
index 00000000000..e9c74290097
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/api/CohortApi.java
@@ -0,0 +1,340 @@
+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.GetCohortRequest;
+import com.datadog.api.client.v2.model.GetCohortResponse;
+import com.datadog.api.client.v2.model.GetCohortUsersRequest;
+import com.datadog.api.client.v2.model.GetCohortUsersResponse;
+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 CohortApi {
+ private ApiClient apiClient;
+
+ public CohortApi() {
+ this(ApiClient.getDefaultApiClient());
+ }
+
+ public CohortApi(ApiClient apiClient) {
+ this.apiClient = apiClient;
+ }
+
+ /**
+ * Get the API client.
+ *
+ * @return API client
+ */
+ public ApiClient getApiClient() {
+ return apiClient;
+ }
+
+ /**
+ * Set the API client.
+ *
+ * @param apiClient an instance of API client
+ */
+ public void setApiClient(ApiClient apiClient) {
+ this.apiClient = apiClient;
+ }
+
+ /**
+ * Get rum cohort.
+ *
+ *
See {@link #getRumCohortWithHttpInfo}.
+ *
+ * @param body (required)
+ * @return GetCohortResponse
+ * @throws ApiException if fails to make API call
+ */
+ public GetCohortResponse getRumCohort(GetCohortRequest body) throws ApiException {
+ return getRumCohortWithHttpInfo(body).getData();
+ }
+
+ /**
+ * Get rum cohort.
+ *
+ *
See {@link #getRumCohortWithHttpInfoAsync}.
+ *
+ * @param body (required)
+ * @return CompletableFuture<GetCohortResponse>
+ */
+ public CompletableFuture getRumCohortAsync(GetCohortRequest body) {
+ return getRumCohortWithHttpInfoAsync(body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Analyze user cohorts for retention and conversion analysis
+ *
+ * @param body (required)
+ * @return ApiResponse<GetCohortResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | Successful response with cohort analysis data | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse getRumCohortWithHttpInfo(GetCohortRequest body)
+ throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "getRumCohort";
+ 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 getRumCohort");
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/rum/cohort";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.CohortApi.getRumCohort",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {});
+ return apiClient.invokeAPI(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Get rum cohort.
+ *
+ * See {@link #getRumCohortWithHttpInfo}.
+ *
+ * @param body (required)
+ * @return CompletableFuture<ApiResponse<GetCohortResponse>>
+ */
+ public CompletableFuture> getRumCohortWithHttpInfoAsync(
+ GetCohortRequest body) {
+ // Check if unstable operation is enabled
+ String operationId = "getRumCohort";
+ 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 getRumCohort"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/rum/cohort";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.CohortApi.getRumCohort",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {});
+ } 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 rum cohort users.
+ *
+ * See {@link #getRumCohortUsersWithHttpInfo}.
+ *
+ * @param body (required)
+ * @return GetCohortUsersResponse
+ * @throws ApiException if fails to make API call
+ */
+ public GetCohortUsersResponse getRumCohortUsers(GetCohortUsersRequest body) throws ApiException {
+ return getRumCohortUsersWithHttpInfo(body).getData();
+ }
+
+ /**
+ * Get rum cohort users.
+ *
+ *
See {@link #getRumCohortUsersWithHttpInfoAsync}.
+ *
+ * @param body (required)
+ * @return CompletableFuture<GetCohortUsersResponse>
+ */
+ public CompletableFuture getRumCohortUsersAsync(
+ GetCohortUsersRequest body) {
+ return getRumCohortUsersWithHttpInfoAsync(body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Get users within a specific cohort for retention analysis
+ *
+ * @param body (required)
+ * @return ApiResponse<GetCohortUsersResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | Successful response with cohort users | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse getRumCohortUsersWithHttpInfo(
+ GetCohortUsersRequest body) throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "getRumCohortUsers";
+ 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 getRumCohortUsers");
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/rum/cohort/users";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.CohortApi.getRumCohortUsers",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {});
+ return apiClient.invokeAPI(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Get rum cohort users.
+ *
+ * See {@link #getRumCohortUsersWithHttpInfo}.
+ *
+ * @param body (required)
+ * @return CompletableFuture<ApiResponse<GetCohortUsersResponse>>
+ */
+ public CompletableFuture> getRumCohortUsersWithHttpInfoAsync(
+ GetCohortUsersRequest body) {
+ // Check if unstable operation is enabled
+ String operationId = "getRumCohortUsers";
+ 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 getRumCohortUsers"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/rum/cohort/users";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.CohortApi.getRumCohortUsers",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {});
+ } 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() {});
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/api/FunnelApi.java b/src/main/java/com/datadog/api/client/v2/api/FunnelApi.java
new file mode 100644
index 00000000000..ea7239ce61e
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/api/FunnelApi.java
@@ -0,0 +1,342 @@
+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.FunnelRequest;
+import com.datadog.api.client.v2.model.FunnelResponse;
+import com.datadog.api.client.v2.model.FunnelSuggestionRequest;
+import com.datadog.api.client.v2.model.FunnelSuggestionResponse;
+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 FunnelApi {
+ private ApiClient apiClient;
+
+ public FunnelApi() {
+ this(ApiClient.getDefaultApiClient());
+ }
+
+ public FunnelApi(ApiClient apiClient) {
+ this.apiClient = apiClient;
+ }
+
+ /**
+ * Get the API client.
+ *
+ * @return API client
+ */
+ public ApiClient getApiClient() {
+ return apiClient;
+ }
+
+ /**
+ * Set the API client.
+ *
+ * @param apiClient an instance of API client
+ */
+ public void setApiClient(ApiClient apiClient) {
+ this.apiClient = apiClient;
+ }
+
+ /**
+ * Get rum funnel.
+ *
+ * See {@link #getRumFunnelWithHttpInfo}.
+ *
+ * @param body (required)
+ * @return FunnelResponse
+ * @throws ApiException if fails to make API call
+ */
+ public FunnelResponse getRumFunnel(FunnelRequest body) throws ApiException {
+ return getRumFunnelWithHttpInfo(body).getData();
+ }
+
+ /**
+ * Get rum funnel.
+ *
+ *
See {@link #getRumFunnelWithHttpInfoAsync}.
+ *
+ * @param body (required)
+ * @return CompletableFuture<FunnelResponse>
+ */
+ public CompletableFuture getRumFunnelAsync(FunnelRequest body) {
+ return getRumFunnelWithHttpInfoAsync(body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Analyze conversion funnels to understand user drop-off patterns
+ *
+ * @param body (required)
+ * @return ApiResponse<FunnelResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | Successful response with funnel analysis data | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse getRumFunnelWithHttpInfo(FunnelRequest body)
+ throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "getRumFunnel";
+ 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 getRumFunnel");
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/rum/funnel";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.FunnelApi.getRumFunnel",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {});
+ return apiClient.invokeAPI(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Get rum funnel.
+ *
+ * See {@link #getRumFunnelWithHttpInfo}.
+ *
+ * @param body (required)
+ * @return CompletableFuture<ApiResponse<FunnelResponse>>
+ */
+ public CompletableFuture> getRumFunnelWithHttpInfoAsync(
+ FunnelRequest body) {
+ // Check if unstable operation is enabled
+ String operationId = "getRumFunnel";
+ 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 getRumFunnel"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/rum/funnel";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.FunnelApi.getRumFunnel",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {});
+ } 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 rum funnel step suggestions.
+ *
+ * See {@link #getRumFunnelStepSuggestionsWithHttpInfo}.
+ *
+ * @param body (required)
+ * @return FunnelSuggestionResponse
+ * @throws ApiException if fails to make API call
+ */
+ public FunnelSuggestionResponse getRumFunnelStepSuggestions(FunnelSuggestionRequest body)
+ throws ApiException {
+ return getRumFunnelStepSuggestionsWithHttpInfo(body).getData();
+ }
+
+ /**
+ * Get rum funnel step suggestions.
+ *
+ *
See {@link #getRumFunnelStepSuggestionsWithHttpInfoAsync}.
+ *
+ * @param body (required)
+ * @return CompletableFuture<FunnelSuggestionResponse>
+ */
+ public CompletableFuture getRumFunnelStepSuggestionsAsync(
+ FunnelSuggestionRequest body) {
+ return getRumFunnelStepSuggestionsWithHttpInfoAsync(body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Get suggested steps for building conversion funnels
+ *
+ * @param body (required)
+ * @return ApiResponse<FunnelSuggestionResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | Successful response with funnel step suggestions | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse getRumFunnelStepSuggestionsWithHttpInfo(
+ FunnelSuggestionRequest body) throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "getRumFunnelStepSuggestions";
+ 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 getRumFunnelStepSuggestions");
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/rum/funnel/new_step_suggestions";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.FunnelApi.getRumFunnelStepSuggestions",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {});
+ return apiClient.invokeAPI(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Get rum funnel step suggestions.
+ *
+ * See {@link #getRumFunnelStepSuggestionsWithHttpInfo}.
+ *
+ * @param body (required)
+ * @return CompletableFuture<ApiResponse<FunnelSuggestionResponse>>
+ */
+ public CompletableFuture>
+ getRumFunnelStepSuggestionsWithHttpInfoAsync(FunnelSuggestionRequest body) {
+ // Check if unstable operation is enabled
+ String operationId = "getRumFunnelStepSuggestions";
+ 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 getRumFunnelStepSuggestions"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/rum/funnel/new_step_suggestions";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.FunnelApi.getRumFunnelStepSuggestions",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {});
+ } 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() {});
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/api/SegmentsApi.java b/src/main/java/com/datadog/api/client/v2/api/SegmentsApi.java
new file mode 100644
index 00000000000..ebe3b0bc3a1
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/api/SegmentsApi.java
@@ -0,0 +1,439 @@
+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.Segment;
+import com.datadog.api.client.v2.model.SegmentArray;
+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 SegmentsApi {
+ private ApiClient apiClient;
+
+ public SegmentsApi() {
+ this(ApiClient.getDefaultApiClient());
+ }
+
+ public SegmentsApi(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 rum segment.
+ *
+ * See {@link #createRumSegmentWithHttpInfo}.
+ *
+ * @param body (required)
+ * @return Segment
+ * @throws ApiException if fails to make API call
+ */
+ public Segment createRumSegment(Segment body) throws ApiException {
+ return createRumSegmentWithHttpInfo(body).getData();
+ }
+
+ /**
+ * Create rum segment.
+ *
+ *
See {@link #createRumSegmentWithHttpInfoAsync}.
+ *
+ * @param body (required)
+ * @return CompletableFuture<Segment>
+ */
+ public CompletableFuture createRumSegmentAsync(Segment body) {
+ return createRumSegmentWithHttpInfoAsync(body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Create a new user segment for audience targeting
+ *
+ * @param body (required)
+ * @return ApiResponse<Segment>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 201 | Segment created successfully | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse createRumSegmentWithHttpInfo(Segment body) throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "createRumSegment";
+ 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 createRumSegment");
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/rum/segment";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.SegmentsApi.createRumSegment",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {});
+ return apiClient.invokeAPI(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Create rum segment.
+ *
+ * See {@link #createRumSegmentWithHttpInfo}.
+ *
+ * @param body (required)
+ * @return CompletableFuture<ApiResponse<Segment>>
+ */
+ public CompletableFuture> createRumSegmentWithHttpInfoAsync(Segment body) {
+ // Check if unstable operation is enabled
+ String operationId = "createRumSegment";
+ 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 createRumSegment"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/rum/segment";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.SegmentsApi.createRumSegment",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {});
+ } 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() {});
+ }
+
+ /**
+ * Initialize rum segments.
+ *
+ * See {@link #initializeRumSegmentsWithHttpInfo}.
+ *
+ * @throws ApiException if fails to make API call
+ */
+ public void initializeRumSegments() throws ApiException {
+ initializeRumSegmentsWithHttpInfo();
+ }
+
+ /**
+ * Initialize rum segments.
+ *
+ *
See {@link #initializeRumSegmentsWithHttpInfoAsync}.
+ *
+ * @return CompletableFuture
+ */
+ public CompletableFuture initializeRumSegmentsAsync() {
+ return initializeRumSegmentsWithHttpInfoAsync()
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Initialize default segments for a new organization
+ *
+ * @return ApiResponse<Void>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | Default segments created successfully | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse initializeRumSegmentsWithHttpInfo() throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "initializeRumSegments";
+ 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;
+ // create path and map variables
+ String localVarPath = "/api/v2/rum/segment/initialize";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.SegmentsApi.initializeRumSegments",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"*/*"},
+ new String[] {});
+ return apiClient.invokeAPI(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ null);
+ }
+
+ /**
+ * Initialize rum segments.
+ *
+ * See {@link #initializeRumSegmentsWithHttpInfo}.
+ *
+ * @return CompletableFuture<ApiResponse<Void>>
+ */
+ public CompletableFuture> initializeRumSegmentsWithHttpInfoAsync() {
+ // Check if unstable operation is enabled
+ String operationId = "initializeRumSegments";
+ 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;
+ // create path and map variables
+ String localVarPath = "/api/v2/rum/segment/initialize";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.SegmentsApi.initializeRumSegments",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"*/*"},
+ new String[] {});
+ } catch (ApiException ex) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(ex);
+ return result;
+ }
+ return apiClient.invokeAPIAsync(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ null);
+ }
+
+ /**
+ * List rum segments.
+ *
+ * See {@link #listRumSegmentsWithHttpInfo}.
+ *
+ * @return SegmentArray
+ * @throws ApiException if fails to make API call
+ */
+ public SegmentArray listRumSegments() throws ApiException {
+ return listRumSegmentsWithHttpInfo().getData();
+ }
+
+ /**
+ * List rum segments.
+ *
+ *
See {@link #listRumSegmentsWithHttpInfoAsync}.
+ *
+ * @return CompletableFuture<SegmentArray>
+ */
+ public CompletableFuture listRumSegmentsAsync() {
+ return listRumSegmentsWithHttpInfoAsync()
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * List all available user segments for audience targeting
+ *
+ * @return ApiResponse<SegmentArray>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | Successful response with list of segments | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse listRumSegmentsWithHttpInfo() throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "listRumSegments";
+ 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;
+ // create path and map variables
+ String localVarPath = "/api/v2/rum/segment";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.SegmentsApi.listRumSegments",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {});
+ return apiClient.invokeAPI(
+ "GET",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * List rum segments.
+ *
+ * See {@link #listRumSegmentsWithHttpInfo}.
+ *
+ * @return CompletableFuture<ApiResponse<SegmentArray>>
+ */
+ public CompletableFuture> listRumSegmentsWithHttpInfoAsync() {
+ // Check if unstable operation is enabled
+ String operationId = "listRumSegments";
+ 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;
+ // create path and map variables
+ String localVarPath = "/api/v2/rum/segment";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.SegmentsApi.listRumSegments",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {});
+ } 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() {});
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/api/UserFlowApi.java b/src/main/java/com/datadog/api/client/v2/api/UserFlowApi.java
new file mode 100644
index 00000000000..acb9efa025e
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/api/UserFlowApi.java
@@ -0,0 +1,191 @@
+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.SankeyRequest;
+import com.datadog.api.client.v2.model.SankeyResponse;
+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 UserFlowApi {
+ private ApiClient apiClient;
+
+ public UserFlowApi() {
+ this(ApiClient.getDefaultApiClient());
+ }
+
+ public UserFlowApi(ApiClient apiClient) {
+ this.apiClient = apiClient;
+ }
+
+ /**
+ * Get the API client.
+ *
+ * @return API client
+ */
+ public ApiClient getApiClient() {
+ return apiClient;
+ }
+
+ /**
+ * Set the API client.
+ *
+ * @param apiClient an instance of API client
+ */
+ public void setApiClient(ApiClient apiClient) {
+ this.apiClient = apiClient;
+ }
+
+ /**
+ * Get rum sankey.
+ *
+ * See {@link #getRumSankeyWithHttpInfo}.
+ *
+ * @param body (required)
+ * @return SankeyResponse
+ * @throws ApiException if fails to make API call
+ */
+ public SankeyResponse getRumSankey(SankeyRequest body) throws ApiException {
+ return getRumSankeyWithHttpInfo(body).getData();
+ }
+
+ /**
+ * Get rum sankey.
+ *
+ *
See {@link #getRumSankeyWithHttpInfoAsync}.
+ *
+ * @param body (required)
+ * @return CompletableFuture<SankeyResponse>
+ */
+ public CompletableFuture getRumSankeyAsync(SankeyRequest body) {
+ return getRumSankeyWithHttpInfoAsync(body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Generate Sankey diagrams to visualize user flow paths and drop-off points
+ *
+ * @param body (required)
+ * @return ApiResponse<SankeyResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | Successful response with Sankey diagram data | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse getRumSankeyWithHttpInfo(SankeyRequest body)
+ throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "getRumSankey";
+ 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 getRumSankey");
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/rum/sankey";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.UserFlowApi.getRumSankey",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {});
+ return apiClient.invokeAPI(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Get rum sankey.
+ *
+ * See {@link #getRumSankeyWithHttpInfo}.
+ *
+ * @param body (required)
+ * @return CompletableFuture<ApiResponse<SankeyResponse>>
+ */
+ public CompletableFuture> getRumSankeyWithHttpInfoAsync(
+ SankeyRequest body) {
+ // Check if unstable operation is enabled
+ String operationId = "getRumSankey";
+ 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 getRumSankey"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/rum/sankey";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.UserFlowApi.getRumSankey",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {});
+ } 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() {});
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/FunnelRequest.java b/src/main/java/com/datadog/api/client/v2/model/FunnelRequest.java
new file mode 100644
index 00000000000..f7df5175a40
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/FunnelRequest.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({FunnelRequest.JSON_PROPERTY_DATA})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class FunnelRequest {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_DATA = "data";
+ private FunnelRequestData data;
+
+ public FunnelRequest data(FunnelRequestData 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 FunnelRequestData getData() {
+ return data;
+ }
+
+ public void setData(FunnelRequestData 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 FunnelRequest
+ */
+ @JsonAnySetter
+ public FunnelRequest 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 FunnelRequest object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ FunnelRequest funnelRequest = (FunnelRequest) o;
+ return Objects.equals(this.data, funnelRequest.data)
+ && Objects.equals(this.additionalProperties, funnelRequest.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(data, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class FunnelRequest {\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/FunnelRequestData.java b/src/main/java/com/datadog/api/client/v2/model/FunnelRequestData.java
new file mode 100644
index 00000000000..ced340c7ff8
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/FunnelRequestData.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({
+ FunnelRequestData.JSON_PROPERTY_ATTRIBUTES,
+ FunnelRequestData.JSON_PROPERTY_ID,
+ FunnelRequestData.JSON_PROPERTY_TYPE
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class FunnelRequestData {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ATTRIBUTES = "attributes";
+ private FunnelRequestDataAttributes attributes;
+
+ public static final String JSON_PROPERTY_ID = "id";
+ private String id;
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ private FunnelRequestDataType type = FunnelRequestDataType.FUNNEL_REQUEST;
+
+ public FunnelRequestData() {}
+
+ @JsonCreator
+ public FunnelRequestData(
+ @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) FunnelRequestDataType type) {
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ }
+
+ public FunnelRequestData attributes(FunnelRequestDataAttributes 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 FunnelRequestDataAttributes getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(FunnelRequestDataAttributes attributes) {
+ this.attributes = attributes;
+ }
+
+ public FunnelRequestData 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 FunnelRequestData type(FunnelRequestDataType type) {
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ return this;
+ }
+
+ /**
+ * Gettype
+ *
+ * @return type
+ */
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public FunnelRequestDataType getType() {
+ return type;
+ }
+
+ public void setType(FunnelRequestDataType 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 FunnelRequestData
+ */
+ @JsonAnySetter
+ public FunnelRequestData 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 FunnelRequestData object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ FunnelRequestData funnelRequestData = (FunnelRequestData) o;
+ return Objects.equals(this.attributes, funnelRequestData.attributes)
+ && Objects.equals(this.id, funnelRequestData.id)
+ && Objects.equals(this.type, funnelRequestData.type)
+ && Objects.equals(this.additionalProperties, funnelRequestData.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(attributes, id, type, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class FunnelRequestData {\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/FunnelRequestDataAttributes.java b/src/main/java/com/datadog/api/client/v2/model/FunnelRequestDataAttributes.java
new file mode 100644
index 00000000000..c02015151d2
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/FunnelRequestDataAttributes.java
@@ -0,0 +1,252 @@
+/*
+ * 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({
+ FunnelRequestDataAttributes.JSON_PROPERTY_DATA_SOURCE,
+ FunnelRequestDataAttributes.JSON_PROPERTY_ENFORCED_EXECUTION_TYPE,
+ FunnelRequestDataAttributes.JSON_PROPERTY_REQUEST_ID,
+ FunnelRequestDataAttributes.JSON_PROPERTY_SEARCH,
+ FunnelRequestDataAttributes.JSON_PROPERTY_TIME
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class FunnelRequestDataAttributes {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_DATA_SOURCE = "data_source";
+ private String dataSource;
+
+ public static final String JSON_PROPERTY_ENFORCED_EXECUTION_TYPE = "enforced_execution_type";
+ private String enforcedExecutionType;
+
+ public static final String JSON_PROPERTY_REQUEST_ID = "request_id";
+ private String requestId;
+
+ public static final String JSON_PROPERTY_SEARCH = "search";
+ private FunnelRequestDataAttributesSearch search;
+
+ public static final String JSON_PROPERTY_TIME = "time";
+ private FunnelRequestDataAttributesTime time;
+
+ public FunnelRequestDataAttributes dataSource(String dataSource) {
+ this.dataSource = dataSource;
+ return this;
+ }
+
+ /**
+ * GetdataSource
+ *
+ * @return dataSource
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_DATA_SOURCE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getDataSource() {
+ return dataSource;
+ }
+
+ public void setDataSource(String dataSource) {
+ this.dataSource = dataSource;
+ }
+
+ public FunnelRequestDataAttributes enforcedExecutionType(String enforcedExecutionType) {
+ this.enforcedExecutionType = enforcedExecutionType;
+ return this;
+ }
+
+ /**
+ * GetenforcedExecutionType
+ *
+ * @return enforcedExecutionType
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ENFORCED_EXECUTION_TYPE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getEnforcedExecutionType() {
+ return enforcedExecutionType;
+ }
+
+ public void setEnforcedExecutionType(String enforcedExecutionType) {
+ this.enforcedExecutionType = enforcedExecutionType;
+ }
+
+ public FunnelRequestDataAttributes requestId(String requestId) {
+ this.requestId = requestId;
+ return this;
+ }
+
+ /**
+ * GetrequestId
+ *
+ * @return requestId
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_REQUEST_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getRequestId() {
+ return requestId;
+ }
+
+ public void setRequestId(String requestId) {
+ this.requestId = requestId;
+ }
+
+ public FunnelRequestDataAttributes search(FunnelRequestDataAttributesSearch 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 FunnelRequestDataAttributesSearch getSearch() {
+ return search;
+ }
+
+ public void setSearch(FunnelRequestDataAttributesSearch search) {
+ this.search = search;
+ }
+
+ public FunnelRequestDataAttributes time(FunnelRequestDataAttributesTime time) {
+ this.time = time;
+ this.unparsed |= time.unparsed;
+ return this;
+ }
+
+ /**
+ * Gettime
+ *
+ * @return time
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_TIME)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public FunnelRequestDataAttributesTime getTime() {
+ return time;
+ }
+
+ public void setTime(FunnelRequestDataAttributesTime time) {
+ this.time = time;
+ }
+
+ /**
+ * 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 FunnelRequestDataAttributes
+ */
+ @JsonAnySetter
+ public FunnelRequestDataAttributes 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 FunnelRequestDataAttributes object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ FunnelRequestDataAttributes funnelRequestDataAttributes = (FunnelRequestDataAttributes) o;
+ return Objects.equals(this.dataSource, funnelRequestDataAttributes.dataSource)
+ && Objects.equals(
+ this.enforcedExecutionType, funnelRequestDataAttributes.enforcedExecutionType)
+ && Objects.equals(this.requestId, funnelRequestDataAttributes.requestId)
+ && Objects.equals(this.search, funnelRequestDataAttributes.search)
+ && Objects.equals(this.time, funnelRequestDataAttributes.time)
+ && Objects.equals(
+ this.additionalProperties, funnelRequestDataAttributes.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(
+ dataSource, enforcedExecutionType, requestId, search, time, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class FunnelRequestDataAttributes {\n");
+ sb.append(" dataSource: ").append(toIndentedString(dataSource)).append("\n");
+ sb.append(" enforcedExecutionType: ")
+ .append(toIndentedString(enforcedExecutionType))
+ .append("\n");
+ sb.append(" requestId: ").append(toIndentedString(requestId)).append("\n");
+ sb.append(" search: ").append(toIndentedString(search)).append("\n");
+ sb.append(" time: ").append(toIndentedString(time)).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/FunnelRequestDataAttributesSearch.java b/src/main/java/com/datadog/api/client/v2/model/FunnelRequestDataAttributesSearch.java
new file mode 100644
index 00000000000..bb17d290ef9
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/FunnelRequestDataAttributesSearch.java
@@ -0,0 +1,237 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.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({
+ FunnelRequestDataAttributesSearch.JSON_PROPERTY_CROSS_SESSION_FILTER,
+ FunnelRequestDataAttributesSearch.JSON_PROPERTY_QUERY_STRING,
+ FunnelRequestDataAttributesSearch.JSON_PROPERTY_STEPS,
+ FunnelRequestDataAttributesSearch.JSON_PROPERTY_SUBQUERY_ID
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class FunnelRequestDataAttributesSearch {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_CROSS_SESSION_FILTER = "cross_session_filter";
+ private String crossSessionFilter;
+
+ public static final String JSON_PROPERTY_QUERY_STRING = "query_string";
+ private String queryString;
+
+ public static final String JSON_PROPERTY_STEPS = "steps";
+ private List steps = null;
+
+ public static final String JSON_PROPERTY_SUBQUERY_ID = "subquery_id";
+ private String subqueryId;
+
+ public FunnelRequestDataAttributesSearch crossSessionFilter(String crossSessionFilter) {
+ this.crossSessionFilter = crossSessionFilter;
+ return this;
+ }
+
+ /**
+ * GetcrossSessionFilter
+ *
+ * @return crossSessionFilter
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_CROSS_SESSION_FILTER)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getCrossSessionFilter() {
+ return crossSessionFilter;
+ }
+
+ public void setCrossSessionFilter(String crossSessionFilter) {
+ this.crossSessionFilter = crossSessionFilter;
+ }
+
+ public FunnelRequestDataAttributesSearch queryString(String queryString) {
+ this.queryString = queryString;
+ return this;
+ }
+
+ /**
+ * GetqueryString
+ *
+ * @return queryString
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_QUERY_STRING)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getQueryString() {
+ return queryString;
+ }
+
+ public void setQueryString(String queryString) {
+ this.queryString = queryString;
+ }
+
+ public FunnelRequestDataAttributesSearch steps(
+ List steps) {
+ this.steps = steps;
+ for (FunnelRequestDataAttributesSearchStepsItems item : steps) {
+ this.unparsed |= item.unparsed;
+ }
+ return this;
+ }
+
+ public FunnelRequestDataAttributesSearch addStepsItem(
+ FunnelRequestDataAttributesSearchStepsItems stepsItem) {
+ if (this.steps == null) {
+ this.steps = new ArrayList<>();
+ }
+ this.steps.add(stepsItem);
+ this.unparsed |= stepsItem.unparsed;
+ return this;
+ }
+
+ /**
+ * Getsteps
+ *
+ * @return steps
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_STEPS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getSteps() {
+ return steps;
+ }
+
+ public void setSteps(List steps) {
+ this.steps = steps;
+ }
+
+ public FunnelRequestDataAttributesSearch subqueryId(String subqueryId) {
+ this.subqueryId = subqueryId;
+ return this;
+ }
+
+ /**
+ * GetsubqueryId
+ *
+ * @return subqueryId
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_SUBQUERY_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getSubqueryId() {
+ return subqueryId;
+ }
+
+ public void setSubqueryId(String subqueryId) {
+ this.subqueryId = subqueryId;
+ }
+
+ /**
+ * 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 FunnelRequestDataAttributesSearch
+ */
+ @JsonAnySetter
+ public FunnelRequestDataAttributesSearch 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 FunnelRequestDataAttributesSearch object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ FunnelRequestDataAttributesSearch funnelRequestDataAttributesSearch =
+ (FunnelRequestDataAttributesSearch) o;
+ return Objects.equals(
+ this.crossSessionFilter, funnelRequestDataAttributesSearch.crossSessionFilter)
+ && Objects.equals(this.queryString, funnelRequestDataAttributesSearch.queryString)
+ && Objects.equals(this.steps, funnelRequestDataAttributesSearch.steps)
+ && Objects.equals(this.subqueryId, funnelRequestDataAttributesSearch.subqueryId)
+ && Objects.equals(
+ this.additionalProperties, funnelRequestDataAttributesSearch.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(crossSessionFilter, queryString, steps, subqueryId, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class FunnelRequestDataAttributesSearch {\n");
+ sb.append(" crossSessionFilter: ").append(toIndentedString(crossSessionFilter)).append("\n");
+ sb.append(" queryString: ").append(toIndentedString(queryString)).append("\n");
+ sb.append(" steps: ").append(toIndentedString(steps)).append("\n");
+ sb.append(" subqueryId: ").append(toIndentedString(subqueryId)).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/FunnelRequestDataAttributesSearchStepsItems.java b/src/main/java/com/datadog/api/client/v2/model/FunnelRequestDataAttributesSearchStepsItems.java
new file mode 100644
index 00000000000..01c045fa928
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/FunnelRequestDataAttributesSearchStepsItems.java
@@ -0,0 +1,195 @@
+/*
+ * 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({
+ FunnelRequestDataAttributesSearchStepsItems.JSON_PROPERTY_FACET,
+ FunnelRequestDataAttributesSearchStepsItems.JSON_PROPERTY_STEP_FILTER,
+ FunnelRequestDataAttributesSearchStepsItems.JSON_PROPERTY_VALUE
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class FunnelRequestDataAttributesSearchStepsItems {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_FACET = "facet";
+ private String facet;
+
+ public static final String JSON_PROPERTY_STEP_FILTER = "step_filter";
+ private String stepFilter;
+
+ public static final String JSON_PROPERTY_VALUE = "value";
+ private String value;
+
+ public FunnelRequestDataAttributesSearchStepsItems facet(String facet) {
+ this.facet = facet;
+ return this;
+ }
+
+ /**
+ * Getfacet
+ *
+ * @return facet
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_FACET)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getFacet() {
+ return facet;
+ }
+
+ public void setFacet(String facet) {
+ this.facet = facet;
+ }
+
+ public FunnelRequestDataAttributesSearchStepsItems stepFilter(String stepFilter) {
+ this.stepFilter = stepFilter;
+ return this;
+ }
+
+ /**
+ * GetstepFilter
+ *
+ * @return stepFilter
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_STEP_FILTER)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getStepFilter() {
+ return stepFilter;
+ }
+
+ public void setStepFilter(String stepFilter) {
+ this.stepFilter = stepFilter;
+ }
+
+ public FunnelRequestDataAttributesSearchStepsItems 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 FunnelRequestDataAttributesSearchStepsItems
+ */
+ @JsonAnySetter
+ public FunnelRequestDataAttributesSearchStepsItems 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 FunnelRequestDataAttributesSearchStepsItems object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ FunnelRequestDataAttributesSearchStepsItems funnelRequestDataAttributesSearchStepsItems =
+ (FunnelRequestDataAttributesSearchStepsItems) o;
+ return Objects.equals(this.facet, funnelRequestDataAttributesSearchStepsItems.facet)
+ && Objects.equals(this.stepFilter, funnelRequestDataAttributesSearchStepsItems.stepFilter)
+ && Objects.equals(this.value, funnelRequestDataAttributesSearchStepsItems.value)
+ && Objects.equals(
+ this.additionalProperties,
+ funnelRequestDataAttributesSearchStepsItems.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(facet, stepFilter, value, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class FunnelRequestDataAttributesSearchStepsItems {\n");
+ sb.append(" facet: ").append(toIndentedString(facet)).append("\n");
+ sb.append(" stepFilter: ").append(toIndentedString(stepFilter)).append("\n");
+ sb.append(" value: ").append(toIndentedString(value)).append("\n");
+ sb.append(" additionalProperties: ")
+ .append(toIndentedString(additionalProperties))
+ .append("\n");
+ sb.append('}');
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/FunnelRequestDataAttributesTime.java b/src/main/java/com/datadog/api/client/v2/model/FunnelRequestDataAttributesTime.java
new file mode 100644
index 00000000000..38dbc9552f0
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/FunnelRequestDataAttributesTime.java
@@ -0,0 +1,166 @@
+/*
+ * 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({
+ FunnelRequestDataAttributesTime.JSON_PROPERTY_FROM,
+ FunnelRequestDataAttributesTime.JSON_PROPERTY_TO
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class FunnelRequestDataAttributesTime {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_FROM = "from";
+ private Long from;
+
+ public static final String JSON_PROPERTY_TO = "to";
+ private Long to;
+
+ public FunnelRequestDataAttributesTime from(Long from) {
+ this.from = from;
+ return this;
+ }
+
+ /**
+ * Getfrom
+ *
+ * @return from
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_FROM)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Long getFrom() {
+ return from;
+ }
+
+ public void setFrom(Long from) {
+ this.from = from;
+ }
+
+ public FunnelRequestDataAttributesTime to(Long to) {
+ this.to = to;
+ return this;
+ }
+
+ /**
+ * Getto
+ *
+ * @return to
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_TO)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Long getTo() {
+ return to;
+ }
+
+ public void setTo(Long to) {
+ this.to = to;
+ }
+
+ /**
+ * 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 FunnelRequestDataAttributesTime
+ */
+ @JsonAnySetter
+ public FunnelRequestDataAttributesTime 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 FunnelRequestDataAttributesTime object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ FunnelRequestDataAttributesTime funnelRequestDataAttributesTime =
+ (FunnelRequestDataAttributesTime) o;
+ return Objects.equals(this.from, funnelRequestDataAttributesTime.from)
+ && Objects.equals(this.to, funnelRequestDataAttributesTime.to)
+ && Objects.equals(
+ this.additionalProperties, funnelRequestDataAttributesTime.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(from, to, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class FunnelRequestDataAttributesTime {\n");
+ sb.append(" from: ").append(toIndentedString(from)).append("\n");
+ sb.append(" to: ").append(toIndentedString(to)).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/FunnelRequestDataType.java b/src/main/java/com/datadog/api/client/v2/model/FunnelRequestDataType.java
new file mode 100644
index 00000000000..a03f07842b9
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/FunnelRequestDataType.java
@@ -0,0 +1,56 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.datadog.api.client.ModelEnum;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.SerializerProvider;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.StdSerializer;
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+/** */
+@JsonSerialize(using = FunnelRequestDataType.FunnelRequestDataTypeSerializer.class)
+public class FunnelRequestDataType extends ModelEnum {
+
+ private static final Set allowedValues =
+ new HashSet(Arrays.asList("funnel_request"));
+
+ public static final FunnelRequestDataType FUNNEL_REQUEST =
+ new FunnelRequestDataType("funnel_request");
+
+ FunnelRequestDataType(String value) {
+ super(value, allowedValues);
+ }
+
+ public static class FunnelRequestDataTypeSerializer extends StdSerializer {
+ public FunnelRequestDataTypeSerializer(Class t) {
+ super(t);
+ }
+
+ public FunnelRequestDataTypeSerializer() {
+ this(null);
+ }
+
+ @Override
+ public void serialize(
+ FunnelRequestDataType value, JsonGenerator jgen, SerializerProvider provider)
+ throws IOException, JsonProcessingException {
+ jgen.writeObject(value.value);
+ }
+ }
+
+ @JsonCreator
+ public static FunnelRequestDataType fromValue(String value) {
+ return new FunnelRequestDataType(value);
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/FunnelResponse.java b/src/main/java/com/datadog/api/client/v2/model/FunnelResponse.java
new file mode 100644
index 00000000000..80be138511c
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/FunnelResponse.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({FunnelResponse.JSON_PROPERTY_DATA})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class FunnelResponse {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_DATA = "data";
+ private FunnelResponseData data;
+
+ public FunnelResponse data(FunnelResponseData 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 FunnelResponseData getData() {
+ return data;
+ }
+
+ public void setData(FunnelResponseData 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 FunnelResponse
+ */
+ @JsonAnySetter
+ public FunnelResponse 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 FunnelResponse object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ FunnelResponse funnelResponse = (FunnelResponse) o;
+ return Objects.equals(this.data, funnelResponse.data)
+ && Objects.equals(this.additionalProperties, funnelResponse.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(data, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class FunnelResponse {\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/FunnelResponseData.java b/src/main/java/com/datadog/api/client/v2/model/FunnelResponseData.java
new file mode 100644
index 00000000000..f2f6a88dbe6
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/FunnelResponseData.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({
+ FunnelResponseData.JSON_PROPERTY_ATTRIBUTES,
+ FunnelResponseData.JSON_PROPERTY_ID,
+ FunnelResponseData.JSON_PROPERTY_TYPE
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class FunnelResponseData {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ATTRIBUTES = "attributes";
+ private FunnelResponseDataAttributes attributes;
+
+ public static final String JSON_PROPERTY_ID = "id";
+ private String id;
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ private FunnelResponseDataType type = FunnelResponseDataType.FUNNEL_RESPONSE;
+
+ public FunnelResponseData() {}
+
+ @JsonCreator
+ public FunnelResponseData(
+ @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) FunnelResponseDataType type) {
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ }
+
+ public FunnelResponseData attributes(FunnelResponseDataAttributes 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 FunnelResponseDataAttributes getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(FunnelResponseDataAttributes attributes) {
+ this.attributes = attributes;
+ }
+
+ public FunnelResponseData 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 FunnelResponseData type(FunnelResponseDataType type) {
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ return this;
+ }
+
+ /**
+ * Gettype
+ *
+ * @return type
+ */
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public FunnelResponseDataType getType() {
+ return type;
+ }
+
+ public void setType(FunnelResponseDataType 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 FunnelResponseData
+ */
+ @JsonAnySetter
+ public FunnelResponseData 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 FunnelResponseData object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ FunnelResponseData funnelResponseData = (FunnelResponseData) o;
+ return Objects.equals(this.attributes, funnelResponseData.attributes)
+ && Objects.equals(this.id, funnelResponseData.id)
+ && Objects.equals(this.type, funnelResponseData.type)
+ && Objects.equals(this.additionalProperties, funnelResponseData.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(attributes, id, type, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class FunnelResponseData {\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/FunnelResponseDataAttributes.java b/src/main/java/com/datadog/api/client/v2/model/FunnelResponseDataAttributes.java
new file mode 100644
index 00000000000..b5d61bc4125
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/FunnelResponseDataAttributes.java
@@ -0,0 +1,249 @@
+/*
+ * 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({
+ FunnelResponseDataAttributes.JSON_PROPERTY_END_TO_END_CONVERSION_RATE,
+ FunnelResponseDataAttributes.JSON_PROPERTY_END_TO_END_ELAPSED_TIME,
+ FunnelResponseDataAttributes.JSON_PROPERTY_FUNNEL_STEPS,
+ FunnelResponseDataAttributes.JSON_PROPERTY_INITIAL_COUNT
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class FunnelResponseDataAttributes {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_END_TO_END_CONVERSION_RATE =
+ "end_to_end_conversion_rate";
+ private Double endToEndConversionRate;
+
+ public static final String JSON_PROPERTY_END_TO_END_ELAPSED_TIME = "end_to_end_elapsed_time";
+ private FunnelResponseElapsedTime endToEndElapsedTime;
+
+ public static final String JSON_PROPERTY_FUNNEL_STEPS = "funnel_steps";
+ private List funnelSteps = null;
+
+ public static final String JSON_PROPERTY_INITIAL_COUNT = "initial_count";
+ private Long initialCount;
+
+ public FunnelResponseDataAttributes endToEndConversionRate(Double endToEndConversionRate) {
+ this.endToEndConversionRate = endToEndConversionRate;
+ return this;
+ }
+
+ /**
+ * GetendToEndConversionRate
+ *
+ * @return endToEndConversionRate
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_END_TO_END_CONVERSION_RATE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Double getEndToEndConversionRate() {
+ return endToEndConversionRate;
+ }
+
+ public void setEndToEndConversionRate(Double endToEndConversionRate) {
+ this.endToEndConversionRate = endToEndConversionRate;
+ }
+
+ public FunnelResponseDataAttributes endToEndElapsedTime(
+ FunnelResponseElapsedTime endToEndElapsedTime) {
+ this.endToEndElapsedTime = endToEndElapsedTime;
+ this.unparsed |= endToEndElapsedTime.unparsed;
+ return this;
+ }
+
+ /**
+ * GetendToEndElapsedTime
+ *
+ * @return endToEndElapsedTime
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_END_TO_END_ELAPSED_TIME)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public FunnelResponseElapsedTime getEndToEndElapsedTime() {
+ return endToEndElapsedTime;
+ }
+
+ public void setEndToEndElapsedTime(FunnelResponseElapsedTime endToEndElapsedTime) {
+ this.endToEndElapsedTime = endToEndElapsedTime;
+ }
+
+ public FunnelResponseDataAttributes funnelSteps(
+ List funnelSteps) {
+ this.funnelSteps = funnelSteps;
+ for (FunnelResponseDataAttributesFunnelStepsItems item : funnelSteps) {
+ this.unparsed |= item.unparsed;
+ }
+ return this;
+ }
+
+ public FunnelResponseDataAttributes addFunnelStepsItem(
+ FunnelResponseDataAttributesFunnelStepsItems funnelStepsItem) {
+ if (this.funnelSteps == null) {
+ this.funnelSteps = new ArrayList<>();
+ }
+ this.funnelSteps.add(funnelStepsItem);
+ this.unparsed |= funnelStepsItem.unparsed;
+ return this;
+ }
+
+ /**
+ * GetfunnelSteps
+ *
+ * @return funnelSteps
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_FUNNEL_STEPS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getFunnelSteps() {
+ return funnelSteps;
+ }
+
+ public void setFunnelSteps(List funnelSteps) {
+ this.funnelSteps = funnelSteps;
+ }
+
+ public FunnelResponseDataAttributes initialCount(Long initialCount) {
+ this.initialCount = initialCount;
+ return this;
+ }
+
+ /**
+ * GetinitialCount
+ *
+ * @return initialCount
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_INITIAL_COUNT)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Long getInitialCount() {
+ return initialCount;
+ }
+
+ public void setInitialCount(Long initialCount) {
+ this.initialCount = initialCount;
+ }
+
+ /**
+ * 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 FunnelResponseDataAttributes
+ */
+ @JsonAnySetter
+ public FunnelResponseDataAttributes 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 FunnelResponseDataAttributes object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ FunnelResponseDataAttributes funnelResponseDataAttributes = (FunnelResponseDataAttributes) o;
+ return Objects.equals(
+ this.endToEndConversionRate, funnelResponseDataAttributes.endToEndConversionRate)
+ && Objects.equals(
+ this.endToEndElapsedTime, funnelResponseDataAttributes.endToEndElapsedTime)
+ && Objects.equals(this.funnelSteps, funnelResponseDataAttributes.funnelSteps)
+ && Objects.equals(this.initialCount, funnelResponseDataAttributes.initialCount)
+ && Objects.equals(
+ this.additionalProperties, funnelResponseDataAttributes.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(
+ endToEndConversionRate,
+ endToEndElapsedTime,
+ funnelSteps,
+ initialCount,
+ additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class FunnelResponseDataAttributes {\n");
+ sb.append(" endToEndConversionRate: ")
+ .append(toIndentedString(endToEndConversionRate))
+ .append("\n");
+ sb.append(" endToEndElapsedTime: ")
+ .append(toIndentedString(endToEndElapsedTime))
+ .append("\n");
+ sb.append(" funnelSteps: ").append(toIndentedString(funnelSteps)).append("\n");
+ sb.append(" initialCount: ").append(toIndentedString(initialCount)).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/FunnelResponseDataAttributesFunnelStepsItems.java b/src/main/java/com/datadog/api/client/v2/model/FunnelResponseDataAttributesFunnelStepsItems.java
new file mode 100644
index 00000000000..411feefdc94
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/FunnelResponseDataAttributesFunnelStepsItems.java
@@ -0,0 +1,201 @@
+/*
+ * 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({
+ FunnelResponseDataAttributesFunnelStepsItems.JSON_PROPERTY_ELAPSED_TIME_TO_NEXT_STEP,
+ FunnelResponseDataAttributesFunnelStepsItems.JSON_PROPERTY_LABEL,
+ FunnelResponseDataAttributesFunnelStepsItems.JSON_PROPERTY_VALUE
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class FunnelResponseDataAttributesFunnelStepsItems {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ELAPSED_TIME_TO_NEXT_STEP = "elapsed_time_to_next_step";
+ private FunnelResponseElapsedTime elapsedTimeToNextStep;
+
+ public static final String JSON_PROPERTY_LABEL = "label";
+ private String label;
+
+ public static final String JSON_PROPERTY_VALUE = "value";
+ private Long value;
+
+ public FunnelResponseDataAttributesFunnelStepsItems elapsedTimeToNextStep(
+ FunnelResponseElapsedTime elapsedTimeToNextStep) {
+ this.elapsedTimeToNextStep = elapsedTimeToNextStep;
+ this.unparsed |= elapsedTimeToNextStep.unparsed;
+ return this;
+ }
+
+ /**
+ * GetelapsedTimeToNextStep
+ *
+ * @return elapsedTimeToNextStep
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ELAPSED_TIME_TO_NEXT_STEP)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public FunnelResponseElapsedTime getElapsedTimeToNextStep() {
+ return elapsedTimeToNextStep;
+ }
+
+ public void setElapsedTimeToNextStep(FunnelResponseElapsedTime elapsedTimeToNextStep) {
+ this.elapsedTimeToNextStep = elapsedTimeToNextStep;
+ }
+
+ public FunnelResponseDataAttributesFunnelStepsItems label(String label) {
+ this.label = label;
+ return this;
+ }
+
+ /**
+ * Getlabel
+ *
+ * @return label
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_LABEL)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getLabel() {
+ return label;
+ }
+
+ public void setLabel(String label) {
+ this.label = label;
+ }
+
+ public FunnelResponseDataAttributesFunnelStepsItems value(Long value) {
+ this.value = value;
+ return this;
+ }
+
+ /**
+ * Getvalue
+ *
+ * @return value
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_VALUE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Long getValue() {
+ return value;
+ }
+
+ public void setValue(Long 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 FunnelResponseDataAttributesFunnelStepsItems
+ */
+ @JsonAnySetter
+ public FunnelResponseDataAttributesFunnelStepsItems 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 FunnelResponseDataAttributesFunnelStepsItems object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ FunnelResponseDataAttributesFunnelStepsItems funnelResponseDataAttributesFunnelStepsItems =
+ (FunnelResponseDataAttributesFunnelStepsItems) o;
+ return Objects.equals(
+ this.elapsedTimeToNextStep,
+ funnelResponseDataAttributesFunnelStepsItems.elapsedTimeToNextStep)
+ && Objects.equals(this.label, funnelResponseDataAttributesFunnelStepsItems.label)
+ && Objects.equals(this.value, funnelResponseDataAttributesFunnelStepsItems.value)
+ && Objects.equals(
+ this.additionalProperties,
+ funnelResponseDataAttributesFunnelStepsItems.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(elapsedTimeToNextStep, label, value, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class FunnelResponseDataAttributesFunnelStepsItems {\n");
+ sb.append(" elapsedTimeToNextStep: ")
+ .append(toIndentedString(elapsedTimeToNextStep))
+ .append("\n");
+ sb.append(" label: ").append(toIndentedString(label)).append("\n");
+ sb.append(" value: ").append(toIndentedString(value)).append("\n");
+ sb.append(" additionalProperties: ")
+ .append(toIndentedString(additionalProperties))
+ .append("\n");
+ sb.append('}');
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/FunnelResponseDataType.java b/src/main/java/com/datadog/api/client/v2/model/FunnelResponseDataType.java
new file mode 100644
index 00000000000..b328051d971
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/FunnelResponseDataType.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;
+
+/** */
+@JsonSerialize(using = FunnelResponseDataType.FunnelResponseDataTypeSerializer.class)
+public class FunnelResponseDataType extends ModelEnum {
+
+ private static final Set allowedValues =
+ new HashSet(Arrays.asList("funnel_response"));
+
+ public static final FunnelResponseDataType FUNNEL_RESPONSE =
+ new FunnelResponseDataType("funnel_response");
+
+ FunnelResponseDataType(String value) {
+ super(value, allowedValues);
+ }
+
+ public static class FunnelResponseDataTypeSerializer
+ extends StdSerializer {
+ public FunnelResponseDataTypeSerializer(Class t) {
+ super(t);
+ }
+
+ public FunnelResponseDataTypeSerializer() {
+ this(null);
+ }
+
+ @Override
+ public void serialize(
+ FunnelResponseDataType value, JsonGenerator jgen, SerializerProvider provider)
+ throws IOException, JsonProcessingException {
+ jgen.writeObject(value.value);
+ }
+ }
+
+ @JsonCreator
+ public static FunnelResponseDataType fromValue(String value) {
+ return new FunnelResponseDataType(value);
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/FunnelResponseElapsedTime.java b/src/main/java/com/datadog/api/client/v2/model/FunnelResponseElapsedTime.java
new file mode 100644
index 00000000000..5ae263d80b1
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/FunnelResponseElapsedTime.java
@@ -0,0 +1,273 @@
+/*
+ * 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({
+ FunnelResponseElapsedTime.JSON_PROPERTY_AVG,
+ FunnelResponseElapsedTime.JSON_PROPERTY_MAX,
+ FunnelResponseElapsedTime.JSON_PROPERTY_MIN,
+ FunnelResponseElapsedTime.JSON_PROPERTY_P5,
+ FunnelResponseElapsedTime.JSON_PROPERTY_P50,
+ FunnelResponseElapsedTime.JSON_PROPERTY_P95
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class FunnelResponseElapsedTime {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_AVG = "avg";
+ private Long avg;
+
+ public static final String JSON_PROPERTY_MAX = "max";
+ private Long max;
+
+ public static final String JSON_PROPERTY_MIN = "min";
+ private Long min;
+
+ public static final String JSON_PROPERTY_P5 = "p5";
+ private Long p5;
+
+ public static final String JSON_PROPERTY_P50 = "p50";
+ private Long p50;
+
+ public static final String JSON_PROPERTY_P95 = "p95";
+ private Long p95;
+
+ public FunnelResponseElapsedTime avg(Long avg) {
+ this.avg = avg;
+ return this;
+ }
+
+ /**
+ * Getavg
+ *
+ * @return avg
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_AVG)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Long getAvg() {
+ return avg;
+ }
+
+ public void setAvg(Long avg) {
+ this.avg = avg;
+ }
+
+ public FunnelResponseElapsedTime max(Long max) {
+ this.max = max;
+ return this;
+ }
+
+ /**
+ * Getmax
+ *
+ * @return max
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_MAX)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Long getMax() {
+ return max;
+ }
+
+ public void setMax(Long max) {
+ this.max = max;
+ }
+
+ public FunnelResponseElapsedTime min(Long min) {
+ this.min = min;
+ return this;
+ }
+
+ /**
+ * Getmin
+ *
+ * @return min
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_MIN)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Long getMin() {
+ return min;
+ }
+
+ public void setMin(Long min) {
+ this.min = min;
+ }
+
+ public FunnelResponseElapsedTime p5(Long p5) {
+ this.p5 = p5;
+ return this;
+ }
+
+ /**
+ * Getp5
+ *
+ * @return p5
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_P5)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Long getP5() {
+ return p5;
+ }
+
+ public void setP5(Long p5) {
+ this.p5 = p5;
+ }
+
+ public FunnelResponseElapsedTime p50(Long p50) {
+ this.p50 = p50;
+ return this;
+ }
+
+ /**
+ * Getp50
+ *
+ * @return p50
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_P50)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Long getP50() {
+ return p50;
+ }
+
+ public void setP50(Long p50) {
+ this.p50 = p50;
+ }
+
+ public FunnelResponseElapsedTime p95(Long p95) {
+ this.p95 = p95;
+ return this;
+ }
+
+ /**
+ * Getp95
+ *
+ * @return p95
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_P95)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Long getP95() {
+ return p95;
+ }
+
+ public void setP95(Long p95) {
+ this.p95 = p95;
+ }
+
+ /**
+ * 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 FunnelResponseElapsedTime
+ */
+ @JsonAnySetter
+ public FunnelResponseElapsedTime 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 FunnelResponseElapsedTime object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ FunnelResponseElapsedTime funnelResponseElapsedTime = (FunnelResponseElapsedTime) o;
+ return Objects.equals(this.avg, funnelResponseElapsedTime.avg)
+ && Objects.equals(this.max, funnelResponseElapsedTime.max)
+ && Objects.equals(this.min, funnelResponseElapsedTime.min)
+ && Objects.equals(this.p5, funnelResponseElapsedTime.p5)
+ && Objects.equals(this.p50, funnelResponseElapsedTime.p50)
+ && Objects.equals(this.p95, funnelResponseElapsedTime.p95)
+ && Objects.equals(
+ this.additionalProperties, funnelResponseElapsedTime.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(avg, max, min, p5, p50, p95, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class FunnelResponseElapsedTime {\n");
+ sb.append(" avg: ").append(toIndentedString(avg)).append("\n");
+ sb.append(" max: ").append(toIndentedString(max)).append("\n");
+ sb.append(" min: ").append(toIndentedString(min)).append("\n");
+ sb.append(" p5: ").append(toIndentedString(p5)).append("\n");
+ sb.append(" p50: ").append(toIndentedString(p50)).append("\n");
+ sb.append(" p95: ").append(toIndentedString(p95)).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/FunnelSuggestionRequest.java b/src/main/java/com/datadog/api/client/v2/model/FunnelSuggestionRequest.java
new file mode 100644
index 00000000000..9c3cc1146cc
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/FunnelSuggestionRequest.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({FunnelSuggestionRequest.JSON_PROPERTY_DATA})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class FunnelSuggestionRequest {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_DATA = "data";
+ private FunnelSuggestionRequestData data;
+
+ public FunnelSuggestionRequest data(FunnelSuggestionRequestData 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 FunnelSuggestionRequestData getData() {
+ return data;
+ }
+
+ public void setData(FunnelSuggestionRequestData 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 FunnelSuggestionRequest
+ */
+ @JsonAnySetter
+ public FunnelSuggestionRequest 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 FunnelSuggestionRequest object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ FunnelSuggestionRequest funnelSuggestionRequest = (FunnelSuggestionRequest) o;
+ return Objects.equals(this.data, funnelSuggestionRequest.data)
+ && Objects.equals(this.additionalProperties, funnelSuggestionRequest.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(data, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class FunnelSuggestionRequest {\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/FunnelSuggestionRequestData.java b/src/main/java/com/datadog/api/client/v2/model/FunnelSuggestionRequestData.java
new file mode 100644
index 00000000000..07b161712f3
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/FunnelSuggestionRequestData.java
@@ -0,0 +1,208 @@
+/*
+ * 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({
+ FunnelSuggestionRequestData.JSON_PROPERTY_ATTRIBUTES,
+ FunnelSuggestionRequestData.JSON_PROPERTY_ID,
+ FunnelSuggestionRequestData.JSON_PROPERTY_TYPE
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class FunnelSuggestionRequestData {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ATTRIBUTES = "attributes";
+ private FunnelSuggestionRequestDataAttributes attributes;
+
+ public static final String JSON_PROPERTY_ID = "id";
+ private String id;
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ private FunnelSuggestionRequestDataType type =
+ FunnelSuggestionRequestDataType.FUNNEL_SUGGESTION_REQUEST;
+
+ public FunnelSuggestionRequestData() {}
+
+ @JsonCreator
+ public FunnelSuggestionRequestData(
+ @JsonProperty(required = true, value = JSON_PROPERTY_TYPE)
+ FunnelSuggestionRequestDataType type) {
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ }
+
+ public FunnelSuggestionRequestData attributes(FunnelSuggestionRequestDataAttributes 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 FunnelSuggestionRequestDataAttributes getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(FunnelSuggestionRequestDataAttributes attributes) {
+ this.attributes = attributes;
+ }
+
+ public FunnelSuggestionRequestData 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 FunnelSuggestionRequestData type(FunnelSuggestionRequestDataType type) {
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ return this;
+ }
+
+ /**
+ * Gettype
+ *
+ * @return type
+ */
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public FunnelSuggestionRequestDataType getType() {
+ return type;
+ }
+
+ public void setType(FunnelSuggestionRequestDataType 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 FunnelSuggestionRequestData
+ */
+ @JsonAnySetter
+ public FunnelSuggestionRequestData 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 FunnelSuggestionRequestData object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ FunnelSuggestionRequestData funnelSuggestionRequestData = (FunnelSuggestionRequestData) o;
+ return Objects.equals(this.attributes, funnelSuggestionRequestData.attributes)
+ && Objects.equals(this.id, funnelSuggestionRequestData.id)
+ && Objects.equals(this.type, funnelSuggestionRequestData.type)
+ && Objects.equals(
+ this.additionalProperties, funnelSuggestionRequestData.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(attributes, id, type, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class FunnelSuggestionRequestData {\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/FunnelSuggestionRequestDataAttributes.java b/src/main/java/com/datadog/api/client/v2/model/FunnelSuggestionRequestDataAttributes.java
new file mode 100644
index 00000000000..7de0ec6e80e
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/FunnelSuggestionRequestDataAttributes.java
@@ -0,0 +1,226 @@
+/*
+ * 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({
+ FunnelSuggestionRequestDataAttributes.JSON_PROPERTY_DATA_SOURCE,
+ FunnelSuggestionRequestDataAttributes.JSON_PROPERTY_SEARCH,
+ FunnelSuggestionRequestDataAttributes.JSON_PROPERTY_TERM_SEARCH,
+ FunnelSuggestionRequestDataAttributes.JSON_PROPERTY_TIME
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class FunnelSuggestionRequestDataAttributes {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_DATA_SOURCE = "data_source";
+ private String dataSource;
+
+ public static final String JSON_PROPERTY_SEARCH = "search";
+ private FunnelSuggestionRequestDataAttributesSearch search;
+
+ public static final String JSON_PROPERTY_TERM_SEARCH = "term_search";
+ private FunnelSuggestionRequestDataAttributesTermSearch termSearch;
+
+ public static final String JSON_PROPERTY_TIME = "time";
+ private FunnelSuggestionRequestDataAttributesTime time;
+
+ public FunnelSuggestionRequestDataAttributes dataSource(String dataSource) {
+ this.dataSource = dataSource;
+ return this;
+ }
+
+ /**
+ * GetdataSource
+ *
+ * @return dataSource
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_DATA_SOURCE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getDataSource() {
+ return dataSource;
+ }
+
+ public void setDataSource(String dataSource) {
+ this.dataSource = dataSource;
+ }
+
+ public FunnelSuggestionRequestDataAttributes search(
+ FunnelSuggestionRequestDataAttributesSearch 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 FunnelSuggestionRequestDataAttributesSearch getSearch() {
+ return search;
+ }
+
+ public void setSearch(FunnelSuggestionRequestDataAttributesSearch search) {
+ this.search = search;
+ }
+
+ public FunnelSuggestionRequestDataAttributes termSearch(
+ FunnelSuggestionRequestDataAttributesTermSearch 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 FunnelSuggestionRequestDataAttributesTermSearch getTermSearch() {
+ return termSearch;
+ }
+
+ public void setTermSearch(FunnelSuggestionRequestDataAttributesTermSearch termSearch) {
+ this.termSearch = termSearch;
+ }
+
+ public FunnelSuggestionRequestDataAttributes time(
+ FunnelSuggestionRequestDataAttributesTime time) {
+ this.time = time;
+ this.unparsed |= time.unparsed;
+ return this;
+ }
+
+ /**
+ * Gettime
+ *
+ * @return time
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_TIME)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public FunnelSuggestionRequestDataAttributesTime getTime() {
+ return time;
+ }
+
+ public void setTime(FunnelSuggestionRequestDataAttributesTime time) {
+ this.time = time;
+ }
+
+ /**
+ * 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 FunnelSuggestionRequestDataAttributes
+ */
+ @JsonAnySetter
+ public FunnelSuggestionRequestDataAttributes 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 FunnelSuggestionRequestDataAttributes object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ FunnelSuggestionRequestDataAttributes funnelSuggestionRequestDataAttributes =
+ (FunnelSuggestionRequestDataAttributes) o;
+ return Objects.equals(this.dataSource, funnelSuggestionRequestDataAttributes.dataSource)
+ && Objects.equals(this.search, funnelSuggestionRequestDataAttributes.search)
+ && Objects.equals(this.termSearch, funnelSuggestionRequestDataAttributes.termSearch)
+ && Objects.equals(this.time, funnelSuggestionRequestDataAttributes.time)
+ && Objects.equals(
+ this.additionalProperties, funnelSuggestionRequestDataAttributes.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(dataSource, search, termSearch, time, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class FunnelSuggestionRequestDataAttributes {\n");
+ sb.append(" dataSource: ").append(toIndentedString(dataSource)).append("\n");
+ sb.append(" search: ").append(toIndentedString(search)).append("\n");
+ sb.append(" termSearch: ").append(toIndentedString(termSearch)).append("\n");
+ sb.append(" time: ").append(toIndentedString(time)).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/FunnelSuggestionRequestDataAttributesSearch.java b/src/main/java/com/datadog/api/client/v2/model/FunnelSuggestionRequestDataAttributesSearch.java
new file mode 100644
index 00000000000..b56d5d2e190
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/FunnelSuggestionRequestDataAttributesSearch.java
@@ -0,0 +1,239 @@
+/*
+ * 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({
+ FunnelSuggestionRequestDataAttributesSearch.JSON_PROPERTY_CROSS_SESSION_FILTER,
+ FunnelSuggestionRequestDataAttributesSearch.JSON_PROPERTY_QUERY_STRING,
+ FunnelSuggestionRequestDataAttributesSearch.JSON_PROPERTY_STEPS,
+ FunnelSuggestionRequestDataAttributesSearch.JSON_PROPERTY_SUBQUERY_ID
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class FunnelSuggestionRequestDataAttributesSearch {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_CROSS_SESSION_FILTER = "cross_session_filter";
+ private String crossSessionFilter;
+
+ public static final String JSON_PROPERTY_QUERY_STRING = "query_string";
+ private String queryString;
+
+ public static final String JSON_PROPERTY_STEPS = "steps";
+ private List steps = null;
+
+ public static final String JSON_PROPERTY_SUBQUERY_ID = "subquery_id";
+ private String subqueryId;
+
+ public FunnelSuggestionRequestDataAttributesSearch crossSessionFilter(String crossSessionFilter) {
+ this.crossSessionFilter = crossSessionFilter;
+ return this;
+ }
+
+ /**
+ * GetcrossSessionFilter
+ *
+ * @return crossSessionFilter
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_CROSS_SESSION_FILTER)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getCrossSessionFilter() {
+ return crossSessionFilter;
+ }
+
+ public void setCrossSessionFilter(String crossSessionFilter) {
+ this.crossSessionFilter = crossSessionFilter;
+ }
+
+ public FunnelSuggestionRequestDataAttributesSearch queryString(String queryString) {
+ this.queryString = queryString;
+ return this;
+ }
+
+ /**
+ * GetqueryString
+ *
+ * @return queryString
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_QUERY_STRING)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getQueryString() {
+ return queryString;
+ }
+
+ public void setQueryString(String queryString) {
+ this.queryString = queryString;
+ }
+
+ public FunnelSuggestionRequestDataAttributesSearch steps(
+ List steps) {
+ this.steps = steps;
+ for (FunnelSuggestionRequestDataAttributesSearchStepsItems item : steps) {
+ this.unparsed |= item.unparsed;
+ }
+ return this;
+ }
+
+ public FunnelSuggestionRequestDataAttributesSearch addStepsItem(
+ FunnelSuggestionRequestDataAttributesSearchStepsItems stepsItem) {
+ if (this.steps == null) {
+ this.steps = new ArrayList<>();
+ }
+ this.steps.add(stepsItem);
+ this.unparsed |= stepsItem.unparsed;
+ return this;
+ }
+
+ /**
+ * Getsteps
+ *
+ * @return steps
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_STEPS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getSteps() {
+ return steps;
+ }
+
+ public void setSteps(List steps) {
+ this.steps = steps;
+ }
+
+ public FunnelSuggestionRequestDataAttributesSearch subqueryId(String subqueryId) {
+ this.subqueryId = subqueryId;
+ return this;
+ }
+
+ /**
+ * GetsubqueryId
+ *
+ * @return subqueryId
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_SUBQUERY_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getSubqueryId() {
+ return subqueryId;
+ }
+
+ public void setSubqueryId(String subqueryId) {
+ this.subqueryId = subqueryId;
+ }
+
+ /**
+ * 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 FunnelSuggestionRequestDataAttributesSearch
+ */
+ @JsonAnySetter
+ public FunnelSuggestionRequestDataAttributesSearch 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 FunnelSuggestionRequestDataAttributesSearch object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ FunnelSuggestionRequestDataAttributesSearch funnelSuggestionRequestDataAttributesSearch =
+ (FunnelSuggestionRequestDataAttributesSearch) o;
+ return Objects.equals(
+ this.crossSessionFilter, funnelSuggestionRequestDataAttributesSearch.crossSessionFilter)
+ && Objects.equals(this.queryString, funnelSuggestionRequestDataAttributesSearch.queryString)
+ && Objects.equals(this.steps, funnelSuggestionRequestDataAttributesSearch.steps)
+ && Objects.equals(this.subqueryId, funnelSuggestionRequestDataAttributesSearch.subqueryId)
+ && Objects.equals(
+ this.additionalProperties,
+ funnelSuggestionRequestDataAttributesSearch.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(crossSessionFilter, queryString, steps, subqueryId, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class FunnelSuggestionRequestDataAttributesSearch {\n");
+ sb.append(" crossSessionFilter: ").append(toIndentedString(crossSessionFilter)).append("\n");
+ sb.append(" queryString: ").append(toIndentedString(queryString)).append("\n");
+ sb.append(" steps: ").append(toIndentedString(steps)).append("\n");
+ sb.append(" subqueryId: ").append(toIndentedString(subqueryId)).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/FunnelSuggestionRequestDataAttributesSearchStepsItems.java b/src/main/java/com/datadog/api/client/v2/model/FunnelSuggestionRequestDataAttributesSearchStepsItems.java
new file mode 100644
index 00000000000..275cd9ef65d
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/FunnelSuggestionRequestDataAttributesSearchStepsItems.java
@@ -0,0 +1,199 @@
+/*
+ * 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({
+ FunnelSuggestionRequestDataAttributesSearchStepsItems.JSON_PROPERTY_FACET,
+ FunnelSuggestionRequestDataAttributesSearchStepsItems.JSON_PROPERTY_STEP_FILTER,
+ FunnelSuggestionRequestDataAttributesSearchStepsItems.JSON_PROPERTY_VALUE
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class FunnelSuggestionRequestDataAttributesSearchStepsItems {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_FACET = "facet";
+ private String facet;
+
+ public static final String JSON_PROPERTY_STEP_FILTER = "step_filter";
+ private String stepFilter;
+
+ public static final String JSON_PROPERTY_VALUE = "value";
+ private String value;
+
+ public FunnelSuggestionRequestDataAttributesSearchStepsItems facet(String facet) {
+ this.facet = facet;
+ return this;
+ }
+
+ /**
+ * Getfacet
+ *
+ * @return facet
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_FACET)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getFacet() {
+ return facet;
+ }
+
+ public void setFacet(String facet) {
+ this.facet = facet;
+ }
+
+ public FunnelSuggestionRequestDataAttributesSearchStepsItems stepFilter(String stepFilter) {
+ this.stepFilter = stepFilter;
+ return this;
+ }
+
+ /**
+ * GetstepFilter
+ *
+ * @return stepFilter
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_STEP_FILTER)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getStepFilter() {
+ return stepFilter;
+ }
+
+ public void setStepFilter(String stepFilter) {
+ this.stepFilter = stepFilter;
+ }
+
+ public FunnelSuggestionRequestDataAttributesSearchStepsItems 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 FunnelSuggestionRequestDataAttributesSearchStepsItems
+ */
+ @JsonAnySetter
+ public FunnelSuggestionRequestDataAttributesSearchStepsItems 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 FunnelSuggestionRequestDataAttributesSearchStepsItems object is equal to o.
+ */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ FunnelSuggestionRequestDataAttributesSearchStepsItems
+ funnelSuggestionRequestDataAttributesSearchStepsItems =
+ (FunnelSuggestionRequestDataAttributesSearchStepsItems) o;
+ return Objects.equals(this.facet, funnelSuggestionRequestDataAttributesSearchStepsItems.facet)
+ && Objects.equals(
+ this.stepFilter, funnelSuggestionRequestDataAttributesSearchStepsItems.stepFilter)
+ && Objects.equals(this.value, funnelSuggestionRequestDataAttributesSearchStepsItems.value)
+ && Objects.equals(
+ this.additionalProperties,
+ funnelSuggestionRequestDataAttributesSearchStepsItems.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(facet, stepFilter, value, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class FunnelSuggestionRequestDataAttributesSearchStepsItems {\n");
+ sb.append(" facet: ").append(toIndentedString(facet)).append("\n");
+ sb.append(" stepFilter: ").append(toIndentedString(stepFilter)).append("\n");
+ sb.append(" value: ").append(toIndentedString(value)).append("\n");
+ sb.append(" additionalProperties: ")
+ .append(toIndentedString(additionalProperties))
+ .append("\n");
+ sb.append('}');
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/FunnelSuggestionRequestDataAttributesTermSearch.java b/src/main/java/com/datadog/api/client/v2/model/FunnelSuggestionRequestDataAttributesTermSearch.java
new file mode 100644
index 00000000000..e1058a7afa7
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/FunnelSuggestionRequestDataAttributesTermSearch.java
@@ -0,0 +1,140 @@
+/*
+ * 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({FunnelSuggestionRequestDataAttributesTermSearch.JSON_PROPERTY_QUERY})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class FunnelSuggestionRequestDataAttributesTermSearch {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_QUERY = "query";
+ private String query;
+
+ public FunnelSuggestionRequestDataAttributesTermSearch 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 FunnelSuggestionRequestDataAttributesTermSearch
+ */
+ @JsonAnySetter
+ public FunnelSuggestionRequestDataAttributesTermSearch 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 FunnelSuggestionRequestDataAttributesTermSearch object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ FunnelSuggestionRequestDataAttributesTermSearch
+ funnelSuggestionRequestDataAttributesTermSearch =
+ (FunnelSuggestionRequestDataAttributesTermSearch) o;
+ return Objects.equals(this.query, funnelSuggestionRequestDataAttributesTermSearch.query)
+ && Objects.equals(
+ this.additionalProperties,
+ funnelSuggestionRequestDataAttributesTermSearch.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(query, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class FunnelSuggestionRequestDataAttributesTermSearch {\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/FunnelSuggestionRequestDataAttributesTime.java b/src/main/java/com/datadog/api/client/v2/model/FunnelSuggestionRequestDataAttributesTime.java
new file mode 100644
index 00000000000..5a8a8b6ad0c
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/FunnelSuggestionRequestDataAttributesTime.java
@@ -0,0 +1,167 @@
+/*
+ * 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({
+ FunnelSuggestionRequestDataAttributesTime.JSON_PROPERTY_FROM,
+ FunnelSuggestionRequestDataAttributesTime.JSON_PROPERTY_TO
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class FunnelSuggestionRequestDataAttributesTime {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_FROM = "from";
+ private Long from;
+
+ public static final String JSON_PROPERTY_TO = "to";
+ private Long to;
+
+ public FunnelSuggestionRequestDataAttributesTime from(Long from) {
+ this.from = from;
+ return this;
+ }
+
+ /**
+ * Getfrom
+ *
+ * @return from
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_FROM)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Long getFrom() {
+ return from;
+ }
+
+ public void setFrom(Long from) {
+ this.from = from;
+ }
+
+ public FunnelSuggestionRequestDataAttributesTime to(Long to) {
+ this.to = to;
+ return this;
+ }
+
+ /**
+ * Getto
+ *
+ * @return to
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_TO)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Long getTo() {
+ return to;
+ }
+
+ public void setTo(Long to) {
+ this.to = to;
+ }
+
+ /**
+ * 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 FunnelSuggestionRequestDataAttributesTime
+ */
+ @JsonAnySetter
+ public FunnelSuggestionRequestDataAttributesTime 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 FunnelSuggestionRequestDataAttributesTime object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ FunnelSuggestionRequestDataAttributesTime funnelSuggestionRequestDataAttributesTime =
+ (FunnelSuggestionRequestDataAttributesTime) o;
+ return Objects.equals(this.from, funnelSuggestionRequestDataAttributesTime.from)
+ && Objects.equals(this.to, funnelSuggestionRequestDataAttributesTime.to)
+ && Objects.equals(
+ this.additionalProperties,
+ funnelSuggestionRequestDataAttributesTime.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(from, to, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class FunnelSuggestionRequestDataAttributesTime {\n");
+ sb.append(" from: ").append(toIndentedString(from)).append("\n");
+ sb.append(" to: ").append(toIndentedString(to)).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/FunnelSuggestionRequestDataType.java b/src/main/java/com/datadog/api/client/v2/model/FunnelSuggestionRequestDataType.java
new file mode 100644
index 00000000000..49a38e1d8ca
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/FunnelSuggestionRequestDataType.java
@@ -0,0 +1,58 @@
+/*
+ * 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;
+
+/** */
+@JsonSerialize(
+ using = FunnelSuggestionRequestDataType.FunnelSuggestionRequestDataTypeSerializer.class)
+public class FunnelSuggestionRequestDataType extends ModelEnum {
+
+ private static final Set allowedValues =
+ new HashSet(Arrays.asList("funnel_suggestion_request"));
+
+ public static final FunnelSuggestionRequestDataType FUNNEL_SUGGESTION_REQUEST =
+ new FunnelSuggestionRequestDataType("funnel_suggestion_request");
+
+ FunnelSuggestionRequestDataType(String value) {
+ super(value, allowedValues);
+ }
+
+ public static class FunnelSuggestionRequestDataTypeSerializer
+ extends StdSerializer {
+ public FunnelSuggestionRequestDataTypeSerializer(Class t) {
+ super(t);
+ }
+
+ public FunnelSuggestionRequestDataTypeSerializer() {
+ this(null);
+ }
+
+ @Override
+ public void serialize(
+ FunnelSuggestionRequestDataType value, JsonGenerator jgen, SerializerProvider provider)
+ throws IOException, JsonProcessingException {
+ jgen.writeObject(value.value);
+ }
+ }
+
+ @JsonCreator
+ public static FunnelSuggestionRequestDataType fromValue(String value) {
+ return new FunnelSuggestionRequestDataType(value);
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/FunnelSuggestionResponse.java b/src/main/java/com/datadog/api/client/v2/model/FunnelSuggestionResponse.java
new file mode 100644
index 00000000000..248db494506
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/FunnelSuggestionResponse.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({FunnelSuggestionResponse.JSON_PROPERTY_DATA})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class FunnelSuggestionResponse {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_DATA = "data";
+ private FunnelSuggestionResponseData data;
+
+ public FunnelSuggestionResponse data(FunnelSuggestionResponseData 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 FunnelSuggestionResponseData getData() {
+ return data;
+ }
+
+ public void setData(FunnelSuggestionResponseData 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 FunnelSuggestionResponse
+ */
+ @JsonAnySetter
+ public FunnelSuggestionResponse 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 FunnelSuggestionResponse object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ FunnelSuggestionResponse funnelSuggestionResponse = (FunnelSuggestionResponse) o;
+ return Objects.equals(this.data, funnelSuggestionResponse.data)
+ && Objects.equals(this.additionalProperties, funnelSuggestionResponse.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(data, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class FunnelSuggestionResponse {\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/FunnelSuggestionResponseData.java b/src/main/java/com/datadog/api/client/v2/model/FunnelSuggestionResponseData.java
new file mode 100644
index 00000000000..e07a58fd3c1
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/FunnelSuggestionResponseData.java
@@ -0,0 +1,209 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** */
+@JsonPropertyOrder({
+ FunnelSuggestionResponseData.JSON_PROPERTY_ATTRIBUTES,
+ FunnelSuggestionResponseData.JSON_PROPERTY_ID,
+ FunnelSuggestionResponseData.JSON_PROPERTY_TYPE
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class FunnelSuggestionResponseData {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ATTRIBUTES = "attributes";
+ private FunnelSuggestionResponseDataAttributes attributes;
+
+ public static final String JSON_PROPERTY_ID = "id";
+ private String id;
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ private FunnelSuggestionResponseDataType type =
+ FunnelSuggestionResponseDataType.FUNNEL_SUGGESTION_RESPONSE;
+
+ public FunnelSuggestionResponseData() {}
+
+ @JsonCreator
+ public FunnelSuggestionResponseData(
+ @JsonProperty(required = true, value = JSON_PROPERTY_TYPE)
+ FunnelSuggestionResponseDataType type) {
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ }
+
+ public FunnelSuggestionResponseData attributes(
+ FunnelSuggestionResponseDataAttributes 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 FunnelSuggestionResponseDataAttributes getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(FunnelSuggestionResponseDataAttributes attributes) {
+ this.attributes = attributes;
+ }
+
+ public FunnelSuggestionResponseData 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 FunnelSuggestionResponseData type(FunnelSuggestionResponseDataType type) {
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ return this;
+ }
+
+ /**
+ * Gettype
+ *
+ * @return type
+ */
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public FunnelSuggestionResponseDataType getType() {
+ return type;
+ }
+
+ public void setType(FunnelSuggestionResponseDataType 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 FunnelSuggestionResponseData
+ */
+ @JsonAnySetter
+ public FunnelSuggestionResponseData 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 FunnelSuggestionResponseData object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ FunnelSuggestionResponseData funnelSuggestionResponseData = (FunnelSuggestionResponseData) o;
+ return Objects.equals(this.attributes, funnelSuggestionResponseData.attributes)
+ && Objects.equals(this.id, funnelSuggestionResponseData.id)
+ && Objects.equals(this.type, funnelSuggestionResponseData.type)
+ && Objects.equals(
+ this.additionalProperties, funnelSuggestionResponseData.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(attributes, id, type, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class FunnelSuggestionResponseData {\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/FunnelSuggestionResponseDataAttributes.java b/src/main/java/com/datadog/api/client/v2/model/FunnelSuggestionResponseDataAttributes.java
new file mode 100644
index 00000000000..c32bd95ebd8
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/FunnelSuggestionResponseDataAttributes.java
@@ -0,0 +1,196 @@
+/*
+ * 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({
+ FunnelSuggestionResponseDataAttributes.JSON_PROPERTY_ACTIONS,
+ FunnelSuggestionResponseDataAttributes.JSON_PROPERTY_VIEWS
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class FunnelSuggestionResponseDataAttributes {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ACTIONS = "actions";
+ private List actions = null;
+
+ public static final String JSON_PROPERTY_VIEWS = "views";
+ private List views = null;
+
+ public FunnelSuggestionResponseDataAttributes actions(
+ List actions) {
+ this.actions = actions;
+ for (FunnelSuggestionResponseDataAttributesActionsItems item : actions) {
+ this.unparsed |= item.unparsed;
+ }
+ return this;
+ }
+
+ public FunnelSuggestionResponseDataAttributes addActionsItem(
+ FunnelSuggestionResponseDataAttributesActionsItems actionsItem) {
+ if (this.actions == null) {
+ this.actions = new ArrayList<>();
+ }
+ this.actions.add(actionsItem);
+ this.unparsed |= actionsItem.unparsed;
+ return this;
+ }
+
+ /**
+ * Getactions
+ *
+ * @return actions
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ACTIONS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getActions() {
+ return actions;
+ }
+
+ public void setActions(List actions) {
+ this.actions = actions;
+ }
+
+ public FunnelSuggestionResponseDataAttributes views(
+ List views) {
+ this.views = views;
+ for (FunnelSuggestionResponseDataAttributesViewsItems item : views) {
+ this.unparsed |= item.unparsed;
+ }
+ return this;
+ }
+
+ public FunnelSuggestionResponseDataAttributes addViewsItem(
+ FunnelSuggestionResponseDataAttributesViewsItems viewsItem) {
+ if (this.views == null) {
+ this.views = new ArrayList<>();
+ }
+ this.views.add(viewsItem);
+ this.unparsed |= viewsItem.unparsed;
+ return this;
+ }
+
+ /**
+ * Getviews
+ *
+ * @return views
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_VIEWS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getViews() {
+ return views;
+ }
+
+ public void setViews(List views) {
+ this.views = views;
+ }
+
+ /**
+ * 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 FunnelSuggestionResponseDataAttributes
+ */
+ @JsonAnySetter
+ public FunnelSuggestionResponseDataAttributes 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