Create a new deployment to apply configuration changes
to a fleet of hosts matching the specified filter query.
This endpoint supports two types of configuration operations:
merge-patch: Merges the provided patch data with the existing configuration file,
creating the file if it doesn’t exist
delete: Removes the specified configuration file from the target hosts
The deployment is created and started automatically. You can specify multiple configuration
operations that will be executed in order on each target host. Use the filter query to target
specific hosts using the Datadog query syntax.
This endpoint requires
all
of the following permissions:
agent_upgrade_write
fleet_policies_write
Request
Body Data (required)
Request payload containing the deployment details.
Attributes for creating a new configuration deployment.
config_operations [required]
[object]
Ordered list of configuration file operations to perform on the target hosts.
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
file_path [required]
string
Absolute path to the target configuration file on the host.
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.
filter_query
string
Query used to filter and select target hosts for the deployment. Uses the Datadog query syntax.
type [required]
enum
The type of deployment resource.
Allowed enum values: deployment
default: deployment
{"data":{"attributes":{"config_operations":[{"file_op":"merge-patch","file_path":"/datadog.yaml","patch":{"apm_config":{"enabled":true},"log_level":"debug","logs_enabled":true}}],"filter_query":"env:prod AND service:web"},"type":"deployment"}}
A deployment that defines automated configuration changes for a fleet of hosts.
attributes [required]
object
Attributes of a deployment in the response.
config_operations
[object]
Ordered list of configuration file operations to perform on the target hosts.
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
file_path [required]
string
Absolute path to the target configuration file on the host.
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.
estimated_end_time_unix
int64
Estimated completion time of the deployment as a Unix timestamp (seconds since epoch).
filter_query
string
Query used to filter and select target hosts for the deployment. Uses the Datadog query syntax.
high_level_status
string
Current high-level status of the deployment (for example, "pending", "running",
"completed", "failed").
hosts
[object]
Paginated list of hosts in this deployment with their individual statuses. Only included
when fetching a single deployment by ID. Use the limit and page query parameters to
navigate through pages. Pagination metadata is included in the response meta.hosts field.
error
string
Error message if the deployment failed on this host.
hostname
string
The hostname of the agent.
status
string
Current deployment status for this specific host.
versions
[object]
List of packages and their versions currently installed on this host.
current_version
string
The current version of the package on the host.
initial_version
string
The initial version of the package on the host before the deployment started.
package_name
string
The name of the package.
target_version
string
The target version that the deployment is attempting to install.
packages
[object]
List of packages to deploy to target hosts. Present only for package upgrade deployments.
name [required]
string
The name of the package to deploy.
version [required]
string
The target version of the package to deploy.
total_hosts
int64
Total number of hosts targeted by this deployment.
id [required]
string
Unique identifier for the deployment.
type [required]
enum
The type of deployment resource.
Allowed enum values: deployment
default: deployment
meta
object
Metadata for a single deployment response, including pagination information for hosts.
hosts
object
Pagination details for the list of hosts in a deployment.
current_page
int64
Current page index (zero-based).
page_size
int64
Number of hosts returned per page.
total_hosts
int64
Total number of hosts in this deployment.
total_pages
int64
Total number of pages available.
{"data":{"attributes":{"config_operations":[{"file_op":"merge-patch","file_path":"/datadog.yaml","patch":{"apm_config":{"enabled":true},"log_level":"debug","logs_enabled":true}}],"estimated_end_time_unix":1699999999,"filter_query":"env:prod AND service:web","high_level_status":"pending","hosts":[{"error":"","hostname":"web-server-01.example.com","status":"succeeded","versions":[{"current_version":"7.51.0","initial_version":"7.51.0","package_name":"datadog-agent","target_version":"7.52.0"}]}],"packages":[{"name":"datadog-agent","version":"7.52.0"}],"total_hosts":42},"id":"aeadc05e-98a8-11ec-ac2c-da7ad0900001","type":"deployment"},"meta":{"hosts":{"current_page":0,"page_size":50,"total_hosts":150,"total_pages":3}}}
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
/**
* Create a configuration deployment returns "CREATED" response
*/import{client,v2}from"@datadog/datadog-api-client";constconfiguration=client.createConfiguration();configuration.unstableOperations["v2.createFleetDeploymentConfigure"]=true;constapiInstance=newv2.FleetAutomationApi(configuration);constparams: v2.FleetAutomationApiCreateFleetDeploymentConfigureRequest={body:{data:{attributes:{configOperations:[{fileOp:"merge-patch",filePath:"/datadog.yaml",patch:{apm_config:"{'enabled': True}",log_level:"debug",logs_enabled:"True",},},],filterQuery:"env:prod AND service:web",},type:"deployment",},},};apiInstance.createFleetDeploymentConfigure(params).then((data: v2.FleetDeploymentResponse)=>{console.log("API called successfully. Returned data: "+JSON.stringify(data));}).catch((error: any)=>console.error(error));