Edit a global variable

PUT https://api.ap1.datadoghq.com/api/v1/synthetics/variables/{variable_id}https://api.ap2.datadoghq.com/api/v1/synthetics/variables/{variable_id}https://api.datadoghq.eu/api/v1/synthetics/variables/{variable_id}https://api.ddog-gov.com/api/v1/synthetics/variables/{variable_id}https://api.us2.ddog-gov.com/api/v1/synthetics/variables/{variable_id}https://api.datadoghq.com/api/v1/synthetics/variables/{variable_id}https://api.us3.datadoghq.com/api/v1/synthetics/variables/{variable_id}https://api.us5.datadoghq.com/api/v1/synthetics/variables/{variable_id}

Overview

Edit a Synthetic global variable. This endpoint requires the synthetics_global_variable_write permission.

OAuth apps require the synthetics_global_variable_write authorization scope to access this endpoint.

Arguments

Path Parameters

Name

Type

Description

variable_id [required]

string

The ID of the global variable.

Request

Body Data (required)

Details of the global variable to update.

Expand All

Field

Type

Description

attributes

object

Attributes of the global variable.

restricted_roles

[string]

DEPRECATED: A list of role identifiers that can be pulled from the Roles API, for restricting read and write access. This field is deprecated. Use the restriction policies API to manage permissions.

description [required]

string

Description of the global variable.

id

string

Unique identifier of the global variable.

is_fido

boolean

Determines if the global variable is a FIDO variable.

is_totp

boolean

Determines if the global variable is a TOTP/MFA variable.

name [required]

string

Name of the global variable. Unique across Synthetic global variables.

parse_test_options

object

Parser options to use for retrieving a Synthetic global variable from a Synthetic test. Used in conjunction with parse_test_public_id.

field

string

When type is http_header, name of the header to use to extract the value.

localVariableName

string

When type is local_variable, name of the local variable to use to extract the value.

parser

object

Details of the parser to use for the global variable.

type [required]

enum

Type of parser for a Synthetic global variable from a synthetics test. Allowed enum values: raw,json_path,regex,x_path

value

string

Regex or JSON path used for the parser. Not used with type raw.

type [required]

enum

Type of value to extract from a test for a Synthetic global variable. Allowed enum values: http_body,http_header,http_status_code,local_variable

parse_test_public_id

string

A Synthetic test ID to use as a test to generate the variable value.

tags [required]

[string]

Tags of the global variable.

value

object

Value of the global variable.

options

object

Options for the Global Variable for MFA.

totp_parameters

object

Parameters for the TOTP/MFA variable

digits

int32

Number of digits for the OTP code.

refresh_interval

int32

Interval for which to refresh the token (in seconds).

secure

boolean

Determines if the value of the variable is hidden.

value

string

Value of the global variable. When reading a global variable, the value will not be present if the variable is hidden with the secure property.

{
  "attributes": {
    "restricted_roles": [
      "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    ]
  },
  "description": "Example description",
  "is_fido": false,
  "is_totp": false,
  "name": "MY_VARIABLE",
  "parse_test_options": {
    "field": "content-type",
    "localVariableName": "LOCAL_VARIABLE",
    "parser": {
      "type": "raw",
      "value": "string"
    },
    "type": "http_body"
  },
  "parse_test_public_id": "abc-def-123",
  "tags": [
    "team:front",
    "test:workflow-1"
  ],
  "value": {
    "options": {
      "totp_parameters": {
        "digits": 6,
        "refresh_interval": 30
      }
    },
    "secure": false,
    "value": "example-value"
  }
}

Response

OK

Synthetic global variable.

Expand All

Field

Type

Description

attributes

object

Attributes of the global variable.

restricted_roles

[string]

DEPRECATED: A list of role identifiers that can be pulled from the Roles API, for restricting read and write access. This field is deprecated. Use the restriction policies API to manage permissions.

description [required]

string

Description of the global variable.

id

string

Unique identifier of the global variable.

is_fido

boolean

Determines if the global variable is a FIDO variable.

is_totp

boolean

Determines if the global variable is a TOTP/MFA variable.

name [required]

string

Name of the global variable. Unique across Synthetic global variables.

parse_test_options

object

Parser options to use for retrieving a Synthetic global variable from a Synthetic test. Used in conjunction with parse_test_public_id.

field

string

When type is http_header, name of the header to use to extract the value.

localVariableName

string

When type is local_variable, name of the local variable to use to extract the value.

parser

object

Details of the parser to use for the global variable.

type [required]

enum

Type of parser for a Synthetic global variable from a synthetics test. Allowed enum values: raw,json_path,regex,x_path

value

string

Regex or JSON path used for the parser. Not used with type raw.

type [required]

enum

Type of value to extract from a test for a Synthetic global variable. Allowed enum values: http_body,http_header,http_status_code,local_variable

parse_test_public_id

string

A Synthetic test ID to use as a test to generate the variable value.

tags [required]

[string]

Tags of the global variable.

value [required]

object

Value of the global variable.

options

object

Options for the Global Variable for MFA.

totp_parameters

object

Parameters for the TOTP/MFA variable

digits

int32

Number of digits for the OTP code.

refresh_interval

int32

Interval for which to refresh the token (in seconds).

secure

boolean

Determines if the value of the variable is hidden.

value

string

Value of the global variable. When reading a global variable, the value will not be present if the variable is hidden with the secure property.

{
  "attributes": {
    "restricted_roles": [
      "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    ]
  },
  "description": "Example description",
  "id": "string",
  "is_fido": false,
  "is_totp": false,
  "name": "MY_VARIABLE",
  "parse_test_options": {
    "field": "content-type",
    "localVariableName": "LOCAL_VARIABLE",
    "parser": {
      "type": "raw",
      "value": "string"
    },
    "type": "http_body"
  },
  "parse_test_public_id": "abc-def-123",
  "tags": [
    "team:front",
    "test:workflow-1"
  ],
  "value": {
    "options": {
      "totp_parameters": {
        "digits": 6,
        "refresh_interval": 30
      }
    },
    "secure": false,
    "value": "example-value"
  }
}

Invalid request

Error response object.

Expand All

Field

Type

Description

errors [required]

[string]

Array of errors returned by the API.

{
  "errors": [
    "Bad Request"
  ]
}

Forbidden

Error response object.

Expand All

Field

Type

Description

errors [required]

[string]

Array of errors returned by the API.

{
  "errors": [
    "Bad Request"
  ]
}

Too many requests

Error response object.

Expand All

Field

Type

Description

errors [required]

[string]

Array of errors returned by the API.

{
  "errors": [
    "Bad Request"
  ]
}

Code Example

                  ## default
# 

# Path parameters
export variable_id="CHANGE_ME"
# Curl command
curl -X PUT "https://api.ap1.datadoghq.com"https://api.ap2.datadoghq.com"https://api.datadoghq.eu"https://api.ddog-gov.com"https://api.us2.ddog-gov.com"https://api.datadoghq.com"https://api.us3.datadoghq.com"https://api.us5.datadoghq.com/api/v1/synthetics/variables/${variable_id}" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -H "DD-API-KEY: ${DD_API_KEY}" \ -H "DD-APPLICATION-KEY: ${DD_APP_KEY}" \ -d @- << EOF { "description": "Example description", "name": "MY_VARIABLE", "tags": [ "team:front", "test:workflow-1" ], "value": { "secure": false, "value": "variable-value" } } EOF
"""
Edit a global variable returns "OK" response
"""

from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v1.api.synthetics_api import SyntheticsApi
from datadog_api_client.v1.model.synthetics_global_variable_attributes import SyntheticsGlobalVariableAttributes
from datadog_api_client.v1.model.synthetics_global_variable_parse_test_options import (
    SyntheticsGlobalVariableParseTestOptions,
)
from datadog_api_client.v1.model.synthetics_global_variable_parse_test_options_type import (
    SyntheticsGlobalVariableParseTestOptionsType,
)
from datadog_api_client.v1.model.synthetics_global_variable_parser_type import SyntheticsGlobalVariableParserType
from datadog_api_client.v1.model.synthetics_global_variable_request import SyntheticsGlobalVariableRequest
from datadog_api_client.v1.model.synthetics_global_variable_value import SyntheticsGlobalVariableValue
from datadog_api_client.v1.model.synthetics_restricted_roles import SyntheticsRestrictedRoles
from datadog_api_client.v1.model.synthetics_variable_parser import SyntheticsVariableParser

body = SyntheticsGlobalVariableRequest(
    attributes=SyntheticsGlobalVariableAttributes(
        restricted_roles=SyntheticsRestrictedRoles(
            [
                "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
            ]
        ),
    ),
    description="Example description",
    name="MY_VARIABLE",
    parse_test_options=SyntheticsGlobalVariableParseTestOptions(
        field="content-type",
        local_variable_name="LOCAL_VARIABLE",
        parser=SyntheticsVariableParser(
            type=SyntheticsGlobalVariableParserType.REGEX,
            value=".*",
        ),
        type=SyntheticsGlobalVariableParseTestOptionsType.HTTP_BODY,
    ),
    parse_test_public_id="abc-def-123",
    tags=[
        "team:front",
        "test:workflow-1",
    ],
    value=SyntheticsGlobalVariableValue(
        secure=True,
        value="value",
    ),
)

configuration = Configuration()
with ApiClient(configuration) as api_client:
    api_instance = SyntheticsApi(api_client)
    response = api_instance.edit_global_variable(variable_id="variable_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.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" python3 "example.py"
# Edit a global variable returns "OK" response

require "datadog_api_client"
api_instance = DatadogAPIClient::V1::SyntheticsAPI.new

body = DatadogAPIClient::V1::SyntheticsGlobalVariableRequest.new({
  attributes: DatadogAPIClient::V1::SyntheticsGlobalVariableAttributes.new({
    restricted_roles: [
      "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    ],
  }),
  description: "Example description",
  name: "MY_VARIABLE",
  parse_test_options: DatadogAPIClient::V1::SyntheticsGlobalVariableParseTestOptions.new({
    field: "content-type",
    local_variable_name: "LOCAL_VARIABLE",
    parser: DatadogAPIClient::V1::SyntheticsVariableParser.new({
      type: DatadogAPIClient::V1::SyntheticsGlobalVariableParserType::REGEX,
      value: ".*",
    }),
    type: DatadogAPIClient::V1::SyntheticsGlobalVariableParseTestOptionsType::HTTP_BODY,
  }),
  parse_test_public_id: "abc-def-123",
  tags: [
    "team:front",
    "test:workflow-1",
  ],
  value: DatadogAPIClient::V1::SyntheticsGlobalVariableValue.new({
    secure: true,
    value: "value",
  }),
})
p api_instance.edit_global_variable("variable_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.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" rb "example.rb"
// Edit a global variable 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/datadogV1"
)

func main() {
	body := datadogV1.SyntheticsGlobalVariableRequest{
		Attributes: &datadogV1.SyntheticsGlobalVariableAttributes{
			RestrictedRoles: []string{
				"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
			},
		},
		Description: "Example description",
		Name:        "MY_VARIABLE",
		ParseTestOptions: &datadogV1.SyntheticsGlobalVariableParseTestOptions{
			Field:             datadog.PtrString("content-type"),
			LocalVariableName: datadog.PtrString("LOCAL_VARIABLE"),
			Parser: &datadogV1.SyntheticsVariableParser{
				Type:  datadogV1.SYNTHETICSGLOBALVARIABLEPARSERTYPE_REGEX,
				Value: datadog.PtrString(".*"),
			},
			Type: datadogV1.SYNTHETICSGLOBALVARIABLEPARSETESTOPTIONSTYPE_HTTP_BODY,
		},
		ParseTestPublicId: datadog.PtrString("abc-def-123"),
		Tags: []string{
			"team:front",
			"test:workflow-1",
		},
		Value: &datadogV1.SyntheticsGlobalVariableValue{
			Secure: datadog.PtrBool(true),
			Value:  datadog.PtrString("value"),
		},
	}
	ctx := datadog.NewDefaultContext(context.Background())
	configuration := datadog.NewConfiguration()
	apiClient := datadog.NewAPIClient(configuration)
	api := datadogV1.NewSyntheticsApi(apiClient)
	resp, r, err := api.EditGlobalVariable(ctx, "variable_id", body)

	if err != nil {
		fmt.Fprintf(os.Stderr, "Error when calling `SyntheticsApi.EditGlobalVariable`: %v\n", err)
		fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
	}

	responseContent, _ := json.MarshalIndent(resp, "", "  ")
	fmt.Fprintf(os.Stdout, "Response from `SyntheticsApi.EditGlobalVariable`:\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.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" go run "main.go"
// Edit a global variable returns "OK" response

import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v1.api.SyntheticsApi;
import com.datadog.api.client.v1.model.SyntheticsGlobalVariable;
import com.datadog.api.client.v1.model.SyntheticsGlobalVariableAttributes;
import com.datadog.api.client.v1.model.SyntheticsGlobalVariableParseTestOptions;
import com.datadog.api.client.v1.model.SyntheticsGlobalVariableParseTestOptionsType;
import com.datadog.api.client.v1.model.SyntheticsGlobalVariableParserType;
import com.datadog.api.client.v1.model.SyntheticsGlobalVariableRequest;
import com.datadog.api.client.v1.model.SyntheticsGlobalVariableValue;
import com.datadog.api.client.v1.model.SyntheticsVariableParser;
import java.util.Arrays;
import java.util.Collections;

public class Example {
  public static void main(String[] args) {
    ApiClient defaultClient = ApiClient.getDefaultApiClient();
    SyntheticsApi apiInstance = new SyntheticsApi(defaultClient);

    SyntheticsGlobalVariableRequest body =
        new SyntheticsGlobalVariableRequest()
            .attributes(
                new SyntheticsGlobalVariableAttributes()
                    .restrictedRoles(
                        Collections.singletonList("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")))
            .description("Example description")
            .name("MY_VARIABLE")
            .parseTestOptions(
                new SyntheticsGlobalVariableParseTestOptions()
                    .field("content-type")
                    .localVariableName("LOCAL_VARIABLE")
                    .parser(
                        new SyntheticsVariableParser()
                            .type(SyntheticsGlobalVariableParserType.REGEX)
                            .value(".*"))
                    .type(SyntheticsGlobalVariableParseTestOptionsType.HTTP_BODY))
            .parseTestPublicId("abc-def-123")
            .tags(Arrays.asList("team:front", "test:workflow-1"))
            .value(new SyntheticsGlobalVariableValue().secure(true).value("value"));

    try {
      SyntheticsGlobalVariable result = apiInstance.editGlobalVariable("variable_id", body);
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println("Exception when calling SyntheticsApi#editGlobalVariable");
      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.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" java "Example.java"
// Edit a global variable returns "OK" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI;
use datadog_api_client::datadogV1::model::SyntheticsGlobalVariableAttributes;
use datadog_api_client::datadogV1::model::SyntheticsGlobalVariableParseTestOptions;
use datadog_api_client::datadogV1::model::SyntheticsGlobalVariableParseTestOptionsType;
use datadog_api_client::datadogV1::model::SyntheticsGlobalVariableParserType;
use datadog_api_client::datadogV1::model::SyntheticsGlobalVariableRequest;
use datadog_api_client::datadogV1::model::SyntheticsGlobalVariableValue;
use datadog_api_client::datadogV1::model::SyntheticsVariableParser;

#[tokio::main]
async fn main() {
    let body = SyntheticsGlobalVariableRequest::new(
        "Example description".to_string(),
        "MY_VARIABLE".to_string(),
        vec!["team:front".to_string(), "test:workflow-1".to_string()],
    )
    .attributes(
        SyntheticsGlobalVariableAttributes::new()
            .restricted_roles(vec!["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx".to_string()]),
    )
    .parse_test_options(
        SyntheticsGlobalVariableParseTestOptions::new(
            SyntheticsGlobalVariableParseTestOptionsType::HTTP_BODY,
        )
        .field("content-type".to_string())
        .local_variable_name("LOCAL_VARIABLE".to_string())
        .parser(
            SyntheticsVariableParser::new(SyntheticsGlobalVariableParserType::REGEX)
                .value(".*".to_string()),
        ),
    )
    .parse_test_public_id("abc-def-123".to_string())
    .value(
        SyntheticsGlobalVariableValue::new()
            .secure(true)
            .value("value".to_string()),
    );
    let configuration = datadog::Configuration::new();
    let api = SyntheticsAPI::with_config(configuration);
    let resp = api
        .edit_global_variable("variable_id".to_string(), 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.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo run
/**
 * Edit a global variable returns "OK" response
 */

import { client, v1 } from "@datadog/datadog-api-client";

const configuration = client.createConfiguration();
const apiInstance = new v1.SyntheticsApi(configuration);

const params: v1.SyntheticsApiEditGlobalVariableRequest = {
  body: {
    attributes: {
      restrictedRoles: ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"],
    },
    description: "Example description",
    name: "MY_VARIABLE",
    parseTestOptions: {
      field: "content-type",
      localVariableName: "LOCAL_VARIABLE",
      parser: {
        type: "regex",
        value: ".*",
      },
      type: "http_body",
    },
    parseTestPublicId: "abc-def-123",
    tags: ["team:front", "test:workflow-1"],
    value: {
      secure: true,
      value: "value",
    },
  },
  variableId: "variable_id",
};

apiInstance
  .editGlobalVariable(params)
  .then((data: v1.SyntheticsGlobalVariable) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data)
    );
  })
  .catch((error: any) => console.error(error));

Instructions

First install the library and its dependencies and then save the example to example.ts and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" tsc "example.ts"