Create exposure SQL model
https://api.datadoghq.com/api/v2/experiments/exposure-sql-modelshttps://api.us3.datadoghq.com/api/v2/experiments/exposure-sql-modelshttps://api.us5.datadoghq.com/api/v2/experiments/exposure-sql-modelshttps://api.datadoghq.eu/api/v2/experiments/exposure-sql-modelshttps://api.ap1.datadoghq.com/api/v2/experiments/exposure-sql-modelshttps://api.ap2.datadoghq.com/api/v2/experiments/exposure-sql-modelshttps://api.uk1.datadoghq.com/api/v2/experiments/exposure-sql-modelshttps://api.ddog-gov.com/api/v2/experiments/exposure-sql-modelshttps://api.us2.ddog-gov.com/api/v2/experiments/exposure-sql-modelsPrésentation
Create an exposure SQL model. Requires at least one subject type. The warehouse connection is resolved from the organization, which has exactly one.
OAuth apps require the product_analytics_warehouse_model_write authorization scope to access this endpoint.
Requête
Body Data (required)
data [required]Exposure SQL model resource to create.
attributes [required]Complete column mappings and query used to replace the exposure SQL model.
date_partition_columnSQL column used to partition the source data by date.
experiment_column [required]SQL column that identifies the experiment for each exposure.
migration_metadataMetadata retained for resources imported from another system.
name [required]Display name of the exposure SQL model.
propertiesProperty columns exposed by the SQL model.
column_name [required]Name of the SQL result column that supplies this property.
column_typeData type of a column in the SQL model.
STRING, INTEGER, FLOAT, BOOLEAN, DATE, TIMESTAMPdescriptionOptional text that explains what this property represents.
migration_metadataOpaque metadata preserved when this property is migrated.
name [required]Name used to identify the property in the model.
sql [required]SQL query that produces the model's source data.
subject_types [required]Subject types mapped to columns in the SQL model.
column_name [required]SQL result column that contains the subject identifier.
subject_type_id [required]Identifier of the subject type mapped to this column.
timestamp_column [required]SQL column that supplies the event timestamp.
variant_column [required]SQL column that identifies the variant for each exposure.
idOptional JSON:API resource identifier field.
type [required]Exposure SQL models resource type.
exposure-sql-modelsexposure-sql-models{
"data": {
"attributes": {
"date_partition_column": null,
"experiment_column": "experiment_id",
"migration_metadata": "undefined",
"name": "Exposure events",
"properties": [
{
"column_name": "country",
"column_type": "STRING",
"description": null,
"migration_metadata": "undefined",
"name": "country"
}
],
"sql": "SELECT user_id, experiment_id, variant, exposed_at, country FROM analytics.exposures",
"subject_types": [
{
"column_name": "user_id",
"subject_type_id": "550e8400-e29b-41d4-a716-446655440010"
}
],
"timestamp_column": "exposed_at",
"variant_column": "variant"
},
"id": "string",
"type": "exposure-sql-models"
}
}Réponse
Created
Response containing a SQL model for experiment assignment data.
data [required]Exposure SQL model resource with its identifier and configuration.
attributesQuery and column mappings used to read experiment assignment data.
archived_atTime when the exposure SQL model was archived.
created_atTime when the exposure SQL model was created.
date_partition_columnColumn used to identify date partitions in the exposure data.
experiment_columnSQL result column that contains the experiment key.
experiment_countNumber of experiments associated with the exposure SQL model.
migration_metadataMetadata associated with migration of this resource.
nameDisplay name of the exposure SQL model.
propertiesProperty columns available for filtering or splitting exposure data.
column_nameSQL result column that contains this property.
column_typeData type of the property column.
descriptionDescription of the exposure property.
idIdentifier of the exposure property.
migration_metadataMetadata associated with migration of this resource.
nameDisplay name of the exposure property.
pipeline_column_suffixSuffix used for this property column in the analysis pipeline.
sqlSQL query that supplies the experiment assignment data.
subject_typesMappings between subject types and their identifier columns.
column_name [required]SQL result column that contains the subject identifier.
subject_type_id [required]Identifier of the subject type mapped to this column.
timestamp_columnSQL result column that contains the assignment timestamp.
updated_atTime when the exposure SQL model was last updated.
variant_columnSQL result column that contains the assigned variant.
id [required]Identifier of the exposure SQL model.
type [required]Exposure SQL models resource type.
exposure-sql-modelsexposure-sql-models{
"data": {
"attributes": {
"created_at": "2024-01-01T12:00:00Z",
"experiment_column": "experiment_id",
"name": "Exposure events",
"properties": [
{
"column_name": "country",
"column_type": "STRING",
"id": "550e8400-e29b-41d4-a716-446655440031",
"name": "country",
"pipeline_column_suffix": "cty001"
}
],
"sql": "SELECT user_id, experiment_id, variant, exposed_at, country FROM analytics.exposures",
"subject_types": [
{
"column_name": "user_id",
"subject_type_id": "550e8400-e29b-41d4-a716-446655440010"
}
],
"timestamp_column": "exposed_at",
"updated_at": "2024-01-01T12:00:00Z",
"variant_column": "variant"
},
"id": "550e8400-e29b-41d4-a716-446655440030",
"type": "exposure-sql-models"
}
}Malformed body, validation failure, or the SQL was rejected by the warehouse validator.
API error response.
errors [required]A list of errors.
detailA human-readable explanation specific to this occurrence of the error.
metaNon-standard meta-information about the error
sourceReferences to the source of the error.
headerA string indicating the name of a single request header which caused the error.
parameterA string indicating which URI query parameter caused the error.
pointerA JSON pointer to the value in the request document that caused the error.
statusStatus code of the response.
titleShort human-readable summary of the error.
{
"errors": [
{
"detail": "Missing required attribute in body",
"meta": {},
"source": {
"header": "Authorization",
"parameter": "limit",
"pointer": "/data/attributes/title"
},
"status": "400",
"title": "Bad Request"
}
]
}Missing or invalid authentication.
API error response.
errors [required]A list of errors.
detailA human-readable explanation specific to this occurrence of the error.
metaNon-standard meta-information about the error
sourceReferences to the source of the error.
headerA string indicating the name of a single request header which caused the error.
parameterA string indicating which URI query parameter caused the error.
pointerA JSON pointer to the value in the request document that caused the error.
statusStatus code of the response.
titleShort human-readable summary of the error.
{
"errors": [
{
"detail": "Missing required attribute in body",
"meta": {},
"source": {
"header": "Authorization",
"parameter": "limit",
"pointer": "/data/attributes/title"
},
"status": "400",
"title": "Bad Request"
}
]
}Authenticated caller lacks the product_analytics_warehouse_model_write permission.
API error response.
errors [required]A list of errors.
detailA human-readable explanation specific to this occurrence of the error.
metaNon-standard meta-information about the error
sourceReferences to the source of the error.
headerA string indicating the name of a single request header which caused the error.
parameterA string indicating which URI query parameter caused the error.
pointerA JSON pointer to the value in the request document that caused the error.
statusStatus code of the response.
titleShort human-readable summary of the error.
{
"errors": [
{
"detail": "Missing required attribute in body",
"meta": {},
"source": {
"header": "Authorization",
"parameter": "limit",
"pointer": "/data/attributes/title"
},
"status": "400",
"title": "Bad Request"
}
]
}The write collided with an existing record for the organization.
API error response.
errors [required]A list of errors.
detailA human-readable explanation specific to this occurrence of the error.
metaNon-standard meta-information about the error
sourceReferences to the source of the error.
headerA string indicating the name of a single request header which caused the error.
parameterA string indicating which URI query parameter caused the error.
pointerA JSON pointer to the value in the request document that caused the error.
statusStatus code of the response.
titleShort human-readable summary of the error.
{
"errors": [
{
"detail": "Missing required attribute in body",
"meta": {},
"source": {
"header": "Authorization",
"parameter": "limit",
"pointer": "/data/attributes/title"
},
"status": "400",
"title": "Bad Request"
}
]
}Request body sent with a media type other than application/json or application/vnd.api+json.
API error response.
errors [required]A list of errors.
detailA human-readable explanation specific to this occurrence of the error.
metaNon-standard meta-information about the error
sourceReferences to the source of the error.
headerA string indicating the name of a single request header which caused the error.
parameterA string indicating which URI query parameter caused the error.
pointerA JSON pointer to the value in the request document that caused the error.
statusStatus code of the response.
titleShort human-readable summary of the error.
{
"errors": [
{
"detail": "Missing required attribute in body",
"meta": {},
"source": {
"header": "Authorization",
"parameter": "limit",
"pointer": "/data/attributes/title"
},
"status": "400",
"title": "Bad Request"
}
]
}Too many requests
API error response.
errors [required]A list of errors.
{
"errors": [
"Bad Request"
]
}Exemple de code
# Set your Datadog site and credentials
export DD_SITE="datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/experiments/exposure-sql-models" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"date_partition_column": null,
"experiment_column": "experiment_id",
"name": "Exposure events",
"sql": "SELECT user_id, experiment_id, variant, exposed_at, country FROM analytics.exposures",
"subject_types": [
{
"column_name": "user_id",
"subject_type_id": "550e8400-e29b-41d4-a716-446655440010"
}
],
"timestamp_column": "exposed_at",
"variant_column": "variant"
},
"type": "exposure-sql-models"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="us3.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/experiments/exposure-sql-models" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"date_partition_column": null,
"experiment_column": "experiment_id",
"name": "Exposure events",
"sql": "SELECT user_id, experiment_id, variant, exposed_at, country FROM analytics.exposures",
"subject_types": [
{
"column_name": "user_id",
"subject_type_id": "550e8400-e29b-41d4-a716-446655440010"
}
],
"timestamp_column": "exposed_at",
"variant_column": "variant"
},
"type": "exposure-sql-models"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="us5.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/experiments/exposure-sql-models" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"date_partition_column": null,
"experiment_column": "experiment_id",
"name": "Exposure events",
"sql": "SELECT user_id, experiment_id, variant, exposed_at, country FROM analytics.exposures",
"subject_types": [
{
"column_name": "user_id",
"subject_type_id": "550e8400-e29b-41d4-a716-446655440010"
}
],
"timestamp_column": "exposed_at",
"variant_column": "variant"
},
"type": "exposure-sql-models"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="datadoghq.eu"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/experiments/exposure-sql-models" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"date_partition_column": null,
"experiment_column": "experiment_id",
"name": "Exposure events",
"sql": "SELECT user_id, experiment_id, variant, exposed_at, country FROM analytics.exposures",
"subject_types": [
{
"column_name": "user_id",
"subject_type_id": "550e8400-e29b-41d4-a716-446655440010"
}
],
"timestamp_column": "exposed_at",
"variant_column": "variant"
},
"type": "exposure-sql-models"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="ap1.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/experiments/exposure-sql-models" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"date_partition_column": null,
"experiment_column": "experiment_id",
"name": "Exposure events",
"sql": "SELECT user_id, experiment_id, variant, exposed_at, country FROM analytics.exposures",
"subject_types": [
{
"column_name": "user_id",
"subject_type_id": "550e8400-e29b-41d4-a716-446655440010"
}
],
"timestamp_column": "exposed_at",
"variant_column": "variant"
},
"type": "exposure-sql-models"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="ap2.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/experiments/exposure-sql-models" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"date_partition_column": null,
"experiment_column": "experiment_id",
"name": "Exposure events",
"sql": "SELECT user_id, experiment_id, variant, exposed_at, country FROM analytics.exposures",
"subject_types": [
{
"column_name": "user_id",
"subject_type_id": "550e8400-e29b-41d4-a716-446655440010"
}
],
"timestamp_column": "exposed_at",
"variant_column": "variant"
},
"type": "exposure-sql-models"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="uk1.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/experiments/exposure-sql-models" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"date_partition_column": null,
"experiment_column": "experiment_id",
"name": "Exposure events",
"sql": "SELECT user_id, experiment_id, variant, exposed_at, country FROM analytics.exposures",
"subject_types": [
{
"column_name": "user_id",
"subject_type_id": "550e8400-e29b-41d4-a716-446655440010"
}
],
"timestamp_column": "exposed_at",
"variant_column": "variant"
},
"type": "exposure-sql-models"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="ddog-gov.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/experiments/exposure-sql-models" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"date_partition_column": null,
"experiment_column": "experiment_id",
"name": "Exposure events",
"sql": "SELECT user_id, experiment_id, variant, exposed_at, country FROM analytics.exposures",
"subject_types": [
{
"column_name": "user_id",
"subject_type_id": "550e8400-e29b-41d4-a716-446655440010"
}
],
"timestamp_column": "exposed_at",
"variant_column": "variant"
},
"type": "exposure-sql-models"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="us2.ddog-gov.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/experiments/exposure-sql-models" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"date_partition_column": null,
"experiment_column": "experiment_id",
"name": "Exposure events",
"sql": "SELECT user_id, experiment_id, variant, exposed_at, country FROM analytics.exposures",
"subject_types": [
{
"column_name": "user_id",
"subject_type_id": "550e8400-e29b-41d4-a716-446655440010"
}
],
"timestamp_column": "exposed_at",
"variant_column": "variant"
},
"type": "exposure-sql-models"
}
}
EOF// Create exposure SQL model returns "Created" response
package main
import (
"context"
"encoding/json"
"fmt"
"os"
"github.com/DataDog/datadog-api-client-go/v2/api/datadog"
"github.com/DataDog/datadog-api-client-go/v2/api/datadogV2"
)
func main() {
body := datadogV2.ExperimentsCreateExposureSQLModelV2Request{
Data: datadogV2.ExperimentsCreateExposureSQLModelV2RequestData{
Attributes: datadogV2.ExperimentsUpdateExposureSQLModelV2RequestDataAttributes{
DatePartitionColumn: *datadog.NewNullableString(nil),
ExperimentColumn: "experiment_id",
Name: "Exposure events",
Properties: []datadogV2.ExperimentsSQLModelPropertyInput{
{
ColumnName: "country",
ColumnType: datadogV2.EXPERIMENTSCREATEEXPOSURESQLMODELV2REQUESTDATAATTRIBUTESITEMSCOLUMNTYPE_STRING.Ptr(),
Description: *datadog.NewNullableString(nil),
Name: "country",
},
},
Sql: "SELECT user_id, experiment_id, variant, exposed_at, country FROM analytics.exposures",
SubjectTypes: []datadogV2.ExperimentsCreateExposureSQLModelV2RequestDataAttributesSubjectTypesItems{
{
ColumnName: "user_id",
SubjectTypeId: "550e8400-e29b-41d4-a716-446655440010",
},
},
TimestampColumn: "exposed_at",
VariantColumn: "variant",
},
Type: datadogV2.EXPERIMENTSUPDATEEXPOSURESQLMODELV2REQUESTDATATYPE_EXPOSURE_SQL_MODELS,
},
}
ctx := datadog.NewDefaultContext(context.Background())
ctx = context.WithValue(ctx, datadog.ContextAccessToken, os.Getenv("DD_BEARER_TOKEN"))
configuration := datadog.NewConfiguration()
apiClient := datadog.NewAPIClient(configuration)
api := datadogV2.NewExperimentsApi(apiClient)
resp, r, err := api.CreateExposureSQLModel(ctx, body)
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `ExperimentsApi.CreateExposureSQLModel`: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
responseContent, _ := json.MarshalIndent(resp, "", " ")
fmt.Fprintf(os.Stdout, "Response from `ExperimentsApi.CreateExposureSQLModel`:\n%s\n", responseContent)
}
Instructions
First install the library and its dependencies and then save the example to main.go and run following commands:
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"// Create exposure SQL model returns "Created" response
import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.ExperimentsApi;
import com.datadog.api.client.v2.model.ExperimentsCreateExposureSQLModelV2Request;
import com.datadog.api.client.v2.model.ExperimentsCreateExposureSQLModelV2RequestData;
import com.datadog.api.client.v2.model.ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType;
import com.datadog.api.client.v2.model.ExperimentsCreateExposureSQLModelV2RequestDataAttributesSubjectTypesItems;
import com.datadog.api.client.v2.model.ExperimentsExposureSQLModelV2DTO;
import com.datadog.api.client.v2.model.ExperimentsSQLModelPropertyInput;
import com.datadog.api.client.v2.model.ExperimentsUpdateExposureSQLModelV2RequestDataAttributes;
import com.datadog.api.client.v2.model.ExperimentsUpdateExposureSQLModelV2RequestDataType;
import java.util.Collections;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = ApiClient.getDefaultApiClient();
defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN"));
ExperimentsApi apiInstance = new ExperimentsApi(defaultClient);
ExperimentsCreateExposureSQLModelV2Request body =
new ExperimentsCreateExposureSQLModelV2Request()
.data(
new ExperimentsCreateExposureSQLModelV2RequestData()
.attributes(
new ExperimentsUpdateExposureSQLModelV2RequestDataAttributes()
.datePartitionColumn(null)
.experimentColumn("experiment_id")
.name("Exposure events")
.properties(
Collections.singletonList(
new ExperimentsSQLModelPropertyInput()
.columnName("country")
.columnType(
ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType
.STRING)
.description(null)
.name("country")))
.sql(
"SELECT user_id, experiment_id, variant, exposed_at, country FROM"
+ " analytics.exposures")
.subjectTypes(
Collections.singletonList(
new ExperimentsCreateExposureSQLModelV2RequestDataAttributesSubjectTypesItems()
.columnName("user_id")
.subjectTypeId("550e8400-e29b-41d4-a716-446655440010")))
.timestampColumn("exposed_at")
.variantColumn("variant"))
.type(ExperimentsUpdateExposureSQLModelV2RequestDataType.EXPOSURE_SQL_MODELS));
try {
ExperimentsExposureSQLModelV2DTO result = apiInstance.createExposureSQLModel(body);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling ExperimentsApi#createExposureSQLModel");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}
Instructions
First install the library and its dependencies and then save the example to Example.java and run following commands:
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java""""
Create exposure SQL model returns "Created" response
"""
from os import environ
from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.experiments_api import ExperimentsApi
from datadog_api_client.v2.model.experiments_create_exposure_sql_model_v2_request import (
ExperimentsCreateExposureSQLModelV2Request,
)
from datadog_api_client.v2.model.experiments_create_exposure_sql_model_v2_request_data import (
ExperimentsCreateExposureSQLModelV2RequestData,
)
from datadog_api_client.v2.model.experiments_create_exposure_sql_model_v2_request_data_attributes_items_column_type import (
ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType,
)
from datadog_api_client.v2.model.experiments_create_exposure_sql_model_v2_request_data_attributes_subject_types_items import (
ExperimentsCreateExposureSQLModelV2RequestDataAttributesSubjectTypesItems,
)
from datadog_api_client.v2.model.experiments_sql_model_property_input import ExperimentsSQLModelPropertyInput
from datadog_api_client.v2.model.experiments_update_exposure_sql_model_v2_request_data_attributes import (
ExperimentsUpdateExposureSQLModelV2RequestDataAttributes,
)
from datadog_api_client.v2.model.experiments_update_exposure_sql_model_v2_request_data_type import (
ExperimentsUpdateExposureSQLModelV2RequestDataType,
)
body = ExperimentsCreateExposureSQLModelV2Request(
data=ExperimentsCreateExposureSQLModelV2RequestData(
attributes=ExperimentsUpdateExposureSQLModelV2RequestDataAttributes(
date_partition_column=None,
experiment_column="experiment_id",
name="Exposure events",
properties=[
ExperimentsSQLModelPropertyInput(
column_name="country",
column_type=ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType.STRING,
description=None,
name="country",
),
],
sql="SELECT user_id, experiment_id, variant, exposed_at, country FROM analytics.exposures",
subject_types=[
ExperimentsCreateExposureSQLModelV2RequestDataAttributesSubjectTypesItems(
column_name="user_id",
subject_type_id="550e8400-e29b-41d4-a716-446655440010",
),
],
timestamp_column="exposed_at",
variant_column="variant",
),
type=ExperimentsUpdateExposureSQLModelV2RequestDataType.EXPOSURE_SQL_MODELS,
),
)
configuration = Configuration()
configuration.access_token = environ["DD_BEARER_TOKEN"]
with ApiClient(configuration) as api_client:
api_instance = ExperimentsApi(api_client)
response = api_instance.create_exposure_sql_model(body=body)
print(response)
Instructions
First install the library and its dependencies and then save the example to example.py and run following commands:
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"# Create exposure SQL model returns "Created" response
require "datadog_api_client"
DatadogAPIClient.configure do |config|
config.access_token = ENV["DD_BEARER_TOKEN"]
end
api_instance = DatadogAPIClient::V2::ExperimentsAPI.new
body = DatadogAPIClient::V2::ExperimentsCreateExposureSQLModelV2Request.new({
data: DatadogAPIClient::V2::ExperimentsCreateExposureSQLModelV2RequestData.new({
attributes: DatadogAPIClient::V2::ExperimentsUpdateExposureSQLModelV2RequestDataAttributes.new({
date_partition_column: nil,
experiment_column: "experiment_id",
name: "Exposure events",
properties: [
DatadogAPIClient::V2::ExperimentsSQLModelPropertyInput.new({
column_name: "country",
column_type: DatadogAPIClient::V2::ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType::STRING,
description: nil,
name: "country",
}),
],
sql: "SELECT user_id, experiment_id, variant, exposed_at, country FROM analytics.exposures",
subject_types: [
DatadogAPIClient::V2::ExperimentsCreateExposureSQLModelV2RequestDataAttributesSubjectTypesItems.new({
column_name: "user_id",
subject_type_id: "550e8400-e29b-41d4-a716-446655440010",
}),
],
timestamp_column: "exposed_at",
variant_column: "variant",
}),
type: DatadogAPIClient::V2::ExperimentsUpdateExposureSQLModelV2RequestDataType::EXPOSURE_SQL_MODELS,
}),
})
p api_instance.create_exposure_sql_model(body)
Instructions
First install the library and its dependencies and then save the example to example.rb and run following commands:
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"// Create exposure SQL model returns "Created" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_experiments::ExperimentsAPI;
use datadog_api_client::datadogV2::model::ExperimentsCreateExposureSQLModelV2Request;
use datadog_api_client::datadogV2::model::ExperimentsCreateExposureSQLModelV2RequestData;
use datadog_api_client::datadogV2::model::ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType;
use datadog_api_client::datadogV2::model::ExperimentsCreateExposureSQLModelV2RequestDataAttributesSubjectTypesItems;
use datadog_api_client::datadogV2::model::ExperimentsSQLModelPropertyInput;
use datadog_api_client::datadogV2::model::ExperimentsUpdateExposureSQLModelV2RequestDataAttributes;
use datadog_api_client::datadogV2::model::ExperimentsUpdateExposureSQLModelV2RequestDataType;
#[tokio::main]
async fn main() {
let body =
ExperimentsCreateExposureSQLModelV2Request::new(
ExperimentsCreateExposureSQLModelV2RequestData::new(
ExperimentsUpdateExposureSQLModelV2RequestDataAttributes::new(
"experiment_id".to_string(),
"Exposure events".to_string(),
"SELECT user_id, experiment_id, variant, exposed_at, country FROM analytics.exposures".to_string(),
vec![
ExperimentsCreateExposureSQLModelV2RequestDataAttributesSubjectTypesItems::new(
"user_id".to_string(),
"550e8400-e29b-41d4-a716-446655440010".to_string(),
)
],
"exposed_at".to_string(),
"variant".to_string(),
)
.date_partition_column(None)
.properties(
vec![
ExperimentsSQLModelPropertyInput::new("country".to_string(), "country".to_string())
.column_type(
ExperimentsCreateExposureSQLModelV2RequestDataAttributesItemsColumnType::STRING,
)
.description(None)
],
),
ExperimentsUpdateExposureSQLModelV2RequestDataType::EXPOSURE_SQL_MODELS,
),
);
let configuration = datadog::Configuration::new();
let api = ExperimentsAPI::with_config(configuration);
let resp = api.create_exposure_sql_model(body).await;
if let Ok(value) = resp {
println!("{:#?}", value);
} else {
println!("{:#?}", resp.unwrap_err());
}
}
Instructions
First install the library and its dependencies and then save the example to src/main.rs and run following commands:
DD_SITE="datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo runDD_SITE="us3.datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo runDD_SITE="us5.datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo runDD_SITE="datadoghq.eu" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo runDD_SITE="ap1.datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo runDD_SITE="ap2.datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo runDD_SITE="uk1.datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo runDD_SITE="ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo runDD_SITE="us2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo run