software.amazon.awssdk.services.rds.DefaultRdsAsyncClient Maven / Gradle / Ivy
Show all versions of rds Show documentation
/*
* Copyright 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 software.amazon.awssdk.services.rds;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ScheduledExecutorService;
import java.util.function.Consumer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.annotations.SdkInternalApi;
import software.amazon.awssdk.awscore.client.handler.AwsAsyncClientHandler;
import software.amazon.awssdk.awscore.exception.AwsServiceException;
import software.amazon.awssdk.awscore.internal.AwsProtocolMetadata;
import software.amazon.awssdk.awscore.internal.AwsServiceProtocol;
import software.amazon.awssdk.awscore.retry.AwsRetryStrategy;
import software.amazon.awssdk.core.RequestOverrideConfiguration;
import software.amazon.awssdk.core.SdkPlugin;
import software.amazon.awssdk.core.SdkRequest;
import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
import software.amazon.awssdk.core.client.config.SdkClientConfiguration;
import software.amazon.awssdk.core.client.config.SdkClientOption;
import software.amazon.awssdk.core.client.handler.AsyncClientHandler;
import software.amazon.awssdk.core.client.handler.ClientExecutionParams;
import software.amazon.awssdk.core.http.HttpResponseHandler;
import software.amazon.awssdk.core.metrics.CoreMetric;
import software.amazon.awssdk.core.retry.RetryMode;
import software.amazon.awssdk.metrics.MetricCollector;
import software.amazon.awssdk.metrics.MetricPublisher;
import software.amazon.awssdk.metrics.NoOpMetricCollector;
import software.amazon.awssdk.protocols.core.ExceptionMetadata;
import software.amazon.awssdk.protocols.query.AwsQueryProtocolFactory;
import software.amazon.awssdk.retries.api.RetryStrategy;
import software.amazon.awssdk.services.rds.internal.RdsServiceClientConfigurationBuilder;
import software.amazon.awssdk.services.rds.model.AddRoleToDbClusterRequest;
import software.amazon.awssdk.services.rds.model.AddRoleToDbClusterResponse;
import software.amazon.awssdk.services.rds.model.AddRoleToDbInstanceRequest;
import software.amazon.awssdk.services.rds.model.AddRoleToDbInstanceResponse;
import software.amazon.awssdk.services.rds.model.AddSourceIdentifierToSubscriptionRequest;
import software.amazon.awssdk.services.rds.model.AddSourceIdentifierToSubscriptionResponse;
import software.amazon.awssdk.services.rds.model.AddTagsToResourceRequest;
import software.amazon.awssdk.services.rds.model.AddTagsToResourceResponse;
import software.amazon.awssdk.services.rds.model.ApplyPendingMaintenanceActionRequest;
import software.amazon.awssdk.services.rds.model.ApplyPendingMaintenanceActionResponse;
import software.amazon.awssdk.services.rds.model.AuthorizationAlreadyExistsException;
import software.amazon.awssdk.services.rds.model.AuthorizationNotFoundException;
import software.amazon.awssdk.services.rds.model.AuthorizationQuotaExceededException;
import software.amazon.awssdk.services.rds.model.AuthorizeDbSecurityGroupIngressRequest;
import software.amazon.awssdk.services.rds.model.AuthorizeDbSecurityGroupIngressResponse;
import software.amazon.awssdk.services.rds.model.BacktrackDbClusterRequest;
import software.amazon.awssdk.services.rds.model.BacktrackDbClusterResponse;
import software.amazon.awssdk.services.rds.model.BlueGreenDeploymentAlreadyExistsException;
import software.amazon.awssdk.services.rds.model.BlueGreenDeploymentNotFoundException;
import software.amazon.awssdk.services.rds.model.CancelExportTaskRequest;
import software.amazon.awssdk.services.rds.model.CancelExportTaskResponse;
import software.amazon.awssdk.services.rds.model.CertificateNotFoundException;
import software.amazon.awssdk.services.rds.model.CopyDbClusterParameterGroupRequest;
import software.amazon.awssdk.services.rds.model.CopyDbClusterParameterGroupResponse;
import software.amazon.awssdk.services.rds.model.CopyDbClusterSnapshotRequest;
import software.amazon.awssdk.services.rds.model.CopyDbClusterSnapshotResponse;
import software.amazon.awssdk.services.rds.model.CopyDbParameterGroupRequest;
import software.amazon.awssdk.services.rds.model.CopyDbParameterGroupResponse;
import software.amazon.awssdk.services.rds.model.CopyDbSnapshotRequest;
import software.amazon.awssdk.services.rds.model.CopyDbSnapshotResponse;
import software.amazon.awssdk.services.rds.model.CopyOptionGroupRequest;
import software.amazon.awssdk.services.rds.model.CopyOptionGroupResponse;
import software.amazon.awssdk.services.rds.model.CreateBlueGreenDeploymentRequest;
import software.amazon.awssdk.services.rds.model.CreateBlueGreenDeploymentResponse;
import software.amazon.awssdk.services.rds.model.CreateCustomDbEngineVersionException;
import software.amazon.awssdk.services.rds.model.CreateCustomDbEngineVersionRequest;
import software.amazon.awssdk.services.rds.model.CreateCustomDbEngineVersionResponse;
import software.amazon.awssdk.services.rds.model.CreateDbClusterEndpointRequest;
import software.amazon.awssdk.services.rds.model.CreateDbClusterEndpointResponse;
import software.amazon.awssdk.services.rds.model.CreateDbClusterParameterGroupRequest;
import software.amazon.awssdk.services.rds.model.CreateDbClusterParameterGroupResponse;
import software.amazon.awssdk.services.rds.model.CreateDbClusterRequest;
import software.amazon.awssdk.services.rds.model.CreateDbClusterResponse;
import software.amazon.awssdk.services.rds.model.CreateDbClusterSnapshotRequest;
import software.amazon.awssdk.services.rds.model.CreateDbClusterSnapshotResponse;
import software.amazon.awssdk.services.rds.model.CreateDbInstanceReadReplicaRequest;
import software.amazon.awssdk.services.rds.model.CreateDbInstanceReadReplicaResponse;
import software.amazon.awssdk.services.rds.model.CreateDbInstanceRequest;
import software.amazon.awssdk.services.rds.model.CreateDbInstanceResponse;
import software.amazon.awssdk.services.rds.model.CreateDbParameterGroupRequest;
import software.amazon.awssdk.services.rds.model.CreateDbParameterGroupResponse;
import software.amazon.awssdk.services.rds.model.CreateDbProxyEndpointRequest;
import software.amazon.awssdk.services.rds.model.CreateDbProxyEndpointResponse;
import software.amazon.awssdk.services.rds.model.CreateDbProxyRequest;
import software.amazon.awssdk.services.rds.model.CreateDbProxyResponse;
import software.amazon.awssdk.services.rds.model.CreateDbSecurityGroupRequest;
import software.amazon.awssdk.services.rds.model.CreateDbSecurityGroupResponse;
import software.amazon.awssdk.services.rds.model.CreateDbShardGroupRequest;
import software.amazon.awssdk.services.rds.model.CreateDbShardGroupResponse;
import software.amazon.awssdk.services.rds.model.CreateDbSnapshotRequest;
import software.amazon.awssdk.services.rds.model.CreateDbSnapshotResponse;
import software.amazon.awssdk.services.rds.model.CreateDbSubnetGroupRequest;
import software.amazon.awssdk.services.rds.model.CreateDbSubnetGroupResponse;
import software.amazon.awssdk.services.rds.model.CreateEventSubscriptionRequest;
import software.amazon.awssdk.services.rds.model.CreateEventSubscriptionResponse;
import software.amazon.awssdk.services.rds.model.CreateGlobalClusterRequest;
import software.amazon.awssdk.services.rds.model.CreateGlobalClusterResponse;
import software.amazon.awssdk.services.rds.model.CreateIntegrationRequest;
import software.amazon.awssdk.services.rds.model.CreateIntegrationResponse;
import software.amazon.awssdk.services.rds.model.CreateOptionGroupRequest;
import software.amazon.awssdk.services.rds.model.CreateOptionGroupResponse;
import software.amazon.awssdk.services.rds.model.CreateTenantDatabaseRequest;
import software.amazon.awssdk.services.rds.model.CreateTenantDatabaseResponse;
import software.amazon.awssdk.services.rds.model.CustomAvailabilityZoneNotFoundException;
import software.amazon.awssdk.services.rds.model.CustomDbEngineVersionAlreadyExistsException;
import software.amazon.awssdk.services.rds.model.CustomDbEngineVersionNotFoundException;
import software.amazon.awssdk.services.rds.model.CustomDbEngineVersionQuotaExceededException;
import software.amazon.awssdk.services.rds.model.DbClusterAlreadyExistsException;
import software.amazon.awssdk.services.rds.model.DbClusterAutomatedBackupNotFoundException;
import software.amazon.awssdk.services.rds.model.DbClusterAutomatedBackupQuotaExceededException;
import software.amazon.awssdk.services.rds.model.DbClusterBacktrackNotFoundException;
import software.amazon.awssdk.services.rds.model.DbClusterEndpointAlreadyExistsException;
import software.amazon.awssdk.services.rds.model.DbClusterEndpointNotFoundException;
import software.amazon.awssdk.services.rds.model.DbClusterEndpointQuotaExceededException;
import software.amazon.awssdk.services.rds.model.DbClusterNotFoundException;
import software.amazon.awssdk.services.rds.model.DbClusterParameterGroupNotFoundException;
import software.amazon.awssdk.services.rds.model.DbClusterQuotaExceededException;
import software.amazon.awssdk.services.rds.model.DbClusterRoleAlreadyExistsException;
import software.amazon.awssdk.services.rds.model.DbClusterRoleNotFoundException;
import software.amazon.awssdk.services.rds.model.DbClusterRoleQuotaExceededException;
import software.amazon.awssdk.services.rds.model.DbClusterSnapshotAlreadyExistsException;
import software.amazon.awssdk.services.rds.model.DbClusterSnapshotNotFoundException;
import software.amazon.awssdk.services.rds.model.DbInstanceAlreadyExistsException;
import software.amazon.awssdk.services.rds.model.DbInstanceAutomatedBackupNotFoundException;
import software.amazon.awssdk.services.rds.model.DbInstanceAutomatedBackupQuotaExceededException;
import software.amazon.awssdk.services.rds.model.DbInstanceNotFoundException;
import software.amazon.awssdk.services.rds.model.DbInstanceRoleAlreadyExistsException;
import software.amazon.awssdk.services.rds.model.DbInstanceRoleNotFoundException;
import software.amazon.awssdk.services.rds.model.DbInstanceRoleQuotaExceededException;
import software.amazon.awssdk.services.rds.model.DbLogFileNotFoundException;
import software.amazon.awssdk.services.rds.model.DbParameterGroupAlreadyExistsException;
import software.amazon.awssdk.services.rds.model.DbParameterGroupNotFoundException;
import software.amazon.awssdk.services.rds.model.DbParameterGroupQuotaExceededException;
import software.amazon.awssdk.services.rds.model.DbProxyAlreadyExistsException;
import software.amazon.awssdk.services.rds.model.DbProxyEndpointAlreadyExistsException;
import software.amazon.awssdk.services.rds.model.DbProxyEndpointNotFoundException;
import software.amazon.awssdk.services.rds.model.DbProxyEndpointQuotaExceededException;
import software.amazon.awssdk.services.rds.model.DbProxyNotFoundException;
import software.amazon.awssdk.services.rds.model.DbProxyQuotaExceededException;
import software.amazon.awssdk.services.rds.model.DbProxyTargetAlreadyRegisteredException;
import software.amazon.awssdk.services.rds.model.DbProxyTargetGroupNotFoundException;
import software.amazon.awssdk.services.rds.model.DbProxyTargetNotFoundException;
import software.amazon.awssdk.services.rds.model.DbSecurityGroupAlreadyExistsException;
import software.amazon.awssdk.services.rds.model.DbSecurityGroupNotFoundException;
import software.amazon.awssdk.services.rds.model.DbSecurityGroupNotSupportedException;
import software.amazon.awssdk.services.rds.model.DbSecurityGroupQuotaExceededException;
import software.amazon.awssdk.services.rds.model.DbShardGroupAlreadyExistsException;
import software.amazon.awssdk.services.rds.model.DbShardGroupNotFoundException;
import software.amazon.awssdk.services.rds.model.DbSnapshotAlreadyExistsException;
import software.amazon.awssdk.services.rds.model.DbSnapshotNotFoundException;
import software.amazon.awssdk.services.rds.model.DbSnapshotTenantDatabaseNotFoundException;
import software.amazon.awssdk.services.rds.model.DbSubnetGroupAlreadyExistsException;
import software.amazon.awssdk.services.rds.model.DbSubnetGroupDoesNotCoverEnoughAZsException;
import software.amazon.awssdk.services.rds.model.DbSubnetGroupNotAllowedException;
import software.amazon.awssdk.services.rds.model.DbSubnetGroupNotFoundException;
import software.amazon.awssdk.services.rds.model.DbSubnetGroupQuotaExceededException;
import software.amazon.awssdk.services.rds.model.DbSubnetQuotaExceededException;
import software.amazon.awssdk.services.rds.model.DbUpgradeDependencyFailureException;
import software.amazon.awssdk.services.rds.model.DeleteBlueGreenDeploymentRequest;
import software.amazon.awssdk.services.rds.model.DeleteBlueGreenDeploymentResponse;
import software.amazon.awssdk.services.rds.model.DeleteCustomDbEngineVersionRequest;
import software.amazon.awssdk.services.rds.model.DeleteCustomDbEngineVersionResponse;
import software.amazon.awssdk.services.rds.model.DeleteDbClusterAutomatedBackupRequest;
import software.amazon.awssdk.services.rds.model.DeleteDbClusterAutomatedBackupResponse;
import software.amazon.awssdk.services.rds.model.DeleteDbClusterEndpointRequest;
import software.amazon.awssdk.services.rds.model.DeleteDbClusterEndpointResponse;
import software.amazon.awssdk.services.rds.model.DeleteDbClusterParameterGroupRequest;
import software.amazon.awssdk.services.rds.model.DeleteDbClusterParameterGroupResponse;
import software.amazon.awssdk.services.rds.model.DeleteDbClusterRequest;
import software.amazon.awssdk.services.rds.model.DeleteDbClusterResponse;
import software.amazon.awssdk.services.rds.model.DeleteDbClusterSnapshotRequest;
import software.amazon.awssdk.services.rds.model.DeleteDbClusterSnapshotResponse;
import software.amazon.awssdk.services.rds.model.DeleteDbInstanceAutomatedBackupRequest;
import software.amazon.awssdk.services.rds.model.DeleteDbInstanceAutomatedBackupResponse;
import software.amazon.awssdk.services.rds.model.DeleteDbInstanceRequest;
import software.amazon.awssdk.services.rds.model.DeleteDbInstanceResponse;
import software.amazon.awssdk.services.rds.model.DeleteDbParameterGroupRequest;
import software.amazon.awssdk.services.rds.model.DeleteDbParameterGroupResponse;
import software.amazon.awssdk.services.rds.model.DeleteDbProxyEndpointRequest;
import software.amazon.awssdk.services.rds.model.DeleteDbProxyEndpointResponse;
import software.amazon.awssdk.services.rds.model.DeleteDbProxyRequest;
import software.amazon.awssdk.services.rds.model.DeleteDbProxyResponse;
import software.amazon.awssdk.services.rds.model.DeleteDbSecurityGroupRequest;
import software.amazon.awssdk.services.rds.model.DeleteDbSecurityGroupResponse;
import software.amazon.awssdk.services.rds.model.DeleteDbShardGroupRequest;
import software.amazon.awssdk.services.rds.model.DeleteDbShardGroupResponse;
import software.amazon.awssdk.services.rds.model.DeleteDbSnapshotRequest;
import software.amazon.awssdk.services.rds.model.DeleteDbSnapshotResponse;
import software.amazon.awssdk.services.rds.model.DeleteDbSubnetGroupRequest;
import software.amazon.awssdk.services.rds.model.DeleteDbSubnetGroupResponse;
import software.amazon.awssdk.services.rds.model.DeleteEventSubscriptionRequest;
import software.amazon.awssdk.services.rds.model.DeleteEventSubscriptionResponse;
import software.amazon.awssdk.services.rds.model.DeleteGlobalClusterRequest;
import software.amazon.awssdk.services.rds.model.DeleteGlobalClusterResponse;
import software.amazon.awssdk.services.rds.model.DeleteIntegrationRequest;
import software.amazon.awssdk.services.rds.model.DeleteIntegrationResponse;
import software.amazon.awssdk.services.rds.model.DeleteOptionGroupRequest;
import software.amazon.awssdk.services.rds.model.DeleteOptionGroupResponse;
import software.amazon.awssdk.services.rds.model.DeleteTenantDatabaseRequest;
import software.amazon.awssdk.services.rds.model.DeleteTenantDatabaseResponse;
import software.amazon.awssdk.services.rds.model.DeregisterDbProxyTargetsRequest;
import software.amazon.awssdk.services.rds.model.DeregisterDbProxyTargetsResponse;
import software.amazon.awssdk.services.rds.model.DescribeAccountAttributesRequest;
import software.amazon.awssdk.services.rds.model.DescribeAccountAttributesResponse;
import software.amazon.awssdk.services.rds.model.DescribeBlueGreenDeploymentsRequest;
import software.amazon.awssdk.services.rds.model.DescribeBlueGreenDeploymentsResponse;
import software.amazon.awssdk.services.rds.model.DescribeCertificatesRequest;
import software.amazon.awssdk.services.rds.model.DescribeCertificatesResponse;
import software.amazon.awssdk.services.rds.model.DescribeDbClusterAutomatedBackupsRequest;
import software.amazon.awssdk.services.rds.model.DescribeDbClusterAutomatedBackupsResponse;
import software.amazon.awssdk.services.rds.model.DescribeDbClusterBacktracksRequest;
import software.amazon.awssdk.services.rds.model.DescribeDbClusterBacktracksResponse;
import software.amazon.awssdk.services.rds.model.DescribeDbClusterEndpointsRequest;
import software.amazon.awssdk.services.rds.model.DescribeDbClusterEndpointsResponse;
import software.amazon.awssdk.services.rds.model.DescribeDbClusterParameterGroupsRequest;
import software.amazon.awssdk.services.rds.model.DescribeDbClusterParameterGroupsResponse;
import software.amazon.awssdk.services.rds.model.DescribeDbClusterParametersRequest;
import software.amazon.awssdk.services.rds.model.DescribeDbClusterParametersResponse;
import software.amazon.awssdk.services.rds.model.DescribeDbClusterSnapshotAttributesRequest;
import software.amazon.awssdk.services.rds.model.DescribeDbClusterSnapshotAttributesResponse;
import software.amazon.awssdk.services.rds.model.DescribeDbClusterSnapshotsRequest;
import software.amazon.awssdk.services.rds.model.DescribeDbClusterSnapshotsResponse;
import software.amazon.awssdk.services.rds.model.DescribeDbClustersRequest;
import software.amazon.awssdk.services.rds.model.DescribeDbClustersResponse;
import software.amazon.awssdk.services.rds.model.DescribeDbEngineVersionsRequest;
import software.amazon.awssdk.services.rds.model.DescribeDbEngineVersionsResponse;
import software.amazon.awssdk.services.rds.model.DescribeDbInstanceAutomatedBackupsRequest;
import software.amazon.awssdk.services.rds.model.DescribeDbInstanceAutomatedBackupsResponse;
import software.amazon.awssdk.services.rds.model.DescribeDbInstancesRequest;
import software.amazon.awssdk.services.rds.model.DescribeDbInstancesResponse;
import software.amazon.awssdk.services.rds.model.DescribeDbLogFilesRequest;
import software.amazon.awssdk.services.rds.model.DescribeDbLogFilesResponse;
import software.amazon.awssdk.services.rds.model.DescribeDbParameterGroupsRequest;
import software.amazon.awssdk.services.rds.model.DescribeDbParameterGroupsResponse;
import software.amazon.awssdk.services.rds.model.DescribeDbParametersRequest;
import software.amazon.awssdk.services.rds.model.DescribeDbParametersResponse;
import software.amazon.awssdk.services.rds.model.DescribeDbProxiesRequest;
import software.amazon.awssdk.services.rds.model.DescribeDbProxiesResponse;
import software.amazon.awssdk.services.rds.model.DescribeDbProxyEndpointsRequest;
import software.amazon.awssdk.services.rds.model.DescribeDbProxyEndpointsResponse;
import software.amazon.awssdk.services.rds.model.DescribeDbProxyTargetGroupsRequest;
import software.amazon.awssdk.services.rds.model.DescribeDbProxyTargetGroupsResponse;
import software.amazon.awssdk.services.rds.model.DescribeDbProxyTargetsRequest;
import software.amazon.awssdk.services.rds.model.DescribeDbProxyTargetsResponse;
import software.amazon.awssdk.services.rds.model.DescribeDbRecommendationsRequest;
import software.amazon.awssdk.services.rds.model.DescribeDbRecommendationsResponse;
import software.amazon.awssdk.services.rds.model.DescribeDbSecurityGroupsRequest;
import software.amazon.awssdk.services.rds.model.DescribeDbSecurityGroupsResponse;
import software.amazon.awssdk.services.rds.model.DescribeDbShardGroupsRequest;
import software.amazon.awssdk.services.rds.model.DescribeDbShardGroupsResponse;
import software.amazon.awssdk.services.rds.model.DescribeDbSnapshotAttributesRequest;
import software.amazon.awssdk.services.rds.model.DescribeDbSnapshotAttributesResponse;
import software.amazon.awssdk.services.rds.model.DescribeDbSnapshotTenantDatabasesRequest;
import software.amazon.awssdk.services.rds.model.DescribeDbSnapshotTenantDatabasesResponse;
import software.amazon.awssdk.services.rds.model.DescribeDbSnapshotsRequest;
import software.amazon.awssdk.services.rds.model.DescribeDbSnapshotsResponse;
import software.amazon.awssdk.services.rds.model.DescribeDbSubnetGroupsRequest;
import software.amazon.awssdk.services.rds.model.DescribeDbSubnetGroupsResponse;
import software.amazon.awssdk.services.rds.model.DescribeEngineDefaultClusterParametersRequest;
import software.amazon.awssdk.services.rds.model.DescribeEngineDefaultClusterParametersResponse;
import software.amazon.awssdk.services.rds.model.DescribeEngineDefaultParametersRequest;
import software.amazon.awssdk.services.rds.model.DescribeEngineDefaultParametersResponse;
import software.amazon.awssdk.services.rds.model.DescribeEventCategoriesRequest;
import software.amazon.awssdk.services.rds.model.DescribeEventCategoriesResponse;
import software.amazon.awssdk.services.rds.model.DescribeEventSubscriptionsRequest;
import software.amazon.awssdk.services.rds.model.DescribeEventSubscriptionsResponse;
import software.amazon.awssdk.services.rds.model.DescribeEventsRequest;
import software.amazon.awssdk.services.rds.model.DescribeEventsResponse;
import software.amazon.awssdk.services.rds.model.DescribeExportTasksRequest;
import software.amazon.awssdk.services.rds.model.DescribeExportTasksResponse;
import software.amazon.awssdk.services.rds.model.DescribeGlobalClustersRequest;
import software.amazon.awssdk.services.rds.model.DescribeGlobalClustersResponse;
import software.amazon.awssdk.services.rds.model.DescribeIntegrationsRequest;
import software.amazon.awssdk.services.rds.model.DescribeIntegrationsResponse;
import software.amazon.awssdk.services.rds.model.DescribeOptionGroupOptionsRequest;
import software.amazon.awssdk.services.rds.model.DescribeOptionGroupOptionsResponse;
import software.amazon.awssdk.services.rds.model.DescribeOptionGroupsRequest;
import software.amazon.awssdk.services.rds.model.DescribeOptionGroupsResponse;
import software.amazon.awssdk.services.rds.model.DescribeOrderableDbInstanceOptionsRequest;
import software.amazon.awssdk.services.rds.model.DescribeOrderableDbInstanceOptionsResponse;
import software.amazon.awssdk.services.rds.model.DescribePendingMaintenanceActionsRequest;
import software.amazon.awssdk.services.rds.model.DescribePendingMaintenanceActionsResponse;
import software.amazon.awssdk.services.rds.model.DescribeReservedDbInstancesOfferingsRequest;
import software.amazon.awssdk.services.rds.model.DescribeReservedDbInstancesOfferingsResponse;
import software.amazon.awssdk.services.rds.model.DescribeReservedDbInstancesRequest;
import software.amazon.awssdk.services.rds.model.DescribeReservedDbInstancesResponse;
import software.amazon.awssdk.services.rds.model.DescribeSourceRegionsRequest;
import software.amazon.awssdk.services.rds.model.DescribeSourceRegionsResponse;
import software.amazon.awssdk.services.rds.model.DescribeTenantDatabasesRequest;
import software.amazon.awssdk.services.rds.model.DescribeTenantDatabasesResponse;
import software.amazon.awssdk.services.rds.model.DescribeValidDbInstanceModificationsRequest;
import software.amazon.awssdk.services.rds.model.DescribeValidDbInstanceModificationsResponse;
import software.amazon.awssdk.services.rds.model.DisableHttpEndpointRequest;
import software.amazon.awssdk.services.rds.model.DisableHttpEndpointResponse;
import software.amazon.awssdk.services.rds.model.DomainNotFoundException;
import software.amazon.awssdk.services.rds.model.DownloadDbLogFilePortionRequest;
import software.amazon.awssdk.services.rds.model.DownloadDbLogFilePortionResponse;
import software.amazon.awssdk.services.rds.model.Ec2ImagePropertiesNotSupportedException;
import software.amazon.awssdk.services.rds.model.EnableHttpEndpointRequest;
import software.amazon.awssdk.services.rds.model.EnableHttpEndpointResponse;
import software.amazon.awssdk.services.rds.model.EventSubscriptionQuotaExceededException;
import software.amazon.awssdk.services.rds.model.ExportTaskAlreadyExistsException;
import software.amazon.awssdk.services.rds.model.ExportTaskNotFoundException;
import software.amazon.awssdk.services.rds.model.FailoverDbClusterRequest;
import software.amazon.awssdk.services.rds.model.FailoverDbClusterResponse;
import software.amazon.awssdk.services.rds.model.FailoverGlobalClusterRequest;
import software.amazon.awssdk.services.rds.model.FailoverGlobalClusterResponse;
import software.amazon.awssdk.services.rds.model.GlobalClusterAlreadyExistsException;
import software.amazon.awssdk.services.rds.model.GlobalClusterNotFoundException;
import software.amazon.awssdk.services.rds.model.GlobalClusterQuotaExceededException;
import software.amazon.awssdk.services.rds.model.IamRoleMissingPermissionsException;
import software.amazon.awssdk.services.rds.model.IamRoleNotFoundException;
import software.amazon.awssdk.services.rds.model.InstanceQuotaExceededException;
import software.amazon.awssdk.services.rds.model.InsufficientAvailableIPsInSubnetException;
import software.amazon.awssdk.services.rds.model.InsufficientDbClusterCapacityException;
import software.amazon.awssdk.services.rds.model.InsufficientDbInstanceCapacityException;
import software.amazon.awssdk.services.rds.model.InsufficientStorageClusterCapacityException;
import software.amazon.awssdk.services.rds.model.IntegrationAlreadyExistsException;
import software.amazon.awssdk.services.rds.model.IntegrationConflictOperationException;
import software.amazon.awssdk.services.rds.model.IntegrationNotFoundException;
import software.amazon.awssdk.services.rds.model.IntegrationQuotaExceededException;
import software.amazon.awssdk.services.rds.model.InvalidBlueGreenDeploymentStateException;
import software.amazon.awssdk.services.rds.model.InvalidCustomDbEngineVersionStateException;
import software.amazon.awssdk.services.rds.model.InvalidDbClusterAutomatedBackupStateException;
import software.amazon.awssdk.services.rds.model.InvalidDbClusterCapacityException;
import software.amazon.awssdk.services.rds.model.InvalidDbClusterEndpointStateException;
import software.amazon.awssdk.services.rds.model.InvalidDbClusterSnapshotStateException;
import software.amazon.awssdk.services.rds.model.InvalidDbClusterStateException;
import software.amazon.awssdk.services.rds.model.InvalidDbInstanceAutomatedBackupStateException;
import software.amazon.awssdk.services.rds.model.InvalidDbInstanceStateException;
import software.amazon.awssdk.services.rds.model.InvalidDbParameterGroupStateException;
import software.amazon.awssdk.services.rds.model.InvalidDbProxyEndpointStateException;
import software.amazon.awssdk.services.rds.model.InvalidDbProxyStateException;
import software.amazon.awssdk.services.rds.model.InvalidDbSecurityGroupStateException;
import software.amazon.awssdk.services.rds.model.InvalidDbShardGroupStateException;
import software.amazon.awssdk.services.rds.model.InvalidDbSnapshotStateException;
import software.amazon.awssdk.services.rds.model.InvalidDbSubnetGroupException;
import software.amazon.awssdk.services.rds.model.InvalidDbSubnetGroupStateException;
import software.amazon.awssdk.services.rds.model.InvalidDbSubnetStateException;
import software.amazon.awssdk.services.rds.model.InvalidEventSubscriptionStateException;
import software.amazon.awssdk.services.rds.model.InvalidExportOnlyException;
import software.amazon.awssdk.services.rds.model.InvalidExportSourceStateException;
import software.amazon.awssdk.services.rds.model.InvalidExportTaskStateException;
import software.amazon.awssdk.services.rds.model.InvalidGlobalClusterStateException;
import software.amazon.awssdk.services.rds.model.InvalidIntegrationStateException;
import software.amazon.awssdk.services.rds.model.InvalidOptionGroupStateException;
import software.amazon.awssdk.services.rds.model.InvalidResourceStateException;
import software.amazon.awssdk.services.rds.model.InvalidRestoreException;
import software.amazon.awssdk.services.rds.model.InvalidS3BucketException;
import software.amazon.awssdk.services.rds.model.InvalidSubnetException;
import software.amazon.awssdk.services.rds.model.InvalidVpcNetworkStateException;
import software.amazon.awssdk.services.rds.model.KmsKeyNotAccessibleException;
import software.amazon.awssdk.services.rds.model.ListTagsForResourceRequest;
import software.amazon.awssdk.services.rds.model.ListTagsForResourceResponse;
import software.amazon.awssdk.services.rds.model.MaxDbShardGroupLimitReachedException;
import software.amazon.awssdk.services.rds.model.ModifyActivityStreamRequest;
import software.amazon.awssdk.services.rds.model.ModifyActivityStreamResponse;
import software.amazon.awssdk.services.rds.model.ModifyCertificatesRequest;
import software.amazon.awssdk.services.rds.model.ModifyCertificatesResponse;
import software.amazon.awssdk.services.rds.model.ModifyCurrentDbClusterCapacityRequest;
import software.amazon.awssdk.services.rds.model.ModifyCurrentDbClusterCapacityResponse;
import software.amazon.awssdk.services.rds.model.ModifyCustomDbEngineVersionRequest;
import software.amazon.awssdk.services.rds.model.ModifyCustomDbEngineVersionResponse;
import software.amazon.awssdk.services.rds.model.ModifyDbClusterEndpointRequest;
import software.amazon.awssdk.services.rds.model.ModifyDbClusterEndpointResponse;
import software.amazon.awssdk.services.rds.model.ModifyDbClusterParameterGroupRequest;
import software.amazon.awssdk.services.rds.model.ModifyDbClusterParameterGroupResponse;
import software.amazon.awssdk.services.rds.model.ModifyDbClusterRequest;
import software.amazon.awssdk.services.rds.model.ModifyDbClusterResponse;
import software.amazon.awssdk.services.rds.model.ModifyDbClusterSnapshotAttributeRequest;
import software.amazon.awssdk.services.rds.model.ModifyDbClusterSnapshotAttributeResponse;
import software.amazon.awssdk.services.rds.model.ModifyDbInstanceRequest;
import software.amazon.awssdk.services.rds.model.ModifyDbInstanceResponse;
import software.amazon.awssdk.services.rds.model.ModifyDbParameterGroupRequest;
import software.amazon.awssdk.services.rds.model.ModifyDbParameterGroupResponse;
import software.amazon.awssdk.services.rds.model.ModifyDbProxyEndpointRequest;
import software.amazon.awssdk.services.rds.model.ModifyDbProxyEndpointResponse;
import software.amazon.awssdk.services.rds.model.ModifyDbProxyRequest;
import software.amazon.awssdk.services.rds.model.ModifyDbProxyResponse;
import software.amazon.awssdk.services.rds.model.ModifyDbProxyTargetGroupRequest;
import software.amazon.awssdk.services.rds.model.ModifyDbProxyTargetGroupResponse;
import software.amazon.awssdk.services.rds.model.ModifyDbRecommendationRequest;
import software.amazon.awssdk.services.rds.model.ModifyDbRecommendationResponse;
import software.amazon.awssdk.services.rds.model.ModifyDbShardGroupRequest;
import software.amazon.awssdk.services.rds.model.ModifyDbShardGroupResponse;
import software.amazon.awssdk.services.rds.model.ModifyDbSnapshotAttributeRequest;
import software.amazon.awssdk.services.rds.model.ModifyDbSnapshotAttributeResponse;
import software.amazon.awssdk.services.rds.model.ModifyDbSnapshotRequest;
import software.amazon.awssdk.services.rds.model.ModifyDbSnapshotResponse;
import software.amazon.awssdk.services.rds.model.ModifyDbSubnetGroupRequest;
import software.amazon.awssdk.services.rds.model.ModifyDbSubnetGroupResponse;
import software.amazon.awssdk.services.rds.model.ModifyEventSubscriptionRequest;
import software.amazon.awssdk.services.rds.model.ModifyEventSubscriptionResponse;
import software.amazon.awssdk.services.rds.model.ModifyGlobalClusterRequest;
import software.amazon.awssdk.services.rds.model.ModifyGlobalClusterResponse;
import software.amazon.awssdk.services.rds.model.ModifyIntegrationRequest;
import software.amazon.awssdk.services.rds.model.ModifyIntegrationResponse;
import software.amazon.awssdk.services.rds.model.ModifyOptionGroupRequest;
import software.amazon.awssdk.services.rds.model.ModifyOptionGroupResponse;
import software.amazon.awssdk.services.rds.model.ModifyTenantDatabaseRequest;
import software.amazon.awssdk.services.rds.model.ModifyTenantDatabaseResponse;
import software.amazon.awssdk.services.rds.model.NetworkTypeNotSupportedException;
import software.amazon.awssdk.services.rds.model.OptionGroupAlreadyExistsException;
import software.amazon.awssdk.services.rds.model.OptionGroupNotFoundException;
import software.amazon.awssdk.services.rds.model.OptionGroupQuotaExceededException;
import software.amazon.awssdk.services.rds.model.PointInTimeRestoreNotEnabledException;
import software.amazon.awssdk.services.rds.model.PromoteReadReplicaDbClusterRequest;
import software.amazon.awssdk.services.rds.model.PromoteReadReplicaDbClusterResponse;
import software.amazon.awssdk.services.rds.model.PromoteReadReplicaRequest;
import software.amazon.awssdk.services.rds.model.PromoteReadReplicaResponse;
import software.amazon.awssdk.services.rds.model.ProvisionedIopsNotAvailableInAzException;
import software.amazon.awssdk.services.rds.model.PurchaseReservedDbInstancesOfferingRequest;
import software.amazon.awssdk.services.rds.model.PurchaseReservedDbInstancesOfferingResponse;
import software.amazon.awssdk.services.rds.model.RdsException;
import software.amazon.awssdk.services.rds.model.RebootDbClusterRequest;
import software.amazon.awssdk.services.rds.model.RebootDbClusterResponse;
import software.amazon.awssdk.services.rds.model.RebootDbInstanceRequest;
import software.amazon.awssdk.services.rds.model.RebootDbInstanceResponse;
import software.amazon.awssdk.services.rds.model.RebootDbShardGroupRequest;
import software.amazon.awssdk.services.rds.model.RebootDbShardGroupResponse;
import software.amazon.awssdk.services.rds.model.RegisterDbProxyTargetsRequest;
import software.amazon.awssdk.services.rds.model.RegisterDbProxyTargetsResponse;
import software.amazon.awssdk.services.rds.model.RemoveFromGlobalClusterRequest;
import software.amazon.awssdk.services.rds.model.RemoveFromGlobalClusterResponse;
import software.amazon.awssdk.services.rds.model.RemoveRoleFromDbClusterRequest;
import software.amazon.awssdk.services.rds.model.RemoveRoleFromDbClusterResponse;
import software.amazon.awssdk.services.rds.model.RemoveRoleFromDbInstanceRequest;
import software.amazon.awssdk.services.rds.model.RemoveRoleFromDbInstanceResponse;
import software.amazon.awssdk.services.rds.model.RemoveSourceIdentifierFromSubscriptionRequest;
import software.amazon.awssdk.services.rds.model.RemoveSourceIdentifierFromSubscriptionResponse;
import software.amazon.awssdk.services.rds.model.RemoveTagsFromResourceRequest;
import software.amazon.awssdk.services.rds.model.RemoveTagsFromResourceResponse;
import software.amazon.awssdk.services.rds.model.ReservedDbInstanceAlreadyExistsException;
import software.amazon.awssdk.services.rds.model.ReservedDbInstanceNotFoundException;
import software.amazon.awssdk.services.rds.model.ReservedDbInstanceQuotaExceededException;
import software.amazon.awssdk.services.rds.model.ReservedDbInstancesOfferingNotFoundException;
import software.amazon.awssdk.services.rds.model.ResetDbClusterParameterGroupRequest;
import software.amazon.awssdk.services.rds.model.ResetDbClusterParameterGroupResponse;
import software.amazon.awssdk.services.rds.model.ResetDbParameterGroupRequest;
import software.amazon.awssdk.services.rds.model.ResetDbParameterGroupResponse;
import software.amazon.awssdk.services.rds.model.ResourceNotFoundException;
import software.amazon.awssdk.services.rds.model.RestoreDbClusterFromS3Request;
import software.amazon.awssdk.services.rds.model.RestoreDbClusterFromS3Response;
import software.amazon.awssdk.services.rds.model.RestoreDbClusterFromSnapshotRequest;
import software.amazon.awssdk.services.rds.model.RestoreDbClusterFromSnapshotResponse;
import software.amazon.awssdk.services.rds.model.RestoreDbClusterToPointInTimeRequest;
import software.amazon.awssdk.services.rds.model.RestoreDbClusterToPointInTimeResponse;
import software.amazon.awssdk.services.rds.model.RestoreDbInstanceFromDbSnapshotRequest;
import software.amazon.awssdk.services.rds.model.RestoreDbInstanceFromDbSnapshotResponse;
import software.amazon.awssdk.services.rds.model.RestoreDbInstanceFromS3Request;
import software.amazon.awssdk.services.rds.model.RestoreDbInstanceFromS3Response;
import software.amazon.awssdk.services.rds.model.RestoreDbInstanceToPointInTimeRequest;
import software.amazon.awssdk.services.rds.model.RestoreDbInstanceToPointInTimeResponse;
import software.amazon.awssdk.services.rds.model.RevokeDbSecurityGroupIngressRequest;
import software.amazon.awssdk.services.rds.model.RevokeDbSecurityGroupIngressResponse;
import software.amazon.awssdk.services.rds.model.SharedSnapshotQuotaExceededException;
import software.amazon.awssdk.services.rds.model.SnapshotQuotaExceededException;
import software.amazon.awssdk.services.rds.model.SnsInvalidTopicException;
import software.amazon.awssdk.services.rds.model.SnsNoAuthorizationException;
import software.amazon.awssdk.services.rds.model.SnsTopicArnNotFoundException;
import software.amazon.awssdk.services.rds.model.SourceClusterNotSupportedException;
import software.amazon.awssdk.services.rds.model.SourceDatabaseNotSupportedException;
import software.amazon.awssdk.services.rds.model.SourceNotFoundException;
import software.amazon.awssdk.services.rds.model.StartActivityStreamRequest;
import software.amazon.awssdk.services.rds.model.StartActivityStreamResponse;
import software.amazon.awssdk.services.rds.model.StartDbClusterRequest;
import software.amazon.awssdk.services.rds.model.StartDbClusterResponse;
import software.amazon.awssdk.services.rds.model.StartDbInstanceAutomatedBackupsReplicationRequest;
import software.amazon.awssdk.services.rds.model.StartDbInstanceAutomatedBackupsReplicationResponse;
import software.amazon.awssdk.services.rds.model.StartDbInstanceRequest;
import software.amazon.awssdk.services.rds.model.StartDbInstanceResponse;
import software.amazon.awssdk.services.rds.model.StartExportTaskRequest;
import software.amazon.awssdk.services.rds.model.StartExportTaskResponse;
import software.amazon.awssdk.services.rds.model.StopActivityStreamRequest;
import software.amazon.awssdk.services.rds.model.StopActivityStreamResponse;
import software.amazon.awssdk.services.rds.model.StopDbClusterRequest;
import software.amazon.awssdk.services.rds.model.StopDbClusterResponse;
import software.amazon.awssdk.services.rds.model.StopDbInstanceAutomatedBackupsReplicationRequest;
import software.amazon.awssdk.services.rds.model.StopDbInstanceAutomatedBackupsReplicationResponse;
import software.amazon.awssdk.services.rds.model.StopDbInstanceRequest;
import software.amazon.awssdk.services.rds.model.StopDbInstanceResponse;
import software.amazon.awssdk.services.rds.model.StorageQuotaExceededException;
import software.amazon.awssdk.services.rds.model.StorageTypeNotAvailableException;
import software.amazon.awssdk.services.rds.model.StorageTypeNotSupportedException;
import software.amazon.awssdk.services.rds.model.SubnetAlreadyInUseException;
import software.amazon.awssdk.services.rds.model.SubscriptionAlreadyExistException;
import software.amazon.awssdk.services.rds.model.SubscriptionCategoryNotFoundException;
import software.amazon.awssdk.services.rds.model.SubscriptionNotFoundException;
import software.amazon.awssdk.services.rds.model.SwitchoverBlueGreenDeploymentRequest;
import software.amazon.awssdk.services.rds.model.SwitchoverBlueGreenDeploymentResponse;
import software.amazon.awssdk.services.rds.model.SwitchoverGlobalClusterRequest;
import software.amazon.awssdk.services.rds.model.SwitchoverGlobalClusterResponse;
import software.amazon.awssdk.services.rds.model.SwitchoverReadReplicaRequest;
import software.amazon.awssdk.services.rds.model.SwitchoverReadReplicaResponse;
import software.amazon.awssdk.services.rds.model.TenantDatabaseAlreadyExistsException;
import software.amazon.awssdk.services.rds.model.TenantDatabaseNotFoundException;
import software.amazon.awssdk.services.rds.model.TenantDatabaseQuotaExceededException;
import software.amazon.awssdk.services.rds.model.UnsupportedDbEngineVersionException;
import software.amazon.awssdk.services.rds.transform.AddRoleToDbClusterRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.AddRoleToDbInstanceRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.AddSourceIdentifierToSubscriptionRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.AddTagsToResourceRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.ApplyPendingMaintenanceActionRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.AuthorizeDbSecurityGroupIngressRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.BacktrackDbClusterRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.CancelExportTaskRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.CopyDbClusterParameterGroupRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.CopyDbClusterSnapshotRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.CopyDbParameterGroupRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.CopyDbSnapshotRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.CopyOptionGroupRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.CreateBlueGreenDeploymentRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.CreateCustomDbEngineVersionRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.CreateDbClusterEndpointRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.CreateDbClusterParameterGroupRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.CreateDbClusterRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.CreateDbClusterSnapshotRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.CreateDbInstanceReadReplicaRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.CreateDbInstanceRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.CreateDbParameterGroupRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.CreateDbProxyEndpointRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.CreateDbProxyRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.CreateDbSecurityGroupRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.CreateDbShardGroupRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.CreateDbSnapshotRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.CreateDbSubnetGroupRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.CreateEventSubscriptionRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.CreateGlobalClusterRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.CreateIntegrationRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.CreateOptionGroupRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.CreateTenantDatabaseRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DeleteBlueGreenDeploymentRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DeleteCustomDbEngineVersionRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DeleteDbClusterAutomatedBackupRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DeleteDbClusterEndpointRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DeleteDbClusterParameterGroupRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DeleteDbClusterRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DeleteDbClusterSnapshotRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DeleteDbInstanceAutomatedBackupRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DeleteDbInstanceRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DeleteDbParameterGroupRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DeleteDbProxyEndpointRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DeleteDbProxyRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DeleteDbSecurityGroupRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DeleteDbShardGroupRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DeleteDbSnapshotRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DeleteDbSubnetGroupRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DeleteEventSubscriptionRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DeleteGlobalClusterRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DeleteIntegrationRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DeleteOptionGroupRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DeleteTenantDatabaseRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DeregisterDbProxyTargetsRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeAccountAttributesRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeBlueGreenDeploymentsRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeCertificatesRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeDbClusterAutomatedBackupsRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeDbClusterBacktracksRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeDbClusterEndpointsRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeDbClusterParameterGroupsRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeDbClusterParametersRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeDbClusterSnapshotAttributesRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeDbClusterSnapshotsRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeDbClustersRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeDbEngineVersionsRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeDbInstanceAutomatedBackupsRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeDbInstancesRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeDbLogFilesRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeDbParameterGroupsRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeDbParametersRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeDbProxiesRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeDbProxyEndpointsRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeDbProxyTargetGroupsRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeDbProxyTargetsRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeDbRecommendationsRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeDbSecurityGroupsRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeDbShardGroupsRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeDbSnapshotAttributesRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeDbSnapshotTenantDatabasesRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeDbSnapshotsRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeDbSubnetGroupsRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeEngineDefaultClusterParametersRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeEngineDefaultParametersRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeEventCategoriesRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeEventSubscriptionsRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeEventsRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeExportTasksRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeGlobalClustersRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeIntegrationsRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeOptionGroupOptionsRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeOptionGroupsRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeOrderableDbInstanceOptionsRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribePendingMaintenanceActionsRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeReservedDbInstancesOfferingsRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeReservedDbInstancesRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeSourceRegionsRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeTenantDatabasesRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DescribeValidDbInstanceModificationsRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DisableHttpEndpointRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.DownloadDbLogFilePortionRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.EnableHttpEndpointRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.FailoverDbClusterRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.FailoverGlobalClusterRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.ListTagsForResourceRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.ModifyActivityStreamRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.ModifyCertificatesRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.ModifyCurrentDbClusterCapacityRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.ModifyCustomDbEngineVersionRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.ModifyDbClusterEndpointRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.ModifyDbClusterParameterGroupRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.ModifyDbClusterRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.ModifyDbClusterSnapshotAttributeRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.ModifyDbInstanceRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.ModifyDbParameterGroupRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.ModifyDbProxyEndpointRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.ModifyDbProxyRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.ModifyDbProxyTargetGroupRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.ModifyDbRecommendationRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.ModifyDbShardGroupRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.ModifyDbSnapshotAttributeRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.ModifyDbSnapshotRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.ModifyDbSubnetGroupRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.ModifyEventSubscriptionRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.ModifyGlobalClusterRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.ModifyIntegrationRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.ModifyOptionGroupRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.ModifyTenantDatabaseRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.PromoteReadReplicaDbClusterRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.PromoteReadReplicaRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.PurchaseReservedDbInstancesOfferingRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.RebootDbClusterRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.RebootDbInstanceRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.RebootDbShardGroupRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.RegisterDbProxyTargetsRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.RemoveFromGlobalClusterRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.RemoveRoleFromDbClusterRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.RemoveRoleFromDbInstanceRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.RemoveSourceIdentifierFromSubscriptionRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.RemoveTagsFromResourceRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.ResetDbClusterParameterGroupRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.ResetDbParameterGroupRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.RestoreDbClusterFromS3RequestMarshaller;
import software.amazon.awssdk.services.rds.transform.RestoreDbClusterFromSnapshotRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.RestoreDbClusterToPointInTimeRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.RestoreDbInstanceFromDbSnapshotRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.RestoreDbInstanceFromS3RequestMarshaller;
import software.amazon.awssdk.services.rds.transform.RestoreDbInstanceToPointInTimeRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.RevokeDbSecurityGroupIngressRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.StartActivityStreamRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.StartDbClusterRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.StartDbInstanceAutomatedBackupsReplicationRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.StartDbInstanceRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.StartExportTaskRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.StopActivityStreamRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.StopDbClusterRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.StopDbInstanceAutomatedBackupsReplicationRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.StopDbInstanceRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.SwitchoverBlueGreenDeploymentRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.SwitchoverGlobalClusterRequestMarshaller;
import software.amazon.awssdk.services.rds.transform.SwitchoverReadReplicaRequestMarshaller;
import software.amazon.awssdk.services.rds.waiters.RdsAsyncWaiter;
import software.amazon.awssdk.utils.CompletableFutureUtils;
/**
* Internal implementation of {@link RdsAsyncClient}.
*
* @see RdsAsyncClient#builder()
*/
@Generated("software.amazon.awssdk:codegen")
@SdkInternalApi
final class DefaultRdsAsyncClient implements RdsAsyncClient {
private static final Logger log = LoggerFactory.getLogger(DefaultRdsAsyncClient.class);
private static final AwsProtocolMetadata protocolMetadata = AwsProtocolMetadata.builder()
.serviceProtocol(AwsServiceProtocol.QUERY).build();
private final AsyncClientHandler clientHandler;
private final AwsQueryProtocolFactory protocolFactory;
private final SdkClientConfiguration clientConfiguration;
private final ScheduledExecutorService executorService;
protected DefaultRdsAsyncClient(SdkClientConfiguration clientConfiguration) {
this.clientHandler = new AwsAsyncClientHandler(clientConfiguration);
this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build();
this.protocolFactory = init();
this.executorService = clientConfiguration.option(SdkClientOption.SCHEDULED_EXECUTOR_SERVICE);
}
@Override
public RdsUtilities utilities() {
return DefaultRdsUtilities.create(clientConfiguration);
}
/**
*
* Associates an Identity and Access Management (IAM) role with a DB cluster.
*
*
* @param addRoleToDbClusterRequest
* @return A Java Future containing the result of the AddRoleToDBCluster operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions. The exception returned is wrapped with CompletionException, so you need to invoke
* {@link Throwable#getCause} to retrieve the underlying exception.
*
* - DbClusterNotFoundException
DBClusterIdentifier
doesn't refer to an existing DB cluster.
* - DbClusterRoleAlreadyExistsException The specified IAM role Amazon Resource Name (ARN) is already
* associated with the specified DB cluster.
* - InvalidDbClusterStateException The requested operation can't be performed while the cluster is in
* this state.
* - DbClusterRoleQuotaExceededException You have exceeded the maximum number of IAM roles that can be
* associated with the specified DB cluster.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - RdsException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this type.
*
* @sample RdsAsyncClient.AddRoleToDBCluster
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture addRoleToDBCluster(AddRoleToDbClusterRequest addRoleToDbClusterRequest) {
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(addRoleToDbClusterRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, addRoleToDbClusterRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "RDS");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "AddRoleToDBCluster");
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(AddRoleToDbClusterResponse::builder);
HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler();
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("AddRoleToDBCluster").withProtocolMetadata(protocolMetadata)
.withMarshaller(new AddRoleToDbClusterRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector)
.withInput(addRoleToDbClusterRequest));
CompletableFuture whenCompleteFuture = null;
whenCompleteFuture = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture);
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Associates an Amazon Web Services Identity and Access Management (IAM) role with a DB instance.
*
*
*
* To add a role to a DB instance, the status of the DB instance must be available
.
*
*
*
* This command doesn't apply to RDS Custom.
*
*
* @param addRoleToDbInstanceRequest
* @return A Java Future containing the result of the AddRoleToDBInstance operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions. The exception returned is wrapped with CompletionException, so you need to invoke
* {@link Throwable#getCause} to retrieve the underlying exception.
*
* - DbInstanceNotFoundException
DBInstanceIdentifier
doesn't refer to an existing DB
* instance.
* - DbInstanceRoleAlreadyExistsException The specified
RoleArn
or FeatureName
* value is already associated with the DB instance.
* - InvalidDbInstanceStateException The DB instance isn't in a valid state.
* - DbInstanceRoleQuotaExceededException You can't associate any more Amazon Web Services Identity and
* Access Management (IAM) roles with the DB instance because the quota has been reached.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - RdsException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this type.
*
* @sample RdsAsyncClient.AddRoleToDBInstance
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture addRoleToDBInstance(
AddRoleToDbInstanceRequest addRoleToDbInstanceRequest) {
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(addRoleToDbInstanceRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, addRoleToDbInstanceRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "RDS");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "AddRoleToDBInstance");
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(AddRoleToDbInstanceResponse::builder);
HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler();
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("AddRoleToDBInstance").withProtocolMetadata(protocolMetadata)
.withMarshaller(new AddRoleToDbInstanceRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector)
.withInput(addRoleToDbInstanceRequest));
CompletableFuture whenCompleteFuture = null;
whenCompleteFuture = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture);
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Adds a source identifier to an existing RDS event notification subscription.
*
*
* @param addSourceIdentifierToSubscriptionRequest
* @return A Java Future containing the result of the AddSourceIdentifierToSubscription operation returned by the
* service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions. The exception returned is wrapped with CompletionException, so you need to invoke
* {@link Throwable#getCause} to retrieve the underlying exception.
*
* - SubscriptionNotFoundException The subscription name does not exist.
* - SourceNotFoundException The requested source could not be found.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - RdsException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this type.
*
* @sample RdsAsyncClient.AddSourceIdentifierToSubscription
* @see AWS API Documentation
*/
@Override
public CompletableFuture addSourceIdentifierToSubscription(
AddSourceIdentifierToSubscriptionRequest addSourceIdentifierToSubscriptionRequest) {
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(addSourceIdentifierToSubscriptionRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration,
addSourceIdentifierToSubscriptionRequest.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "RDS");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "AddSourceIdentifierToSubscription");
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(AddSourceIdentifierToSubscriptionResponse::builder);
HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler();
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("AddSourceIdentifierToSubscription").withProtocolMetadata(protocolMetadata)
.withMarshaller(new AddSourceIdentifierToSubscriptionRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector)
.withInput(addSourceIdentifierToSubscriptionRequest));
CompletableFuture whenCompleteFuture = null;
whenCompleteFuture = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture);
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* 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 your relational database resources, see Tagging Amazon RDS Resources
* or Tagging Amazon Aurora
* and Amazon RDS Resources.
*
*
* @param addTagsToResourceRequest
* @return A Java Future containing the result of the AddTagsToResource operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions. The exception returned is wrapped with CompletionException, so you need to invoke
* {@link Throwable#getCause} to retrieve the underlying exception.
*
* - DbInstanceNotFoundException
DBInstanceIdentifier
doesn't refer to an existing DB
* instance.
* - DbClusterNotFoundException
DBClusterIdentifier
doesn't refer to an existing DB cluster.
* - DbSnapshotNotFoundException
DBSnapshotIdentifier
doesn't refer to an existing DB
* snapshot.
* - DbProxyNotFoundException The specified proxy name doesn't correspond to a proxy owned by your Amazon
* Web Services account in the specified Amazon Web Services Region.
* - DbProxyTargetGroupNotFoundException The specified target group isn't available for a proxy owned by
* your Amazon Web Services account in the specified Amazon Web Services Region.
* - BlueGreenDeploymentNotFoundException
BlueGreenDeploymentIdentifier
doesn't refer to an
* existing blue/green deployment.
* - IntegrationNotFoundException The specified integration could not be found.
* - TenantDatabaseNotFoundException The specified tenant database wasn't found in the DB instance.
* - DbSnapshotTenantDatabaseNotFoundException The specified snapshot tenant database wasn't found.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - RdsException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this type.
*
* @sample RdsAsyncClient.AddTagsToResource
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture addTagsToResource(AddTagsToResourceRequest addTagsToResourceRequest) {
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(addTagsToResourceRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, addTagsToResourceRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "RDS");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "AddTagsToResource");
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(AddTagsToResourceResponse::builder);
HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler();
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("AddTagsToResource").withProtocolMetadata(protocolMetadata)
.withMarshaller(new AddTagsToResourceRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector)
.withInput(addTagsToResourceRequest));
CompletableFuture whenCompleteFuture = null;
whenCompleteFuture = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture);
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Applies a pending maintenance action to a resource (for example, to a DB instance).
*
*
* @param applyPendingMaintenanceActionRequest
* @return A Java Future containing the result of the ApplyPendingMaintenanceAction operation returned by the
* service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions. The exception returned is wrapped with CompletionException, so you need to invoke
* {@link Throwable#getCause} to retrieve the underlying exception.
*
* - ResourceNotFoundException The specified resource ID was not found.
* - InvalidDbClusterStateException The requested operation can't be performed while the cluster is in
* this state.
* - InvalidDbInstanceStateException The DB instance isn't in a valid state.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - RdsException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this type.
*
* @sample RdsAsyncClient.ApplyPendingMaintenanceAction
* @see AWS API Documentation
*/
@Override
public CompletableFuture applyPendingMaintenanceAction(
ApplyPendingMaintenanceActionRequest applyPendingMaintenanceActionRequest) {
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(applyPendingMaintenanceActionRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration,
applyPendingMaintenanceActionRequest.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "RDS");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ApplyPendingMaintenanceAction");
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(ApplyPendingMaintenanceActionResponse::builder);
HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler();
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("ApplyPendingMaintenanceAction").withProtocolMetadata(protocolMetadata)
.withMarshaller(new ApplyPendingMaintenanceActionRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector)
.withInput(applyPendingMaintenanceActionRequest));
CompletableFuture whenCompleteFuture = null;
whenCompleteFuture = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture);
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* 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 can't authorize ingress from an EC2 security group in one Amazon Web Services Region to an Amazon RDS DB
* instance in another. You can't 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.
*
*
*
* EC2-Classic was retired on August 15, 2022. If you haven't migrated from EC2-Classic to a VPC, we recommend that
* you migrate as soon as possible. For more information, see Migrate from EC2-Classic to a VPC
* in the Amazon EC2 User Guide, the blog EC2-Classic Networking is
* Retiring – Here’s How to Prepare, and Moving a DB instance not
* in a VPC into a VPC in the Amazon RDS User Guide.
*
*
*
* @param authorizeDbSecurityGroupIngressRequest
* @return A Java Future containing the result of the AuthorizeDBSecurityGroupIngress operation returned by the
* service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions. The exception returned is wrapped with CompletionException, so you need to invoke
* {@link Throwable#getCause} to retrieve the underlying exception.
*
* - DbSecurityGroupNotFoundException
DBSecurityGroupName
doesn't refer to an existing DB
* security group.
* - InvalidDbSecurityGroupStateException The state of the DB security group doesn't allow deletion.
* - AuthorizationAlreadyExistsException The specified CIDR IP range or Amazon EC2 security group is
* already authorized for the specified DB security group.
* - AuthorizationQuotaExceededException The DB security group authorization quota has been reached.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - RdsException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this type.
*
* @sample RdsAsyncClient.AuthorizeDBSecurityGroupIngress
* @see AWS API Documentation
*/
@Override
public CompletableFuture authorizeDBSecurityGroupIngress(
AuthorizeDbSecurityGroupIngressRequest authorizeDbSecurityGroupIngressRequest) {
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(authorizeDbSecurityGroupIngressRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration,
authorizeDbSecurityGroupIngressRequest.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "RDS");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "AuthorizeDBSecurityGroupIngress");
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(AuthorizeDbSecurityGroupIngressResponse::builder);
HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler();
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("AuthorizeDBSecurityGroupIngress").withProtocolMetadata(protocolMetadata)
.withMarshaller(new AuthorizeDbSecurityGroupIngressRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector)
.withInput(authorizeDbSecurityGroupIngressRequest));
CompletableFuture whenCompleteFuture = null;
whenCompleteFuture = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture);
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Backtracks a DB cluster to a specific time, without creating a new DB cluster.
*
*
* For more information on backtracking, see
* Backtracking an Aurora DB Cluster in the Amazon Aurora User Guide.
*
*
*
* This action applies only to Aurora MySQL DB clusters.
*
*
*
* @param backtrackDbClusterRequest
* @return A Java Future containing the result of the BacktrackDBCluster operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions. The exception returned is wrapped with CompletionException, so you need to invoke
* {@link Throwable#getCause} to retrieve the underlying exception.
*
* - DbClusterNotFoundException
DBClusterIdentifier
doesn't refer to an existing DB cluster.
* - InvalidDbClusterStateException The requested operation can't be performed while the cluster is in
* this state.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - RdsException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this type.
*
* @sample RdsAsyncClient.BacktrackDBCluster
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture backtrackDBCluster(BacktrackDbClusterRequest backtrackDbClusterRequest) {
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(backtrackDbClusterRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, backtrackDbClusterRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "RDS");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "BacktrackDBCluster");
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(BacktrackDbClusterResponse::builder);
HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler();
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("BacktrackDBCluster").withProtocolMetadata(protocolMetadata)
.withMarshaller(new BacktrackDbClusterRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector)
.withInput(backtrackDbClusterRequest));
CompletableFuture whenCompleteFuture = null;
whenCompleteFuture = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture);
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Cancels an export task in progress that is exporting a snapshot or cluster to Amazon S3. Any data that has
* already been written to the S3 bucket isn't removed.
*
*
* @param cancelExportTaskRequest
* @return A Java Future containing the result of the CancelExportTask operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions. The exception returned is wrapped with CompletionException, so you need to invoke
* {@link Throwable#getCause} to retrieve the underlying exception.
*
* - ExportTaskNotFoundException The export task doesn't exist.
* - InvalidExportTaskStateException You can't cancel an export task that has completed.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - RdsException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this type.
*
* @sample RdsAsyncClient.CancelExportTask
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture cancelExportTask(CancelExportTaskRequest cancelExportTaskRequest) {
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(cancelExportTaskRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, cancelExportTaskRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "RDS");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CancelExportTask");
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(CancelExportTaskResponse::builder);
HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler();
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CancelExportTask").withProtocolMetadata(protocolMetadata)
.withMarshaller(new CancelExportTaskRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector)
.withInput(cancelExportTaskRequest));
CompletableFuture whenCompleteFuture = null;
whenCompleteFuture = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture);
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Copies the specified DB cluster parameter group.
*
*
*
* You can't copy a default DB cluster parameter group. Instead, create a new custom DB cluster parameter group,
* which copies the default parameters and values for the specified DB cluster parameter group family.
*
*
*
* @param copyDbClusterParameterGroupRequest
* @return A Java Future containing the result of the CopyDBClusterParameterGroup operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions. The exception returned is wrapped with CompletionException, so you need to invoke
* {@link Throwable#getCause} to retrieve the underlying exception.
*
* - DbParameterGroupNotFoundException
DBParameterGroupName
doesn't refer to an existing DB
* parameter group.
* - DbParameterGroupQuotaExceededException The request would result in the user exceeding the allowed
* number of DB parameter groups.
* - DbParameterGroupAlreadyExistsException A DB parameter group with the same name exists.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - RdsException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this type.
*
* @sample RdsAsyncClient.CopyDBClusterParameterGroup
* @see AWS API Documentation
*/
@Override
public CompletableFuture copyDBClusterParameterGroup(
CopyDbClusterParameterGroupRequest copyDbClusterParameterGroupRequest) {
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(copyDbClusterParameterGroupRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, copyDbClusterParameterGroupRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "RDS");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CopyDBClusterParameterGroup");
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(CopyDbClusterParameterGroupResponse::builder);
HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler();
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CopyDBClusterParameterGroup").withProtocolMetadata(protocolMetadata)
.withMarshaller(new CopyDbClusterParameterGroupRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector)
.withInput(copyDbClusterParameterGroupRequest));
CompletableFuture whenCompleteFuture = null;
whenCompleteFuture = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture);
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Copies a snapshot of a DB cluster.
*
*
* To copy a DB cluster snapshot from a shared manual DB cluster snapshot,
* SourceDBClusterSnapshotIdentifier
must be the Amazon Resource Name (ARN) of the shared DB cluster
* snapshot.
*
*
* You can copy an encrypted DB cluster snapshot from another Amazon Web Services Region. In that case, the Amazon
* Web Services Region where you call the CopyDBClusterSnapshot
operation is the destination Amazon Web
* Services Region for the encrypted DB cluster snapshot to be copied to. To copy an encrypted DB cluster snapshot
* from another Amazon Web Services Region, you must provide the following values:
*
*
* -
*
* KmsKeyId
- The Amazon Web Services Key Management System (Amazon Web Services KMS) key identifier
* for the key to use to encrypt the copy of the DB cluster snapshot in the destination Amazon Web Services Region.
*
*
* -
*
* TargetDBClusterSnapshotIdentifier
- The identifier for the new copy of the DB cluster snapshot in
* the destination Amazon Web Services Region.
*
*
* -
*
* SourceDBClusterSnapshotIdentifier
- The DB cluster snapshot identifier for the encrypted DB cluster
* snapshot to be copied. This identifier must be in the ARN format for the source Amazon Web Services Region and is
* the same value as the SourceDBClusterSnapshotIdentifier
in the presigned URL.
*
*
*
*
* To cancel the copy operation once it is in progress, delete the target DB cluster snapshot identified by
* TargetDBClusterSnapshotIdentifier
while that DB cluster snapshot is in "copying" status.
*
*
* For more information on copying encrypted Amazon Aurora DB cluster snapshots from one Amazon Web Services Region
* to another, see
* Copying a Snapshot in the Amazon Aurora User Guide.
*
*
* For more information on Amazon Aurora DB clusters, see What is Amazon
* Aurora? in the Amazon Aurora User Guide.
*
*
* For more information on Multi-AZ DB clusters, see Multi-AZ DB
* cluster deployments in the Amazon RDS User Guide.
*
*
* @param copyDbClusterSnapshotRequest
* @return A Java Future containing the result of the CopyDBClusterSnapshot operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions. The exception returned is wrapped with CompletionException, so you need to invoke
* {@link Throwable#getCause} to retrieve the underlying exception.
*
* - DbClusterSnapshotAlreadyExistsException The user already has a DB cluster snapshot with the given
* identifier.
* - DbClusterSnapshotNotFoundException
DBClusterSnapshotIdentifier
doesn't refer to an
* existing DB cluster snapshot.
* - InvalidDbClusterStateException The requested operation can't be performed while the cluster is in
* this state.
* - InvalidDbClusterSnapshotStateException The supplied value isn't a valid DB cluster snapshot state.
* - SnapshotQuotaExceededException The request would result in the user exceeding the allowed number of
* DB snapshots.
* - KmsKeyNotAccessibleException An error occurred accessing an Amazon Web Services KMS key.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - RdsException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this type.
*
* @sample RdsAsyncClient.CopyDBClusterSnapshot
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture copyDBClusterSnapshot(
CopyDbClusterSnapshotRequest copyDbClusterSnapshotRequest) {
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(copyDbClusterSnapshotRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, copyDbClusterSnapshotRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "RDS");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CopyDBClusterSnapshot");
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(CopyDbClusterSnapshotResponse::builder);
HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler();
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CopyDBClusterSnapshot").withProtocolMetadata(protocolMetadata)
.withMarshaller(new CopyDbClusterSnapshotRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector)
.withInput(copyDbClusterSnapshotRequest));
CompletableFuture whenCompleteFuture = null;
whenCompleteFuture = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture);
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Copies the specified DB parameter group.
*
*
*
* You can't copy a default DB parameter group. Instead, create a new custom DB parameter group, which copies the
* default parameters and values for the specified DB parameter group family.
*
*
*
* @param copyDbParameterGroupRequest
* @return A Java Future containing the result of the CopyDBParameterGroup operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions. The exception returned is wrapped with CompletionException, so you need to invoke
* {@link Throwable#getCause} to retrieve the underlying exception.
*
* - DbParameterGroupNotFoundException
DBParameterGroupName
doesn't refer to an existing DB
* parameter group.
* - DbParameterGroupAlreadyExistsException A DB parameter group with the same name exists.
* - DbParameterGroupQuotaExceededException The request would result in the user exceeding the allowed
* number of DB parameter groups.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - RdsException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this type.
*
* @sample RdsAsyncClient.CopyDBParameterGroup
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture copyDBParameterGroup(
CopyDbParameterGroupRequest copyDbParameterGroupRequest) {
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(copyDbParameterGroupRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, copyDbParameterGroupRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "RDS");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CopyDBParameterGroup");
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(CopyDbParameterGroupResponse::builder);
HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler();
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CopyDBParameterGroup").withProtocolMetadata(protocolMetadata)
.withMarshaller(new CopyDbParameterGroupRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector)
.withInput(copyDbParameterGroupRequest));
CompletableFuture whenCompleteFuture = null;
whenCompleteFuture = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture);
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Copies the specified DB snapshot. The source DB snapshot must be in the available
state.
*
*
* You can copy a snapshot from one Amazon Web Services Region to another. In that case, the Amazon Web Services
* Region where you call the CopyDBSnapshot
operation is the destination Amazon Web Services Region for
* the DB snapshot copy.
*
*
* This command doesn't apply to RDS Custom.
*
*
* For more information about copying snapshots, see Copying
* a DB Snapshot in the Amazon RDS User Guide.
*
*
* @param copyDbSnapshotRequest
* @return A Java Future containing the result of the CopyDBSnapshot operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions. The exception returned is wrapped with CompletionException, so you need to invoke
* {@link Throwable#getCause} to retrieve the underlying exception.
*
* - DbSnapshotAlreadyExistsException
DBSnapshotIdentifier
is already used by an existing
* snapshot.
* - DbSnapshotNotFoundException
DBSnapshotIdentifier
doesn't refer to an existing DB
* snapshot.
* - InvalidDbSnapshotStateException The state of the DB snapshot doesn't allow deletion.
* - SnapshotQuotaExceededException The request would result in the user exceeding the allowed number of
* DB snapshots.
* - KmsKeyNotAccessibleException An error occurred accessing an Amazon Web Services KMS key.
* - CustomAvailabilityZoneNotFoundException
CustomAvailabilityZoneId
doesn't refer to an
* existing custom Availability Zone identifier.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - RdsException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this type.
*
* @sample RdsAsyncClient.CopyDBSnapshot
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture copyDBSnapshot(CopyDbSnapshotRequest copyDbSnapshotRequest) {
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(copyDbSnapshotRequest, this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, copyDbSnapshotRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "RDS");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CopyDBSnapshot");
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(CopyDbSnapshotResponse::builder);
HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler();
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CopyDBSnapshot").withProtocolMetadata(protocolMetadata)
.withMarshaller(new CopyDbSnapshotRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector)
.withInput(copyDbSnapshotRequest));
CompletableFuture whenCompleteFuture = null;
whenCompleteFuture = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture);
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Copies the specified option group.
*
*
* @param copyOptionGroupRequest
* @return A Java Future containing the result of the CopyOptionGroup operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions. The exception returned is wrapped with CompletionException, so you need to invoke
* {@link Throwable#getCause} to retrieve the underlying exception.
*
* - OptionGroupAlreadyExistsException The option group you are trying to create already exists.
* - OptionGroupNotFoundException The specified option group could not be found.
* - OptionGroupQuotaExceededException The quota of 20 option groups was exceeded for this Amazon Web
* Services account.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - RdsException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this type.
*
* @sample RdsAsyncClient.CopyOptionGroup
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture copyOptionGroup(CopyOptionGroupRequest copyOptionGroupRequest) {
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(copyOptionGroupRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, copyOptionGroupRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "RDS");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CopyOptionGroup");
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(CopyOptionGroupResponse::builder);
HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler();
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CopyOptionGroup").withProtocolMetadata(protocolMetadata)
.withMarshaller(new CopyOptionGroupRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector)
.withInput(copyOptionGroupRequest));
CompletableFuture whenCompleteFuture = null;
whenCompleteFuture = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture);
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Creates a blue/green deployment.
*
*
* A blue/green deployment creates a staging environment that copies the production environment. In a blue/green
* deployment, the blue environment is the current production environment. The green environment is the staging
* environment. The staging environment stays in sync with the current production environment using logical
* replication.
*
*
* You can make changes to the databases in the green environment without affecting production workloads. For
* example, you can upgrade the major or minor DB engine version, change database parameters, or make schema changes
* in the staging environment. You can thoroughly test changes in the green environment. When ready, you can switch
* over the environments to promote the green environment to be the new production environment. The switchover
* typically takes under a minute.
*
*
* For more information, see Using Amazon RDS
* Blue/Green Deployments for database updates in the Amazon RDS User Guide and Using Amazon RDS
* Blue/Green Deployments for database updates in the Amazon Aurora User Guide.
*
*
* @param createBlueGreenDeploymentRequest
* @return A Java Future containing the result of the CreateBlueGreenDeployment operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions. The exception returned is wrapped with CompletionException, so you need to invoke
* {@link Throwable#getCause} to retrieve the underlying exception.
*
* - DbInstanceNotFoundException
DBInstanceIdentifier
doesn't refer to an existing DB
* instance.
* - DbClusterNotFoundException
DBClusterIdentifier
doesn't refer to an existing DB cluster.
* - SourceDatabaseNotSupportedException The source DB instance isn't supported for a blue/green
* deployment.
* - SourceClusterNotSupportedException The source DB cluster isn't supported for a blue/green deployment.
*
* - BlueGreenDeploymentAlreadyExistsException A blue/green deployment with the specified name already
* exists.
* - DbParameterGroupNotFoundException
DBParameterGroupName
doesn't refer to an existing DB
* parameter group.
* - DbClusterParameterGroupNotFoundException
DBClusterParameterGroupName
doesn't refer to an
* existing DB cluster parameter group.
* - InstanceQuotaExceededException The request would result in the user exceeding the allowed number of
* DB instances.
* - DbClusterQuotaExceededException The user attempted to create a new DB cluster and the user has
* already reached the maximum allowed DB cluster quota.
* - InvalidDbInstanceStateException The DB instance isn't in a valid state.
* - InvalidDbClusterStateException The requested operation can't be performed while the cluster is in
* this state.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - RdsException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this type.
*
* @sample RdsAsyncClient.CreateBlueGreenDeployment
* @see AWS
* API Documentation
*/
@Override
public CompletableFuture createBlueGreenDeployment(
CreateBlueGreenDeploymentRequest createBlueGreenDeploymentRequest) {
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createBlueGreenDeploymentRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, createBlueGreenDeploymentRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "RDS");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateBlueGreenDeployment");
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(CreateBlueGreenDeploymentResponse::builder);
HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler();
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CreateBlueGreenDeployment").withProtocolMetadata(protocolMetadata)
.withMarshaller(new CreateBlueGreenDeploymentRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector)
.withInput(createBlueGreenDeploymentRequest));
CompletableFuture whenCompleteFuture = null;
whenCompleteFuture = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture);
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Creates a custom DB engine version (CEV).
*
*
* @param createCustomDbEngineVersionRequest
* @return A Java Future containing the result of the CreateCustomDBEngineVersion operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions. The exception returned is wrapped with CompletionException, so you need to invoke
* {@link Throwable#getCause} to retrieve the underlying exception.
*
* - CustomDbEngineVersionAlreadyExistsException A CEV with the specified name already exists.
* - CustomDbEngineVersionQuotaExceededException You have exceeded your CEV quota.
* - Ec2ImagePropertiesNotSupportedException The AMI configuration prerequisite has not been met.
* - KmsKeyNotAccessibleException An error occurred accessing an Amazon Web Services KMS key.
* - CreateCustomDbEngineVersionException An error occurred while trying to create the CEV.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - RdsException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this type.
*
* @sample RdsAsyncClient.CreateCustomDBEngineVersion
* @see AWS API Documentation
*/
@Override
public CompletableFuture createCustomDBEngineVersion(
CreateCustomDbEngineVersionRequest createCustomDbEngineVersionRequest) {
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createCustomDbEngineVersionRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, createCustomDbEngineVersionRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "RDS");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateCustomDBEngineVersion");
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(CreateCustomDbEngineVersionResponse::builder);
HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler();
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CreateCustomDBEngineVersion").withProtocolMetadata(protocolMetadata)
.withMarshaller(new CreateCustomDbEngineVersionRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector)
.withInput(createCustomDbEngineVersionRequest));
CompletableFuture whenCompleteFuture = null;
whenCompleteFuture = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture);
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Creates a new Amazon Aurora DB cluster or Multi-AZ DB cluster.
*
*
* If you create an Aurora DB cluster, the request creates an empty cluster. You must explicitly create the writer
* instance for your DB cluster using the CreateDBInstance
* operation. If you create a Multi-AZ DB cluster, the request creates a writer and two reader DB instances for you,
* each in a different Availability Zone.
*
*
* You can use the ReplicationSourceIdentifier
parameter to create an Amazon Aurora DB cluster as a
* read replica of another DB cluster or Amazon RDS for MySQL or PostgreSQL DB instance. For more information about
* Amazon Aurora, see What is Amazon
* Aurora? in the Amazon Aurora User Guide.
*
*
* You can also use the ReplicationSourceIdentifier
parameter to create a Multi-AZ DB cluster read
* replica with an RDS for MySQL or PostgreSQL DB instance as the source. For more information about Multi-AZ DB
* clusters, see Multi-AZ DB
* cluster deployments in the Amazon RDS User Guide.
*
*
* @param createDbClusterRequest
* @return A Java Future containing the result of the CreateDBCluster operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions. The exception returned is wrapped with CompletionException, so you need to invoke
* {@link Throwable#getCause} to retrieve the underlying exception.
*
* - DbClusterAlreadyExistsException The user already has a DB cluster with the given identifier.
* - InsufficientDbInstanceCapacityException The specified DB instance class isn't available in the
* specified Availability Zone.
* - InsufficientStorageClusterCapacityException There is insufficient storage available for the current
* action. You might be able to resolve this error by updating your subnet group to use different
* Availability Zones that have more storage available.
* - DbClusterQuotaExceededException The user attempted to create a new DB cluster and the user has
* already reached the maximum allowed DB cluster quota.
* - StorageQuotaExceededException The request would result in the user exceeding the allowed amount of
* storage available across all DB instances.
* - DbSubnetGroupNotFoundException
DBSubnetGroupName
doesn't refer to an existing DB subnet
* group.
* - InvalidVpcNetworkStateException The DB subnet group doesn't cover all Availability Zones after it's
* created because of users' change.
* - InvalidDbClusterStateException The requested operation can't be performed while the cluster is in
* this state.
* - InvalidDbSubnetGroupException The DBSubnetGroup doesn't belong to the same VPC as that of an existing
* cross-region read replica of the same source instance.
* - InvalidDbSubnetGroupStateException The DB subnet group cannot be deleted because it's in use.
* - InvalidSubnetException The requested subnet is invalid, or multiple subnets were requested that are
* not all in a common VPC.
* - InvalidDbInstanceStateException The DB instance isn't in a valid state.
* - DbClusterParameterGroupNotFoundException
DBClusterParameterGroupName
doesn't refer to an
* existing DB cluster parameter group.
* - KmsKeyNotAccessibleException An error occurred accessing an Amazon Web Services KMS key.
* - DbClusterNotFoundException
DBClusterIdentifier
doesn't refer to an existing DB cluster.
* - DbInstanceNotFoundException
DBInstanceIdentifier
doesn't refer to an existing DB
* instance.
* - DbSubnetGroupDoesNotCoverEnoughAZsException Subnets in the DB subnet group should cover at least two
* Availability Zones unless there is only one Availability Zone.
* - GlobalClusterNotFoundException The
GlobalClusterIdentifier
doesn't refer to an existing
* global database cluster.
* - InvalidGlobalClusterStateException The global cluster is in an invalid state and can't perform the
* requested operation.
* - DomainNotFoundException
Domain
doesn't refer to an existing Active Directory domain.
* - OptionGroupNotFoundException The specified option group could not be found.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - RdsException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this type.
*
* @sample RdsAsyncClient.CreateDBCluster
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture createDBCluster(CreateDbClusterRequest createDbClusterRequest) {
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createDbClusterRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, createDbClusterRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "RDS");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateDBCluster");
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(CreateDbClusterResponse::builder);
HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler();
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CreateDBCluster").withProtocolMetadata(protocolMetadata)
.withMarshaller(new CreateDbClusterRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector)
.withInput(createDbClusterRequest));
CompletableFuture whenCompleteFuture = null;
whenCompleteFuture = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture);
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Creates a new custom endpoint and associates it with an Amazon Aurora DB cluster.
*
*
*
* This action applies only to Aurora DB clusters.
*
*
*
* @param createDbClusterEndpointRequest
* @return A Java Future containing the result of the CreateDBClusterEndpoint operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions. The exception returned is wrapped with CompletionException, so you need to invoke
* {@link Throwable#getCause} to retrieve the underlying exception.
*
* - DbClusterEndpointQuotaExceededException The cluster already has the maximum number of custom
* endpoints.
* - DbClusterEndpointAlreadyExistsException The specified custom endpoint can't be created because it
* already exists.
* - DbClusterNotFoundException
DBClusterIdentifier
doesn't refer to an existing DB cluster.
* - InvalidDbClusterStateException The requested operation can't be performed while the cluster is in
* this state.
* - DbInstanceNotFoundException
DBInstanceIdentifier
doesn't refer to an existing DB
* instance.
* - InvalidDbInstanceStateException The DB instance isn't in a valid state.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - RdsException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this type.
*
* @sample RdsAsyncClient.CreateDBClusterEndpoint
* @see AWS
* API Documentation
*/
@Override
public CompletableFuture createDBClusterEndpoint(
CreateDbClusterEndpointRequest createDbClusterEndpointRequest) {
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createDbClusterEndpointRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, createDbClusterEndpointRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "RDS");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateDBClusterEndpoint");
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(CreateDbClusterEndpointResponse::builder);
HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler();
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CreateDBClusterEndpoint").withProtocolMetadata(protocolMetadata)
.withMarshaller(new CreateDbClusterEndpointRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector)
.withInput(createDbClusterEndpointRequest));
CompletableFuture whenCompleteFuture = null;
whenCompleteFuture = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture);
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* 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 Aurora DB cluster, reboot the DB instances in
* the DB cluster without failover for the new DB cluster parameter group and associated settings to take effect.
*
*
* When you associate a new DB cluster parameter group with a running Multi-AZ DB cluster, reboot 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
* operation to verify that your DB cluster parameter group has been created or modified.
*
*
*
* For more information on Amazon Aurora, see What is Amazon
* Aurora? in the Amazon Aurora User Guide.
*
*
* For more information on Multi-AZ DB clusters, see Multi-AZ DB
* cluster deployments in the Amazon RDS User Guide.
*
*
* @param createDbClusterParameterGroupRequest
* @return A Java Future containing the result of the CreateDBClusterParameterGroup operation returned by the
* service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions. The exception returned is wrapped with CompletionException, so you need to invoke
* {@link Throwable#getCause} to retrieve the underlying exception.
*
* - DbParameterGroupQuotaExceededException The request would result in the user exceeding the allowed
* number of DB parameter groups.
* - DbParameterGroupAlreadyExistsException A DB parameter group with the same name exists.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - RdsException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this type.
*
* @sample RdsAsyncClient.CreateDBClusterParameterGroup
* @see AWS API Documentation
*/
@Override
public CompletableFuture createDBClusterParameterGroup(
CreateDbClusterParameterGroupRequest createDbClusterParameterGroupRequest) {
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createDbClusterParameterGroupRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration,
createDbClusterParameterGroupRequest.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "RDS");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateDBClusterParameterGroup");
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(CreateDbClusterParameterGroupResponse::builder);
HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler();
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CreateDBClusterParameterGroup").withProtocolMetadata(protocolMetadata)
.withMarshaller(new CreateDbClusterParameterGroupRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector)
.withInput(createDbClusterParameterGroupRequest));
CompletableFuture whenCompleteFuture = null;
whenCompleteFuture = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture);
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Creates a snapshot of a DB cluster.
*
*
* For more information on Amazon Aurora, see What is Amazon
* Aurora? in the Amazon Aurora User Guide.
*
*
* For more information on Multi-AZ DB clusters, see Multi-AZ DB
* cluster deployments in the Amazon RDS User Guide.
*
*
* @param createDbClusterSnapshotRequest
* @return A Java Future containing the result of the CreateDBClusterSnapshot operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions. The exception returned is wrapped with CompletionException, so you need to invoke
* {@link Throwable#getCause} to retrieve the underlying exception.
*
* - DbClusterSnapshotAlreadyExistsException The user already has a DB cluster snapshot with the given
* identifier.
* - InvalidDbClusterStateException The requested operation can't be performed while the cluster is in
* this state.
* - DbClusterNotFoundException
DBClusterIdentifier
doesn't refer to an existing DB cluster.
* - SnapshotQuotaExceededException The request would result in the user exceeding the allowed number of
* DB snapshots.
* - InvalidDbClusterSnapshotStateException The supplied value isn't a valid DB cluster snapshot state.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - RdsException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this type.
*
* @sample RdsAsyncClient.CreateDBClusterSnapshot
* @see AWS
* API Documentation
*/
@Override
public CompletableFuture createDBClusterSnapshot(
CreateDbClusterSnapshotRequest createDbClusterSnapshotRequest) {
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createDbClusterSnapshotRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, createDbClusterSnapshotRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "RDS");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateDBClusterSnapshot");
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(CreateDbClusterSnapshotResponse::builder);
HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler();
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CreateDBClusterSnapshot").withProtocolMetadata(protocolMetadata)
.withMarshaller(new CreateDbClusterSnapshotRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector)
.withInput(createDbClusterSnapshotRequest));
CompletableFuture whenCompleteFuture = null;
whenCompleteFuture = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture);
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Creates a new DB instance.
*
*
* The new DB instance can be an RDS DB instance, or it can be a DB instance in an Aurora DB cluster. For an Aurora
* DB cluster, you can call this operation multiple times to add more than one DB instance to the cluster.
*
*
* For more information about creating an RDS DB instance, see Creating an Amazon RDS
* DB instance in the Amazon RDS User Guide.
*
*
* For more information about creating a DB instance in an Aurora DB cluster, see Creating an
* Amazon Aurora DB cluster in the Amazon Aurora User Guide.
*
*
* @param createDbInstanceRequest
* @return A Java Future containing the result of the CreateDBInstance operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions. The exception returned is wrapped with CompletionException, so you need to invoke
* {@link Throwable#getCause} to retrieve the underlying exception.
*
* - DbInstanceAlreadyExistsException The user already has a DB instance with the given identifier.
* - InsufficientDbInstanceCapacityException The specified DB instance class isn't available in the
* specified Availability Zone.
* - DbParameterGroupNotFoundException
DBParameterGroupName
doesn't refer to an existing DB
* parameter group.
* - DbSecurityGroupNotFoundException
DBSecurityGroupName
doesn't refer to an existing DB
* security group.
* - InstanceQuotaExceededException The request would result in the user exceeding the allowed number of
* DB instances.
* - StorageQuotaExceededException The request would result in the user exceeding the allowed amount of
* storage available across all DB instances.
* - DbSubnetGroupNotFoundException
DBSubnetGroupName
doesn't refer to an existing DB subnet
* group.
* - DbSubnetGroupDoesNotCoverEnoughAZsException Subnets in the DB subnet group should cover at least two
* Availability Zones unless there is only one Availability Zone.
* - InvalidDbClusterStateException The requested operation can't be performed while the cluster is in
* this state.
* - InvalidSubnetException The requested subnet is invalid, or multiple subnets were requested that are
* not all in a common VPC.
* - InvalidVpcNetworkStateException The DB subnet group doesn't cover all Availability Zones after it's
* created because of users' change.
* - ProvisionedIopsNotAvailableInAzException Provisioned IOPS not available in the specified Availability
* Zone.
* - OptionGroupNotFoundException The specified option group could not be found.
* - DbClusterNotFoundException
DBClusterIdentifier
doesn't refer to an existing DB cluster.
* - StorageTypeNotSupportedException The specified
StorageType
can't be associated with the
* DB instance.
* - AuthorizationNotFoundException The specified CIDR IP range or Amazon EC2 security group might not be
* authorized for the specified DB security group.
*
* Or, RDS might not be authorized to perform necessary actions using IAM on your behalf.
* - KmsKeyNotAccessibleException An error occurred accessing an Amazon Web Services KMS key.
* - DomainNotFoundException
Domain
doesn't refer to an existing Active Directory domain.
* - NetworkTypeNotSupportedException The network type is invalid for the DB instance. Valid nework type
* values are
IPV4
and DUAL
.
* - CertificateNotFoundException
CertificateIdentifier
doesn't refer to an existing
* certificate.
* - TenantDatabaseQuotaExceededException You attempted to create more tenant databases than are permitted
* in your Amazon Web Services account.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - RdsException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this type.
*
* @sample RdsAsyncClient.CreateDBInstance
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture createDBInstance(CreateDbInstanceRequest createDbInstanceRequest) {
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createDbInstanceRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, createDbInstanceRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "RDS");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateDBInstance");
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(CreateDbInstanceResponse::builder);
HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler();
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CreateDBInstance").withProtocolMetadata(protocolMetadata)
.withMarshaller(new CreateDbInstanceRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector)
.withInput(createDbInstanceRequest));
CompletableFuture whenCompleteFuture = null;
whenCompleteFuture = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture);
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Creates a new DB instance that acts as a read replica for an existing source DB instance or Multi-AZ DB cluster.
* You can create a read replica for a DB instance running Db2, MariaDB, MySQL, Oracle, PostgreSQL, or SQL Server.
* You can create a read replica for a Multi-AZ DB cluster running MySQL or PostgreSQL. For more information, see Working with read replicas
* and Migrating from a Multi-AZ DB cluster to a DB instance using a read replica in the Amazon RDS User
* Guide.
*
*
* Amazon Aurora doesn't support this operation. To create a DB instance for an Aurora DB cluster, use the
* CreateDBInstance
operation.
*
*
* All read replica DB instances are created with backups disabled. All other attributes (including DB security
* groups and DB parameter groups) are inherited from the source DB instance or cluster, except as specified.
*
*
*
* Your source DB instance or cluster must have backup retention enabled.
*
*
*
* @param createDbInstanceReadReplicaRequest
* @return A Java Future containing the result of the CreateDBInstanceReadReplica operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions. The exception returned is wrapped with CompletionException, so you need to invoke
* {@link Throwable#getCause} to retrieve the underlying exception.
*
* - DbInstanceAlreadyExistsException The user already has a DB instance with the given identifier.
* - InsufficientDbInstanceCapacityException The specified DB instance class isn't available in the
* specified Availability Zone.
* - DbParameterGroupNotFoundException
DBParameterGroupName
doesn't refer to an existing DB
* parameter group.
* - DbSecurityGroupNotFoundException
DBSecurityGroupName
doesn't refer to an existing DB
* security group.
* - InstanceQuotaExceededException The request would result in the user exceeding the allowed number of
* DB instances.
* - StorageQuotaExceededException The request would result in the user exceeding the allowed amount of
* storage available across all DB instances.
* - DbInstanceNotFoundException
DBInstanceIdentifier
doesn't refer to an existing DB
* instance.
* - DbClusterNotFoundException
DBClusterIdentifier
doesn't refer to an existing DB cluster.
* - InvalidDbInstanceStateException The DB instance isn't in a valid state.
* - InvalidDbClusterStateException The requested operation can't be performed while the cluster is in
* this state.
* - DbSubnetGroupNotFoundException
DBSubnetGroupName
doesn't refer to an existing DB subnet
* group.
* - DbSubnetGroupDoesNotCoverEnoughAZsException Subnets in the DB subnet group should cover at least two
* Availability Zones unless there is only one Availability Zone.
* - InvalidSubnetException The requested subnet is invalid, or multiple subnets were requested that are
* not all in a common VPC.
* - InvalidVpcNetworkStateException The DB subnet group doesn't cover all Availability Zones after it's
* created because of users' change.
* - ProvisionedIopsNotAvailableInAzException Provisioned IOPS not available in the specified Availability
* Zone.
* - OptionGroupNotFoundException The specified option group could not be found.
* - DbSubnetGroupNotAllowedException The DBSubnetGroup shouldn't be specified while creating read
* replicas that lie in the same region as the source instance.
* - InvalidDbSubnetGroupException The DBSubnetGroup doesn't belong to the same VPC as that of an existing
* cross-region read replica of the same source instance.
* - StorageTypeNotSupportedException The specified
StorageType
can't be associated with the
* DB instance.
* - KmsKeyNotAccessibleException An error occurred accessing an Amazon Web Services KMS key.
* - DomainNotFoundException
Domain
doesn't refer to an existing Active Directory domain.
* - NetworkTypeNotSupportedException The network type is invalid for the DB instance. Valid nework type
* values are
IPV4
and DUAL
.
* - TenantDatabaseQuotaExceededException You attempted to create more tenant databases than are permitted
* in your Amazon Web Services account.
* - CertificateNotFoundException
CertificateIdentifier
doesn't refer to an existing
* certificate.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - RdsException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this type.
*
* @sample RdsAsyncClient.CreateDBInstanceReadReplica
* @see AWS API Documentation
*/
@Override
public CompletableFuture createDBInstanceReadReplica(
CreateDbInstanceReadReplicaRequest createDbInstanceReadReplicaRequest) {
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createDbInstanceReadReplicaRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, createDbInstanceReadReplicaRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "RDS");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateDBInstanceReadReplica");
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(CreateDbInstanceReadReplicaResponse::builder);
HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler();
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CreateDBInstanceReadReplica").withProtocolMetadata(protocolMetadata)
.withMarshaller(new CreateDbInstanceReadReplicaRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector)
.withInput(createDbInstanceReadReplicaRequest));
CompletableFuture whenCompleteFuture = null;
whenCompleteFuture = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture);
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* 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.
*
*
* This command doesn't apply to RDS Custom.
*
*
*
* 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 A Java Future containing the result of the CreateDBParameterGroup operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions. The exception returned is wrapped with CompletionException, so you need to invoke
* {@link Throwable#getCause} to retrieve the underlying exception.
*
* - DbParameterGroupQuotaExceededException The request would result in the user exceeding the allowed
* number of DB parameter groups.
* - DbParameterGroupAlreadyExistsException A DB parameter group with the same name exists.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - RdsException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this type.
*
* @sample RdsAsyncClient.CreateDBParameterGroup
* @see AWS
* API Documentation
*/
@Override
public CompletableFuture createDBParameterGroup(
CreateDbParameterGroupRequest createDbParameterGroupRequest) {
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createDbParameterGroupRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, createDbParameterGroupRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "RDS");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateDBParameterGroup");
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(CreateDbParameterGroupResponse::builder);
HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler();
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CreateDBParameterGroup").withProtocolMetadata(protocolMetadata)
.withMarshaller(new CreateDbParameterGroupRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector)
.withInput(createDbParameterGroupRequest));
CompletableFuture whenCompleteFuture = null;
whenCompleteFuture = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture);
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Creates a new DB proxy.
*
*
* @param createDbProxyRequest
* @return A Java Future containing the result of the CreateDBProxy operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions. The exception returned is wrapped with CompletionException, so you need to invoke
* {@link Throwable#getCause} to retrieve the underlying exception.
*
* - InvalidSubnetException The requested subnet is invalid, or multiple subnets were requested that are
* not all in a common VPC.
* - DbProxyAlreadyExistsException The specified proxy name must be unique for all proxies owned by your
* Amazon Web Services account in the specified Amazon Web Services Region.
* - DbProxyQuotaExceededException Your Amazon Web Services account already has the maximum number of
* proxies in the specified Amazon Web Services Region.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - RdsException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this type.
*
* @sample RdsAsyncClient.CreateDBProxy
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture createDBProxy(CreateDbProxyRequest createDbProxyRequest) {
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createDbProxyRequest, this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, createDbProxyRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "RDS");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateDBProxy");
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(CreateDbProxyResponse::builder);
HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler();
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CreateDBProxy").withProtocolMetadata(protocolMetadata)
.withMarshaller(new CreateDbProxyRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector)
.withInput(createDbProxyRequest));
CompletableFuture whenCompleteFuture = null;
whenCompleteFuture = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture);
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Creates a DBProxyEndpoint
. Only applies to proxies that are associated with Aurora DB clusters. You
* can use DB proxy endpoints to specify read/write or read-only access to the DB cluster. You can also use DB proxy
* endpoints to access a DB proxy through a different VPC than the proxy's default VPC.
*
*
* @param createDbProxyEndpointRequest
* @return A Java Future containing the result of the CreateDBProxyEndpoint operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions. The exception returned is wrapped with CompletionException, so you need to invoke
* {@link Throwable#getCause} to retrieve the underlying exception.
*
* - InvalidSubnetException The requested subnet is invalid, or multiple subnets were requested that are
* not all in a common VPC.
* - DbProxyNotFoundException The specified proxy name doesn't correspond to a proxy owned by your Amazon
* Web Services account in the specified Amazon Web Services Region.
* - DbProxyEndpointAlreadyExistsException The specified DB proxy endpoint name must be unique for all DB
* proxy endpoints owned by your Amazon Web Services account in the specified Amazon Web Services Region.
* - DbProxyEndpointQuotaExceededException The DB proxy already has the maximum number of endpoints.
* - InvalidDbProxyStateException The requested operation can't be performed while the proxy is in this
* state.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - RdsException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this type.
*
* @sample RdsAsyncClient.CreateDBProxyEndpoint
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture createDBProxyEndpoint(
CreateDbProxyEndpointRequest createDbProxyEndpointRequest) {
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createDbProxyEndpointRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, createDbProxyEndpointRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "RDS");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateDBProxyEndpoint");
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(CreateDbProxyEndpointResponse::builder);
HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler();
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CreateDBProxyEndpoint").withProtocolMetadata(protocolMetadata)
.withMarshaller(new CreateDbProxyEndpointRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector)
.withInput(createDbProxyEndpointRequest));
CompletableFuture whenCompleteFuture = null;
whenCompleteFuture = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture);
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Creates a new DB security group. DB security groups control access to a DB instance.
*
*
* A DB security group controls access to EC2-Classic DB instances that are not in a VPC.
*
*
*
* EC2-Classic was retired on August 15, 2022. If you haven't migrated from EC2-Classic to a VPC, we recommend that
* you migrate as soon as possible. For more information, see Migrate from EC2-Classic to a VPC
* in the Amazon EC2 User Guide, the blog EC2-Classic Networking is
* Retiring – Here’s How to Prepare, and Moving a DB instance not
* in a VPC into a VPC in the Amazon RDS User Guide.
*
*
*
* @param createDbSecurityGroupRequest
* @return A Java Future containing the result of the CreateDBSecurityGroup operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions. The exception returned is wrapped with CompletionException, so you need to invoke
* {@link Throwable#getCause} to retrieve the underlying exception.
*
* - DbSecurityGroupAlreadyExistsException A DB security group with the name specified in
*
DBSecurityGroupName
already exists.
* - DbSecurityGroupQuotaExceededException The request would result in the user exceeding the allowed
* number of DB security groups.
* - DbSecurityGroupNotSupportedException A DB security group isn't allowed for this action.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - RdsException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this type.
*
* @sample RdsAsyncClient.CreateDBSecurityGroup
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture createDBSecurityGroup(
CreateDbSecurityGroupRequest createDbSecurityGroupRequest) {
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createDbSecurityGroupRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, createDbSecurityGroupRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "RDS");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateDBSecurityGroup");
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(CreateDbSecurityGroupResponse::builder);
HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler();
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CreateDBSecurityGroup").withProtocolMetadata(protocolMetadata)
.withMarshaller(new CreateDbSecurityGroupRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector)
.withInput(createDbSecurityGroupRequest));
CompletableFuture whenCompleteFuture = null;
whenCompleteFuture = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture);
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Creates a new DB shard group for Aurora Limitless Database. You must enable Aurora Limitless Database to create a
* DB shard group.
*
*
* Valid for: Aurora DB clusters only
*
*
* @param createDbShardGroupRequest
* @return A Java Future containing the result of the CreateDBShardGroup operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions. The exception returned is wrapped with CompletionException, so you need to invoke
* {@link Throwable#getCause} to retrieve the underlying exception.
*
* - DbShardGroupAlreadyExistsException The specified DB shard group name must be unique in your Amazon
* Web Services account in the specified Amazon Web Services Region.
* - DbClusterNotFoundException
DBClusterIdentifier
doesn't refer to an existing DB cluster.
* - MaxDbShardGroupLimitReachedException The maximum number of DB shard groups for your Amazon Web
* Services account in the specified Amazon Web Services Region has been reached.
* - InvalidDbClusterStateException The requested operation can't be performed while the cluster is in
* this state.
* - UnsupportedDbEngineVersionException The specified DB engine version isn't supported for Aurora
* Limitless Database.
* - InvalidVpcNetworkStateException The DB subnet group doesn't cover all Availability Zones after it's
* created because of users' change.
* - NetworkTypeNotSupportedException The network type is invalid for the DB instance. Valid nework type
* values are
IPV4
and DUAL
.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - RdsException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this type.
*
* @sample RdsAsyncClient.CreateDBShardGroup
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture createDBShardGroup(CreateDbShardGroupRequest createDbShardGroupRequest) {
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createDbShardGroupRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, createDbShardGroupRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "RDS");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateDBShardGroup");
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(CreateDbShardGroupResponse::builder);
HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler();
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CreateDBShardGroup").withProtocolMetadata(protocolMetadata)
.withMarshaller(new CreateDbShardGroupRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector)
.withInput(createDbShardGroupRequest));
CompletableFuture whenCompleteFuture = null;
whenCompleteFuture = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture);
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Creates a snapshot of a DB instance. The source DB instance must be in the available
or
* storage-optimization
state.
*
*
* @param createDbSnapshotRequest
* @return A Java Future containing the result of the CreateDBSnapshot operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions. The exception returned is wrapped with CompletionException, so you need to invoke
* {@link Throwable#getCause} to retrieve the underlying exception.
*
* - DbSnapshotAlreadyExistsException
DBSnapshotIdentifier
is already used by an existing
* snapshot.
* - InvalidDbInstanceStateException The DB instance isn't in a valid state.
* - DbInstanceNotFoundException
DBInstanceIdentifier
doesn't refer to an existing DB
* instance.
* - SnapshotQuotaExceededException The request would result in the user exceeding the allowed number of
* DB snapshots.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - RdsException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this type.
*
* @sample RdsAsyncClient.CreateDBSnapshot
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture createDBSnapshot(CreateDbSnapshotRequest createDbSnapshotRequest) {
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createDbSnapshotRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, createDbSnapshotRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "RDS");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateDBSnapshot");
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(CreateDbSnapshotResponse::builder);
HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler();
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CreateDBSnapshot").withProtocolMetadata(protocolMetadata)
.withMarshaller(new CreateDbSnapshotRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector)
.withInput(createDbSnapshotRequest));
CompletableFuture whenCompleteFuture = null;
whenCompleteFuture = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture);
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Creates a new DB subnet group. DB subnet groups must contain at least one subnet in at least two AZs in the
* Amazon Web Services Region.
*
*
* @param createDbSubnetGroupRequest
* @return A Java Future containing the result of the CreateDBSubnetGroup operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions. The exception returned is wrapped with CompletionException, so you need to invoke
* {@link Throwable#getCause} to retrieve the underlying exception.
*
* - DbSubnetGroupAlreadyExistsException
DBSubnetGroupName
is already used by an existing DB
* subnet group.
* - DbSubnetGroupQuotaExceededException The request would result in the user exceeding the allowed number
* of DB subnet groups.
* - DbSubnetQuotaExceededException The request would result in the user exceeding the allowed number of
* subnets in a DB subnet groups.
* - DbSubnetGroupDoesNotCoverEnoughAZsException Subnets in the DB subnet group should cover at least two
* Availability Zones unless there is only one Availability Zone.
* - InvalidSubnetException The requested subnet is invalid, or multiple subnets were requested that are
* not all in a common VPC.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - RdsException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this type.
*
* @sample RdsAsyncClient.CreateDBSubnetGroup
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture createDBSubnetGroup(
CreateDbSubnetGroupRequest createDbSubnetGroupRequest) {
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createDbSubnetGroupRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, createDbSubnetGroupRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "RDS");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateDBSubnetGroup");
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(CreateDbSubnetGroupResponse::builder);
HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler();
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CreateDBSubnetGroup").withProtocolMetadata(protocolMetadata)
.withMarshaller(new CreateDbSubnetGroupRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector)
.withInput(createDbSubnetGroupRequest));
CompletableFuture whenCompleteFuture = null;
whenCompleteFuture = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture);
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Creates an RDS event notification subscription. This operation requires a topic Amazon Resource Name (ARN)
* 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
) that you want to be notified of and provide a list
* of RDS sources (SourceIds
) that triggers the events. You can also provide a list of event categories
* (EventCategories
) for events that 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 SourceIds
= myDBInstance1
, you are notified of all the
* db-instance
events for the specified source. If you specify a SourceType
but do not
* specify SourceIds
, you receive notice of the events for that source type for all your RDS sources.
* If you don't specify either the SourceType or the SourceIds
, you are notified of events generated
* from all RDS sources belonging to your customer account.
*
*
* For more information about subscribing to an event for RDS DB engines, see Subscribing to Amazon
* RDS event notification in the Amazon RDS User Guide.
*
*
* For more information about subscribing to an event for Aurora DB engines, see Subscribing to
* Amazon RDS event notification in the Amazon Aurora User Guide.
*
*
* @param createEventSubscriptionRequest
* @return A Java Future containing the result of the CreateEventSubscription operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions. The exception returned is wrapped with CompletionException, so you need to invoke
* {@link Throwable#getCause} to retrieve the underlying exception.
*
* - EventSubscriptionQuotaExceededException You have reached the maximum number of event subscriptions.
* - SubscriptionAlreadyExistException The supplied subscription name already exists.
* - SnsInvalidTopicException SNS has responded that there is a problem with the SNS topic specified.
* - SnsNoAuthorizationException You do not have permission to publish to the SNS topic ARN.
* - SnsTopicArnNotFoundException The SNS topic ARN does not exist.
* - SubscriptionCategoryNotFoundException The supplied category does not exist.
* - SourceNotFoundException The requested source could not be found.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - RdsException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this type.
*
* @sample RdsAsyncClient.CreateEventSubscription
* @see AWS
* API Documentation
*/
@Override
public CompletableFuture createEventSubscription(
CreateEventSubscriptionRequest createEventSubscriptionRequest) {
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createEventSubscriptionRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, createEventSubscriptionRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "RDS");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateEventSubscription");
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(CreateEventSubscriptionResponse::builder);
HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler();
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CreateEventSubscription").withProtocolMetadata(protocolMetadata)
.withMarshaller(new CreateEventSubscriptionRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector)
.withInput(createEventSubscriptionRequest));
CompletableFuture whenCompleteFuture = null;
whenCompleteFuture = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture);
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Creates an Aurora global database spread across multiple Amazon Web Services Regions. The global database
* contains a single primary cluster with read-write capability, and a read-only secondary cluster that receives
* data from the primary cluster through high-speed replication performed by the Aurora storage subsystem.
*
*
* You can create a global database that is initially empty, and then create the primary and secondary DB clusters
* in the global database. Or you can specify an existing Aurora cluster during the create operation, and this
* cluster becomes the primary cluster of the global database.
*
*
*
* This operation applies only to Aurora DB clusters.
*
*
*
* @param createGlobalClusterRequest
* @return A Java Future containing the result of the CreateGlobalCluster operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions. The exception returned is wrapped with CompletionException, so you need to invoke
* {@link Throwable#getCause} to retrieve the underlying exception.
*
* - GlobalClusterAlreadyExistsException The
GlobalClusterIdentifier
already exists. Specify
* a new global database identifier (unique name) to create a new global database cluster or to rename an
* existing one.
* - GlobalClusterQuotaExceededException The number of global database clusters for this account is
* already at the maximum allowed.
* - InvalidDbClusterStateException The requested operation can't be performed while the cluster is in
* this state.
* - DbClusterNotFoundException
DBClusterIdentifier
doesn't refer to an existing DB cluster.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - RdsException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this type.
*
* @sample RdsAsyncClient.CreateGlobalCluster
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture createGlobalCluster(
CreateGlobalClusterRequest createGlobalClusterRequest) {
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createGlobalClusterRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, createGlobalClusterRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "RDS");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateGlobalCluster");
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(CreateGlobalClusterResponse::builder);
HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler();
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CreateGlobalCluster").withProtocolMetadata(protocolMetadata)
.withMarshaller(new CreateGlobalClusterRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector)
.withInput(createGlobalClusterRequest));
CompletableFuture whenCompleteFuture = null;
whenCompleteFuture = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture);
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Creates a zero-ETL integration with Amazon Redshift.
*
*
* @param createIntegrationRequest
* @return A Java Future containing the result of the CreateIntegration operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions. The exception returned is wrapped with CompletionException, so you need to invoke
* {@link Throwable#getCause} to retrieve the underlying exception.
*
* - DbClusterNotFoundException
DBClusterIdentifier
doesn't refer to an existing DB cluster.
* - DbInstanceNotFoundException
DBInstanceIdentifier
doesn't refer to an existing DB
* instance.
* - IntegrationAlreadyExistsException The integration you are trying to create already exists.
* - IntegrationQuotaExceededException You can't crate any more zero-ETL integrations because the quota
* has been reached.
* - KmsKeyNotAccessibleException An error occurred accessing an Amazon Web Services KMS key.
* - IntegrationConflictOperationException A conflicting conditional operation is currently in progress
* against this resource. Typically occurs when there are multiple requests being made to the same resource
* at the same time, and these requests conflict with each other.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - RdsException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this type.
*
* @sample RdsAsyncClient.CreateIntegration
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture createIntegration(CreateIntegrationRequest createIntegrationRequest) {
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createIntegrationRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, createIntegrationRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "RDS");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateIntegration");
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(CreateIntegrationResponse::builder);
HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler();
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CreateIntegration").withProtocolMetadata(protocolMetadata)
.withMarshaller(new CreateIntegrationRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector)
.withInput(createIntegrationRequest));
CompletableFuture whenCompleteFuture = null;
whenCompleteFuture = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture);
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Creates a new option group. You can create up to 20 option groups.
*
*
* This command doesn't apply to RDS Custom.
*
*
* @param createOptionGroupRequest
* @return A Java Future containing the result of the CreateOptionGroup operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions. The exception returned is wrapped with CompletionException, so you need to invoke
* {@link Throwable#getCause} to retrieve the underlying exception.
*
* - OptionGroupAlreadyExistsException The option group you are trying to create already exists.
* - OptionGroupQuotaExceededException The quota of 20 option groups was exceeded for this Amazon Web
* Services account.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - RdsException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this type.
*
* @sample RdsAsyncClient.CreateOptionGroup
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture createOptionGroup(CreateOptionGroupRequest createOptionGroupRequest) {
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createOptionGroupRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, createOptionGroupRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "RDS");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateOptionGroup");
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(CreateOptionGroupResponse::builder);
HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler();
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CreateOptionGroup").withProtocolMetadata(protocolMetadata)
.withMarshaller(new CreateOptionGroupRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector)
.withInput(createOptionGroupRequest));
CompletableFuture whenCompleteFuture = null;
whenCompleteFuture = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture);
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Creates a tenant database in a DB instance that uses the multi-tenant configuration. Only RDS for Oracle
* container database (CDB) instances are supported.
*
*
* @param createTenantDatabaseRequest
* @return A Java Future containing the result of the CreateTenantDatabase operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions. The exception returned is wrapped with CompletionException, so you need to invoke
* {@link Throwable#getCause} to retrieve the underlying exception.
*
* - DbInstanceNotFoundException
DBInstanceIdentifier
doesn't refer to an existing DB
* instance.
* - InvalidDbInstanceStateException The DB instance isn't in a valid state.
* - TenantDatabaseAlreadyExistsException You attempted to either create a tenant database that already
* exists or modify a tenant database to use the name of an existing tenant database.
* - TenantDatabaseQuotaExceededException You attempted to create more tenant databases than are permitted
* in your Amazon Web Services account.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - RdsException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this type.
*
* @sample RdsAsyncClient.CreateTenantDatabase
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture createTenantDatabase(
CreateTenantDatabaseRequest createTenantDatabaseRequest) {
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createTenantDatabaseRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, createTenantDatabaseRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "RDS");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateTenantDatabase");
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(CreateTenantDatabaseResponse::builder);
HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler();
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CreateTenantDatabase").withProtocolMetadata(protocolMetadata)
.withMarshaller(new CreateTenantDatabaseRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector)
.withInput(createTenantDatabaseRequest));
CompletableFuture whenCompleteFuture = null;
whenCompleteFuture = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture);
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Deletes a blue/green deployment.
*
*
* For more information, see Using Amazon RDS
* Blue/Green Deployments for database updates in the Amazon RDS User Guide and Using Amazon RDS
* Blue/Green Deployments for database updates in the Amazon Aurora User Guide.
*
*
* @param deleteBlueGreenDeploymentRequest
* @return A Java Future containing the result of the DeleteBlueGreenDeployment operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions. The exception returned is wrapped with CompletionException, so you need to invoke
* {@link Throwable#getCause} to retrieve the underlying exception.
*
* - BlueGreenDeploymentNotFoundException
BlueGreenDeploymentIdentifier
doesn't refer to an
* existing blue/green deployment.
* - InvalidBlueGreenDeploymentStateException The blue/green deployment can't be switched over or deleted
* because there is an invalid configuration in the green environment.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - RdsException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this type.
*
* @sample RdsAsyncClient.DeleteBlueGreenDeployment
* @see AWS
* API Documentation
*/
@Override
public CompletableFuture deleteBlueGreenDeployment(
DeleteBlueGreenDeploymentRequest deleteBlueGreenDeploymentRequest) {
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deleteBlueGreenDeploymentRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteBlueGreenDeploymentRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "RDS");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteBlueGreenDeployment");
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(DeleteBlueGreenDeploymentResponse::builder);
HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler();
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DeleteBlueGreenDeployment").withProtocolMetadata(protocolMetadata)
.withMarshaller(new DeleteBlueGreenDeploymentRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector)
.withInput(deleteBlueGreenDeploymentRequest));
CompletableFuture whenCompleteFuture = null;
whenCompleteFuture = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture);
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Deletes a custom engine version. To run this command, make sure you meet the following prerequisites:
*
*
* -
*
* The CEV must not be the default for RDS Custom. If it is, change the default before running this command.
*
*
* -
*
* The CEV must not be associated with an RDS Custom DB instance, RDS Custom instance snapshot, or automated backup
* of your RDS Custom instance.
*
*
*
*
* Typically, deletion takes a few minutes.
*
*
*
* The MediaImport service that imports files from Amazon S3 to create CEVs isn't integrated with Amazon Web
* Services CloudTrail. If you turn on data logging for Amazon RDS in CloudTrail, calls to the
* DeleteCustomDbEngineVersion
event aren't logged. However, you might see calls from the API gateway
* that accesses your Amazon S3 bucket. These calls originate from the MediaImport service for the
* DeleteCustomDbEngineVersion
event.
*
*
*
* For more information, see Deleting a
* CEV in the Amazon RDS User Guide.
*
*
* @param deleteCustomDbEngineVersionRequest
* @return A Java Future containing the result of the DeleteCustomDBEngineVersion operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions. The exception returned is wrapped with CompletionException, so you need to invoke
* {@link Throwable#getCause} to retrieve the underlying exception.
*
* - CustomDbEngineVersionNotFoundException The specified CEV was not found.
* - InvalidCustomDbEngineVersionStateException You can't delete the CEV.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - RdsException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this type.
*
* @sample RdsAsyncClient.DeleteCustomDBEngineVersion
* @see AWS API Documentation
*/
@Override
public CompletableFuture deleteCustomDBEngineVersion(
DeleteCustomDbEngineVersionRequest deleteCustomDbEngineVersionRequest) {
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deleteCustomDbEngineVersionRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteCustomDbEngineVersionRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "RDS");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteCustomDBEngineVersion");
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(DeleteCustomDbEngineVersionResponse::builder);
HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler();
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DeleteCustomDBEngineVersion").withProtocolMetadata(protocolMetadata)
.withMarshaller(new DeleteCustomDbEngineVersionRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector)
.withInput(deleteCustomDbEngineVersionRequest));
CompletableFuture whenCompleteFuture = null;
whenCompleteFuture = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
return CompletableFutureUtils.forwardExceptionTo(whenCompleteFuture, executeFuture);
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* 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 can't be recovered. Manual DB cluster snapshots of the
* specified DB cluster are not deleted.
*
*
* If you're deleting a Multi-AZ DB cluster with read replicas, all cluster members are terminated and read replicas
* are promoted to standalone instances.
*
*
* For more information on Amazon Aurora, see What is Amazon
* Aurora? in the Amazon Aurora User Guide.
*
*
* For more information on Multi-AZ DB clusters, see Multi-AZ DB
* cluster deployments in the Amazon RDS User Guide.
*
*
* @param deleteDbClusterRequest
* @return A Java Future containing the result of the DeleteDBCluster operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions. The exception returned is wrapped with CompletionException, so you need to invoke
* {@link Throwable#getCause} to retrieve the underlying exception.
*
* - DbClusterNotFoundException
DBClusterIdentifier
doesn't refer to an existing DB cluster.
* - InvalidDbClusterStateException The requested operation can't be performed while the cluster is in
* this state.
* - DbClusterSnapshotAlreadyExistsException The user already has a DB cluster snapshot with the given
* identifier.
* - SnapshotQuotaExceededException The request would result in the user exceeding the allowed number of
* DB snapshots.
* - InvalidDbClusterSnapshotStateException The supplied value isn't a valid DB cluster snapshot state.
* - DbClusterAutomatedBackupQuotaExceededException The quota for retained automated backups was exceeded.
* This prevents you from retaining any additional automated backups. The retained automated backups quota
* is the same as your DB cluster quota.
* - SdkException Base class for all exceptions that can be thrown by the SDK (both service and client).
* Can be used for catch all scenarios.
* - SdkClientException If any client side error occurs such as an IO related failure, failure to get
* credentials, etc.
* - RdsException Base class for all service exceptions. Unknown exceptions will be thrown as an instance
* of this type.
*
* @sample RdsAsyncClient.DeleteDBCluster
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture deleteDBCluster(DeleteDbClusterRequest deleteDbClusterRequest) {
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deleteDbClusterRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteDbClusterRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "RDS");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteDBCluster");
HttpResponseHandler responseHandler = protocolFactory
.createResponseHandler(DeleteDbClusterResponse::builder);
HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler();
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DeleteDBCluster").withProtocolMetadata(protocolMetadata)
.withMarshaller(new DeleteDbClusterRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withMetricCollector(apiCallMetricCollector)
.withInput(deleteDbClusterRequest));
CompletableFuture