Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,065 changes: 1,065 additions & 0 deletions .generator/schemas/v2/openapi.yaml

Large diffs are not rendered by default.

36 changes: 36 additions & 0 deletions examples/v2/rum-audience-management/CreateConnection.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Create connection returns "Connection created successfully" response

require "datadog_api_client"
DatadogAPIClient.configure do |config|
config.unstable_operations["v2.create_connection".to_sym] = true
end
api_instance = DatadogAPIClient::V2::RumAudienceManagementAPI.new

body = DatadogAPIClient::V2::CreateConnectionRequest.new({
data: DatadogAPIClient::V2::CreateConnectionRequestData.new({
attributes: DatadogAPIClient::V2::CreateConnectionRequestDataAttributes.new({
fields: [
DatadogAPIClient::V2::CreateConnectionRequestDataAttributesFieldsItems.new({
description: "Customer subscription tier from `CRM`",
display_name: "Customer Tier",
id: "customer_tier",
source_name: "subscription_tier",
type: "string",
}),
DatadogAPIClient::V2::CreateConnectionRequestDataAttributesFieldsItems.new({
description: "Customer lifetime value in `USD`",
display_name: "Lifetime Value",
id: "lifetime_value",
source_name: "ltv",
type: "number",
}),
],
join_attribute: "user_email",
join_type: "email",
type: "ref_table",
}),
id: "crm-integration",
type: DatadogAPIClient::V2::UpdateConnectionRequestDataType::CONNECTION_ID,
}),
})
p api_instance.create_connection("users", body)
8 changes: 8 additions & 0 deletions examples/v2/rum-audience-management/DeleteConnection.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Delete connection returns "Connection deleted successfully" response

require "datadog_api_client"
DatadogAPIClient.configure do |config|
config.unstable_operations["v2.delete_connection".to_sym] = true
end
api_instance = DatadogAPIClient::V2::RumAudienceManagementAPI.new
api_instance.delete_connection("connection-id-123", "users")
25 changes: 25 additions & 0 deletions examples/v2/rum-audience-management/GetAccountFacetInfo.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Get account facet info returns "Successful response with facet information" response

require "datadog_api_client"
DatadogAPIClient.configure do |config|
config.unstable_operations["v2.get_account_facet_info".to_sym] = true
end
api_instance = DatadogAPIClient::V2::RumAudienceManagementAPI.new

body = DatadogAPIClient::V2::FacetInfoRequest.new({
data: DatadogAPIClient::V2::FacetInfoRequestData.new({
attributes: DatadogAPIClient::V2::FacetInfoRequestDataAttributes.new({
facet_id: "first_browser_name",
limit: 10,
search: DatadogAPIClient::V2::FacetInfoRequestDataAttributesSearch.new({
query: "user_org_id:5001 AND first_country_code:US",
}),
term_search: DatadogAPIClient::V2::FacetInfoRequestDataAttributesTermSearch.new({
value: "Chrome",
}),
}),
id: "facet_info_request",
type: DatadogAPIClient::V2::FacetInfoRequestDataType::USERS_FACET_INFO_REQUEST,
}),
})
p api_instance.get_account_facet_info(body)
8 changes: 8 additions & 0 deletions examples/v2/rum-audience-management/GetMapping.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Get mapping returns "Successful response with entity mapping configuration" response

require "datadog_api_client"
DatadogAPIClient.configure do |config|
config.unstable_operations["v2.get_mapping".to_sym] = true
end
api_instance = DatadogAPIClient::V2::RumAudienceManagementAPI.new
p api_instance.get_mapping("users")
25 changes: 25 additions & 0 deletions examples/v2/rum-audience-management/GetUserFacetInfo.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Get user facet info returns "Successful response with facet information" response

require "datadog_api_client"
DatadogAPIClient.configure do |config|
config.unstable_operations["v2.get_user_facet_info".to_sym] = true
end
api_instance = DatadogAPIClient::V2::RumAudienceManagementAPI.new

body = DatadogAPIClient::V2::FacetInfoRequest.new({
data: DatadogAPIClient::V2::FacetInfoRequestData.new({
attributes: DatadogAPIClient::V2::FacetInfoRequestDataAttributes.new({
facet_id: "first_browser_name",
limit: 10,
search: DatadogAPIClient::V2::FacetInfoRequestDataAttributesSearch.new({
query: "user_org_id:5001 AND first_country_code:US",
}),
term_search: DatadogAPIClient::V2::FacetInfoRequestDataAttributesTermSearch.new({
value: "Chrome",
}),
}),
id: "facet_info_request",
type: DatadogAPIClient::V2::FacetInfoRequestDataType::USERS_FACET_INFO_REQUEST,
}),
})
p api_instance.get_user_facet_info(body)
8 changes: 8 additions & 0 deletions examples/v2/rum-audience-management/ListConnections.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# List connections returns "Successful response with list of connections" response

require "datadog_api_client"
DatadogAPIClient.configure do |config|
config.unstable_operations["v2.list_connections".to_sym] = true
end
api_instance = DatadogAPIClient::V2::RumAudienceManagementAPI.new
p api_instance.list_connections("users")
34 changes: 34 additions & 0 deletions examples/v2/rum-audience-management/QueryAccounts.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Query accounts returns "Successful response with account data" response

require "datadog_api_client"
DatadogAPIClient.configure do |config|
config.unstable_operations["v2.query_accounts".to_sym] = true
end
api_instance = DatadogAPIClient::V2::RumAudienceManagementAPI.new

body = DatadogAPIClient::V2::QueryAccountRequest.new({
data: DatadogAPIClient::V2::QueryAccountRequestData.new({
attributes: DatadogAPIClient::V2::QueryAccountRequestDataAttributes.new({
limit: 20,
query: "plan_type:enterprise AND user_count:>100 AND subscription_status:active",
select_columns: [
"account_id",
"account_name",
"user_count",
"plan_type",
"subscription_status",
"created_at",
"mrr",
"industry",
],
sort: DatadogAPIClient::V2::QueryAccountRequestDataAttributesSort.new({
field: "user_count",
order: "DESC",
}),
wildcard_search_term: "tech",
}),
id: "query_account_request",
type: DatadogAPIClient::V2::QueryAccountRequestDataType::QUERY_ACCOUNT_REQUEST,
}),
})
p api_instance.query_accounts(body)
37 changes: 37 additions & 0 deletions examples/v2/rum-audience-management/QueryEventFilteredUsers.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Query event filtered users returns "Successful response with filtered user data" response

require "datadog_api_client"
DatadogAPIClient.configure do |config|
config.unstable_operations["v2.query_event_filtered_users".to_sym] = true
end
api_instance = DatadogAPIClient::V2::RumAudienceManagementAPI.new

body = DatadogAPIClient::V2::QueryEventFilteredUsersRequest.new({
data: DatadogAPIClient::V2::QueryEventFilteredUsersRequestData.new({
attributes: DatadogAPIClient::V2::QueryEventFilteredUsersRequestDataAttributes.new({
event_query: DatadogAPIClient::V2::QueryEventFilteredUsersRequestDataAttributesEventQuery.new({
query: "@type:view AND @view.loading_time:>3000 AND @application.name:ecommerce-platform",
time_frame: DatadogAPIClient::V2::QueryEventFilteredUsersRequestDataAttributesEventQueryTimeFrame.new({
_end: 1761309676,
start: 1760100076,
}),
}),
include_row_count: true,
limit: 25,
query: "user_org_id:5001 AND first_country_code:US AND first_browser_name:Chrome",
select_columns: [
"user_id",
"user_email",
"first_country_code",
"first_browser_name",
"events_count",
"session_count",
"error_count",
"avg_loading_time",
],
}),
id: "query_event_filtered_users_request",
type: DatadogAPIClient::V2::QueryEventFilteredUsersRequestDataType::QUERY_EVENT_FILTERED_USERS_REQUEST,
}),
})
p api_instance.query_event_filtered_users(body)
34 changes: 34 additions & 0 deletions examples/v2/rum-audience-management/QueryUsers.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Query users returns "Successful response with user data" response

require "datadog_api_client"
DatadogAPIClient.configure do |config|
config.unstable_operations["v2.query_users".to_sym] = true
end
api_instance = DatadogAPIClient::V2::RumAudienceManagementAPI.new

body = DatadogAPIClient::V2::QueryUsersRequest.new({
data: DatadogAPIClient::V2::QueryUsersRequestData.new({
attributes: DatadogAPIClient::V2::QueryUsersRequestDataAttributes.new({
limit: 25,
query: "user_email:*@techcorp.com AND first_country_code:US AND first_browser_name:Chrome",
select_columns: [
"user_id",
"user_email",
"user_name",
"user_org_id",
"first_country_code",
"first_browser_name",
"first_device_type",
"last_seen",
],
sort: DatadogAPIClient::V2::QueryUsersRequestDataAttributesSort.new({
field: "first_seen",
order: "DESC",
}),
wildcard_search_term: "john",
}),
id: "query_users_request",
type: DatadogAPIClient::V2::QueryUsersRequestDataType::QUERY_USERS_REQUEST,
}),
})
p api_instance.query_users(body)
43 changes: 43 additions & 0 deletions examples/v2/rum-audience-management/UpdateConnection.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Update connection returns "Connection updated successfully" response

require "datadog_api_client"
DatadogAPIClient.configure do |config|
config.unstable_operations["v2.update_connection".to_sym] = true
end
api_instance = DatadogAPIClient::V2::RumAudienceManagementAPI.new

body = DatadogAPIClient::V2::UpdateConnectionRequest.new({
data: DatadogAPIClient::V2::UpdateConnectionRequestData.new({
attributes: DatadogAPIClient::V2::UpdateConnectionRequestDataAttributes.new({
fields_to_add: [
DatadogAPIClient::V2::CreateConnectionRequestDataAttributesFieldsItems.new({
description: "Net Promoter Score from customer surveys",
display_name: "NPS Score",
groups: [
"Satisfaction",
"Metrics",
],
id: "nps_score",
source_name: "net_promoter_score",
type: "number",
}),
],
fields_to_delete: [
"old_revenue_field",
],
fields_to_update: [
DatadogAPIClient::V2::UpdateConnectionRequestDataAttributesFieldsToUpdateItems.new({
field_id: "lifetime_value",
updated_display_name: "Customer Lifetime Value (`USD`)",
updated_groups: [
"Financial",
"Metrics",
],
}),
],
}),
id: "crm-integration",
type: DatadogAPIClient::V2::UpdateConnectionRequestDataType::CONNECTION_ID,
}),
})
p api_instance.update_connection("users", body)
33 changes: 33 additions & 0 deletions features/scenarios_model_mapping.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2647,6 +2647,39 @@
"page_limit" => "Integer",
"page_cursor" => "String",
},
"v2.GetAccountFacetInfo" => {
"body" => "FacetInfoRequest",
},
"v2.QueryAccounts" => {
"body" => "QueryAccountRequest",
},
"v2.QueryEventFilteredUsers" => {
"body" => "QueryEventFilteredUsersRequest",
},
"v2.GetUserFacetInfo" => {
"body" => "FacetInfoRequest",
},
"v2.QueryUsers" => {
"body" => "QueryUsersRequest",
},
"v2.GetMapping" => {
"entity" => "String",
},
"v2.CreateConnection" => {
"entity" => "String",
"body" => "CreateConnectionRequest",
},
"v2.UpdateConnection" => {
"entity" => "String",
"body" => "UpdateConnectionRequest",
},
"v2.DeleteConnection" => {
"id" => "String",
"entity" => "String",
},
"v2.ListConnections" => {
"entity" => "String",
},
"v2.ListTables" => {
"page_limit" => "Integer",
"page_offset" => "Integer",
Expand Down
91 changes: 91 additions & 0 deletions features/v2/rum_audience_management.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
@endpoint(rum-audience-management) @endpoint(rum-audience-management-v2)
Feature: Rum Audience Management
Auto-generated tag Rum Audience Management

Background:
Given a valid "apiKeyAuth" key in the system
And a valid "appKeyAuth" key in the system
And an instance of "RumAudienceManagement" API

@generated @skip @team:DataDog/audience-management-backend
Scenario: Create connection returns "Connection created successfully" response
Given operation "CreateConnection" enabled
And new "CreateConnection" request
And request contains "entity" parameter from "REPLACE.ME"
And body with value {"data": {"attributes": {"fields": [{"description": "Customer subscription tier from `CRM`", "display_name": "Customer Tier", "id": "customer_tier", "source_name": "subscription_tier", "type": "string"}, {"description": "Customer lifetime value in `USD`", "display_name": "Lifetime Value", "id": "lifetime_value", "source_name": "ltv", "type": "number"}], "join_attribute": "user_email", "join_type": "email", "type": "ref_table"}, "id": "crm-integration", "type": "connection_id"}}
When the request is sent
Then the response status is 201 Connection created successfully

@generated @skip @team:DataDog/audience-management-backend
Scenario: Delete connection returns "Connection deleted successfully" response
Given operation "DeleteConnection" enabled
And new "DeleteConnection" request
And request contains "id" parameter from "REPLACE.ME"
And request contains "entity" parameter from "REPLACE.ME"
When the request is sent
Then the response status is 204 Connection deleted successfully

@generated @skip @team:DataDog/audience-management-backend
Scenario: Get account facet info returns "Successful response with facet information" response
Given operation "GetAccountFacetInfo" enabled
And new "GetAccountFacetInfo" request
And body with value {"data": {"attributes": {"facet_id": "first_browser_name", "limit": 10, "search": {"query": "user_org_id:5001 AND first_country_code:US"}, "term_search": {"value": "Chrome"}}, "id": "facet_info_request", "type": "users_facet_info_request"}}
When the request is sent
Then the response status is 200 Successful response with facet information

@generated @skip @team:DataDog/audience-management-backend
Scenario: Get mapping returns "Successful response with entity mapping configuration" response
Given operation "GetMapping" enabled
And new "GetMapping" request
And request contains "entity" parameter from "REPLACE.ME"
When the request is sent
Then the response status is 200 Successful response with entity mapping configuration

@generated @skip @team:DataDog/audience-management-backend
Scenario: Get user facet info returns "Successful response with facet information" response
Given operation "GetUserFacetInfo" enabled
And new "GetUserFacetInfo" request
And body with value {"data": {"attributes": {"facet_id": "first_browser_name", "limit": 10, "search": {"query": "user_org_id:5001 AND first_country_code:US"}, "term_search": {"value": "Chrome"}}, "id": "facet_info_request", "type": "users_facet_info_request"}}
When the request is sent
Then the response status is 200 Successful response with facet information

@generated @skip @team:DataDog/audience-management-backend
Scenario: List connections returns "Successful response with list of connections" response
Given operation "ListConnections" enabled
And new "ListConnections" request
And request contains "entity" parameter from "REPLACE.ME"
When the request is sent
Then the response status is 200 Successful response with list of connections

@generated @skip @team:DataDog/audience-management-backend
Scenario: Query accounts returns "Successful response with account data" response
Given operation "QueryAccounts" enabled
And new "QueryAccounts" request
And body with value {"data": {"attributes": {"limit": 20, "query": "plan_type:enterprise AND user_count:>100 AND subscription_status:active", "select_columns": ["account_id", "account_name", "user_count", "plan_type", "subscription_status", "created_at", "mrr", "industry"], "sort": {"field": "user_count", "order": "DESC"}, "wildcard_search_term": "tech"}, "id": "query_account_request", "type": "query_account_request"}}
When the request is sent
Then the response status is 200 Successful response with account data

@generated @skip @team:DataDog/audience-management-backend
Scenario: Query event filtered users returns "Successful response with filtered user data" response
Given operation "QueryEventFilteredUsers" enabled
And new "QueryEventFilteredUsers" request
And body with value {"data": {"attributes": {"event_query": {"query": "@type:view AND @view.loading_time:>3000 AND @application.name:ecommerce-platform", "time_frame": {"end": 1761309676, "start": 1760100076}}, "include_row_count": true, "limit": 25, "query": "user_org_id:5001 AND first_country_code:US AND first_browser_name:Chrome", "select_columns": ["user_id", "user_email", "first_country_code", "first_browser_name", "events_count", "session_count", "error_count", "avg_loading_time"]}, "id": "query_event_filtered_users_request", "type": "query_event_filtered_users_request"}}
When the request is sent
Then the response status is 200 Successful response with filtered user data

@generated @skip @team:DataDog/audience-management-backend
Scenario: Query users returns "Successful response with user data" response
Given operation "QueryUsers" enabled
And new "QueryUsers" request
And body with value {"data": {"attributes": {"limit": 25, "query": "user_email:*@techcorp.com AND first_country_code:US AND first_browser_name:Chrome", "select_columns": ["user_id", "user_email", "user_name", "user_org_id", "first_country_code", "first_browser_name", "first_device_type", "last_seen"], "sort": {"field": "first_seen", "order": "DESC"}, "wildcard_search_term": "john"}, "id": "query_users_request", "type": "query_users_request"}}
When the request is sent
Then the response status is 200 Successful response with user data

@generated @skip @team:DataDog/audience-management-backend
Scenario: Update connection returns "Connection updated successfully" response
Given operation "UpdateConnection" enabled
And new "UpdateConnection" request
And request contains "entity" parameter from "REPLACE.ME"
And body with value {"data": {"attributes": {"fields_to_add": [{"description": "Net Promoter Score from customer surveys", "display_name": "NPS Score", "groups": ["Satisfaction", "Metrics"], "id": "nps_score", "source_name": "net_promoter_score", "type": "number"}], "fields_to_delete": ["old_revenue_field"], "fields_to_update": [{"field_id": "lifetime_value", "updated_display_name": "Customer Lifetime Value (`USD`)", "updated_groups": ["Financial", "Metrics"]}]}, "id": "crm-integration", "type": "connection_id"}}
When the request is sent
Then the response status is 200 Connection updated successfully
Loading
Loading