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 Amazon Web Services 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).

The newest version!
/*
 * Copyright 2010-2014 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 java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;

import com.amazonaws.AmazonClientException;
import com.amazonaws.AmazonServiceException;
import com.amazonaws.handlers.AsyncHandler;
import com.amazonaws.ClientConfiguration;
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.AWSCredentialsProvider;
import com.amazonaws.auth.DefaultAWSCredentialsProviderChain;

import com.amazonaws.services.cloudtrail.model.*;

/**
 * Asynchronous client for accessing AWSCloudTrail.
 * All asynchronous calls made using this client are non-blocking. Callers could either
 * process the result and handle the exceptions in the worker thread by providing a callback handler
 * when making the call, or use the returned Future object to check the result of the call in the calling thread.
 * AWS Cloud Trail 

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

*

* NOTE: As an alternative to using 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. *

*/ public class AWSCloudTrailAsyncClient extends AWSCloudTrailClient implements AWSCloudTrailAsync { /** * Executor service for executing asynchronous requests. */ private ExecutorService executorService; private static final int DEFAULT_THREAD_POOL_SIZE = 50; /** * Constructs a new asynchronous client to invoke service methods on * AWSCloudTrail. 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
  • *
  • Instance profile credentials delivered through the Amazon EC2 metadata service
  • *
* *

* All service calls made using this new client object are blocking, and will not * return until the service call completes. * * @see DefaultAWSCredentialsProviderChain */ public AWSCloudTrailAsyncClient() { this(new DefaultAWSCredentialsProviderChain()); } /** * Constructs a new asynchronous client to invoke service methods on * AWSCloudTrail. 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
  • *
  • Instance profile credentials delivered through the Amazon EC2 metadata service
  • *
* *

* All service calls made using this new client object are blocking, and will not * return until the service call completes. * * @param clientConfiguration The client configuration options controlling how this * client connects to AWSCloudTrail * (ex: proxy settings, retry counts, etc.). * * @see DefaultAWSCredentialsProviderChain */ public AWSCloudTrailAsyncClient(ClientConfiguration clientConfiguration) { this(new DefaultAWSCredentialsProviderChain(), clientConfiguration, Executors.newFixedThreadPool(clientConfiguration.getMaxConnections())); } /** * Constructs a new asynchronous client to invoke service methods on * AWSCloudTrail using the specified AWS account credentials. * Default client settings will be used, and a fixed size thread pool will be * created for executing the asynchronous tasks. * *

* All calls made using this new client object are non-blocking, and will immediately * return a Java Future object that the caller can later check to see if the service * call has actually completed. * * @param awsCredentials The AWS credentials (access key ID and secret key) to use * when authenticating with AWS services. */ public AWSCloudTrailAsyncClient(AWSCredentials awsCredentials) { this(awsCredentials, Executors.newFixedThreadPool(DEFAULT_THREAD_POOL_SIZE)); } /** * Constructs a new asynchronous client to invoke service methods on * AWSCloudTrail using the specified AWS account credentials * and executor service. Default client settings will be used. * *

* All calls made using this new client object are non-blocking, and will immediately * return a Java Future object that the caller can later check to see if the service * call has actually completed. * * @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(AWSCredentials awsCredentials, ExecutorService executorService) { super(awsCredentials); this.executorService = executorService; } /** * Constructs a new asynchronous client to invoke service methods on * AWSCloudTrail using the specified AWS account credentials, * executor service, and client configuration options. * *

* All calls made using this new client object are non-blocking, and will immediately * return a Java Future object that the caller can later check to see if the service * call has actually completed. * * @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(AWSCredentials awsCredentials, ClientConfiguration clientConfiguration, ExecutorService executorService) { super(awsCredentials, clientConfiguration); this.executorService = executorService; } /** * Constructs a new asynchronous client to invoke service methods on * AWSCloudTrail using the specified AWS account credentials provider. * Default client settings will be used, and a fixed size thread pool will be * created for executing the asynchronous tasks. * *

* All calls made using this new client object are non-blocking, and will immediately * return a Java Future object that the caller can later check to see if the service * call has actually completed. * * @param awsCredentialsProvider * The AWS credentials provider which will provide credentials * to authenticate requests with AWS services. */ public AWSCloudTrailAsyncClient(AWSCredentialsProvider awsCredentialsProvider) { this(awsCredentialsProvider, Executors.newFixedThreadPool(DEFAULT_THREAD_POOL_SIZE)); } /** * Constructs a new asynchronous client to invoke service methods on * AWSCloudTrail using the specified AWS account credentials provider * and executor service. Default client settings will be used. * *

* All calls made using this new client object are non-blocking, and will immediately * return a Java Future object that the caller can later check to see if the service * call has actually completed. * * @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(AWSCredentialsProvider awsCredentialsProvider, ExecutorService executorService) { this(awsCredentialsProvider, new ClientConfiguration(), executorService); } /** * Constructs a new asynchronous client to invoke service methods on * AWSCloudTrail using the specified AWS account credentials * provider and client configuration options. * *

* All calls made using this new client object are non-blocking, and will immediately * return a Java Future object that the caller can later check to see if the service * call has actually completed. * * @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). */ public AWSCloudTrailAsyncClient(AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration) { this(awsCredentialsProvider, clientConfiguration, Executors.newFixedThreadPool(clientConfiguration.getMaxConnections())); } /** * Constructs a new asynchronous client to invoke service methods on * AWSCloudTrail using the specified AWS account credentials * provider, executor service, and client configuration options. * *

* All calls made using this new client object are non-blocking, and will immediately * return a Java Future object that the caller can later check to see if the service * call has actually completed. * * @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(AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration, ExecutorService executorService) { super(awsCredentialsProvider, clientConfiguration); this.executorService = executorService; } /** * Returns the executor service used by this async client to execute * requests. * * @return The executor service used by this async client to execute * requests. */ public ExecutorService getExecutorService() { return executorService; } /** * 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 getExecutorService().shutdown() followed by * getExecutorService().awaitTermination() prior to calling this method. */ @Override public void shutdown() { super.shutdown(); executorService.shutdownNow(); } /** *

* Returns a JSON-formatted list of information about the specified * trail. Fields include information such as delivery errors, Amazon SNS * and Amazon S3 errors, and times that logging started and stopped for * each trail. *

* * @param getTrailStatusRequest Container for the necessary parameters to * execute the GetTrailStatus operation on AWSCloudTrail. * * @return A Java Future object containing the response from the * GetTrailStatus service method, as returned by AWSCloudTrail. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AWSCloudTrail indicating * either a problem with the data in the request, or a server side issue. */ public Future getTrailStatusAsync(final GetTrailStatusRequest getTrailStatusRequest) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public GetTrailStatusResult call() throws Exception { return getTrailStatus(getTrailStatusRequest); } }); } /** *

* Returns a JSON-formatted list of information about the specified * trail. Fields include information such as delivery errors, Amazon SNS * and Amazon S3 errors, and times that logging started and stopped for * each trail. *

* * @param getTrailStatusRequest Container for the necessary parameters to * execute the GetTrailStatus operation on AWSCloudTrail. * @param asyncHandler Asynchronous callback handler for events in the * life-cycle of the request. Users could provide the implementation of * the four callback methods in this interface to process the operation * result or handle the exception. * * @return A Java Future object containing the response from the * GetTrailStatus service method, as returned by AWSCloudTrail. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AWSCloudTrail indicating * either a problem with the data in the request, or a server side issue. */ public Future getTrailStatusAsync( final GetTrailStatusRequest getTrailStatusRequest, final AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public GetTrailStatusResult call() throws Exception { GetTrailStatusResult result; try { result = getTrailStatus(getTrailStatusRequest); } catch (Exception ex) { asyncHandler.onError(ex); throw ex; } asyncHandler.onSuccess(getTrailStatusRequest, result); return result; } }); } /** *

* Deletes a trail. *

* * @param deleteTrailRequest Container for the necessary parameters to * execute the DeleteTrail operation on AWSCloudTrail. * * @return A Java Future object containing the response from the * DeleteTrail service method, as returned by AWSCloudTrail. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AWSCloudTrail indicating * either a problem with the data in the request, or a server side issue. */ public Future deleteTrailAsync(final DeleteTrailRequest deleteTrailRequest) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public DeleteTrailResult call() throws Exception { return deleteTrail(deleteTrailRequest); } }); } /** *

* Deletes a trail. *

* * @param deleteTrailRequest Container for the necessary parameters to * execute the DeleteTrail operation on AWSCloudTrail. * @param asyncHandler Asynchronous callback handler for events in the * life-cycle of the request. Users could provide the implementation of * the four callback methods in this interface to process the operation * result or handle the exception. * * @return A Java Future object containing the response from the * DeleteTrail service method, as returned by AWSCloudTrail. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AWSCloudTrail indicating * either a problem with the data in the request, or a server side issue. */ public Future deleteTrailAsync( final DeleteTrailRequest deleteTrailRequest, final AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public DeleteTrailResult call() throws Exception { DeleteTrailResult result; try { result = deleteTrail(deleteTrailRequest); } catch (Exception ex) { asyncHandler.onError(ex); throw ex; } asyncHandler.onSuccess(deleteTrailRequest, result); return result; } }); } /** *

* From the command line, use create-subscription. *

*

* Creates a trail that specifies the settings for delivery of log data * to an Amazon S3 bucket. The request includes a Trail structure that * specifies the following: *

* *
    *
  • Trail name.
  • *
  • The name of an existing Amazon S3 bucket to which CloudTrail * delivers your log files.
  • *
  • The name of the Amazon S3 key prefix that precedes each log * file.
  • *
  • The name of an existing Amazon SNS topic that notifies you that a * new file is available in your bucket.
  • *
  • Whether the log file should include AWS API calls from global * services. Currently, the only global AWS API calls included in * CloudTrail log files are from IAM and AWS STS.
  • * *
* * @param createTrailRequest Container for the necessary parameters to * execute the CreateTrail operation on AWSCloudTrail. * * @return A Java Future object containing the response from the * CreateTrail service method, as returned by AWSCloudTrail. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AWSCloudTrail indicating * either a problem with the data in the request, or a server side issue. */ public Future createTrailAsync(final CreateTrailRequest createTrailRequest) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public CreateTrailResult call() throws Exception { return createTrail(createTrailRequest); } }); } /** *

* From the command line, use create-subscription. *

*

* Creates a trail that specifies the settings for delivery of log data * to an Amazon S3 bucket. The request includes a Trail structure that * specifies the following: *

* *
    *
  • Trail name.
  • *
  • The name of an existing Amazon S3 bucket to which CloudTrail * delivers your log files.
  • *
  • The name of the Amazon S3 key prefix that precedes each log * file.
  • *
  • The name of an existing Amazon SNS topic that notifies you that a * new file is available in your bucket.
  • *
  • Whether the log file should include AWS API calls from global * services. Currently, the only global AWS API calls included in * CloudTrail log files are from IAM and AWS STS.
  • * *
* * @param createTrailRequest Container for the necessary parameters to * execute the CreateTrail operation on AWSCloudTrail. * @param asyncHandler Asynchronous callback handler for events in the * life-cycle of the request. Users could provide the implementation of * the four callback methods in this interface to process the operation * result or handle the exception. * * @return A Java Future object containing the response from the * CreateTrail service method, as returned by AWSCloudTrail. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AWSCloudTrail indicating * either a problem with the data in the request, or a server side issue. */ public Future createTrailAsync( final CreateTrailRequest createTrailRequest, final AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public CreateTrailResult call() throws Exception { CreateTrailResult result; try { result = createTrail(createTrailRequest); } catch (Exception ex) { asyncHandler.onError(ex); throw ex; } asyncHandler.onSuccess(createTrailRequest, result); return result; } }); } /** *

* From the command line, use update-subscription. *

*

* Updates the settings that specify delivery of log files. Changes to a * trail do not require stopping the CloudTrail service. You use this * action to designate an existing bucket for log delivery. If the * existing bucket has previously been a target for CloudTrail log files, * an IAM policy exists for the bucket. Use a Trail data type to pass * updated bucket or topic names. *

* * @param updateTrailRequest Container for the necessary parameters to * execute the UpdateTrail operation on AWSCloudTrail. * * @return A Java Future object containing the response from the * UpdateTrail service method, as returned by AWSCloudTrail. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AWSCloudTrail indicating * either a problem with the data in the request, or a server side issue. */ public Future updateTrailAsync(final UpdateTrailRequest updateTrailRequest) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public UpdateTrailResult call() throws Exception { return updateTrail(updateTrailRequest); } }); } /** *

* From the command line, use update-subscription. *

*

* Updates the settings that specify delivery of log files. Changes to a * trail do not require stopping the CloudTrail service. You use this * action to designate an existing bucket for log delivery. If the * existing bucket has previously been a target for CloudTrail log files, * an IAM policy exists for the bucket. Use a Trail data type to pass * updated bucket or topic names. *

* * @param updateTrailRequest Container for the necessary parameters to * execute the UpdateTrail operation on AWSCloudTrail. * @param asyncHandler Asynchronous callback handler for events in the * life-cycle of the request. Users could provide the implementation of * the four callback methods in this interface to process the operation * result or handle the exception. * * @return A Java Future object containing the response from the * UpdateTrail service method, as returned by AWSCloudTrail. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AWSCloudTrail indicating * either a problem with the data in the request, or a server side issue. */ public Future updateTrailAsync( final UpdateTrailRequest updateTrailRequest, final AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public UpdateTrailResult call() throws Exception { UpdateTrailResult result; try { result = updateTrail(updateTrailRequest); } catch (Exception ex) { asyncHandler.onError(ex); throw ex; } asyncHandler.onSuccess(updateTrailRequest, result); return result; } }); } /** *

* Retrieves the settings for some or all trails associated with an * account. Returns a list of Trail structures in JSON format. *

* * @param describeTrailsRequest Container for the necessary parameters to * execute the DescribeTrails operation on AWSCloudTrail. * * @return A Java Future object containing the response from the * DescribeTrails service method, as returned by AWSCloudTrail. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AWSCloudTrail indicating * either a problem with the data in the request, or a server side issue. */ public Future describeTrailsAsync(final DescribeTrailsRequest describeTrailsRequest) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public DescribeTrailsResult call() throws Exception { return describeTrails(describeTrailsRequest); } }); } /** *

* Retrieves the settings for some or all trails associated with an * account. Returns a list of Trail structures in JSON format. *

* * @param describeTrailsRequest Container for the necessary parameters to * execute the DescribeTrails operation on AWSCloudTrail. * @param asyncHandler Asynchronous callback handler for events in the * life-cycle of the request. Users could provide the implementation of * the four callback methods in this interface to process the operation * result or handle the exception. * * @return A Java Future object containing the response from the * DescribeTrails service method, as returned by AWSCloudTrail. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AWSCloudTrail indicating * either a problem with the data in the request, or a server side issue. */ public Future describeTrailsAsync( final DescribeTrailsRequest describeTrailsRequest, final AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public DescribeTrailsResult call() throws Exception { DescribeTrailsResult result; try { result = describeTrails(describeTrailsRequest); } catch (Exception ex) { asyncHandler.onError(ex); throw ex; } asyncHandler.onSuccess(describeTrailsRequest, result); return result; } }); } /** *

* Suspends the recording of AWS API calls and log file delivery for the * specified trail. Under most circumstances, there is no need to use * this action. You can update a trail without stopping it first. This * action is the only way to stop recording. *

* * @param stopLoggingRequest Container for the necessary parameters to * execute the StopLogging operation on AWSCloudTrail. * * @return A Java Future object containing the response from the * StopLogging service method, as returned by AWSCloudTrail. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AWSCloudTrail indicating * either a problem with the data in the request, or a server side issue. */ public Future stopLoggingAsync(final StopLoggingRequest stopLoggingRequest) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public StopLoggingResult call() throws Exception { return stopLogging(stopLoggingRequest); } }); } /** *

* Suspends the recording of AWS API calls and log file delivery for the * specified trail. Under most circumstances, there is no need to use * this action. You can update a trail without stopping it first. This * action is the only way to stop recording. *

* * @param stopLoggingRequest Container for the necessary parameters to * execute the StopLogging operation on AWSCloudTrail. * @param asyncHandler Asynchronous callback handler for events in the * life-cycle of the request. Users could provide the implementation of * the four callback methods in this interface to process the operation * result or handle the exception. * * @return A Java Future object containing the response from the * StopLogging service method, as returned by AWSCloudTrail. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AWSCloudTrail indicating * either a problem with the data in the request, or a server side issue. */ public Future stopLoggingAsync( final StopLoggingRequest stopLoggingRequest, final AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public StopLoggingResult call() throws Exception { StopLoggingResult result; try { result = stopLogging(stopLoggingRequest); } catch (Exception ex) { asyncHandler.onError(ex); throw ex; } asyncHandler.onSuccess(stopLoggingRequest, result); return result; } }); } /** *

* Starts the recording of AWS API calls and log file delivery for a * trail. *

* * @param startLoggingRequest Container for the necessary parameters to * execute the StartLogging operation on AWSCloudTrail. * * @return A Java Future object containing the response from the * StartLogging service method, as returned by AWSCloudTrail. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AWSCloudTrail indicating * either a problem with the data in the request, or a server side issue. */ public Future startLoggingAsync(final StartLoggingRequest startLoggingRequest) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public StartLoggingResult call() throws Exception { return startLogging(startLoggingRequest); } }); } /** *

* Starts the recording of AWS API calls and log file delivery for a * trail. *

* * @param startLoggingRequest Container for the necessary parameters to * execute the StartLogging operation on AWSCloudTrail. * @param asyncHandler Asynchronous callback handler for events in the * life-cycle of the request. Users could provide the implementation of * the four callback methods in this interface to process the operation * result or handle the exception. * * @return A Java Future object containing the response from the * StartLogging service method, as returned by AWSCloudTrail. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AWSCloudTrail indicating * either a problem with the data in the request, or a server side issue. */ public Future startLoggingAsync( final StartLoggingRequest startLoggingRequest, final AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public StartLoggingResult call() throws Exception { StartLoggingResult result; try { result = startLogging(startLoggingRequest); } catch (Exception ex) { asyncHandler.onError(ex); throw ex; } asyncHandler.onSuccess(startLoggingRequest, result); return result; } }); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy