List all deployments

This endpoint is in Preview and may introduce breaking changes. If you have any feedback, contact Datadog support.

GET https://api.ap1.datadoghq.com/api/unstable/fleet/deploymentshttps://api.ap2.datadoghq.com/api/unstable/fleet/deploymentshttps://api.datadoghq.eu/api/unstable/fleet/deploymentshttps://api.ddog-gov.com/api/unstable/fleet/deploymentshttps://api.us2.ddog-gov.com/api/unstable/fleet/deploymentshttps://api.datadoghq.com/api/unstable/fleet/deploymentshttps://api.us3.datadoghq.com/api/unstable/fleet/deploymentshttps://api.us5.datadoghq.com/api/unstable/fleet/deployments

Overview

Retrieve a list of all deployments for fleet automation. Use the page_size and page_offset parameters to paginate results. This endpoint requires the hosts_read permission.

Arguments

Query Strings

Name

Type

Description

page_size

integer

Number of deployments to return per page. Maximum value is 100.

page_offset

integer

Index of the first deployment to return. Use this with page_size to paginate through results.

Response

OK

Response containing a paginated list of deployments.

Expand All

Field

Type

Description

data [required]

[object]

Array of deployments matching the query criteria.

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 the list of deployments, including pagination information.

page

object

Pagination details for the list of deployments.

total_count

int64

Total number of deployments available across all pages.

{
  "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": {
    "page": {
      "total_count": 25
    }
  }
}

Bad Request

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

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

Unauthorized

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

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

Forbidden

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

                  # Curl command
curl -X GET "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/unstable/fleet/deployments" \ -H "Accept: application/json" \ -H "DD-API-KEY: ${DD_API_KEY}" \ -H "DD-APPLICATION-KEY: ${DD_APP_KEY}"
"""
List all deployments returns "OK" response
"""

from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.fleet_automation_api import FleetAutomationApi

configuration = Configuration()
configuration.unstable_operations["list_fleet_deployments"] = True
with ApiClient(configuration) as api_client:
    api_instance = FleetAutomationApi(api_client)
    response = api_instance.list_fleet_deployments()

    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"
# List all deployments returns "OK" response

require "datadog_api_client"
DatadogAPIClient.configure do |config|
  config.unstable_operations["v2.list_fleet_deployments".to_sym] = true
end
api_instance = DatadogAPIClient::V2::FleetAutomationAPI.new
p api_instance.list_fleet_deployments()

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"
// List all deployments 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() {
	ctx := datadog.NewDefaultContext(context.Background())
	configuration := datadog.NewConfiguration()
	configuration.SetUnstableOperationEnabled("v2.ListFleetDeployments", true)
	apiClient := datadog.NewAPIClient(configuration)
	api := datadogV2.NewFleetAutomationApi(apiClient)
	resp, r, err := api.ListFleetDeployments(ctx, *datadogV2.NewListFleetDeploymentsOptionalParameters())

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

	responseContent, _ := json.MarshalIndent(resp, "", "  ")
	fmt.Fprintf(os.Stdout, "Response from `FleetAutomationApi.ListFleetDeployments`:\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"
// List all deployments 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.FleetDeploymentsResponse;

public class Example {
  public static void main(String[] args) {
    ApiClient defaultClient = ApiClient.getDefaultApiClient();
    defaultClient.setUnstableOperationEnabled("v2.listFleetDeployments", true);
    FleetAutomationApi apiInstance = new FleetAutomationApi(defaultClient);

    try {
      FleetDeploymentsResponse result = apiInstance.listFleetDeployments();
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println("Exception when calling FleetAutomationApi#listFleetDeployments");
      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"
// List all deployments returns "OK" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_fleet_automation::FleetAutomationAPI;
use datadog_api_client::datadogV2::api_fleet_automation::ListFleetDeploymentsOptionalParams;

#[tokio::main]
async fn main() {
    let mut configuration = datadog::Configuration::new();
    configuration.set_unstable_operation_enabled("v2.ListFleetDeployments", true);
    let api = FleetAutomationAPI::with_config(configuration);
    let resp = api
        .list_fleet_deployments(ListFleetDeploymentsOptionalParams::default())
        .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
/**
 * List all deployments returns "OK" response
 */

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

const configuration = client.createConfiguration();
configuration.unstableOperations["v2.listFleetDeployments"] = true;
const apiInstance = new v2.FleetAutomationApi(configuration);

apiInstance
  .listFleetDeployments()
  .then((data: v2.FleetDeploymentsResponse) => {
    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"