Git Product home page Git Product logo

datadog-api-client-java's Introduction

datadog-api-client-java

This repository contains a Java API client for the Datadog API. The code is generated using openapi-generator and apigentools.

Requirements

Building the API client library requires:

  1. Java 1.8+
  2. Maven/Gradle

Installation

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.

Maven users

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.

Gradle users

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.

Others

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

Getting Started

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();
        }
    }
}

Asynchronous support

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;
    });
  }
}

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 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

Changing Server

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);

Disable compressed payloads

If you want to disable GZIP compressed responses, set the compress flag on your client:

defaultClient.setCompress(false)

Enable requests logging

If you want to enable requests logging, set the debugging flag on your client:

defaultClient.setDebugging(true)

Documentation for API Endpoints and Models

Documentation for API endpoints and models can be found under the api_docs directory.

Javadoc is available on javadoc.io.

Documentation for Authorization

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);

Recommendation

It's recommended to create an instance of ApiClient per thread in a multithreaded environment to avoid any potential issues.

Author

[email protected]

datadog-api-client-java's People

Contributors

agilob avatar api-clients-generation-pipeline[bot] avatar bgong-mdsol avatar borsch avatar burberius avatar davidwcarlson avatar dependabot[bot] avatar hugo-ma-alves avatar jimschubert avatar jirikuncar avatar jmini avatar jorgerod avatar joschi avatar kiran-sivakumar avatar marcoreni avatar matiasdwek avatar mosheelisha avatar nmuesch avatar nouemankhal avatar ravisankar-challa avatar reinhard-ptv avatar saigiridhar21 avatar sebastien-rosset avatar skarimo avatar spacether avatar therve avatar tobymurray avatar viclovsky avatar wing328 avatar zippolyte avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.