Patch experiment
https://api.datadoghq.com/api/v2/experiments/{experiment_id}https://api.us3.datadoghq.com/api/v2/experiments/{experiment_id}https://api.us5.datadoghq.com/api/v2/experiments/{experiment_id}https://api.datadoghq.eu/api/v2/experiments/{experiment_id}https://api.ap1.datadoghq.com/api/v2/experiments/{experiment_id}https://api.ap2.datadoghq.com/api/v2/experiments/{experiment_id}https://api.uk1.datadoghq.com/api/v2/experiments/{experiment_id}https://api.ddog-gov.com/api/v2/experiments/{experiment_id}https://api.us2.ddog-gov.com/api/v2/experiments/{experiment_id}概要
Update mutable experiment fields. State and protocol restrictions apply.
PATCH behavior
- Omitted fields stay unchanged, including fields inside
datadog_flag_configuration. - Supplied
tags,teams,related_links,decision_metrics, andvariantsreplace their stored lists. - Validation can return several field errors before saving any changes. The response is HTTP 400 if any error concerns invalid input. It is HTTP 409 if all errors concern state or protocol conflicts.
Result refreshes
This endpoint does not start a pipeline run. meta.needs_pipeline_refresh states whether the edit requires a
run. When true, POST to meta.refresh_endpoint after finishing your edits. Its full_refresh query parameter
selects the run type.
Keep refresh requirements across edits. A later false value does not clear an earlier requirement. Any
full_refresh=true requirement takes priority.
After start, STATIC and STEPS exposure changes for warehouse experiments without a Datadog flag attempt to
recalculate stored results. Changes to decision metrics or the control variant also attempt recalculation when
results exist. If stored data is insufficient or recalculation fails, the edit stays saved and
meta.needs_pipeline_refresh is true.
Exposure rules
- Draft experiments can replace the full STATIC or STEPS plan through
traffic_exposure. - Warehouse steps start at
assignments_start_dateand can have different durations. - Running warehouse experiments can replace step fractions, durations, and exposure mode. Retained variant weights cannot change through this API. You can send unchanged values again.
- After a warehouse experiment ends, configuration replacement supports only STATIC fraction changes.
- New Datadog plans have at most five steps. The first fraction must be positive. All steps except the last have equal durations. Durations exclude pauses.
- The last step has a null duration. Its fraction stays in effect until assignment ends.
- After start, use the experiment UI to change traffic exposure for experiments linked to a Datadog flag.
Metadata
structured_metadata updates fields by field_key. Use freetext_value: "" or enum_values: [] to clear an
optional field. Omitted fields stay unchanged. A null or empty structured_metadata attribute makes no
change.
Flag changes
Before start, a Datadog update creates or edits the saved draft allocation. To add or replace a flag, send
variants and traffic_exposure. Inside datadog_flag_configuration, send feature_flag_id,
environment_id, targeting_rules, and entry_point. Use targeting_rules: [] and entry_point: null when
unused.
To replace a flag, also set reset_on_feature_flag_change: true inside that object. The server deletes the
old draft and creates a new one in the same transaction. The response includes a
datadog_flag_configuration_reset warning in meta.warnings.
Set datadog_flag_configuration: null to delete the draft allocation. This also clears the experiment's flag
association, variants, assignment sources, and entry point. The experiment remains.
Flag replacement and removal require a draft experiment without warehouse exposure. These actions do not convert hybrid experiments.
OAuth apps require the product_analytics_experiments_write authorization scope to access this endpoint.
引数
パスパラメーター
experiment_id [required]The UUID of the experiment.
リクエスト
Body Data (required)
data [required]JSON:API resource containing the experiment identity and fields.
attributesFields supplied to update the experiment.
assignments_end_dateEnd of the time window for experiment assignments.
assignments_start_dateStart of the time window for experiment assignments.
datadog_flag_configurationFeature flag, environment, and targeting configuration for the experiment.
entry_pointDatadog measure and filters used to select analyzed subjects.
filters [required]Complete Datadog OR-of-ANDs entry-point filter expression.
measure_id [required]Datadog measure UUID.
environment_idID of the feature flag environment used by the experiment.
feature_flag_idID of the feature flag linked to the experiment.
reset_on_feature_flag_changeSet true to replace an existing draft allocation when feature_flag_id changes. The replacement resets all flag-bound randomization state.
targeting_rulesOmit to keep the stored rules. Use an empty array to remove targeting rules.
conditions [required]Conditions that must all match for this rule. Each condition must use exactly one shape: saved_filter_id alone or operator plus attribute plus value.
Object 1A condition that uses a saved filter. Inline fields must be omitted or null.
saved_filter_id [required]Saved-filter UUID.
Object 2An inline condition. The saved_filter_id field must be omitted or null.
attribute [required]Attribute to evaluate.
operator [required]Required with attribute and value for an inline condition; omit when saved_filter_id is set.
LT, LTE, GT, GTE, MATCHES, NOT_MATCHES, ONE_OF, NOT_ONE_OF, IS_NULL, EQUALSShow 6 more
SEMVER_EQ, SEMVER_NEQ, SEMVER_LT, SEMVER_LTE, SEMVER_GT, SEMVER_GTEvalue [required]Values used by the operator. Every operator requires at least one value.
decision_metricsMetrics used to decide the experiment outcome.
is_primary [required]Whether this is the experiment primary metric.
metric_id [required]Decision metric UUID.
events_end_dateEnd of the time window for metric events.
events_start_dateStart of the time window for metric events.
hypothesisExpected effect that the experiment is intended to test.
migration_metadataMetadata retained for resources imported from another system.
nameDisplay name of the experiment.
related_linksLinks to supporting material for the experiment.
idLink ID. Omit it when adding a link.
titleOptional display title.
url [required]Absolute URL.
split_by_propertiesComplete replacement for the Datadog split-by selection. Identify each property by column_name. Omit this field to leave the selection unchanged.
column_name [required]Exposure field that identifies the property.
column_typeData type of the column evaluated by the entry-point filter.
varchar, int, double, boolean, varchar_array, int_array, double_array, rawnameOptional display name. Defaults to column_name for a new property.
structured_metadataMetadata values to update. Omit this field, send null, or send an empty array to leave metadata unchanged.
enum_valuesSelected values for an enumerated metadata field.
field_key [required]Key that identifies the metadata field.
freetext_valueText value for a free-text metadata field.
subject_type_idID of the subject type used by this configuration.
summarySummary text recorded for the experiment.
tagsTags attached to the experiment.
teamsTeams associated with the experiment.
traffic_exposureTraffic exposure fraction or schedule configured for the experiment.
fractionSTATIC exposure fraction. Draft experiments can change this value. After start only warehouse experiments without a Datadog flag can change a STATIC fraction through the public API.
mode [required]Whether exposure uses a fixed fraction or a sequence of steps.
STATIC, STEPSstepsConfigured exposure plan rather than wall-clock history. At least two steps must have strictly increasing fractions and no gaps. Warehouse steps start at assignments_start_date and can use different durations. New Datadog plans have at most five steps and a first fraction above zero. Their nonfinal durations must be equal and exclude time paused. Datadog steps start with the experiment. Running warehouse experiments can replace step fractions, durations, and the exposure mode. After start, Datadog exposure plans cannot change through the public API. The final duration is null and its fraction holds until assignment ends.
duration_ms [required]Positive step duration in milliseconds. Datadog durations exclude pauses. Send null for the final step.
fraction [required]Fraction of traffic exposed during this step.
variantsVariants configured for the experiment.
feature_flag_variant_idStable backing flag variant ID. Required for Datadog-backed experiments and omitted for Warehouse-only experiments.
is_activeWhether this variant participates in the experiment. Responses always include this field. On writes an included variant defaults to active; omit its row to remove or unselect it. Explicit false supports sending an unchanged response back.
is_control [required]Whether this is the single control variant.
key [required]Assignment value. Datadog flag variant keys are server-owned.
nameDisplay name. Datadog flag variant names are server-owned.
weight [required]Traffic allocation percentage. Existing variant weights cannot change through the public API after the experiment starts.
warehouse_exposure_configurationWarehouse model and experiment key used to read assignment data.
entry_point [required]Optional Warehouse measure that scopes analyzed subjects.
filters [required]Complete ordered Warehouse entry-point filter set.
operation [required]Comparison applied by the warehouse entry-point filter.
IS, IS_NOTproperty_id [required]Warehouse property UUID.
values [required]Ordered values used by the filter.
measure_id [required]Warehouse measure UUID.
experiment_key [required]Warehouse experiment key. Must not be blank.
exposure_sql_model_id [required]ID of the exposure SQL model that provides assignment data.
idID of the experiment.
type [required]Experiments resource type.
experimentsexperiments{
"data": {
"attributes": {
"datadog_flag_configuration": {
"entry_point": null,
"environment_id": "550e8400-e29b-41d4-a716-446655440005",
"feature_flag_id": "550e8400-e29b-41d4-a716-446655440014",
"reset_on_feature_flag_change": true,
"targeting_rules": []
},
"structured_metadata": [
{
"enum_values": [
"general_availability"
],
"field_key": "launch_stage"
}
],
"traffic_exposure": {
"fraction": 1,
"mode": "STATIC"
},
"variants": [
{
"feature_flag_variant_id": "550e8400-e29b-41d4-a716-446655440020",
"is_active": true,
"is_control": true,
"key": "control",
"weight": 50
},
{
"feature_flag_variant_id": "550e8400-e29b-41d4-a716-446655440021",
"is_active": true,
"is_control": false,
"key": "treatment",
"weight": 50
}
]
},
"type": "experiments"
}
}応答
OK
Response containing the updated experiment, refresh requirements, and warnings.
data [required]Experiment resource with its identifier and configuration.
attributesDetails of the experiment.
assignments_end_dateEnd of the time window for experiment assignments.
assignments_start_dateStart of the time window for experiment assignments.
concluded_atTime when the experiment was concluded.
conclusionOutcome and supporting text recorded when the experiment is concluded.
decision_reasonReason for the recorded decision.
outcomeRecorded experiment outcome.
POSITIVE, NEGATIVE, NEUTRAL, INCONCLUSIVE, MISCONFIGURED, UNKNOWNsummarySummary of the experiment conclusion.
created_atTime when this resource was created.
datadog_flag_configurationFeature flag, environment, and targeting configuration for the experiment.
allocation_keyKey of the feature flag allocation linked to the experiment.
entry_point [required]Datadog measure and filters used to select analyzed subjects.
filters [required]Complete Datadog OR-of-ANDs entry-point filter expression.
measure_id [required]Datadog measure UUID.
environment_idID of the feature flag environment used by the experiment.
feature_flag_idID of the feature flag linked to the experiment.
targeting_rulesRules that select subjects for the experiment.
conditions [required]Conditions that must all match for this rule. Each condition must use exactly one shape: saved_filter_id alone or operator plus attribute plus value.
Object 1A condition that uses a saved filter. Inline fields must be omitted or null.
saved_filter_id [required]Saved-filter UUID.
Object 2An inline condition. The saved_filter_id field must be omitted or null.
attribute [required]Attribute to evaluate.
operator [required]Required with attribute and value for an inline condition; omit when saved_filter_id is set.
LT, LTE, GT, GTE, MATCHES, NOT_MATCHES, ONE_OF, NOT_ONE_OF, IS_NULL, EQUALSShow 6 more
SEMVER_EQ, SEMVER_NEQ, SEMVER_LT, SEMVER_LTE, SEMVER_GT, SEMVER_GTEvalue [required]Values used by the operator. Every operator requires at least one value.
decision_metricsMetrics used to decide the experiment outcome.
is_primary [required]Whether this is the experiment primary metric.
metric_id [required]Decision metric UUID.
decision_variant_keyKey of the variant selected in the experiment decision.
events_end_dateEnd of the time window for metric events.
events_start_dateStart of the time window for metric events.
experiment_typeKind of experiment. STANDARD is an ordinary experiment. Other values, such as CANARY and HOLDOUT, identify experiments owned by another workflow. New kinds may be added; treat unknown values as non-standard.
hypothesisExpected effect that the experiment is intended to test.
migration_metadataMetadata retained for resources imported from another system.
nameDisplay name of the experiment.
pipeline_table_suffixSuffix used to identify the experiment's pipeline output table.
protocol_idID of the protocol associated with the experiment.
related_linksLinks to supporting material for the experiment.
idLink ID. Omit it when adding a link.
titleOptional display title.
url [required]Absolute URL.
results_last_updatedTime of the most recent update to the experiment's results.
split_by_propertiesProperties used to split the experiment results into groups.
column_name [required]Exposure field or Warehouse column used for the analysis dimension.
column_type [required]Type of the Datadog exposure field or Warehouse column.
varchar, int, double, boolean, varchar_array, int_array, double_array, raw, STRING, INTEGERShow 4 more
FLOAT, BOOLEAN, DATE, TIMESTAMPid [required]Read-only property ID. Omit it from POST and PATCH; writes identify properties by column_name.
name [required]Display name for the analysis dimension.
statusCurrent stage in the experiment lifecycle.
DRAFT, SCHEDULED, IN_PROGRESS, READY_FOR_DECISION, DECISION_MADE, CANCELLED, UNKNOWNstructured_metadataValues of structured metadata fields attached to the experiment.
enum_valuesSelected values for an enumerated metadata field.
field_display_nameDisplay name of the metadata field.
field_key [required]Key that identifies the metadata field.
field_typeType of value stored in the structured metadata field.
FREETEXT, ENUMfreetext_valueText value for a free-text metadata field.
subject_type_idID of the subject type used by this configuration.
summarySummary text recorded for the experiment.
tagsTags attached to the experiment.
teamsTeams associated with the experiment.
traffic_exposureTraffic exposure fraction or schedule configured for the experiment.
fractionSTATIC exposure fraction. Draft experiments can change this value. After start only warehouse experiments without a Datadog flag can change a STATIC fraction through the public API.
mode [required]Whether exposure uses a fixed fraction or a sequence of steps.
STATIC, STEPSstepsConfigured exposure plan rather than wall-clock history. At least two steps must have strictly increasing fractions and no gaps. Warehouse steps start at assignments_start_date and can use different durations. New Datadog plans have at most five steps and a first fraction above zero. Their nonfinal durations must be equal and exclude time paused. Datadog steps start with the experiment. Running warehouse experiments can replace step fractions, durations, and the exposure mode. After start, Datadog exposure plans cannot change through the public API. The final duration is null and its fraction holds until assignment ends.
duration_ms [required]Positive step duration in milliseconds. Datadog durations exclude pauses. Send null for the final step.
fraction [required]Fraction of traffic exposed during this step.
updated_atTime when this resource was last updated.
variantsVariants configured for the experiment.
feature_flag_variant_idBacking feature flag variant ID. Present for Datadog feature flag experiments and omitted for Warehouse experiments.
is_active [required]Whether this variant participates in the experiment.
is_control [required]Whether this is the single control variant.
key [required]Value recorded in exposure data for this variant.
nameDisplay name of the experiment variant.
weight [required]Traffic allocation percentage.
warehouse_exposure_configurationWarehouse exposure model and settings used to identify experiment assignments.
entry_point [required]Optional Warehouse measure that scopes analyzed subjects.
filters [required]Complete ordered Warehouse entry-point filter set.
operation [required]Comparison applied by the warehouse entry-point filter.
IS, IS_NOTproperty_id [required]Warehouse property UUID.
values [required]Ordered values used by the filter.
measure_id [required]Warehouse measure UUID.
experiment_key [required]Warehouse experiment key. Reads can return null for incomplete configuration; configuration writes require a value.
exposure_sql_model_id [required]ID of the exposure SQL model that provides assignment data.
id [required]Identifier of the experiment.
type [required]Experiments resource type.
experimentsexperimentsmetaRefresh requirements and warnings returned by an experiment update.
needs_pipeline_refresh [required]Whether this edit needs a full or non-full pipeline run. This operation does not start the run. A later false value does not clear a refresh required by an earlier edit.
refresh_endpointPOST to this endpoint after finishing your edits. The full_refresh query parameter selects the required run type. Across multiple edits any full_refresh=true requirement takes priority.
warningsWarnings returned after the experiment update.
code [required]Code that identifies the warning.
detail [required]Explanation of the warning and its effect on the update.
{
"data": {
"attributes": {
"assignments_end_date": "2026-08-15T00:00:00Z",
"assignments_start_date": "2026-08-01T00:00:00Z",
"concluded_at": "2026-08-05T09:30:00Z",
"conclusion": {
"decision_reason": "The primary metric improved without material regressions",
"outcome": "POSITIVE",
"summary": "The treatment improved conversion"
},
"created_at": "2026-08-01T12:00:00Z",
"datadog_flag_configuration": null,
"decision_metrics": [
{
"is_primary": true,
"metric_id": "b1a2c3d4-0000-0000-0000-000000000000"
}
],
"decision_variant_key": "treatment",
"events_end_date": "2026-08-22T00:00:00Z",
"events_start_date": "2026-08-01T00:00:00Z",
"experiment_type": "STANDARD",
"hypothesis": "A clearer checkout button increases purchase conversion",
"name": "Checkout button test",
"pipeline_table_suffix": "a1b2c3d4",
"protocol_id": "e4d5f6a7-0000-0000-0000-000000000000",
"related_links": [
{
"id": "d1d2d3d4-0000-0000-0000-000000000000",
"title": "Experiment design",
"url": "https://docs.example.com/checkout-experiment"
}
],
"results_last_updated": "2026-08-05T09:25:00Z",
"split_by_properties": [],
"status": "DECISION_MADE",
"structured_metadata": [
{
"enum_values": [
"beta"
],
"field_display_name": "Launch stage",
"field_key": "launch_stage",
"field_type": "ENUM"
},
{
"field_display_name": "Notes",
"field_key": "notes",
"field_type": "FREETEXT",
"freetext_value": "Checkout redesign"
}
],
"subject_type_id": "c2b3d4e5-0000-0000-0000-000000000000",
"summary": "The treatment improved conversion",
"tags": [
"growth"
],
"teams": [
"growth"
],
"traffic_exposure": {
"fraction": 1,
"mode": "STATIC"
},
"updated_at": "2026-08-05T09:30:00Z",
"variants": [
{
"is_active": true,
"is_control": true,
"key": "control",
"name": "Control",
"weight": 50
},
{
"is_active": true,
"is_control": false,
"key": "treatment",
"name": "Treatment",
"weight": 50
}
],
"warehouse_exposure_configuration": {
"entry_point": null,
"experiment_key": "checkout_button_test",
"exposure_sql_model_id": "f5e6a7b8-0000-0000-0000-000000000000"
}
},
"id": "550e8400-e29b-41d4-a716-446655440000",
"type": "experiments"
}
}Invalid request: malformed field, a read-only attribute was sent, a referenced ID doesn't exist, an allocation change is not supported after start, or the resulting analysis configuration is invalid. May return multiple errors.
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 (dd-api-key + dd-application-key headers, or a valid user session).
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_experiments_write permission, lacks permission to edit this experiment, or lacks feature-flag and environment read permissions for a Datadog-backed configuration.
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 experiment 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 requested configuration is incompatible with the experiment, or a feature flag change requires explicit reset consent and a complete target configuration (codes: unsupported_configuration, feature_flag_change_requires_reset, or feature_flag_change_requires_complete_configuration).
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"
]
}コード例
# Path parameters
export experiment_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 PATCH "https://api.${DD_SITE}/api/v2/experiments/${experiment_id}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"datadog_flag_configuration": {
"entry_point": null,
"environment_id": "550e8400-e29b-41d4-a716-446655440005",
"feature_flag_id": "550e8400-e29b-41d4-a716-446655440014",
"reset_on_feature_flag_change": true,
"targeting_rules": []
},
"structured_metadata": [
{
"enum_values": [
"general_availability"
],
"field_key": "launch_stage"
}
],
"traffic_exposure": {
"fraction": 1,
"mode": "STATIC"
},
"variants": [
{
"feature_flag_variant_id": "550e8400-e29b-41d4-a716-446655440020",
"is_active": true,
"is_control": true,
"key": "control",
"weight": 50
},
{
"feature_flag_variant_id": "550e8400-e29b-41d4-a716-446655440021",
"is_active": true,
"is_control": false,
"key": "treatment",
"weight": 50
}
]
},
"type": "experiments"
}
}
EOF# Path parameters
export experiment_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 PATCH "https://api.${DD_SITE}/api/v2/experiments/${experiment_id}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"datadog_flag_configuration": {
"entry_point": null,
"environment_id": "550e8400-e29b-41d4-a716-446655440005",
"feature_flag_id": "550e8400-e29b-41d4-a716-446655440014",
"reset_on_feature_flag_change": true,
"targeting_rules": []
},
"structured_metadata": [
{
"enum_values": [
"general_availability"
],
"field_key": "launch_stage"
}
],
"traffic_exposure": {
"fraction": 1,
"mode": "STATIC"
},
"variants": [
{
"feature_flag_variant_id": "550e8400-e29b-41d4-a716-446655440020",
"is_active": true,
"is_control": true,
"key": "control",
"weight": 50
},
{
"feature_flag_variant_id": "550e8400-e29b-41d4-a716-446655440021",
"is_active": true,
"is_control": false,
"key": "treatment",
"weight": 50
}
]
},
"type": "experiments"
}
}
EOF# Path parameters
export experiment_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 PATCH "https://api.${DD_SITE}/api/v2/experiments/${experiment_id}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"datadog_flag_configuration": {
"entry_point": null,
"environment_id": "550e8400-e29b-41d4-a716-446655440005",
"feature_flag_id": "550e8400-e29b-41d4-a716-446655440014",
"reset_on_feature_flag_change": true,
"targeting_rules": []
},
"structured_metadata": [
{
"enum_values": [
"general_availability"
],
"field_key": "launch_stage"
}
],
"traffic_exposure": {
"fraction": 1,
"mode": "STATIC"
},
"variants": [
{
"feature_flag_variant_id": "550e8400-e29b-41d4-a716-446655440020",
"is_active": true,
"is_control": true,
"key": "control",
"weight": 50
},
{
"feature_flag_variant_id": "550e8400-e29b-41d4-a716-446655440021",
"is_active": true,
"is_control": false,
"key": "treatment",
"weight": 50
}
]
},
"type": "experiments"
}
}
EOF# Path parameters
export experiment_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 PATCH "https://api.${DD_SITE}/api/v2/experiments/${experiment_id}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"datadog_flag_configuration": {
"entry_point": null,
"environment_id": "550e8400-e29b-41d4-a716-446655440005",
"feature_flag_id": "550e8400-e29b-41d4-a716-446655440014",
"reset_on_feature_flag_change": true,
"targeting_rules": []
},
"structured_metadata": [
{
"enum_values": [
"general_availability"
],
"field_key": "launch_stage"
}
],
"traffic_exposure": {
"fraction": 1,
"mode": "STATIC"
},
"variants": [
{
"feature_flag_variant_id": "550e8400-e29b-41d4-a716-446655440020",
"is_active": true,
"is_control": true,
"key": "control",
"weight": 50
},
{
"feature_flag_variant_id": "550e8400-e29b-41d4-a716-446655440021",
"is_active": true,
"is_control": false,
"key": "treatment",
"weight": 50
}
]
},
"type": "experiments"
}
}
EOF# Path parameters
export experiment_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 PATCH "https://api.${DD_SITE}/api/v2/experiments/${experiment_id}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"datadog_flag_configuration": {
"entry_point": null,
"environment_id": "550e8400-e29b-41d4-a716-446655440005",
"feature_flag_id": "550e8400-e29b-41d4-a716-446655440014",
"reset_on_feature_flag_change": true,
"targeting_rules": []
},
"structured_metadata": [
{
"enum_values": [
"general_availability"
],
"field_key": "launch_stage"
}
],
"traffic_exposure": {
"fraction": 1,
"mode": "STATIC"
},
"variants": [
{
"feature_flag_variant_id": "550e8400-e29b-41d4-a716-446655440020",
"is_active": true,
"is_control": true,
"key": "control",
"weight": 50
},
{
"feature_flag_variant_id": "550e8400-e29b-41d4-a716-446655440021",
"is_active": true,
"is_control": false,
"key": "treatment",
"weight": 50
}
]
},
"type": "experiments"
}
}
EOF# Path parameters
export experiment_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 PATCH "https://api.${DD_SITE}/api/v2/experiments/${experiment_id}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"datadog_flag_configuration": {
"entry_point": null,
"environment_id": "550e8400-e29b-41d4-a716-446655440005",
"feature_flag_id": "550e8400-e29b-41d4-a716-446655440014",
"reset_on_feature_flag_change": true,
"targeting_rules": []
},
"structured_metadata": [
{
"enum_values": [
"general_availability"
],
"field_key": "launch_stage"
}
],
"traffic_exposure": {
"fraction": 1,
"mode": "STATIC"
},
"variants": [
{
"feature_flag_variant_id": "550e8400-e29b-41d4-a716-446655440020",
"is_active": true,
"is_control": true,
"key": "control",
"weight": 50
},
{
"feature_flag_variant_id": "550e8400-e29b-41d4-a716-446655440021",
"is_active": true,
"is_control": false,
"key": "treatment",
"weight": 50
}
]
},
"type": "experiments"
}
}
EOF# Path parameters
export experiment_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 PATCH "https://api.${DD_SITE}/api/v2/experiments/${experiment_id}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"datadog_flag_configuration": {
"entry_point": null,
"environment_id": "550e8400-e29b-41d4-a716-446655440005",
"feature_flag_id": "550e8400-e29b-41d4-a716-446655440014",
"reset_on_feature_flag_change": true,
"targeting_rules": []
},
"structured_metadata": [
{
"enum_values": [
"general_availability"
],
"field_key": "launch_stage"
}
],
"traffic_exposure": {
"fraction": 1,
"mode": "STATIC"
},
"variants": [
{
"feature_flag_variant_id": "550e8400-e29b-41d4-a716-446655440020",
"is_active": true,
"is_control": true,
"key": "control",
"weight": 50
},
{
"feature_flag_variant_id": "550e8400-e29b-41d4-a716-446655440021",
"is_active": true,
"is_control": false,
"key": "treatment",
"weight": 50
}
]
},
"type": "experiments"
}
}
EOF# Path parameters
export experiment_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 PATCH "https://api.${DD_SITE}/api/v2/experiments/${experiment_id}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"datadog_flag_configuration": {
"entry_point": null,
"environment_id": "550e8400-e29b-41d4-a716-446655440005",
"feature_flag_id": "550e8400-e29b-41d4-a716-446655440014",
"reset_on_feature_flag_change": true,
"targeting_rules": []
},
"structured_metadata": [
{
"enum_values": [
"general_availability"
],
"field_key": "launch_stage"
}
],
"traffic_exposure": {
"fraction": 1,
"mode": "STATIC"
},
"variants": [
{
"feature_flag_variant_id": "550e8400-e29b-41d4-a716-446655440020",
"is_active": true,
"is_control": true,
"key": "control",
"weight": 50
},
{
"feature_flag_variant_id": "550e8400-e29b-41d4-a716-446655440021",
"is_active": true,
"is_control": false,
"key": "treatment",
"weight": 50
}
]
},
"type": "experiments"
}
}
EOF# Path parameters
export experiment_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 PATCH "https://api.${DD_SITE}/api/v2/experiments/${experiment_id}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"datadog_flag_configuration": {
"entry_point": null,
"environment_id": "550e8400-e29b-41d4-a716-446655440005",
"feature_flag_id": "550e8400-e29b-41d4-a716-446655440014",
"reset_on_feature_flag_change": true,
"targeting_rules": []
},
"structured_metadata": [
{
"enum_values": [
"general_availability"
],
"field_key": "launch_stage"
}
],
"traffic_exposure": {
"fraction": 1,
"mode": "STATIC"
},
"variants": [
{
"feature_flag_variant_id": "550e8400-e29b-41d4-a716-446655440020",
"is_active": true,
"is_control": true,
"key": "control",
"weight": 50
},
{
"feature_flag_variant_id": "550e8400-e29b-41d4-a716-446655440021",
"is_active": true,
"is_control": false,
"key": "treatment",
"weight": 50
}
]
},
"type": "experiments"
}
}
EOF// Patch experiment 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() {
// there is a valid "experiment" in the system
ExperimentDataID := uuid.MustParse(os.Getenv("EXPERIMENT_DATA_ID"))
body := datadogV2.ExperimentsPatchExperimentV2Request{
Data: datadogV2.ExperimentsPatchExperimentV2RequestData{
Type: datadogV2.EXPERIMENTSPATCHEXPERIMENTV2RESPONSEDATATYPE_EXPERIMENTS,
Attributes: &datadogV2.ExperimentsPatchExperimentV2RequestDataAttributes{
Name: datadog.PtrString("ex-14bb9543f523edde updated"),
},
},
}
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.PatchExperiment(ctx, ExperimentDataID, body)
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `ExperimentsApi.PatchExperiment`: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
responseContent, _ := json.MarshalIndent(resp, "", " ")
fmt.Fprintf(os.Stdout, "Response from `ExperimentsApi.PatchExperiment`:\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"// Patch experiment 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.ExperimentsPatchExperimentV2Request;
import com.datadog.api.client.v2.model.ExperimentsPatchExperimentV2RequestData;
import com.datadog.api.client.v2.model.ExperimentsPatchExperimentV2RequestDataAttributes;
import com.datadog.api.client.v2.model.ExperimentsPatchExperimentV2Response;
import com.datadog.api.client.v2.model.ExperimentsPatchExperimentV2ResponseDataType;
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);
// there is a valid "experiment" in the system
UUID EXPERIMENT_DATA_ID = null;
try {
EXPERIMENT_DATA_ID = UUID.fromString(System.getenv("EXPERIMENT_DATA_ID"));
} catch (IllegalArgumentException e) {
System.err.println("Error parsing UUID: " + e.getMessage());
}
ExperimentsPatchExperimentV2Request body =
new ExperimentsPatchExperimentV2Request()
.data(
new ExperimentsPatchExperimentV2RequestData()
.type(ExperimentsPatchExperimentV2ResponseDataType.EXPERIMENTS)
.attributes(
new ExperimentsPatchExperimentV2RequestDataAttributes()
.name("ex-14bb9543f523edde updated")));
try {
ExperimentsPatchExperimentV2Response result =
apiInstance.patchExperiment(EXPERIMENT_DATA_ID, body);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling ExperimentsApi#patchExperiment");
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""""
Patch experiment 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_patch_experiment_v2_request import ExperimentsPatchExperimentV2Request
from datadog_api_client.v2.model.experiments_patch_experiment_v2_request_data import (
ExperimentsPatchExperimentV2RequestData,
)
from datadog_api_client.v2.model.experiments_patch_experiment_v2_request_data_attributes import (
ExperimentsPatchExperimentV2RequestDataAttributes,
)
from datadog_api_client.v2.model.experiments_patch_experiment_v2_response_data_type import (
ExperimentsPatchExperimentV2ResponseDataType,
)
# there is a valid "experiment" in the system
EXPERIMENT_DATA_ID = environ["EXPERIMENT_DATA_ID"]
body = ExperimentsPatchExperimentV2Request(
data=ExperimentsPatchExperimentV2RequestData(
type=ExperimentsPatchExperimentV2ResponseDataType.EXPERIMENTS,
attributes=ExperimentsPatchExperimentV2RequestDataAttributes(
name="ex-14bb9543f523edde updated",
),
),
)
configuration = Configuration()
configuration.access_token = environ["DD_BEARER_TOKEN"]
with ApiClient(configuration) as api_client:
api_instance = ExperimentsApi(api_client)
response = api_instance.patch_experiment(experiment_id=EXPERIMENT_DATA_ID, 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"# Patch experiment 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
# there is a valid "experiment" in the system
EXPERIMENT_DATA_ID = ENV["EXPERIMENT_DATA_ID"]
body = DatadogAPIClient::V2::ExperimentsPatchExperimentV2Request.new({
data: DatadogAPIClient::V2::ExperimentsPatchExperimentV2RequestData.new({
type: DatadogAPIClient::V2::ExperimentsPatchExperimentV2ResponseDataType::EXPERIMENTS,
attributes: DatadogAPIClient::V2::ExperimentsPatchExperimentV2RequestDataAttributes.new({
name: "ex-14bb9543f523edde updated",
}),
}),
})
p api_instance.patch_experiment(EXPERIMENT_DATA_ID, 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"// Patch experiment returns "OK" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_experiments::ExperimentsAPI;
use datadog_api_client::datadogV2::model::ExperimentsPatchExperimentV2Request;
use datadog_api_client::datadogV2::model::ExperimentsPatchExperimentV2RequestData;
use datadog_api_client::datadogV2::model::ExperimentsPatchExperimentV2RequestDataAttributes;
use datadog_api_client::datadogV2::model::ExperimentsPatchExperimentV2ResponseDataType;
#[tokio::main]
async fn main() {
// there is a valid "experiment" in the system
let experiment_data_id =
uuid::Uuid::parse_str(&std::env::var("EXPERIMENT_DATA_ID").unwrap()).expect("Invalid UUID");
let body = ExperimentsPatchExperimentV2Request::new(
ExperimentsPatchExperimentV2RequestData::new(
ExperimentsPatchExperimentV2ResponseDataType::EXPERIMENTS,
)
.attributes(
ExperimentsPatchExperimentV2RequestDataAttributes::new()
.name("ex-14bb9543f523edde updated".to_string()),
),
);
let configuration = datadog::Configuration::new();
let api = ExperimentsAPI::with_config(configuration);
let resp = api.patch_experiment(experiment_data_id.clone(), 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