com.amazonaws.services.devicefarm.AWSDeviceFarmAsyncClient Maven / Gradle / Ivy
Show all versions of aws-java-sdk-devicefarm Show documentation
/*
 * Copyright 2010-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.devicefarm;
import com.amazonaws.services.devicefarm.model.*;
import com.amazonaws.client.AwsAsyncClientParams;
import com.amazonaws.annotation.ThreadSafe;
/**
 * Interface for accessing AWS Device Farm 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 Device Farm is a service that enables mobile app developers to test
 * Android, iOS, and Fire OS apps on physical phones, tablets, and other devices
 * in the cloud.
 * 
 */
@ThreadSafe
public class AWSDeviceFarmAsyncClient extends AWSDeviceFarmClient implements
        AWSDeviceFarmAsync {
    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 AWS
     * Device Farm. 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 AWSDeviceFarmAsyncClient() {
        this(new com.amazonaws.auth.DefaultAWSCredentialsProviderChain());
    }
    /**
     * Constructs a new asynchronous client to invoke service methods on AWS
     * Device Farm. 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 AWS Device Farm (ex: proxy settings, retry counts,
     *        etc).
     *
     * @see com.amazonaws.auth.DefaultAWSCredentialsProviderChain
     * @see java.util.concurrent.Executors#newFixedThreadPool(int)
     */
    public AWSDeviceFarmAsyncClient(
            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 AWS
     * Device Farm 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 AWSDeviceFarmAsyncClient(
            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 AWS
     * Device Farm 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 AWSDeviceFarmAsyncClient(
            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 AWS
     * Device Farm 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 AWSDeviceFarmAsyncClient(
            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 AWS
     * Device Farm 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 AWSDeviceFarmAsyncClient(
            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 AWS
     * Device Farm 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 AWSDeviceFarmAsyncClient(
            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 AWS
     * Device Farm 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 AWSDeviceFarmAsyncClient(
            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 AWS
     * Device Farm 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 AWSDeviceFarmAsyncClient(
            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 AWS
     * Device Farm using the specified parameters.
     *
     * @param asyncClientParams
     *        Object providing client parameters.
     */
    AWSDeviceFarmAsyncClient(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 createDevicePoolAsync(
            CreateDevicePoolRequest request) {
        return createDevicePoolAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future createDevicePoolAsync(
            final CreateDevicePoolRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public CreateDevicePoolResult call() throws Exception {
                        CreateDevicePoolResult result;
                        try {
                            result = createDevicePool(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 createProjectAsync(
            CreateProjectRequest request) {
        return createProjectAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future createProjectAsync(
            final CreateProjectRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public CreateProjectResult call() throws Exception {
                        CreateProjectResult result;
                        try {
                            result = createProject(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 createUploadAsync(
            CreateUploadRequest request) {
        return createUploadAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future createUploadAsync(
            final CreateUploadRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public CreateUploadResult call() throws Exception {
                        CreateUploadResult result;
                        try {
                            result = createUpload(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 deleteDevicePoolAsync(
            DeleteDevicePoolRequest request) {
        return deleteDevicePoolAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future deleteDevicePoolAsync(
            final DeleteDevicePoolRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DeleteDevicePoolResult call() throws Exception {
                        DeleteDevicePoolResult result;
                        try {
                            result = deleteDevicePool(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 deleteProjectAsync(
            DeleteProjectRequest request) {
        return deleteProjectAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future deleteProjectAsync(
            final DeleteProjectRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DeleteProjectResult call() throws Exception {
                        DeleteProjectResult result;
                        try {
                            result = deleteProject(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 deleteRunAsync(
            DeleteRunRequest request) {
        return deleteRunAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future deleteRunAsync(
            final DeleteRunRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DeleteRunResult call() throws Exception {
                        DeleteRunResult result;
                        try {
                            result = deleteRun(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 deleteUploadAsync(
            DeleteUploadRequest request) {
        return deleteUploadAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future deleteUploadAsync(
            final DeleteUploadRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DeleteUploadResult call() throws Exception {
                        DeleteUploadResult result;
                        try {
                            result = deleteUpload(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 getAccountSettingsAsync(
            GetAccountSettingsRequest request) {
        return getAccountSettingsAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future getAccountSettingsAsync(
            final GetAccountSettingsRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public GetAccountSettingsResult call() throws Exception {
                        GetAccountSettingsResult result;
                        try {
                            result = getAccountSettings(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 getDeviceAsync(
            GetDeviceRequest request) {
        return getDeviceAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future getDeviceAsync(
            final GetDeviceRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public GetDeviceResult call() throws Exception {
                        GetDeviceResult result;
                        try {
                            result = getDevice(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 getDevicePoolAsync(
            GetDevicePoolRequest request) {
        return getDevicePoolAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future getDevicePoolAsync(
            final GetDevicePoolRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public GetDevicePoolResult call() throws Exception {
                        GetDevicePoolResult result;
                        try {
                            result = getDevicePool(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 getDevicePoolCompatibilityAsync(
            GetDevicePoolCompatibilityRequest request) {
        return getDevicePoolCompatibilityAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future getDevicePoolCompatibilityAsync(
            final GetDevicePoolCompatibilityRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public GetDevicePoolCompatibilityResult call()
                            throws Exception {
                        GetDevicePoolCompatibilityResult result;
                        try {
                            result = getDevicePoolCompatibility(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 getJobAsync(
            GetJobRequest request) {
        return getJobAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future getJobAsync(
            final GetJobRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public GetJobResult call() throws Exception {
                        GetJobResult result;
                        try {
                            result = getJob(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 getOfferingStatusAsync(
            GetOfferingStatusRequest request) {
        return getOfferingStatusAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future getOfferingStatusAsync(
            final GetOfferingStatusRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public GetOfferingStatusResult call() throws Exception {
                        GetOfferingStatusResult result;
                        try {
                            result = getOfferingStatus(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 getProjectAsync(
            GetProjectRequest request) {
        return getProjectAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future getProjectAsync(
            final GetProjectRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public GetProjectResult call() throws Exception {
                        GetProjectResult result;
                        try {
                            result = getProject(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 getRunAsync(
            GetRunRequest request) {
        return getRunAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future getRunAsync(
            final GetRunRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public GetRunResult call() throws Exception {
                        GetRunResult result;
                        try {
                            result = getRun(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 getSuiteAsync(
            GetSuiteRequest request) {
        return getSuiteAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future getSuiteAsync(
            final GetSuiteRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public GetSuiteResult call() throws Exception {
                        GetSuiteResult result;
                        try {
                            result = getSuite(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 getTestAsync(
            GetTestRequest request) {
        return getTestAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future getTestAsync(
            final GetTestRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public GetTestResult call() throws Exception {
                        GetTestResult result;
                        try {
                            result = getTest(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 getUploadAsync(
            GetUploadRequest request) {
        return getUploadAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future getUploadAsync(
            final GetUploadRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public GetUploadResult call() throws Exception {
                        GetUploadResult result;
                        try {
                            result = getUpload(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 listArtifactsAsync(
            ListArtifactsRequest request) {
        return listArtifactsAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future listArtifactsAsync(
            final ListArtifactsRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public ListArtifactsResult call() throws Exception {
                        ListArtifactsResult result;
                        try {
                            result = listArtifacts(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 listDevicePoolsAsync(
            ListDevicePoolsRequest request) {
        return listDevicePoolsAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future listDevicePoolsAsync(
            final ListDevicePoolsRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public ListDevicePoolsResult call() throws Exception {
                        ListDevicePoolsResult result;
                        try {
                            result = listDevicePools(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 listDevicesAsync(
            ListDevicesRequest request) {
        return listDevicesAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future listDevicesAsync(
            final ListDevicesRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public ListDevicesResult call() throws Exception {
                        ListDevicesResult result;
                        try {
                            result = listDevices(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 listJobsAsync(
            ListJobsRequest request) {
        return listJobsAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future listJobsAsync(
            final ListJobsRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public ListJobsResult call() throws Exception {
                        ListJobsResult result;
                        try {
                            result = listJobs(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 listOfferingTransactionsAsync(
            ListOfferingTransactionsRequest request) {
        return listOfferingTransactionsAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future listOfferingTransactionsAsync(
            final ListOfferingTransactionsRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public ListOfferingTransactionsResult call()
                            throws Exception {
                        ListOfferingTransactionsResult result;
                        try {
                            result = listOfferingTransactions(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 listOfferingsAsync(
            ListOfferingsRequest request) {
        return listOfferingsAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future listOfferingsAsync(
            final ListOfferingsRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public ListOfferingsResult call() throws Exception {
                        ListOfferingsResult result;
                        try {
                            result = listOfferings(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 listProjectsAsync(
            ListProjectsRequest request) {
        return listProjectsAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future listProjectsAsync(
            final ListProjectsRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public ListProjectsResult call() throws Exception {
                        ListProjectsResult result;
                        try {
                            result = listProjects(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 listRunsAsync(
            ListRunsRequest request) {
        return listRunsAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future listRunsAsync(
            final ListRunsRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public ListRunsResult call() throws Exception {
                        ListRunsResult result;
                        try {
                            result = listRuns(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 listSamplesAsync(
            ListSamplesRequest request) {
        return listSamplesAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future listSamplesAsync(
            final ListSamplesRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public ListSamplesResult call() throws Exception {
                        ListSamplesResult result;
                        try {
                            result = listSamples(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 listSuitesAsync(
            ListSuitesRequest request) {
        return listSuitesAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future listSuitesAsync(
            final ListSuitesRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public ListSuitesResult call() throws Exception {
                        ListSuitesResult result;
                        try {
                            result = listSuites(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 listTestsAsync(
            ListTestsRequest request) {
        return listTestsAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future listTestsAsync(
            final ListTestsRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public ListTestsResult call() throws Exception {
                        ListTestsResult result;
                        try {
                            result = listTests(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 listUniqueProblemsAsync(
            ListUniqueProblemsRequest request) {
        return listUniqueProblemsAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future listUniqueProblemsAsync(
            final ListUniqueProblemsRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public ListUniqueProblemsResult call() throws Exception {
                        ListUniqueProblemsResult result;
                        try {
                            result = listUniqueProblems(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 listUploadsAsync(
            ListUploadsRequest request) {
        return listUploadsAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future listUploadsAsync(
            final ListUploadsRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public ListUploadsResult call() throws Exception {
                        ListUploadsResult result;
                        try {
                            result = listUploads(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 purchaseOfferingAsync(
            PurchaseOfferingRequest request) {
        return purchaseOfferingAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future purchaseOfferingAsync(
            final PurchaseOfferingRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public PurchaseOfferingResult call() throws Exception {
                        PurchaseOfferingResult result;
                        try {
                            result = purchaseOffering(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 renewOfferingAsync(
            RenewOfferingRequest request) {
        return renewOfferingAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future renewOfferingAsync(
            final RenewOfferingRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public RenewOfferingResult call() throws Exception {
                        RenewOfferingResult result;
                        try {
                            result = renewOffering(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 scheduleRunAsync(
            ScheduleRunRequest request) {
        return scheduleRunAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future scheduleRunAsync(
            final ScheduleRunRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public ScheduleRunResult call() throws Exception {
                        ScheduleRunResult result;
                        try {
                            result = scheduleRun(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 stopRunAsync(
            StopRunRequest request) {
        return stopRunAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future stopRunAsync(
            final StopRunRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public StopRunResult call() throws Exception {
                        StopRunResult result;
                        try {
                            result = stopRun(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 updateDevicePoolAsync(
            UpdateDevicePoolRequest request) {
        return updateDevicePoolAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future updateDevicePoolAsync(
            final UpdateDevicePoolRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public UpdateDevicePoolResult call() throws Exception {
                        UpdateDevicePoolResult result;
                        try {
                            result = updateDevicePool(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 updateProjectAsync(
            UpdateProjectRequest request) {
        return updateProjectAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future updateProjectAsync(
            final UpdateProjectRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public UpdateProjectResult call() throws Exception {
                        UpdateProjectResult result;
                        try {
                            result = updateProject(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();
    }
}