This repository contains a Java API client for the Datadog API. The code is generated using openapi-generator and apigentools.
Building the API client library requires:
- Java 1.8+
- Maven/Gradle
To install the API client library to your local Maven repository, simply execute:
mvn clean install
To deploy it to a remote Maven repository instead, configure the settings of the repository and execute:
mvn clean deploy
Refer to the OSSRH Guide for more information.
Add this dependency to your project's POM:
<dependency>
<groupId>com.datadoghq</groupId>
<artifactId>datadog-api-client</artifactId>
<version>1.2.0</version>
<scope>compile</scope>
</dependency>
See the Releases page for the latest available version.
Add this dependency to your project's build file:
compile "com.datadoghq:datadog-api-client:1.2.0"
See the Releases page for the latest available version.
At first generate the JAR by executing:
mvn clean package
Then manually install the following JARs:
target/datadog-api-client-<VERSION>.jar
target/lib/*.jar
Please follow the installation instruction and execute the following Java code:
import com.datadog.api.v1.client.*;
import com.datadog.api.v1.client.auth.*;
import com.datadog.api.v1.client.model.*;
import com.datadog.api.v1.client.api.AwsIntegrationApi;
public class AwsIntegrationApiExample {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
// Configure the Datadog site to send API calls to
HashMap<String, String> serverVariables = new HashMap<String, String>();
String site = System.getenv("DD_SITE");
if (site != null) {
serverVariables.put("site", site);
defaultClient.setServerVariables(serverVariables);
}
// Configure API key authorization:
HashMap<String, String> secrets = new HashMap<String, String>();
secrets.put("apiKeyAuth", System.getenv("DD_CLIENT_API_KEY"));
secrets.put("appKeyAuth", System.getenv("DD_CLIENT_APP_KEY"));
defaultClient.configureApiKeys(secrets);
AwsIntegrationApi apiInstance = new AwsIntegrationApi(defaultClient);
AWSAccount body = new AWSAccount(); // AWSAccount | AWS request object
try {
AWSAccountCreateResponse result = apiInstance.createAWSAccount(body);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling AwsIntegrationApi#createAWSAccount");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}
All API methods have asynchronous versions returning CompletableFuture
when adding the Async
suffix to their names:
import com.datadog.api.v1.client.ApiClient;
import com.datadog.api.v1.client.Configuration;
import com.datadog.api.v1.client.api.MonitorsApi;
public class ListMonitorsAsyncExample {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
MonitorsApi apiInstance = new MonitorsApi(defaultClient);
apiInstance.listMonitorsAsync().thenApply(monitors -> {
System.out.println(monitors);
return null;
}).exceptionally(error -> {
System.out.println(error);
return null;
});
}
}
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 enable these endpoints:
defaultClient.setUnstableOperationEnabled("<OperationName>", true);
where <OperationName>
is the name of the method used to interact with that endpoint. For example: listSLOCorrection
, or getSLOHistory
When talking to a different server, like the eu
instance, change the serverVariables
on your client:
HashMap<String, String> serverVariables = new HashMap<String, String>();
serverVariables.put("site", "datadoghq.eu");
defaultApiClient.setServerVariables(serverVariables);
If you want to disable GZIP compressed responses, set the compress
flag
on your client:
defaultClient.setCompress(false)
If you want to enable requests logging, set the debugging
flag on your client:
defaultClient.setDebugging(true)
Documentation for API endpoints and models can be found under the api_docs
directory.
Javadoc is available on javadoc.io.
To programmatically defined authorization headers, calls the configureApiKeys
method with a map containing the required secrets for the operations:
HashMap<String, String> secrets = new HashMap<>();
secrets.put("apiKeyAuth", "<YOUR API KEY>");
secrets.put("appKeyAuth", "<YOUR APPLICATION KEY>");
generalApiClient.configureApiKeys(secrets);
It's recommended to create an instance of ApiClient
per thread in a multithreaded environment to avoid any potential issues.