Rust HTTP client for the Datadog API.
To submit support or feature requests, please visit https://www.datadoghq.com/support/
This API client was generated from Datadog's public OpenAPI specs. Generator code and templates can be found in the repository's .generator/
folder.
Run cargo add datadog-api-client
or add the following to Cargo.toml
under [dependencies]
:
datadog-api-client = "0"
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.
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(),
},
);
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
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.