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

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

/*
 * Copyright 2010-2011 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.Node;

import java.util.ArrayList;
import java.util.List;
import java.util.Map.Entry;
import java.security.SignatureException;

import com.amazonaws.*;
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.AWS3Signer;
import com.amazonaws.auth.QueryStringSigner;
import com.amazonaws.handlers.HandlerChainFactory;
import com.amazonaws.handlers.RequestHandler;
import com.amazonaws.http.StaxResponseHandler;
import com.amazonaws.http.DefaultErrorResponseHandler;
import com.amazonaws.http.HttpClient;
import com.amazonaws.http.HttpMethodName;
import com.amazonaws.http.HttpRequest;
import com.amazonaws.transform.Unmarshaller;
import com.amazonaws.transform.StaxUnmarshallerContext;
import com.amazonaws.transform.StandardErrorUnmarshaller;

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


/**
 * Client for accessing AmazonRDS.  All service calls made
 * using this client are blocking, and will not return until the service call
 * completes.
 * 

*

* 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, resizable 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 familiar MySQL * database server. This means the code, applications, and tools you * already use today with your existing MySQL 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. *

*/ public class AmazonRDSClient extends AmazonWebServiceClient implements AmazonRDS { /** * The AWS credentials (access key ID and secret key) to use when * authenticating with AWS services. */ private AWSCredentials awsCredentials; /** * List of exception unmarshallers for all AmazonRDS exceptions. */ protected final List> exceptionUnmarshallers; /** Low level client for sending requests to AWS services. */ protected final HttpClient client; /** Optional request handlers for additional request processing. */ private List requestHandlers = new ArrayList(); /** AWS signer for authenticating requests. */ private QueryStringSigner signer; /** * Constructs a new client to invoke service methods on * AmazonRDS 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, new ClientConfiguration()); } /** * Constructs a new client to invoke service methods on * AmazonRDS 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 AmazonRDS * (ex: proxy settings, retry counts, etc.). */ public AmazonRDSClient(AWSCredentials awsCredentials, ClientConfiguration clientConfiguration) { super(clientConfiguration); this.awsCredentials = awsCredentials; exceptionUnmarshallers = new ArrayList>(); exceptionUnmarshallers.add(new DBParameterGroupNotFoundExceptionUnmarshaller()); exceptionUnmarshallers.add(new ReservedDBInstanceQuotaExceededExceptionUnmarshaller()); exceptionUnmarshallers.add(new DBParameterGroupQuotaExceededExceptionUnmarshaller()); exceptionUnmarshallers.add(new DBSecurityGroupNotFoundExceptionUnmarshaller()); exceptionUnmarshallers.add(new AuthorizationNotFoundExceptionUnmarshaller()); exceptionUnmarshallers.add(new InvalidDBSecurityGroupStateExceptionUnmarshaller()); exceptionUnmarshallers.add(new DBSnapshotAlreadyExistsExceptionUnmarshaller()); exceptionUnmarshallers.add(new DBSecurityGroupQuotaExceededExceptionUnmarshaller()); exceptionUnmarshallers.add(new ReservedDBInstanceAlreadyExistsExceptionUnmarshaller()); exceptionUnmarshallers.add(new ReservedDBInstancesOfferingNotFoundExceptionUnmarshaller()); exceptionUnmarshallers.add(new InsufficientDBInstanceCapacityExceptionUnmarshaller()); exceptionUnmarshallers.add(new AuthorizationAlreadyExistsExceptionUnmarshaller()); exceptionUnmarshallers.add(new InvalidDBSnapshotStateExceptionUnmarshaller()); exceptionUnmarshallers.add(new DBSnapshotNotFoundExceptionUnmarshaller()); exceptionUnmarshallers.add(new DBSecurityGroupAlreadyExistsExceptionUnmarshaller()); exceptionUnmarshallers.add(new PointInTimeRestoreNotEnabledExceptionUnmarshaller()); exceptionUnmarshallers.add(new DBInstanceAlreadyExistsExceptionUnmarshaller()); exceptionUnmarshallers.add(new DBInstanceNotFoundExceptionUnmarshaller()); exceptionUnmarshallers.add(new InvalidDBParameterGroupStateExceptionUnmarshaller()); exceptionUnmarshallers.add(new SnapshotQuotaExceededExceptionUnmarshaller()); exceptionUnmarshallers.add(new DBParameterGroupAlreadyExistsExceptionUnmarshaller()); exceptionUnmarshallers.add(new InstanceQuotaExceededExceptionUnmarshaller()); exceptionUnmarshallers.add(new StorageQuotaExceededExceptionUnmarshaller()); exceptionUnmarshallers.add(new InvalidDBInstanceStateExceptionUnmarshaller()); exceptionUnmarshallers.add(new ReservedDBInstanceNotFoundExceptionUnmarshaller()); exceptionUnmarshallers.add(new StandardErrorUnmarshaller()); setEndpoint("rds.amazonaws.com"); signer = new QueryStringSigner(awsCredentials); requestHandlers = new HandlerChainFactory().newRequestHandlerChain( "/com/amazonaws/services/rds/request.handlers"); client = new HttpClient(clientConfiguration); } /** *

* This API deletes a particular DBParameterGroup. The DBParameterGroup * cannot be associated with any RDS instances to be deleted. *

* * @param deleteDBParameterGroupRequest Container for the necessary * parameters to execute the DeleteDBParameterGroup service method on * AmazonRDS. * * @throws DBParameterGroupNotFoundException * @throws InvalidDBParameterGroupStateException * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonRDS indicating * either a problem with the data in the request, or a server side issue. */ public void deleteDBParameterGroup(DeleteDBParameterGroupRequest deleteDBParameterGroupRequest) throws AmazonServiceException, AmazonClientException { Request request = new DeleteDBParameterGroupRequestMarshaller().marshall(deleteDBParameterGroupRequest); invoke(request, null); } /** *

* This API is used to delete a DBSnapshot. The DBSnapshot must be in * the "available" state to be deleted. *

* * @param deleteDBSnapshotRequest Container for the necessary parameters * to execute the DeleteDBSnapshot service method on AmazonRDS. * * @return The response from the DeleteDBSnapshot service method, as * returned by AmazonRDS. * * @throws InvalidDBSnapshotStateException * @throws DBSnapshotNotFoundException * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonRDS indicating * either a problem with the data in the request, or a server side issue. */ public DBSnapshot deleteDBSnapshot(DeleteDBSnapshotRequest deleteDBSnapshotRequest) throws AmazonServiceException, AmazonClientException { Request request = new DeleteDBSnapshotRequestMarshaller().marshall(deleteDBSnapshotRequest); return invoke(request, new DBSnapshotStaxUnmarshaller()); } /** *

* This API modifies the parameters of a DBParameterGroup. 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. *

* * @param modifyDBParameterGroupRequest Container for the necessary * parameters to execute the ModifyDBParameterGroup service method on * AmazonRDS. * * @return The response from the ModifyDBParameterGroup service method, * as returned by AmazonRDS. * * @throws DBParameterGroupNotFoundException * @throws InvalidDBParameterGroupStateException * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonRDS indicating * either a problem with the data in the request, or a server side issue. */ public ModifyDBParameterGroupResult modifyDBParameterGroup(ModifyDBParameterGroupRequest modifyDBParameterGroupRequest) throws AmazonServiceException, AmazonClientException { Request request = new ModifyDBParameterGroupRequestMarshaller().marshall(modifyDBParameterGroupRequest); return invoke(request, new ModifyDBParameterGroupResultStaxUnmarshaller()); } /** *

* This API revokes ingress from a DBSecurityGroup for previously * authorized IP ranges or EC2 Security Groups. Required parameters for * this API are one of CIDRIP or (EC2SecurityGroupName AND * EC2SecurityGroupOwnerId). *

* * @param revokeDBSecurityGroupIngressRequest Container for the necessary * parameters to execute the RevokeDBSecurityGroupIngress service method * on AmazonRDS. * * @return The response from the RevokeDBSecurityGroupIngress service * method, as returned by AmazonRDS. * * @throws DBSecurityGroupNotFoundException * @throws InvalidDBSecurityGroupStateException * @throws AuthorizationNotFoundException * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonRDS indicating * either a problem with the data in the request, or a server side issue. */ public DBSecurityGroup revokeDBSecurityGroupIngress(RevokeDBSecurityGroupIngressRequest revokeDBSecurityGroupIngressRequest) throws AmazonServiceException, AmazonClientException { Request request = new RevokeDBSecurityGroupIngressRequestMarshaller().marshall(revokeDBSecurityGroupIngressRequest); return invoke(request, new DBSecurityGroupStaxUnmarshaller()); } /** *

* This API returns the detailed parameter list for a particular * DBParameterGroup. *

* * @param describeDBParametersRequest Container for the necessary * parameters to execute the DescribeDBParameters service method on * AmazonRDS. * * @return The response from the DescribeDBParameters service method, as * returned by AmazonRDS. * * @throws DBParameterGroupNotFoundException * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonRDS indicating * either a problem with the data in the request, or a server side issue. */ public DescribeDBParametersResult describeDBParameters(DescribeDBParametersRequest describeDBParametersRequest) throws AmazonServiceException, AmazonClientException { Request request = new DescribeDBParametersRequestMarshaller().marshall(describeDBParametersRequest); return invoke(request, new DescribeDBParametersResultStaxUnmarshaller()); } /** *

* This API returns events related to DB Instances, DB Security Groups, * DB Snapshots and DB Parameter Groups for the past 14 das. Events * specific to a particular DB Instance, database security group, * database snapshot or database parameter group can be obtained by * providing the name as a parameter. By default, the past hour of events * are returned. *

* * @param describeEventsRequest Container for the necessary parameters to * execute the DescribeEvents service method on AmazonRDS. * * @return The response from the DescribeEvents service method, as * returned by AmazonRDS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonRDS indicating * either a problem with the data in the request, or a server side issue. */ public DescribeEventsResult describeEvents(DescribeEventsRequest describeEventsRequest) throws AmazonServiceException, AmazonClientException { Request request = new DescribeEventsRequestMarshaller().marshall(describeEventsRequest); return invoke(request, new DescribeEventsResultStaxUnmarshaller()); } /** *

* This API creates a new database security group. Database Security * groups control access to a database instance. *

* * @param createDBSecurityGroupRequest Container for the necessary * parameters to execute the CreateDBSecurityGroup service method on * AmazonRDS. * * @return The response from the CreateDBSecurityGroup service method, as * returned by AmazonRDS. * * @throws DBSecurityGroupQuotaExceededException * @throws DBSecurityGroupAlreadyExistsException * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonRDS indicating * either a problem with the data in the request, or a server side issue. */ public DBSecurityGroup createDBSecurityGroup(CreateDBSecurityGroupRequest createDBSecurityGroupRequest) throws AmazonServiceException, AmazonClientException { Request request = new CreateDBSecurityGroupRequestMarshaller().marshall(createDBSecurityGroupRequest); return invoke(request, new DBSecurityGroupStaxUnmarshaller()); } /** *

* This API is used to retrieve information about provisioned RDS * instances. DescribeDBInstances supports pagination. *

* * @param describeDBInstancesRequest Container for the necessary * parameters to execute the DescribeDBInstances service method on * AmazonRDS. * * @return The response from the DescribeDBInstances service method, as * returned by AmazonRDS. * * @throws DBInstanceNotFoundException * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonRDS indicating * either a problem with the data in the request, or a server side issue. */ public DescribeDBInstancesResult describeDBInstances(DescribeDBInstancesRequest describeDBInstancesRequest) throws AmazonServiceException, AmazonClientException { Request request = new DescribeDBInstancesRequestMarshaller().marshall(describeDBInstancesRequest); return invoke(request, new DescribeDBInstancesResultStaxUnmarshaller()); } /** *

* This API returns a list of DBParameterGroup descriptions. If a * DBParameterGroupName is specified, the list will contain only the * descriptions of the specified DBParameterGroup. *

* * @param describeDBParameterGroupsRequest Container for the necessary * parameters to execute the DescribeDBParameterGroups service method on * AmazonRDS. * * @return The response from the DescribeDBParameterGroups service * method, as returned by AmazonRDS. * * @throws DBParameterGroupNotFoundException * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonRDS indicating * either a problem with the data in the request, or a server side issue. */ public DescribeDBParameterGroupsResult describeDBParameterGroups(DescribeDBParameterGroupsRequest describeDBParameterGroupsRequest) throws AmazonServiceException, AmazonClientException { Request request = new DescribeDBParameterGroupsRequestMarshaller().marshall(describeDBParameterGroupsRequest); return invoke(request, new DescribeDBParameterGroupsResultStaxUnmarshaller()); } /** *

* This API is used to create a DBSnapshot. The source DBInstance must * be in "available" state. *

* * @param createDBSnapshotRequest Container for the necessary parameters * to execute the CreateDBSnapshot service method on AmazonRDS. * * @return The response from the CreateDBSnapshot service method, as * returned by AmazonRDS. * * @throws DBInstanceNotFoundException * @throws InvalidDBInstanceStateException * @throws SnapshotQuotaExceededException * @throws DBSnapshotAlreadyExistsException * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonRDS indicating * either a problem with the data in the request, or a server side issue. */ public DBSnapshot createDBSnapshot(CreateDBSnapshotRequest createDBSnapshotRequest) throws AmazonServiceException, AmazonClientException { Request request = new CreateDBSnapshotRequestMarshaller().marshall(createDBSnapshotRequest); return invoke(request, new DBSnapshotStaxUnmarshaller()); } /** *

* Returns a list of the available DB engines. *

* * @param describeDBEngineVersionsRequest Container for the necessary * parameters to execute the DescribeDBEngineVersions service method on * AmazonRDS. * * @return The response from the DescribeDBEngineVersions service method, * as returned by AmazonRDS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonRDS indicating * either a problem with the data in the request, or a server side issue. */ public DescribeDBEngineVersionsResult describeDBEngineVersions(DescribeDBEngineVersionsRequest describeDBEngineVersionsRequest) throws AmazonServiceException, AmazonClientException { Request request = new DescribeDBEngineVersionsRequestMarshaller().marshall(describeDBEngineVersionsRequest); return invoke(request, new DescribeDBEngineVersionsResultStaxUnmarshaller()); } /** *

* The RebootDBInstance API reboots a previously provisioned RDS * instance. This API results in the application of modified * DBParameterGroup parameters with ApplyStatus of pending-reboot to the * RDS instance. This action is taken as soon as possible, and results in * a momentary outage to the RDS instance during which the RDS instance * status is set to rebooting. A DBInstance event is created when the * reboot is completed. *

* * @param rebootDBInstanceRequest Container for the necessary parameters * to execute the RebootDBInstance service method on AmazonRDS. * * @return The response from the RebootDBInstance service method, as * returned by AmazonRDS. * * @throws DBInstanceNotFoundException * @throws InvalidDBInstanceStateException * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonRDS indicating * either a problem with the data in the request, or a server side issue. */ public DBInstance rebootDBInstance(RebootDBInstanceRequest rebootDBInstanceRequest) throws AmazonServiceException, AmazonClientException { Request request = new RebootDBInstanceRequestMarshaller().marshall(rebootDBInstanceRequest); return invoke(request, new DBInstanceStaxUnmarshaller()); } /** *

* This API allows for ingress to a DBSecurityGroup using one of two * forms of authorization. First, EC2 Security Groups can be added to the * DBSecurityGroup if the application using the database is running on * EC2 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 or (EC2SecurityGroupName * AND EC2SecurityGroupOwnerId). *

* * @param authorizeDBSecurityGroupIngressRequest Container for the * necessary parameters to execute the AuthorizeDBSecurityGroupIngress * service method on AmazonRDS. * * @return The response from the AuthorizeDBSecurityGroupIngress service * method, as returned by AmazonRDS. * * @throws DBSecurityGroupNotFoundException * @throws InvalidDBSecurityGroupStateException * @throws AuthorizationAlreadyExistsException * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonRDS indicating * either a problem with the data in the request, or a server side issue. */ public DBSecurityGroup authorizeDBSecurityGroupIngress(AuthorizeDBSecurityGroupIngressRequest authorizeDBSecurityGroupIngressRequest) throws AmazonServiceException, AmazonClientException { Request request = new AuthorizeDBSecurityGroupIngressRequestMarshaller().marshall(authorizeDBSecurityGroupIngressRequest); return invoke(request, new DBSecurityGroupStaxUnmarshaller()); } /** *

* This API creates a new RDS instance from a point-in-time system * snapshot. The target database is created from the source database * restore point with the same configuration as the original source * database, except that the new RDS instance is created with the default * security group. *

* * @param restoreDBInstanceToPointInTimeRequest Container for the * necessary parameters to execute the RestoreDBInstanceToPointInTime * service method on AmazonRDS. * * @return The response from the RestoreDBInstanceToPointInTime service * method, as returned by AmazonRDS. * * @throws PointInTimeRestoreNotEnabledException * @throws InstanceQuotaExceededException * @throws DBInstanceAlreadyExistsException * @throws DBInstanceNotFoundException * @throws StorageQuotaExceededException * @throws InvalidDBInstanceStateException * @throws InsufficientDBInstanceCapacityException * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonRDS indicating * either a problem with the data in the request, or a server side issue. */ public DBInstance restoreDBInstanceToPointInTime(RestoreDBInstanceToPointInTimeRequest restoreDBInstanceToPointInTimeRequest) throws AmazonServiceException, AmazonClientException { Request request = new RestoreDBInstanceToPointInTimeRequestMarshaller().marshall(restoreDBInstanceToPointInTimeRequest); return invoke(request, new DBInstanceStaxUnmarshaller()); } /** *

* This API is used to retrieve information about DBSnapshots. This API * supports pagination. *

* * @param describeDBSnapshotsRequest Container for the necessary * parameters to execute the DescribeDBSnapshots service method on * AmazonRDS. * * @return The response from the DescribeDBSnapshots service method, as * returned by AmazonRDS. * * @throws DBSnapshotNotFoundException * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonRDS indicating * either a problem with the data in the request, or a server side issue. */ public DescribeDBSnapshotsResult describeDBSnapshots(DescribeDBSnapshotsRequest describeDBSnapshotsRequest) throws AmazonServiceException, AmazonClientException { Request request = new DescribeDBSnapshotsRequestMarshaller().marshall(describeDBSnapshotsRequest); return invoke(request, new DescribeDBSnapshotsResultStaxUnmarshaller()); } /** *

* Lists available reserved DB Instance offerings. *

* * @param describeReservedDBInstancesOfferingsRequest Container for the * necessary parameters to execute the * DescribeReservedDBInstancesOfferings service method on AmazonRDS. * * @return The response from the DescribeReservedDBInstancesOfferings * service method, as returned by AmazonRDS. * * @throws ReservedDBInstancesOfferingNotFoundException * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonRDS indicating * either a problem with the data in the request, or a server side issue. */ public DescribeReservedDBInstancesOfferingsResult describeReservedDBInstancesOfferings(DescribeReservedDBInstancesOfferingsRequest describeReservedDBInstancesOfferingsRequest) throws AmazonServiceException, AmazonClientException { Request request = new DescribeReservedDBInstancesOfferingsRequestMarshaller().marshall(describeReservedDBInstancesOfferingsRequest); return invoke(request, new DescribeReservedDBInstancesOfferingsResultStaxUnmarshaller()); } /** *

* This API returns the default engine and system parameter information * for the specified database engine. *

* * @param describeEngineDefaultParametersRequest Container for the * necessary parameters to execute the DescribeEngineDefaultParameters * service method on AmazonRDS. * * @return The response from the DescribeEngineDefaultParameters service * method, as returned by AmazonRDS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonRDS indicating * either a problem with the data in the request, or a server side issue. */ public EngineDefaults describeEngineDefaultParameters(DescribeEngineDefaultParametersRequest describeEngineDefaultParametersRequest) throws AmazonServiceException, AmazonClientException { Request request = new DescribeEngineDefaultParametersRequestMarshaller().marshall(describeEngineDefaultParametersRequest); return invoke(request, new EngineDefaultsStaxUnmarshaller()); } /** *

* The DeleteDBInstance API deletes a previously provisioned RDS * instance. A successful response from the web service indicates the * request was received correctly. If a final DBSnapshot is requested the * status of the RDS instance will be "deleting" until the DBSnapshot is * created. DescribeDBInstance is used to monitor the status of this * operation. This cannot be canceled or reverted once submitted. *

* * @param deleteDBInstanceRequest Container for the necessary parameters * to execute the DeleteDBInstance service method on AmazonRDS. * * @return The response from the DeleteDBInstance service method, as * returned by AmazonRDS. * * @throws DBInstanceNotFoundException * @throws InvalidDBInstanceStateException * @throws SnapshotQuotaExceededException * @throws DBSnapshotAlreadyExistsException * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonRDS indicating * either a problem with the data in the request, or a server side issue. */ public DBInstance deleteDBInstance(DeleteDBInstanceRequest deleteDBInstanceRequest) throws AmazonServiceException, AmazonClientException { Request request = new DeleteDBInstanceRequestMarshaller().marshall(deleteDBInstanceRequest); return invoke(request, new DBInstanceStaxUnmarshaller()); } /** *

* This API returns a list of DBSecurityGroup descriptions. If a * DBSecurityGroupName is specified, the list will contain only the * descriptions of the specified DBSecurityGroup. *

* * @param describeDBSecurityGroupsRequest Container for the necessary * parameters to execute the DescribeDBSecurityGroups service method on * AmazonRDS. * * @return The response from the DescribeDBSecurityGroups service method, * as returned by AmazonRDS. * * @throws DBSecurityGroupNotFoundException * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonRDS indicating * either a problem with the data in the request, or a server side issue. */ public DescribeDBSecurityGroupsResult describeDBSecurityGroups(DescribeDBSecurityGroupsRequest describeDBSecurityGroupsRequest) throws AmazonServiceException, AmazonClientException { Request request = new DescribeDBSecurityGroupsRequestMarshaller().marshall(describeDBSecurityGroupsRequest); return invoke(request, new DescribeDBSecurityGroupsResultStaxUnmarshaller()); } /** *

* This API creates a new DB instance. *

* * @param createDBInstanceRequest Container for the necessary parameters * to execute the CreateDBInstance service method on AmazonRDS. * * @return The response from the CreateDBInstance service method, as * returned by AmazonRDS. * * @throws DBParameterGroupNotFoundException * @throws InstanceQuotaExceededException * @throws DBInstanceAlreadyExistsException * @throws StorageQuotaExceededException * @throws DBSecurityGroupNotFoundException * @throws InsufficientDBInstanceCapacityException * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonRDS indicating * either a problem with the data in the request, or a server side issue. */ public DBInstance createDBInstance(CreateDBInstanceRequest createDBInstanceRequest) throws AmazonServiceException, AmazonClientException { Request request = new CreateDBInstanceRequestMarshaller().marshall(createDBInstanceRequest); return invoke(request, new DBInstanceStaxUnmarshaller()); } /** *

* This API modifies the parameters of a DBParameterGroup to the * engine/system default value. To reset specific parameters submit a * list of the following: ParameterName and ApplyMethod. To reset the * entire DBParameterGroup 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 MySQL reboot or * RebootDBInstance request. *

* * @param resetDBParameterGroupRequest Container for the necessary * parameters to execute the ResetDBParameterGroup service method on * AmazonRDS. * * @return The response from the ResetDBParameterGroup service method, as * returned by AmazonRDS. * * @throws DBParameterGroupNotFoundException * @throws InvalidDBParameterGroupStateException * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonRDS indicating * either a problem with the data in the request, or a server side issue. */ public ResetDBParameterGroupResult resetDBParameterGroup(ResetDBParameterGroupRequest resetDBParameterGroupRequest) throws AmazonServiceException, AmazonClientException { Request request = new ResetDBParameterGroupRequestMarshaller().marshall(resetDBParameterGroupRequest); return invoke(request, new ResetDBParameterGroupResultStaxUnmarshaller()); } /** *

* This API is used to change RDS Instance settings. Users call the * ModifyDBInstance API to change one or more database configuration * parameters by specifying these parameters and the new values in the * request. *

* * @param modifyDBInstanceRequest Container for the necessary parameters * to execute the ModifyDBInstance service method on AmazonRDS. * * @return The response from the ModifyDBInstance service method, as * returned by AmazonRDS. * * @throws DBParameterGroupNotFoundException * @throws DBInstanceNotFoundException * @throws InvalidDBInstanceStateException * @throws DBSecurityGroupNotFoundException * @throws InvalidDBSecurityGroupStateException * @throws InsufficientDBInstanceCapacityException * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonRDS indicating * either a problem with the data in the request, or a server side issue. */ public DBInstance modifyDBInstance(ModifyDBInstanceRequest modifyDBInstanceRequest) throws AmazonServiceException, AmazonClientException { Request request = new ModifyDBInstanceRequestMarshaller().marshall(modifyDBInstanceRequest); return invoke(request, new DBInstanceStaxUnmarshaller()); } /** *

* This API creates a new DB Instance to an arbitrary point-in-time. * Users can restore to any point in time before the latestRestorableTime * for up to backupRetentionPeriod days. The target database is created * from the source database with the same configuration as the original * database except that the DB instance is created with the default DB * security group. *

* * @param restoreDBInstanceFromDBSnapshotRequest Container for the * necessary parameters to execute the RestoreDBInstanceFromDBSnapshot * service method on AmazonRDS. * * @return The response from the RestoreDBInstanceFromDBSnapshot service * method, as returned by AmazonRDS. * * @throws InstanceQuotaExceededException * @throws DBInstanceAlreadyExistsException * @throws StorageQuotaExceededException * @throws InvalidDBSnapshotStateException * @throws InsufficientDBInstanceCapacityException * @throws DBSnapshotNotFoundException * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonRDS indicating * either a problem with the data in the request, or a server side issue. */ public DBInstance restoreDBInstanceFromDBSnapshot(RestoreDBInstanceFromDBSnapshotRequest restoreDBInstanceFromDBSnapshotRequest) throws AmazonServiceException, AmazonClientException { Request request = new RestoreDBInstanceFromDBSnapshotRequestMarshaller().marshall(restoreDBInstanceFromDBSnapshotRequest); return invoke(request, new DBInstanceStaxUnmarshaller()); } /** *

* Returns information about reserved DB Instances for this account, or * about a specified reserved DB Instance. *

* * @param describeReservedDBInstancesRequest Container for the necessary * parameters to execute the DescribeReservedDBInstances service method * on AmazonRDS. * * @return The response from the DescribeReservedDBInstances service * method, as returned by AmazonRDS. * * @throws ReservedDBInstanceNotFoundException * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonRDS indicating * either a problem with the data in the request, or a server side issue. */ public DescribeReservedDBInstancesResult describeReservedDBInstances(DescribeReservedDBInstancesRequest describeReservedDBInstancesRequest) throws AmazonServiceException, AmazonClientException { Request request = new DescribeReservedDBInstancesRequestMarshaller().marshall(describeReservedDBInstancesRequest); return invoke(request, new DescribeReservedDBInstancesResultStaxUnmarshaller()); } /** *

* This API creates a new database parameter group. *

* * @param createDBParameterGroupRequest Container for the necessary * parameters to execute the CreateDBParameterGroup service method on * AmazonRDS. * * @return The response from the CreateDBParameterGroup service method, * as returned by AmazonRDS. * * @throws DBParameterGroupQuotaExceededException * @throws DBParameterGroupAlreadyExistsException * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonRDS indicating * either a problem with the data in the request, or a server side issue. */ public DBParameterGroup createDBParameterGroup(CreateDBParameterGroupRequest createDBParameterGroupRequest) throws AmazonServiceException, AmazonClientException { Request request = new CreateDBParameterGroupRequestMarshaller().marshall(createDBParameterGroupRequest); return invoke(request, new DBParameterGroupStaxUnmarshaller()); } /** *

* This API deletes a database security group. Database security group * must not be associated with any RDS Instances. *

* * @param deleteDBSecurityGroupRequest Container for the necessary * parameters to execute the DeleteDBSecurityGroup service method on * AmazonRDS. * * @throws DBSecurityGroupNotFoundException * @throws InvalidDBSecurityGroupStateException * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonRDS indicating * either a problem with the data in the request, or a server side issue. */ public void deleteDBSecurityGroup(DeleteDBSecurityGroupRequest deleteDBSecurityGroupRequest) throws AmazonServiceException, AmazonClientException { Request request = new DeleteDBSecurityGroupRequestMarshaller().marshall(deleteDBSecurityGroupRequest); invoke(request, null); } /** *

* Creates a DB Instance 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. *

*

* IMPORTANT: The source DB Instance must have backup retention * enabled. *

* * @param createDBInstanceReadReplicaRequest Container for the necessary * parameters to execute the CreateDBInstanceReadReplica service method * on AmazonRDS. * * @return The response from the CreateDBInstanceReadReplica service * method, as returned by AmazonRDS. * * @throws DBParameterGroupNotFoundException * @throws InstanceQuotaExceededException * @throws DBInstanceAlreadyExistsException * @throws DBInstanceNotFoundException * @throws StorageQuotaExceededException * @throws InvalidDBInstanceStateException * @throws DBSecurityGroupNotFoundException * @throws InsufficientDBInstanceCapacityException * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonRDS indicating * either a problem with the data in the request, or a server side issue. */ public DBInstance createDBInstanceReadReplica(CreateDBInstanceReadReplicaRequest createDBInstanceReadReplicaRequest) throws AmazonServiceException, AmazonClientException { Request request = new CreateDBInstanceReadReplicaRequestMarshaller().marshall(createDBInstanceReadReplicaRequest); return invoke(request, new DBInstanceStaxUnmarshaller()); } /** *

* Purchases a reserved DB Instance offering. *

* * @param purchaseReservedDBInstancesOfferingRequest Container for the * necessary parameters to execute the * PurchaseReservedDBInstancesOffering service method on AmazonRDS. * * @return The response from the PurchaseReservedDBInstancesOffering * service method, as returned by AmazonRDS. * * @throws ReservedDBInstancesOfferingNotFoundException * @throws ReservedDBInstanceQuotaExceededException * @throws ReservedDBInstanceAlreadyExistsException * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonRDS indicating * either a problem with the data in the request, or a server side issue. */ public ReservedDBInstance purchaseReservedDBInstancesOffering(PurchaseReservedDBInstancesOfferingRequest purchaseReservedDBInstancesOfferingRequest) throws AmazonServiceException, AmazonClientException { Request request = new PurchaseReservedDBInstancesOfferingRequestMarshaller().marshall(purchaseReservedDBInstancesOfferingRequest); return invoke(request, new ReservedDBInstanceStaxUnmarshaller()); } /** *

* This API returns events related to DB Instances, DB Security Groups, * DB Snapshots and DB Parameter Groups for the past 14 das. Events * specific to a particular DB Instance, database security group, * database snapshot or database parameter group can be obtained by * providing the name as a parameter. By default, the past hour of events * are returned. *

* * @return The response from the DescribeEvents service method, as * returned by AmazonRDS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonRDS indicating * either a problem with the data in the request, or a server side issue. */ public DescribeEventsResult describeEvents() throws AmazonServiceException, AmazonClientException { return describeEvents(new DescribeEventsRequest()); } /** *

* This API is used to retrieve information about provisioned RDS * instances. DescribeDBInstances supports pagination. *

* * @return The response from the DescribeDBInstances service method, as * returned by AmazonRDS. * * @throws DBInstanceNotFoundException * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonRDS indicating * either a problem with the data in the request, or a server side issue. */ public DescribeDBInstancesResult describeDBInstances() throws AmazonServiceException, AmazonClientException { return describeDBInstances(new DescribeDBInstancesRequest()); } /** *

* This API returns a list of DBParameterGroup descriptions. If a * DBParameterGroupName is specified, the list will contain only the * descriptions of the specified DBParameterGroup. *

* * @return The response from the DescribeDBParameterGroups service * method, as returned by AmazonRDS. * * @throws DBParameterGroupNotFoundException * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonRDS indicating * either a problem with the data in the request, or a server side issue. */ public DescribeDBParameterGroupsResult describeDBParameterGroups() throws AmazonServiceException, AmazonClientException { return describeDBParameterGroups(new DescribeDBParameterGroupsRequest()); } /** *

* Returns a list of the available DB engines. *

* * @return The response from the DescribeDBEngineVersions service method, * as returned by AmazonRDS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonRDS indicating * either a problem with the data in the request, or a server side issue. */ public DescribeDBEngineVersionsResult describeDBEngineVersions() throws AmazonServiceException, AmazonClientException { return describeDBEngineVersions(new DescribeDBEngineVersionsRequest()); } /** *

* This API is used to retrieve information about DBSnapshots. This API * supports pagination. *

* * @return The response from the DescribeDBSnapshots service method, as * returned by AmazonRDS. * * @throws DBSnapshotNotFoundException * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonRDS indicating * either a problem with the data in the request, or a server side issue. */ public DescribeDBSnapshotsResult describeDBSnapshots() throws AmazonServiceException, AmazonClientException { return describeDBSnapshots(new DescribeDBSnapshotsRequest()); } /** *

* Lists available reserved DB Instance offerings. *

* * @return The response from the DescribeReservedDBInstancesOfferings * service method, as returned by AmazonRDS. * * @throws ReservedDBInstancesOfferingNotFoundException * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonRDS indicating * either a problem with the data in the request, or a server side issue. */ public DescribeReservedDBInstancesOfferingsResult describeReservedDBInstancesOfferings() throws AmazonServiceException, AmazonClientException { return describeReservedDBInstancesOfferings(new DescribeReservedDBInstancesOfferingsRequest()); } /** *

* This API returns a list of DBSecurityGroup descriptions. If a * DBSecurityGroupName is specified, the list will contain only the * descriptions of the specified DBSecurityGroup. *

* * @return The response from the DescribeDBSecurityGroups service method, * as returned by AmazonRDS. * * @throws DBSecurityGroupNotFoundException * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonRDS indicating * either a problem with the data in the request, or a server side issue. */ public DescribeDBSecurityGroupsResult describeDBSecurityGroups() throws AmazonServiceException, AmazonClientException { return describeDBSecurityGroups(new DescribeDBSecurityGroupsRequest()); } /** *

* Returns information about reserved DB Instances for this account, or * about a specified reserved DB Instance. *

* * @return The response from the DescribeReservedDBInstances service * method, as returned by AmazonRDS. * * @throws ReservedDBInstanceNotFoundException * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonRDS indicating * either a problem with the data in the request, or a server side issue. */ public DescribeReservedDBInstancesResult describeReservedDBInstances() throws AmazonServiceException, AmazonClientException { return describeReservedDBInstances(new DescribeReservedDBInstancesRequest()); } /** * 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); } private X invoke(Request request, Unmarshaller unmarshaller) { request.setEndpoint(endpoint); for (Entry entry : request.getOriginalRequest().copyPrivateRequestParameters().entrySet()) { request.addParameter(entry.getKey(), entry.getValue()); } // Apply any additional service specific request handlers that need to be run if (requestHandlers != null) { for (RequestHandler requestHandler : requestHandlers) { request = requestHandler.handleRequest(request); } } try { signer.sign(request); } catch (SignatureException e) { throw new AmazonServiceException("Unable to sign request", e); } HttpRequest httpRequest = convertToHttpRequest(request, HttpMethodName.POST); StaxResponseHandler responseHandler = new StaxResponseHandler(unmarshaller); DefaultErrorResponseHandler errorResponseHandler = new DefaultErrorResponseHandler(exceptionUnmarshallers); return (X)client.execute(httpRequest, responseHandler, errorResponseHandler); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy