All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.amazonaws.services.cloudtrail.AWSCloudTrailAsyncClient Maven / Gradle / Ivy

Go to download

The AWS SDK for Java with support for OSGi. The AWS SDK for Java provides Java APIs for building software on AWS' cost-effective, scalable, and reliable infrastructure products. The AWS Java SDK allows developers to code against APIs for all of Amazon's infrastructure web services (Amazon S3, Amazon EC2, Amazon SQS, Amazon Relational Database Service, Amazon AutoScaling, etc).

There is a newer version: 1.11.60
Show newest version
/*
 * Copyright 2011-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"). You may not
 * use this file except in compliance with the License. A copy of the License is
 * located at
 * 
 * http://aws.amazon.com/apache2.0
 * 
 * or in the "license" file accompanying this file. This file is distributed on
 * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
 * express or implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */
package com.amazonaws.services.cloudtrail;

import com.amazonaws.services.cloudtrail.model.*;
import com.amazonaws.client.AwsAsyncClientParams;
import com.amazonaws.annotation.ThreadSafe;

/**
 * Interface for accessing CloudTrail asynchronously. Each asynchronous method
 * will return a Java Future object representing the asynchronous operation;
 * overloads which accept an {@code AsyncHandler} can be used to receive
 * notification when an asynchronous operation completes.
 * 

* AWS CloudTrail *

* This is the CloudTrail API Reference. It provides descriptions of actions, * data types, common parameters, and common errors for CloudTrail. *

*

* CloudTrail is a web service that records AWS API calls for your AWS account * and delivers log files to an Amazon S3 bucket. The recorded information * includes the identity of the user, the start time of the AWS API call, the * source IP address, the request parameters, and the response elements returned * by the service. *

* *

* As an alternative to the API, you can use one of the AWS SDKs, which consist * of libraries and sample code for various programming languages and platforms * (Java, Ruby, .NET, iOS, Android, etc.). The SDKs provide a convenient way to * create programmatic access to AWSCloudTrail. For example, the SDKs take care * of cryptographically signing requests, managing errors, and retrying requests * automatically. For information about the AWS SDKs, including how to download * and install them, see the Tools for * Amazon Web Services page. *

*
*

* See the CloudTrail User Guide for information about the data that is included * with each AWS API call listed in the log files. *

*/ @ThreadSafe public class AWSCloudTrailAsyncClient extends AWSCloudTrailClient implements AWSCloudTrailAsync { private static final int DEFAULT_THREAD_POOL_SIZE = 50; private final java.util.concurrent.ExecutorService executorService; /** * Constructs a new asynchronous client to invoke service methods on * CloudTrail. A credentials provider chain will be used that searches for * credentials in this order: *
    *
  • Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY
  • *
  • Java System Properties - aws.accessKeyId and aws.secretKey
  • *
  • Credential profiles file at the default location (~/.aws/credentials) * shared by all AWS SDKs and the AWS CLI
  • *
  • Instance profile credentials delivered through the Amazon EC2 * metadata service
  • *
*

* Asynchronous methods are delegated to a fixed-size thread pool containing * 50 threads (to match the default maximum number of concurrent connections * to the service). * * @see com.amazonaws.auth.DefaultAWSCredentialsProviderChain * @see java.util.concurrent.Executors#newFixedThreadPool(int) */ public AWSCloudTrailAsyncClient() { this(new com.amazonaws.auth.DefaultAWSCredentialsProviderChain()); } /** * Constructs a new asynchronous client to invoke service methods on * CloudTrail. A credentials provider chain will be used that searches for * credentials in this order: *

    *
  • Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY
  • *
  • Java System Properties - aws.accessKeyId and aws.secretKey
  • *
  • Credential profiles file at the default location (~/.aws/credentials) * shared by all AWS SDKs and the AWS CLI
  • *
  • Instance profile credentials delivered through the Amazon EC2 * metadata service
  • *
*

* Asynchronous methods are delegated to a fixed-size thread pool containing * a number of threads equal to the maximum number of concurrent connections * configured via {@code ClientConfiguration.getMaxConnections()}. * * @param clientConfiguration * The client configuration options controlling how this client * connects to CloudTrail (ex: proxy settings, retry counts, etc). * * @see com.amazonaws.auth.DefaultAWSCredentialsProviderChain * @see java.util.concurrent.Executors#newFixedThreadPool(int) */ public AWSCloudTrailAsyncClient( com.amazonaws.ClientConfiguration clientConfiguration) { this(new com.amazonaws.auth.DefaultAWSCredentialsProviderChain(), clientConfiguration, java.util.concurrent.Executors .newFixedThreadPool(clientConfiguration .getMaxConnections())); } /** * Constructs a new asynchronous client to invoke service methods on * CloudTrail using the specified AWS account credentials. *

* Asynchronous methods are delegated to a fixed-size thread pool containing * 50 threads (to match the default maximum number of concurrent connections * to the service). * * @param awsCredentials * The AWS credentials (access key ID and secret key) to use when * authenticating with AWS services. * @see java.util.concurrent.Executors#newFixedThreadPool(int) */ public AWSCloudTrailAsyncClient( com.amazonaws.auth.AWSCredentials awsCredentials) { this(awsCredentials, java.util.concurrent.Executors .newFixedThreadPool(DEFAULT_THREAD_POOL_SIZE)); } /** * Constructs a new asynchronous client to invoke service methods on * CloudTrail using the specified AWS account credentials and executor * service. Default client settings will be used. * * @param awsCredentials * The AWS credentials (access key ID and secret key) to use when * authenticating with AWS services. * @param executorService * The executor service by which all asynchronous requests will be * executed. */ public AWSCloudTrailAsyncClient( com.amazonaws.auth.AWSCredentials awsCredentials, java.util.concurrent.ExecutorService executorService) { this(awsCredentials, configFactory.getConfig(), executorService); } /** * Constructs a new asynchronous client to invoke service methods on * CloudTrail using the specified AWS account credentials, executor service, * and client configuration options. * * @param awsCredentials * The AWS credentials (access key ID and secret key) to use when * authenticating with AWS services. * @param clientConfiguration * Client configuration options (ex: max retry limit, proxy settings, * etc). * @param executorService * The executor service by which all asynchronous requests will be * executed. */ public AWSCloudTrailAsyncClient( com.amazonaws.auth.AWSCredentials awsCredentials, com.amazonaws.ClientConfiguration clientConfiguration, java.util.concurrent.ExecutorService executorService) { super(awsCredentials, clientConfiguration); this.executorService = executorService; } /** * Constructs a new asynchronous client to invoke service methods on * CloudTrail using the specified AWS account credentials provider. Default * client settings will be used. *

* Asynchronous methods are delegated to a fixed-size thread pool containing * 50 threads (to match the default maximum number of concurrent connections * to the service). * * @param awsCredentialsProvider * The AWS credentials provider which will provide credentials to * authenticate requests with AWS services. * @see java.util.concurrent.Executors#newFixedThreadPool(int) */ public AWSCloudTrailAsyncClient( com.amazonaws.auth.AWSCredentialsProvider awsCredentialsProvider) { this(awsCredentialsProvider, java.util.concurrent.Executors .newFixedThreadPool(DEFAULT_THREAD_POOL_SIZE)); } /** * Constructs a new asynchronous client to invoke service methods on * CloudTrail using the provided AWS account credentials provider and client * configuration options. *

* Asynchronous methods are delegated to a fixed-size thread pool containing * a number of threads equal to the maximum number of concurrent connections * configured via {@code ClientConfiguration.getMaxConnections()}. * * @param awsCredentialsProvider * The AWS credentials provider which will provide credentials to * authenticate requests with AWS services. * @param clientConfiguration * Client configuration options (ex: max retry limit, proxy settings, * etc). * * @see com.amazonaws.auth.DefaultAWSCredentialsProviderChain * @see java.util.concurrent.Executors#newFixedThreadPool(int) */ public AWSCloudTrailAsyncClient( com.amazonaws.auth.AWSCredentialsProvider awsCredentialsProvider, com.amazonaws.ClientConfiguration clientConfiguration) { this(awsCredentialsProvider, clientConfiguration, java.util.concurrent.Executors .newFixedThreadPool(clientConfiguration .getMaxConnections())); } /** * Constructs a new asynchronous client to invoke service methods on * CloudTrail using the specified AWS account credentials provider and * executor service. Default client settings will be used. * * @param awsCredentialsProvider * The AWS credentials provider which will provide credentials to * authenticate requests with AWS services. * @param executorService * The executor service by which all asynchronous requests will be * executed. */ public AWSCloudTrailAsyncClient( com.amazonaws.auth.AWSCredentialsProvider awsCredentialsProvider, java.util.concurrent.ExecutorService executorService) { this(awsCredentialsProvider, configFactory.getConfig(), executorService); } /** * Constructs a new asynchronous client to invoke service methods on * CloudTrail using the specified AWS account credentials provider, executor * service, and client configuration options. * * @param awsCredentialsProvider * The AWS credentials provider which will provide credentials to * authenticate requests with AWS services. * @param clientConfiguration * Client configuration options (ex: max retry limit, proxy settings, * etc). * @param executorService * The executor service by which all asynchronous requests will be * executed. */ public AWSCloudTrailAsyncClient( com.amazonaws.auth.AWSCredentialsProvider awsCredentialsProvider, com.amazonaws.ClientConfiguration clientConfiguration, java.util.concurrent.ExecutorService executorService) { super(awsCredentialsProvider, clientConfiguration); this.executorService = executorService; } /** * Constructs a new asynchronous client to invoke service methods on * CloudTrail using the specified parameters. * * @param asyncClientParams * Object providing client parameters. */ AWSCloudTrailAsyncClient(AwsAsyncClientParams asyncClientParams) { super(asyncClientParams); this.executorService = asyncClientParams.getExecutor(); } /** * Returns the executor service used by this client to execute async * requests. * * @return The executor service used by this client to execute async * requests. */ public java.util.concurrent.ExecutorService getExecutorService() { return executorService; } @Override public java.util.concurrent.Future addTagsAsync( AddTagsRequest request) { return addTagsAsync(request, null); } @Override public java.util.concurrent.Future addTagsAsync( final AddTagsRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { return executorService .submit(new java.util.concurrent.Callable() { @Override public AddTagsResult call() throws Exception { AddTagsResult result; try { result = addTags(request); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(request, result); } return result; } }); } @Override public java.util.concurrent.Future createTrailAsync( CreateTrailRequest request) { return createTrailAsync(request, null); } @Override public java.util.concurrent.Future createTrailAsync( final CreateTrailRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { return executorService .submit(new java.util.concurrent.Callable() { @Override public CreateTrailResult call() throws Exception { CreateTrailResult result; try { result = createTrail(request); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(request, result); } return result; } }); } @Override public java.util.concurrent.Future deleteTrailAsync( DeleteTrailRequest request) { return deleteTrailAsync(request, null); } @Override public java.util.concurrent.Future deleteTrailAsync( final DeleteTrailRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { return executorService .submit(new java.util.concurrent.Callable() { @Override public DeleteTrailResult call() throws Exception { DeleteTrailResult result; try { result = deleteTrail(request); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(request, result); } return result; } }); } @Override public java.util.concurrent.Future describeTrailsAsync( DescribeTrailsRequest request) { return describeTrailsAsync(request, null); } @Override public java.util.concurrent.Future describeTrailsAsync( final DescribeTrailsRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { return executorService .submit(new java.util.concurrent.Callable() { @Override public DescribeTrailsResult call() throws Exception { DescribeTrailsResult result; try { result = describeTrails(request); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(request, result); } return result; } }); } /** * Simplified method form for invoking the DescribeTrails operation. * * @see #describeTrailsAsync(DescribeTrailsRequest) */ @Override public java.util.concurrent.Future describeTrailsAsync() { return describeTrailsAsync(new DescribeTrailsRequest()); } /** * Simplified method form for invoking the DescribeTrails operation with an * AsyncHandler. * * @see #describeTrailsAsync(DescribeTrailsRequest, * com.amazonaws.handlers.AsyncHandler) */ public java.util.concurrent.Future describeTrailsAsync( com.amazonaws.handlers.AsyncHandler asyncHandler) { return describeTrailsAsync(new DescribeTrailsRequest(), asyncHandler); } @Override public java.util.concurrent.Future getTrailStatusAsync( GetTrailStatusRequest request) { return getTrailStatusAsync(request, null); } @Override public java.util.concurrent.Future getTrailStatusAsync( final GetTrailStatusRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { return executorService .submit(new java.util.concurrent.Callable() { @Override public GetTrailStatusResult call() throws Exception { GetTrailStatusResult result; try { result = getTrailStatus(request); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(request, result); } return result; } }); } @Override public java.util.concurrent.Future listPublicKeysAsync( ListPublicKeysRequest request) { return listPublicKeysAsync(request, null); } @Override public java.util.concurrent.Future listPublicKeysAsync( final ListPublicKeysRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { return executorService .submit(new java.util.concurrent.Callable() { @Override public ListPublicKeysResult call() throws Exception { ListPublicKeysResult result; try { result = listPublicKeys(request); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(request, result); } return result; } }); } /** * Simplified method form for invoking the ListPublicKeys operation. * * @see #listPublicKeysAsync(ListPublicKeysRequest) */ @Override public java.util.concurrent.Future listPublicKeysAsync() { return listPublicKeysAsync(new ListPublicKeysRequest()); } /** * Simplified method form for invoking the ListPublicKeys operation with an * AsyncHandler. * * @see #listPublicKeysAsync(ListPublicKeysRequest, * com.amazonaws.handlers.AsyncHandler) */ public java.util.concurrent.Future listPublicKeysAsync( com.amazonaws.handlers.AsyncHandler asyncHandler) { return listPublicKeysAsync(new ListPublicKeysRequest(), asyncHandler); } @Override public java.util.concurrent.Future listTagsAsync( ListTagsRequest request) { return listTagsAsync(request, null); } @Override public java.util.concurrent.Future listTagsAsync( final ListTagsRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { return executorService .submit(new java.util.concurrent.Callable() { @Override public ListTagsResult call() throws Exception { ListTagsResult result; try { result = listTags(request); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(request, result); } return result; } }); } @Override public java.util.concurrent.Future lookupEventsAsync( LookupEventsRequest request) { return lookupEventsAsync(request, null); } @Override public java.util.concurrent.Future lookupEventsAsync( final LookupEventsRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { return executorService .submit(new java.util.concurrent.Callable() { @Override public LookupEventsResult call() throws Exception { LookupEventsResult result; try { result = lookupEvents(request); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(request, result); } return result; } }); } /** * Simplified method form for invoking the LookupEvents operation. * * @see #lookupEventsAsync(LookupEventsRequest) */ @Override public java.util.concurrent.Future lookupEventsAsync() { return lookupEventsAsync(new LookupEventsRequest()); } /** * Simplified method form for invoking the LookupEvents operation with an * AsyncHandler. * * @see #lookupEventsAsync(LookupEventsRequest, * com.amazonaws.handlers.AsyncHandler) */ public java.util.concurrent.Future lookupEventsAsync( com.amazonaws.handlers.AsyncHandler asyncHandler) { return lookupEventsAsync(new LookupEventsRequest(), asyncHandler); } @Override public java.util.concurrent.Future removeTagsAsync( RemoveTagsRequest request) { return removeTagsAsync(request, null); } @Override public java.util.concurrent.Future removeTagsAsync( final RemoveTagsRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { return executorService .submit(new java.util.concurrent.Callable() { @Override public RemoveTagsResult call() throws Exception { RemoveTagsResult result; try { result = removeTags(request); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(request, result); } return result; } }); } @Override public java.util.concurrent.Future startLoggingAsync( StartLoggingRequest request) { return startLoggingAsync(request, null); } @Override public java.util.concurrent.Future startLoggingAsync( final StartLoggingRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { return executorService .submit(new java.util.concurrent.Callable() { @Override public StartLoggingResult call() throws Exception { StartLoggingResult result; try { result = startLogging(request); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(request, result); } return result; } }); } @Override public java.util.concurrent.Future stopLoggingAsync( StopLoggingRequest request) { return stopLoggingAsync(request, null); } @Override public java.util.concurrent.Future stopLoggingAsync( final StopLoggingRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { return executorService .submit(new java.util.concurrent.Callable() { @Override public StopLoggingResult call() throws Exception { StopLoggingResult result; try { result = stopLogging(request); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(request, result); } return result; } }); } @Override public java.util.concurrent.Future updateTrailAsync( UpdateTrailRequest request) { return updateTrailAsync(request, null); } @Override public java.util.concurrent.Future updateTrailAsync( final UpdateTrailRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { return executorService .submit(new java.util.concurrent.Callable() { @Override public UpdateTrailResult call() throws Exception { UpdateTrailResult result; try { result = updateTrail(request); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(request, result); } return result; } }); } /** * Shuts down the client, releasing all managed resources. This includes * forcibly terminating all pending asynchronous service calls. Clients who * wish to give pending asynchronous service calls time to complete should * call {@code getExecutorService().shutdown()} followed by * {@code getExecutorService().awaitTermination()} prior to calling this * method. */ @Override public void shutdown() { super.shutdown(); executorService.shutdownNow(); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy