Interface SustainabilityAsyncClient

All Superinterfaces:
AutoCloseable, AwsClient, SdkAutoCloseable, SdkClient

@Generated("software.amazon.awssdk:codegen") @SdkPublicApi @ThreadSafe public interface SustainabilityAsyncClient extends AwsClient
Service client for accessing AWS Sustainability asynchronously. This can be created using the static builder() method.The asynchronous client performs non-blocking I/O when configured with any SdkAsyncHttpClient supported in the SDK. However, full non-blocking is not guaranteed as the async client may perform blocking calls in some cases such as credentials retrieval and endpoint discovery as part of the async API call.

The AWS Sustainability service provides programmatic access to estimated carbon emissions data for your Amazon Web Services usage. Use the AWS Sustainability service to retrieve, analyze, and track the carbon footprint of your cloud infrastructure over time.

With the AWS Sustainability service, you can:

  • Retrieve estimated carbon emissions for your Amazon Web Services usage across different time periods

  • Group emissions data by dimensions such as account, region, and service

  • Filter emissions data to focus on specific accounts, regions, or services

  • Access multiple emissions calculation methodologies including Location-based Method (LBM) and Market-based Method (MBM)

  • Aggregate emissions data at various time granularities including monthly, quarterly, and yearly periods

The API supports pagination for efficient data retrieval and provides dimension values to help you understand the available grouping and filtering options for your account.

All emissions values are calculated using methodologies aligned with the Greenhouse Gas (GHG) Protocol and are provided in metric tons of carbon dioxide-equivalent (MTCO2e).

  • Field Details

  • Method Details

    • getEstimatedCarbonEmissions

      default CompletableFuture<GetEstimatedCarbonEmissionsResponse> getEstimatedCarbonEmissions(GetEstimatedCarbonEmissionsRequest getEstimatedCarbonEmissionsRequest)

      Returns estimated carbon emission values based on customer grouping and filtering parameters. We recommend using pagination to ensure that the operation returns quickly and successfully.

      Parameters:
      getEstimatedCarbonEmissionsRequest -
      Returns:
      A Java Future containing the result of the GetEstimatedCarbonEmissions operation returned by the service.
      The CompletableFuture returned by this method can be completed exceptionally with the following exceptions. The exception returned is wrapped with CompletionException, so you need to invoke Throwable.getCause() to retrieve the underlying exception.
      • ValidationException The input fails to satisfy the constraints specified by an Amazon Web Services service.
      • InternalServerException The request processing has failed because of an unknown error, exception, or failure.
      • AccessDeniedException You do not have sufficient access to perform this action.
      • ThrottlingException The request was denied due to request throttling.
      • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for catch all scenarios.
      • SdkClientException If any client side error occurs such as an IO related failure, failure to get credentials, etc.
      • SustainabilityException Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
      See Also:
    • getEstimatedCarbonEmissions

      default CompletableFuture<GetEstimatedCarbonEmissionsResponse> getEstimatedCarbonEmissions(Consumer<GetEstimatedCarbonEmissionsRequest.Builder> getEstimatedCarbonEmissionsRequest)

      Returns estimated carbon emission values based on customer grouping and filtering parameters. We recommend using pagination to ensure that the operation returns quickly and successfully.


      This is a convenience which creates an instance of the GetEstimatedCarbonEmissionsRequest.Builder avoiding the need to create one manually via GetEstimatedCarbonEmissionsRequest.builder()

      Parameters:
      getEstimatedCarbonEmissionsRequest - A Consumer that will call methods on GetEstimatedCarbonEmissionsRequest.Builder to create a request.
      Returns:
      A Java Future containing the result of the GetEstimatedCarbonEmissions operation returned by the service.
      The CompletableFuture returned by this method can be completed exceptionally with the following exceptions. The exception returned is wrapped with CompletionException, so you need to invoke Throwable.getCause() to retrieve the underlying exception.
      • ValidationException The input fails to satisfy the constraints specified by an Amazon Web Services service.
      • InternalServerException The request processing has failed because of an unknown error, exception, or failure.
      • AccessDeniedException You do not have sufficient access to perform this action.
      • ThrottlingException The request was denied due to request throttling.
      • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for catch all scenarios.
      • SdkClientException If any client side error occurs such as an IO related failure, failure to get credentials, etc.
      • SustainabilityException Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
      See Also:
    • getEstimatedCarbonEmissionsDimensionValues

      default CompletableFuture<GetEstimatedCarbonEmissionsDimensionValuesResponse> getEstimatedCarbonEmissionsDimensionValues(GetEstimatedCarbonEmissionsDimensionValuesRequest getEstimatedCarbonEmissionsDimensionValuesRequest)

      Returns the possible dimension values available for a customer's account. We recommend using pagination to ensure that the operation returns quickly and successfully.

      Parameters:
      getEstimatedCarbonEmissionsDimensionValuesRequest -
      Returns:
      A Java Future containing the result of the GetEstimatedCarbonEmissionsDimensionValues operation returned by the service.
      The CompletableFuture returned by this method can be completed exceptionally with the following exceptions. The exception returned is wrapped with CompletionException, so you need to invoke Throwable.getCause() to retrieve the underlying exception.
      • ValidationException The input fails to satisfy the constraints specified by an Amazon Web Services service.
      • InternalServerException The request processing has failed because of an unknown error, exception, or failure.
      • AccessDeniedException You do not have sufficient access to perform this action.
      • ThrottlingException The request was denied due to request throttling.
      • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for catch all scenarios.
      • SdkClientException If any client side error occurs such as an IO related failure, failure to get credentials, etc.
      • SustainabilityException Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
      See Also:
    • getEstimatedCarbonEmissionsDimensionValues

      default CompletableFuture<GetEstimatedCarbonEmissionsDimensionValuesResponse> getEstimatedCarbonEmissionsDimensionValues(Consumer<GetEstimatedCarbonEmissionsDimensionValuesRequest.Builder> getEstimatedCarbonEmissionsDimensionValuesRequest)

      Returns the possible dimension values available for a customer's account. We recommend using pagination to ensure that the operation returns quickly and successfully.


      This is a convenience which creates an instance of the GetEstimatedCarbonEmissionsDimensionValuesRequest.Builder avoiding the need to create one manually via GetEstimatedCarbonEmissionsDimensionValuesRequest.builder()

      Parameters:
      getEstimatedCarbonEmissionsDimensionValuesRequest - A Consumer that will call methods on GetEstimatedCarbonEmissionsDimensionValuesRequest.Builder to create a request.
      Returns:
      A Java Future containing the result of the GetEstimatedCarbonEmissionsDimensionValues operation returned by the service.
      The CompletableFuture returned by this method can be completed exceptionally with the following exceptions. The exception returned is wrapped with CompletionException, so you need to invoke Throwable.getCause() to retrieve the underlying exception.
      • ValidationException The input fails to satisfy the constraints specified by an Amazon Web Services service.
      • InternalServerException The request processing has failed because of an unknown error, exception, or failure.
      • AccessDeniedException You do not have sufficient access to perform this action.
      • ThrottlingException The request was denied due to request throttling.
      • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for catch all scenarios.
      • SdkClientException If any client side error occurs such as an IO related failure, failure to get credentials, etc.
      • SustainabilityException Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
      See Also:
    • getEstimatedCarbonEmissionsDimensionValuesPaginator

      default GetEstimatedCarbonEmissionsDimensionValuesPublisher getEstimatedCarbonEmissionsDimensionValuesPaginator(GetEstimatedCarbonEmissionsDimensionValuesRequest getEstimatedCarbonEmissionsDimensionValuesRequest)

      This is a variant of getEstimatedCarbonEmissionsDimensionValues(software.amazon.awssdk.services.sustainability.model.GetEstimatedCarbonEmissionsDimensionValuesRequest) operation. The return type is a custom publisher that can be subscribed to request a stream of response pages. SDK will internally handle making service calls for you.

      When the operation is called, an instance of this class is returned. At this point, no service calls are made yet and so there is no guarantee that the request is valid. If there are errors in your request, you will see the failures only after you start streaming the data. The subscribe method should be called as a request to start streaming data. For more info, see Publisher.subscribe(org.reactivestreams.Subscriber). Each call to the subscribe method will result in a new Subscription i.e., a new contract to stream data from the starting request.

      The following are few ways to use the response class:

      1) Using the subscribe helper method
       
       software.amazon.awssdk.services.sustainability.paginators.GetEstimatedCarbonEmissionsDimensionValuesPublisher publisher = client.getEstimatedCarbonEmissionsDimensionValuesPaginator(request);
       CompletableFuture<Void> future = publisher.subscribe(res -> { // Do something with the response });
       future.get();
       
       
      2) Using a custom subscriber
       
       software.amazon.awssdk.services.sustainability.paginators.GetEstimatedCarbonEmissionsDimensionValuesPublisher publisher = client.getEstimatedCarbonEmissionsDimensionValuesPaginator(request);
       publisher.subscribe(new Subscriber<software.amazon.awssdk.services.sustainability.model.GetEstimatedCarbonEmissionsDimensionValuesResponse>() {
       
       public void onSubscribe(org.reactivestreams.Subscriber subscription) { //... };
       
       
       public void onNext(software.amazon.awssdk.services.sustainability.model.GetEstimatedCarbonEmissionsDimensionValuesResponse response) { //... };
       });
       
      As the response is a publisher, it can work well with third party reactive streams implementations like RxJava2.

      Please notice that the configuration of MaxResults won't limit the number of results you get with the paginator. It only limits the number of results in each page.

      Note: If you prefer to have control on service calls, use the getEstimatedCarbonEmissionsDimensionValues(software.amazon.awssdk.services.sustainability.model.GetEstimatedCarbonEmissionsDimensionValuesRequest) operation.

      Parameters:
      getEstimatedCarbonEmissionsDimensionValuesRequest -
      Returns:
      A custom publisher that can be subscribed to request a stream of response pages.
      The CompletableFuture returned by this method can be completed exceptionally with the following exceptions. The exception returned is wrapped with CompletionException, so you need to invoke Throwable.getCause() to retrieve the underlying exception.
      • ValidationException The input fails to satisfy the constraints specified by an Amazon Web Services service.
      • InternalServerException The request processing has failed because of an unknown error, exception, or failure.
      • AccessDeniedException You do not have sufficient access to perform this action.
      • ThrottlingException The request was denied due to request throttling.
      • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for catch all scenarios.
      • SdkClientException If any client side error occurs such as an IO related failure, failure to get credentials, etc.
      • SustainabilityException Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
      See Also:
    • getEstimatedCarbonEmissionsDimensionValuesPaginator

      default GetEstimatedCarbonEmissionsDimensionValuesPublisher getEstimatedCarbonEmissionsDimensionValuesPaginator(Consumer<GetEstimatedCarbonEmissionsDimensionValuesRequest.Builder> getEstimatedCarbonEmissionsDimensionValuesRequest)

      This is a variant of getEstimatedCarbonEmissionsDimensionValues(software.amazon.awssdk.services.sustainability.model.GetEstimatedCarbonEmissionsDimensionValuesRequest) operation. The return type is a custom publisher that can be subscribed to request a stream of response pages. SDK will internally handle making service calls for you.

      When the operation is called, an instance of this class is returned. At this point, no service calls are made yet and so there is no guarantee that the request is valid. If there are errors in your request, you will see the failures only after you start streaming the data. The subscribe method should be called as a request to start streaming data. For more info, see Publisher.subscribe(org.reactivestreams.Subscriber). Each call to the subscribe method will result in a new Subscription i.e., a new contract to stream data from the starting request.

      The following are few ways to use the response class:

      1) Using the subscribe helper method
       
       software.amazon.awssdk.services.sustainability.paginators.GetEstimatedCarbonEmissionsDimensionValuesPublisher publisher = client.getEstimatedCarbonEmissionsDimensionValuesPaginator(request);
       CompletableFuture<Void> future = publisher.subscribe(res -> { // Do something with the response });
       future.get();
       
       
      2) Using a custom subscriber
       
       software.amazon.awssdk.services.sustainability.paginators.GetEstimatedCarbonEmissionsDimensionValuesPublisher publisher = client.getEstimatedCarbonEmissionsDimensionValuesPaginator(request);
       publisher.subscribe(new Subscriber<software.amazon.awssdk.services.sustainability.model.GetEstimatedCarbonEmissionsDimensionValuesResponse>() {
       
       public void onSubscribe(org.reactivestreams.Subscriber subscription) { //... };
       
       
       public void onNext(software.amazon.awssdk.services.sustainability.model.GetEstimatedCarbonEmissionsDimensionValuesResponse response) { //... };
       });
       
      As the response is a publisher, it can work well with third party reactive streams implementations like RxJava2.

      Please notice that the configuration of MaxResults won't limit the number of results you get with the paginator. It only limits the number of results in each page.

      Note: If you prefer to have control on service calls, use the getEstimatedCarbonEmissionsDimensionValues(software.amazon.awssdk.services.sustainability.model.GetEstimatedCarbonEmissionsDimensionValuesRequest) operation.


      This is a convenience which creates an instance of the GetEstimatedCarbonEmissionsDimensionValuesRequest.Builder avoiding the need to create one manually via GetEstimatedCarbonEmissionsDimensionValuesRequest.builder()

      Parameters:
      getEstimatedCarbonEmissionsDimensionValuesRequest - A Consumer that will call methods on GetEstimatedCarbonEmissionsDimensionValuesRequest.Builder to create a request.
      Returns:
      A custom publisher that can be subscribed to request a stream of response pages.
      The CompletableFuture returned by this method can be completed exceptionally with the following exceptions. The exception returned is wrapped with CompletionException, so you need to invoke Throwable.getCause() to retrieve the underlying exception.
      • ValidationException The input fails to satisfy the constraints specified by an Amazon Web Services service.
      • InternalServerException The request processing has failed because of an unknown error, exception, or failure.
      • AccessDeniedException You do not have sufficient access to perform this action.
      • ThrottlingException The request was denied due to request throttling.
      • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for catch all scenarios.
      • SdkClientException If any client side error occurs such as an IO related failure, failure to get credentials, etc.
      • SustainabilityException Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
      See Also:
    • getEstimatedCarbonEmissionsPaginator

      default GetEstimatedCarbonEmissionsPublisher getEstimatedCarbonEmissionsPaginator(GetEstimatedCarbonEmissionsRequest getEstimatedCarbonEmissionsRequest)

      This is a variant of getEstimatedCarbonEmissions(software.amazon.awssdk.services.sustainability.model.GetEstimatedCarbonEmissionsRequest) operation. The return type is a custom publisher that can be subscribed to request a stream of response pages. SDK will internally handle making service calls for you.

      When the operation is called, an instance of this class is returned. At this point, no service calls are made yet and so there is no guarantee that the request is valid. If there are errors in your request, you will see the failures only after you start streaming the data. The subscribe method should be called as a request to start streaming data. For more info, see Publisher.subscribe(org.reactivestreams.Subscriber). Each call to the subscribe method will result in a new Subscription i.e., a new contract to stream data from the starting request.

      The following are few ways to use the response class:

      1) Using the subscribe helper method
       
       software.amazon.awssdk.services.sustainability.paginators.GetEstimatedCarbonEmissionsPublisher publisher = client.getEstimatedCarbonEmissionsPaginator(request);
       CompletableFuture<Void> future = publisher.subscribe(res -> { // Do something with the response });
       future.get();
       
       
      2) Using a custom subscriber
       
       software.amazon.awssdk.services.sustainability.paginators.GetEstimatedCarbonEmissionsPublisher publisher = client.getEstimatedCarbonEmissionsPaginator(request);
       publisher.subscribe(new Subscriber<software.amazon.awssdk.services.sustainability.model.GetEstimatedCarbonEmissionsResponse>() {
       
       public void onSubscribe(org.reactivestreams.Subscriber subscription) { //... };
       
       
       public void onNext(software.amazon.awssdk.services.sustainability.model.GetEstimatedCarbonEmissionsResponse response) { //... };
       });
       
      As the response is a publisher, it can work well with third party reactive streams implementations like RxJava2.

      Please notice that the configuration of MaxResults won't limit the number of results you get with the paginator. It only limits the number of results in each page.

      Note: If you prefer to have control on service calls, use the getEstimatedCarbonEmissions(software.amazon.awssdk.services.sustainability.model.GetEstimatedCarbonEmissionsRequest) operation.

      Parameters:
      getEstimatedCarbonEmissionsRequest -
      Returns:
      A custom publisher that can be subscribed to request a stream of response pages.
      The CompletableFuture returned by this method can be completed exceptionally with the following exceptions. The exception returned is wrapped with CompletionException, so you need to invoke Throwable.getCause() to retrieve the underlying exception.
      • ValidationException The input fails to satisfy the constraints specified by an Amazon Web Services service.
      • InternalServerException The request processing has failed because of an unknown error, exception, or failure.
      • AccessDeniedException You do not have sufficient access to perform this action.
      • ThrottlingException The request was denied due to request throttling.
      • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for catch all scenarios.
      • SdkClientException If any client side error occurs such as an IO related failure, failure to get credentials, etc.
      • SustainabilityException Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
      See Also:
    • getEstimatedCarbonEmissionsPaginator

      default GetEstimatedCarbonEmissionsPublisher getEstimatedCarbonEmissionsPaginator(Consumer<GetEstimatedCarbonEmissionsRequest.Builder> getEstimatedCarbonEmissionsRequest)

      This is a variant of getEstimatedCarbonEmissions(software.amazon.awssdk.services.sustainability.model.GetEstimatedCarbonEmissionsRequest) operation. The return type is a custom publisher that can be subscribed to request a stream of response pages. SDK will internally handle making service calls for you.

      When the operation is called, an instance of this class is returned. At this point, no service calls are made yet and so there is no guarantee that the request is valid. If there are errors in your request, you will see the failures only after you start streaming the data. The subscribe method should be called as a request to start streaming data. For more info, see Publisher.subscribe(org.reactivestreams.Subscriber). Each call to the subscribe method will result in a new Subscription i.e., a new contract to stream data from the starting request.

      The following are few ways to use the response class:

      1) Using the subscribe helper method
       
       software.amazon.awssdk.services.sustainability.paginators.GetEstimatedCarbonEmissionsPublisher publisher = client.getEstimatedCarbonEmissionsPaginator(request);
       CompletableFuture<Void> future = publisher.subscribe(res -> { // Do something with the response });
       future.get();
       
       
      2) Using a custom subscriber
       
       software.amazon.awssdk.services.sustainability.paginators.GetEstimatedCarbonEmissionsPublisher publisher = client.getEstimatedCarbonEmissionsPaginator(request);
       publisher.subscribe(new Subscriber<software.amazon.awssdk.services.sustainability.model.GetEstimatedCarbonEmissionsResponse>() {
       
       public void onSubscribe(org.reactivestreams.Subscriber subscription) { //... };
       
       
       public void onNext(software.amazon.awssdk.services.sustainability.model.GetEstimatedCarbonEmissionsResponse response) { //... };
       });
       
      As the response is a publisher, it can work well with third party reactive streams implementations like RxJava2.

      Please notice that the configuration of MaxResults won't limit the number of results you get with the paginator. It only limits the number of results in each page.

      Note: If you prefer to have control on service calls, use the getEstimatedCarbonEmissions(software.amazon.awssdk.services.sustainability.model.GetEstimatedCarbonEmissionsRequest) operation.


      This is a convenience which creates an instance of the GetEstimatedCarbonEmissionsRequest.Builder avoiding the need to create one manually via GetEstimatedCarbonEmissionsRequest.builder()

      Parameters:
      getEstimatedCarbonEmissionsRequest - A Consumer that will call methods on GetEstimatedCarbonEmissionsRequest.Builder to create a request.
      Returns:
      A custom publisher that can be subscribed to request a stream of response pages.
      The CompletableFuture returned by this method can be completed exceptionally with the following exceptions. The exception returned is wrapped with CompletionException, so you need to invoke Throwable.getCause() to retrieve the underlying exception.
      • ValidationException The input fails to satisfy the constraints specified by an Amazon Web Services service.
      • InternalServerException The request processing has failed because of an unknown error, exception, or failure.
      • AccessDeniedException You do not have sufficient access to perform this action.
      • ThrottlingException The request was denied due to request throttling.
      • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for catch all scenarios.
      • SdkClientException If any client side error occurs such as an IO related failure, failure to get credentials, etc.
      • SustainabilityException Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
      See Also:
    • serviceClientConfiguration

      default SustainabilityServiceClientConfiguration serviceClientConfiguration()
      Description copied from interface: SdkClient
      The SDK service client configuration exposes client settings to the user, e.g., ClientOverrideConfiguration
      Specified by:
      serviceClientConfiguration in interface AwsClient
      Specified by:
      serviceClientConfiguration in interface SdkClient
      Returns:
      SdkServiceClientConfiguration
    • create

      static SustainabilityAsyncClient create()
      Create a SustainabilityAsyncClient with the region loaded from the DefaultAwsRegionProviderChain and credentials loaded from the DefaultCredentialsProvider.
    • builder

      Create a builder that can be used to configure and create a SustainabilityAsyncClient.