com.amazonaws.services.rds.AmazonRDSAsyncClient Maven / Gradle / Ivy
Show all versions of aws-java-sdk-osgi 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.rds;
import com.amazonaws.services.rds.model.*;
import com.amazonaws.annotation.ThreadSafe;
/**
 * Interface for accessing Amazon RDS 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.
 * 
 * Amazon Relational Database Service 
 * 
 * Amazon Relational Database Service (Amazon RDS) is a web service that makes
 * it easier to set up, operate, and scale a relational database in the cloud.
 * It provides cost-efficient, resizeable capacity for an industry-standard
 * relational database and manages common database administration tasks, freeing
 * up developers to focus on what makes their applications and businesses
 * unique.
 * 
 * 
 * Amazon RDS gives you access to the capabilities of a MySQL, MariaDB,
 * PostgreSQL, Microsoft SQL Server, Oracle, or Amazon Aurora database server.
 * These capabilities mean that the code, applications, and tools you already
 * use today with your existing databases work with Amazon RDS without
 * modification. Amazon RDS automatically backs up your database and maintains
 * the database software that powers your DB instance. Amazon RDS is flexible:
 * you can scale your database instance's compute resources and storage capacity
 * to meet your application's demand. As with all Amazon Web Services, there are
 * no up-front investments, and you pay only for the resources you use.
 * 
 * 
 * This interface reference for Amazon RDS contains documentation for a
 * programming or command line interface you can use to manage Amazon RDS. Note
 * that Amazon RDS is asynchronous, which means that some interfaces might
 * require techniques such as polling or callback functions to determine when a
 * command has been applied. In this reference, the parameter descriptions
 * indicate whether a command is applied immediately, on the next instance
 * reboot, or during the maintenance window. The reference structure is as
 * follows, and we list following some related topics from the user guide.
 * 
 * 
 * Amazon RDS API Reference
 * 
 * 
 * - 
 * 
 * For the alphabetical list of API actions, see API Actions.
 * 
 *  
 * - 
 * 
 * For the alphabetical list of data types, see Data Types.
 * 
 *  
 * - 
 * 
 * For a list of common query parameters, see Common Parameters.
 * 
 *  
 * - 
 * 
 * For descriptions of the error codes, see Common Errors.
 * 
 *  
 * 
 * 
 * Amazon RDS User Guide
 * 
 * 
 * - 
 * 
 * For a summary of the Amazon RDS interfaces, see Available RDS Interfaces.
 * 
 *  
 * - 
 * 
 * For more information about how to use the Query API, see Using the Query API.
 * 
 *  
 * 
 */
@ThreadSafe
public class AmazonRDSAsyncClient extends AmazonRDSClient implements
        AmazonRDSAsync {
    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 Amazon
     * RDS. 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 AmazonRDSAsyncClient() {
        this(new com.amazonaws.auth.DefaultAWSCredentialsProviderChain());
    }
    /**
     * Constructs a new asynchronous client to invoke service methods on Amazon
     * RDS. 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 Amazon RDS (ex: proxy settings, retry counts, etc).
     *
     * @see com.amazonaws.auth.DefaultAWSCredentialsProviderChain
     * @see java.util.concurrent.Executors#newFixedThreadPool(int)
     */
    public AmazonRDSAsyncClient(
            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 Amazon
     * RDS 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 AmazonRDSAsyncClient(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 Amazon
     * RDS 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 AmazonRDSAsyncClient(
            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 Amazon
     * RDS 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 AmazonRDSAsyncClient(
            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 Amazon
     * RDS 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 AmazonRDSAsyncClient(
            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 Amazon
     * RDS 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 AmazonRDSAsyncClient(
            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 Amazon
     * RDS 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 AmazonRDSAsyncClient(
            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 Amazon
     * RDS 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 AmazonRDSAsyncClient(
            com.amazonaws.auth.AWSCredentialsProvider awsCredentialsProvider,
            com.amazonaws.ClientConfiguration clientConfiguration,
            java.util.concurrent.ExecutorService executorService) {
        super(awsCredentialsProvider, clientConfiguration);
        this.executorService = executorService;
    }
    /**
     * 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 addSourceIdentifierToSubscriptionAsync(
            AddSourceIdentifierToSubscriptionRequest request) {
        return addSourceIdentifierToSubscriptionAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future addSourceIdentifierToSubscriptionAsync(
            final AddSourceIdentifierToSubscriptionRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public EventSubscription call() throws Exception {
                        EventSubscription result;
                        try {
                            result = addSourceIdentifierToSubscription(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 addTagsToResourceAsync(
            AddTagsToResourceRequest request) {
        return addTagsToResourceAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future addTagsToResourceAsync(
            final AddTagsToResourceRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public AddTagsToResourceResult call() throws Exception {
                        AddTagsToResourceResult result;
                        try {
                            result = addTagsToResource(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 applyPendingMaintenanceActionAsync(
            ApplyPendingMaintenanceActionRequest request) {
        return applyPendingMaintenanceActionAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future applyPendingMaintenanceActionAsync(
            final ApplyPendingMaintenanceActionRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public ResourcePendingMaintenanceActions call()
                            throws Exception {
                        ResourcePendingMaintenanceActions result;
                        try {
                            result = applyPendingMaintenanceAction(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 authorizeDBSecurityGroupIngressAsync(
            AuthorizeDBSecurityGroupIngressRequest request) {
        return authorizeDBSecurityGroupIngressAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future authorizeDBSecurityGroupIngressAsync(
            final AuthorizeDBSecurityGroupIngressRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DBSecurityGroup call() throws Exception {
                        DBSecurityGroup result;
                        try {
                            result = authorizeDBSecurityGroupIngress(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 copyDBClusterSnapshotAsync(
            CopyDBClusterSnapshotRequest request) {
        return copyDBClusterSnapshotAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future copyDBClusterSnapshotAsync(
            final CopyDBClusterSnapshotRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DBClusterSnapshot call() throws Exception {
                        DBClusterSnapshot result;
                        try {
                            result = copyDBClusterSnapshot(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 copyDBParameterGroupAsync(
            CopyDBParameterGroupRequest request) {
        return copyDBParameterGroupAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future copyDBParameterGroupAsync(
            final CopyDBParameterGroupRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DBParameterGroup call() throws Exception {
                        DBParameterGroup result;
                        try {
                            result = copyDBParameterGroup(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 copyDBSnapshotAsync(
            CopyDBSnapshotRequest request) {
        return copyDBSnapshotAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future copyDBSnapshotAsync(
            final CopyDBSnapshotRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DBSnapshot call() throws Exception {
                        DBSnapshot result;
                        try {
                            result = copyDBSnapshot(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 copyOptionGroupAsync(
            CopyOptionGroupRequest request) {
        return copyOptionGroupAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future copyOptionGroupAsync(
            final CopyOptionGroupRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public OptionGroup call() throws Exception {
                        OptionGroup result;
                        try {
                            result = copyOptionGroup(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 createDBClusterAsync(
            CreateDBClusterRequest request) {
        return createDBClusterAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future createDBClusterAsync(
            final CreateDBClusterRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DBCluster call() throws Exception {
                        DBCluster result;
                        try {
                            result = createDBCluster(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 createDBClusterParameterGroupAsync(
            CreateDBClusterParameterGroupRequest request) {
        return createDBClusterParameterGroupAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future createDBClusterParameterGroupAsync(
            final CreateDBClusterParameterGroupRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DBClusterParameterGroup call() throws Exception {
                        DBClusterParameterGroup result;
                        try {
                            result = createDBClusterParameterGroup(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 createDBClusterSnapshotAsync(
            CreateDBClusterSnapshotRequest request) {
        return createDBClusterSnapshotAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future createDBClusterSnapshotAsync(
            final CreateDBClusterSnapshotRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DBClusterSnapshot call() throws Exception {
                        DBClusterSnapshot result;
                        try {
                            result = createDBClusterSnapshot(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 createDBInstanceAsync(
            CreateDBInstanceRequest request) {
        return createDBInstanceAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future createDBInstanceAsync(
            final CreateDBInstanceRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DBInstance call() throws Exception {
                        DBInstance result;
                        try {
                            result = createDBInstance(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 createDBInstanceReadReplicaAsync(
            CreateDBInstanceReadReplicaRequest request) {
        return createDBInstanceReadReplicaAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future createDBInstanceReadReplicaAsync(
            final CreateDBInstanceReadReplicaRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DBInstance call() throws Exception {
                        DBInstance result;
                        try {
                            result = createDBInstanceReadReplica(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 createDBParameterGroupAsync(
            CreateDBParameterGroupRequest request) {
        return createDBParameterGroupAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future createDBParameterGroupAsync(
            final CreateDBParameterGroupRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DBParameterGroup call() throws Exception {
                        DBParameterGroup result;
                        try {
                            result = createDBParameterGroup(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 createDBSecurityGroupAsync(
            CreateDBSecurityGroupRequest request) {
        return createDBSecurityGroupAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future createDBSecurityGroupAsync(
            final CreateDBSecurityGroupRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DBSecurityGroup call() throws Exception {
                        DBSecurityGroup result;
                        try {
                            result = createDBSecurityGroup(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 createDBSnapshotAsync(
            CreateDBSnapshotRequest request) {
        return createDBSnapshotAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future createDBSnapshotAsync(
            final CreateDBSnapshotRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DBSnapshot call() throws Exception {
                        DBSnapshot result;
                        try {
                            result = createDBSnapshot(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 createDBSubnetGroupAsync(
            CreateDBSubnetGroupRequest request) {
        return createDBSubnetGroupAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future createDBSubnetGroupAsync(
            final CreateDBSubnetGroupRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DBSubnetGroup call() throws Exception {
                        DBSubnetGroup result;
                        try {
                            result = createDBSubnetGroup(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 createEventSubscriptionAsync(
            CreateEventSubscriptionRequest request) {
        return createEventSubscriptionAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future createEventSubscriptionAsync(
            final CreateEventSubscriptionRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public EventSubscription call() throws Exception {
                        EventSubscription result;
                        try {
                            result = createEventSubscription(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 createOptionGroupAsync(
            CreateOptionGroupRequest request) {
        return createOptionGroupAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future createOptionGroupAsync(
            final CreateOptionGroupRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public OptionGroup call() throws Exception {
                        OptionGroup result;
                        try {
                            result = createOptionGroup(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 deleteDBClusterAsync(
            DeleteDBClusterRequest request) {
        return deleteDBClusterAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future deleteDBClusterAsync(
            final DeleteDBClusterRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DBCluster call() throws Exception {
                        DBCluster result;
                        try {
                            result = deleteDBCluster(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 deleteDBClusterParameterGroupAsync(
            DeleteDBClusterParameterGroupRequest request) {
        return deleteDBClusterParameterGroupAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future deleteDBClusterParameterGroupAsync(
            final DeleteDBClusterParameterGroupRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DeleteDBClusterParameterGroupResult call()
                            throws Exception {
                        DeleteDBClusterParameterGroupResult result;
                        try {
                            result = deleteDBClusterParameterGroup(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 deleteDBClusterSnapshotAsync(
            DeleteDBClusterSnapshotRequest request) {
        return deleteDBClusterSnapshotAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future deleteDBClusterSnapshotAsync(
            final DeleteDBClusterSnapshotRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DBClusterSnapshot call() throws Exception {
                        DBClusterSnapshot result;
                        try {
                            result = deleteDBClusterSnapshot(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 deleteDBInstanceAsync(
            DeleteDBInstanceRequest request) {
        return deleteDBInstanceAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future deleteDBInstanceAsync(
            final DeleteDBInstanceRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DBInstance call() throws Exception {
                        DBInstance result;
                        try {
                            result = deleteDBInstance(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 deleteDBParameterGroupAsync(
            DeleteDBParameterGroupRequest request) {
        return deleteDBParameterGroupAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future deleteDBParameterGroupAsync(
            final DeleteDBParameterGroupRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DeleteDBParameterGroupResult call() throws Exception {
                        DeleteDBParameterGroupResult result;
                        try {
                            result = deleteDBParameterGroup(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 deleteDBSecurityGroupAsync(
            DeleteDBSecurityGroupRequest request) {
        return deleteDBSecurityGroupAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future deleteDBSecurityGroupAsync(
            final DeleteDBSecurityGroupRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DeleteDBSecurityGroupResult call() throws Exception {
                        DeleteDBSecurityGroupResult result;
                        try {
                            result = deleteDBSecurityGroup(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 deleteDBSnapshotAsync(
            DeleteDBSnapshotRequest request) {
        return deleteDBSnapshotAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future deleteDBSnapshotAsync(
            final DeleteDBSnapshotRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DBSnapshot call() throws Exception {
                        DBSnapshot result;
                        try {
                            result = deleteDBSnapshot(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 deleteDBSubnetGroupAsync(
            DeleteDBSubnetGroupRequest request) {
        return deleteDBSubnetGroupAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future deleteDBSubnetGroupAsync(
            final DeleteDBSubnetGroupRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DeleteDBSubnetGroupResult call() throws Exception {
                        DeleteDBSubnetGroupResult result;
                        try {
                            result = deleteDBSubnetGroup(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 deleteEventSubscriptionAsync(
            DeleteEventSubscriptionRequest request) {
        return deleteEventSubscriptionAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future deleteEventSubscriptionAsync(
            final DeleteEventSubscriptionRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public EventSubscription call() throws Exception {
                        EventSubscription result;
                        try {
                            result = deleteEventSubscription(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 deleteOptionGroupAsync(
            DeleteOptionGroupRequest request) {
        return deleteOptionGroupAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future deleteOptionGroupAsync(
            final DeleteOptionGroupRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DeleteOptionGroupResult call() throws Exception {
                        DeleteOptionGroupResult result;
                        try {
                            result = deleteOptionGroup(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 describeAccountAttributesAsync(
            DescribeAccountAttributesRequest request) {
        return describeAccountAttributesAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future describeAccountAttributesAsync(
            final DescribeAccountAttributesRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DescribeAccountAttributesResult call()
                            throws Exception {
                        DescribeAccountAttributesResult result;
                        try {
                            result = describeAccountAttributes(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 DescribeAccountAttributes
     * operation.
     *
     * @see #describeAccountAttributesAsync(DescribeAccountAttributesRequest)
     */
    @Override
    public java.util.concurrent.Future describeAccountAttributesAsync() {
        return describeAccountAttributesAsync(new DescribeAccountAttributesRequest());
    }
    /**
     * Simplified method form for invoking the DescribeAccountAttributes
     * operation with an AsyncHandler.
     *
     * @see #describeAccountAttributesAsync(DescribeAccountAttributesRequest,
     *      com.amazonaws.handlers.AsyncHandler)
     */
    public java.util.concurrent.Future describeAccountAttributesAsync(
            com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return describeAccountAttributesAsync(
                new DescribeAccountAttributesRequest(), asyncHandler);
    }
    @Override
    public java.util.concurrent.Future describeCertificatesAsync(
            DescribeCertificatesRequest request) {
        return describeCertificatesAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future describeCertificatesAsync(
            final DescribeCertificatesRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DescribeCertificatesResult call() throws Exception {
                        DescribeCertificatesResult result;
                        try {
                            result = describeCertificates(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 DescribeCertificates operation.
     *
     * @see #describeCertificatesAsync(DescribeCertificatesRequest)
     */
    @Override
    public java.util.concurrent.Future describeCertificatesAsync() {
        return describeCertificatesAsync(new DescribeCertificatesRequest());
    }
    /**
     * Simplified method form for invoking the DescribeCertificates operation
     * with an AsyncHandler.
     *
     * @see #describeCertificatesAsync(DescribeCertificatesRequest,
     *      com.amazonaws.handlers.AsyncHandler)
     */
    public java.util.concurrent.Future describeCertificatesAsync(
            com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return describeCertificatesAsync(new DescribeCertificatesRequest(),
                asyncHandler);
    }
    @Override
    public java.util.concurrent.Future describeDBClusterParameterGroupsAsync(
            DescribeDBClusterParameterGroupsRequest request) {
        return describeDBClusterParameterGroupsAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future describeDBClusterParameterGroupsAsync(
            final DescribeDBClusterParameterGroupsRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DescribeDBClusterParameterGroupsResult call()
                            throws Exception {
                        DescribeDBClusterParameterGroupsResult result;
                        try {
                            result = describeDBClusterParameterGroups(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 DescribeDBClusterParameterGroups
     * operation.
     *
     * @see #describeDBClusterParameterGroupsAsync(DescribeDBClusterParameterGroupsRequest)
     */
    @Override
    public java.util.concurrent.Future describeDBClusterParameterGroupsAsync() {
        return describeDBClusterParameterGroupsAsync(new DescribeDBClusterParameterGroupsRequest());
    }
    /**
     * Simplified method form for invoking the DescribeDBClusterParameterGroups
     * operation with an AsyncHandler.
     *
     * @see #describeDBClusterParameterGroupsAsync(DescribeDBClusterParameterGroupsRequest,
     *      com.amazonaws.handlers.AsyncHandler)
     */
    public java.util.concurrent.Future describeDBClusterParameterGroupsAsync(
            com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return describeDBClusterParameterGroupsAsync(
                new DescribeDBClusterParameterGroupsRequest(), asyncHandler);
    }
    @Override
    public java.util.concurrent.Future describeDBClusterParametersAsync(
            DescribeDBClusterParametersRequest request) {
        return describeDBClusterParametersAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future describeDBClusterParametersAsync(
            final DescribeDBClusterParametersRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DescribeDBClusterParametersResult call()
                            throws Exception {
                        DescribeDBClusterParametersResult result;
                        try {
                            result = describeDBClusterParameters(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 describeDBClusterSnapshotAttributesAsync(
            DescribeDBClusterSnapshotAttributesRequest request) {
        return describeDBClusterSnapshotAttributesAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future describeDBClusterSnapshotAttributesAsync(
            final DescribeDBClusterSnapshotAttributesRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DBClusterSnapshotAttributesResult call()
                            throws Exception {
                        DBClusterSnapshotAttributesResult result;
                        try {
                            result = describeDBClusterSnapshotAttributes(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 describeDBClusterSnapshotsAsync(
            DescribeDBClusterSnapshotsRequest request) {
        return describeDBClusterSnapshotsAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future describeDBClusterSnapshotsAsync(
            final DescribeDBClusterSnapshotsRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DescribeDBClusterSnapshotsResult call()
                            throws Exception {
                        DescribeDBClusterSnapshotsResult result;
                        try {
                            result = describeDBClusterSnapshots(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 DescribeDBClusterSnapshots
     * operation.
     *
     * @see #describeDBClusterSnapshotsAsync(DescribeDBClusterSnapshotsRequest)
     */
    @Override
    public java.util.concurrent.Future describeDBClusterSnapshotsAsync() {
        return describeDBClusterSnapshotsAsync(new DescribeDBClusterSnapshotsRequest());
    }
    /**
     * Simplified method form for invoking the DescribeDBClusterSnapshots
     * operation with an AsyncHandler.
     *
     * @see #describeDBClusterSnapshotsAsync(DescribeDBClusterSnapshotsRequest,
     *      com.amazonaws.handlers.AsyncHandler)
     */
    public java.util.concurrent.Future describeDBClusterSnapshotsAsync(
            com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return describeDBClusterSnapshotsAsync(
                new DescribeDBClusterSnapshotsRequest(), asyncHandler);
    }
    @Override
    public java.util.concurrent.Future describeDBClustersAsync(
            DescribeDBClustersRequest request) {
        return describeDBClustersAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future describeDBClustersAsync(
            final DescribeDBClustersRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DescribeDBClustersResult call() throws Exception {
                        DescribeDBClustersResult result;
                        try {
                            result = describeDBClusters(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 DescribeDBClusters operation.
     *
     * @see #describeDBClustersAsync(DescribeDBClustersRequest)
     */
    @Override
    public java.util.concurrent.Future describeDBClustersAsync() {
        return describeDBClustersAsync(new DescribeDBClustersRequest());
    }
    /**
     * Simplified method form for invoking the DescribeDBClusters operation with
     * an AsyncHandler.
     *
     * @see #describeDBClustersAsync(DescribeDBClustersRequest,
     *      com.amazonaws.handlers.AsyncHandler)
     */
    public java.util.concurrent.Future describeDBClustersAsync(
            com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return describeDBClustersAsync(new DescribeDBClustersRequest(),
                asyncHandler);
    }
    @Override
    public java.util.concurrent.Future describeDBEngineVersionsAsync(
            DescribeDBEngineVersionsRequest request) {
        return describeDBEngineVersionsAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future describeDBEngineVersionsAsync(
            final DescribeDBEngineVersionsRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DescribeDBEngineVersionsResult call()
                            throws Exception {
                        DescribeDBEngineVersionsResult result;
                        try {
                            result = describeDBEngineVersions(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 DescribeDBEngineVersions
     * operation.
     *
     * @see #describeDBEngineVersionsAsync(DescribeDBEngineVersionsRequest)
     */
    @Override
    public java.util.concurrent.Future describeDBEngineVersionsAsync() {
        return describeDBEngineVersionsAsync(new DescribeDBEngineVersionsRequest());
    }
    /**
     * Simplified method form for invoking the DescribeDBEngineVersions
     * operation with an AsyncHandler.
     *
     * @see #describeDBEngineVersionsAsync(DescribeDBEngineVersionsRequest,
     *      com.amazonaws.handlers.AsyncHandler)
     */
    public java.util.concurrent.Future describeDBEngineVersionsAsync(
            com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return describeDBEngineVersionsAsync(
                new DescribeDBEngineVersionsRequest(), asyncHandler);
    }
    @Override
    public java.util.concurrent.Future describeDBInstancesAsync(
            DescribeDBInstancesRequest request) {
        return describeDBInstancesAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future describeDBInstancesAsync(
            final DescribeDBInstancesRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DescribeDBInstancesResult call() throws Exception {
                        DescribeDBInstancesResult result;
                        try {
                            result = describeDBInstances(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 DescribeDBInstances operation.
     *
     * @see #describeDBInstancesAsync(DescribeDBInstancesRequest)
     */
    @Override
    public java.util.concurrent.Future describeDBInstancesAsync() {
        return describeDBInstancesAsync(new DescribeDBInstancesRequest());
    }
    /**
     * Simplified method form for invoking the DescribeDBInstances operation
     * with an AsyncHandler.
     *
     * @see #describeDBInstancesAsync(DescribeDBInstancesRequest,
     *      com.amazonaws.handlers.AsyncHandler)
     */
    public java.util.concurrent.Future describeDBInstancesAsync(
            com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return describeDBInstancesAsync(new DescribeDBInstancesRequest(),
                asyncHandler);
    }
    @Override
    public java.util.concurrent.Future describeDBLogFilesAsync(
            DescribeDBLogFilesRequest request) {
        return describeDBLogFilesAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future describeDBLogFilesAsync(
            final DescribeDBLogFilesRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DescribeDBLogFilesResult call() throws Exception {
                        DescribeDBLogFilesResult result;
                        try {
                            result = describeDBLogFiles(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 describeDBParameterGroupsAsync(
            DescribeDBParameterGroupsRequest request) {
        return describeDBParameterGroupsAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future describeDBParameterGroupsAsync(
            final DescribeDBParameterGroupsRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DescribeDBParameterGroupsResult call()
                            throws Exception {
                        DescribeDBParameterGroupsResult result;
                        try {
                            result = describeDBParameterGroups(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 DescribeDBParameterGroups
     * operation.
     *
     * @see #describeDBParameterGroupsAsync(DescribeDBParameterGroupsRequest)
     */
    @Override
    public java.util.concurrent.Future describeDBParameterGroupsAsync() {
        return describeDBParameterGroupsAsync(new DescribeDBParameterGroupsRequest());
    }
    /**
     * Simplified method form for invoking the DescribeDBParameterGroups
     * operation with an AsyncHandler.
     *
     * @see #describeDBParameterGroupsAsync(DescribeDBParameterGroupsRequest,
     *      com.amazonaws.handlers.AsyncHandler)
     */
    public java.util.concurrent.Future describeDBParameterGroupsAsync(
            com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return describeDBParameterGroupsAsync(
                new DescribeDBParameterGroupsRequest(), asyncHandler);
    }
    @Override
    public java.util.concurrent.Future describeDBParametersAsync(
            DescribeDBParametersRequest request) {
        return describeDBParametersAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future describeDBParametersAsync(
            final DescribeDBParametersRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DescribeDBParametersResult call() throws Exception {
                        DescribeDBParametersResult result;
                        try {
                            result = describeDBParameters(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 describeDBSecurityGroupsAsync(
            DescribeDBSecurityGroupsRequest request) {
        return describeDBSecurityGroupsAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future describeDBSecurityGroupsAsync(
            final DescribeDBSecurityGroupsRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DescribeDBSecurityGroupsResult call()
                            throws Exception {
                        DescribeDBSecurityGroupsResult result;
                        try {
                            result = describeDBSecurityGroups(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 DescribeDBSecurityGroups
     * operation.
     *
     * @see #describeDBSecurityGroupsAsync(DescribeDBSecurityGroupsRequest)
     */
    @Override
    public java.util.concurrent.Future describeDBSecurityGroupsAsync() {
        return describeDBSecurityGroupsAsync(new DescribeDBSecurityGroupsRequest());
    }
    /**
     * Simplified method form for invoking the DescribeDBSecurityGroups
     * operation with an AsyncHandler.
     *
     * @see #describeDBSecurityGroupsAsync(DescribeDBSecurityGroupsRequest,
     *      com.amazonaws.handlers.AsyncHandler)
     */
    public java.util.concurrent.Future describeDBSecurityGroupsAsync(
            com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return describeDBSecurityGroupsAsync(
                new DescribeDBSecurityGroupsRequest(), asyncHandler);
    }
    @Override
    public java.util.concurrent.Future describeDBSnapshotAttributesAsync(
            DescribeDBSnapshotAttributesRequest request) {
        return describeDBSnapshotAttributesAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future describeDBSnapshotAttributesAsync(
            final DescribeDBSnapshotAttributesRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DBSnapshotAttributesResult call() throws Exception {
                        DBSnapshotAttributesResult result;
                        try {
                            result = describeDBSnapshotAttributes(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 DescribeDBSnapshotAttributes
     * operation.
     *
     * @see #describeDBSnapshotAttributesAsync(DescribeDBSnapshotAttributesRequest)
     */
    @Override
    public java.util.concurrent.Future describeDBSnapshotAttributesAsync() {
        return describeDBSnapshotAttributesAsync(new DescribeDBSnapshotAttributesRequest());
    }
    /**
     * Simplified method form for invoking the DescribeDBSnapshotAttributes
     * operation with an AsyncHandler.
     *
     * @see #describeDBSnapshotAttributesAsync(DescribeDBSnapshotAttributesRequest,
     *      com.amazonaws.handlers.AsyncHandler)
     */
    public java.util.concurrent.Future describeDBSnapshotAttributesAsync(
            com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return describeDBSnapshotAttributesAsync(
                new DescribeDBSnapshotAttributesRequest(), asyncHandler);
    }
    @Override
    public java.util.concurrent.Future describeDBSnapshotsAsync(
            DescribeDBSnapshotsRequest request) {
        return describeDBSnapshotsAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future describeDBSnapshotsAsync(
            final DescribeDBSnapshotsRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DescribeDBSnapshotsResult call() throws Exception {
                        DescribeDBSnapshotsResult result;
                        try {
                            result = describeDBSnapshots(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 DescribeDBSnapshots operation.
     *
     * @see #describeDBSnapshotsAsync(DescribeDBSnapshotsRequest)
     */
    @Override
    public java.util.concurrent.Future describeDBSnapshotsAsync() {
        return describeDBSnapshotsAsync(new DescribeDBSnapshotsRequest());
    }
    /**
     * Simplified method form for invoking the DescribeDBSnapshots operation
     * with an AsyncHandler.
     *
     * @see #describeDBSnapshotsAsync(DescribeDBSnapshotsRequest,
     *      com.amazonaws.handlers.AsyncHandler)
     */
    public java.util.concurrent.Future describeDBSnapshotsAsync(
            com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return describeDBSnapshotsAsync(new DescribeDBSnapshotsRequest(),
                asyncHandler);
    }
    @Override
    public java.util.concurrent.Future describeDBSubnetGroupsAsync(
            DescribeDBSubnetGroupsRequest request) {
        return describeDBSubnetGroupsAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future describeDBSubnetGroupsAsync(
            final DescribeDBSubnetGroupsRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DescribeDBSubnetGroupsResult call() throws Exception {
                        DescribeDBSubnetGroupsResult result;
                        try {
                            result = describeDBSubnetGroups(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 DescribeDBSubnetGroups operation.
     *
     * @see #describeDBSubnetGroupsAsync(DescribeDBSubnetGroupsRequest)
     */
    @Override
    public java.util.concurrent.Future describeDBSubnetGroupsAsync() {
        return describeDBSubnetGroupsAsync(new DescribeDBSubnetGroupsRequest());
    }
    /**
     * Simplified method form for invoking the DescribeDBSubnetGroups operation
     * with an AsyncHandler.
     *
     * @see #describeDBSubnetGroupsAsync(DescribeDBSubnetGroupsRequest,
     *      com.amazonaws.handlers.AsyncHandler)
     */
    public java.util.concurrent.Future describeDBSubnetGroupsAsync(
            com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return describeDBSubnetGroupsAsync(new DescribeDBSubnetGroupsRequest(),
                asyncHandler);
    }
    @Override
    public java.util.concurrent.Future describeEngineDefaultClusterParametersAsync(
            DescribeEngineDefaultClusterParametersRequest request) {
        return describeEngineDefaultClusterParametersAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future describeEngineDefaultClusterParametersAsync(
            final DescribeEngineDefaultClusterParametersRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public EngineDefaults call() throws Exception {
                        EngineDefaults result;
                        try {
                            result = describeEngineDefaultClusterParameters(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 describeEngineDefaultParametersAsync(
            DescribeEngineDefaultParametersRequest request) {
        return describeEngineDefaultParametersAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future describeEngineDefaultParametersAsync(
            final DescribeEngineDefaultParametersRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public EngineDefaults call() throws Exception {
                        EngineDefaults result;
                        try {
                            result = describeEngineDefaultParameters(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 describeEventCategoriesAsync(
            DescribeEventCategoriesRequest request) {
        return describeEventCategoriesAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future describeEventCategoriesAsync(
            final DescribeEventCategoriesRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DescribeEventCategoriesResult call()
                            throws Exception {
                        DescribeEventCategoriesResult result;
                        try {
                            result = describeEventCategories(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 DescribeEventCategories
     * operation.
     *
     * @see #describeEventCategoriesAsync(DescribeEventCategoriesRequest)
     */
    @Override
    public java.util.concurrent.Future describeEventCategoriesAsync() {
        return describeEventCategoriesAsync(new DescribeEventCategoriesRequest());
    }
    /**
     * Simplified method form for invoking the DescribeEventCategories operation
     * with an AsyncHandler.
     *
     * @see #describeEventCategoriesAsync(DescribeEventCategoriesRequest,
     *      com.amazonaws.handlers.AsyncHandler)
     */
    public java.util.concurrent.Future describeEventCategoriesAsync(
            com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return describeEventCategoriesAsync(
                new DescribeEventCategoriesRequest(), asyncHandler);
    }
    @Override
    public java.util.concurrent.Future describeEventSubscriptionsAsync(
            DescribeEventSubscriptionsRequest request) {
        return describeEventSubscriptionsAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future describeEventSubscriptionsAsync(
            final DescribeEventSubscriptionsRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DescribeEventSubscriptionsResult call()
                            throws Exception {
                        DescribeEventSubscriptionsResult result;
                        try {
                            result = describeEventSubscriptions(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 DescribeEventSubscriptions
     * operation.
     *
     * @see #describeEventSubscriptionsAsync(DescribeEventSubscriptionsRequest)
     */
    @Override
    public java.util.concurrent.Future describeEventSubscriptionsAsync() {
        return describeEventSubscriptionsAsync(new DescribeEventSubscriptionsRequest());
    }
    /**
     * Simplified method form for invoking the DescribeEventSubscriptions
     * operation with an AsyncHandler.
     *
     * @see #describeEventSubscriptionsAsync(DescribeEventSubscriptionsRequest,
     *      com.amazonaws.handlers.AsyncHandler)
     */
    public java.util.concurrent.Future describeEventSubscriptionsAsync(
            com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return describeEventSubscriptionsAsync(
                new DescribeEventSubscriptionsRequest(), asyncHandler);
    }
    @Override
    public java.util.concurrent.Future describeEventsAsync(
            DescribeEventsRequest request) {
        return describeEventsAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future describeEventsAsync(
            final DescribeEventsRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DescribeEventsResult call() throws Exception {
                        DescribeEventsResult result;
                        try {
                            result = describeEvents(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 DescribeEvents operation.
     *
     * @see #describeEventsAsync(DescribeEventsRequest)
     */
    @Override
    public java.util.concurrent.Future describeEventsAsync() {
        return describeEventsAsync(new DescribeEventsRequest());
    }
    /**
     * Simplified method form for invoking the DescribeEvents operation with an
     * AsyncHandler.
     *
     * @see #describeEventsAsync(DescribeEventsRequest,
     *      com.amazonaws.handlers.AsyncHandler)
     */
    public java.util.concurrent.Future describeEventsAsync(
            com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return describeEventsAsync(new DescribeEventsRequest(), asyncHandler);
    }
    @Override
    public java.util.concurrent.Future describeOptionGroupOptionsAsync(
            DescribeOptionGroupOptionsRequest request) {
        return describeOptionGroupOptionsAsync(request, null);
    }
    @Override
    public java.util.concurrent.Future describeOptionGroupOptionsAsync(
            final DescribeOptionGroupOptionsRequest request,
            final com.amazonaws.handlers.AsyncHandler asyncHandler) {
        return executorService
                .submit(new java.util.concurrent.Callable() {
                    @Override
                    public DescribeOptionGroupOptionsResult call()
                            throws Exception {
                        DescribeOptionGroupOptionsResult result;
                        try {
                            result = describeOptionGroupOptions(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