---
title: 설정 및 배포 만들기
description: 새 배포를 생성하여 구성 변경 사항을 지정된 필터 쿼리와 일치하는 호스트 플릿에 적용합니다.
breadcrumbs: 문서 > API > 설정 및 배포 만들기
---

> For the complete documentation index, see [llms.txt](https://dnd37xeb23o8n.cloudfront.net/jen.gilbert/astro-base/llms.txt).

# 설정 및 배포 만들기

## v2 (latest)

| Datadog site      | API endpoint                                                          |
| ----------------- | --------------------------------------------------------------------- |
| app.datadoghq.com | POST https://api.datadoghq.com/api/v2/fleet/deployments/configure     |
| us3.datadoghq.com | POST https://api.us3.datadoghq.com/api/v2/fleet/deployments/configure |
| us5.datadoghq.com | POST https://api.us5.datadoghq.com/api/v2/fleet/deployments/configure |
| app.datadoghq.eu  | POST https://api.datadoghq.eu/api/v2/fleet/deployments/configure      |
| ap1.datadoghq.com | POST https://api.ap1.datadoghq.com/api/v2/fleet/deployments/configure |
| ap2.datadoghq.com | POST https://api.ap2.datadoghq.com/api/v2/fleet/deployments/configure |
| uk1.datadoghq.com | POST https://api.uk1.datadoghq.com/api/v2/fleet/deployments/configure |
| app.ddog-gov.com  | POST https://api.ddog-gov.com/api/v2/fleet/deployments/configure      |
| us2.ddog-gov.com  | POST https://api.us2.ddog-gov.com/api/v2/fleet/deployments/configure  |

### Overview

새 배포를 생성하여 구성 변경 사항을
지정된 필터 쿼리와 일치하는 호스트 플릿에 적용합니다.

이 엔드포인트는 두 가지 유형의 다음 구성 작업을 지원합니다.

- `merge-patch`: 제공된 패치 데이터를 기존 구성 파일과 병합하고
  파일이 없는 경우 파일을 생성합니다.
- `delete`: 대상 호스트에서 지정된 구성 파일을 제거합니다.

`target_packages`를 필요시 사용하여 특정 패키지 버전에만 구성 변경 사항을 적용할 수 있습니다.

배포가 자동으로 생성되고 시작됩니다. 여러 구성 작업을 지정하여
각 대상 호스트에서 순서대로 실행할 수 있습니다. 필터 쿼리를 사용하여
Datadog 쿼리 구문으로 특정 호스트를 대상으로 지정합니다.

`dry_run`을 `true`로 설정하여 구성을 검증하고 아무것도 배포하지 않은 상태에서 대상 호스트 및 패키지를 확인합니다. 드라이 런은 배포를 생성하고 시작하는 대신 검증 결과와 함께 200을 반환합니다.

`filter_query` 또는 `config_operations`가 누락되었거나, 대상 패키지에 이름이나 버전이 없거나 확인할 수 없거나, 구성 검증에 실패하거나, 필터 쿼리가 배포 대상 호스트와 일치하지 않는 경우 400을 반환합니다.

This endpoint requires all of the following permissions:

- `agent_upgrade_write`
- `fleet_policies_write`

### Request

#### Body Data (required)

배포 세부 정보가 포함된 요청 페이로드입니다.

{% tabs %}
{% tab label="Model" %}
| Parent field      | Field                          | Type     | Description                                                                                                                                                                                                                                                                                                                                                                                                        |
| ----------------- | ------------------------------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|                   | data [*required*]              | object   | 새 v2 구성 배포를 생성하기 위한 요청 페이로드입니다.                                                                                                                                                                                                                                                                                                                                                                                    |
| data              | attributes [*required*]        | object   | Attributes for creating a new v2 configuration deployment.                                                                                                                                                                                                                                                                                                                                                         |
| attributes        | config_operations [*required*] | [object] | Ordered list of configuration file operations to perform on the target hosts.                                                                                                                                                                                                                                                                                                                                      |
| config_operations | file_op [*required*]           | enum     | Type of file operation to perform on the target configuration file. - `merge-patch`: Merges the provided patch data with the existing configuration file. Creates the file if it doesn't exist. - `delete`: Removes the specified configuration file from the target hosts. Allowed enum values: `merge-patch`, `delete`.                                                                                          |
| config_operations | file_path [*required*]         | string   | Absolute path to the target configuration file on the host.                                                                                                                                                                                                                                                                                                                                                        |
| config_operations | patch                          | object   | Patch data in JSON format to apply to the configuration file. When using `merge-patch`, this object is merged with the existing configuration, allowing you to add, update, or override specific fields without replacing the entire file. The structure must match the target configuration file format (for example, YAML structure for Datadog Agent config). Not applicable when using the `delete` operation. |
| attributes        | dry_run                        | boolean  | Set to `true` to validate the configuration and resolve target hosts and packages without deploying anything. Returns a 200 with the validation result instead of creating and starting a real deployment.                                                                                                                                                                                                         |
| attributes        | filter_query [*required*]      | string   | Query used to filter and select target hosts for the deployment. Uses the Datadog query syntax.                                                                                                                                                                                                                                                                                                                    |
| attributes        | target_packages                | [object] | List of packages and their target versions to additionally deploy alongside the configuration change.                                                                                                                                                                                                                                                                                                              |
| target_packages   | apm_instrumentation            | string   | APM auto-instrumentation mode to enable for this package, if applicable.                                                                                                                                                                                                                                                                                                                                           |
| target_packages   | name [*required*]              | string   | The name of the package to deploy.                                                                                                                                                                                                                                                                                                                                                                                 |
| target_packages   | version [*required*]           | string   | The target version of the package to deploy.                                                                                                                                                                                                                                                                                                                                                                       |
| data              | type [*required*]              | enum     | The type of deployment resource. Allowed enum values: `deployment`. Default: `deployment`.                                                                                                                                                                                                                                                                                                                         |
{% /tab %}

{% tab label="Example" %}
```json
{
  "data": {
    "attributes": {
      "config_operations": [
        {
          "file_op": "merge-patch",
          "file_path": "/datadog.yaml",
          "patch": {
            "apm_config": {
              "enabled": true
            },
            "log_level": "debug",
            "logs_enabled": true
          }
        }
      ],
      "dry_run": false,
      "filter_query": "env:prod AND service:web",
      "target_packages": [
        {
          "apm_instrumentation": "host",
          "name": "datadog-agent",
          "version": "7.52.0"
        }
      ]
    },
    "type": "deployment"
  }
}
```
{% /tab %}
{% /tabs %}

### Response

{% tabs %}
{% tab label="200" %}
OK

{% tabs %}
{% tab label="Model" %}
Response containing the result of a configuration deployment dry run.

| Parent field         | Field                    | Type    | Description                                                                                                                                               |
| -------------------- | ------------------------ | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
|                      | data [*required*]        | object  | The result of a configuration deployment dry run.                                                                                                         |
| data                 | attributes [*required*]  | object  | Attributes of a configuration deployment dry-run response.                                                                                                |
| attributes           | dry_run                  | object  | Validation result of a configuration deployment dry run.                                                                                                  |
| dry_run              | config_validated         | boolean | Whether the configuration passed schema validation.                                                                                                       |
| dry_run              | non_upgradable_by_reason | object  | Breakdown of ineligible host counts by reason. Only includes reasons with a non-zero count. Absent from the response when no targeted host is ineligible. |
| additionalProperties | <any-key>                | int64   |                                                                                                                                                           |
| dry_run              | non_upgradable_hosts     | int64   | Number of targeted hosts that are not eligible to receive this configuration.                                                                             |
| attributes           | query                    | string  | Query used to filter and select target hosts for the deployment.                                                                                          |
| attributes           | total_hosts              | int64   | Total number of hosts targeted by this deployment.                                                                                                        |
| data                 | id [*required*]          | string  | Always `"dry-run"` for a dry-run response. Does not identify a real deployment and cannot be used to fetch a deployment by ID.                            |
| data                 | type [*required*]        | enum    | The type of deployment resource. Allowed enum values: `deployment`. Default: `deployment`.                                                                |
{% /tab %}

{% tab label="Example" %}
```json
{
  "data": {
    "attributes": {
      "dry_run": {
        "config_validated": true,
        "non_upgradable_by_reason": {
          "<any-key>": "integer"
        },
        "non_upgradable_hosts": 0
      },
      "query": "env:prod AND service:web",
      "total_hosts": 42
    },
    "id": "dry-run",
    "type": "deployment"
  }
}
```
{% /tab %}
{% /tabs %}
{% /tab %}

{% tab label="201" %}
CREATED

{% tabs %}
{% tab label="Model" %}
Response containing the newly created deployment.

| Parent field      | Field                   | Type     | Description                                                                                                                                                                                                                                                                                                                                                                                                        |
| ----------------- | ----------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|                   | data [*required*]       | object   | A deployment in the v2 API response.                                                                                                                                                                                                                                                                                                                                                                               |
| data              | attributes [*required*] | object   | Attributes of a deployment in the v2 API response.                                                                                                                                                                                                                                                                                                                                                                 |
| attributes        | author                  | string   | Handle of the user who triggered the deployment.                                                                                                                                                                                                                                                                                                                                                                   |
| attributes        | config_operations       | [object] | Ordered list of configuration file operations applied by this deployment. Absent for package deployments, which have no configuration file operations.                                                                                                                                                                                                                                                             |
| config_operations | file_op [*required*]    | enum     | Type of file operation to perform on the target configuration file. - `merge-patch`: Merges the provided patch data with the existing configuration file. Creates the file if it doesn't exist. - `delete`: Removes the specified configuration file from the target hosts. Allowed enum values: `merge-patch`, `delete`.                                                                                          |
| config_operations | file_path [*required*]  | string   | Absolute path to the target configuration file on the host.                                                                                                                                                                                                                                                                                                                                                        |
| config_operations | patch                   | object   | Patch data in JSON format to apply to the configuration file. When using `merge-patch`, this object is merged with the existing configuration, allowing you to add, update, or override specific fields without replacing the entire file. The structure must match the target configuration file format (for example, YAML structure for Datadog Agent config). Not applicable when using the `delete` operation. |
| attributes        | duration_seconds        | int64    | Duration of the deployment in seconds, computed as `finished_at - started_at`. Zero if the deployment has not finished.                                                                                                                                                                                                                                                                                            |
| attributes        | error_summary           | string   | Top-level error message for the deployment. Populated only when the deployment has failed.                                                                                                                                                                                                                                                                                                                         |
| attributes        | estimated_finished_at   | int64    | Estimated completion time of the deployment as a Unix timestamp. Zero if not available.                                                                                                                                                                                                                                                                                                                            |
| attributes        | finished_at             | int64    | Time the deployment finished as a Unix timestamp. Zero if not yet finished.                                                                                                                                                                                                                                                                                                                                        |
| attributes        | is_scheduled            | boolean  | Whether this deployment was triggered by a schedule (`schedule_id` is non-empty).                                                                                                                                                                                                                                                                                                                                  |
| attributes        | query                   | string   | Query used to filter and select target hosts for the deployment.                                                                                                                                                                                                                                                                                                                                                   |
| attributes        | schedule_id             | string   | Identifier of the schedule that triggered this deployment. Empty if triggered manually.                                                                                                                                                                                                                                                                                                                            |
| attributes        | started_at              | int64    | Time the deployment started as a Unix timestamp. Zero if not yet started.                                                                                                                                                                                                                                                                                                                                          |
| attributes        | status                  | string   | Current high-level status of the deployment (for example, "pending", "running", "completed", "failed").                                                                                                                                                                                                                                                                                                            |
| attributes        | target_versions         | [string] | Package versions targeted by this deployment.                                                                                                                                                                                                                                                                                                                                                                      |
| attributes        | total_hosts             | int64    | Total number of hosts targeted by this deployment.                                                                                                                                                                                                                                                                                                                                                                 |
| attributes        | update_type             | string   | Type of update operation performed by this deployment (for example, "update_config_operations", "update_package").                                                                                                                                                                                                                                                                                                 |
| data              | id [*required*]         | string   | Unique identifier for the deployment.                                                                                                                                                                                                                                                                                                                                                                              |
| data              | type [*required*]       | enum     | The type of deployment resource. Allowed enum values: `deployment`. Default: `deployment`.                                                                                                                                                                                                                                                                                                                         |
{% /tab %}

{% tab label="Example" %}
```json
{
  "data": {
    "attributes": {
      "author": "alice@datadoghq.com",
      "config_operations": [
        {
          "file_op": "merge-patch",
          "file_path": "/datadog.yaml",
          "patch": {
            "apm_config": {
              "enabled": true
            },
            "log_level": "debug",
            "logs_enabled": true
          }
        }
      ],
      "duration_seconds": 1000,
      "error_summary": "A host failed to update",
      "estimated_finished_at": 1699999999,
      "finished_at": 0,
      "is_scheduled": true,
      "query": "env:prod AND service:web",
      "schedule_id": "sched-123",
      "started_at": 1699990000,
      "status": "pending",
      "target_versions": [
        "7.52.0"
      ],
      "total_hosts": 42,
      "update_type": "update_config_operations"
    },
    "id": "k7Q-3mX-p9Z",
    "type": "deployment"
  }
}
```
{% /tab %}
{% /tabs %}
{% /tab %}

{% tab label="400" %}
Bad Request

{% tabs %}
{% tab label="Model" %}
API error response.

| Field               | Type     | Description       |
| ------------------- | -------- | ----------------- |
| errors [*required*] | [string] | A list of errors. |
{% /tab %}

{% tab label="Example" %}
```json
{
  "errors": [
    "Bad Request"
  ]
}
```
{% /tab %}
{% /tabs %}
{% /tab %}

{% tab label="401" %}
Unauthorized

{% tabs %}
{% tab label="Model" %}
API error response.

| Field               | Type     | Description       |
| ------------------- | -------- | ----------------- |
| errors [*required*] | [string] | A list of errors. |
{% /tab %}

{% tab label="Example" %}
```json
{
  "errors": [
    "Bad Request"
  ]
}
```
{% /tab %}
{% /tabs %}
{% /tab %}

{% tab label="403" %}
Forbidden

{% tabs %}
{% tab label="Model" %}
API error response.

| Field               | Type     | Description       |
| ------------------- | -------- | ----------------- |
| errors [*required*] | [string] | A list of errors. |
{% /tab %}

{% tab label="Example" %}
```json
{
  "errors": [
    "Bad Request"
  ]
}
```
{% /tab %}
{% /tabs %}
{% /tab %}

{% tab label="429" %}
Too many requests

{% tabs %}
{% tab label="Model" %}
API error response.

| Field               | Type     | Description       |
| ------------------- | -------- | ----------------- |
| errors [*required*] | [string] | A list of errors. |
{% /tab %}

{% tab label="Example" %}
```json
{
  "errors": [
    "Bad Request"
  ]
}
```
{% /tab %}
{% /tabs %}
{% /tab %}
{% /tabs %}

### Code Example

{% tabs %}
{% tab label="Curl" %}
```bash
## default

# Set your Datadog site and credentials
export DD_SITE="datadoghq.com" # Or us3.datadoghq.com, us5.datadoghq.com, datadoghq.eu, ap1.datadoghq.com, ap2.datadoghq.com, uk1.datadoghq.com, ddog-gov.com, us2.ddog-gov.com
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"

curl -X POST "https://api.${DD_SITE}/api/v2/fleet/deployments/configure" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
  "data": {
    "attributes": {
      "config_operations": [
        {
          "file_op": "merge-patch",
          "file_path": "/datadog.yaml",
          "patch": {
            "apm_config": {
              "enabled": true
            },
            "log_level": "info",
            "logs_enabled": true
          }
        }
      ],
      "filter_query": "env:prod AND datacenter:us-east-1"
    },
    "type": "deployment"
  }
}
EOF

## Dry run

# Set your Datadog site and credentials
export DD_SITE="datadoghq.com" # Or us3.datadoghq.com, us5.datadoghq.com, datadoghq.eu, ap1.datadoghq.com, ap2.datadoghq.com, uk1.datadoghq.com, ddog-gov.com, us2.ddog-gov.com
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"

curl -X POST "https://api.${DD_SITE}/api/v2/fleet/deployments/configure" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
  "data": {
    "attributes": {
      "config_operations": [
        {
          "file_op": "merge-patch",
          "file_path": "/datadog.yaml",
          "patch": {
            "log_level": "info"
          }
        }
      ],
      "dry_run": true,
      "filter_query": "env:prod AND datacenter:us-east-1"
    },
    "type": "deployment"
  }
}
EOF
```
{% /tab %}

{% tab label="Go" %}
```go
// Create a configuration deployment 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.FleetDeploymentConfigureV2CreateRequest{
		Data: datadogV2.FleetDeploymentConfigureV2Create{
			Attributes: datadogV2.FleetDeploymentConfigureV2Attributes{
				ConfigOperations: []datadogV2.FleetDeploymentOperation{
					{
						FileOp:   datadogV2.FLEETDEPLOYMENTFILEOP_MERGE_PATCH,
						FilePath: "/datadog.yaml",
						Patch: map[string]interface{}{
							"log_level": "info",
						},
					},
				},
				DryRun:      datadog.PtrBool(true),
				FilterQuery: "env:prod AND service:example-fleet-automation",
			},
			Type: datadogV2.FLEETDEPLOYMENTRESOURCETYPE_DEPLOYMENT,
		},
	}
	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.NewFleetAutomationApi(apiClient)
	resp, r, err := api.CreateFleetDeploymentConfigureV2(ctx, body)

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

	responseContent, _ := json.MarshalIndent(resp, "", "  ")
	fmt.Fprintf(os.Stdout, "Response from `FleetAutomationApi.CreateFleetDeploymentConfigureV2`:\n%s\n", responseContent)
}
```

#### Instructions

First [install the library and its dependencies](https://dnd37xeb23o8n.cloudfront.net/api/latest.md?code-lang=go) and then save the example to `main.go` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"
```
{% /tab %}

{% tab label="Java" %}
```java
// Create a configuration deployment returns "OK" response

import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.FleetAutomationApi;
import com.datadog.api.client.v2.model.FleetDeploymentConfigureV2Attributes;
import com.datadog.api.client.v2.model.FleetDeploymentConfigureV2Create;
import com.datadog.api.client.v2.model.FleetDeploymentConfigureV2CreateRequest;
import com.datadog.api.client.v2.model.FleetDeploymentConfigureV2DryRunResponse;
import com.datadog.api.client.v2.model.FleetDeploymentFileOp;
import com.datadog.api.client.v2.model.FleetDeploymentOperation;
import com.datadog.api.client.v2.model.FleetDeploymentResourceType;
import java.util.Collections;
import java.util.Map;

public class Example {
  public static void main(String[] args) {
    ApiClient defaultClient = ApiClient.getDefaultApiClient();
    defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN"));
    FleetAutomationApi apiInstance = new FleetAutomationApi(defaultClient);

    FleetDeploymentConfigureV2CreateRequest body =
        new FleetDeploymentConfigureV2CreateRequest()
            .data(
                new FleetDeploymentConfigureV2Create()
                    .attributes(
                        new FleetDeploymentConfigureV2Attributes()
                            .configOperations(
                                Collections.singletonList(
                                    new FleetDeploymentOperation()
                                        .fileOp(FleetDeploymentFileOp.MERGE_PATCH)
                                        .filePath("/datadog.yaml")
                                        .patch(Map.ofEntries(Map.entry("log_level", "info")))))
                            .dryRun(true)
                            .filterQuery("env:prod AND service:example-fleet-automation"))
                    .type(FleetDeploymentResourceType.DEPLOYMENT));

    try {
      FleetDeploymentConfigureV2DryRunResponse result =
          apiInstance.createFleetDeploymentConfigureV2(body);
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println(
          "Exception when calling FleetAutomationApi#createFleetDeploymentConfigureV2");
      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](https://dnd37xeb23o8n.cloudfront.net/api/latest.md?code-lang=java) and then save the example to `Example.java` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"
```
{% /tab %}

{% tab label="Python" %}
```python
"""
Create a configuration deployment returns "OK" response
"""

from os import environ
from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.fleet_automation_api import FleetAutomationApi
from datadog_api_client.v2.model.fleet_deployment_configure_v2_attributes import FleetDeploymentConfigureV2Attributes
from datadog_api_client.v2.model.fleet_deployment_configure_v2_create import FleetDeploymentConfigureV2Create
from datadog_api_client.v2.model.fleet_deployment_configure_v2_create_request import (
    FleetDeploymentConfigureV2CreateRequest,
)
from datadog_api_client.v2.model.fleet_deployment_file_op import FleetDeploymentFileOp
from datadog_api_client.v2.model.fleet_deployment_operation import FleetDeploymentOperation
from datadog_api_client.v2.model.fleet_deployment_resource_type import FleetDeploymentResourceType

body = FleetDeploymentConfigureV2CreateRequest(
    data=FleetDeploymentConfigureV2Create(
        attributes=FleetDeploymentConfigureV2Attributes(
            config_operations=[
                FleetDeploymentOperation(
                    file_op=FleetDeploymentFileOp.MERGE_PATCH,
                    file_path="/datadog.yaml",
                    patch=dict([("log_level", "info")]),
                ),
            ],
            dry_run=True,
            filter_query="env:prod AND service:example-fleet-automation",
        ),
        type=FleetDeploymentResourceType.DEPLOYMENT,
    ),
)

configuration = Configuration()
configuration.access_token = environ["DD_BEARER_TOKEN"]
with ApiClient(configuration) as api_client:
    api_instance = FleetAutomationApi(api_client)
    response = api_instance.create_fleet_deployment_configure_v2(body=body)

    print(response)
```

#### Instructions

First [install the library and its dependencies](https://dnd37xeb23o8n.cloudfront.net/api/latest.md?code-lang=python) and then save the example to `example.py` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"
```
{% /tab %}

{% tab label="Ruby" %}
```ruby
# Create a configuration deployment returns "OK" response

require "datadog_api_client"
DatadogAPIClient.configure do |config|
  config.access_token = ENV["DD_BEARER_TOKEN"]
end
api_instance = DatadogAPIClient::V2::FleetAutomationAPI.new

body = DatadogAPIClient::V2::FleetDeploymentConfigureV2CreateRequest.new({
  data: DatadogAPIClient::V2::FleetDeploymentConfigureV2Create.new({
    attributes: DatadogAPIClient::V2::FleetDeploymentConfigureV2Attributes.new({
      config_operations: [
        DatadogAPIClient::V2::FleetDeploymentOperation.new({
          file_op: DatadogAPIClient::V2::FleetDeploymentFileOp::MERGE_PATCH,
          file_path: "/datadog.yaml",
          patch: {
            "log_level": "info",
          },
        }),
      ],
      dry_run: true,
      filter_query: "env:prod AND service:example-fleet-automation",
    }),
    type: DatadogAPIClient::V2::FleetDeploymentResourceType::DEPLOYMENT,
  }),
})
p api_instance.create_fleet_deployment_configure_v2(body)
```

#### Instructions

First [install the library and its dependencies](https://dnd37xeb23o8n.cloudfront.net/api/latest.md?code-lang=ruby) and then save the example to `example.rb` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"
```
{% /tab %}

{% tab label="Rust" %}
```rust
// Create a configuration deployment returns "OK" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_fleet_automation::FleetAutomationAPI;
use datadog_api_client::datadogV2::model::FleetDeploymentConfigureV2Attributes;
use datadog_api_client::datadogV2::model::FleetDeploymentConfigureV2Create;
use datadog_api_client::datadogV2::model::FleetDeploymentConfigureV2CreateRequest;
use datadog_api_client::datadogV2::model::FleetDeploymentFileOp;
use datadog_api_client::datadogV2::model::FleetDeploymentOperation;
use datadog_api_client::datadogV2::model::FleetDeploymentResourceType;
use serde_json::Value;
use std::collections::BTreeMap;

#[tokio::main]
async fn main() {
    let body = FleetDeploymentConfigureV2CreateRequest::new(FleetDeploymentConfigureV2Create::new(
        FleetDeploymentConfigureV2Attributes::new(
            vec![FleetDeploymentOperation::new(
                FleetDeploymentFileOp::MERGE_PATCH,
                "/datadog.yaml".to_string(),
            )
            .patch(BTreeMap::from([(
                "log_level".to_string(),
                Value::from("info"),
            )]))],
            "env:prod AND service:example-fleet-automation".to_string(),
        )
        .dry_run(true),
        FleetDeploymentResourceType::DEPLOYMENT,
    ));
    let configuration = datadog::Configuration::new();
    let api = FleetAutomationAPI::with_config(configuration);
    let resp = api.create_fleet_deployment_configure_v2(body).await;
    if let Ok(value) = resp {
        println!("{:#?}", value);
    } else {
        println!("{:#?}", resp.unwrap_err());
    }
}
```

#### Instructions

First [install the library and its dependencies](https://dnd37xeb23o8n.cloudfront.net/api/latest.md?code-lang=rust) and then save the example to `src/main.rs` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo run
```
{% /tab %}

{% tab label="TypeScript" %}
```typescript
/**
 * Create a configuration deployment returns "OK" response
 */

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

const configuration = client.createConfiguration({
  authMethods: {
    AuthZ: {
      accessToken: process.env.DD_BEARER_TOKEN as string,
    },
  },
});
const apiInstance = new v2.FleetAutomationApi(configuration);

const params: v2.FleetAutomationApiCreateFleetDeploymentConfigureV2Request = {
  body: {
    data: {
      attributes: {
        configOperations: [
          {
            fileOp: "merge-patch",
            filePath: "/datadog.yaml",
            patch: {
              log_level: "info",
            },
          },
        ],
        dryRun: true,
        filterQuery: "env:prod AND service:example-fleet-automation",
      },
      type: "deployment",
    },
  },
};

apiInstance
  .createFleetDeploymentConfigureV2(params)
  .then((data: v2.FleetDeploymentConfigureV2DryRunResponse) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data)
    );
  })
  .catch((error: any) => console.error(error));
```

#### Instructions

First [install the library and its dependencies](https://dnd37xeb23o8n.cloudfront.net/api/latest.md?code-lang=typescript) and then save the example to `example.ts` and run following commands:

```bash
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"
```
{% /tab %}
{% /tabs %}
