Skip to content

DataDog/datadog-api-client-rust

This branch is 1 commit ahead of master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

2111ffd · Apr 18, 2025
Apr 18, 2025
Apr 17, 2025
Apr 18, 2025
Mar 8, 2024
Apr 18, 2025
Apr 18, 2025
Apr 18, 2025
Mar 28, 2024
Apr 11, 2024
Apr 14, 2025
Mar 8, 2024
Apr 14, 2025
Mar 8, 2024
Jul 17, 2023
Apr 4, 2025
Mar 11, 2024
Sep 25, 2024
Apr 16, 2024
Jan 17, 2024
Dec 12, 2024
Apr 11, 2024
Aug 20, 2024
Mar 28, 2024
Dec 11, 2023

Repository files navigation

Datadog API Client

Rust HTTP client for the Datadog API.

To submit support or feature requests, please visit https://www.datadoghq.com/support/

Overview

This API client was generated from Datadog's public OpenAPI specs. Generator code and templates can be found in the repository's .generator/ folder.

Installation

Run cargo add datadog-api-client or add the following to Cargo.toml under [dependencies]:

datadog-api-client = "0"

Getting Started

Please follow the installation instructions and try the following snippet to validate your Datadog API key:

use datadog_api_client::datadog::Configuration;
use datadog_api_client::datadogV1::api_authentication::AuthenticationAPI;

#[tokio::main]
async fn main() {
    let configuration = Configuration::new();
    let api = AuthenticationAPI::with_config(configuration);
    let resp = api.validate().await;
    if let Ok(value) = resp {
        println!("{:#?}", value);
    } else {
        println!("{:#?}", resp.unwrap_err());
    }
}

Example snippets for every callable endpoint can be found in the repository's /examples/ directory.

Authentication

By default the library will use the DD_API_KEY and DD_APP_KEY environment variables to authenticate against the Datadog API.
To provide your own set of credentials, you need to set some keys on the configuration:

configuration.set_auth_key(
    "apiKeyAuth",
    APIKey {
        key: "<DD-API-KEY>".to_string(),
        prefix: "".to_owned(),
    },
);
configuration.set_auth_key(
    "appKeyAuth",
    APIKey {
        key: "<DD-APP-KEY>".to_string(),
        prefix: "".to_owned(),
    },
);

Datacenter Selection

By default the library will use the US1 Datadog datacenter, at datadoghq.com. To change this, we expose OpenAPI-style server index and server variable fields. For example, to switch the target datacenter to the EU datacenter, you can set the following values on the configuration object:

configuration.server_index = 0;
configuration.server_variables.insert("site".into(), "datadoghq.eu".into());

Alternatively, you can set the environment variable DD_SITE=datadoghq.eu to achieve the same result.

For a list of sites and alternative server URL schemes, you can refer to the code here.

Unstable Endpoints

This client includes access to Datadog API endpoints while they are in an unstable state and may undergo breaking changes. An extra configuration step is required to use these endpoints:

configuration.set_unstable_operation_enabled("<OPERATION_NAME>", true)

where <OPERATION_NAME> is the API version and name of the method used to interact with that endpoint. For example: v2.list_incidents, or v2.query_timeseries_data

Optional Features

  • native-tls (enabled by default): Enables TLS functionality using the native-tls crate.
  • rustls-tls: Enables TLS functionality using the alternative rustls crate.

Contributing

As most of the code in this repository is generated, we will only accept PRs for files that are not modified by our code-generation machinery (changes to the generated files would get overwritten). We happily accept contributions to files that are not autogenerated, such as tests and development tooling.

Author

support@datadoghq.com

About

Rust client for the Datadog API

Resources

License

Apache-2.0, Unknown licenses found

Licenses found

Apache-2.0
LICENSE
Unknown
license-tool.toml

Stars

Watchers

Forks

Contributors 14

Languages