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

com.amazonaws.services.rds.AmazonRDSClient Maven / Gradle / Ivy

Go to download

The AWS Java SDK for Amazon RDS module holds the client classes that are used for communicating with Amazon Relational Database Service

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

import org.w3c.dom.*;

import java.net.*;
import java.util.*;
import java.util.Map.Entry;

import org.apache.commons.logging.*;

import com.amazonaws.*;
import com.amazonaws.auth.*;
import com.amazonaws.handlers.*;
import com.amazonaws.http.*;
import com.amazonaws.internal.*;
import com.amazonaws.internal.auth.*;
import com.amazonaws.metrics.*;
import com.amazonaws.regions.*;
import com.amazonaws.transform.*;
import com.amazonaws.util.*;
import com.amazonaws.protocol.json.*;
import com.amazonaws.util.AWSRequestMetrics.Field;
import com.amazonaws.annotation.ThreadSafe;
import com.amazonaws.client.AwsSyncClientParams;
import com.amazonaws.services.rds.waiters.AmazonRDSWaiters;

import com.amazonaws.AmazonServiceException;

import com.amazonaws.services.rds.model.*;
import com.amazonaws.services.rds.model.transform.*;

/**
 * Client for accessing Amazon RDS. All service calls made using this client are
 * blocking, and will not return until the service call 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 *

* */ @ThreadSafe public class AmazonRDSClient extends AmazonWebServiceClient implements AmazonRDS { /** Provider for AWS credentials. */ private final AWSCredentialsProvider awsCredentialsProvider; private static final Log log = LogFactory.getLog(AmazonRDS.class); /** Default signing name for the service. */ private static final String DEFAULT_SIGNING_NAME = "rds"; private volatile AmazonRDSWaiters waiters; /** * Client configuration factory providing ClientConfigurations tailored to * this client */ protected static final ClientConfigurationFactory configFactory = new ClientConfigurationFactory(); /** * List of exception unmarshallers for all modeled exceptions */ protected final List> exceptionUnmarshallers = new ArrayList>(); /** * Constructs a new 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
  • *
  • Instance profile credentials delivered through the Amazon EC2 * metadata service
  • *
* *

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

* All service calls made using this new client object are blocking, and * will not return until the service call completes. * * @param clientConfiguration * The client configuration options controlling how this client * connects to Amazon RDS (ex: proxy settings, retry counts, etc.). * * @see DefaultAWSCredentialsProviderChain */ public AmazonRDSClient(ClientConfiguration clientConfiguration) { this(new DefaultAWSCredentialsProviderChain(), clientConfiguration); } /** * Constructs a new client to invoke service methods on Amazon RDS using the * specified AWS account credentials. * *

* All service calls made using this new client object are blocking, and * will not return until the service call completes. * * @param awsCredentials * The AWS credentials (access key ID and secret key) to use when * authenticating with AWS services. */ public AmazonRDSClient(AWSCredentials awsCredentials) { this(awsCredentials, configFactory.getConfig()); } /** * Constructs a new client to invoke service methods on Amazon RDS using the * specified AWS account credentials and client configuration options. * *

* All service calls made using this new client object are blocking, and * will not return until the service call completes. * * @param awsCredentials * The AWS credentials (access key ID and secret key) to use when * authenticating with AWS services. * @param clientConfiguration * The client configuration options controlling how this client * connects to Amazon RDS (ex: proxy settings, retry counts, etc.). */ public AmazonRDSClient(AWSCredentials awsCredentials, ClientConfiguration clientConfiguration) { super(clientConfiguration); this.awsCredentialsProvider = new StaticCredentialsProvider( awsCredentials); init(); } /** * Constructs a new client to invoke service methods on Amazon RDS using the * specified AWS account credentials provider. * *

* All service calls made using this new client object are blocking, and * will not return until the service call completes. * * @param awsCredentialsProvider * The AWS credentials provider which will provide credentials to * authenticate requests with AWS services. */ public AmazonRDSClient(AWSCredentialsProvider awsCredentialsProvider) { this(awsCredentialsProvider, configFactory.getConfig()); } /** * Constructs a new client to invoke service methods on Amazon RDS using the * specified AWS account credentials provider and client configuration * options. * *

* All service calls made using this new client object are blocking, and * will not return until the service call completes. * * @param awsCredentialsProvider * The AWS credentials provider which will provide credentials to * authenticate requests with AWS services. * @param clientConfiguration * The client configuration options controlling how this client * connects to Amazon RDS (ex: proxy settings, retry counts, etc.). */ public AmazonRDSClient(AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration) { this(awsCredentialsProvider, clientConfiguration, null); } /** * Constructs a new client to invoke service methods on Amazon RDS using the * specified AWS account credentials provider, client configuration options, * and request metric collector. * *

* All service calls made using this new client object are blocking, and * will not return until the service call completes. * * @param awsCredentialsProvider * The AWS credentials provider which will provide credentials to * authenticate requests with AWS services. * @param clientConfiguration * The client configuration options controlling how this client * connects to Amazon RDS (ex: proxy settings, retry counts, etc.). * @param requestMetricCollector * optional request metric collector */ public AmazonRDSClient(AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration, RequestMetricCollector requestMetricCollector) { super(clientConfiguration, requestMetricCollector); this.awsCredentialsProvider = awsCredentialsProvider; init(); } /** * Constructs a new client to invoke service methods on Amazon RDS using the * specified parameters. * *

* All service calls made using this new client object are blocking, and * will not return until the service call completes. * * @param clientParams * Object providing client parameters. */ AmazonRDSClient(AwsSyncClientParams clientParams) { super(clientParams); this.awsCredentialsProvider = clientParams.getCredentialsProvider(); init(); } private void init() { exceptionUnmarshallers .add(new OptionGroupAlreadyExistsExceptionUnmarshaller()); exceptionUnmarshallers .add(new OptionGroupQuotaExceededExceptionUnmarshaller()); exceptionUnmarshallers .add(new DBSnapshotNotFoundExceptionUnmarshaller()); exceptionUnmarshallers .add(new SubscriptionCategoryNotFoundExceptionUnmarshaller()); exceptionUnmarshallers.add(new InvalidRestoreExceptionUnmarshaller()); exceptionUnmarshallers .add(new DBInstanceAlreadyExistsExceptionUnmarshaller()); exceptionUnmarshallers .add(new DBSnapshotAlreadyExistsExceptionUnmarshaller()); exceptionUnmarshallers.add(new SNSInvalidTopicExceptionUnmarshaller()); exceptionUnmarshallers .add(new DBParameterGroupAlreadyExistsExceptionUnmarshaller()); exceptionUnmarshallers .add(new InvalidDBInstanceStateExceptionUnmarshaller()); exceptionUnmarshallers .add(new DBLogFileNotFoundExceptionUnmarshaller()); exceptionUnmarshallers .add(new InvalidOptionGroupStateExceptionUnmarshaller()); exceptionUnmarshallers .add(new InvalidDBSubnetGroupStateExceptionUnmarshaller()); exceptionUnmarshallers .add(new DBSecurityGroupNotSupportedExceptionUnmarshaller()); exceptionUnmarshallers .add(new InsufficientDBClusterCapacityExceptionUnmarshaller()); exceptionUnmarshallers .add(new InvalidDBSubnetStateExceptionUnmarshaller()); exceptionUnmarshallers .add(new DBSubnetGroupNotAllowedExceptionUnmarshaller()); exceptionUnmarshallers .add(new CertificateNotFoundExceptionUnmarshaller()); exceptionUnmarshallers .add(new InvalidDBSecurityGroupStateExceptionUnmarshaller()); exceptionUnmarshallers .add(new DBSubnetQuotaExceededExceptionUnmarshaller()); exceptionUnmarshallers .add(new InvalidDBSnapshotStateExceptionUnmarshaller()); exceptionUnmarshallers .add(new DBSecurityGroupNotFoundExceptionUnmarshaller()); exceptionUnmarshallers.add(new InvalidS3BucketExceptionUnmarshaller()); exceptionUnmarshallers .add(new ReservedDBInstanceNotFoundExceptionUnmarshaller()); exceptionUnmarshallers .add(new DBSubnetGroupQuotaExceededExceptionUnmarshaller()); exceptionUnmarshallers.add(new ResourceNotFoundExceptionUnmarshaller()); exceptionUnmarshallers .add(new StorageTypeNotSupportedExceptionUnmarshaller()); exceptionUnmarshallers .add(new InsufficientDBInstanceCapacityExceptionUnmarshaller()); exceptionUnmarshallers .add(new DBUpgradeDependencyFailureExceptionUnmarshaller()); exceptionUnmarshallers .add(new KMSKeyNotAccessibleExceptionUnmarshaller()); exceptionUnmarshallers .add(new SubscriptionNotFoundExceptionUnmarshaller()); exceptionUnmarshallers .add(new DBClusterQuotaExceededExceptionUnmarshaller()); exceptionUnmarshallers .add(new InsufficientStorageClusterCapacityExceptionUnmarshaller()); exceptionUnmarshallers .add(new SubnetAlreadyInUseExceptionUnmarshaller()); exceptionUnmarshallers .add(new ProvisionedIopsNotAvailableInAZExceptionUnmarshaller()); exceptionUnmarshallers .add(new DBClusterSnapshotAlreadyExistsExceptionUnmarshaller()); exceptionUnmarshallers .add(new ReservedDBInstanceAlreadyExistsExceptionUnmarshaller()); exceptionUnmarshallers .add(new InvalidEventSubscriptionStateExceptionUnmarshaller()); exceptionUnmarshallers .add(new PointInTimeRestoreNotEnabledExceptionUnmarshaller()); exceptionUnmarshallers .add(new DBParameterGroupNotFoundExceptionUnmarshaller()); exceptionUnmarshallers.add(new InvalidSubnetExceptionUnmarshaller()); exceptionUnmarshallers .add(new DBSubnetGroupAlreadyExistsExceptionUnmarshaller()); exceptionUnmarshallers .add(new SNSNoAuthorizationExceptionUnmarshaller()); exceptionUnmarshallers .add(new DBSubnetGroupDoesNotCoverEnoughAZsExceptionUnmarshaller()); exceptionUnmarshallers .add(new DBClusterSnapshotNotFoundExceptionUnmarshaller()); exceptionUnmarshallers .add(new DBSubnetGroupNotFoundExceptionUnmarshaller()); exceptionUnmarshallers .add(new AuthorizationQuotaExceededExceptionUnmarshaller()); exceptionUnmarshallers .add(new InstanceQuotaExceededExceptionUnmarshaller()); exceptionUnmarshallers .add(new DBClusterParameterGroupNotFoundExceptionUnmarshaller()); exceptionUnmarshallers .add(new DBSecurityGroupQuotaExceededExceptionUnmarshaller()); exceptionUnmarshallers .add(new SnapshotQuotaExceededExceptionUnmarshaller()); exceptionUnmarshallers .add(new DBInstanceNotFoundExceptionUnmarshaller()); exceptionUnmarshallers .add(new SharedSnapshotQuotaExceededExceptionUnmarshaller()); exceptionUnmarshallers .add(new ReservedDBInstanceQuotaExceededExceptionUnmarshaller()); exceptionUnmarshallers .add(new InvalidDBClusterStateExceptionUnmarshaller()); exceptionUnmarshallers .add(new DBClusterAlreadyExistsExceptionUnmarshaller()); exceptionUnmarshallers .add(new InvalidVPCNetworkStateExceptionUnmarshaller()); exceptionUnmarshallers .add(new SNSTopicArnNotFoundExceptionUnmarshaller()); exceptionUnmarshallers .add(new InvalidDBSubnetGroupExceptionUnmarshaller()); exceptionUnmarshallers .add(new SubscriptionAlreadyExistExceptionUnmarshaller()); exceptionUnmarshallers .add(new DBParameterGroupQuotaExceededExceptionUnmarshaller()); exceptionUnmarshallers .add(new DBClusterNotFoundExceptionUnmarshaller()); exceptionUnmarshallers .add(new OptionGroupNotFoundExceptionUnmarshaller()); exceptionUnmarshallers .add(new InvalidDBClusterSnapshotStateExceptionUnmarshaller()); exceptionUnmarshallers .add(new DBSecurityGroupAlreadyExistsExceptionUnmarshaller()); exceptionUnmarshallers.add(new SourceNotFoundExceptionUnmarshaller()); exceptionUnmarshallers .add(new ReservedDBInstancesOfferingNotFoundExceptionUnmarshaller()); exceptionUnmarshallers .add(new InvalidDBParameterGroupStateExceptionUnmarshaller()); exceptionUnmarshallers.add(new DomainNotFoundExceptionUnmarshaller()); exceptionUnmarshallers .add(new EventSubscriptionQuotaExceededExceptionUnmarshaller()); exceptionUnmarshallers .add(new AuthorizationAlreadyExistsExceptionUnmarshaller()); exceptionUnmarshallers .add(new StorageQuotaExceededExceptionUnmarshaller()); exceptionUnmarshallers .add(new AuthorizationNotFoundExceptionUnmarshaller()); exceptionUnmarshallers.add(new StandardErrorUnmarshaller( com.amazonaws.services.rds.model.AmazonRDSException.class)); setServiceNameIntern(DEFAULT_SIGNING_NAME); setEndpointPrefix(ENDPOINT_PREFIX); // calling this.setEndPoint(...) will also modify the signer accordingly this.setEndpoint("rds.amazonaws.com"); HandlerChainFactory chainFactory = new HandlerChainFactory(); requestHandler2s .addAll(chainFactory .newRequestHandlerChain("/com/amazonaws/services/rds/request.handlers")); requestHandler2s .addAll(chainFactory .newRequestHandler2Chain("/com/amazonaws/services/rds/request.handler2s")); } /** *

* Adds a source identifier to an existing RDS event notification * subscription. *

* * @param addSourceIdentifierToSubscriptionRequest * @return Result of the AddSourceIdentifierToSubscription operation * returned by the service. * @throws SubscriptionNotFoundException * The subscription name does not exist. * @throws SourceNotFoundException * The requested source could not be found. * @sample AmazonRDS.AddSourceIdentifierToSubscription */ @Override public EventSubscription addSourceIdentifierToSubscription( AddSourceIdentifierToSubscriptionRequest addSourceIdentifierToSubscriptionRequest) { ExecutionContext executionContext = createExecutionContext(addSourceIdentifierToSubscriptionRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new AddSourceIdentifierToSubscriptionRequestMarshaller() .marshall(super .beforeMarshalling(addSourceIdentifierToSubscriptionRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new EventSubscriptionStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Adds metadata tags to an Amazon RDS resource. These tags can also be used * with cost allocation reporting to track cost associated with Amazon RDS * resources, or used in a Condition statement in an IAM policy for Amazon * RDS. *

*

* For an overview on tagging Amazon RDS resources, see Tagging Amazon RDS Resources. *

* * @param addTagsToResourceRequest * @return Result of the AddTagsToResource operation returned by the * service. * @throws DBInstanceNotFoundException * DBInstanceIdentifier does not refer to an existing DB * instance. * @throws DBSnapshotNotFoundException * DBSnapshotIdentifier does not refer to an existing DB * snapshot. * @sample AmazonRDS.AddTagsToResource */ @Override public AddTagsToResourceResult addTagsToResource( AddTagsToResourceRequest addTagsToResourceRequest) { ExecutionContext executionContext = createExecutionContext(addTagsToResourceRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new AddTagsToResourceRequestMarshaller() .marshall(super .beforeMarshalling(addTagsToResourceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new AddTagsToResourceResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Applies a pending maintenance action to a resource (for example, to a DB * instance). *

* * @param applyPendingMaintenanceActionRequest * @return Result of the ApplyPendingMaintenanceAction operation returned by * the service. * @throws ResourceNotFoundException * The specified resource ID was not found. * @sample AmazonRDS.ApplyPendingMaintenanceAction */ @Override public ResourcePendingMaintenanceActions applyPendingMaintenanceAction( ApplyPendingMaintenanceActionRequest applyPendingMaintenanceActionRequest) { ExecutionContext executionContext = createExecutionContext(applyPendingMaintenanceActionRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ApplyPendingMaintenanceActionRequestMarshaller() .marshall(super .beforeMarshalling(applyPendingMaintenanceActionRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ResourcePendingMaintenanceActionsStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Enables ingress to a DBSecurityGroup using one of two forms of * authorization. First, EC2 or VPC security groups can be added to the * DBSecurityGroup if the application using the database is running on EC2 * or VPC instances. Second, IP ranges are available if the application * accessing your database is running on the Internet. Required parameters * for this API are one of CIDR range, EC2SecurityGroupId for VPC, or * (EC2SecurityGroupOwnerId and either EC2SecurityGroupName or * EC2SecurityGroupId for non-VPC). *

* *

* You cannot authorize ingress from an EC2 security group in one region to * an Amazon RDS DB instance in another. You cannot authorize ingress from a * VPC security group in one VPC to an Amazon RDS DB instance in another. *

*
*

* For an overview of CIDR ranges, go to the Wikipedia Tutorial. *

* * @param authorizeDBSecurityGroupIngressRequest * @return Result of the AuthorizeDBSecurityGroupIngress operation returned * by the service. * @throws DBSecurityGroupNotFoundException * DBSecurityGroupName does not refer to an existing DB * security group. * @throws InvalidDBSecurityGroupStateException * The state of the DB security group does not allow deletion. * @throws AuthorizationAlreadyExistsException * The specified CIDRIP or EC2 security group is already authorized * for the specified DB security group. * @throws AuthorizationQuotaExceededException * DB security group authorization quota has been reached. * @sample AmazonRDS.AuthorizeDBSecurityGroupIngress */ @Override public DBSecurityGroup authorizeDBSecurityGroupIngress( AuthorizeDBSecurityGroupIngressRequest authorizeDBSecurityGroupIngressRequest) { ExecutionContext executionContext = createExecutionContext(authorizeDBSecurityGroupIngressRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new AuthorizeDBSecurityGroupIngressRequestMarshaller() .marshall(super .beforeMarshalling(authorizeDBSecurityGroupIngressRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DBSecurityGroupStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Copies the specified DB cluster parameter group. *

* * @param copyDBClusterParameterGroupRequest * @return Result of the CopyDBClusterParameterGroup operation returned by * the service. * @throws DBParameterGroupNotFoundException * DBParameterGroupName does not refer to an existing DB * parameter group. * @throws DBParameterGroupQuotaExceededException * Request would result in user exceeding the allowed number of DB * parameter groups. * @throws DBParameterGroupAlreadyExistsException * A DB parameter group with the same name exists. * @sample AmazonRDS.CopyDBClusterParameterGroup */ @Override public DBClusterParameterGroup copyDBClusterParameterGroup( CopyDBClusterParameterGroupRequest copyDBClusterParameterGroupRequest) { ExecutionContext executionContext = createExecutionContext(copyDBClusterParameterGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CopyDBClusterParameterGroupRequestMarshaller() .marshall(super .beforeMarshalling(copyDBClusterParameterGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DBClusterParameterGroupStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates a snapshot of a DB cluster. For more information on Amazon * Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide. *

* * @param copyDBClusterSnapshotRequest * @return Result of the CopyDBClusterSnapshot operation returned by the * service. * @throws DBClusterSnapshotAlreadyExistsException * User already has a DB cluster snapshot with the given identifier. * @throws DBClusterSnapshotNotFoundException * DBClusterSnapshotIdentifier does not refer to an existing * DB cluster snapshot. * @throws InvalidDBClusterStateException * The DB cluster is not in a valid state. * @throws InvalidDBClusterSnapshotStateException * The supplied value is not a valid DB cluster snapshot state. * @sample AmazonRDS.CopyDBClusterSnapshot */ @Override public DBClusterSnapshot copyDBClusterSnapshot( CopyDBClusterSnapshotRequest copyDBClusterSnapshotRequest) { ExecutionContext executionContext = createExecutionContext(copyDBClusterSnapshotRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CopyDBClusterSnapshotRequestMarshaller() .marshall(super .beforeMarshalling(copyDBClusterSnapshotRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DBClusterSnapshotStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Copies the specified DB parameter group. *

* * @param copyDBParameterGroupRequest * @return Result of the CopyDBParameterGroup operation returned by the * service. * @throws DBParameterGroupNotFoundException * DBParameterGroupName does not refer to an existing DB * parameter group. * @throws DBParameterGroupAlreadyExistsException * A DB parameter group with the same name exists. * @throws DBParameterGroupQuotaExceededException * Request would result in user exceeding the allowed number of DB * parameter groups. * @sample AmazonRDS.CopyDBParameterGroup */ @Override public DBParameterGroup copyDBParameterGroup( CopyDBParameterGroupRequest copyDBParameterGroupRequest) { ExecutionContext executionContext = createExecutionContext(copyDBParameterGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CopyDBParameterGroupRequestMarshaller() .marshall(super .beforeMarshalling(copyDBParameterGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DBParameterGroupStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Copies the specified DB snapshot. The source DB snapshot must be in the * "available" state. *

*

* If you are copying from a shared manual DB snapshot, the * SourceDBSnapshotIdentifier must be the ARN of the shared DB * snapshot. *

* * @param copyDBSnapshotRequest * @return Result of the CopyDBSnapshot operation returned by the service. * @throws DBSnapshotAlreadyExistsException * DBSnapshotIdentifier is already used by an existing * snapshot. * @throws DBSnapshotNotFoundException * DBSnapshotIdentifier does not refer to an existing DB * snapshot. * @throws InvalidDBSnapshotStateException * The state of the DB snapshot does not allow deletion. * @throws SnapshotQuotaExceededException * Request would result in user exceeding the allowed number of DB * snapshots. * @throws KMSKeyNotAccessibleException * Error accessing KMS key. * @sample AmazonRDS.CopyDBSnapshot */ @Override public DBSnapshot copyDBSnapshot(CopyDBSnapshotRequest copyDBSnapshotRequest) { ExecutionContext executionContext = createExecutionContext(copyDBSnapshotRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CopyDBSnapshotRequestMarshaller().marshall(super .beforeMarshalling(copyDBSnapshotRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DBSnapshotStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Copies the specified option group. *

* * @param copyOptionGroupRequest * @return Result of the CopyOptionGroup operation returned by the service. * @throws OptionGroupAlreadyExistsException * The option group you are trying to create already exists. * @throws OptionGroupNotFoundException * The specified option group could not be found. * @throws OptionGroupQuotaExceededException * The quota of 20 option groups was exceeded for this AWS account. * @sample AmazonRDS.CopyOptionGroup */ @Override public OptionGroup copyOptionGroup( CopyOptionGroupRequest copyOptionGroupRequest) { ExecutionContext executionContext = createExecutionContext(copyOptionGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CopyOptionGroupRequestMarshaller().marshall(super .beforeMarshalling(copyOptionGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new OptionGroupStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates a new Amazon Aurora DB cluster. *

*

* You can use the ReplicationSourceIdentifier parameter to * create the DB cluster as a Read Replica of another DB cluster. *

*

* For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide. *

* * @param createDBClusterRequest * @return Result of the CreateDBCluster operation returned by the service. * @throws DBClusterAlreadyExistsException * User already has a DB cluster with the given identifier. * @throws InsufficientStorageClusterCapacityException * There is insufficient storage available for the current action. * You may be able to resolve this error by updating your subnet * group to use different Availability Zones that have more storage * available. * @throws DBClusterQuotaExceededException * User attempted to create a new DB cluster and the user has * already reached the maximum allowed DB cluster quota. * @throws StorageQuotaExceededException * Request would result in user exceeding the allowed amount of * storage available across all DB instances. * @throws DBSubnetGroupNotFoundException * DBSubnetGroupName does not refer to an existing DB subnet * group. * @throws InvalidVPCNetworkStateException * DB subnet group does not cover all Availability Zones after it is * created because users' change. * @throws InvalidDBClusterStateException * The DB cluster is not in a valid state. * @throws InvalidDBSubnetGroupStateException * The DB subnet group cannot be deleted because it is in use. * @throws InvalidSubnetException * The requested subnet is invalid, or multiple subnets were * requested that are not all in a common VPC. * @throws DBClusterParameterGroupNotFoundException * DBClusterParameterGroupName does not refer to an existing * DB Cluster parameter group. * @throws KMSKeyNotAccessibleException * Error accessing KMS key. * @throws DBClusterNotFoundException * DBClusterIdentifier does not refer to an existing DB * cluster. * @sample AmazonRDS.CreateDBCluster */ @Override public DBCluster createDBCluster( CreateDBClusterRequest createDBClusterRequest) { ExecutionContext executionContext = createExecutionContext(createDBClusterRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateDBClusterRequestMarshaller().marshall(super .beforeMarshalling(createDBClusterRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DBClusterStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates a new DB cluster parameter group. *

*

* Parameters in a DB cluster parameter group apply to all of the instances * in a DB cluster. *

*

* A DB cluster parameter group is initially created with the default * parameters for the database engine used by instances in the DB cluster. * To provide custom values for any of the parameters, you must modify the * group after creating it using ModifyDBClusterParameterGroup. Once * you've created a DB cluster parameter group, you need to associate it * with your DB cluster using ModifyDBCluster. When you associate a * new DB cluster parameter group with a running DB cluster, you need to * reboot the DB instances in the DB cluster without failover for the new DB * cluster parameter group and associated settings to take effect. *

* *

* After you create a DB cluster parameter group, you should wait at least 5 * minutes before creating your first DB cluster that uses that DB cluster * parameter group as the default parameter group. This allows Amazon RDS to * fully complete the create action before the DB cluster parameter group is * used as the default for a new DB cluster. This is especially important * for parameters that are critical when creating the default database for a * DB cluster, such as the character set for the default database defined by * the character_set_database parameter. You can use the * Parameter Groups option of the Amazon RDS console or the * DescribeDBClusterParameters command to verify that your DB cluster * parameter group has been created or modified. *

*
*

* For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide. *

* * @param createDBClusterParameterGroupRequest * @return Result of the CreateDBClusterParameterGroup operation returned by * the service. * @throws DBParameterGroupQuotaExceededException * Request would result in user exceeding the allowed number of DB * parameter groups. * @throws DBParameterGroupAlreadyExistsException * A DB parameter group with the same name exists. * @sample AmazonRDS.CreateDBClusterParameterGroup */ @Override public DBClusterParameterGroup createDBClusterParameterGroup( CreateDBClusterParameterGroupRequest createDBClusterParameterGroupRequest) { ExecutionContext executionContext = createExecutionContext(createDBClusterParameterGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateDBClusterParameterGroupRequestMarshaller() .marshall(super .beforeMarshalling(createDBClusterParameterGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DBClusterParameterGroupStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates a snapshot of a DB cluster. For more information on Amazon * Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide. *

* * @param createDBClusterSnapshotRequest * @return Result of the CreateDBClusterSnapshot operation returned by the * service. * @throws DBClusterSnapshotAlreadyExistsException * User already has a DB cluster snapshot with the given identifier. * @throws InvalidDBClusterStateException * The DB cluster is not in a valid state. * @throws DBClusterNotFoundException * DBClusterIdentifier does not refer to an existing DB * cluster. * @throws SnapshotQuotaExceededException * Request would result in user exceeding the allowed number of DB * snapshots. * @throws InvalidDBClusterSnapshotStateException * The supplied value is not a valid DB cluster snapshot state. * @sample AmazonRDS.CreateDBClusterSnapshot */ @Override public DBClusterSnapshot createDBClusterSnapshot( CreateDBClusterSnapshotRequest createDBClusterSnapshotRequest) { ExecutionContext executionContext = createExecutionContext(createDBClusterSnapshotRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateDBClusterSnapshotRequestMarshaller() .marshall(super .beforeMarshalling(createDBClusterSnapshotRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DBClusterSnapshotStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates a new DB instance. *

* * @param createDBInstanceRequest * @return Result of the CreateDBInstance operation returned by the service. * @throws DBInstanceAlreadyExistsException * User already has a DB instance with the given identifier. * @throws InsufficientDBInstanceCapacityException * Specified DB instance class is not available in the specified * Availability Zone. * @throws DBParameterGroupNotFoundException * DBParameterGroupName does not refer to an existing DB * parameter group. * @throws DBSecurityGroupNotFoundException * DBSecurityGroupName does not refer to an existing DB * security group. * @throws InstanceQuotaExceededException * Request would result in user exceeding the allowed number of DB * instances. * @throws StorageQuotaExceededException * Request would result in user exceeding the allowed amount of * storage available across all DB instances. * @throws DBSubnetGroupNotFoundException * DBSubnetGroupName does not refer to an existing DB subnet * group. * @throws DBSubnetGroupDoesNotCoverEnoughAZsException * Subnets in the DB subnet group should cover at least two * Availability Zones unless there is only one Availability Zone. * @throws InvalidDBClusterStateException * The DB cluster is not in a valid state. * @throws InvalidSubnetException * The requested subnet is invalid, or multiple subnets were * requested that are not all in a common VPC. * @throws InvalidVPCNetworkStateException * DB subnet group does not cover all Availability Zones after it is * created because users' change. * @throws ProvisionedIopsNotAvailableInAZException * Provisioned IOPS not available in the specified Availability * Zone. * @throws OptionGroupNotFoundException * The specified option group could not be found. * @throws DBClusterNotFoundException * DBClusterIdentifier does not refer to an existing DB * cluster. * @throws StorageTypeNotSupportedException * StorageType specified cannot be associated with the DB * Instance. * @throws AuthorizationNotFoundException * Specified CIDRIP or EC2 security group is not authorized for the * specified DB security group.

*

* RDS may not also be authorized via IAM to perform necessary * actions on your behalf. * @throws KMSKeyNotAccessibleException * Error accessing KMS key. * @throws DomainNotFoundException * Domain does not refer to an existing Active Directory * Domain. * @sample AmazonRDS.CreateDBInstance */ @Override public DBInstance createDBInstance( CreateDBInstanceRequest createDBInstanceRequest) { ExecutionContext executionContext = createExecutionContext(createDBInstanceRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateDBInstanceRequestMarshaller() .marshall(super .beforeMarshalling(createDBInstanceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DBInstanceStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates a DB instance for a DB instance running MySQL, MariaDB, or * PostgreSQL that acts as a Read Replica of a source DB instance. *

*

* All Read Replica DB instances are created as Single-AZ deployments with * backups disabled. All other DB instance attributes (including DB security * groups and DB parameter groups) are inherited from the source DB * instance, except as specified below. *

* *

* The source DB instance must have backup retention enabled. *

*
* * @param createDBInstanceReadReplicaRequest * @return Result of the CreateDBInstanceReadReplica operation returned by * the service. * @throws DBInstanceAlreadyExistsException * User already has a DB instance with the given identifier. * @throws InsufficientDBInstanceCapacityException * Specified DB instance class is not available in the specified * Availability Zone. * @throws DBParameterGroupNotFoundException * DBParameterGroupName does not refer to an existing DB * parameter group. * @throws DBSecurityGroupNotFoundException * DBSecurityGroupName does not refer to an existing DB * security group. * @throws InstanceQuotaExceededException * Request would result in user exceeding the allowed number of DB * instances. * @throws StorageQuotaExceededException * Request would result in user exceeding the allowed amount of * storage available across all DB instances. * @throws DBInstanceNotFoundException * DBInstanceIdentifier does not refer to an existing DB * instance. * @throws InvalidDBInstanceStateException * The specified DB instance is not in the available state. * @throws DBSubnetGroupNotFoundException * DBSubnetGroupName does not refer to an existing DB subnet * group. * @throws DBSubnetGroupDoesNotCoverEnoughAZsException * Subnets in the DB subnet group should cover at least two * Availability Zones unless there is only one Availability Zone. * @throws InvalidSubnetException * The requested subnet is invalid, or multiple subnets were * requested that are not all in a common VPC. * @throws InvalidVPCNetworkStateException * DB subnet group does not cover all Availability Zones after it is * created because users' change. * @throws ProvisionedIopsNotAvailableInAZException * Provisioned IOPS not available in the specified Availability * Zone. * @throws OptionGroupNotFoundException * The specified option group could not be found. * @throws DBSubnetGroupNotAllowedException * Indicates that the DBSubnetGroup should not be specified while * creating read replicas that lie in the same region as the source * instance. * @throws InvalidDBSubnetGroupException * Indicates the DBSubnetGroup does not belong to the same VPC as * that of an existing cross region read replica of the same source * instance. * @throws StorageTypeNotSupportedException * StorageType specified cannot be associated with the DB * Instance. * @throws KMSKeyNotAccessibleException * Error accessing KMS key. * @sample AmazonRDS.CreateDBInstanceReadReplica */ @Override public DBInstance createDBInstanceReadReplica( CreateDBInstanceReadReplicaRequest createDBInstanceReadReplicaRequest) { ExecutionContext executionContext = createExecutionContext(createDBInstanceReadReplicaRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateDBInstanceReadReplicaRequestMarshaller() .marshall(super .beforeMarshalling(createDBInstanceReadReplicaRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DBInstanceStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates a new DB parameter group. *

*

* A DB parameter group is initially created with the default parameters for * the database engine used by the DB instance. To provide custom values for * any of the parameters, you must modify the group after creating it using * ModifyDBParameterGroup. Once you've created a DB parameter group, * you need to associate it with your DB instance using * ModifyDBInstance. When you associate a new DB parameter group with * a running DB instance, you need to reboot the DB instance without * failover for the new DB parameter group and associated settings to take * effect. *

* *

* After you create a DB parameter group, you should wait at least 5 minutes * before creating your first DB instance that uses that DB parameter group * as the default parameter group. This allows Amazon RDS to fully complete * the create action before the parameter group is used as the default for a * new DB instance. This is especially important for parameters that are * critical when creating the default database for a DB instance, such as * the character set for the default database defined by the * character_set_database parameter. You can use the * Parameter Groups option of the Amazon RDS console or the * DescribeDBParameters command to verify that your DB parameter * group has been created or modified. *

*
* * @param createDBParameterGroupRequest * @return Result of the CreateDBParameterGroup operation returned by the * service. * @throws DBParameterGroupQuotaExceededException * Request would result in user exceeding the allowed number of DB * parameter groups. * @throws DBParameterGroupAlreadyExistsException * A DB parameter group with the same name exists. * @sample AmazonRDS.CreateDBParameterGroup */ @Override public DBParameterGroup createDBParameterGroup( CreateDBParameterGroupRequest createDBParameterGroupRequest) { ExecutionContext executionContext = createExecutionContext(createDBParameterGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateDBParameterGroupRequestMarshaller() .marshall(super .beforeMarshalling(createDBParameterGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DBParameterGroupStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates a new DB security group. DB security groups control access to a * DB instance. *

* * @param createDBSecurityGroupRequest * @return Result of the CreateDBSecurityGroup operation returned by the * service. * @throws DBSecurityGroupAlreadyExistsException * A DB security group with the name specified in * DBSecurityGroupName already exists. * @throws DBSecurityGroupQuotaExceededException * Request would result in user exceeding the allowed number of DB * security groups. * @throws DBSecurityGroupNotSupportedException * A DB security group is not allowed for this action. * @sample AmazonRDS.CreateDBSecurityGroup */ @Override public DBSecurityGroup createDBSecurityGroup( CreateDBSecurityGroupRequest createDBSecurityGroupRequest) { ExecutionContext executionContext = createExecutionContext(createDBSecurityGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateDBSecurityGroupRequestMarshaller() .marshall(super .beforeMarshalling(createDBSecurityGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DBSecurityGroupStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates a DBSnapshot. The source DBInstance must be in "available" state. *

* * @param createDBSnapshotRequest * @return Result of the CreateDBSnapshot operation returned by the service. * @throws DBSnapshotAlreadyExistsException * DBSnapshotIdentifier is already used by an existing * snapshot. * @throws InvalidDBInstanceStateException * The specified DB instance is not in the available state. * @throws DBInstanceNotFoundException * DBInstanceIdentifier does not refer to an existing DB * instance. * @throws SnapshotQuotaExceededException * Request would result in user exceeding the allowed number of DB * snapshots. * @sample AmazonRDS.CreateDBSnapshot */ @Override public DBSnapshot createDBSnapshot( CreateDBSnapshotRequest createDBSnapshotRequest) { ExecutionContext executionContext = createExecutionContext(createDBSnapshotRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateDBSnapshotRequestMarshaller() .marshall(super .beforeMarshalling(createDBSnapshotRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DBSnapshotStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates a new DB subnet group. DB subnet groups must contain at least one * subnet in at least two AZs in the region. *

* * @param createDBSubnetGroupRequest * @return Result of the CreateDBSubnetGroup operation returned by the * service. * @throws DBSubnetGroupAlreadyExistsException * DBSubnetGroupName is already used by an existing DB subnet * group. * @throws DBSubnetGroupQuotaExceededException * Request would result in user exceeding the allowed number of DB * subnet groups. * @throws DBSubnetQuotaExceededException * Request would result in user exceeding the allowed number of * subnets in a DB subnet groups. * @throws DBSubnetGroupDoesNotCoverEnoughAZsException * Subnets in the DB subnet group should cover at least two * Availability Zones unless there is only one Availability Zone. * @throws InvalidSubnetException * The requested subnet is invalid, or multiple subnets were * requested that are not all in a common VPC. * @sample AmazonRDS.CreateDBSubnetGroup */ @Override public DBSubnetGroup createDBSubnetGroup( CreateDBSubnetGroupRequest createDBSubnetGroupRequest) { ExecutionContext executionContext = createExecutionContext(createDBSubnetGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateDBSubnetGroupRequestMarshaller() .marshall(super .beforeMarshalling(createDBSubnetGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DBSubnetGroupStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates an RDS event notification subscription. This action requires a * topic ARN (Amazon Resource Name) created by either the RDS console, the * SNS console, or the SNS API. To obtain an ARN with SNS, you must create a * topic in Amazon SNS and subscribe to the topic. The ARN is displayed in * the SNS console. *

*

* You can specify the type of source (SourceType) you want to be notified * of, provide a list of RDS sources (SourceIds) that triggers the events, * and provide a list of event categories (EventCategories) for events you * want to be notified of. For example, you can specify SourceType = * db-instance, SourceIds = mydbinstance1, mydbinstance2 and EventCategories * = Availability, Backup. *

*

* If you specify both the SourceType and SourceIds, such as SourceType = * db-instance and SourceIdentifier = myDBInstance1, you will be notified of * all the db-instance events for the specified source. If you specify a * SourceType but do not specify a SourceIdentifier, you will receive notice * of the events for that source type for all your RDS sources. If you do * not specify either the SourceType nor the SourceIdentifier, you will be * notified of events generated from all RDS sources belonging to your * customer account. *

* * @param createEventSubscriptionRequest * @return Result of the CreateEventSubscription operation returned by the * service. * @throws EventSubscriptionQuotaExceededException * You have reached the maximum number of event subscriptions. * @throws SubscriptionAlreadyExistException * The supplied subscription name already exists. * @throws SNSInvalidTopicException * SNS has responded that there is a problem with the SND topic * specified. * @throws SNSNoAuthorizationException * You do not have permission to publish to the SNS topic ARN. * @throws SNSTopicArnNotFoundException * The SNS topic ARN does not exist. * @throws SubscriptionCategoryNotFoundException * The supplied category does not exist. * @throws SourceNotFoundException * The requested source could not be found. * @sample AmazonRDS.CreateEventSubscription */ @Override public EventSubscription createEventSubscription( CreateEventSubscriptionRequest createEventSubscriptionRequest) { ExecutionContext executionContext = createExecutionContext(createEventSubscriptionRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateEventSubscriptionRequestMarshaller() .marshall(super .beforeMarshalling(createEventSubscriptionRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new EventSubscriptionStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates a new option group. You can create up to 20 option groups. *

* * @param createOptionGroupRequest * @return Result of the CreateOptionGroup operation returned by the * service. * @throws OptionGroupAlreadyExistsException * The option group you are trying to create already exists. * @throws OptionGroupQuotaExceededException * The quota of 20 option groups was exceeded for this AWS account. * @sample AmazonRDS.CreateOptionGroup */ @Override public OptionGroup createOptionGroup( CreateOptionGroupRequest createOptionGroupRequest) { ExecutionContext executionContext = createExecutionContext(createOptionGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateOptionGroupRequestMarshaller() .marshall(super .beforeMarshalling(createOptionGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new OptionGroupStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* The DeleteDBCluster action deletes a previously provisioned DB cluster. * When you delete a DB cluster, all automated backups for that DB cluster * are deleted and cannot be recovered. Manual DB cluster snapshots of the * specified DB cluster are not deleted. *

*

*

* For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide. *

* * @param deleteDBClusterRequest * @return Result of the DeleteDBCluster operation returned by the service. * @throws DBClusterNotFoundException * DBClusterIdentifier does not refer to an existing DB * cluster. * @throws InvalidDBClusterStateException * The DB cluster is not in a valid state. * @throws DBClusterSnapshotAlreadyExistsException * User already has a DB cluster snapshot with the given identifier. * @throws SnapshotQuotaExceededException * Request would result in user exceeding the allowed number of DB * snapshots. * @throws InvalidDBClusterSnapshotStateException * The supplied value is not a valid DB cluster snapshot state. * @sample AmazonRDS.DeleteDBCluster */ @Override public DBCluster deleteDBCluster( DeleteDBClusterRequest deleteDBClusterRequest) { ExecutionContext executionContext = createExecutionContext(deleteDBClusterRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteDBClusterRequestMarshaller().marshall(super .beforeMarshalling(deleteDBClusterRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DBClusterStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes a specified DB cluster parameter group. The DB cluster parameter * group to be deleted cannot be associated with any DB clusters. *

*

* For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide. *

* * @param deleteDBClusterParameterGroupRequest * @return Result of the DeleteDBClusterParameterGroup operation returned by * the service. * @throws InvalidDBParameterGroupStateException * The DB parameter group cannot be deleted because it is in use. * @throws DBParameterGroupNotFoundException * DBParameterGroupName does not refer to an existing DB * parameter group. * @sample AmazonRDS.DeleteDBClusterParameterGroup */ @Override public DeleteDBClusterParameterGroupResult deleteDBClusterParameterGroup( DeleteDBClusterParameterGroupRequest deleteDBClusterParameterGroupRequest) { ExecutionContext executionContext = createExecutionContext(deleteDBClusterParameterGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteDBClusterParameterGroupRequestMarshaller() .marshall(super .beforeMarshalling(deleteDBClusterParameterGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DeleteDBClusterParameterGroupResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes a DB cluster snapshot. If the snapshot is being copied, the copy * operation is terminated. *

* *

* The DB cluster snapshot must be in the available state to be * deleted. *

*
*

* For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide. *

* * @param deleteDBClusterSnapshotRequest * @return Result of the DeleteDBClusterSnapshot operation returned by the * service. * @throws InvalidDBClusterSnapshotStateException * The supplied value is not a valid DB cluster snapshot state. * @throws DBClusterSnapshotNotFoundException * DBClusterSnapshotIdentifier does not refer to an existing * DB cluster snapshot. * @sample AmazonRDS.DeleteDBClusterSnapshot */ @Override public DBClusterSnapshot deleteDBClusterSnapshot( DeleteDBClusterSnapshotRequest deleteDBClusterSnapshotRequest) { ExecutionContext executionContext = createExecutionContext(deleteDBClusterSnapshotRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteDBClusterSnapshotRequestMarshaller() .marshall(super .beforeMarshalling(deleteDBClusterSnapshotRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DBClusterSnapshotStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* The DeleteDBInstance action deletes a previously provisioned DB instance. * When you delete a DB instance, all automated backups for that instance * are deleted and cannot be recovered. Manual DB snapshots of the DB * instance to be deleted by DeleteDBInstance are not deleted. *

*

* If you request a final DB snapshot the status of the Amazon RDS DB * instance is deleting until the DB snapshot is created. The * API action DescribeDBInstance is used to monitor the status * of this operation. The action cannot be canceled or reverted once * submitted. *

*

* Note that when a DB instance is in a failure state and has a status of * failed, incompatible-restore, or * incompatible-network, you can only delete it when the * SkipFinalSnapshot parameter is set to true. *

*

* If the specified DB instance is part of an Amazon Aurora DB cluster, you * cannot delete the DB instance if the following are true: *

*
    *
  • *

    * The DB cluster is a Read Replica of another Amazon Aurora DB cluster. *

    *
  • *
  • *

    * The DB instance is the only instance in the DB cluster. *

    *
  • *
*

* To delete a DB instance in this case, first call the * PromoteReadReplicaDBCluster API action to promote the DB cluster * so it's no longer a Read Replica. After the promotion completes, then * call the DeleteDBInstance API action to delete the final * instance in the DB cluster. *

* * @param deleteDBInstanceRequest * @return Result of the DeleteDBInstance operation returned by the service. * @throws DBInstanceNotFoundException * DBInstanceIdentifier does not refer to an existing DB * instance. * @throws InvalidDBInstanceStateException * The specified DB instance is not in the available state. * @throws DBSnapshotAlreadyExistsException * DBSnapshotIdentifier is already used by an existing * snapshot. * @throws SnapshotQuotaExceededException * Request would result in user exceeding the allowed number of DB * snapshots. * @throws InvalidDBClusterStateException * The DB cluster is not in a valid state. * @sample AmazonRDS.DeleteDBInstance */ @Override public DBInstance deleteDBInstance( DeleteDBInstanceRequest deleteDBInstanceRequest) { ExecutionContext executionContext = createExecutionContext(deleteDBInstanceRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteDBInstanceRequestMarshaller() .marshall(super .beforeMarshalling(deleteDBInstanceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DBInstanceStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes a specified DBParameterGroup. The DBParameterGroup to be deleted * cannot be associated with any DB instances. *

* * @param deleteDBParameterGroupRequest * @return Result of the DeleteDBParameterGroup operation returned by the * service. * @throws InvalidDBParameterGroupStateException * The DB parameter group cannot be deleted because it is in use. * @throws DBParameterGroupNotFoundException * DBParameterGroupName does not refer to an existing DB * parameter group. * @sample AmazonRDS.DeleteDBParameterGroup */ @Override public DeleteDBParameterGroupResult deleteDBParameterGroup( DeleteDBParameterGroupRequest deleteDBParameterGroupRequest) { ExecutionContext executionContext = createExecutionContext(deleteDBParameterGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteDBParameterGroupRequestMarshaller() .marshall(super .beforeMarshalling(deleteDBParameterGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DeleteDBParameterGroupResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes a DB security group. *

* *

* The specified DB security group must not be associated with any DB * instances. *

*
* * @param deleteDBSecurityGroupRequest * @return Result of the DeleteDBSecurityGroup operation returned by the * service. * @throws InvalidDBSecurityGroupStateException * The state of the DB security group does not allow deletion. * @throws DBSecurityGroupNotFoundException * DBSecurityGroupName does not refer to an existing DB * security group. * @sample AmazonRDS.DeleteDBSecurityGroup */ @Override public DeleteDBSecurityGroupResult deleteDBSecurityGroup( DeleteDBSecurityGroupRequest deleteDBSecurityGroupRequest) { ExecutionContext executionContext = createExecutionContext(deleteDBSecurityGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteDBSecurityGroupRequestMarshaller() .marshall(super .beforeMarshalling(deleteDBSecurityGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DeleteDBSecurityGroupResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes a DBSnapshot. If the snapshot is being copied, the copy operation * is terminated. *

* *

* The DBSnapshot must be in the available state to be deleted. *

*
* * @param deleteDBSnapshotRequest * @return Result of the DeleteDBSnapshot operation returned by the service. * @throws InvalidDBSnapshotStateException * The state of the DB snapshot does not allow deletion. * @throws DBSnapshotNotFoundException * DBSnapshotIdentifier does not refer to an existing DB * snapshot. * @sample AmazonRDS.DeleteDBSnapshot */ @Override public DBSnapshot deleteDBSnapshot( DeleteDBSnapshotRequest deleteDBSnapshotRequest) { ExecutionContext executionContext = createExecutionContext(deleteDBSnapshotRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteDBSnapshotRequestMarshaller() .marshall(super .beforeMarshalling(deleteDBSnapshotRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DBSnapshotStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes a DB subnet group. *

* *

* The specified database subnet group must not be associated with any DB * instances. *

*
* * @param deleteDBSubnetGroupRequest * @return Result of the DeleteDBSubnetGroup operation returned by the * service. * @throws InvalidDBSubnetGroupStateException * The DB subnet group cannot be deleted because it is in use. * @throws InvalidDBSubnetStateException * The DB subnet is not in the available state. * @throws DBSubnetGroupNotFoundException * DBSubnetGroupName does not refer to an existing DB subnet * group. * @sample AmazonRDS.DeleteDBSubnetGroup */ @Override public DeleteDBSubnetGroupResult deleteDBSubnetGroup( DeleteDBSubnetGroupRequest deleteDBSubnetGroupRequest) { ExecutionContext executionContext = createExecutionContext(deleteDBSubnetGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteDBSubnetGroupRequestMarshaller() .marshall(super .beforeMarshalling(deleteDBSubnetGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DeleteDBSubnetGroupResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes an RDS event notification subscription. *

* * @param deleteEventSubscriptionRequest * @return Result of the DeleteEventSubscription operation returned by the * service. * @throws SubscriptionNotFoundException * The subscription name does not exist. * @throws InvalidEventSubscriptionStateException * This error can occur if someone else is modifying a subscription. * You should retry the action. * @sample AmazonRDS.DeleteEventSubscription */ @Override public EventSubscription deleteEventSubscription( DeleteEventSubscriptionRequest deleteEventSubscriptionRequest) { ExecutionContext executionContext = createExecutionContext(deleteEventSubscriptionRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteEventSubscriptionRequestMarshaller() .marshall(super .beforeMarshalling(deleteEventSubscriptionRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new EventSubscriptionStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes an existing option group. *

* * @param deleteOptionGroupRequest * @return Result of the DeleteOptionGroup operation returned by the * service. * @throws OptionGroupNotFoundException * The specified option group could not be found. * @throws InvalidOptionGroupStateException * The option group is not in the available state. * @sample AmazonRDS.DeleteOptionGroup */ @Override public DeleteOptionGroupResult deleteOptionGroup( DeleteOptionGroupRequest deleteOptionGroupRequest) { ExecutionContext executionContext = createExecutionContext(deleteOptionGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteOptionGroupRequestMarshaller() .marshall(super .beforeMarshalling(deleteOptionGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DeleteOptionGroupResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Lists all of the attributes for a customer account. The attributes * include Amazon RDS quotas for the account, such as the number of DB * instances allowed. The description for a quota includes the quota name, * current usage toward that quota, and the quota's maximum value. *

*

* This command does not take any parameters. *

* * @param describeAccountAttributesRequest * @return Result of the DescribeAccountAttributes operation returned by the * service. * @sample AmazonRDS.DescribeAccountAttributes */ @Override public DescribeAccountAttributesResult describeAccountAttributes( DescribeAccountAttributesRequest describeAccountAttributesRequest) { ExecutionContext executionContext = createExecutionContext(describeAccountAttributesRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeAccountAttributesRequestMarshaller() .marshall(super .beforeMarshalling(describeAccountAttributesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeAccountAttributesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeAccountAttributesResult describeAccountAttributes() { return describeAccountAttributes(new DescribeAccountAttributesRequest()); } /** *

* Lists the set of CA certificates provided by Amazon RDS for this AWS * account. *

* * @param describeCertificatesRequest * @return Result of the DescribeCertificates operation returned by the * service. * @throws CertificateNotFoundException * CertificateIdentifier does not refer to an existing * certificate. * @sample AmazonRDS.DescribeCertificates */ @Override public DescribeCertificatesResult describeCertificates( DescribeCertificatesRequest describeCertificatesRequest) { ExecutionContext executionContext = createExecutionContext(describeCertificatesRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeCertificatesRequestMarshaller() .marshall(super .beforeMarshalling(describeCertificatesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeCertificatesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeCertificatesResult describeCertificates() { return describeCertificates(new DescribeCertificatesRequest()); } /** *

* Returns a list of DBClusterParameterGroup descriptions. If a * DBClusterParameterGroupName parameter is specified, the list * will contain only the description of the specified DB cluster parameter * group. *

*

* For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide. *

* * @param describeDBClusterParameterGroupsRequest * @return Result of the DescribeDBClusterParameterGroups operation returned * by the service. * @throws DBParameterGroupNotFoundException * DBParameterGroupName does not refer to an existing DB * parameter group. * @sample AmazonRDS.DescribeDBClusterParameterGroups */ @Override public DescribeDBClusterParameterGroupsResult describeDBClusterParameterGroups( DescribeDBClusterParameterGroupsRequest describeDBClusterParameterGroupsRequest) { ExecutionContext executionContext = createExecutionContext(describeDBClusterParameterGroupsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeDBClusterParameterGroupsRequestMarshaller() .marshall(super .beforeMarshalling(describeDBClusterParameterGroupsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeDBClusterParameterGroupsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeDBClusterParameterGroupsResult describeDBClusterParameterGroups() { return describeDBClusterParameterGroups(new DescribeDBClusterParameterGroupsRequest()); } /** *

* Returns the detailed parameter list for a particular DB cluster parameter * group. *

*

* For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide. *

* * @param describeDBClusterParametersRequest * @return Result of the DescribeDBClusterParameters operation returned by * the service. * @throws DBParameterGroupNotFoundException * DBParameterGroupName does not refer to an existing DB * parameter group. * @sample AmazonRDS.DescribeDBClusterParameters */ @Override public DescribeDBClusterParametersResult describeDBClusterParameters( DescribeDBClusterParametersRequest describeDBClusterParametersRequest) { ExecutionContext executionContext = createExecutionContext(describeDBClusterParametersRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeDBClusterParametersRequestMarshaller() .marshall(super .beforeMarshalling(describeDBClusterParametersRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeDBClusterParametersResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns a list of DB cluster snapshot attribute names and values for a * manual DB cluster snapshot. *

*

* When sharing snapshots with other AWS accounts, * DescribeDBClusterSnapshotAttributes returns the * restore attribute and a list of IDs for the AWS accounts * that are authorized to copy or restore the manual DB cluster snapshot. If * all is included in the list of values for the * restore attribute, then the manual DB cluster snapshot is * public and can be copied or restored by all AWS accounts. *

*

* To add or remove access for an AWS account to copy or restore a manual DB * cluster snapshot, or to make the manual DB cluster snapshot public or * private, use the ModifyDBClusterSnapshotAttribute API action. *

* * @param describeDBClusterSnapshotAttributesRequest * @return Result of the DescribeDBClusterSnapshotAttributes operation * returned by the service. * @throws DBClusterSnapshotNotFoundException * DBClusterSnapshotIdentifier does not refer to an existing * DB cluster snapshot. * @sample AmazonRDS.DescribeDBClusterSnapshotAttributes */ @Override public DBClusterSnapshotAttributesResult describeDBClusterSnapshotAttributes( DescribeDBClusterSnapshotAttributesRequest describeDBClusterSnapshotAttributesRequest) { ExecutionContext executionContext = createExecutionContext(describeDBClusterSnapshotAttributesRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeDBClusterSnapshotAttributesRequestMarshaller() .marshall(super .beforeMarshalling(describeDBClusterSnapshotAttributesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DBClusterSnapshotAttributesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns information about DB cluster snapshots. This API action supports * pagination. *

*

* For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide. *

* * @param describeDBClusterSnapshotsRequest * @return Result of the DescribeDBClusterSnapshots operation returned by * the service. * @throws DBClusterSnapshotNotFoundException * DBClusterSnapshotIdentifier does not refer to an existing * DB cluster snapshot. * @sample AmazonRDS.DescribeDBClusterSnapshots */ @Override public DescribeDBClusterSnapshotsResult describeDBClusterSnapshots( DescribeDBClusterSnapshotsRequest describeDBClusterSnapshotsRequest) { ExecutionContext executionContext = createExecutionContext(describeDBClusterSnapshotsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeDBClusterSnapshotsRequestMarshaller() .marshall(super .beforeMarshalling(describeDBClusterSnapshotsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeDBClusterSnapshotsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeDBClusterSnapshotsResult describeDBClusterSnapshots() { return describeDBClusterSnapshots(new DescribeDBClusterSnapshotsRequest()); } /** *

* Returns information about provisioned Aurora DB clusters. This API * supports pagination. *

*

* For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide. *

* * @param describeDBClustersRequest * @return Result of the DescribeDBClusters operation returned by the * service. * @throws DBClusterNotFoundException * DBClusterIdentifier does not refer to an existing DB * cluster. * @sample AmazonRDS.DescribeDBClusters */ @Override public DescribeDBClustersResult describeDBClusters( DescribeDBClustersRequest describeDBClustersRequest) { ExecutionContext executionContext = createExecutionContext(describeDBClustersRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeDBClustersRequestMarshaller() .marshall(super .beforeMarshalling(describeDBClustersRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeDBClustersResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeDBClustersResult describeDBClusters() { return describeDBClusters(new DescribeDBClustersRequest()); } /** *

* Returns a list of the available DB engines. *

* * @param describeDBEngineVersionsRequest * @return Result of the DescribeDBEngineVersions operation returned by the * service. * @sample AmazonRDS.DescribeDBEngineVersions */ @Override public DescribeDBEngineVersionsResult describeDBEngineVersions( DescribeDBEngineVersionsRequest describeDBEngineVersionsRequest) { ExecutionContext executionContext = createExecutionContext(describeDBEngineVersionsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeDBEngineVersionsRequestMarshaller() .marshall(super .beforeMarshalling(describeDBEngineVersionsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeDBEngineVersionsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeDBEngineVersionsResult describeDBEngineVersions() { return describeDBEngineVersions(new DescribeDBEngineVersionsRequest()); } /** *

* Returns information about provisioned RDS instances. This API supports * pagination. *

* * @param describeDBInstancesRequest * @return Result of the DescribeDBInstances operation returned by the * service. * @throws DBInstanceNotFoundException * DBInstanceIdentifier does not refer to an existing DB * instance. * @sample AmazonRDS.DescribeDBInstances */ @Override public DescribeDBInstancesResult describeDBInstances( DescribeDBInstancesRequest describeDBInstancesRequest) { ExecutionContext executionContext = createExecutionContext(describeDBInstancesRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeDBInstancesRequestMarshaller() .marshall(super .beforeMarshalling(describeDBInstancesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeDBInstancesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeDBInstancesResult describeDBInstances() { return describeDBInstances(new DescribeDBInstancesRequest()); } /** *

* Returns a list of DB log files for the DB instance. *

* * @param describeDBLogFilesRequest * @return Result of the DescribeDBLogFiles operation returned by the * service. * @throws DBInstanceNotFoundException * DBInstanceIdentifier does not refer to an existing DB * instance. * @sample AmazonRDS.DescribeDBLogFiles */ @Override public DescribeDBLogFilesResult describeDBLogFiles( DescribeDBLogFilesRequest describeDBLogFilesRequest) { ExecutionContext executionContext = createExecutionContext(describeDBLogFilesRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeDBLogFilesRequestMarshaller() .marshall(super .beforeMarshalling(describeDBLogFilesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeDBLogFilesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns a list of DBParameterGroup descriptions. If a * DBParameterGroupName is specified, the list will contain * only the description of the specified DB parameter group. *

* * @param describeDBParameterGroupsRequest * @return Result of the DescribeDBParameterGroups operation returned by the * service. * @throws DBParameterGroupNotFoundException * DBParameterGroupName does not refer to an existing DB * parameter group. * @sample AmazonRDS.DescribeDBParameterGroups */ @Override public DescribeDBParameterGroupsResult describeDBParameterGroups( DescribeDBParameterGroupsRequest describeDBParameterGroupsRequest) { ExecutionContext executionContext = createExecutionContext(describeDBParameterGroupsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeDBParameterGroupsRequestMarshaller() .marshall(super .beforeMarshalling(describeDBParameterGroupsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeDBParameterGroupsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeDBParameterGroupsResult describeDBParameterGroups() { return describeDBParameterGroups(new DescribeDBParameterGroupsRequest()); } /** *

* Returns the detailed parameter list for a particular DB parameter group. *

* * @param describeDBParametersRequest * @return Result of the DescribeDBParameters operation returned by the * service. * @throws DBParameterGroupNotFoundException * DBParameterGroupName does not refer to an existing DB * parameter group. * @sample AmazonRDS.DescribeDBParameters */ @Override public DescribeDBParametersResult describeDBParameters( DescribeDBParametersRequest describeDBParametersRequest) { ExecutionContext executionContext = createExecutionContext(describeDBParametersRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeDBParametersRequestMarshaller() .marshall(super .beforeMarshalling(describeDBParametersRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeDBParametersResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns a list of DBSecurityGroup descriptions. If a * DBSecurityGroupName is specified, the list will contain only * the descriptions of the specified DB security group. *

* * @param describeDBSecurityGroupsRequest * @return Result of the DescribeDBSecurityGroups operation returned by the * service. * @throws DBSecurityGroupNotFoundException * DBSecurityGroupName does not refer to an existing DB * security group. * @sample AmazonRDS.DescribeDBSecurityGroups */ @Override public DescribeDBSecurityGroupsResult describeDBSecurityGroups( DescribeDBSecurityGroupsRequest describeDBSecurityGroupsRequest) { ExecutionContext executionContext = createExecutionContext(describeDBSecurityGroupsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeDBSecurityGroupsRequestMarshaller() .marshall(super .beforeMarshalling(describeDBSecurityGroupsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeDBSecurityGroupsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeDBSecurityGroupsResult describeDBSecurityGroups() { return describeDBSecurityGroups(new DescribeDBSecurityGroupsRequest()); } /** *

* Returns a list of DB snapshot attribute names and values for a manual DB * snapshot. *

*

* When sharing snapshots with other AWS accounts, * DescribeDBSnapshotAttributes returns the * restore attribute and a list of IDs for the AWS accounts * that are authorized to copy or restore the manual DB snapshot. If * all is included in the list of values for the * restore attribute, then the manual DB snapshot is public and * can be copied or restored by all AWS accounts. *

*

* To add or remove access for an AWS account to copy or restore a manual DB * snapshot, or to make the manual DB snapshot public or private, use the * ModifyDBSnapshotAttribute API action. *

* * @param describeDBSnapshotAttributesRequest * @return Result of the DescribeDBSnapshotAttributes operation returned by * the service. * @throws DBSnapshotNotFoundException * DBSnapshotIdentifier does not refer to an existing DB * snapshot. * @sample AmazonRDS.DescribeDBSnapshotAttributes */ @Override public DBSnapshotAttributesResult describeDBSnapshotAttributes( DescribeDBSnapshotAttributesRequest describeDBSnapshotAttributesRequest) { ExecutionContext executionContext = createExecutionContext(describeDBSnapshotAttributesRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeDBSnapshotAttributesRequestMarshaller() .marshall(super .beforeMarshalling(describeDBSnapshotAttributesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DBSnapshotAttributesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DBSnapshotAttributesResult describeDBSnapshotAttributes() { return describeDBSnapshotAttributes(new DescribeDBSnapshotAttributesRequest()); } /** *

* Returns information about DB snapshots. This API action supports * pagination. *

* * @param describeDBSnapshotsRequest * @return Result of the DescribeDBSnapshots operation returned by the * service. * @throws DBSnapshotNotFoundException * DBSnapshotIdentifier does not refer to an existing DB * snapshot. * @sample AmazonRDS.DescribeDBSnapshots */ @Override public DescribeDBSnapshotsResult describeDBSnapshots( DescribeDBSnapshotsRequest describeDBSnapshotsRequest) { ExecutionContext executionContext = createExecutionContext(describeDBSnapshotsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeDBSnapshotsRequestMarshaller() .marshall(super .beforeMarshalling(describeDBSnapshotsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeDBSnapshotsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeDBSnapshotsResult describeDBSnapshots() { return describeDBSnapshots(new DescribeDBSnapshotsRequest()); } /** *

* Returns a list of DBSubnetGroup descriptions. If a DBSubnetGroupName is * specified, the list will contain only the descriptions of the specified * DBSubnetGroup. *

*

* For an overview of CIDR ranges, go to the Wikipedia Tutorial. *

* * @param describeDBSubnetGroupsRequest * @return Result of the DescribeDBSubnetGroups operation returned by the * service. * @throws DBSubnetGroupNotFoundException * DBSubnetGroupName does not refer to an existing DB subnet * group. * @sample AmazonRDS.DescribeDBSubnetGroups */ @Override public DescribeDBSubnetGroupsResult describeDBSubnetGroups( DescribeDBSubnetGroupsRequest describeDBSubnetGroupsRequest) { ExecutionContext executionContext = createExecutionContext(describeDBSubnetGroupsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeDBSubnetGroupsRequestMarshaller() .marshall(super .beforeMarshalling(describeDBSubnetGroupsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeDBSubnetGroupsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeDBSubnetGroupsResult describeDBSubnetGroups() { return describeDBSubnetGroups(new DescribeDBSubnetGroupsRequest()); } /** *

* Returns the default engine and system parameter information for the * cluster database engine. *

*

* For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide. *

* * @param describeEngineDefaultClusterParametersRequest * @return Result of the DescribeEngineDefaultClusterParameters operation * returned by the service. * @sample AmazonRDS.DescribeEngineDefaultClusterParameters */ @Override public EngineDefaults describeEngineDefaultClusterParameters( DescribeEngineDefaultClusterParametersRequest describeEngineDefaultClusterParametersRequest) { ExecutionContext executionContext = createExecutionContext(describeEngineDefaultClusterParametersRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeEngineDefaultClusterParametersRequestMarshaller() .marshall(super .beforeMarshalling(describeEngineDefaultClusterParametersRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new EngineDefaultsStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns the default engine and system parameter information for the * specified database engine. *

* * @param describeEngineDefaultParametersRequest * @return Result of the DescribeEngineDefaultParameters operation returned * by the service. * @sample AmazonRDS.DescribeEngineDefaultParameters */ @Override public EngineDefaults describeEngineDefaultParameters( DescribeEngineDefaultParametersRequest describeEngineDefaultParametersRequest) { ExecutionContext executionContext = createExecutionContext(describeEngineDefaultParametersRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeEngineDefaultParametersRequestMarshaller() .marshall(super .beforeMarshalling(describeEngineDefaultParametersRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new EngineDefaultsStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Displays a list of categories for all event source types, or, if * specified, for a specified source type. You can see a list of the event * categories and source types in the * Events topic in the Amazon RDS User Guide. *

* * @param describeEventCategoriesRequest * @return Result of the DescribeEventCategories operation returned by the * service. * @sample AmazonRDS.DescribeEventCategories */ @Override public DescribeEventCategoriesResult describeEventCategories( DescribeEventCategoriesRequest describeEventCategoriesRequest) { ExecutionContext executionContext = createExecutionContext(describeEventCategoriesRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeEventCategoriesRequestMarshaller() .marshall(super .beforeMarshalling(describeEventCategoriesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeEventCategoriesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeEventCategoriesResult describeEventCategories() { return describeEventCategories(new DescribeEventCategoriesRequest()); } /** *

* Lists all the subscription descriptions for a customer account. The * description for a subscription includes SubscriptionName, SNSTopicARN, * CustomerID, SourceType, SourceID, CreationTime, and Status. *

*

* If you specify a SubscriptionName, lists the description for that * subscription. *

* * @param describeEventSubscriptionsRequest * @return Result of the DescribeEventSubscriptions operation returned by * the service. * @throws SubscriptionNotFoundException * The subscription name does not exist. * @sample AmazonRDS.DescribeEventSubscriptions */ @Override public DescribeEventSubscriptionsResult describeEventSubscriptions( DescribeEventSubscriptionsRequest describeEventSubscriptionsRequest) { ExecutionContext executionContext = createExecutionContext(describeEventSubscriptionsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeEventSubscriptionsRequestMarshaller() .marshall(super .beforeMarshalling(describeEventSubscriptionsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeEventSubscriptionsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeEventSubscriptionsResult describeEventSubscriptions() { return describeEventSubscriptions(new DescribeEventSubscriptionsRequest()); } /** *

* Returns events related to DB instances, DB security groups, DB snapshots, * and DB parameter groups for the past 14 days. Events specific to a * particular DB instance, DB security group, database snapshot, or DB * parameter group can be obtained by providing the name as a parameter. By * default, the past hour of events are returned. *

* * @param describeEventsRequest * @return Result of the DescribeEvents operation returned by the service. * @sample AmazonRDS.DescribeEvents */ @Override public DescribeEventsResult describeEvents( DescribeEventsRequest describeEventsRequest) { ExecutionContext executionContext = createExecutionContext(describeEventsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeEventsRequestMarshaller().marshall(super .beforeMarshalling(describeEventsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeEventsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeEventsResult describeEvents() { return describeEvents(new DescribeEventsRequest()); } /** *

* Describes all available options. *

* * @param describeOptionGroupOptionsRequest * @return Result of the DescribeOptionGroupOptions operation returned by * the service. * @sample AmazonRDS.DescribeOptionGroupOptions */ @Override public DescribeOptionGroupOptionsResult describeOptionGroupOptions( DescribeOptionGroupOptionsRequest describeOptionGroupOptionsRequest) { ExecutionContext executionContext = createExecutionContext(describeOptionGroupOptionsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeOptionGroupOptionsRequestMarshaller() .marshall(super .beforeMarshalling(describeOptionGroupOptionsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeOptionGroupOptionsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Describes the available option groups. *

* * @param describeOptionGroupsRequest * @return Result of the DescribeOptionGroups operation returned by the * service. * @throws OptionGroupNotFoundException * The specified option group could not be found. * @sample AmazonRDS.DescribeOptionGroups */ @Override public DescribeOptionGroupsResult describeOptionGroups( DescribeOptionGroupsRequest describeOptionGroupsRequest) { ExecutionContext executionContext = createExecutionContext(describeOptionGroupsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeOptionGroupsRequestMarshaller() .marshall(super .beforeMarshalling(describeOptionGroupsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeOptionGroupsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeOptionGroupsResult describeOptionGroups() { return describeOptionGroups(new DescribeOptionGroupsRequest()); } /** *

* Returns a list of orderable DB instance options for the specified engine. *

* * @param describeOrderableDBInstanceOptionsRequest * @return Result of the DescribeOrderableDBInstanceOptions operation * returned by the service. * @sample AmazonRDS.DescribeOrderableDBInstanceOptions */ @Override public DescribeOrderableDBInstanceOptionsResult describeOrderableDBInstanceOptions( DescribeOrderableDBInstanceOptionsRequest describeOrderableDBInstanceOptionsRequest) { ExecutionContext executionContext = createExecutionContext(describeOrderableDBInstanceOptionsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeOrderableDBInstanceOptionsRequestMarshaller() .marshall(super .beforeMarshalling(describeOrderableDBInstanceOptionsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeOrderableDBInstanceOptionsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns a list of resources (for example, DB instances) that have at * least one pending maintenance action. *

* * @param describePendingMaintenanceActionsRequest * @return Result of the DescribePendingMaintenanceActions operation * returned by the service. * @throws ResourceNotFoundException * The specified resource ID was not found. * @sample AmazonRDS.DescribePendingMaintenanceActions */ @Override public DescribePendingMaintenanceActionsResult describePendingMaintenanceActions( DescribePendingMaintenanceActionsRequest describePendingMaintenanceActionsRequest) { ExecutionContext executionContext = createExecutionContext(describePendingMaintenanceActionsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribePendingMaintenanceActionsRequestMarshaller() .marshall(super .beforeMarshalling(describePendingMaintenanceActionsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribePendingMaintenanceActionsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribePendingMaintenanceActionsResult describePendingMaintenanceActions() { return describePendingMaintenanceActions(new DescribePendingMaintenanceActionsRequest()); } /** *

* Returns information about reserved DB instances for this account, or * about a specified reserved DB instance. *

* * @param describeReservedDBInstancesRequest * @return Result of the DescribeReservedDBInstances operation returned by * the service. * @throws ReservedDBInstanceNotFoundException * The specified reserved DB Instance not found. * @sample AmazonRDS.DescribeReservedDBInstances */ @Override public DescribeReservedDBInstancesResult describeReservedDBInstances( DescribeReservedDBInstancesRequest describeReservedDBInstancesRequest) { ExecutionContext executionContext = createExecutionContext(describeReservedDBInstancesRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeReservedDBInstancesRequestMarshaller() .marshall(super .beforeMarshalling(describeReservedDBInstancesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeReservedDBInstancesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeReservedDBInstancesResult describeReservedDBInstances() { return describeReservedDBInstances(new DescribeReservedDBInstancesRequest()); } /** *

* Lists available reserved DB instance offerings. *

* * @param describeReservedDBInstancesOfferingsRequest * @return Result of the DescribeReservedDBInstancesOfferings operation * returned by the service. * @throws ReservedDBInstancesOfferingNotFoundException * Specified offering does not exist. * @sample AmazonRDS.DescribeReservedDBInstancesOfferings */ @Override public DescribeReservedDBInstancesOfferingsResult describeReservedDBInstancesOfferings( DescribeReservedDBInstancesOfferingsRequest describeReservedDBInstancesOfferingsRequest) { ExecutionContext executionContext = createExecutionContext(describeReservedDBInstancesOfferingsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeReservedDBInstancesOfferingsRequestMarshaller() .marshall(super .beforeMarshalling(describeReservedDBInstancesOfferingsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeReservedDBInstancesOfferingsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeReservedDBInstancesOfferingsResult describeReservedDBInstancesOfferings() { return describeReservedDBInstancesOfferings(new DescribeReservedDBInstancesOfferingsRequest()); } /** *

* Returns a list of the source AWS regions where the current AWS region can * create a Read Replica or copy a DB snapshot from. This API action * supports pagination. *

* * @param describeSourceRegionsRequest * @return Result of the DescribeSourceRegions operation returned by the * service. * @sample AmazonRDS.DescribeSourceRegions */ @Override public DescribeSourceRegionsResult describeSourceRegions( DescribeSourceRegionsRequest describeSourceRegionsRequest) { ExecutionContext executionContext = createExecutionContext(describeSourceRegionsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeSourceRegionsRequestMarshaller() .marshall(super .beforeMarshalling(describeSourceRegionsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DescribeSourceRegionsResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Downloads all or a portion of the specified log file, up to 1 MB in size. *

* * @param downloadDBLogFilePortionRequest * @return Result of the DownloadDBLogFilePortion operation returned by the * service. * @throws DBInstanceNotFoundException * DBInstanceIdentifier does not refer to an existing DB * instance. * @throws DBLogFileNotFoundException * LogFileName does not refer to an existing DB log file. * @sample AmazonRDS.DownloadDBLogFilePortion */ @Override public DownloadDBLogFilePortionResult downloadDBLogFilePortion( DownloadDBLogFilePortionRequest downloadDBLogFilePortionRequest) { ExecutionContext executionContext = createExecutionContext(downloadDBLogFilePortionRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DownloadDBLogFilePortionRequestMarshaller() .marshall(super .beforeMarshalling(downloadDBLogFilePortionRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DownloadDBLogFilePortionResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Forces a failover for a DB cluster. *

*

* A failover for a DB cluster promotes one of the read-only instances in * the DB cluster to the master DB instance (the cluster writer) and deletes * the current primary instance. *

*

* Amazon Aurora will automatically fail over to a read-only instance, if * one exists, when the primary instance fails. You can force a failover * when you want to simulate a failure of a DB instance for testing. Because * each instance in a DB cluster has its own endpoint address, you will need * to clean up and re-establish any existing connections that use those * endpoint addresses when the failover is complete. *

*

* For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide. *

* * @param failoverDBClusterRequest * @return Result of the FailoverDBCluster operation returned by the * service. * @throws DBClusterNotFoundException * DBClusterIdentifier does not refer to an existing DB * cluster. * @throws InvalidDBClusterStateException * The DB cluster is not in a valid state. * @throws InvalidDBInstanceStateException * The specified DB instance is not in the available state. * @sample AmazonRDS.FailoverDBCluster */ @Override public DBCluster failoverDBCluster( FailoverDBClusterRequest failoverDBClusterRequest) { ExecutionContext executionContext = createExecutionContext(failoverDBClusterRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new FailoverDBClusterRequestMarshaller() .marshall(super .beforeMarshalling(failoverDBClusterRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DBClusterStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DBCluster failoverDBCluster() { return failoverDBCluster(new FailoverDBClusterRequest()); } /** *

* Lists all tags on an Amazon RDS resource. *

*

* For an overview on tagging an Amazon RDS resource, see Tagging Amazon RDS Resources. *

* * @param listTagsForResourceRequest * @return Result of the ListTagsForResource operation returned by the * service. * @throws DBInstanceNotFoundException * DBInstanceIdentifier does not refer to an existing DB * instance. * @throws DBSnapshotNotFoundException * DBSnapshotIdentifier does not refer to an existing DB * snapshot. * @sample AmazonRDS.ListTagsForResource */ @Override public ListTagsForResourceResult listTagsForResource( ListTagsForResourceRequest listTagsForResourceRequest) { ExecutionContext executionContext = createExecutionContext(listTagsForResourceRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListTagsForResourceRequestMarshaller() .marshall(super .beforeMarshalling(listTagsForResourceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ListTagsForResourceResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Modify a setting for an Amazon Aurora DB cluster. You can change one or * more database configuration parameters by specifying these parameters and * the new values in the request. For more information on Amazon Aurora, see * Aurora on Amazon RDS in the Amazon RDS User Guide. *

* * @param modifyDBClusterRequest * @return Result of the ModifyDBCluster operation returned by the service. * @throws DBClusterNotFoundException * DBClusterIdentifier does not refer to an existing DB * cluster. * @throws InvalidDBClusterStateException * The DB cluster is not in a valid state. * @throws StorageQuotaExceededException * Request would result in user exceeding the allowed amount of * storage available across all DB instances. * @throws DBSubnetGroupNotFoundException * DBSubnetGroupName does not refer to an existing DB subnet * group. * @throws InvalidVPCNetworkStateException * DB subnet group does not cover all Availability Zones after it is * created because users' change. * @throws InvalidDBSubnetGroupStateException * The DB subnet group cannot be deleted because it is in use. * @throws InvalidSubnetException * The requested subnet is invalid, or multiple subnets were * requested that are not all in a common VPC. * @throws DBClusterParameterGroupNotFoundException * DBClusterParameterGroupName does not refer to an existing * DB Cluster parameter group. * @throws InvalidDBSecurityGroupStateException * The state of the DB security group does not allow deletion. * @throws InvalidDBInstanceStateException * The specified DB instance is not in the available state. * @throws DBClusterAlreadyExistsException * User already has a DB cluster with the given identifier. * @sample AmazonRDS.ModifyDBCluster */ @Override public DBCluster modifyDBCluster( ModifyDBClusterRequest modifyDBClusterRequest) { ExecutionContext executionContext = createExecutionContext(modifyDBClusterRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ModifyDBClusterRequestMarshaller().marshall(super .beforeMarshalling(modifyDBClusterRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DBClusterStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Modifies the parameters of a DB cluster parameter group. To modify more * than one parameter, submit a list of the following: * ParameterName, ParameterValue, and * ApplyMethod. A maximum of 20 parameters can be modified in a * single request. *

*

* For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide. *

* *

* Changes to dynamic parameters are applied immediately. Changes to static * parameters require a reboot without failover to the DB cluster associated * with the parameter group before the change can take effect. *

*
*

* After you create a DB cluster parameter group, you should wait at least 5 * minutes before creating your first DB cluster that uses that DB cluster * parameter group as the default parameter group. This allows Amazon RDS to * fully complete the create action before the parameter group is used as * the default for a new DB cluster. This is especially important for * parameters that are critical when creating the default database for a DB * cluster, such as the character set for the default database defined by * the character_set_database parameter. You can use the * Parameter Groups option of the Amazon RDS console or the * DescribeDBClusterParameters command to verify that your DB cluster * parameter group has been created or modified. *

*
* * @param modifyDBClusterParameterGroupRequest * @return Result of the ModifyDBClusterParameterGroup operation returned by * the service. * @throws DBParameterGroupNotFoundException * DBParameterGroupName does not refer to an existing DB * parameter group. * @throws InvalidDBParameterGroupStateException * The DB parameter group cannot be deleted because it is in use. * @sample AmazonRDS.ModifyDBClusterParameterGroup */ @Override public ModifyDBClusterParameterGroupResult modifyDBClusterParameterGroup( ModifyDBClusterParameterGroupRequest modifyDBClusterParameterGroupRequest) { ExecutionContext executionContext = createExecutionContext(modifyDBClusterParameterGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ModifyDBClusterParameterGroupRequestMarshaller() .marshall(super .beforeMarshalling(modifyDBClusterParameterGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ModifyDBClusterParameterGroupResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Adds an attribute and values to, or removes an attribute and values from, * a manual DB cluster snapshot. *

*

* To share a manual DB cluster snapshot with other AWS accounts, specify * restore as the AttributeName and use the * ValuesToAdd parameter to add a list of IDs of the AWS * accounts that are authorized to restore the manual DB cluster snapshot. * Use the value all to make the manual DB cluster snapshot * public, which means that it can be copied or restored by all AWS * accounts. Do not add the all value for any manual DB cluster * snapshots that contain private information that you don't want available * to all AWS accounts. *

*

* To view which AWS accounts have access to copy or restore a manual DB * cluster snapshot, or whether a manual DB cluster snapshot public or * private, use the DescribeDBClusterSnapshotAttributes API action. *

*

* If a manual DB cluster snapshot is encrypted, it cannot be shared. *

* * @param modifyDBClusterSnapshotAttributeRequest * @return Result of the ModifyDBClusterSnapshotAttribute operation returned * by the service. * @throws DBClusterSnapshotNotFoundException * DBClusterSnapshotIdentifier does not refer to an existing * DB cluster snapshot. * @throws InvalidDBClusterSnapshotStateException * The supplied value is not a valid DB cluster snapshot state. * @throws SharedSnapshotQuotaExceededException * You have exceeded the maximum number of accounts that you can * share a manual DB snapshot with. * @sample AmazonRDS.ModifyDBClusterSnapshotAttribute */ @Override public DBClusterSnapshotAttributesResult modifyDBClusterSnapshotAttribute( ModifyDBClusterSnapshotAttributeRequest modifyDBClusterSnapshotAttributeRequest) { ExecutionContext executionContext = createExecutionContext(modifyDBClusterSnapshotAttributeRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ModifyDBClusterSnapshotAttributeRequestMarshaller() .marshall(super .beforeMarshalling(modifyDBClusterSnapshotAttributeRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DBClusterSnapshotAttributesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Modifies settings for a DB instance. You can change one or more database * configuration parameters by specifying these parameters and the new * values in the request. *

* * @param modifyDBInstanceRequest * @return Result of the ModifyDBInstance operation returned by the service. * @throws InvalidDBInstanceStateException * The specified DB instance is not in the available state. * @throws InvalidDBSecurityGroupStateException * The state of the DB security group does not allow deletion. * @throws DBInstanceAlreadyExistsException * User already has a DB instance with the given identifier. * @throws DBInstanceNotFoundException * DBInstanceIdentifier does not refer to an existing DB * instance. * @throws DBSecurityGroupNotFoundException * DBSecurityGroupName does not refer to an existing DB * security group. * @throws DBParameterGroupNotFoundException * DBParameterGroupName does not refer to an existing DB * parameter group. * @throws InsufficientDBInstanceCapacityException * Specified DB instance class is not available in the specified * Availability Zone. * @throws StorageQuotaExceededException * Request would result in user exceeding the allowed amount of * storage available across all DB instances. * @throws InvalidVPCNetworkStateException * DB subnet group does not cover all Availability Zones after it is * created because users' change. * @throws ProvisionedIopsNotAvailableInAZException * Provisioned IOPS not available in the specified Availability * Zone. * @throws OptionGroupNotFoundException * The specified option group could not be found. * @throws DBUpgradeDependencyFailureException * The DB upgrade failed because a resource the DB depends on could * not be modified. * @throws StorageTypeNotSupportedException * StorageType specified cannot be associated with the DB * Instance. * @throws AuthorizationNotFoundException * Specified CIDRIP or EC2 security group is not authorized for the * specified DB security group.

*

* RDS may not also be authorized via IAM to perform necessary * actions on your behalf. * @throws CertificateNotFoundException * CertificateIdentifier does not refer to an existing * certificate. * @throws DomainNotFoundException * Domain does not refer to an existing Active Directory * Domain. * @sample AmazonRDS.ModifyDBInstance */ @Override public DBInstance modifyDBInstance( ModifyDBInstanceRequest modifyDBInstanceRequest) { ExecutionContext executionContext = createExecutionContext(modifyDBInstanceRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ModifyDBInstanceRequestMarshaller() .marshall(super .beforeMarshalling(modifyDBInstanceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DBInstanceStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Modifies the parameters of a DB parameter group. To modify more than one * parameter, submit a list of the following: ParameterName, * ParameterValue, and ApplyMethod. A maximum of * 20 parameters can be modified in a single request. *

* *

* Changes to dynamic parameters are applied immediately. Changes to static * parameters require a reboot without failover to the DB instance * associated with the parameter group before the change can take effect. *

*
*

* After you modify a DB parameter group, you should wait at least 5 minutes * before creating your first DB instance that uses that DB parameter group * as the default parameter group. This allows Amazon RDS to fully complete * the modify action before the parameter group is used as the default for a * new DB instance. This is especially important for parameters that are * critical when creating the default database for a DB instance, such as * the character set for the default database defined by the * character_set_database parameter. You can use the * Parameter Groups option of the Amazon RDS console or the * DescribeDBParameters command to verify that your DB parameter * group has been created or modified. *

*
* * @param modifyDBParameterGroupRequest * @return Result of the ModifyDBParameterGroup operation returned by the * service. * @throws DBParameterGroupNotFoundException * DBParameterGroupName does not refer to an existing DB * parameter group. * @throws InvalidDBParameterGroupStateException * The DB parameter group cannot be deleted because it is in use. * @sample AmazonRDS.ModifyDBParameterGroup */ @Override public ModifyDBParameterGroupResult modifyDBParameterGroup( ModifyDBParameterGroupRequest modifyDBParameterGroupRequest) { ExecutionContext executionContext = createExecutionContext(modifyDBParameterGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ModifyDBParameterGroupRequestMarshaller() .marshall(super .beforeMarshalling(modifyDBParameterGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ModifyDBParameterGroupResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Adds an attribute and values to, or removes an attribute and values from, * a manual DB snapshot. *

*

* To share a manual DB snapshot with other AWS accounts, specify * restore as the AttributeName and use the * ValuesToAdd parameter to add a list of IDs of the AWS * accounts that are authorized to restore the manual DB snapshot. Uses the * value all to make the manual DB snapshot public, which means * it can be copied or restored by all AWS accounts. Do not add the * all value for any manual DB snapshots that contain private * information that you don't want available to all AWS accounts. *

*

* To view which AWS accounts have access to copy or restore a manual DB * snapshot, or whether a manual DB snapshot public or private, use the * DescribeDBSnapshotAttributes API action. *

*

* If the manual DB snapshot is encrypted, it cannot be shared. *

* * @param modifyDBSnapshotAttributeRequest * @return Result of the ModifyDBSnapshotAttribute operation returned by the * service. * @throws DBSnapshotNotFoundException * DBSnapshotIdentifier does not refer to an existing DB * snapshot. * @throws InvalidDBSnapshotStateException * The state of the DB snapshot does not allow deletion. * @throws SharedSnapshotQuotaExceededException * You have exceeded the maximum number of accounts that you can * share a manual DB snapshot with. * @sample AmazonRDS.ModifyDBSnapshotAttribute */ @Override public DBSnapshotAttributesResult modifyDBSnapshotAttribute( ModifyDBSnapshotAttributeRequest modifyDBSnapshotAttributeRequest) { ExecutionContext executionContext = createExecutionContext(modifyDBSnapshotAttributeRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ModifyDBSnapshotAttributeRequestMarshaller() .marshall(super .beforeMarshalling(modifyDBSnapshotAttributeRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DBSnapshotAttributesResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Modifies an existing DB subnet group. DB subnet groups must contain at * least one subnet in at least two AZs in the region. *

* * @param modifyDBSubnetGroupRequest * @return Result of the ModifyDBSubnetGroup operation returned by the * service. * @throws DBSubnetGroupNotFoundException * DBSubnetGroupName does not refer to an existing DB subnet * group. * @throws DBSubnetQuotaExceededException * Request would result in user exceeding the allowed number of * subnets in a DB subnet groups. * @throws SubnetAlreadyInUseException * The DB subnet is already in use in the Availability Zone. * @throws DBSubnetGroupDoesNotCoverEnoughAZsException * Subnets in the DB subnet group should cover at least two * Availability Zones unless there is only one Availability Zone. * @throws InvalidSubnetException * The requested subnet is invalid, or multiple subnets were * requested that are not all in a common VPC. * @sample AmazonRDS.ModifyDBSubnetGroup */ @Override public DBSubnetGroup modifyDBSubnetGroup( ModifyDBSubnetGroupRequest modifyDBSubnetGroupRequest) { ExecutionContext executionContext = createExecutionContext(modifyDBSubnetGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ModifyDBSubnetGroupRequestMarshaller() .marshall(super .beforeMarshalling(modifyDBSubnetGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DBSubnetGroupStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Modifies an existing RDS event notification subscription. Note that you * cannot modify the source identifiers using this call; to change source * identifiers for a subscription, use the * AddSourceIdentifierToSubscription and * RemoveSourceIdentifierFromSubscription calls. *

*

* You can see a list of the event categories for a given SourceType in the * Events topic in the Amazon RDS User Guide or by using the * DescribeEventCategories action. *

* * @param modifyEventSubscriptionRequest * @return Result of the ModifyEventSubscription operation returned by the * service. * @throws EventSubscriptionQuotaExceededException * You have reached the maximum number of event subscriptions. * @throws SubscriptionNotFoundException * The subscription name does not exist. * @throws SNSInvalidTopicException * SNS has responded that there is a problem with the SND topic * specified. * @throws SNSNoAuthorizationException * You do not have permission to publish to the SNS topic ARN. * @throws SNSTopicArnNotFoundException * The SNS topic ARN does not exist. * @throws SubscriptionCategoryNotFoundException * The supplied category does not exist. * @sample AmazonRDS.ModifyEventSubscription */ @Override public EventSubscription modifyEventSubscription( ModifyEventSubscriptionRequest modifyEventSubscriptionRequest) { ExecutionContext executionContext = createExecutionContext(modifyEventSubscriptionRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ModifyEventSubscriptionRequestMarshaller() .marshall(super .beforeMarshalling(modifyEventSubscriptionRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new EventSubscriptionStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Modifies an existing option group. *

* * @param modifyOptionGroupRequest * @return Result of the ModifyOptionGroup operation returned by the * service. * @throws InvalidOptionGroupStateException * The option group is not in the available state. * @throws OptionGroupNotFoundException * The specified option group could not be found. * @sample AmazonRDS.ModifyOptionGroup */ @Override public OptionGroup modifyOptionGroup( ModifyOptionGroupRequest modifyOptionGroupRequest) { ExecutionContext executionContext = createExecutionContext(modifyOptionGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ModifyOptionGroupRequestMarshaller() .marshall(super .beforeMarshalling(modifyOptionGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new OptionGroupStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Promotes a Read Replica DB instance to a standalone DB instance. *

* *

* We recommend that you enable automated backups on your Read Replica * before promoting the Read Replica. This ensures that no backup is taken * during the promotion process. Once the instance is promoted to a primary * instance, backups are taken based on your backup settings. *

*
* * @param promoteReadReplicaRequest * @return Result of the PromoteReadReplica operation returned by the * service. * @throws InvalidDBInstanceStateException * The specified DB instance is not in the available state. * @throws DBInstanceNotFoundException * DBInstanceIdentifier does not refer to an existing DB * instance. * @sample AmazonRDS.PromoteReadReplica */ @Override public DBInstance promoteReadReplica( PromoteReadReplicaRequest promoteReadReplicaRequest) { ExecutionContext executionContext = createExecutionContext(promoteReadReplicaRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new PromoteReadReplicaRequestMarshaller() .marshall(super .beforeMarshalling(promoteReadReplicaRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DBInstanceStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Promotes a Read Replica DB cluster to a standalone DB cluster. *

* * @param promoteReadReplicaDBClusterRequest * @return Result of the PromoteReadReplicaDBCluster operation returned by * the service. * @throws DBClusterNotFoundException * DBClusterIdentifier does not refer to an existing DB * cluster. * @throws InvalidDBClusterStateException * The DB cluster is not in a valid state. * @sample AmazonRDS.PromoteReadReplicaDBCluster */ @Override public DBCluster promoteReadReplicaDBCluster( PromoteReadReplicaDBClusterRequest promoteReadReplicaDBClusterRequest) { ExecutionContext executionContext = createExecutionContext(promoteReadReplicaDBClusterRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new PromoteReadReplicaDBClusterRequestMarshaller() .marshall(super .beforeMarshalling(promoteReadReplicaDBClusterRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DBClusterStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Purchases a reserved DB instance offering. *

* * @param purchaseReservedDBInstancesOfferingRequest * @return Result of the PurchaseReservedDBInstancesOffering operation * returned by the service. * @throws ReservedDBInstancesOfferingNotFoundException * Specified offering does not exist. * @throws ReservedDBInstanceAlreadyExistsException * User already has a reservation with the given identifier. * @throws ReservedDBInstanceQuotaExceededException * Request would exceed the user's DB Instance quota. * @sample AmazonRDS.PurchaseReservedDBInstancesOffering */ @Override public ReservedDBInstance purchaseReservedDBInstancesOffering( PurchaseReservedDBInstancesOfferingRequest purchaseReservedDBInstancesOfferingRequest) { ExecutionContext executionContext = createExecutionContext(purchaseReservedDBInstancesOfferingRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new PurchaseReservedDBInstancesOfferingRequestMarshaller() .marshall(super .beforeMarshalling(purchaseReservedDBInstancesOfferingRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ReservedDBInstanceStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Rebooting a DB instance restarts the database engine service. A reboot * also applies to the DB instance any modifications to the associated DB * parameter group that were pending. Rebooting a DB instance results in a * momentary outage of the instance, during which the DB instance status is * set to rebooting. If the RDS instance is configured for MultiAZ, it is * possible that the reboot will be conducted through a failover. An Amazon * RDS event is created when the reboot is completed. *

*

* If your DB instance is deployed in multiple Availability Zones, you can * force a failover from one AZ to the other during the reboot. You might * force a failover to test the availability of your DB instance deployment * or to restore operations to the original AZ after a failover occurs. *

*

* The time required to reboot is a function of the specific database * engine's crash recovery process. To improve the reboot time, we recommend * that you reduce database activities as much as possible during the reboot * process to reduce rollback activity for in-transit transactions. *

* * @param rebootDBInstanceRequest * @return Result of the RebootDBInstance operation returned by the service. * @throws InvalidDBInstanceStateException * The specified DB instance is not in the available state. * @throws DBInstanceNotFoundException * DBInstanceIdentifier does not refer to an existing DB * instance. * @sample AmazonRDS.RebootDBInstance */ @Override public DBInstance rebootDBInstance( RebootDBInstanceRequest rebootDBInstanceRequest) { ExecutionContext executionContext = createExecutionContext(rebootDBInstanceRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new RebootDBInstanceRequestMarshaller() .marshall(super .beforeMarshalling(rebootDBInstanceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DBInstanceStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Removes a source identifier from an existing RDS event notification * subscription. *

* * @param removeSourceIdentifierFromSubscriptionRequest * @return Result of the RemoveSourceIdentifierFromSubscription operation * returned by the service. * @throws SubscriptionNotFoundException * The subscription name does not exist. * @throws SourceNotFoundException * The requested source could not be found. * @sample AmazonRDS.RemoveSourceIdentifierFromSubscription */ @Override public EventSubscription removeSourceIdentifierFromSubscription( RemoveSourceIdentifierFromSubscriptionRequest removeSourceIdentifierFromSubscriptionRequest) { ExecutionContext executionContext = createExecutionContext(removeSourceIdentifierFromSubscriptionRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new RemoveSourceIdentifierFromSubscriptionRequestMarshaller() .marshall(super .beforeMarshalling(removeSourceIdentifierFromSubscriptionRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new EventSubscriptionStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Removes metadata tags from an Amazon RDS resource. *

*

* For an overview on tagging an Amazon RDS resource, see Tagging Amazon RDS Resources. *

* * @param removeTagsFromResourceRequest * @return Result of the RemoveTagsFromResource operation returned by the * service. * @throws DBInstanceNotFoundException * DBInstanceIdentifier does not refer to an existing DB * instance. * @throws DBSnapshotNotFoundException * DBSnapshotIdentifier does not refer to an existing DB * snapshot. * @sample AmazonRDS.RemoveTagsFromResource */ @Override public RemoveTagsFromResourceResult removeTagsFromResource( RemoveTagsFromResourceRequest removeTagsFromResourceRequest) { ExecutionContext executionContext = createExecutionContext(removeTagsFromResourceRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new RemoveTagsFromResourceRequestMarshaller() .marshall(super .beforeMarshalling(removeTagsFromResourceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new RemoveTagsFromResourceResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Modifies the parameters of a DB cluster parameter group to the default * value. To reset specific parameters submit a list of the following: * ParameterName and ApplyMethod. To reset the * entire DB cluster parameter group, specify the * DBClusterParameterGroupName and * ResetAllParameters parameters. *

*

* When resetting the entire group, dynamic parameters are updated * immediately and static parameters are set to pending-reboot * to take effect on the next DB instance restart or RebootDBInstance * request. You must call RebootDBInstance for every DB instance in * your DB cluster that you want the updated static parameter to apply to. *

*

* For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide. *

* * @param resetDBClusterParameterGroupRequest * @return Result of the ResetDBClusterParameterGroup operation returned by * the service. * @throws InvalidDBParameterGroupStateException * The DB parameter group cannot be deleted because it is in use. * @throws DBParameterGroupNotFoundException * DBParameterGroupName does not refer to an existing DB * parameter group. * @sample AmazonRDS.ResetDBClusterParameterGroup */ @Override public ResetDBClusterParameterGroupResult resetDBClusterParameterGroup( ResetDBClusterParameterGroupRequest resetDBClusterParameterGroupRequest) { ExecutionContext executionContext = createExecutionContext(resetDBClusterParameterGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ResetDBClusterParameterGroupRequestMarshaller() .marshall(super .beforeMarshalling(resetDBClusterParameterGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ResetDBClusterParameterGroupResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Modifies the parameters of a DB parameter group to the engine/system * default value. To reset specific parameters submit a list of the * following: ParameterName and ApplyMethod. To * reset the entire DB parameter group, specify the * DBParameterGroup name and ResetAllParameters * parameters. When resetting the entire group, dynamic parameters are * updated immediately and static parameters are set to * pending-reboot to take effect on the next DB instance * restart or RebootDBInstance request. *

* * @param resetDBParameterGroupRequest * @return Result of the ResetDBParameterGroup operation returned by the * service. * @throws InvalidDBParameterGroupStateException * The DB parameter group cannot be deleted because it is in use. * @throws DBParameterGroupNotFoundException * DBParameterGroupName does not refer to an existing DB * parameter group. * @sample AmazonRDS.ResetDBParameterGroup */ @Override public ResetDBParameterGroupResult resetDBParameterGroup( ResetDBParameterGroupRequest resetDBParameterGroupRequest) { ExecutionContext executionContext = createExecutionContext(resetDBParameterGroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ResetDBParameterGroupRequestMarshaller() .marshall(super .beforeMarshalling(resetDBParameterGroupRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new ResetDBParameterGroupResultStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates an Amazon Aurora DB cluster from data stored in an Amazon S3 * bucket. Amazon RDS must be authorized to access the Amazon S3 bucket and * the data must be created using the Percona XtraBackup utility as * described in Migrating Data from MySQL by Using an Amazon S3 Bucket. *

* * @param restoreDBClusterFromS3Request * @return Result of the RestoreDBClusterFromS3 operation returned by the * service. * @throws DBClusterAlreadyExistsException * User already has a DB cluster with the given identifier. * @throws DBClusterQuotaExceededException * User attempted to create a new DB cluster and the user has * already reached the maximum allowed DB cluster quota. * @throws StorageQuotaExceededException * Request would result in user exceeding the allowed amount of * storage available across all DB instances. * @throws DBSubnetGroupNotFoundException * DBSubnetGroupName does not refer to an existing DB subnet * group. * @throws InvalidVPCNetworkStateException * DB subnet group does not cover all Availability Zones after it is * created because users' change. * @throws InvalidDBClusterStateException * The DB cluster is not in a valid state. * @throws InvalidDBSubnetGroupStateException * The DB subnet group cannot be deleted because it is in use. * @throws InvalidSubnetException * The requested subnet is invalid, or multiple subnets were * requested that are not all in a common VPC. * @throws InvalidS3BucketException * The specified Amazon S3 bucket name could not be found or Amazon * RDS is not authorized to access the specified Amazon S3 bucket. * Verify the SourceS3BucketName and * S3IngestionRoleArn values and try again. * @throws DBClusterParameterGroupNotFoundException * DBClusterParameterGroupName does not refer to an existing * DB Cluster parameter group. * @throws KMSKeyNotAccessibleException * Error accessing KMS key. * @throws DBClusterNotFoundException * DBClusterIdentifier does not refer to an existing DB * cluster. * @throws InsufficientStorageClusterCapacityException * There is insufficient storage available for the current action. * You may be able to resolve this error by updating your subnet * group to use different Availability Zones that have more storage * available. * @sample AmazonRDS.RestoreDBClusterFromS3 */ @Override public DBCluster restoreDBClusterFromS3( RestoreDBClusterFromS3Request restoreDBClusterFromS3Request) { ExecutionContext executionContext = createExecutionContext(restoreDBClusterFromS3Request); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new RestoreDBClusterFromS3RequestMarshaller() .marshall(super .beforeMarshalling(restoreDBClusterFromS3Request)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DBClusterStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates a new DB cluster from a DB cluster snapshot. The target DB * cluster is created from the source DB cluster restore point with the same * configuration as the original source DB cluster, except that the new DB * cluster is created with the default security group. *

*

* For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide. *

* * @param restoreDBClusterFromSnapshotRequest * @return Result of the RestoreDBClusterFromSnapshot operation returned by * the service. * @throws DBClusterAlreadyExistsException * User already has a DB cluster with the given identifier. * @throws DBClusterQuotaExceededException * User attempted to create a new DB cluster and the user has * already reached the maximum allowed DB cluster quota. * @throws StorageQuotaExceededException * Request would result in user exceeding the allowed amount of * storage available across all DB instances. * @throws DBSubnetGroupNotFoundException * DBSubnetGroupName does not refer to an existing DB subnet * group. * @throws DBSnapshotNotFoundException * DBSnapshotIdentifier does not refer to an existing DB * snapshot. * @throws DBClusterSnapshotNotFoundException * DBClusterSnapshotIdentifier does not refer to an existing * DB cluster snapshot. * @throws InsufficientDBClusterCapacityException * The DB cluster does not have enough capacity for the current * operation. * @throws InsufficientStorageClusterCapacityException * There is insufficient storage available for the current action. * You may be able to resolve this error by updating your subnet * group to use different Availability Zones that have more storage * available. * @throws InvalidDBSnapshotStateException * The state of the DB snapshot does not allow deletion. * @throws InvalidDBClusterSnapshotStateException * The supplied value is not a valid DB cluster snapshot state. * @throws StorageQuotaExceededException * Request would result in user exceeding the allowed amount of * storage available across all DB instances. * @throws InvalidVPCNetworkStateException * DB subnet group does not cover all Availability Zones after it is * created because users' change. * @throws InvalidRestoreException * Cannot restore from vpc backup to non-vpc DB instance. * @throws DBSubnetGroupNotFoundException * DBSubnetGroupName does not refer to an existing DB subnet * group. * @throws InvalidSubnetException * The requested subnet is invalid, or multiple subnets were * requested that are not all in a common VPC. * @throws OptionGroupNotFoundException * The specified option group could not be found. * @throws KMSKeyNotAccessibleException * Error accessing KMS key. * @sample AmazonRDS.RestoreDBClusterFromSnapshot */ @Override public DBCluster restoreDBClusterFromSnapshot( RestoreDBClusterFromSnapshotRequest restoreDBClusterFromSnapshotRequest) { ExecutionContext executionContext = createExecutionContext(restoreDBClusterFromSnapshotRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new RestoreDBClusterFromSnapshotRequestMarshaller() .marshall(super .beforeMarshalling(restoreDBClusterFromSnapshotRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DBClusterStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Restores a DB cluster to an arbitrary point in time. Users can restore to * any point in time before LatestRestorableTime for up to * BackupRetentionPeriod days. The target DB cluster is created * from the source DB cluster with the same configuration as the original DB * cluster, except that the new DB cluster is created with the default DB * security group. *

*

* For more information on Amazon Aurora, see Aurora on Amazon RDS in the Amazon RDS User Guide. *

* * @param restoreDBClusterToPointInTimeRequest * @return Result of the RestoreDBClusterToPointInTime operation returned by * the service. * @throws DBClusterAlreadyExistsException * User already has a DB cluster with the given identifier. * @throws DBClusterQuotaExceededException * User attempted to create a new DB cluster and the user has * already reached the maximum allowed DB cluster quota. * @throws StorageQuotaExceededException * Request would result in user exceeding the allowed amount of * storage available across all DB instances. * @throws DBSubnetGroupNotFoundException * DBSubnetGroupName does not refer to an existing DB subnet * group. * @throws DBClusterNotFoundException * DBClusterIdentifier does not refer to an existing DB * cluster. * @throws DBClusterSnapshotNotFoundException * DBClusterSnapshotIdentifier does not refer to an existing * DB cluster snapshot. * @throws InsufficientDBClusterCapacityException * The DB cluster does not have enough capacity for the current * operation. * @throws InsufficientStorageClusterCapacityException * There is insufficient storage available for the current action. * You may be able to resolve this error by updating your subnet * group to use different Availability Zones that have more storage * available. * @throws InvalidDBSnapshotStateException * The state of the DB snapshot does not allow deletion. * @throws InvalidDBClusterSnapshotStateException * The supplied value is not a valid DB cluster snapshot state. * @throws StorageQuotaExceededException * Request would result in user exceeding the allowed amount of * storage available across all DB instances. * @throws InvalidVPCNetworkStateException * DB subnet group does not cover all Availability Zones after it is * created because users' change. * @throws InvalidRestoreException * Cannot restore from vpc backup to non-vpc DB instance. * @throws DBSubnetGroupNotFoundException * DBSubnetGroupName does not refer to an existing DB subnet * group. * @throws InvalidSubnetException * The requested subnet is invalid, or multiple subnets were * requested that are not all in a common VPC. * @throws OptionGroupNotFoundException * The specified option group could not be found. * @throws KMSKeyNotAccessibleException * Error accessing KMS key. * @sample AmazonRDS.RestoreDBClusterToPointInTime */ @Override public DBCluster restoreDBClusterToPointInTime( RestoreDBClusterToPointInTimeRequest restoreDBClusterToPointInTimeRequest) { ExecutionContext executionContext = createExecutionContext(restoreDBClusterToPointInTimeRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new RestoreDBClusterToPointInTimeRequestMarshaller() .marshall(super .beforeMarshalling(restoreDBClusterToPointInTimeRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DBClusterStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates a new DB instance from a DB snapshot. The target database is * created from the source database restore point with the most of original * configuration with the default security group and the default DB * parameter group. By default, the new DB instance is created as a * single-AZ deployment except when the instance is a SQL Server instance * that has an option group that is associated with mirroring; in this case, * the instance becomes a mirrored AZ deployment and not a single-AZ * deployment. *

*

* If your intent is to replace your original DB instance with the new, * restored DB instance, then rename your original DB instance before you * call the RestoreDBInstanceFromDBSnapshot action. RDS does not allow two * DB instances with the same name. Once you have renamed your original DB * instance with a different identifier, then you can pass the original name * of the DB instance as the DBInstanceIdentifier in the call to the * RestoreDBInstanceFromDBSnapshot action. The result is that you will * replace the original DB instance with the DB instance created from the * snapshot. *

*

* If you are restoring from a shared manual DB snapshot, the * DBSnapshotIdentifier must be the ARN of the shared DB * snapshot. *

* * @param restoreDBInstanceFromDBSnapshotRequest * @return Result of the RestoreDBInstanceFromDBSnapshot operation returned * by the service. * @throws DBInstanceAlreadyExistsException * User already has a DB instance with the given identifier. * @throws DBSnapshotNotFoundException * DBSnapshotIdentifier does not refer to an existing DB * snapshot. * @throws InstanceQuotaExceededException * Request would result in user exceeding the allowed number of DB * instances. * @throws InsufficientDBInstanceCapacityException * Specified DB instance class is not available in the specified * Availability Zone. * @throws InvalidDBSnapshotStateException * The state of the DB snapshot does not allow deletion. * @throws StorageQuotaExceededException * Request would result in user exceeding the allowed amount of * storage available across all DB instances. * @throws InvalidVPCNetworkStateException * DB subnet group does not cover all Availability Zones after it is * created because users' change. * @throws InvalidRestoreException * Cannot restore from vpc backup to non-vpc DB instance. * @throws DBSubnetGroupNotFoundException * DBSubnetGroupName does not refer to an existing DB subnet * group. * @throws DBSubnetGroupDoesNotCoverEnoughAZsException * Subnets in the DB subnet group should cover at least two * Availability Zones unless there is only one Availability Zone. * @throws InvalidSubnetException * The requested subnet is invalid, or multiple subnets were * requested that are not all in a common VPC. * @throws ProvisionedIopsNotAvailableInAZException * Provisioned IOPS not available in the specified Availability * Zone. * @throws OptionGroupNotFoundException * The specified option group could not be found. * @throws StorageTypeNotSupportedException * StorageType specified cannot be associated with the DB * Instance. * @throws AuthorizationNotFoundException * Specified CIDRIP or EC2 security group is not authorized for the * specified DB security group.

*

* RDS may not also be authorized via IAM to perform necessary * actions on your behalf. * @throws KMSKeyNotAccessibleException * Error accessing KMS key. * @throws DBSecurityGroupNotFoundException * DBSecurityGroupName does not refer to an existing DB * security group. * @throws DomainNotFoundException * Domain does not refer to an existing Active Directory * Domain. * @sample AmazonRDS.RestoreDBInstanceFromDBSnapshot */ @Override public DBInstance restoreDBInstanceFromDBSnapshot( RestoreDBInstanceFromDBSnapshotRequest restoreDBInstanceFromDBSnapshotRequest) { ExecutionContext executionContext = createExecutionContext(restoreDBInstanceFromDBSnapshotRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new RestoreDBInstanceFromDBSnapshotRequestMarshaller() .marshall(super .beforeMarshalling(restoreDBInstanceFromDBSnapshotRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DBInstanceStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Restores a DB instance to an arbitrary point in time. You can restore to * any point in time before the time identified by the LatestRestorableTime * property. You can restore to a point up to the number of days specified * by the BackupRetentionPeriod property. *

*

* The target database is created with most of the original configuration, * but in a system-selected availability zone, with the default security * group, the default subnet group, and the default DB parameter group. By * default, the new DB instance is created as a single-AZ deployment except * when the instance is a SQL Server instance that has an option group that * is associated with mirroring; in this case, the instance becomes a * mirrored deployment and not a single-AZ deployment. *

* * @param restoreDBInstanceToPointInTimeRequest * @return Result of the RestoreDBInstanceToPointInTime operation returned * by the service. * @throws DBInstanceAlreadyExistsException * User already has a DB instance with the given identifier. * @throws DBInstanceNotFoundException * DBInstanceIdentifier does not refer to an existing DB * instance. * @throws InstanceQuotaExceededException * Request would result in user exceeding the allowed number of DB * instances. * @throws InsufficientDBInstanceCapacityException * Specified DB instance class is not available in the specified * Availability Zone. * @throws InvalidDBInstanceStateException * The specified DB instance is not in the available state. * @throws PointInTimeRestoreNotEnabledException * SourceDBInstanceIdentifier refers to a DB instance with * BackupRetentionPeriod equal to 0. * @throws StorageQuotaExceededException * Request would result in user exceeding the allowed amount of * storage available across all DB instances. * @throws InvalidVPCNetworkStateException * DB subnet group does not cover all Availability Zones after it is * created because users' change. * @throws InvalidRestoreException * Cannot restore from vpc backup to non-vpc DB instance. * @throws DBSubnetGroupNotFoundException * DBSubnetGroupName does not refer to an existing DB subnet * group. * @throws DBSubnetGroupDoesNotCoverEnoughAZsException * Subnets in the DB subnet group should cover at least two * Availability Zones unless there is only one Availability Zone. * @throws InvalidSubnetException * The requested subnet is invalid, or multiple subnets were * requested that are not all in a common VPC. * @throws ProvisionedIopsNotAvailableInAZException * Provisioned IOPS not available in the specified Availability * Zone. * @throws OptionGroupNotFoundException * The specified option group could not be found. * @throws StorageTypeNotSupportedException * StorageType specified cannot be associated with the DB * Instance. * @throws AuthorizationNotFoundException * Specified CIDRIP or EC2 security group is not authorized for the * specified DB security group.

*

* RDS may not also be authorized via IAM to perform necessary * actions on your behalf. * @throws KMSKeyNotAccessibleException * Error accessing KMS key. * @throws DBSecurityGroupNotFoundException * DBSecurityGroupName does not refer to an existing DB * security group. * @throws DomainNotFoundException * Domain does not refer to an existing Active Directory * Domain. * @sample AmazonRDS.RestoreDBInstanceToPointInTime */ @Override public DBInstance restoreDBInstanceToPointInTime( RestoreDBInstanceToPointInTimeRequest restoreDBInstanceToPointInTimeRequest) { ExecutionContext executionContext = createExecutionContext(restoreDBInstanceToPointInTimeRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new RestoreDBInstanceToPointInTimeRequestMarshaller() .marshall(super .beforeMarshalling(restoreDBInstanceToPointInTimeRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DBInstanceStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Revokes ingress from a DBSecurityGroup for previously authorized IP * ranges or EC2 or VPC Security Groups. Required parameters for this API * are one of CIDRIP, EC2SecurityGroupId for VPC, or * (EC2SecurityGroupOwnerId and either EC2SecurityGroupName or * EC2SecurityGroupId). *

* * @param revokeDBSecurityGroupIngressRequest * @return Result of the RevokeDBSecurityGroupIngress operation returned by * the service. * @throws DBSecurityGroupNotFoundException * DBSecurityGroupName does not refer to an existing DB * security group. * @throws AuthorizationNotFoundException * Specified CIDRIP or EC2 security group is not authorized for the * specified DB security group.

*

* RDS may not also be authorized via IAM to perform necessary * actions on your behalf. * @throws InvalidDBSecurityGroupStateException * The state of the DB security group does not allow deletion. * @sample AmazonRDS.RevokeDBSecurityGroupIngress */ @Override public DBSecurityGroup revokeDBSecurityGroupIngress( RevokeDBSecurityGroupIngressRequest revokeDBSecurityGroupIngressRequest) { ExecutionContext executionContext = createExecutionContext(revokeDBSecurityGroupIngressRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new RevokeDBSecurityGroupIngressRequestMarshaller() .marshall(super .beforeMarshalling(revokeDBSecurityGroupIngressRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } StaxResponseHandler responseHandler = new StaxResponseHandler( new DBSecurityGroupStaxUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * Returns additional metadata for a previously executed successful, * request, typically used for debugging issues where a service isn't acting * as expected. This data isn't considered part of the result data returned * by an operation, so it's available through this separate, diagnostic * interface. *

* Response metadata is only cached for a limited period of time, so if you * need to access this extra diagnostic information for an executed request, * you should use this method to retrieve it as soon as possible after * executing the request. * * @param request * The originally executed request * * @return The response metadata for the specified request, or null if none * is available. */ public ResponseMetadata getCachedResponseMetadata( AmazonWebServiceRequest request) { return client.getResponseMetadataForRequest(request); } /** * Normal invoke with authentication. Credentials are required and may be * overriden at the request level. **/ private Response invoke( Request request, HttpResponseHandler> responseHandler, ExecutionContext executionContext) { executionContext.setCredentialsProvider(CredentialUtils .getCredentialsProvider(request.getOriginalRequest(), awsCredentialsProvider)); return doInvoke(request, responseHandler, executionContext); } /** * Invoke with no authentication. Credentials are not required and any * credentials set on the client or request will be ignored for this * operation. **/ private Response anonymousInvoke( Request request, HttpResponseHandler> responseHandler, ExecutionContext executionContext) { return doInvoke(request, responseHandler, executionContext); } /** * Invoke the request using the http client. Assumes credentials (or lack * thereof) have been configured in the ExecutionContext beforehand. **/ private Response doInvoke( Request request, HttpResponseHandler> responseHandler, ExecutionContext executionContext) { request.setEndpoint(endpoint); request.setTimeOffset(timeOffset); DefaultErrorResponseHandler errorResponseHandler = new DefaultErrorResponseHandler( exceptionUnmarshallers); return client.execute(request, responseHandler, errorResponseHandler, executionContext); } public AmazonRDSWaiters waiters() { if (waiters == null) { synchronized (this) { if (waiters == null) { waiters = new AmazonRDSWaiters(this); } } } return waiters; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy