# Datadog API Client Rust HTTP client for the [Datadog API](https://docs.datadoghq.com/api/). To submit support or feature requests, please visit [https://www.datadoghq.com/support/](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](#installation) instructions and try the following snippet to validate your Datadog API key: ```rust 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: ```rust configuration.set_auth_key( "apiKeyAuth", APIKey { key: "".to_string(), prefix: "".to_owned(), }, ); configuration.set_auth_key( "appKeyAuth", APIKey { 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: ```rust 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](https://github.com/DataDog/datadog-api-client-rust/blob/1e121063af9e4983a34d1c6185936dda621cad8b/src/datadog/configuration.rs#L223). ### 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: ```rust configuration.set_unstable_operation_enabled("", true) ``` where `` 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