Patch a global variable

PATCH https://api.ap1.datadoghq.com/api/v2/synthetics/variables/{variable_id}/jsonpatchhttps://api.ap2.datadoghq.com/api/v2/synthetics/variables/{variable_id}/jsonpatchhttps://api.datadoghq.eu/api/v2/synthetics/variables/{variable_id}/jsonpatchhttps://api.ddog-gov.com/api/v2/synthetics/variables/{variable_id}/jsonpatchhttps://api.us2.ddog-gov.com/api/v2/synthetics/variables/{variable_id}/jsonpatchhttps://api.datadoghq.com/api/v2/synthetics/variables/{variable_id}/jsonpatchhttps://api.us3.datadoghq.com/api/v2/synthetics/variables/{variable_id}/jsonpatchhttps://api.us5.datadoghq.com/api/v2/synthetics/variables/{variable_id}/jsonpatch

Overview

Patch a global variable using JSON Patch (RFC 6902). This endpoint allows partial updates to a global variable by specifying only the fields to modify.

Common operations include:

  • Replace field values: {"op": "replace", "path": "/name", "value": "new_name"}
  • Update nested values: {"op": "replace", "path": "/value/value", "value": "new_value"}
  • Add/update tags: {"op": "add", "path": "/tags/-", "value": "new_tag"}
  • Remove fields: {"op": "remove", "path": "/description"}
This endpoint requires the synthetics_global_variable_write permission.

Arguments

Path Parameters

Name

Type

Description

variable_id [required]

string

The ID of the global variable.

Request

Body Data (required)

JSON Patch document with operations to apply.

Expand All

Field

Type

Description

data [required]

object

Data object for a JSON Patch request on a Synthetic global variable.

attributes

object

Attributes for a JSON Patch request on a Synthetic global variable.

json_patch

[object]

JSON Patch operations following RFC 6902.

op [required]

enum

The operation to perform. Allowed enum values: add,remove,replace,move,copy,test

path [required]

string

A JSON Pointer path (e.g., "/name", "/value/secure").

value

The value to use for the operation (not applicable for "remove" and "test" operations).

type

enum

Global variable JSON Patch type. Allowed enum values: global_variables_json_patch

{
  "data": {
    "attributes": {
      "json_patch": [
        {
          "op": "add",
          "path": "/name",
          "value": "undefined"
        }
      ]
    },
    "type": "string"
  }
}

Response

OK

Global variable response.

Expand All

Field

Type

Description

data

object

Synthetics global variable data. Wrapper around the global variable object.

attributes

object

Synthetic global variable.

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.

id

string

Global variable identifier.

type

enum

Global variable type. Allowed enum values: global_variables

{
  "data": {
    "attributes": {
      "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"
      }
    },
    "id": "string",
    "type": "string"
  }
}

Bad Request

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

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

Not Found

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

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

Too many requests

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

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

Code Example

                  ## default
# 

# Path parameters
export variable_id="CHANGE_ME"
# Curl command
curl -X PATCH "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/v2/synthetics/variables/${variable_id}/jsonpatch" \ -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 { "data": { "attributes": { "json_patch": [ { "op": "add", "path": "/name" } ] }, "type": "global_variables_json_patch" } } EOF
"""
Patch a global variable returns "OK" response
"""

from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.synthetics_api import SyntheticsApi
from datadog_api_client.v2.model.global_variable_json_patch_request import GlobalVariableJsonPatchRequest
from datadog_api_client.v2.model.global_variable_json_patch_request_data import GlobalVariableJsonPatchRequestData
from datadog_api_client.v2.model.global_variable_json_patch_request_data_attributes import (
    GlobalVariableJsonPatchRequestDataAttributes,
)
from datadog_api_client.v2.model.global_variable_json_patch_type import GlobalVariableJsonPatchType
from datadog_api_client.v2.model.json_patch_operation import JsonPatchOperation
from datadog_api_client.v2.model.json_patch_operation_op import JsonPatchOperationOp

body = GlobalVariableJsonPatchRequest(
    data=GlobalVariableJsonPatchRequestData(
        attributes=GlobalVariableJsonPatchRequestDataAttributes(
            json_patch=[
                JsonPatchOperation(
                    op=JsonPatchOperationOp.ADD,
                    path="/name",
                ),
            ],
        ),
        type=GlobalVariableJsonPatchType.GLOBAL_VARIABLES_JSON_PATCH,
    ),
)

configuration = Configuration()
with ApiClient(configuration) as api_client:
    api_instance = SyntheticsApi(api_client)
    response = api_instance.patch_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="<API-KEY>" DD_APP_KEY="<APP-KEY>" python3 "example.py"
# Patch a global variable returns "OK" response

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

body = DatadogAPIClient::V2::GlobalVariableJsonPatchRequest.new({
  data: DatadogAPIClient::V2::GlobalVariableJsonPatchRequestData.new({
    attributes: DatadogAPIClient::V2::GlobalVariableJsonPatchRequestDataAttributes.new({
      json_patch: [
        DatadogAPIClient::V2::JsonPatchOperation.new({
          op: DatadogAPIClient::V2::JsonPatchOperationOp::ADD,
          path: "/name",
        }),
      ],
    }),
    type: DatadogAPIClient::V2::GlobalVariableJsonPatchType::GLOBAL_VARIABLES_JSON_PATCH,
  }),
})
p api_instance.patch_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="<API-KEY>" DD_APP_KEY="<APP-KEY>" rb "example.rb"
// Patch 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/datadogV2"
)

func main() {
	body := datadogV2.GlobalVariableJsonPatchRequest{
		Data: datadogV2.GlobalVariableJsonPatchRequestData{
			Attributes: &datadogV2.GlobalVariableJsonPatchRequestDataAttributes{
				JsonPatch: []datadogV2.JsonPatchOperation{
					{
						Op:   datadogV2.JSONPATCHOPERATIONOP_ADD,
						Path: "/name",
					},
				},
			},
			Type: datadogV2.GLOBALVARIABLEJSONPATCHTYPE_GLOBAL_VARIABLES_JSON_PATCH.Ptr(),
		},
	}
	ctx := datadog.NewDefaultContext(context.Background())
	configuration := datadog.NewConfiguration()
	apiClient := datadog.NewAPIClient(configuration)
	api := datadogV2.NewSyntheticsApi(apiClient)
	resp, r, err := api.PatchGlobalVariable(ctx, "variable_id", body)

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

	responseContent, _ := json.MarshalIndent(resp, "", "  ")
	fmt.Fprintf(os.Stdout, "Response from `SyntheticsApi.PatchGlobalVariable`:\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="<API-KEY>" DD_APP_KEY="<APP-KEY>" go run "main.go"
// Patch a global variable returns "OK" response

import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.SyntheticsApi;
import com.datadog.api.client.v2.model.GlobalVariableJsonPatchRequest;
import com.datadog.api.client.v2.model.GlobalVariableJsonPatchRequestData;
import com.datadog.api.client.v2.model.GlobalVariableJsonPatchRequestDataAttributes;
import com.datadog.api.client.v2.model.GlobalVariableJsonPatchType;
import com.datadog.api.client.v2.model.GlobalVariableResponse;
import com.datadog.api.client.v2.model.JsonPatchOperation;
import com.datadog.api.client.v2.model.JsonPatchOperationOp;
import java.util.Collections;

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

    GlobalVariableJsonPatchRequest body =
        new GlobalVariableJsonPatchRequest()
            .data(
                new GlobalVariableJsonPatchRequestData()
                    .attributes(
                        new GlobalVariableJsonPatchRequestDataAttributes()
                            .jsonPatch(
                                Collections.singletonList(
                                    new JsonPatchOperation()
                                        .op(JsonPatchOperationOp.ADD)
                                        .path("/name"))))
                    .type(GlobalVariableJsonPatchType.GLOBAL_VARIABLES_JSON_PATCH));

    try {
      GlobalVariableResponse result = apiInstance.patchGlobalVariable("variable_id", body);
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println("Exception when calling SyntheticsApi#patchGlobalVariable");
      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="<API-KEY>" DD_APP_KEY="<APP-KEY>" java "Example.java"
// Patch a global variable returns "OK" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_synthetics::SyntheticsAPI;
use datadog_api_client::datadogV2::model::GlobalVariableJsonPatchRequest;
use datadog_api_client::datadogV2::model::GlobalVariableJsonPatchRequestData;
use datadog_api_client::datadogV2::model::GlobalVariableJsonPatchRequestDataAttributes;
use datadog_api_client::datadogV2::model::GlobalVariableJsonPatchType;
use datadog_api_client::datadogV2::model::JsonPatchOperation;
use datadog_api_client::datadogV2::model::JsonPatchOperationOp;

#[tokio::main]
async fn main() {
    let body = GlobalVariableJsonPatchRequest::new(
        GlobalVariableJsonPatchRequestData::new()
            .attributes(
                GlobalVariableJsonPatchRequestDataAttributes::new().json_patch(vec![
                    JsonPatchOperation::new(JsonPatchOperationOp::ADD, "/name".to_string()),
                ]),
            )
            .type_(GlobalVariableJsonPatchType::GLOBAL_VARIABLES_JSON_PATCH),
    );
    let configuration = datadog::Configuration::new();
    let api = SyntheticsAPI::with_config(configuration);
    let resp = api
        .patch_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="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo run
/**
 * Patch a global variable returns "OK" response
 */

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

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

const params: v2.SyntheticsApiPatchGlobalVariableRequest = {
  body: {
    data: {
      attributes: {
        jsonPatch: [
          {
            op: "add",
            path: "/name",
          },
        ],
      },
      type: "global_variables_json_patch",
    },
  },
  variableId: "variable_id",
};

apiInstance
  .patchGlobalVariable(params)
  .then((data: v2.GlobalVariableResponse) => {
    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="<API-KEY>" DD_APP_KEY="<APP-KEY>" tsc "example.ts"