Update exposure SQL model
https://api.datadoghq.com/api/v2/experiments/exposure-sql-models/{exposure_sql_model_id}https://api.us3.datadoghq.com/api/v2/experiments/exposure-sql-models/{exposure_sql_model_id}https://api.us5.datadoghq.com/api/v2/experiments/exposure-sql-models/{exposure_sql_model_id}https://api.datadoghq.eu/api/v2/experiments/exposure-sql-models/{exposure_sql_model_id}https://api.ap1.datadoghq.com/api/v2/experiments/exposure-sql-models/{exposure_sql_model_id}https://api.ap2.datadoghq.com/api/v2/experiments/exposure-sql-models/{exposure_sql_model_id}https://api.uk1.datadoghq.com/api/v2/experiments/exposure-sql-models/{exposure_sql_model_id}https://api.ddog-gov.com/api/v2/experiments/exposure-sql-models/{exposure_sql_model_id}https://api.us2.ddog-gov.com/api/v2/experiments/exposure-sql-models/{exposure_sql_model_id}Descripción general
Replace an exposure SQL model. This is a full replacement and is destructive: any subject type or property not present in the body is deleted, and properties are matched on name, column_name and column_type together, so changing one of those replaces the property rather than editing it. Send the complete set you want to keep. Anything removed is listed under meta.removed_subject_type_ids and meta.removed_property_names in the response. The warehouse connection is not settable and is left as stored.
OAuth apps require the product_analytics_warehouse_model_write authorization scope to access this endpoint.
Argumentos
Parámetros de ruta
exposure_sql_model_id [required]The UUID of the exposure SQL model.
Cadenas de consulta
includeOptional fields to include. Repeat this parameter to request several fields. counts adds
experiment_count to the updated model.
Solicitud
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"
}
}Respuesta
OK
Updated exposure SQL model and its removed entries.
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-modelsmetaRemoved model entries. Present only when the update removes an entry.
removed_property_namesProperty names removed from the model.
removed_subject_type_idsSubject type IDs removed from the model.
{
"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 exposure SQL model ID, 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"
}
]
}No exposure SQL model with this ID exists 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"
}
]
}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"
]
}Ejemplo de código
# Path parameters
export exposure_sql_model_id="550e8400-e29b-41d4-a716-446655440000"
# 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 PUT "https://api.${DD_SITE}/api/v2/experiments/exposure-sql-models/${exposure_sql_model_id}" \
-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# Path parameters
export exposure_sql_model_id="550e8400-e29b-41d4-a716-446655440000"
# 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 PUT "https://api.${DD_SITE}/api/v2/experiments/exposure-sql-models/${exposure_sql_model_id}" \
-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# Path parameters
export exposure_sql_model_id="550e8400-e29b-41d4-a716-446655440000"
# 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 PUT "https://api.${DD_SITE}/api/v2/experiments/exposure-sql-models/${exposure_sql_model_id}" \
-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# Path parameters
export exposure_sql_model_id="550e8400-e29b-41d4-a716-446655440000"
# 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 PUT "https://api.${DD_SITE}/api/v2/experiments/exposure-sql-models/${exposure_sql_model_id}" \
-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# Path parameters
export exposure_sql_model_id="550e8400-e29b-41d4-a716-446655440000"
# 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 PUT "https://api.${DD_SITE}/api/v2/experiments/exposure-sql-models/${exposure_sql_model_id}" \
-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# Path parameters
export exposure_sql_model_id="550e8400-e29b-41d4-a716-446655440000"
# 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 PUT "https://api.${DD_SITE}/api/v2/experiments/exposure-sql-models/${exposure_sql_model_id}" \
-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# Path parameters
export exposure_sql_model_id="550e8400-e29b-41d4-a716-446655440000"
# 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 PUT "https://api.${DD_SITE}/api/v2/experiments/exposure-sql-models/${exposure_sql_model_id}" \
-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# Path parameters
export exposure_sql_model_id="550e8400-e29b-41d4-a716-446655440000"
# 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 PUT "https://api.${DD_SITE}/api/v2/experiments/exposure-sql-models/${exposure_sql_model_id}" \
-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# Path parameters
export exposure_sql_model_id="550e8400-e29b-41d4-a716-446655440000"
# 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 PUT "https://api.${DD_SITE}/api/v2/experiments/exposure-sql-models/${exposure_sql_model_id}" \
-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// Update exposure SQL model returns "OK" 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"
"github.com/google/uuid"
)
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.UpdateExposureSQLModel(ctx, uuid.MustParse("550e8400-e29b-41d4-a716-446655440000"), body, *datadogV2.NewUpdateExposureSQLModelOptionalParameters())
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `ExperimentsApi.UpdateExposureSQLModel`: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
responseContent, _ := json.MarshalIndent(resp, "", " ")
fmt.Fprintf(os.Stdout, "Response from `ExperimentsApi.UpdateExposureSQLModel`:\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"// Update exposure SQL model returns "OK" 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.ExperimentsSQLModelPropertyInput;
import com.datadog.api.client.v2.model.ExperimentsUpdateExposureSQLModelV2RequestDataAttributes;
import com.datadog.api.client.v2.model.ExperimentsUpdateExposureSQLModelV2RequestDataType;
import com.datadog.api.client.v2.model.ExperimentsUpdateExposureSQLModelV2Response;
import java.util.Collections;
import java.util.UUID;
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 {
ExperimentsUpdateExposureSQLModelV2Response result =
apiInstance.updateExposureSQLModel(
UUID.fromString("550e8400-e29b-41d4-a716-446655440000"), body);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling ExperimentsApi#updateExposureSQLModel");
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""""
Update exposure SQL model returns "OK" 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,
)
from uuid import UUID
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.update_exposure_sql_model(
exposure_sql_model_id=UUID("550e8400-e29b-41d4-a716-446655440000"), 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"# Update exposure SQL model returns "OK" 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.update_exposure_sql_model("550e8400-e29b-41d4-a716-446655440000", 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"// Update exposure SQL model returns "OK" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_experiments::ExperimentsAPI;
use datadog_api_client::datadogV2::api_experiments::UpdateExposureSQLModelOptionalParams;
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;
use uuid::Uuid;
#[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
.update_exposure_sql_model(
Uuid::parse_str("550e8400-e29b-41d4-a716-446655440000").expect("invalid UUID"),
body,
UpdateExposureSQLModelOptionalParams::default(),
)
.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