Class ApiClient

java.lang.Object
com.datadog.api.client.ApiClient

@Generated("https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") public class ApiClient extends Object
  • Field Details

    • defaultHeaderMap

      protected Map<String,String> defaultHeaderMap
    • defaultCookieMap

      protected Map<String,String> defaultCookieMap
    • basePath

      protected String basePath
    • userAgent

      protected String userAgent
    • servers

      protected List<ServerConfiguration> servers
    • serverIndex

      protected Integer serverIndex
    • serverVariables

      protected Map<String,String> serverVariables
    • operationServers

      protected Map<String,List<ServerConfiguration>> operationServers
    • operationServerIndex

      protected Map<String,Integer> operationServerIndex
    • operationServerVariables

      protected Map<String,Map<String,String>> operationServerVariables
    • debugging

      protected boolean debugging
    • retry

      protected RetryConfig retry
    • compress

      protected boolean compress
    • clientConfig

      protected org.glassfish.jersey.client.ClientConfig clientConfig
    • connectionTimeout

      protected int connectionTimeout
    • httpClient

      protected jakarta.ws.rs.client.Client httpClient
    • json

      protected JSON json
    • tempFolderPath

      protected String tempFolderPath
    • authentications

      protected Map<String,Authentication> authentications
    • dateFormat

      protected DateFormat dateFormat
    • unstableOperations

      protected final Map<String,Boolean> unstableOperations
    • logger

      protected static final Logger logger
  • Constructor Details

    • ApiClient

      public ApiClient()
      Constructs a new ApiClient with default parameters.
    • ApiClient

      public ApiClient(Map<String,Authentication> authMap)
      Constructs a new ApiClient with the specified authentication parameters.
      Parameters:
      authMap - A hash map containing authentication parameters.
  • Method Details

    • getDefaultApiClient

      public static ApiClient getDefaultApiClient()
      Get the default API client, which would be used when creating API instances without providing an API client.
      Returns:
      Default API client
    • setDefaultApiClient

      public static void setDefaultApiClient(ApiClient apiClient)
      Set the default API client, which would be used when creating API instances without providing an API client.
      Parameters:
      apiClient - API client
    • getOffsetDateTimeFormatter

      public DateTimeFormatter getOffsetDateTimeFormatter()
      Get the date format used to parse/format OffsetDateTime parameters.
      Returns:
      DateTimeFormatter
    • setRetry

      public void setRetry(RetryConfig retry)
      Add custom retry object in the client
      Parameters:
      retry - retry object
    • getRetry

      public RetryConfig getRetry()
      Return the retryConfig object
      Returns:
      retryConfig
    • enableRetry

      public void enableRetry(boolean enableRetry)
      Enable retry directly on the client instead of creating a new retry object
      Parameters:
      enableRetry - bool, enable retry or not
    • setOffsetDateTimeFormatter

      public void setOffsetDateTimeFormatter(DateTimeFormatter offsetDateTimeFormatter)
      Set the date format used to parse/format OffsetDateTime parameters.
      Parameters:
      offsetDateTimeFormatter - DateTimeFormatter
    • formatOffsetDateTime

      public String formatOffsetDateTime(OffsetDateTime offsetDateTime)
      Format the given OffsetDateTime object into string.
      Parameters:
      offsetDateTime - OffsetDateTime
      Returns:
      OffsetDateTime in string format
    • getJSON

      public JSON getJSON()
      Gets the JSON instance to do JSON serialization and deserialization.
      Returns:
      JSON
    • getHttpClient

      public jakarta.ws.rs.client.Client getHttpClient()
    • setHttpClient

      public ApiClient setHttpClient(jakarta.ws.rs.client.Client httpClient)
    • getBasePath

      public String getBasePath()
      Returns the base URL to the location where the OpenAPI document is being served.
      Returns:
      The base URL to the target host.
    • setBasePath

      public ApiClient setBasePath(String basePath)
      Sets the base URL to the location where the OpenAPI document is being served.
      Parameters:
      basePath - The base URL to the target host.
      Returns:
      API client
    • getServers

      public List<ServerConfiguration> getServers()
    • setServers

      public ApiClient setServers(List<ServerConfiguration> servers)
    • getServerIndex

      public Integer getServerIndex()
    • setServerIndex

      public ApiClient setServerIndex(Integer serverIndex)
    • getServerVariables

      public Map<String,String> getServerVariables()
    • setServerVariables

      public ApiClient setServerVariables(Map<String,String> serverVariables)
    • getAuthentications

      public Map<String,Authentication> getAuthentications()
      Get authentications (key: authentication name, value: authentication).
      Returns:
      Map of authentication object
    • getAuthentication

      public Authentication getAuthentication(String authName)
      Get authentication for the given name.
      Parameters:
      authName - The authentication name
      Returns:
      The authentication, null if not found
    • setUsername

      public ApiClient setUsername(String username)
      Helper method to set username for the first HTTP basic authentication.
      Parameters:
      username - Username
      Returns:
      API client
    • setPassword

      public ApiClient setPassword(String password)
      Helper method to set password for the first HTTP basic authentication.
      Parameters:
      password - Password
      Returns:
      API client
    • setApiKey

      public ApiClient setApiKey(String apiKey)
      Helper method to set API key value for the first API key authentication.
      Parameters:
      apiKey - API key
      Returns:
      API client
    • configureApiKeys

      public ApiClient configureApiKeys(Map<String,String> secrets)
      Helper method to configure authentications which respects aliases of API keys.
      Parameters:
      secrets - Hash map from authentication name to its secret.
      Returns:
      API client
    • setApiKeyPrefix

      public ApiClient setApiKeyPrefix(String apiKeyPrefix)
      Helper method to set API key prefix for the first API key authentication.
      Parameters:
      apiKeyPrefix - API key prefix
      Returns:
      API client
    • setBearerToken

      public ApiClient setBearerToken(String bearerToken)
      Helper method to set bearer token for the first Bearer authentication.
      Parameters:
      bearerToken - Bearer token
      Returns:
      API client
    • setAccessToken

      public ApiClient setAccessToken(String accessToken)
      Helper method to set access token for the first OAuth2 authentication.
      Parameters:
      accessToken - Access token
      Returns:
      API client
    • setOauthCredentials

      public ApiClient setOauthCredentials(String clientId, String clientSecret)
      Helper method to set the credentials for the first OAuth2 authentication.
      Parameters:
      clientId - the client ID
      clientSecret - the client secret
      Returns:
      API client
    • setOauthPasswordFlow

      public ApiClient setOauthPasswordFlow(String username, String password)
      Helper method to set the password flow for the first OAuth2 authentication.
      Parameters:
      username - the user name
      password - the user password
      Returns:
      API client
    • setOauthAuthorizationCodeFlow

      public ApiClient setOauthAuthorizationCodeFlow(String code)
      Helper method to set the authorization code flow for the first OAuth2 authentication.
      Parameters:
      code - the authorization code
      Returns:
      API client
    • setOauthScope

      public ApiClient setOauthScope(String scope)
      Helper method to set the scopes for the first OAuth2 authentication.
      Parameters:
      scope - the oauth scope
      Returns:
      API client
    • setUserAgent

      public ApiClient setUserAgent(String userAgent)
      Set the User-Agent header's value (by adding to the default header map).
      Parameters:
      userAgent - Http user agent
      Returns:
      API client
    • getUserAgent

      public String getUserAgent()
      Get the User-Agent header's value.
      Returns:
      User-Agent string
    • setUserAgent

      public ApiClient setUserAgent()
      Set the default User-Agent header's value with telemetry information (by adding to the default header map).
      Returns:
      API client
    • addDefaultHeader

      public ApiClient addDefaultHeader(String key, String value)
      Add a default header.
      Parameters:
      key - The header's key
      value - The header's value
      Returns:
      API client
    • setIsIaC

      public ApiClient setIsIaC(boolean isIaC)
      Set whether this API client is managed by Infrastructure as Code (IaC) tooling. When enabled, the X-Datadog-Managed-By: iac header is sent on every request made through this client (by adding to the default header map).
      Parameters:
      isIaC - Whether calls made with this client originate from IaC tooling
      Returns:
      API client
    • getIsIaC

      public boolean getIsIaC()
      Get whether this API client is managed by Infrastructure as Code (IaC) tooling.
      Returns:
      Whether this client is managed by IaC tooling
    • addDefaultCookie

      public ApiClient addDefaultCookie(String key, String value)
      Add a default cookie.
      Parameters:
      key - The cookie's key
      value - The cookie's value
      Returns:
      API client
    • getClientConfig

      public org.glassfish.jersey.client.ClientConfig getClientConfig()
      Gets the client config.
      Returns:
      Client config
    • setClientConfig

      public ApiClient setClientConfig(org.glassfish.jersey.client.ClientConfig clientConfig)
      Set the client config.
      Parameters:
      clientConfig - Set the client config
      Returns:
      API client
    • isDebugging

      public boolean isDebugging()
      Check that whether debugging is enabled for this API client.
      Returns:
      True if debugging is switched on
    • setDebugging

      public ApiClient setDebugging(boolean debugging)
      Enable/disable debugging for this API client.
      Parameters:
      debugging - To enable (true) or disable (false) debugging
      Returns:
      API client
    • isCompress

      public boolean isCompress()
      Check that whether compress is enabled for this API client.
      Returns:
      True if compress is switched on
    • setCompress

      public ApiClient setCompress(boolean compress)
      Enable/disable compress for this API client.
      Parameters:
      compress - To enable (true) or disable (false) compress
      Returns:
      API client
    • getTempFolderPath

      public String getTempFolderPath()
      The path of temporary folder used to store downloaded files from endpoints with file response. The default value is null, i.e. using the system's default temporary folder.
      Returns:
      Temp folder path
    • setTempFolderPath

      public ApiClient setTempFolderPath(String tempFolderPath)
      Set temp folder path
      Parameters:
      tempFolderPath - Temp folder path
      Returns:
      API client
    • getConnectTimeout

      public int getConnectTimeout()
      Connect timeout (in milliseconds).
      Returns:
      Connection timeout
    • setConnectTimeout

      public ApiClient setConnectTimeout(int connectionTimeout)
      Set the connect timeout (in milliseconds). A value of 0 means no timeout, otherwise values must be between 1 and Integer.MAX_VALUE.
      Parameters:
      connectionTimeout - Connection timeout in milliseconds
      Returns:
      API client
    • getReadTimeout

      public int getReadTimeout()
      read timeout (in milliseconds).
      Returns:
      Read timeout
    • setReadTimeout

      public ApiClient setReadTimeout(int readTimeout)
      Set the read timeout (in milliseconds). A value of 0 means no timeout, otherwise values must be between 1 and Integer.MAX_VALUE.
      Parameters:
      readTimeout - Read timeout in milliseconds
      Returns:
      API client
    • getDateFormat

      public DateFormat getDateFormat()
      Get the date format used to parse/format date parameters.
      Returns:
      Date format
    • setDateFormat

      public ApiClient setDateFormat(DateFormat dateFormat)
      Set the date format used to parse/format date parameters.
      Parameters:
      dateFormat - Date format
      Returns:
      API client
    • getUnstableOperations

      public Set<String> getUnstableOperations()
      Get list of all unstable operations
      Returns:
      set of all unstable operations Ids
    • setUnstableOperationEnabled

      public boolean setUnstableOperationEnabled(String operation, boolean enabled)
      Mark an unstable operation as enabled/disabled.
      Parameters:
      operation - operation Id - this is the name of the method on the API class, e.g. "createFoo"
      enabled - whether to mark the operation as enabled (true) or disabled (false)
      Returns:
      true if the operation is marked as unstable and thus was enabled/disabled, false otherwise
    • isUnstableOperation

      public boolean isUnstableOperation(String operation)
      Determine whether an operation is an unstable operation.
      Parameters:
      operation - operation Id - this is the name of the method on the API class, e.g. "createFoo"
      Returns:
      true if the operation is an unstable operation, false otherwise
    • isUnstableOperationEnabled

      public boolean isUnstableOperationEnabled(String operation)
      Determine whether an unstable operation is enabled.
      Parameters:
      operation - operation Id - this is the name of the method on the API class, e.g. "createFoo"
      Returns:
      true if the operation is unstable and it is enabled, false otherwise
    • getLogger

      public Logger getLogger()
      Get the ApiClient logger
      Returns:
      ApiClient logger
    • formatDate

      public String formatDate(Date date)
      Format the given Date object into string.
      Parameters:
      date - Date
      Returns:
      Date in string format
    • parameterToString

      public String parameterToString(Object param)
      Format the given parameter object into string.
      Parameters:
      param - Object
      Returns:
      Object in string format
    • parameterToPairs

      public List<Pair> parameterToPairs(String collectionFormat, String name, Object value)
    • isJsonMime

      public boolean isJsonMime(String mime)
      Check if the given MIME is a JSON MIME. JSON MIME examples: application/json application/json; charset=UTF8 APPLICATION/JSON application/vnd.company+json "* / *" is also default to JSON
      Parameters:
      mime - MIME
      Returns:
      True if the MIME type is JSON
    • selectHeaderAccept

      public String selectHeaderAccept(String[] accepts)
      Select the Accept header's value from the given accepts array: if JSON exists in the given array, use it; otherwise use all of them (joining into a string)
      Parameters:
      accepts - The accepts array to select from
      Returns:
      The Accept header to use. If the given array is empty, null will be returned (not to set the Accept header explicitly).
    • selectHeaderContentType

      public String selectHeaderContentType(String[] contentTypes)
      Select the Content-Type header's value from the given array: if JSON exists in the given array, use it; otherwise use the first one of the array.
      Parameters:
      contentTypes - The Content-Type array to select from
      Returns:
      The Content-Type header to use. If the given array is empty, JSON will be used.
    • escapeString

      public String escapeString(String str)
      Escape the given string to be used as URL query value.
      Parameters:
      str - String
      Returns:
      Escaped string
    • serialize

      public jakarta.ws.rs.client.Entity<?> serialize(Object obj, Map<String,Object> formParams, String contentType, String contentEncoding, boolean isBodyNullable)
      Serialize the given Java object into string entity according the given Content-Type (only JSON is supported for now).
      Parameters:
      obj - Object
      formParams - Form parameters
      contentType - Content type header
      contentEncoding - Content encoding header
      isBodyNullable - Whether the body can be null or not
      Returns:
      Entity
    • deserialize

      public <T> T deserialize(jakarta.ws.rs.core.Response response, jakarta.ws.rs.core.GenericType<T> returnType)
      Deserialize response body to Java object according to the Content-Type.
      Type Parameters:
      T - Type
      Parameters:
      response - Response
      returnType - Return type
      Returns:
      Deserialize object
    • createBuilder

      public jakarta.ws.rs.client.Invocation.Builder createBuilder(String operation, String path, List<Pair> queryParams, Map<String,String> headerParams, Map<String,String> cookieParams, String[] accepts, String[] authNames) throws ApiException
      Create builder to invoke the API.
      Parameters:
      operation - The qualified name of the operation
      path - The sub-path of the HTTP URL
      queryParams - The query parameters
      headerParams - The header parameters
      cookieParams - The cookie parameters
      accepts - The list of possible request's Accept header
      authNames - The authentications to apply
      Returns:
      The invocation builder
      Throws:
      ApiException - API exception
    • invokeAPI

      public <T> ApiResponse<T> invokeAPI(String method, jakarta.ws.rs.client.Invocation.Builder invocationBuilder, Map<String,String> headerParams, String[] contentTypes, Object body, Map<String,Object> formParams, Boolean isBodyNullable, jakarta.ws.rs.core.GenericType<T> returnType) throws ApiException
      Invoke API by sending HTTP request with the given options.
      Type Parameters:
      T - Type
      Parameters:
      invocationBuilder - HTTP requests builder
      method - The request method, one of "GET", "POST", "PUT", "HEAD" and "DELETE"
      body - The request body object
      headerParams - The header parameters
      formParams - The form parameters
      contentTypes - The list of request Content-Type headers
      returnType - The return type into which to deserialize the response
      isBodyNullable - True if the body is nullable
      Returns:
      The response body in type of string
      Throws:
      ApiException - API exception
    • invokeAPIAsync

      public <T> CompletableFuture<ApiResponse<T>> invokeAPIAsync(String method, jakarta.ws.rs.client.Invocation.Builder invocationBuilder, Map<String,String> headerParams, String[] contentTypes, Object body, Map<String,Object> formParams, Boolean isBodyNullable, jakarta.ws.rs.core.GenericType<T> returnType)
      Invoke API by sending HTTP request with the given options, asynchronously.
      Type Parameters:
      T - Type
      Parameters:
      invocationBuilder - HTTP requests builder
      method - The request method, one of "GET", "POST", "PUT", "HEAD" and "DELETE"
      body - The request body object
      headerParams - The header parameters
      formParams - The form parameters
      contentTypes - The list of request Content-Type headers
      returnType - The return type into which to deserialize the response
      isBodyNullable - True if the body is nullable
      Returns:
      The future which be fired with the response
    • buildHttpClient

      protected jakarta.ws.rs.client.Client buildHttpClient()
      Build the Client used to make HTTP requests.
      Returns:
      Client
    • getDefaultClientConfig

      public org.glassfish.jersey.client.ClientConfig getDefaultClientConfig()
      Get the default client config.
      Returns:
      Client config
    • customizeClientBuilder

      protected void customizeClientBuilder(jakarta.ws.rs.client.ClientBuilder clientBuilder)
      Customize the client builder.

      This method can be overridden to customize the API client. For example, this can be used to: 1. Set the hostname verifier to be used by the client to verify the endpoint's hostname against its identification information. 2. Set the client-side key store. 3. Set the SSL context that will be used when creating secured transport connections to server endpoints from web targets created by the client instance that is using this SSL context. 4. Set the client-side trust store.

      To completely disable certificate validation (at your own risk), you can override this method and invoke disableCertificateValidation(clientBuilder).

      Parameters:
      clientBuilder - : HTTP client builder
    • disableCertificateValidation

      protected void disableCertificateValidation(jakarta.ws.rs.client.ClientBuilder clientBuilder) throws KeyManagementException, NoSuchAlgorithmException
      Disable X.509 certificate validation in TLS connections.

      Please note that trusting all certificates is extremely risky. This may be useful in a development environment with self-signed certificates.

      Parameters:
      clientBuilder - : HTTP client builder
      Throws:
      KeyManagementException - When the SSL context can't be initialized
      NoSuchAlgorithmException - If the environment doesn't support the required algorithm
    • buildResponseHeaders

      protected Map<String,List<String>> buildResponseHeaders(jakarta.ws.rs.core.Response response)
    • updateParamsForAuth

      protected void updateParamsForAuth(String[] authNames, List<Pair> queryParams, Map<String,String> headerParams, Map<String,String> cookieParams, URI uri) throws ApiException
      Update query and header parameters based on authentication settings.
      Parameters:
      authNames - The authentications to apply
      queryParams - List of query parameters
      headerParams - Map of header parameters
      cookieParams - Map of cookie parameters
      uri - HTTP URI
      Throws:
      ApiException - If one of the authentication schemes failed to be applied