From c28ec75cf387d1c1b30558e19a50e74fb456bbd1 Mon Sep 17 00:00:00 2001 From: awstools Date: Tue, 7 Nov 2023 19:41:39 +0000 Subject: [PATCH] feat(client-rds): This Amazon RDS release adds support for the multi-tenant configuration. In this configuration, an RDS DB instance can contain multiple tenant databases. In RDS for Oracle, a tenant database is a pluggable database (PDB). --- clients/client-rds/README.md | 40 + clients/client-rds/src/RDS.ts | 115 ++ clients/client-rds/src/RDSClient.ts | 30 + .../src/commands/AddTagsToResourceCommand.ts | 6 + .../src/commands/CopyDBSnapshotCommand.ts | 1 + .../src/commands/CreateDBInstanceCommand.ts | 7 + .../CreateDBInstanceReadReplicaCommand.ts | 6 + .../src/commands/CreateDBSnapshotCommand.ts | 1 + .../commands/CreateTenantDatabaseCommand.ts | 201 ++ .../DeleteDBInstanceAutomatedBackupCommand.ts | 1 + .../src/commands/DeleteDBInstanceCommand.ts | 2 + .../src/commands/DeleteDBSnapshotCommand.ts | 1 + .../commands/DeleteTenantDatabaseCommand.ts | 189 ++ ...escribeDBClusterAutomatedBackupsCommand.ts | 3 +- .../DescribeDBClusterBacktracksCommand.ts | 2 +- .../DescribeDBClusterEndpointsCommand.ts | 2 +- ...DescribeDBClusterParameterGroupsCommand.ts | 2 +- ...scribeDBInstanceAutomatedBackupsCommand.ts | 1 + .../commands/DescribeDBInstancesCommand.ts | 2 + ...escribeDBSnapshotTenantDatabasesCommand.ts | 202 ++ .../commands/DescribeDBSnapshotsCommand.ts | 1 + .../DescribeTenantDatabasesCommand.ts | 192 ++ .../commands/ListTagsForResourceCommand.ts | 6 + .../src/commands/ModifyDBInstanceCommand.ts | 7 + .../src/commands/ModifyDBSnapshotCommand.ts | 1 + .../commands/ModifyTenantDatabaseCommand.ts | 193 ++ .../src/commands/PromoteReadReplicaCommand.ts | 2 + .../src/commands/RebootDBInstanceCommand.ts | 2 + .../commands/RemoveTagsFromResourceCommand.ts | 6 + .../RestoreDBInstanceFromDBSnapshotCommand.ts | 6 + .../RestoreDBInstanceFromS3Command.ts | 2 + .../RestoreDBInstanceToPointInTimeCommand.ts | 6 + ...tanceAutomatedBackupsReplicationCommand.ts | 1 + .../src/commands/StartDBInstanceCommand.ts | 2 + ...tanceAutomatedBackupsReplicationCommand.ts | 1 + .../src/commands/StopDBInstanceCommand.ts | 2 + .../commands/SwitchoverReadReplicaCommand.ts | 2 + clients/client-rds/src/commands/index.ts | 5 + clients/client-rds/src/models/models_0.ts | 890 +++++---- clients/client-rds/src/models/models_1.ts | 1660 +++++++++++++---- ...cribeDBSnapshotTenantDatabasesPaginator.ts | 50 + .../DescribeTenantDatabasesPaginator.ts | 50 + clients/client-rds/src/pagination/index.ts | 2 + clients/client-rds/src/protocols/Aws_query.ts | 941 +++++++++- clients/client-rds/src/waiters/index.ts | 2 + .../waiters/waitForTenantDatabaseAvailable.ts | 101 + .../waiters/waitForTenantDatabaseDeleted.ts | 54 + codegen/sdk-codegen/aws-models/rds.json | 900 ++++++++- 48 files changed, 5022 insertions(+), 879 deletions(-) create mode 100644 clients/client-rds/src/commands/CreateTenantDatabaseCommand.ts create mode 100644 clients/client-rds/src/commands/DeleteTenantDatabaseCommand.ts create mode 100644 clients/client-rds/src/commands/DescribeDBSnapshotTenantDatabasesCommand.ts create mode 100644 clients/client-rds/src/commands/DescribeTenantDatabasesCommand.ts create mode 100644 clients/client-rds/src/commands/ModifyTenantDatabaseCommand.ts create mode 100644 clients/client-rds/src/pagination/DescribeDBSnapshotTenantDatabasesPaginator.ts create mode 100644 clients/client-rds/src/pagination/DescribeTenantDatabasesPaginator.ts create mode 100644 clients/client-rds/src/waiters/waitForTenantDatabaseAvailable.ts create mode 100644 clients/client-rds/src/waiters/waitForTenantDatabaseDeleted.ts diff --git a/clients/client-rds/README.md b/clients/client-rds/README.md index 13da7c0374321..deafff5fe545f 100644 --- a/clients/client-rds/README.md +++ b/clients/client-rds/README.md @@ -503,6 +503,14 @@ CreateOptionGroup [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/classes/createoptiongroupcommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/interfaces/createoptiongroupcommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/interfaces/createoptiongroupcommandoutput.html) + +
+ +CreateTenantDatabase + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/classes/createtenantdatabasecommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/interfaces/createtenantdatabasecommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/interfaces/createtenantdatabasecommandoutput.html) +
@@ -655,6 +663,14 @@ DeleteOptionGroup [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/classes/deleteoptiongroupcommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/interfaces/deleteoptiongroupcommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/interfaces/deleteoptiongroupcommandoutput.html) +
+
+ +DeleteTenantDatabase + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/classes/deletetenantdatabasecommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/interfaces/deletetenantdatabasecommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/interfaces/deletetenantdatabasecommandoutput.html) +
@@ -855,6 +871,14 @@ DescribeDBSnapshots [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/classes/describedbsnapshotscommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/interfaces/describedbsnapshotscommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/interfaces/describedbsnapshotscommandoutput.html) +
+
+ +DescribeDBSnapshotTenantDatabases + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/classes/describedbsnapshottenantdatabasescommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/interfaces/describedbsnapshottenantdatabasescommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/interfaces/describedbsnapshottenantdatabasescommandoutput.html) +
@@ -983,6 +1007,14 @@ DescribeSourceRegions [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/classes/describesourceregionscommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/interfaces/describesourceregionscommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/interfaces/describesourceregionscommandoutput.html) +
+
+ +DescribeTenantDatabases + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/classes/describetenantdatabasescommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/interfaces/describetenantdatabasescommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/interfaces/describetenantdatabasescommandoutput.html) +
@@ -1175,6 +1207,14 @@ ModifyOptionGroup [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/classes/modifyoptiongroupcommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/interfaces/modifyoptiongroupcommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/interfaces/modifyoptiongroupcommandoutput.html) +
+
+ +ModifyTenantDatabase + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/classes/modifytenantdatabasecommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/interfaces/modifytenantdatabasecommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/interfaces/modifytenantdatabasecommandoutput.html) +
diff --git a/clients/client-rds/src/RDS.ts b/clients/client-rds/src/RDS.ts index 209275b865ab0..050d024581371 100644 --- a/clients/client-rds/src/RDS.ts +++ b/clients/client-rds/src/RDS.ts @@ -157,6 +157,11 @@ import { CreateOptionGroupCommandInput, CreateOptionGroupCommandOutput, } from "./commands/CreateOptionGroupCommand"; +import { + CreateTenantDatabaseCommand, + CreateTenantDatabaseCommandInput, + CreateTenantDatabaseCommandOutput, +} from "./commands/CreateTenantDatabaseCommand"; import { DeleteBlueGreenDeploymentCommand, DeleteBlueGreenDeploymentCommandInput, @@ -252,6 +257,11 @@ import { DeleteOptionGroupCommandInput, DeleteOptionGroupCommandOutput, } from "./commands/DeleteOptionGroupCommand"; +import { + DeleteTenantDatabaseCommand, + DeleteTenantDatabaseCommandInput, + DeleteTenantDatabaseCommandOutput, +} from "./commands/DeleteTenantDatabaseCommand"; import { DeregisterDBProxyTargetsCommand, DeregisterDBProxyTargetsCommandInput, @@ -377,6 +387,11 @@ import { DescribeDBSnapshotsCommandInput, DescribeDBSnapshotsCommandOutput, } from "./commands/DescribeDBSnapshotsCommand"; +import { + DescribeDBSnapshotTenantDatabasesCommand, + DescribeDBSnapshotTenantDatabasesCommandInput, + DescribeDBSnapshotTenantDatabasesCommandOutput, +} from "./commands/DescribeDBSnapshotTenantDatabasesCommand"; import { DescribeDBSubnetGroupsCommand, DescribeDBSubnetGroupsCommandInput, @@ -457,6 +472,11 @@ import { DescribeSourceRegionsCommandInput, DescribeSourceRegionsCommandOutput, } from "./commands/DescribeSourceRegionsCommand"; +import { + DescribeTenantDatabasesCommand, + DescribeTenantDatabasesCommandInput, + DescribeTenantDatabasesCommandOutput, +} from "./commands/DescribeTenantDatabasesCommand"; import { DescribeValidDBInstanceModificationsCommand, DescribeValidDBInstanceModificationsCommandInput, @@ -577,6 +597,11 @@ import { ModifyOptionGroupCommandInput, ModifyOptionGroupCommandOutput, } from "./commands/ModifyOptionGroupCommand"; +import { + ModifyTenantDatabaseCommand, + ModifyTenantDatabaseCommandInput, + ModifyTenantDatabaseCommandOutput, +} from "./commands/ModifyTenantDatabaseCommand"; import { PromoteReadReplicaCommand, PromoteReadReplicaCommandInput, @@ -771,6 +796,7 @@ const commands = { CreateGlobalClusterCommand, CreateIntegrationCommand, CreateOptionGroupCommand, + CreateTenantDatabaseCommand, DeleteBlueGreenDeploymentCommand, DeleteCustomDBEngineVersionCommand, DeleteDBClusterCommand, @@ -790,6 +816,7 @@ const commands = { DeleteGlobalClusterCommand, DeleteIntegrationCommand, DeleteOptionGroupCommand, + DeleteTenantDatabaseCommand, DeregisterDBProxyTargetsCommand, DescribeAccountAttributesCommand, DescribeBlueGreenDeploymentsCommand, @@ -815,6 +842,7 @@ const commands = { DescribeDBSecurityGroupsCommand, DescribeDBSnapshotAttributesCommand, DescribeDBSnapshotsCommand, + DescribeDBSnapshotTenantDatabasesCommand, DescribeDBSubnetGroupsCommand, DescribeEngineDefaultClusterParametersCommand, DescribeEngineDefaultParametersCommand, @@ -831,6 +859,7 @@ const commands = { DescribeReservedDBInstancesCommand, DescribeReservedDBInstancesOfferingsCommand, DescribeSourceRegionsCommand, + DescribeTenantDatabasesCommand, DescribeValidDBInstanceModificationsCommand, DownloadDBLogFilePortionCommand, FailoverDBClusterCommand, @@ -855,6 +884,7 @@ const commands = { ModifyEventSubscriptionCommand, ModifyGlobalClusterCommand, ModifyOptionGroupCommand, + ModifyTenantDatabaseCommand, PromoteReadReplicaCommand, PromoteReadReplicaDBClusterCommand, PurchaseReservedDBInstancesOfferingCommand, @@ -1402,6 +1432,23 @@ export interface RDS { cb: (err: any, data?: CreateOptionGroupCommandOutput) => void ): void; + /** + * @see {@link CreateTenantDatabaseCommand} + */ + createTenantDatabase( + args: CreateTenantDatabaseCommandInput, + options?: __HttpHandlerOptions + ): Promise; + createTenantDatabase( + args: CreateTenantDatabaseCommandInput, + cb: (err: any, data?: CreateTenantDatabaseCommandOutput) => void + ): void; + createTenantDatabase( + args: CreateTenantDatabaseCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateTenantDatabaseCommandOutput) => void + ): void; + /** * @see {@link DeleteBlueGreenDeploymentCommand} */ @@ -1716,6 +1763,23 @@ export interface RDS { cb: (err: any, data?: DeleteOptionGroupCommandOutput) => void ): void; + /** + * @see {@link DeleteTenantDatabaseCommand} + */ + deleteTenantDatabase( + args: DeleteTenantDatabaseCommandInput, + options?: __HttpHandlerOptions + ): Promise; + deleteTenantDatabase( + args: DeleteTenantDatabaseCommandInput, + cb: (err: any, data?: DeleteTenantDatabaseCommandOutput) => void + ): void; + deleteTenantDatabase( + args: DeleteTenantDatabaseCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteTenantDatabaseCommandOutput) => void + ): void; + /** * @see {@link DeregisterDBProxyTargetsCommand} */ @@ -2141,6 +2205,23 @@ export interface RDS { cb: (err: any, data?: DescribeDBSnapshotsCommandOutput) => void ): void; + /** + * @see {@link DescribeDBSnapshotTenantDatabasesCommand} + */ + describeDBSnapshotTenantDatabases( + args: DescribeDBSnapshotTenantDatabasesCommandInput, + options?: __HttpHandlerOptions + ): Promise; + describeDBSnapshotTenantDatabases( + args: DescribeDBSnapshotTenantDatabasesCommandInput, + cb: (err: any, data?: DescribeDBSnapshotTenantDatabasesCommandOutput) => void + ): void; + describeDBSnapshotTenantDatabases( + args: DescribeDBSnapshotTenantDatabasesCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DescribeDBSnapshotTenantDatabasesCommandOutput) => void + ): void; + /** * @see {@link DescribeDBSubnetGroupsCommand} */ @@ -2410,6 +2491,23 @@ export interface RDS { cb: (err: any, data?: DescribeSourceRegionsCommandOutput) => void ): void; + /** + * @see {@link DescribeTenantDatabasesCommand} + */ + describeTenantDatabases( + args: DescribeTenantDatabasesCommandInput, + options?: __HttpHandlerOptions + ): Promise; + describeTenantDatabases( + args: DescribeTenantDatabasesCommandInput, + cb: (err: any, data?: DescribeTenantDatabasesCommandOutput) => void + ): void; + describeTenantDatabases( + args: DescribeTenantDatabasesCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DescribeTenantDatabasesCommandOutput) => void + ): void; + /** * @see {@link DescribeValidDBInstanceModificationsCommand} */ @@ -2809,6 +2907,23 @@ export interface RDS { cb: (err: any, data?: ModifyOptionGroupCommandOutput) => void ): void; + /** + * @see {@link ModifyTenantDatabaseCommand} + */ + modifyTenantDatabase( + args: ModifyTenantDatabaseCommandInput, + options?: __HttpHandlerOptions + ): Promise; + modifyTenantDatabase( + args: ModifyTenantDatabaseCommandInput, + cb: (err: any, data?: ModifyTenantDatabaseCommandOutput) => void + ): void; + modifyTenantDatabase( + args: ModifyTenantDatabaseCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ModifyTenantDatabaseCommandOutput) => void + ): void; + /** * @see {@link PromoteReadReplicaCommand} */ diff --git a/clients/client-rds/src/RDSClient.ts b/clients/client-rds/src/RDSClient.ts index 0a093fdd1da12..e2299d00645e9 100644 --- a/clients/client-rds/src/RDSClient.ts +++ b/clients/client-rds/src/RDSClient.ts @@ -138,6 +138,10 @@ import { } from "./commands/CreateGlobalClusterCommand"; import { CreateIntegrationCommandInput, CreateIntegrationCommandOutput } from "./commands/CreateIntegrationCommand"; import { CreateOptionGroupCommandInput, CreateOptionGroupCommandOutput } from "./commands/CreateOptionGroupCommand"; +import { + CreateTenantDatabaseCommandInput, + CreateTenantDatabaseCommandOutput, +} from "./commands/CreateTenantDatabaseCommand"; import { DeleteBlueGreenDeploymentCommandInput, DeleteBlueGreenDeploymentCommandOutput, @@ -196,6 +200,10 @@ import { } from "./commands/DeleteGlobalClusterCommand"; import { DeleteIntegrationCommandInput, DeleteIntegrationCommandOutput } from "./commands/DeleteIntegrationCommand"; import { DeleteOptionGroupCommandInput, DeleteOptionGroupCommandOutput } from "./commands/DeleteOptionGroupCommand"; +import { + DeleteTenantDatabaseCommandInput, + DeleteTenantDatabaseCommandOutput, +} from "./commands/DeleteTenantDatabaseCommand"; import { DeregisterDBProxyTargetsCommandInput, DeregisterDBProxyTargetsCommandOutput, @@ -287,6 +295,10 @@ import { DescribeDBSnapshotsCommandInput, DescribeDBSnapshotsCommandOutput, } from "./commands/DescribeDBSnapshotsCommand"; +import { + DescribeDBSnapshotTenantDatabasesCommandInput, + DescribeDBSnapshotTenantDatabasesCommandOutput, +} from "./commands/DescribeDBSnapshotTenantDatabasesCommand"; import { DescribeDBSubnetGroupsCommandInput, DescribeDBSubnetGroupsCommandOutput, @@ -348,6 +360,10 @@ import { DescribeSourceRegionsCommandInput, DescribeSourceRegionsCommandOutput, } from "./commands/DescribeSourceRegionsCommand"; +import { + DescribeTenantDatabasesCommandInput, + DescribeTenantDatabasesCommandOutput, +} from "./commands/DescribeTenantDatabasesCommand"; import { DescribeValidDBInstanceModificationsCommandInput, DescribeValidDBInstanceModificationsCommandOutput, @@ -423,6 +439,10 @@ import { ModifyGlobalClusterCommandOutput, } from "./commands/ModifyGlobalClusterCommand"; import { ModifyOptionGroupCommandInput, ModifyOptionGroupCommandOutput } from "./commands/ModifyOptionGroupCommand"; +import { + ModifyTenantDatabaseCommandInput, + ModifyTenantDatabaseCommandOutput, +} from "./commands/ModifyTenantDatabaseCommand"; import { PromoteReadReplicaCommandInput, PromoteReadReplicaCommandOutput } from "./commands/PromoteReadReplicaCommand"; import { PromoteReadReplicaDBClusterCommandInput, @@ -570,6 +590,7 @@ export type ServiceInputTypes = | CreateGlobalClusterCommandInput | CreateIntegrationCommandInput | CreateOptionGroupCommandInput + | CreateTenantDatabaseCommandInput | DeleteBlueGreenDeploymentCommandInput | DeleteCustomDBEngineVersionCommandInput | DeleteDBClusterAutomatedBackupCommandInput @@ -589,6 +610,7 @@ export type ServiceInputTypes = | DeleteGlobalClusterCommandInput | DeleteIntegrationCommandInput | DeleteOptionGroupCommandInput + | DeleteTenantDatabaseCommandInput | DeregisterDBProxyTargetsCommandInput | DescribeAccountAttributesCommandInput | DescribeBlueGreenDeploymentsCommandInput @@ -613,6 +635,7 @@ export type ServiceInputTypes = | DescribeDBProxyTargetsCommandInput | DescribeDBSecurityGroupsCommandInput | DescribeDBSnapshotAttributesCommandInput + | DescribeDBSnapshotTenantDatabasesCommandInput | DescribeDBSnapshotsCommandInput | DescribeDBSubnetGroupsCommandInput | DescribeEngineDefaultClusterParametersCommandInput @@ -630,6 +653,7 @@ export type ServiceInputTypes = | DescribeReservedDBInstancesCommandInput | DescribeReservedDBInstancesOfferingsCommandInput | DescribeSourceRegionsCommandInput + | DescribeTenantDatabasesCommandInput | DescribeValidDBInstanceModificationsCommandInput | DownloadDBLogFilePortionCommandInput | FailoverDBClusterCommandInput @@ -654,6 +678,7 @@ export type ServiceInputTypes = | ModifyEventSubscriptionCommandInput | ModifyGlobalClusterCommandInput | ModifyOptionGroupCommandInput + | ModifyTenantDatabaseCommandInput | PromoteReadReplicaCommandInput | PromoteReadReplicaDBClusterCommandInput | PurchaseReservedDBInstancesOfferingCommandInput @@ -722,6 +747,7 @@ export type ServiceOutputTypes = | CreateGlobalClusterCommandOutput | CreateIntegrationCommandOutput | CreateOptionGroupCommandOutput + | CreateTenantDatabaseCommandOutput | DeleteBlueGreenDeploymentCommandOutput | DeleteCustomDBEngineVersionCommandOutput | DeleteDBClusterAutomatedBackupCommandOutput @@ -741,6 +767,7 @@ export type ServiceOutputTypes = | DeleteGlobalClusterCommandOutput | DeleteIntegrationCommandOutput | DeleteOptionGroupCommandOutput + | DeleteTenantDatabaseCommandOutput | DeregisterDBProxyTargetsCommandOutput | DescribeAccountAttributesCommandOutput | DescribeBlueGreenDeploymentsCommandOutput @@ -765,6 +792,7 @@ export type ServiceOutputTypes = | DescribeDBProxyTargetsCommandOutput | DescribeDBSecurityGroupsCommandOutput | DescribeDBSnapshotAttributesCommandOutput + | DescribeDBSnapshotTenantDatabasesCommandOutput | DescribeDBSnapshotsCommandOutput | DescribeDBSubnetGroupsCommandOutput | DescribeEngineDefaultClusterParametersCommandOutput @@ -782,6 +810,7 @@ export type ServiceOutputTypes = | DescribeReservedDBInstancesCommandOutput | DescribeReservedDBInstancesOfferingsCommandOutput | DescribeSourceRegionsCommandOutput + | DescribeTenantDatabasesCommandOutput | DescribeValidDBInstanceModificationsCommandOutput | DownloadDBLogFilePortionCommandOutput | FailoverDBClusterCommandOutput @@ -806,6 +835,7 @@ export type ServiceOutputTypes = | ModifyEventSubscriptionCommandOutput | ModifyGlobalClusterCommandOutput | ModifyOptionGroupCommandOutput + | ModifyTenantDatabaseCommandOutput | PromoteReadReplicaCommandOutput | PromoteReadReplicaDBClusterCommandOutput | PurchaseReservedDBInstancesOfferingCommandOutput diff --git a/clients/client-rds/src/commands/AddTagsToResourceCommand.ts b/clients/client-rds/src/commands/AddTagsToResourceCommand.ts index c32332c8b0827..2e662fc89888f 100644 --- a/clients/client-rds/src/commands/AddTagsToResourceCommand.ts +++ b/clients/client-rds/src/commands/AddTagsToResourceCommand.ts @@ -89,9 +89,15 @@ export interface AddTagsToResourceCommandOutput extends __MetadataBearer {} *

* DBSnapshotIdentifier doesn't refer to an existing DB snapshot.

* + * @throws {@link DBSnapshotTenantDatabaseNotFoundFault} (client fault) + *

The specified snapshot tenant database wasn't found.

+ * * @throws {@link IntegrationNotFoundFault} (client fault) *

The specified integration could not be found.

* + * @throws {@link TenantDatabaseNotFoundFault} (client fault) + *

The specified tenant database wasn't found in the DB instance.

+ * * @throws {@link RDSServiceException} *

Base exception class for all service exceptions from RDS service.

* diff --git a/clients/client-rds/src/commands/CopyDBSnapshotCommand.ts b/clients/client-rds/src/commands/CopyDBSnapshotCommand.ts index 434002d9ee765..af33eaff946ac 100644 --- a/clients/client-rds/src/commands/CopyDBSnapshotCommand.ts +++ b/clients/client-rds/src/commands/CopyDBSnapshotCommand.ts @@ -116,6 +116,7 @@ export interface CopyDBSnapshotCommandOutput extends CopyDBSnapshotResult, __Met * // StorageThroughput: Number("int"), * // DBSystemId: "STRING_VALUE", * // DedicatedLogVolume: true || false, + * // MultiTenant: true || false, * // }, * // }; * diff --git a/clients/client-rds/src/commands/CreateDBInstanceCommand.ts b/clients/client-rds/src/commands/CreateDBInstanceCommand.ts index 7bf3e904dcc91..f46ed472dcd2f 100644 --- a/clients/client-rds/src/commands/CreateDBInstanceCommand.ts +++ b/clients/client-rds/src/commands/CreateDBInstanceCommand.ts @@ -132,6 +132,7 @@ export interface CreateDBInstanceCommandOutput extends CreateDBInstanceResult, _ * CACertificateIdentifier: "STRING_VALUE", * DBSystemId: "STRING_VALUE", * DedicatedLogVolume: true || false, + * MultiTenant: true || false, * }; * const command = new CreateDBInstanceCommand(input); * const response = await client.send(command); @@ -229,6 +230,7 @@ export interface CreateDBInstanceCommandOutput extends CreateDBInstanceResult, _ * // StorageThroughput: Number("int"), * // Engine: "STRING_VALUE", * // DedicatedLogVolume: true || false, + * // MultiTenant: true || false, * // }, * // LatestRestorableTime: new Date("TIMESTAMP"), * // MultiAZ: true || false, @@ -356,6 +358,7 @@ export interface CreateDBInstanceCommandOutput extends CreateDBInstanceResult, _ * // PercentProgress: "STRING_VALUE", * // DedicatedLogVolume: true || false, * // IsStorageConfigUpgradeAvailable: true || false, + * // MultiTenant: true || false, * // }, * // }; * @@ -444,6 +447,10 @@ export interface CreateDBInstanceCommandOutput extends CreateDBInstanceResult, _ * @throws {@link StorageTypeNotSupportedFault} (client fault) *

The specified StorageType can't be associated with the DB instance.

* + * @throws {@link TenantDatabaseQuotaExceededFault} (client fault) + *

You attempted to create more tenant databases than are permitted in your Amazon Web Services + * account.

+ * * @throws {@link RDSServiceException} *

Base exception class for all service exceptions from RDS service.

* diff --git a/clients/client-rds/src/commands/CreateDBInstanceReadReplicaCommand.ts b/clients/client-rds/src/commands/CreateDBInstanceReadReplicaCommand.ts index 55e51030bd5fd..9e7da66876265 100644 --- a/clients/client-rds/src/commands/CreateDBInstanceReadReplicaCommand.ts +++ b/clients/client-rds/src/commands/CreateDBInstanceReadReplicaCommand.ts @@ -215,6 +215,7 @@ export interface CreateDBInstanceReadReplicaCommandOutput extends CreateDBInstan * // StorageThroughput: Number("int"), * // Engine: "STRING_VALUE", * // DedicatedLogVolume: true || false, + * // MultiTenant: true || false, * // }, * // LatestRestorableTime: new Date("TIMESTAMP"), * // MultiAZ: true || false, @@ -342,6 +343,7 @@ export interface CreateDBInstanceReadReplicaCommandOutput extends CreateDBInstan * // PercentProgress: "STRING_VALUE", * // DedicatedLogVolume: true || false, * // IsStorageConfigUpgradeAvailable: true || false, + * // MultiTenant: true || false, * // }, * // }; * @@ -432,6 +434,10 @@ export interface CreateDBInstanceReadReplicaCommandOutput extends CreateDBInstan * @throws {@link StorageTypeNotSupportedFault} (client fault) *

The specified StorageType can't be associated with the DB instance.

* + * @throws {@link TenantDatabaseQuotaExceededFault} (client fault) + *

You attempted to create more tenant databases than are permitted in your Amazon Web Services + * account.

+ * * @throws {@link RDSServiceException} *

Base exception class for all service exceptions from RDS service.

* diff --git a/clients/client-rds/src/commands/CreateDBSnapshotCommand.ts b/clients/client-rds/src/commands/CreateDBSnapshotCommand.ts index 09eea47fe5403..f6309fc17bc01 100644 --- a/clients/client-rds/src/commands/CreateDBSnapshotCommand.ts +++ b/clients/client-rds/src/commands/CreateDBSnapshotCommand.ts @@ -104,6 +104,7 @@ export interface CreateDBSnapshotCommandOutput extends CreateDBSnapshotResult, _ * // StorageThroughput: Number("int"), * // DBSystemId: "STRING_VALUE", * // DedicatedLogVolume: true || false, + * // MultiTenant: true || false, * // }, * // }; * diff --git a/clients/client-rds/src/commands/CreateTenantDatabaseCommand.ts b/clients/client-rds/src/commands/CreateTenantDatabaseCommand.ts new file mode 100644 index 0000000000000..39d9ab78e16b1 --- /dev/null +++ b/clients/client-rds/src/commands/CreateTenantDatabaseCommand.ts @@ -0,0 +1,201 @@ +// smithy-typescript generated code +import { EndpointParameterInstructions, getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; +import { Command as $Command } from "@smithy/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, + SMITHY_CONTEXT_KEY, +} from "@smithy/types"; + +import { + CreateTenantDatabaseMessage, + CreateTenantDatabaseMessageFilterSensitiveLog, + CreateTenantDatabaseResult, + CreateTenantDatabaseResultFilterSensitiveLog, +} from "../models/models_0"; +import { de_CreateTenantDatabaseCommand, se_CreateTenantDatabaseCommand } from "../protocols/Aws_query"; +import { RDSClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../RDSClient"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link CreateTenantDatabaseCommand}. + */ +export interface CreateTenantDatabaseCommandInput extends CreateTenantDatabaseMessage {} +/** + * @public + * + * The output of {@link CreateTenantDatabaseCommand}. + */ +export interface CreateTenantDatabaseCommandOutput extends CreateTenantDatabaseResult, __MetadataBearer {} + +/** + * @public + *

Creates a tenant database in a DB instance that uses the multi-tenant configuration. + * Only RDS for Oracle container database (CDB) instances are supported.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { RDSClient, CreateTenantDatabaseCommand } from "@aws-sdk/client-rds"; // ES Modules import + * // const { RDSClient, CreateTenantDatabaseCommand } = require("@aws-sdk/client-rds"); // CommonJS import + * const client = new RDSClient(config); + * const input = { // CreateTenantDatabaseMessage + * DBInstanceIdentifier: "STRING_VALUE", // required + * TenantDBName: "STRING_VALUE", // required + * MasterUsername: "STRING_VALUE", // required + * MasterUserPassword: "STRING_VALUE", // required + * CharacterSetName: "STRING_VALUE", + * NcharCharacterSetName: "STRING_VALUE", + * Tags: [ // TagList + * { // Tag + * Key: "STRING_VALUE", + * Value: "STRING_VALUE", + * }, + * ], + * }; + * const command = new CreateTenantDatabaseCommand(input); + * const response = await client.send(command); + * // { // CreateTenantDatabaseResult + * // TenantDatabase: { // TenantDatabase + * // TenantDatabaseCreateTime: new Date("TIMESTAMP"), + * // DBInstanceIdentifier: "STRING_VALUE", + * // TenantDBName: "STRING_VALUE", + * // Status: "STRING_VALUE", + * // MasterUsername: "STRING_VALUE", + * // DbiResourceId: "STRING_VALUE", + * // TenantDatabaseResourceId: "STRING_VALUE", + * // TenantDatabaseARN: "STRING_VALUE", + * // CharacterSetName: "STRING_VALUE", + * // NcharCharacterSetName: "STRING_VALUE", + * // DeletionProtection: true || false, + * // PendingModifiedValues: { // TenantDatabasePendingModifiedValues + * // MasterUserPassword: "STRING_VALUE", + * // TenantDBName: "STRING_VALUE", + * // }, + * // TagList: [ // TagList + * // { // Tag + * // Key: "STRING_VALUE", + * // Value: "STRING_VALUE", + * // }, + * // ], + * // }, + * // }; + * + * ``` + * + * @param CreateTenantDatabaseCommandInput - {@link CreateTenantDatabaseCommandInput} + * @returns {@link CreateTenantDatabaseCommandOutput} + * @see {@link CreateTenantDatabaseCommandInput} for command's `input` shape. + * @see {@link CreateTenantDatabaseCommandOutput} for command's `response` shape. + * @see {@link RDSClientResolvedConfig | config} for RDSClient's `config` shape. + * + * @throws {@link DBInstanceNotFoundFault} (client fault) + *

+ * DBInstanceIdentifier doesn't refer to an existing DB instance.

+ * + * @throws {@link InvalidDBInstanceStateFault} (client fault) + *

The DB instance isn't in a valid state.

+ * + * @throws {@link TenantDatabaseAlreadyExistsFault} (client fault) + *

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.

+ * + * @throws {@link TenantDatabaseQuotaExceededFault} (client fault) + *

You attempted to create more tenant databases than are permitted in your Amazon Web Services + * account.

+ * + * @throws {@link RDSServiceException} + *

Base exception class for all service exceptions from RDS service.

+ * + */ +export class CreateTenantDatabaseCommand extends $Command< + CreateTenantDatabaseCommandInput, + CreateTenantDatabaseCommandOutput, + RDSClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + public static getEndpointParameterInstructions(): EndpointParameterInstructions { + return { + UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" }, + Endpoint: { type: "builtInParams", name: "endpoint" }, + Region: { type: "builtInParams", name: "region" }, + UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" }, + }; + } + + /** + * @public + */ + constructor(readonly input: CreateTenantDatabaseCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: RDSClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use( + getEndpointPlugin(configuration, CreateTenantDatabaseCommand.getEndpointParameterInstructions()) + ); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "RDSClient"; + const commandName = "CreateTenantDatabaseCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: CreateTenantDatabaseMessageFilterSensitiveLog, + outputFilterSensitiveLog: CreateTenantDatabaseResultFilterSensitiveLog, + [SMITHY_CONTEXT_KEY]: { + service: "AmazonRDSv19", + operation: "CreateTenantDatabase", + }, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + /** + * @internal + */ + private serialize(input: CreateTenantDatabaseCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return se_CreateTenantDatabaseCommand(input, context); + } + + /** + * @internal + */ + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return de_CreateTenantDatabaseCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-rds/src/commands/DeleteDBInstanceAutomatedBackupCommand.ts b/clients/client-rds/src/commands/DeleteDBInstanceAutomatedBackupCommand.ts index 16e3360f67c0e..0450f056ad38b 100644 --- a/clients/client-rds/src/commands/DeleteDBInstanceAutomatedBackupCommand.ts +++ b/clients/client-rds/src/commands/DeleteDBInstanceAutomatedBackupCommand.ts @@ -94,6 +94,7 @@ export interface DeleteDBInstanceAutomatedBackupCommandOutput * // StorageThroughput: Number("int"), * // AwsBackupRecoveryPointArn: "STRING_VALUE", * // DedicatedLogVolume: true || false, + * // MultiTenant: true || false, * // }, * // }; * diff --git a/clients/client-rds/src/commands/DeleteDBInstanceCommand.ts b/clients/client-rds/src/commands/DeleteDBInstanceCommand.ts index b5f9225fd05d5..a739a92ed49a7 100644 --- a/clients/client-rds/src/commands/DeleteDBInstanceCommand.ts +++ b/clients/client-rds/src/commands/DeleteDBInstanceCommand.ts @@ -168,6 +168,7 @@ export interface DeleteDBInstanceCommandOutput extends DeleteDBInstanceResult, _ * // StorageThroughput: Number("int"), * // Engine: "STRING_VALUE", * // DedicatedLogVolume: true || false, + * // MultiTenant: true || false, * // }, * // LatestRestorableTime: new Date("TIMESTAMP"), * // MultiAZ: true || false, @@ -295,6 +296,7 @@ export interface DeleteDBInstanceCommandOutput extends DeleteDBInstanceResult, _ * // PercentProgress: "STRING_VALUE", * // DedicatedLogVolume: true || false, * // IsStorageConfigUpgradeAvailable: true || false, + * // MultiTenant: true || false, * // }, * // }; * diff --git a/clients/client-rds/src/commands/DeleteDBSnapshotCommand.ts b/clients/client-rds/src/commands/DeleteDBSnapshotCommand.ts index 54c6db9604fd7..42fd231fb0395 100644 --- a/clients/client-rds/src/commands/DeleteDBSnapshotCommand.ts +++ b/clients/client-rds/src/commands/DeleteDBSnapshotCommand.ts @@ -100,6 +100,7 @@ export interface DeleteDBSnapshotCommandOutput extends DeleteDBSnapshotResult, _ * // StorageThroughput: Number("int"), * // DBSystemId: "STRING_VALUE", * // DedicatedLogVolume: true || false, + * // MultiTenant: true || false, * // }, * // }; * diff --git a/clients/client-rds/src/commands/DeleteTenantDatabaseCommand.ts b/clients/client-rds/src/commands/DeleteTenantDatabaseCommand.ts new file mode 100644 index 0000000000000..9dd22bebe28cf --- /dev/null +++ b/clients/client-rds/src/commands/DeleteTenantDatabaseCommand.ts @@ -0,0 +1,189 @@ +// smithy-typescript generated code +import { EndpointParameterInstructions, getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; +import { Command as $Command } from "@smithy/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, + SMITHY_CONTEXT_KEY, +} from "@smithy/types"; + +import { + DeleteTenantDatabaseMessage, + DeleteTenantDatabaseResult, + DeleteTenantDatabaseResultFilterSensitiveLog, +} from "../models/models_0"; +import { de_DeleteTenantDatabaseCommand, se_DeleteTenantDatabaseCommand } from "../protocols/Aws_query"; +import { RDSClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../RDSClient"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link DeleteTenantDatabaseCommand}. + */ +export interface DeleteTenantDatabaseCommandInput extends DeleteTenantDatabaseMessage {} +/** + * @public + * + * The output of {@link DeleteTenantDatabaseCommand}. + */ +export interface DeleteTenantDatabaseCommandOutput extends DeleteTenantDatabaseResult, __MetadataBearer {} + +/** + * @public + *

Deletes a tenant database from your DB instance. This command only applies to RDS for + * Oracle container database (CDB) instances.

+ *

You can't delete a tenant database when it is the only tenant in the DB + * instance.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { RDSClient, DeleteTenantDatabaseCommand } from "@aws-sdk/client-rds"; // ES Modules import + * // const { RDSClient, DeleteTenantDatabaseCommand } = require("@aws-sdk/client-rds"); // CommonJS import + * const client = new RDSClient(config); + * const input = { // DeleteTenantDatabaseMessage + * DBInstanceIdentifier: "STRING_VALUE", // required + * TenantDBName: "STRING_VALUE", // required + * SkipFinalSnapshot: true || false, + * FinalDBSnapshotIdentifier: "STRING_VALUE", + * }; + * const command = new DeleteTenantDatabaseCommand(input); + * const response = await client.send(command); + * // { // DeleteTenantDatabaseResult + * // TenantDatabase: { // TenantDatabase + * // TenantDatabaseCreateTime: new Date("TIMESTAMP"), + * // DBInstanceIdentifier: "STRING_VALUE", + * // TenantDBName: "STRING_VALUE", + * // Status: "STRING_VALUE", + * // MasterUsername: "STRING_VALUE", + * // DbiResourceId: "STRING_VALUE", + * // TenantDatabaseResourceId: "STRING_VALUE", + * // TenantDatabaseARN: "STRING_VALUE", + * // CharacterSetName: "STRING_VALUE", + * // NcharCharacterSetName: "STRING_VALUE", + * // DeletionProtection: true || false, + * // PendingModifiedValues: { // TenantDatabasePendingModifiedValues + * // MasterUserPassword: "STRING_VALUE", + * // TenantDBName: "STRING_VALUE", + * // }, + * // TagList: [ // TagList + * // { // Tag + * // Key: "STRING_VALUE", + * // Value: "STRING_VALUE", + * // }, + * // ], + * // }, + * // }; + * + * ``` + * + * @param DeleteTenantDatabaseCommandInput - {@link DeleteTenantDatabaseCommandInput} + * @returns {@link DeleteTenantDatabaseCommandOutput} + * @see {@link DeleteTenantDatabaseCommandInput} for command's `input` shape. + * @see {@link DeleteTenantDatabaseCommandOutput} for command's `response` shape. + * @see {@link RDSClientResolvedConfig | config} for RDSClient's `config` shape. + * + * @throws {@link DBInstanceNotFoundFault} (client fault) + *

+ * DBInstanceIdentifier doesn't refer to an existing DB instance.

+ * + * @throws {@link InvalidDBInstanceStateFault} (client fault) + *

The DB instance isn't in a valid state.

+ * + * @throws {@link TenantDatabaseNotFoundFault} (client fault) + *

The specified tenant database wasn't found in the DB instance.

+ * + * @throws {@link RDSServiceException} + *

Base exception class for all service exceptions from RDS service.

+ * + */ +export class DeleteTenantDatabaseCommand extends $Command< + DeleteTenantDatabaseCommandInput, + DeleteTenantDatabaseCommandOutput, + RDSClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + public static getEndpointParameterInstructions(): EndpointParameterInstructions { + return { + UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" }, + Endpoint: { type: "builtInParams", name: "endpoint" }, + Region: { type: "builtInParams", name: "region" }, + UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" }, + }; + } + + /** + * @public + */ + constructor(readonly input: DeleteTenantDatabaseCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: RDSClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use( + getEndpointPlugin(configuration, DeleteTenantDatabaseCommand.getEndpointParameterInstructions()) + ); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "RDSClient"; + const commandName = "DeleteTenantDatabaseCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: (_: any) => _, + outputFilterSensitiveLog: DeleteTenantDatabaseResultFilterSensitiveLog, + [SMITHY_CONTEXT_KEY]: { + service: "AmazonRDSv19", + operation: "DeleteTenantDatabase", + }, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + /** + * @internal + */ + private serialize(input: DeleteTenantDatabaseCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return se_DeleteTenantDatabaseCommand(input, context); + } + + /** + * @internal + */ + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return de_DeleteTenantDatabaseCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-rds/src/commands/DescribeDBClusterAutomatedBackupsCommand.ts b/clients/client-rds/src/commands/DescribeDBClusterAutomatedBackupsCommand.ts index f5d18dec8374f..b5f7331566be4 100644 --- a/clients/client-rds/src/commands/DescribeDBClusterAutomatedBackupsCommand.ts +++ b/clients/client-rds/src/commands/DescribeDBClusterAutomatedBackupsCommand.ts @@ -14,7 +14,8 @@ import { SMITHY_CONTEXT_KEY, } from "@smithy/types"; -import { DBClusterAutomatedBackupMessage, DescribeDBClusterAutomatedBackupsMessage } from "../models/models_0"; +import { DBClusterAutomatedBackupMessage } from "../models/models_0"; +import { DescribeDBClusterAutomatedBackupsMessage } from "../models/models_1"; import { de_DescribeDBClusterAutomatedBackupsCommand, se_DescribeDBClusterAutomatedBackupsCommand, diff --git a/clients/client-rds/src/commands/DescribeDBClusterBacktracksCommand.ts b/clients/client-rds/src/commands/DescribeDBClusterBacktracksCommand.ts index 2436ad106bbd6..3aaf240db3d1d 100644 --- a/clients/client-rds/src/commands/DescribeDBClusterBacktracksCommand.ts +++ b/clients/client-rds/src/commands/DescribeDBClusterBacktracksCommand.ts @@ -14,7 +14,7 @@ import { SMITHY_CONTEXT_KEY, } from "@smithy/types"; -import { DBClusterBacktrackMessage, DescribeDBClusterBacktracksMessage } from "../models/models_0"; +import { DBClusterBacktrackMessage, DescribeDBClusterBacktracksMessage } from "../models/models_1"; import { de_DescribeDBClusterBacktracksCommand, se_DescribeDBClusterBacktracksCommand } from "../protocols/Aws_query"; import { RDSClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../RDSClient"; diff --git a/clients/client-rds/src/commands/DescribeDBClusterEndpointsCommand.ts b/clients/client-rds/src/commands/DescribeDBClusterEndpointsCommand.ts index f437a6bbf1846..7814c7115cce1 100644 --- a/clients/client-rds/src/commands/DescribeDBClusterEndpointsCommand.ts +++ b/clients/client-rds/src/commands/DescribeDBClusterEndpointsCommand.ts @@ -14,7 +14,7 @@ import { SMITHY_CONTEXT_KEY, } from "@smithy/types"; -import { DBClusterEndpointMessage, DescribeDBClusterEndpointsMessage } from "../models/models_0"; +import { DBClusterEndpointMessage, DescribeDBClusterEndpointsMessage } from "../models/models_1"; import { de_DescribeDBClusterEndpointsCommand, se_DescribeDBClusterEndpointsCommand } from "../protocols/Aws_query"; import { RDSClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../RDSClient"; diff --git a/clients/client-rds/src/commands/DescribeDBClusterParameterGroupsCommand.ts b/clients/client-rds/src/commands/DescribeDBClusterParameterGroupsCommand.ts index ba32409297d02..03466026587bc 100644 --- a/clients/client-rds/src/commands/DescribeDBClusterParameterGroupsCommand.ts +++ b/clients/client-rds/src/commands/DescribeDBClusterParameterGroupsCommand.ts @@ -14,7 +14,7 @@ import { SMITHY_CONTEXT_KEY, } from "@smithy/types"; -import { DBClusterParameterGroupsMessage, DescribeDBClusterParameterGroupsMessage } from "../models/models_0"; +import { DBClusterParameterGroupsMessage, DescribeDBClusterParameterGroupsMessage } from "../models/models_1"; import { de_DescribeDBClusterParameterGroupsCommand, se_DescribeDBClusterParameterGroupsCommand, diff --git a/clients/client-rds/src/commands/DescribeDBInstanceAutomatedBackupsCommand.ts b/clients/client-rds/src/commands/DescribeDBInstanceAutomatedBackupsCommand.ts index 67c3f31eb29f1..e735dc9683885 100644 --- a/clients/client-rds/src/commands/DescribeDBInstanceAutomatedBackupsCommand.ts +++ b/clients/client-rds/src/commands/DescribeDBInstanceAutomatedBackupsCommand.ts @@ -113,6 +113,7 @@ export interface DescribeDBInstanceAutomatedBackupsCommandOutput * // StorageThroughput: Number("int"), * // AwsBackupRecoveryPointArn: "STRING_VALUE", * // DedicatedLogVolume: true || false, + * // MultiTenant: true || false, * // }, * // ], * // }; diff --git a/clients/client-rds/src/commands/DescribeDBInstancesCommand.ts b/clients/client-rds/src/commands/DescribeDBInstancesCommand.ts index 3eb7f80be81b4..b7b5cf914c9af 100644 --- a/clients/client-rds/src/commands/DescribeDBInstancesCommand.ts +++ b/clients/client-rds/src/commands/DescribeDBInstancesCommand.ts @@ -158,6 +158,7 @@ export interface DescribeDBInstancesCommandOutput extends DBInstanceMessage, __M * // StorageThroughput: Number("int"), * // Engine: "STRING_VALUE", * // DedicatedLogVolume: true || false, + * // MultiTenant: true || false, * // }, * // LatestRestorableTime: new Date("TIMESTAMP"), * // MultiAZ: true || false, @@ -285,6 +286,7 @@ export interface DescribeDBInstancesCommandOutput extends DBInstanceMessage, __M * // PercentProgress: "STRING_VALUE", * // DedicatedLogVolume: true || false, * // IsStorageConfigUpgradeAvailable: true || false, + * // MultiTenant: true || false, * // }, * // ], * // }; diff --git a/clients/client-rds/src/commands/DescribeDBSnapshotTenantDatabasesCommand.ts b/clients/client-rds/src/commands/DescribeDBSnapshotTenantDatabasesCommand.ts new file mode 100644 index 0000000000000..5c984a6343e66 --- /dev/null +++ b/clients/client-rds/src/commands/DescribeDBSnapshotTenantDatabasesCommand.ts @@ -0,0 +1,202 @@ +// smithy-typescript generated code +import { EndpointParameterInstructions, getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; +import { Command as $Command } from "@smithy/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, + SMITHY_CONTEXT_KEY, +} from "@smithy/types"; + +import { DBSnapshotTenantDatabasesMessage, DescribeDBSnapshotTenantDatabasesMessage } from "../models/models_1"; +import { + de_DescribeDBSnapshotTenantDatabasesCommand, + se_DescribeDBSnapshotTenantDatabasesCommand, +} from "../protocols/Aws_query"; +import { RDSClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../RDSClient"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link DescribeDBSnapshotTenantDatabasesCommand}. + */ +export interface DescribeDBSnapshotTenantDatabasesCommandInput extends DescribeDBSnapshotTenantDatabasesMessage {} +/** + * @public + * + * The output of {@link DescribeDBSnapshotTenantDatabasesCommand}. + */ +export interface DescribeDBSnapshotTenantDatabasesCommandOutput + extends DBSnapshotTenantDatabasesMessage, + __MetadataBearer {} + +/** + * @public + *

Describes the tenant databases that exist in a DB snapshot. This command only applies + * to RDS for Oracle DB instances in the multi-tenant configuration.

+ *

You can use this command to inspect the tenant databases within a snapshot before + * restoring it. You can't directly interact with the tenant databases in a DB snapshot. If + * you restore a snapshot that was taken from DB instance using the multi-tenant + * configuration, you restore all its tenant databases.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { RDSClient, DescribeDBSnapshotTenantDatabasesCommand } from "@aws-sdk/client-rds"; // ES Modules import + * // const { RDSClient, DescribeDBSnapshotTenantDatabasesCommand } = require("@aws-sdk/client-rds"); // CommonJS import + * const client = new RDSClient(config); + * const input = { // DescribeDBSnapshotTenantDatabasesMessage + * DBInstanceIdentifier: "STRING_VALUE", + * DBSnapshotIdentifier: "STRING_VALUE", + * SnapshotType: "STRING_VALUE", + * Filters: [ // FilterList + * { // Filter + * Name: "STRING_VALUE", // required + * Values: [ // FilterValueList // required + * "STRING_VALUE", + * ], + * }, + * ], + * MaxRecords: Number("int"), + * Marker: "STRING_VALUE", + * DbiResourceId: "STRING_VALUE", + * }; + * const command = new DescribeDBSnapshotTenantDatabasesCommand(input); + * const response = await client.send(command); + * // { // DBSnapshotTenantDatabasesMessage + * // Marker: "STRING_VALUE", + * // DBSnapshotTenantDatabases: [ // DBSnapshotTenantDatabasesList + * // { // DBSnapshotTenantDatabase + * // DBSnapshotIdentifier: "STRING_VALUE", + * // DBInstanceIdentifier: "STRING_VALUE", + * // DbiResourceId: "STRING_VALUE", + * // EngineName: "STRING_VALUE", + * // SnapshotType: "STRING_VALUE", + * // TenantDatabaseCreateTime: new Date("TIMESTAMP"), + * // TenantDBName: "STRING_VALUE", + * // MasterUsername: "STRING_VALUE", + * // TenantDatabaseResourceId: "STRING_VALUE", + * // CharacterSetName: "STRING_VALUE", + * // DBSnapshotTenantDatabaseARN: "STRING_VALUE", + * // NcharCharacterSetName: "STRING_VALUE", + * // TagList: [ // TagList + * // { // Tag + * // Key: "STRING_VALUE", + * // Value: "STRING_VALUE", + * // }, + * // ], + * // }, + * // ], + * // }; + * + * ``` + * + * @param DescribeDBSnapshotTenantDatabasesCommandInput - {@link DescribeDBSnapshotTenantDatabasesCommandInput} + * @returns {@link DescribeDBSnapshotTenantDatabasesCommandOutput} + * @see {@link DescribeDBSnapshotTenantDatabasesCommandInput} for command's `input` shape. + * @see {@link DescribeDBSnapshotTenantDatabasesCommandOutput} for command's `response` shape. + * @see {@link RDSClientResolvedConfig | config} for RDSClient's `config` shape. + * + * @throws {@link DBSnapshotNotFoundFault} (client fault) + *

+ * DBSnapshotIdentifier doesn't refer to an existing DB snapshot.

+ * + * @throws {@link RDSServiceException} + *

Base exception class for all service exceptions from RDS service.

+ * + */ +export class DescribeDBSnapshotTenantDatabasesCommand extends $Command< + DescribeDBSnapshotTenantDatabasesCommandInput, + DescribeDBSnapshotTenantDatabasesCommandOutput, + RDSClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + public static getEndpointParameterInstructions(): EndpointParameterInstructions { + return { + UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" }, + Endpoint: { type: "builtInParams", name: "endpoint" }, + Region: { type: "builtInParams", name: "region" }, + UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" }, + }; + } + + /** + * @public + */ + constructor(readonly input: DescribeDBSnapshotTenantDatabasesCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: RDSClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use( + getEndpointPlugin(configuration, DescribeDBSnapshotTenantDatabasesCommand.getEndpointParameterInstructions()) + ); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "RDSClient"; + const commandName = "DescribeDBSnapshotTenantDatabasesCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: (_: any) => _, + outputFilterSensitiveLog: (_: any) => _, + [SMITHY_CONTEXT_KEY]: { + service: "AmazonRDSv19", + operation: "DescribeDBSnapshotTenantDatabases", + }, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + /** + * @internal + */ + private serialize( + input: DescribeDBSnapshotTenantDatabasesCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return se_DescribeDBSnapshotTenantDatabasesCommand(input, context); + } + + /** + * @internal + */ + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return de_DescribeDBSnapshotTenantDatabasesCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-rds/src/commands/DescribeDBSnapshotsCommand.ts b/clients/client-rds/src/commands/DescribeDBSnapshotsCommand.ts index 5e136db471827..cf1b23f4bbcba 100644 --- a/clients/client-rds/src/commands/DescribeDBSnapshotsCommand.ts +++ b/clients/client-rds/src/commands/DescribeDBSnapshotsCommand.ts @@ -113,6 +113,7 @@ export interface DescribeDBSnapshotsCommandOutput extends DBSnapshotMessage, __M * // StorageThroughput: Number("int"), * // DBSystemId: "STRING_VALUE", * // DedicatedLogVolume: true || false, + * // MultiTenant: true || false, * // }, * // ], * // }; diff --git a/clients/client-rds/src/commands/DescribeTenantDatabasesCommand.ts b/clients/client-rds/src/commands/DescribeTenantDatabasesCommand.ts new file mode 100644 index 0000000000000..8bbd4c6420b2c --- /dev/null +++ b/clients/client-rds/src/commands/DescribeTenantDatabasesCommand.ts @@ -0,0 +1,192 @@ +// smithy-typescript generated code +import { EndpointParameterInstructions, getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; +import { Command as $Command } from "@smithy/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, + SMITHY_CONTEXT_KEY, +} from "@smithy/types"; + +import { + DescribeTenantDatabasesMessage, + TenantDatabasesMessage, + TenantDatabasesMessageFilterSensitiveLog, +} from "../models/models_1"; +import { de_DescribeTenantDatabasesCommand, se_DescribeTenantDatabasesCommand } from "../protocols/Aws_query"; +import { RDSClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../RDSClient"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link DescribeTenantDatabasesCommand}. + */ +export interface DescribeTenantDatabasesCommandInput extends DescribeTenantDatabasesMessage {} +/** + * @public + * + * The output of {@link DescribeTenantDatabasesCommand}. + */ +export interface DescribeTenantDatabasesCommandOutput extends TenantDatabasesMessage, __MetadataBearer {} + +/** + * @public + *

Describes the tenant databases in a DB instance that uses the multi-tenant + * configuration. Only RDS for Oracle CDB instances are supported.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { RDSClient, DescribeTenantDatabasesCommand } from "@aws-sdk/client-rds"; // ES Modules import + * // const { RDSClient, DescribeTenantDatabasesCommand } = require("@aws-sdk/client-rds"); // CommonJS import + * const client = new RDSClient(config); + * const input = { // DescribeTenantDatabasesMessage + * DBInstanceIdentifier: "STRING_VALUE", + * TenantDBName: "STRING_VALUE", + * Filters: [ // FilterList + * { // Filter + * Name: "STRING_VALUE", // required + * Values: [ // FilterValueList // required + * "STRING_VALUE", + * ], + * }, + * ], + * Marker: "STRING_VALUE", + * MaxRecords: Number("int"), + * }; + * const command = new DescribeTenantDatabasesCommand(input); + * const response = await client.send(command); + * // { // TenantDatabasesMessage + * // Marker: "STRING_VALUE", + * // TenantDatabases: [ // TenantDatabasesList + * // { // TenantDatabase + * // TenantDatabaseCreateTime: new Date("TIMESTAMP"), + * // DBInstanceIdentifier: "STRING_VALUE", + * // TenantDBName: "STRING_VALUE", + * // Status: "STRING_VALUE", + * // MasterUsername: "STRING_VALUE", + * // DbiResourceId: "STRING_VALUE", + * // TenantDatabaseResourceId: "STRING_VALUE", + * // TenantDatabaseARN: "STRING_VALUE", + * // CharacterSetName: "STRING_VALUE", + * // NcharCharacterSetName: "STRING_VALUE", + * // DeletionProtection: true || false, + * // PendingModifiedValues: { // TenantDatabasePendingModifiedValues + * // MasterUserPassword: "STRING_VALUE", + * // TenantDBName: "STRING_VALUE", + * // }, + * // TagList: [ // TagList + * // { // Tag + * // Key: "STRING_VALUE", + * // Value: "STRING_VALUE", + * // }, + * // ], + * // }, + * // ], + * // }; + * + * ``` + * + * @param DescribeTenantDatabasesCommandInput - {@link DescribeTenantDatabasesCommandInput} + * @returns {@link DescribeTenantDatabasesCommandOutput} + * @see {@link DescribeTenantDatabasesCommandInput} for command's `input` shape. + * @see {@link DescribeTenantDatabasesCommandOutput} for command's `response` shape. + * @see {@link RDSClientResolvedConfig | config} for RDSClient's `config` shape. + * + * @throws {@link DBInstanceNotFoundFault} (client fault) + *

+ * DBInstanceIdentifier doesn't refer to an existing DB instance.

+ * + * @throws {@link RDSServiceException} + *

Base exception class for all service exceptions from RDS service.

+ * + */ +export class DescribeTenantDatabasesCommand extends $Command< + DescribeTenantDatabasesCommandInput, + DescribeTenantDatabasesCommandOutput, + RDSClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + public static getEndpointParameterInstructions(): EndpointParameterInstructions { + return { + UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" }, + Endpoint: { type: "builtInParams", name: "endpoint" }, + Region: { type: "builtInParams", name: "region" }, + UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" }, + }; + } + + /** + * @public + */ + constructor(readonly input: DescribeTenantDatabasesCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: RDSClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use( + getEndpointPlugin(configuration, DescribeTenantDatabasesCommand.getEndpointParameterInstructions()) + ); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "RDSClient"; + const commandName = "DescribeTenantDatabasesCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: (_: any) => _, + outputFilterSensitiveLog: TenantDatabasesMessageFilterSensitiveLog, + [SMITHY_CONTEXT_KEY]: { + service: "AmazonRDSv19", + operation: "DescribeTenantDatabases", + }, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + /** + * @internal + */ + private serialize(input: DescribeTenantDatabasesCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return se_DescribeTenantDatabasesCommand(input, context); + } + + /** + * @internal + */ + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return de_DescribeTenantDatabasesCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-rds/src/commands/ListTagsForResourceCommand.ts b/clients/client-rds/src/commands/ListTagsForResourceCommand.ts index a1e4b5f452de4..934a5edf129c7 100644 --- a/clients/client-rds/src/commands/ListTagsForResourceCommand.ts +++ b/clients/client-rds/src/commands/ListTagsForResourceCommand.ts @@ -99,9 +99,15 @@ export interface ListTagsForResourceCommandOutput extends TagListMessage, __Meta *

* DBSnapshotIdentifier doesn't refer to an existing DB snapshot.

* + * @throws {@link DBSnapshotTenantDatabaseNotFoundFault} (client fault) + *

The specified snapshot tenant database wasn't found.

+ * * @throws {@link IntegrationNotFoundFault} (client fault) *

The specified integration could not be found.

* + * @throws {@link TenantDatabaseNotFoundFault} (client fault) + *

The specified tenant database wasn't found in the DB instance.

+ * * @throws {@link RDSServiceException} *

Base exception class for all service exceptions from RDS service.

* diff --git a/clients/client-rds/src/commands/ModifyDBInstanceCommand.ts b/clients/client-rds/src/commands/ModifyDBInstanceCommand.ts index 7b376d7cb6940..61987f22f2ec4 100644 --- a/clients/client-rds/src/commands/ModifyDBInstanceCommand.ts +++ b/clients/client-rds/src/commands/ModifyDBInstanceCommand.ts @@ -126,6 +126,7 @@ export interface ModifyDBInstanceCommandOutput extends ModifyDBInstanceResult, _ * MasterUserSecretKmsKeyId: "STRING_VALUE", * Engine: "STRING_VALUE", * DedicatedLogVolume: true || false, + * MultiTenant: true || false, * }; * const command = new ModifyDBInstanceCommand(input); * const response = await client.send(command); @@ -223,6 +224,7 @@ export interface ModifyDBInstanceCommandOutput extends ModifyDBInstanceResult, _ * // StorageThroughput: Number("int"), * // Engine: "STRING_VALUE", * // DedicatedLogVolume: true || false, + * // MultiTenant: true || false, * // }, * // LatestRestorableTime: new Date("TIMESTAMP"), * // MultiAZ: true || false, @@ -350,6 +352,7 @@ export interface ModifyDBInstanceCommandOutput extends ModifyDBInstanceResult, _ * // PercentProgress: "STRING_VALUE", * // DedicatedLogVolume: true || false, * // IsStorageConfigUpgradeAvailable: true || false, + * // MultiTenant: true || false, * // }, * // }; * @@ -434,6 +437,10 @@ export interface ModifyDBInstanceCommandOutput extends ModifyDBInstanceResult, _ * @throws {@link StorageTypeNotSupportedFault} (client fault) *

The specified StorageType can't be associated with the DB instance.

* + * @throws {@link TenantDatabaseQuotaExceededFault} (client fault) + *

You attempted to create more tenant databases than are permitted in your Amazon Web Services + * account.

+ * * @throws {@link RDSServiceException} *

Base exception class for all service exceptions from RDS service.

* diff --git a/clients/client-rds/src/commands/ModifyDBSnapshotCommand.ts b/clients/client-rds/src/commands/ModifyDBSnapshotCommand.ts index ee285719c4710..22fea7797a796 100644 --- a/clients/client-rds/src/commands/ModifyDBSnapshotCommand.ts +++ b/clients/client-rds/src/commands/ModifyDBSnapshotCommand.ts @@ -103,6 +103,7 @@ export interface ModifyDBSnapshotCommandOutput extends ModifyDBSnapshotResult, _ * // StorageThroughput: Number("int"), * // DBSystemId: "STRING_VALUE", * // DedicatedLogVolume: true || false, + * // MultiTenant: true || false, * // }, * // }; * diff --git a/clients/client-rds/src/commands/ModifyTenantDatabaseCommand.ts b/clients/client-rds/src/commands/ModifyTenantDatabaseCommand.ts new file mode 100644 index 0000000000000..f174494cb6c99 --- /dev/null +++ b/clients/client-rds/src/commands/ModifyTenantDatabaseCommand.ts @@ -0,0 +1,193 @@ +// smithy-typescript generated code +import { EndpointParameterInstructions, getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; +import { Command as $Command } from "@smithy/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, + SMITHY_CONTEXT_KEY, +} from "@smithy/types"; + +import { + ModifyTenantDatabaseMessage, + ModifyTenantDatabaseMessageFilterSensitiveLog, + ModifyTenantDatabaseResult, + ModifyTenantDatabaseResultFilterSensitiveLog, +} from "../models/models_1"; +import { de_ModifyTenantDatabaseCommand, se_ModifyTenantDatabaseCommand } from "../protocols/Aws_query"; +import { RDSClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../RDSClient"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link ModifyTenantDatabaseCommand}. + */ +export interface ModifyTenantDatabaseCommandInput extends ModifyTenantDatabaseMessage {} +/** + * @public + * + * The output of {@link ModifyTenantDatabaseCommand}. + */ +export interface ModifyTenantDatabaseCommandOutput extends ModifyTenantDatabaseResult, __MetadataBearer {} + +/** + * @public + *

Modifies an existing tenant database in a DB instance. You can change the tenant + * database name or the master user password. This operation is supported only for RDS for + * Oracle CDB instances using the multi-tenant configuration.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { RDSClient, ModifyTenantDatabaseCommand } from "@aws-sdk/client-rds"; // ES Modules import + * // const { RDSClient, ModifyTenantDatabaseCommand } = require("@aws-sdk/client-rds"); // CommonJS import + * const client = new RDSClient(config); + * const input = { // ModifyTenantDatabaseMessage + * DBInstanceIdentifier: "STRING_VALUE", // required + * TenantDBName: "STRING_VALUE", // required + * MasterUserPassword: "STRING_VALUE", + * NewTenantDBName: "STRING_VALUE", + * }; + * const command = new ModifyTenantDatabaseCommand(input); + * const response = await client.send(command); + * // { // ModifyTenantDatabaseResult + * // TenantDatabase: { // TenantDatabase + * // TenantDatabaseCreateTime: new Date("TIMESTAMP"), + * // DBInstanceIdentifier: "STRING_VALUE", + * // TenantDBName: "STRING_VALUE", + * // Status: "STRING_VALUE", + * // MasterUsername: "STRING_VALUE", + * // DbiResourceId: "STRING_VALUE", + * // TenantDatabaseResourceId: "STRING_VALUE", + * // TenantDatabaseARN: "STRING_VALUE", + * // CharacterSetName: "STRING_VALUE", + * // NcharCharacterSetName: "STRING_VALUE", + * // DeletionProtection: true || false, + * // PendingModifiedValues: { // TenantDatabasePendingModifiedValues + * // MasterUserPassword: "STRING_VALUE", + * // TenantDBName: "STRING_VALUE", + * // }, + * // TagList: [ // TagList + * // { // Tag + * // Key: "STRING_VALUE", + * // Value: "STRING_VALUE", + * // }, + * // ], + * // }, + * // }; + * + * ``` + * + * @param ModifyTenantDatabaseCommandInput - {@link ModifyTenantDatabaseCommandInput} + * @returns {@link ModifyTenantDatabaseCommandOutput} + * @see {@link ModifyTenantDatabaseCommandInput} for command's `input` shape. + * @see {@link ModifyTenantDatabaseCommandOutput} for command's `response` shape. + * @see {@link RDSClientResolvedConfig | config} for RDSClient's `config` shape. + * + * @throws {@link DBInstanceNotFoundFault} (client fault) + *

+ * DBInstanceIdentifier doesn't refer to an existing DB instance.

+ * + * @throws {@link InvalidDBInstanceStateFault} (client fault) + *

The DB instance isn't in a valid state.

+ * + * @throws {@link TenantDatabaseAlreadyExistsFault} (client fault) + *

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.

+ * + * @throws {@link TenantDatabaseNotFoundFault} (client fault) + *

The specified tenant database wasn't found in the DB instance.

+ * + * @throws {@link RDSServiceException} + *

Base exception class for all service exceptions from RDS service.

+ * + */ +export class ModifyTenantDatabaseCommand extends $Command< + ModifyTenantDatabaseCommandInput, + ModifyTenantDatabaseCommandOutput, + RDSClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + public static getEndpointParameterInstructions(): EndpointParameterInstructions { + return { + UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" }, + Endpoint: { type: "builtInParams", name: "endpoint" }, + Region: { type: "builtInParams", name: "region" }, + UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" }, + }; + } + + /** + * @public + */ + constructor(readonly input: ModifyTenantDatabaseCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: RDSClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use( + getEndpointPlugin(configuration, ModifyTenantDatabaseCommand.getEndpointParameterInstructions()) + ); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "RDSClient"; + const commandName = "ModifyTenantDatabaseCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ModifyTenantDatabaseMessageFilterSensitiveLog, + outputFilterSensitiveLog: ModifyTenantDatabaseResultFilterSensitiveLog, + [SMITHY_CONTEXT_KEY]: { + service: "AmazonRDSv19", + operation: "ModifyTenantDatabase", + }, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + /** + * @internal + */ + private serialize(input: ModifyTenantDatabaseCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return se_ModifyTenantDatabaseCommand(input, context); + } + + /** + * @internal + */ + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return de_ModifyTenantDatabaseCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-rds/src/commands/PromoteReadReplicaCommand.ts b/clients/client-rds/src/commands/PromoteReadReplicaCommand.ts index eee39d77e1859..102e4d19dc406 100644 --- a/clients/client-rds/src/commands/PromoteReadReplicaCommand.ts +++ b/clients/client-rds/src/commands/PromoteReadReplicaCommand.ts @@ -162,6 +162,7 @@ export interface PromoteReadReplicaCommandOutput extends PromoteReadReplicaResul * // StorageThroughput: Number("int"), * // Engine: "STRING_VALUE", * // DedicatedLogVolume: true || false, + * // MultiTenant: true || false, * // }, * // LatestRestorableTime: new Date("TIMESTAMP"), * // MultiAZ: true || false, @@ -289,6 +290,7 @@ export interface PromoteReadReplicaCommandOutput extends PromoteReadReplicaResul * // PercentProgress: "STRING_VALUE", * // DedicatedLogVolume: true || false, * // IsStorageConfigUpgradeAvailable: true || false, + * // MultiTenant: true || false, * // }, * // }; * diff --git a/clients/client-rds/src/commands/RebootDBInstanceCommand.ts b/clients/client-rds/src/commands/RebootDBInstanceCommand.ts index 7afa3fd0ed58a..54252f8c55dc4 100644 --- a/clients/client-rds/src/commands/RebootDBInstanceCommand.ts +++ b/clients/client-rds/src/commands/RebootDBInstanceCommand.ts @@ -153,6 +153,7 @@ export interface RebootDBInstanceCommandOutput extends RebootDBInstanceResult, _ * // StorageThroughput: Number("int"), * // Engine: "STRING_VALUE", * // DedicatedLogVolume: true || false, + * // MultiTenant: true || false, * // }, * // LatestRestorableTime: new Date("TIMESTAMP"), * // MultiAZ: true || false, @@ -280,6 +281,7 @@ export interface RebootDBInstanceCommandOutput extends RebootDBInstanceResult, _ * // PercentProgress: "STRING_VALUE", * // DedicatedLogVolume: true || false, * // IsStorageConfigUpgradeAvailable: true || false, + * // MultiTenant: true || false, * // }, * // }; * diff --git a/clients/client-rds/src/commands/RemoveTagsFromResourceCommand.ts b/clients/client-rds/src/commands/RemoveTagsFromResourceCommand.ts index 449d4c19e0bf8..a88bab0b07faa 100644 --- a/clients/client-rds/src/commands/RemoveTagsFromResourceCommand.ts +++ b/clients/client-rds/src/commands/RemoveTagsFromResourceCommand.ts @@ -88,9 +88,15 @@ export interface RemoveTagsFromResourceCommandOutput extends __MetadataBearer {} *

* DBSnapshotIdentifier doesn't refer to an existing DB snapshot.

* + * @throws {@link DBSnapshotTenantDatabaseNotFoundFault} (client fault) + *

The specified snapshot tenant database wasn't found.

+ * * @throws {@link IntegrationNotFoundFault} (client fault) *

The specified integration could not be found.

* + * @throws {@link TenantDatabaseNotFoundFault} (client fault) + *

The specified tenant database wasn't found in the DB instance.

+ * * @throws {@link RDSServiceException} *

Base exception class for all service exceptions from RDS service.

* diff --git a/clients/client-rds/src/commands/RestoreDBInstanceFromDBSnapshotCommand.ts b/clients/client-rds/src/commands/RestoreDBInstanceFromDBSnapshotCommand.ts index 819f888f4a45f..5208b66823557 100644 --- a/clients/client-rds/src/commands/RestoreDBInstanceFromDBSnapshotCommand.ts +++ b/clients/client-rds/src/commands/RestoreDBInstanceFromDBSnapshotCommand.ts @@ -216,6 +216,7 @@ export interface RestoreDBInstanceFromDBSnapshotCommandOutput * // StorageThroughput: Number("int"), * // Engine: "STRING_VALUE", * // DedicatedLogVolume: true || false, + * // MultiTenant: true || false, * // }, * // LatestRestorableTime: new Date("TIMESTAMP"), * // MultiAZ: true || false, @@ -343,6 +344,7 @@ export interface RestoreDBInstanceFromDBSnapshotCommandOutput * // PercentProgress: "STRING_VALUE", * // DedicatedLogVolume: true || false, * // IsStorageConfigUpgradeAvailable: true || false, + * // MultiTenant: true || false, * // }, * // }; * @@ -433,6 +435,10 @@ export interface RestoreDBInstanceFromDBSnapshotCommandOutput * @throws {@link StorageTypeNotSupportedFault} (client fault) *

The specified StorageType can't be associated with the DB instance.

* + * @throws {@link TenantDatabaseQuotaExceededFault} (client fault) + *

You attempted to create more tenant databases than are permitted in your Amazon Web Services + * account.

+ * * @throws {@link RDSServiceException} *

Base exception class for all service exceptions from RDS service.

* diff --git a/clients/client-rds/src/commands/RestoreDBInstanceFromS3Command.ts b/clients/client-rds/src/commands/RestoreDBInstanceFromS3Command.ts index 27dcd462c31f0..ebe0a837688bc 100644 --- a/clients/client-rds/src/commands/RestoreDBInstanceFromS3Command.ts +++ b/clients/client-rds/src/commands/RestoreDBInstanceFromS3Command.ts @@ -215,6 +215,7 @@ export interface RestoreDBInstanceFromS3CommandOutput extends RestoreDBInstanceF * // StorageThroughput: Number("int"), * // Engine: "STRING_VALUE", * // DedicatedLogVolume: true || false, + * // MultiTenant: true || false, * // }, * // LatestRestorableTime: new Date("TIMESTAMP"), * // MultiAZ: true || false, @@ -342,6 +343,7 @@ export interface RestoreDBInstanceFromS3CommandOutput extends RestoreDBInstanceF * // PercentProgress: "STRING_VALUE", * // DedicatedLogVolume: true || false, * // IsStorageConfigUpgradeAvailable: true || false, + * // MultiTenant: true || false, * // }, * // }; * diff --git a/clients/client-rds/src/commands/RestoreDBInstanceToPointInTimeCommand.ts b/clients/client-rds/src/commands/RestoreDBInstanceToPointInTimeCommand.ts index cd9d5431bb2ad..e7ab6f42e9054 100644 --- a/clients/client-rds/src/commands/RestoreDBInstanceToPointInTimeCommand.ts +++ b/clients/client-rds/src/commands/RestoreDBInstanceToPointInTimeCommand.ts @@ -216,6 +216,7 @@ export interface RestoreDBInstanceToPointInTimeCommandOutput * // StorageThroughput: Number("int"), * // Engine: "STRING_VALUE", * // DedicatedLogVolume: true || false, + * // MultiTenant: true || false, * // }, * // LatestRestorableTime: new Date("TIMESTAMP"), * // MultiAZ: true || false, @@ -343,6 +344,7 @@ export interface RestoreDBInstanceToPointInTimeCommandOutput * // PercentProgress: "STRING_VALUE", * // DedicatedLogVolume: true || false, * // IsStorageConfigUpgradeAvailable: true || false, + * // MultiTenant: true || false, * // }, * // }; * @@ -438,6 +440,10 @@ export interface RestoreDBInstanceToPointInTimeCommandOutput * @throws {@link StorageTypeNotSupportedFault} (client fault) *

The specified StorageType can't be associated with the DB instance.

* + * @throws {@link TenantDatabaseQuotaExceededFault} (client fault) + *

You attempted to create more tenant databases than are permitted in your Amazon Web Services + * account.

+ * * @throws {@link RDSServiceException} *

Base exception class for all service exceptions from RDS service.

* diff --git a/clients/client-rds/src/commands/StartDBInstanceAutomatedBackupsReplicationCommand.ts b/clients/client-rds/src/commands/StartDBInstanceAutomatedBackupsReplicationCommand.ts index 9937a3f0b74f5..284e648e3c9a4 100644 --- a/clients/client-rds/src/commands/StartDBInstanceAutomatedBackupsReplicationCommand.ts +++ b/clients/client-rds/src/commands/StartDBInstanceAutomatedBackupsReplicationCommand.ts @@ -105,6 +105,7 @@ export interface StartDBInstanceAutomatedBackupsReplicationCommandOutput * // StorageThroughput: Number("int"), * // AwsBackupRecoveryPointArn: "STRING_VALUE", * // DedicatedLogVolume: true || false, + * // MultiTenant: true || false, * // }, * // }; * diff --git a/clients/client-rds/src/commands/StartDBInstanceCommand.ts b/clients/client-rds/src/commands/StartDBInstanceCommand.ts index 4f993e4a9239d..da98a11aa4727 100644 --- a/clients/client-rds/src/commands/StartDBInstanceCommand.ts +++ b/clients/client-rds/src/commands/StartDBInstanceCommand.ts @@ -152,6 +152,7 @@ export interface StartDBInstanceCommandOutput extends StartDBInstanceResult, __M * // StorageThroughput: Number("int"), * // Engine: "STRING_VALUE", * // DedicatedLogVolume: true || false, + * // MultiTenant: true || false, * // }, * // LatestRestorableTime: new Date("TIMESTAMP"), * // MultiAZ: true || false, @@ -279,6 +280,7 @@ export interface StartDBInstanceCommandOutput extends StartDBInstanceResult, __M * // PercentProgress: "STRING_VALUE", * // DedicatedLogVolume: true || false, * // IsStorageConfigUpgradeAvailable: true || false, + * // MultiTenant: true || false, * // }, * // }; * diff --git a/clients/client-rds/src/commands/StopDBInstanceAutomatedBackupsReplicationCommand.ts b/clients/client-rds/src/commands/StopDBInstanceAutomatedBackupsReplicationCommand.ts index 7c05946efec1c..d63762890f9eb 100644 --- a/clients/client-rds/src/commands/StopDBInstanceAutomatedBackupsReplicationCommand.ts +++ b/clients/client-rds/src/commands/StopDBInstanceAutomatedBackupsReplicationCommand.ts @@ -101,6 +101,7 @@ export interface StopDBInstanceAutomatedBackupsReplicationCommandOutput * // StorageThroughput: Number("int"), * // AwsBackupRecoveryPointArn: "STRING_VALUE", * // DedicatedLogVolume: true || false, + * // MultiTenant: true || false, * // }, * // }; * diff --git a/clients/client-rds/src/commands/StopDBInstanceCommand.ts b/clients/client-rds/src/commands/StopDBInstanceCommand.ts index a2959379c1f59..5ffe79c026e8e 100644 --- a/clients/client-rds/src/commands/StopDBInstanceCommand.ts +++ b/clients/client-rds/src/commands/StopDBInstanceCommand.ts @@ -155,6 +155,7 @@ export interface StopDBInstanceCommandOutput extends StopDBInstanceResult, __Met * // StorageThroughput: Number("int"), * // Engine: "STRING_VALUE", * // DedicatedLogVolume: true || false, + * // MultiTenant: true || false, * // }, * // LatestRestorableTime: new Date("TIMESTAMP"), * // MultiAZ: true || false, @@ -282,6 +283,7 @@ export interface StopDBInstanceCommandOutput extends StopDBInstanceResult, __Met * // PercentProgress: "STRING_VALUE", * // DedicatedLogVolume: true || false, * // IsStorageConfigUpgradeAvailable: true || false, + * // MultiTenant: true || false, * // }, * // }; * diff --git a/clients/client-rds/src/commands/SwitchoverReadReplicaCommand.ts b/clients/client-rds/src/commands/SwitchoverReadReplicaCommand.ts index 3410a1b48986a..64c030ca56f44 100644 --- a/clients/client-rds/src/commands/SwitchoverReadReplicaCommand.ts +++ b/clients/client-rds/src/commands/SwitchoverReadReplicaCommand.ts @@ -144,6 +144,7 @@ export interface SwitchoverReadReplicaCommandOutput extends SwitchoverReadReplic * // StorageThroughput: Number("int"), * // Engine: "STRING_VALUE", * // DedicatedLogVolume: true || false, + * // MultiTenant: true || false, * // }, * // LatestRestorableTime: new Date("TIMESTAMP"), * // MultiAZ: true || false, @@ -271,6 +272,7 @@ export interface SwitchoverReadReplicaCommandOutput extends SwitchoverReadReplic * // PercentProgress: "STRING_VALUE", * // DedicatedLogVolume: true || false, * // IsStorageConfigUpgradeAvailable: true || false, + * // MultiTenant: true || false, * // }, * // }; * diff --git a/clients/client-rds/src/commands/index.ts b/clients/client-rds/src/commands/index.ts index 95244c5d54f40..188252d1dc2ed 100644 --- a/clients/client-rds/src/commands/index.ts +++ b/clients/client-rds/src/commands/index.ts @@ -30,6 +30,7 @@ export * from "./CreateEventSubscriptionCommand"; export * from "./CreateGlobalClusterCommand"; export * from "./CreateIntegrationCommand"; export * from "./CreateOptionGroupCommand"; +export * from "./CreateTenantDatabaseCommand"; export * from "./DeleteBlueGreenDeploymentCommand"; export * from "./DeleteCustomDBEngineVersionCommand"; export * from "./DeleteDBClusterAutomatedBackupCommand"; @@ -49,6 +50,7 @@ export * from "./DeleteEventSubscriptionCommand"; export * from "./DeleteGlobalClusterCommand"; export * from "./DeleteIntegrationCommand"; export * from "./DeleteOptionGroupCommand"; +export * from "./DeleteTenantDatabaseCommand"; export * from "./DeregisterDBProxyTargetsCommand"; export * from "./DescribeAccountAttributesCommand"; export * from "./DescribeBlueGreenDeploymentsCommand"; @@ -73,6 +75,7 @@ export * from "./DescribeDBProxyTargetGroupsCommand"; export * from "./DescribeDBProxyTargetsCommand"; export * from "./DescribeDBSecurityGroupsCommand"; export * from "./DescribeDBSnapshotAttributesCommand"; +export * from "./DescribeDBSnapshotTenantDatabasesCommand"; export * from "./DescribeDBSnapshotsCommand"; export * from "./DescribeDBSubnetGroupsCommand"; export * from "./DescribeEngineDefaultClusterParametersCommand"; @@ -90,6 +93,7 @@ export * from "./DescribePendingMaintenanceActionsCommand"; export * from "./DescribeReservedDBInstancesCommand"; export * from "./DescribeReservedDBInstancesOfferingsCommand"; export * from "./DescribeSourceRegionsCommand"; +export * from "./DescribeTenantDatabasesCommand"; export * from "./DescribeValidDBInstanceModificationsCommand"; export * from "./DownloadDBLogFilePortionCommand"; export * from "./FailoverDBClusterCommand"; @@ -114,6 +118,7 @@ export * from "./ModifyDBSubnetGroupCommand"; export * from "./ModifyEventSubscriptionCommand"; export * from "./ModifyGlobalClusterCommand"; export * from "./ModifyOptionGroupCommand"; +export * from "./ModifyTenantDatabaseCommand"; export * from "./PromoteReadReplicaCommand"; export * from "./PromoteReadReplicaDBClusterCommand"; export * from "./PurchaseReservedDBInstancesOfferingCommand"; diff --git a/clients/client-rds/src/models/models_0.ts b/clients/client-rds/src/models/models_0.ts index 4f199a11b38b5..cd74546dc7f3c 100644 --- a/clients/client-rds/src/models/models_0.ts +++ b/clients/client-rds/src/models/models_0.ts @@ -1,5 +1,5 @@ // smithy-typescript generated code -import { ExceptionOptionType as __ExceptionOptionType } from "@smithy/smithy-client"; +import { ExceptionOptionType as __ExceptionOptionType, SENSITIVE_STRING } from "@smithy/smithy-client"; import { RDSServiceException as __BaseException } from "./RDSServiceException"; @@ -507,7 +507,7 @@ export interface EventSubscription { /** * @public - *

A Boolean value indicating if the subscription is enabled. True indicates the subscription is enabled.

+ *

Specifies whether the subscription is enabled. True indicates the subscription is enabled.

*/ Enabled?: boolean; @@ -693,6 +693,26 @@ export class DBSnapshotNotFoundFault extends __BaseException { } } +/** + * @public + *

The specified snapshot tenant database wasn't found.

+ */ +export class DBSnapshotTenantDatabaseNotFoundFault extends __BaseException { + readonly name: "DBSnapshotTenantDatabaseNotFoundFault" = "DBSnapshotTenantDatabaseNotFoundFault"; + readonly $fault: "client" = "client"; + /** + * @internal + */ + constructor(opts: __ExceptionOptionType) { + super({ + name: "DBSnapshotTenantDatabaseNotFoundFault", + $fault: "client", + ...opts, + }); + Object.setPrototypeOf(this, DBSnapshotTenantDatabaseNotFoundFault.prototype); + } +} + /** * @public *

The specified integration could not be found.

@@ -713,6 +733,26 @@ export class IntegrationNotFoundFault extends __BaseException { } } +/** + * @public + *

The specified tenant database wasn't found in the DB instance.

+ */ +export class TenantDatabaseNotFoundFault extends __BaseException { + readonly name: "TenantDatabaseNotFoundFault" = "TenantDatabaseNotFoundFault"; + readonly $fault: "client" = "client"; + /** + * @internal + */ + constructor(opts: __ExceptionOptionType) { + super({ + name: "TenantDatabaseNotFoundFault", + $fault: "client", + ...opts, + }); + Object.setPrototypeOf(this, TenantDatabaseNotFoundFault.prototype); + } +} + /** * @public *

@@ -2666,6 +2706,13 @@ export interface DBSnapshot { *

Indicates whether the DB instance has a dedicated log volume (DLV) enabled.

*/ DedicatedLogVolume?: boolean; + + /** + * @public + *

Indicates whether the snapshot is of a DB instance using the multi-tenant + * configuration (TRUE) or the single-tenant configuration (FALSE).

+ */ + MultiTenant?: boolean; } /** @@ -7979,6 +8026,26 @@ export interface CreateDBInstanceMessage { *

Indicates whether the DB instance has a dedicated log volume (DLV) enabled.

*/ DedicatedLogVolume?: boolean; + + /** + * @public + *

Specifies whether to use the multi-tenant configuration or the single-tenant + * configuration (default). This parameter only applies to RDS for Oracle container + * database (CDB) engines.

+ *

Note the following restrictions:

+ *
    + *
  • + *

    The DB engine that you specify in the request must support the multi-tenant + * configuration. If you attempt to enable the multi-tenant configuration on a DB + * engine that doesn't support it, the request fails.

    + *
  • + *
  • + *

    If you specify the multi-tenant configuration when you create your DB instance, + * you can't later modify this DB instance to use the single-tenant configuration.

    + *
  • + *
+ */ + MultiTenant?: boolean; } /** @@ -8471,6 +8538,13 @@ export interface PendingModifiedValues { *

Indicates whether the DB instance has a dedicated log volume (DLV) enabled.>

*/ DedicatedLogVolume?: boolean; + + /** + * @public + *

Indicates whether the DB instance will change to the multi-tenant configuration (TRUE) + * or the single-tenant configuration (FALSE).

+ */ + MultiTenant?: boolean; } /** @@ -8500,7 +8574,7 @@ export interface DBInstanceStatusInfo { /** * @public - *

A Boolean value that is true if the instance is operating normally, or false if the instance is in an error state.

+ *

Indicates whether the instance is operating normally (TRUE) or is in an error state (FALSE).

*/ Normal?: boolean; @@ -8571,7 +8645,7 @@ export interface DBInstance { /** * @public - *

Contains the initial database name that you provided (if required) when you created + *

The initial database name that you provided (if required) when you created * the DB instance. This name is returned for the life of your DB instance. For an RDS for * Oracle CDB instance, the name identifies the PDB rather than the CDB.

*/ @@ -9169,6 +9243,13 @@ export interface DBInstance { * information, see Upgrading the storage file system for a DB instance.

*/ IsStorageConfigUpgradeAvailable?: boolean; + + /** + * @public + *

Specifies whether the DB instance is in the multi-tenant configuration (TRUE) or the + * single-tenant configuration (FALSE).

+ */ + MultiTenant?: boolean; } /** @@ -9288,6 +9369,27 @@ export class StorageTypeNotSupportedFault extends __BaseException { } } +/** + * @public + *

You attempted to create more tenant databases than are permitted in your Amazon Web Services + * account.

+ */ +export class TenantDatabaseQuotaExceededFault extends __BaseException { + readonly name: "TenantDatabaseQuotaExceededFault" = "TenantDatabaseQuotaExceededFault"; + readonly $fault: "client" = "client"; + /** + * @internal + */ + constructor(opts: __ExceptionOptionType) { + super({ + name: "TenantDatabaseQuotaExceededFault", + $fault: "client", + ...opts, + }); + Object.setPrototypeOf(this, TenantDatabaseQuotaExceededFault.prototype); + } +} + /** * @public */ @@ -11422,13 +11524,16 @@ export interface FailoverState { * starts.

* *
  • - *

    failing-over – This status covers the range of Aurora internal operations that take place during the switchover or failover process, such - * as demoting the primary Aurora DB cluster, promoting the secondary Aurora DB cluster, and synchronizing replicas.

    + *

    failing-over – Aurora is promoting the chosen secondary Aurora DB cluster to become the new primary DB cluster to fail over the global cluster.

    *
  • *
  • *

    cancelling – The request to switch over or fail over the global cluster was cancelled and the primary * Aurora DB cluster and the selected secondary Aurora DB cluster are returning to their previous states.

    *
  • + *
  • + *

    switching-over – This status covers the range of Aurora internal operations that take place during the switchover process, such + * as demoting the primary Aurora DB cluster, promoting the secondary Aurora DB cluster, and synchronizing replicas.

    + *
  • * */ Status?: FailoverStatus; @@ -11978,6 +12083,223 @@ export interface CreateOptionGroupResult { OptionGroup?: OptionGroup; } +/** + * @public + */ +export interface CreateTenantDatabaseMessage { + /** + * @public + *

    The user-supplied DB instance identifier. RDS creates your tenant database in this DB + * instance. This parameter isn't case-sensitive.

    + */ + DBInstanceIdentifier: string | undefined; + + /** + * @public + *

    The user-supplied name of the tenant database that you want to create in your DB + * instance. This parameter has the same constraints as DBName in + * CreateDBInstance.

    + */ + TenantDBName: string | undefined; + + /** + * @public + *

    The name for the master user account in your tenant database. RDS creates this user + * account in the tenant database and grants privileges to the master user. This parameter + * is case-sensitive.

    + *

    Constraints:

    + *
      + *
    • + *

      Must be 1 to 16 letters, numbers, or underscores.

      + *
    • + *
    • + *

      First character must be a letter.

      + *
    • + *
    • + *

      Can't be a reserved word for the chosen database engine.

      + *
    • + *
    + */ + MasterUsername: string | undefined; + + /** + * @public + *

    The password for the master user in your tenant database.

    + *

    Constraints:

    + *
      + *
    • + *

      Must be 8 to 30 characters.

      + *
    • + *
    • + *

      Can include any printable ASCII character except forward slash + * (/), double quote ("), at symbol (@), + * ampersand (&), or single quote (').

      + *
    • + *
    + */ + MasterUserPassword: string | undefined; + + /** + * @public + *

    The character set for your tenant database. If you don't specify a value, the + * character set name defaults to AL32UTF8.

    + */ + CharacterSetName?: string; + + /** + * @public + *

    The NCHAR value for the tenant database.

    + */ + NcharCharacterSetName?: string; + + /** + * @public + *

    A list of tags. + * For more information, see Tagging Amazon RDS Resources in the Amazon RDS User Guide. + *

    + */ + Tags?: Tag[]; +} + +/** + * @public + *

    A response element in the ModifyTenantDatabase operation that describes + * changes that will be applied. Specific changes are identified by subelements.

    + */ +export interface TenantDatabasePendingModifiedValues { + /** + * @public + *

    The master password for the tenant database.

    + */ + MasterUserPassword?: string; + + /** + * @public + *

    The name of the tenant database.

    + */ + TenantDBName?: string; +} + +/** + * @public + *

    A tenant database in the DB instance. This data type is an element in the response to + * the DescribeTenantDatabases action.

    + */ +export interface TenantDatabase { + /** + * @public + *

    The creation time of the tenant database.

    + */ + TenantDatabaseCreateTime?: Date; + + /** + * @public + *

    The ID of the DB instance that contains the tenant database.

    + */ + DBInstanceIdentifier?: string; + + /** + * @public + *

    The database name of the tenant database.

    + */ + TenantDBName?: string; + + /** + * @public + *

    The status of the tenant database.

    + */ + Status?: string; + + /** + * @public + *

    The master username of the tenant database.

    + */ + MasterUsername?: string; + + /** + * @public + *

    The Amazon Web Services Region-unique, immutable identifier for the DB instance.

    + */ + DbiResourceId?: string; + + /** + * @public + *

    The Amazon Web Services Region-unique, immutable identifier for the tenant database.

    + */ + TenantDatabaseResourceId?: string; + + /** + * @public + *

    The Amazon Resource Name (ARN) for the tenant database.

    + */ + TenantDatabaseARN?: string; + + /** + * @public + *

    The character set of the tenant database.

    + */ + CharacterSetName?: string; + + /** + * @public + *

    The NCHAR character set name of the tenant database.

    + */ + NcharCharacterSetName?: string; + + /** + * @public + *

    Specifies whether deletion protection is enabled for the DB instance.

    + */ + DeletionProtection?: boolean; + + /** + * @public + *

    Information about pending changes for a tenant database.

    + */ + PendingModifiedValues?: TenantDatabasePendingModifiedValues; + + /** + * @public + *

    A list of tags. + * For more information, see Tagging Amazon RDS Resources in the Amazon RDS User Guide. + *

    + */ + TagList?: Tag[]; +} + +/** + * @public + */ +export interface CreateTenantDatabaseResult { + /** + * @public + *

    A tenant database in the DB instance. This data type is an element in the response to + * the DescribeTenantDatabases action.

    + */ + TenantDatabase?: TenantDatabase; +} + +/** + * @public + *

    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.

    + */ +export class TenantDatabaseAlreadyExistsFault extends __BaseException { + readonly name: "TenantDatabaseAlreadyExistsFault" = "TenantDatabaseAlreadyExistsFault"; + readonly $fault: "client" = "client"; + /** + * @internal + */ + constructor(opts: __ExceptionOptionType) { + super({ + name: "TenantDatabaseAlreadyExistsFault", + $fault: "client", + ...opts, + }); + Object.setPrototypeOf(this, TenantDatabaseAlreadyExistsFault.prototype); + } +} + /** * @public */ @@ -12939,6 +13261,13 @@ export interface DBInstanceAutomatedBackup { *

    Indicates whether the DB instance has a dedicated log volume (DLV) enabled.

    */ DedicatedLogVolume?: boolean; + + /** + * @public + *

    Specifies whether the automatic backup is for a DB instance in the multi-tenant + * configuration (TRUE) or the single-tenant configuration (FALSE).

    + */ + MultiTenant?: boolean; } /** @@ -13309,37 +13638,91 @@ export class InvalidOptionGroupStateFault extends __BaseException { /** * @public - *

    The specified RDS DB instance or Aurora DB cluster isn't available for a proxy owned by your Amazon Web Services account in the specified Amazon Web Services Region.

    */ -export class DBProxyTargetNotFoundFault extends __BaseException { - readonly name: "DBProxyTargetNotFoundFault" = "DBProxyTargetNotFoundFault"; - readonly $fault: "client" = "client"; +export interface DeleteTenantDatabaseMessage { /** - * @internal + * @public + *

    The user-supplied identifier for the DB instance that contains the tenant database + * that you want to delete.

    */ - constructor(opts: __ExceptionOptionType) { - super({ - name: "DBProxyTargetNotFoundFault", - $fault: "client", - ...opts, - }); - Object.setPrototypeOf(this, DBProxyTargetNotFoundFault.prototype); - } -} + DBInstanceIdentifier: string | undefined; -/** - * @public - */ -export interface DeregisterDBProxyTargetsRequest { /** * @public - *

    The identifier of the DBProxy that is associated with the DBProxyTargetGroup.

    + *

    The user-supplied name of the tenant database that you want to remove from your DB + * instance. Amazon RDS deletes the tenant database with this name. This parameter isn’t + * case-sensitive.

    */ - DBProxyName: string | undefined; + TenantDBName: string | undefined; /** * @public - *

    The identifier of the DBProxyTargetGroup.

    + *

    Specifies whether to skip the creation of a final DB snapshot before removing the + * tenant database from your DB instance. If you enable this parameter, RDS doesn't create + * a DB snapshot. If you don't enable this parameter, RDS creates a DB snapshot before it + * deletes the tenant database. By default, RDS doesn't skip the final snapshot. If you + * don't enable this parameter, you must specify the FinalDBSnapshotIdentifier + * parameter.

    + */ + SkipFinalSnapshot?: boolean; + + /** + * @public + *

    The DBSnapshotIdentifier of the new DBSnapshot created when + * the SkipFinalSnapshot parameter is disabled.

    + * + *

    If you enable this parameter and also enable SkipFinalShapshot, the + * command results in an error.

    + *
    + */ + FinalDBSnapshotIdentifier?: string; +} + +/** + * @public + */ +export interface DeleteTenantDatabaseResult { + /** + * @public + *

    A tenant database in the DB instance. This data type is an element in the response to + * the DescribeTenantDatabases action.

    + */ + TenantDatabase?: TenantDatabase; +} + +/** + * @public + *

    The specified RDS DB instance or Aurora DB cluster isn't available for a proxy owned by your Amazon Web Services account in the specified Amazon Web Services Region.

    + */ +export class DBProxyTargetNotFoundFault extends __BaseException { + readonly name: "DBProxyTargetNotFoundFault" = "DBProxyTargetNotFoundFault"; + readonly $fault: "client" = "client"; + /** + * @internal + */ + constructor(opts: __ExceptionOptionType) { + super({ + name: "DBProxyTargetNotFoundFault", + $fault: "client", + ...opts, + }); + Object.setPrototypeOf(this, DBProxyTargetNotFoundFault.prototype); + } +} + +/** + * @public + */ +export interface DeregisterDBProxyTargetsRequest { + /** + * @public + *

    The identifier of the DBProxy that is associated with the DBProxyTargetGroup.

    + */ + DBProxyName: string | undefined; + + /** + * @public + *

    The identifier of the DBProxyTargetGroup.

    */ TargetGroupName?: string; @@ -13670,440 +14053,45 @@ export interface DBClusterAutomatedBackupMessage { } /** - * @public - */ -export interface DescribeDBClusterAutomatedBackupsMessage { - /** - * @public - *

    The resource ID of the DB cluster that is the source of the automated backup. This parameter isn't case-sensitive.

    - */ - DbClusterResourceId?: string; - - /** - * @public - *

    (Optional) The user-supplied DB cluster identifier. If this parameter is specified, it must - * match the identifier of an existing DB cluster. It returns information from the - * specific DB cluster's automated backup. This parameter isn't case-sensitive.

    - */ - DBClusterIdentifier?: string; - - /** - * @public - *

    A filter that specifies which resources to return based on status.

    - *

    Supported filters are the following:

    - *
      - *
    • - *

      - * status - *

      - *
        - *
      • - *

        - * retained - Automated backups for deleted clusters and after backup replication is stopped.

        - *
      • - *
      - *
    • - *
    • - *

      - * db-cluster-id - Accepts DB cluster identifiers and Amazon Resource Names (ARNs). - * The results list includes only information about the DB cluster automated backups identified by these ARNs.

      - *
    • - *
    • - *

      - * db-cluster-resource-id - Accepts DB resource identifiers and Amazon Resource Names (ARNs). - * The results list includes only information about the DB cluster resources identified by these ARNs.

      - *
    • - *
    - *

    Returns all resources by default. The status for each resource is specified in the response.

    - */ - Filters?: Filter[]; - - /** - * @public - *

    The maximum number of records to include in the response. If more records exist than the specified MaxRecords - * value, a pagination token called a marker is included in the response so that you can retrieve the remaining results.

    - */ - MaxRecords?: number; - - /** - * @public - *

    The pagination token provided in the previous request. If this parameter is specified the response includes only - * records beyond the marker, up to MaxRecords.

    - */ - Marker?: string; -} - -/** - * @public - *

    Contains the result of a successful invocation of the DescribeDBClusterBacktracks action.

    - */ -export interface DBClusterBacktrackMessage { - /** - * @public - *

    A pagination token that can be used in a later DescribeDBClusterBacktracks request.

    - */ - Marker?: string; - - /** - * @public - *

    Contains a list of backtracks for the user.

    - */ - DBClusterBacktracks?: DBClusterBacktrack[]; -} - -/** - * @public - *

    - * BacktrackIdentifier doesn't refer to an existing backtrack.

    - */ -export class DBClusterBacktrackNotFoundFault extends __BaseException { - readonly name: "DBClusterBacktrackNotFoundFault" = "DBClusterBacktrackNotFoundFault"; - readonly $fault: "client" = "client"; - /** - * @internal - */ - constructor(opts: __ExceptionOptionType) { - super({ - name: "DBClusterBacktrackNotFoundFault", - $fault: "client", - ...opts, - }); - Object.setPrototypeOf(this, DBClusterBacktrackNotFoundFault.prototype); - } -} - -/** - * @public - *

    - */ -export interface DescribeDBClusterBacktracksMessage { - /** - * @public - *

    The DB cluster identifier of the DB cluster to be described. This parameter is - * stored as a lowercase string.

    - *

    Constraints:

    - *
      - *
    • - *

      Must contain from 1 to 63 alphanumeric characters or hyphens.

      - *
    • - *
    • - *

      First character must be a letter.

      - *
    • - *
    • - *

      Can't end with a hyphen or contain two consecutive hyphens.

      - *
    • - *
    - *

    Example: my-cluster1 - *

    - */ - DBClusterIdentifier: string | undefined; - - /** - * @public - *

    If specified, this value is the backtrack identifier of the backtrack to be - * described.

    - *

    Constraints:

    - * - *

    Example: 123e4567-e89b-12d3-a456-426655440000 - *

    - */ - BacktrackIdentifier?: string; - - /** - * @public - *

    A filter that specifies one or more DB clusters to describe. Supported filters - * include the following:

    - *
      - *
    • - *

      - * db-cluster-backtrack-id - Accepts backtrack identifiers. The - * results list includes information about only the backtracks identified by these - * identifiers.

      - *
    • - *
    • - *

      - * db-cluster-backtrack-status - Accepts any of the following backtrack status values:

      - *
        - *
      • - *

        - * applying - *

        - *
      • - *
      • - *

        - * completed - *

        - *
      • - *
      • - *

        - * failed - *

        - *
      • - *
      • - *

        - * pending - *

        - *
      • - *
      - *

      The results list includes information about only the backtracks identified - * by these values.

      - *
    • - *
    - */ - Filters?: Filter[]; - - /** - * @public - *

    The maximum number of records to include in the response. - * If more records exist than the specified MaxRecords value, - * a pagination token called a marker is included in the response so you can retrieve the remaining results.

    - *

    Default: 100

    - *

    Constraints: Minimum 20, maximum 100.

    - */ - MaxRecords?: number; - - /** - * @public - *

    An optional pagination token provided by a previous - * DescribeDBClusterBacktracks request. - * If this parameter is specified, the response includes - * only records beyond the marker, - * up to the value specified by MaxRecords.

    - */ - Marker?: string; -} - -/** - * @public + * @internal */ -export interface DBClusterEndpointMessage { - /** - * @public - *

    An optional pagination token provided by a previous - * DescribeDBClusterEndpoints request. - * If this parameter is specified, the response includes - * only records beyond the marker, - * up to the value specified by MaxRecords.

    - */ - Marker?: string; - - /** - * @public - *

    Contains the details of the endpoints associated with the cluster - * and matching any filter conditions.

    - */ - DBClusterEndpoints?: DBClusterEndpoint[]; -} +export const CreateTenantDatabaseMessageFilterSensitiveLog = (obj: CreateTenantDatabaseMessage): any => ({ + ...obj, + ...(obj.MasterUserPassword && { MasterUserPassword: SENSITIVE_STRING }), +}); /** - * @public + * @internal */ -export interface DescribeDBClusterEndpointsMessage { - /** - * @public - *

    The DB cluster identifier of the DB cluster associated with the endpoint. This parameter is - * stored as a lowercase string.

    - */ - DBClusterIdentifier?: string; - - /** - * @public - *

    The identifier of the endpoint to describe. This parameter is stored as a lowercase string.

    - */ - DBClusterEndpointIdentifier?: string; - - /** - * @public - *

    A set of name-value pairs that define which endpoints to include in the output. - * The filters are specified as name-value pairs, in the format - * Name=endpoint_type,Values=endpoint_type1,endpoint_type2,.... - * Name can be one of: db-cluster-endpoint-type, db-cluster-endpoint-custom-type, db-cluster-endpoint-id, db-cluster-endpoint-status. - * Values for the db-cluster-endpoint-type filter can be one or more of: reader, writer, custom. - * Values for the db-cluster-endpoint-custom-type filter can be one or more of: reader, any. - * Values for the db-cluster-endpoint-status filter can be one or more of: available, creating, deleting, inactive, modifying.

    - */ - Filters?: Filter[]; - - /** - * @public - *

    The maximum number of records to include in the response. - * If more records exist than the specified MaxRecords value, - * a pagination token called a marker is included in the response so you can retrieve the remaining results.

    - *

    Default: 100

    - *

    Constraints: Minimum 20, maximum 100.

    - */ - MaxRecords?: number; - - /** - * @public - *

    An optional pagination token provided by a previous - * DescribeDBClusterEndpoints request. - * If this parameter is specified, the response includes - * only records beyond the marker, - * up to the value specified by MaxRecords.

    - */ - Marker?: string; -} +export const TenantDatabasePendingModifiedValuesFilterSensitiveLog = ( + obj: TenantDatabasePendingModifiedValues +): any => ({ + ...obj, + ...(obj.MasterUserPassword && { MasterUserPassword: SENSITIVE_STRING }), +}); /** - * @public - *

    + * @internal */ -export interface DBClusterParameterGroupsMessage { - /** - * @public - *

    An optional pagination token provided by a previous - * DescribeDBClusterParameterGroups request. - * If this parameter is specified, the response includes - * only records beyond the marker, - * up to the value specified by MaxRecords.

    - */ - Marker?: string; - - /** - * @public - *

    A list of DB cluster parameter groups.

    - */ - DBClusterParameterGroups?: DBClusterParameterGroup[]; -} +export const TenantDatabaseFilterSensitiveLog = (obj: TenantDatabase): any => ({ + ...obj, + ...(obj.PendingModifiedValues && { + PendingModifiedValues: TenantDatabasePendingModifiedValuesFilterSensitiveLog(obj.PendingModifiedValues), + }), +}); /** - * @public - *

    + * @internal */ -export interface DescribeDBClusterParameterGroupsMessage { - /** - * @public - *

    The name of a specific DB cluster parameter group to return details for.

    - *

    Constraints:

    - *
      - *
    • - *

      If supplied, must match the name of an existing DBClusterParameterGroup.

      - *
    • - *
    - */ - DBClusterParameterGroupName?: string; - - /** - * @public - *

    This parameter isn't currently supported.

    - */ - Filters?: Filter[]; - - /** - * @public - *

    The maximum number of records to include in the response. - * If more records exist than the specified MaxRecords value, - * a pagination token called a marker is included in the response so you can retrieve the remaining results.

    - *

    Default: 100

    - *

    Constraints: Minimum 20, maximum 100.

    - */ - MaxRecords?: number; - - /** - * @public - *

    An optional pagination token provided by a previous - * DescribeDBClusterParameterGroups request. - * If this parameter is specified, the response includes - * only records beyond the marker, - * up to the value specified by MaxRecords.

    - */ - Marker?: string; -} +export const CreateTenantDatabaseResultFilterSensitiveLog = (obj: CreateTenantDatabaseResult): any => ({ + ...obj, + ...(obj.TenantDatabase && { TenantDatabase: TenantDatabaseFilterSensitiveLog(obj.TenantDatabase) }), +}); /** - * @public - * @enum + * @internal */ -export const ApplyMethod = { - immediate: "immediate", - pending_reboot: "pending-reboot", -} as const; - -/** - * @public - */ -export type ApplyMethod = (typeof ApplyMethod)[keyof typeof ApplyMethod]; - -/** - * @public - *

    This data type is used as a request parameter in the - * ModifyDBParameterGroup and ResetDBParameterGroup actions.

    - *

    This data type is used as a response element in the - * DescribeEngineDefaultParameters and DescribeDBParameters actions.

    - */ -export interface Parameter { - /** - * @public - *

    The name of the parameter.

    - */ - ParameterName?: string; - - /** - * @public - *

    The value of the parameter.

    - */ - ParameterValue?: string; - - /** - * @public - *

    Provides a description of the parameter.

    - */ - Description?: string; - - /** - * @public - *

    The source of the parameter value.

    - */ - Source?: string; - - /** - * @public - *

    Specifies the engine specific parameters type.

    - */ - ApplyType?: string; - - /** - * @public - *

    Specifies the valid data type for the parameter.

    - */ - DataType?: string; - - /** - * @public - *

    Specifies the valid range of values for the parameter.

    - */ - AllowedValues?: string; - - /** - * @public - *

    Indicates whether (true) or not (false) the parameter can be modified. - * Some parameters have security or operational implications - * that prevent them from being changed.

    - */ - IsModifiable?: boolean; - - /** - * @public - *

    The earliest engine version to which the parameter can apply.

    - */ - MinimumEngineVersion?: string; - - /** - * @public - *

    Indicates when to apply parameter updates.

    - */ - ApplyMethod?: ApplyMethod; - - /** - * @public - *

    The valid DB engine modes.

    - */ - SupportedEngineModes?: string[]; -} +export const DeleteTenantDatabaseResultFilterSensitiveLog = (obj: DeleteTenantDatabaseResult): any => ({ + ...obj, + ...(obj.TenantDatabase && { TenantDatabase: TenantDatabaseFilterSensitiveLog(obj.TenantDatabase) }), +}); diff --git a/clients/client-rds/src/models/models_1.ts b/clients/client-rds/src/models/models_1.ts index 9a66e88958345..a8237bc070129 100644 --- a/clients/client-rds/src/models/models_1.ts +++ b/clients/client-rds/src/models/models_1.ts @@ -1,5 +1,5 @@ // smithy-typescript generated code -import { ExceptionOptionType as __ExceptionOptionType } from "@smithy/smithy-client"; +import { ExceptionOptionType as __ExceptionOptionType, SENSITIVE_STRING } from "@smithy/smithy-client"; import { ActivityStreamMode, @@ -10,6 +10,9 @@ import { BlueGreenDeployment, Certificate, DBCluster, + DBClusterBacktrack, + DBClusterEndpoint, + DBClusterParameterGroup, DBClusterSnapshot, DBEngineVersion, DBInstance, @@ -28,7 +31,6 @@ import { Integration, OptionGroup, OptionSetting, - Parameter, ProcessorFeature, RdsCustomClusterConfiguration, ReplicaMode, @@ -36,170 +38,196 @@ import { ScalingConfiguration, ServerlessV2ScalingConfiguration, Tag, + TenantDatabase, + TenantDatabaseFilterSensitiveLog, UserAuthConfig, } from "./models_0"; import { RDSServiceException as __BaseException } from "./RDSServiceException"; /** * @public - *

    Provides details about a DB cluster parameter group including the parameters in the DB cluster parameter group.

    */ -export interface DBClusterParameterGroupDetails { - /** - * @public - *

    Provides a list of parameters for the DB cluster parameter group.

    - */ - Parameters?: Parameter[]; - +export interface DescribeDBClusterAutomatedBackupsMessage { /** * @public - *

    An optional pagination token provided by a previous - * DescribeDBClusterParameters request. - * If this parameter is specified, the response includes - * only records beyond the marker, - * up to the value specified by MaxRecords.

    + *

    The resource ID of the DB cluster that is the source of the automated backup. This parameter isn't case-sensitive.

    */ - Marker?: string; -} + DbClusterResourceId?: string; -/** - * @public - *

    - */ -export interface DescribeDBClusterParametersMessage { /** * @public - *

    The name of a specific DB cluster parameter group to return parameter details for.

    - *

    Constraints:

    - *
      - *
    • - *

      If supplied, must match the name of an existing DBClusterParameterGroup.

      - *
    • - *
    + *

    (Optional) The user-supplied DB cluster identifier. If this parameter is specified, it must + * match the identifier of an existing DB cluster. It returns information from the + * specific DB cluster's automated backup. This parameter isn't case-sensitive.

    */ - DBClusterParameterGroupName: string | undefined; + DBClusterIdentifier?: string; /** * @public - *

    A specific source to return parameters for.

    - *

    Valid Values:

    + *

    A filter that specifies which resources to return based on status.

    + *

    Supported filters are the following:

    *
      *
    • *

      - * customer + * status *

      + *
        + *
      • + *

        + * retained - Automated backups for deleted clusters and after backup replication is stopped.

        + *
      • + *
      *
    • *
    • *

      - * engine - *

      + * db-cluster-id - Accepts DB cluster identifiers and Amazon Resource Names (ARNs). + * The results list includes only information about the DB cluster automated backups identified by these ARNs.

      *
    • *
    • *

      - * service - *

      + * db-cluster-resource-id - Accepts DB resource identifiers and Amazon Resource Names (ARNs). + * The results list includes only information about the DB cluster resources identified by these ARNs.

      *
    • *
    - */ - Source?: string; - - /** - * @public - *

    This parameter isn't currently supported.

    + *

    Returns all resources by default. The status for each resource is specified in the response.

    */ Filters?: Filter[]; /** * @public - *

    The maximum number of records to include in the response. - * If more records exist than the specified MaxRecords value, - * a pagination token called a marker is included in the response so you can retrieve the remaining results.

    - *

    Default: 100

    - *

    Constraints: Minimum 20, maximum 100.

    + *

    The maximum number of records to include in the response. If more records exist than the specified MaxRecords + * value, a pagination token called a marker is included in the response so that you can retrieve the remaining results.

    */ MaxRecords?: number; /** * @public - *

    An optional pagination token provided by a previous - * DescribeDBClusterParameters request. - * If this parameter is specified, the response includes - * only records beyond the marker, - * up to the value specified by MaxRecords.

    + *

    The pagination token provided in the previous request. If this parameter is specified the response includes only + * records beyond the marker, up to MaxRecords.

    */ Marker?: string; } /** * @public - *

    Contains the result of a successful invocation of the DescribeDBClusters action.

    + *

    Contains the result of a successful invocation of the DescribeDBClusterBacktracks action.

    */ -export interface DBClusterMessage { +export interface DBClusterBacktrackMessage { /** * @public - *

    A pagination token that can be used in a later DescribeDBClusters request.

    + *

    A pagination token that can be used in a later DescribeDBClusterBacktracks request.

    */ Marker?: string; /** * @public - *

    Contains a list of DB clusters for the user.

    + *

    Contains a list of backtracks for the user.

    */ - DBClusters?: DBCluster[]; + DBClusterBacktracks?: DBClusterBacktrack[]; +} + +/** + * @public + *

    + * BacktrackIdentifier doesn't refer to an existing backtrack.

    + */ +export class DBClusterBacktrackNotFoundFault extends __BaseException { + readonly name: "DBClusterBacktrackNotFoundFault" = "DBClusterBacktrackNotFoundFault"; + readonly $fault: "client" = "client"; + /** + * @internal + */ + constructor(opts: __ExceptionOptionType) { + super({ + name: "DBClusterBacktrackNotFoundFault", + $fault: "client", + ...opts, + }); + Object.setPrototypeOf(this, DBClusterBacktrackNotFoundFault.prototype); + } } /** * @public *

    */ -export interface DescribeDBClustersMessage { +export interface DescribeDBClusterBacktracksMessage { /** * @public - *

    The user-supplied DB cluster identifier or the Amazon Resource Name (ARN) of the DB cluster. If this parameter is specified, - * information for only the specific DB cluster is returned. This parameter isn't case-sensitive.

    + *

    The DB cluster identifier of the DB cluster to be described. This parameter is + * stored as a lowercase string.

    *

    Constraints:

    *
      *
    • - *

      If supplied, must match an existing DB cluster identifier.

      + *

      Must contain from 1 to 63 alphanumeric characters or hyphens.

      + *
    • + *
    • + *

      First character must be a letter.

      + *
    • + *
    • + *

      Can't end with a hyphen or contain two consecutive hyphens.

      *
    • *
    + *

    Example: my-cluster1 + *

    */ - DBClusterIdentifier?: string; + DBClusterIdentifier: string | undefined; /** * @public - *

    A filter that specifies one or more DB clusters to describe.

    - *

    Supported Filters:

    + *

    If specified, this value is the backtrack identifier of the backtrack to be + * described.

    + *

    Constraints:

    *
      *
    • - *

      - * clone-group-id - Accepts clone group identifiers. - * The results list only includes information about - * the DB clusters associated with these clone groups.

      - *
    • - *
    • - *

      - * db-cluster-id - Accepts DB cluster identifiers and DB - * cluster Amazon Resource Names (ARNs). The results list only includes information about - * the DB clusters identified by these ARNs.

      - *
    • - *
    • - *

      - * db-cluster-resource-id - Accepts DB cluster resource identifiers. - * The results list will only include information about the DB clusters identified - * by these DB cluster resource identifiers.

      + *

      Must contain a valid universally unique identifier (UUID). For more information about UUIDs, see + * Universally unique + * identifier.

      *
    • + *
    + *

    Example: 123e4567-e89b-12d3-a456-426655440000 + *

    + */ + BacktrackIdentifier?: string; + + /** + * @public + *

    A filter that specifies one or more DB clusters to describe. Supported filters + * include the following:

    + *
      *
    • *

      - * domain - Accepts Active Directory directory IDs. - * The results list only includes information about - * the DB clusters associated with these domains.

      + * db-cluster-backtrack-id - Accepts backtrack identifiers. The + * results list includes information about only the backtracks identified by these + * identifiers.

      *
    • *
    • *

      - * engine - Accepts engine names. - * The results list only includes information about - * the DB clusters for these engines.

      + * db-cluster-backtrack-status - Accepts any of the following backtrack status values:

      + *
        + *
      • + *

        + * applying + *

        + *
      • + *
      • + *

        + * completed + *

        + *
      • + *
      • + *

        + * failed + *

        + *
      • + *
      • + *

        + * pending + *

        + *
      • + *
      + *

      The results list includes information about only the backtracks identified + * by these values.

      *
    • *
    */ @@ -209,7 +237,7 @@ export interface DescribeDBClustersMessage { * @public *

    The maximum number of records to include in the response. * If more records exist than the specified MaxRecords value, - * a pagination token called a marker is included in the response so you can retrieve the remaining results.

    + * a pagination token called a marker is included in the response so you can retrieve the remaining results.

    *

    Default: 100

    *

    Constraints: Minimum 20, maximum 100.

    */ @@ -218,155 +246,570 @@ export interface DescribeDBClustersMessage { /** * @public *

    An optional pagination token provided by a previous - * DescribeDBClusters request. + * DescribeDBClusterBacktracks request. * If this parameter is specified, the response includes * only records beyond the marker, * up to the value specified by MaxRecords.

    */ Marker?: string; - - /** - * @public - *

    Specifies whether the output includes information about clusters - * shared from other Amazon Web Services accounts.

    - */ - IncludeShared?: boolean; } /** * @public - *

    */ -export interface DescribeDBClusterSnapshotAttributesMessage { +export interface DBClusterEndpointMessage { /** * @public - *

    The identifier for the DB cluster snapshot to describe the attributes for.

    + *

    An optional pagination token provided by a previous + * DescribeDBClusterEndpoints request. + * If this parameter is specified, the response includes + * only records beyond the marker, + * up to the value specified by MaxRecords.

    */ - DBClusterSnapshotIdentifier: string | undefined; + Marker?: string; + + /** + * @public + *

    Contains the details of the endpoints associated with the cluster + * and matching any filter conditions.

    + */ + DBClusterEndpoints?: DBClusterEndpoint[]; } /** * @public - *

    Contains the name and values of a manual DB cluster snapshot attribute.

    - *

    Manual DB cluster snapshot attributes are used to authorize other Amazon Web Services accounts - * to restore a manual DB cluster snapshot. For more information, see the ModifyDBClusterSnapshotAttribute - * API action.

    */ -export interface DBClusterSnapshotAttribute { +export interface DescribeDBClusterEndpointsMessage { /** * @public - *

    The name of the manual DB cluster snapshot attribute.

    - *

    The attribute named restore refers to the list of Amazon Web Services accounts that - * have permission to copy or restore the manual DB cluster snapshot. For more information, - * see the ModifyDBClusterSnapshotAttribute - * API action.

    + *

    The DB cluster identifier of the DB cluster associated with the endpoint. This parameter is + * stored as a lowercase string.

    */ - AttributeName?: string; + DBClusterIdentifier?: string; /** * @public - *

    The value(s) for the manual DB cluster snapshot attribute.

    - *

    If the AttributeName field is set to restore, then this element - * returns a list of IDs of the Amazon Web Services accounts that are authorized to copy or restore the manual - * DB cluster snapshot. If a value of all is in the list, then the manual DB cluster snapshot - * is public and available for any Amazon Web Services account to copy or restore.

    + *

    The identifier of the endpoint to describe. This parameter is stored as a lowercase string.

    */ - AttributeValues?: string[]; -} + DBClusterEndpointIdentifier?: string; -/** - * @public - *

    Contains the results of a successful call to the DescribeDBClusterSnapshotAttributes - * API action.

    - *

    Manual DB cluster snapshot attributes are used to authorize other Amazon Web Services accounts - * to copy or restore a manual DB cluster snapshot. For more information, see the ModifyDBClusterSnapshotAttribute - * API action.

    - */ -export interface DBClusterSnapshotAttributesResult { /** * @public - *

    The identifier of the manual DB cluster snapshot that the attributes apply to.

    + *

    A set of name-value pairs that define which endpoints to include in the output. + * The filters are specified as name-value pairs, in the format + * Name=endpoint_type,Values=endpoint_type1,endpoint_type2,.... + * Name can be one of: db-cluster-endpoint-type, db-cluster-endpoint-custom-type, db-cluster-endpoint-id, db-cluster-endpoint-status. + * Values for the db-cluster-endpoint-type filter can be one or more of: reader, writer, custom. + * Values for the db-cluster-endpoint-custom-type filter can be one or more of: reader, any. + * Values for the db-cluster-endpoint-status filter can be one or more of: available, creating, deleting, inactive, modifying.

    */ - DBClusterSnapshotIdentifier?: string; + Filters?: Filter[]; /** * @public - *

    The list of attributes and values for the manual DB cluster snapshot.

    + *

    The maximum number of records to include in the response. + * If more records exist than the specified MaxRecords value, + * a pagination token called a marker is included in the response so you can retrieve the remaining results.

    + *

    Default: 100

    + *

    Constraints: Minimum 20, maximum 100.

    */ - DBClusterSnapshotAttributes?: DBClusterSnapshotAttribute[]; -} + MaxRecords?: number; -/** - * @public - */ -export interface DescribeDBClusterSnapshotAttributesResult { /** * @public - *

    Contains the results of a successful call to the DescribeDBClusterSnapshotAttributes - * API action.

    - *

    Manual DB cluster snapshot attributes are used to authorize other Amazon Web Services accounts - * to copy or restore a manual DB cluster snapshot. For more information, see the ModifyDBClusterSnapshotAttribute - * API action.

    + *

    An optional pagination token provided by a previous + * DescribeDBClusterEndpoints request. + * If this parameter is specified, the response includes + * only records beyond the marker, + * up to the value specified by MaxRecords.

    */ - DBClusterSnapshotAttributesResult?: DBClusterSnapshotAttributesResult; + Marker?: string; } /** * @public - *

    Provides a list of DB cluster snapshots for the user as the result of a call to the DescribeDBClusterSnapshots action.

    + *

    */ -export interface DBClusterSnapshotMessage { +export interface DBClusterParameterGroupsMessage { /** * @public *

    An optional pagination token provided by a previous - * DescribeDBClusterSnapshots request. - * If this parameter is specified, the response includes - * only records beyond the marker, - * up to the value specified by MaxRecords.

    + * DescribeDBClusterParameterGroups request. + * If this parameter is specified, the response includes + * only records beyond the marker, + * up to the value specified by MaxRecords.

    */ Marker?: string; /** * @public - *

    Provides a list of DB cluster snapshots for the user.

    + *

    A list of DB cluster parameter groups.

    */ - DBClusterSnapshots?: DBClusterSnapshot[]; + DBClusterParameterGroups?: DBClusterParameterGroup[]; } /** * @public *

    */ -export interface DescribeDBClusterSnapshotsMessage { +export interface DescribeDBClusterParameterGroupsMessage { /** * @public - *

    The ID of the DB cluster to retrieve the list of DB cluster snapshots for. - * This parameter can't be used in conjunction with the - * DBClusterSnapshotIdentifier parameter. - * This parameter isn't case-sensitive.

    + *

    The name of a specific DB cluster parameter group to return details for.

    *

    Constraints:

    *
      *
    • - *

      If supplied, must match the identifier of an existing DBCluster.

      + *

      If supplied, must match the name of an existing DBClusterParameterGroup.

      *
    • *
    */ - DBClusterIdentifier?: string; + DBClusterParameterGroupName?: string; /** * @public - *

    A specific DB cluster snapshot identifier to describe. - * This parameter can't be used in conjunction with the - * DBClusterIdentifier parameter. - * This value is stored as a lowercase string.

    - *

    Constraints:

    - *
      - *
    • - *

      If supplied, must match the identifier of an existing DBClusterSnapshot.

      - *
    • - *
    • - *

      If this identifier is for an automated snapshot, the SnapshotType parameter must also be specified.

      - *
    • + *

      This parameter isn't currently supported.

      + */ + Filters?: Filter[]; + + /** + * @public + *

      The maximum number of records to include in the response. + * If more records exist than the specified MaxRecords value, + * a pagination token called a marker is included in the response so you can retrieve the remaining results.

      + *

      Default: 100

      + *

      Constraints: Minimum 20, maximum 100.

      + */ + MaxRecords?: number; + + /** + * @public + *

      An optional pagination token provided by a previous + * DescribeDBClusterParameterGroups request. + * If this parameter is specified, the response includes + * only records beyond the marker, + * up to the value specified by MaxRecords.

      + */ + Marker?: string; +} + +/** + * @public + * @enum + */ +export const ApplyMethod = { + immediate: "immediate", + pending_reboot: "pending-reboot", +} as const; + +/** + * @public + */ +export type ApplyMethod = (typeof ApplyMethod)[keyof typeof ApplyMethod]; + +/** + * @public + *

      This data type is used as a request parameter in the + * ModifyDBParameterGroup and ResetDBParameterGroup actions.

      + *

      This data type is used as a response element in the + * DescribeEngineDefaultParameters and DescribeDBParameters actions.

      + */ +export interface Parameter { + /** + * @public + *

      The name of the parameter.

      + */ + ParameterName?: string; + + /** + * @public + *

      The value of the parameter.

      + */ + ParameterValue?: string; + + /** + * @public + *

      Provides a description of the parameter.

      + */ + Description?: string; + + /** + * @public + *

      The source of the parameter value.

      + */ + Source?: string; + + /** + * @public + *

      Specifies the engine specific parameters type.

      + */ + ApplyType?: string; + + /** + * @public + *

      Specifies the valid data type for the parameter.

      + */ + DataType?: string; + + /** + * @public + *

      Specifies the valid range of values for the parameter.

      + */ + AllowedValues?: string; + + /** + * @public + *

      Indicates whether (true) or not (false) the parameter can be modified. + * Some parameters have security or operational implications + * that prevent them from being changed.

      + */ + IsModifiable?: boolean; + + /** + * @public + *

      The earliest engine version to which the parameter can apply.

      + */ + MinimumEngineVersion?: string; + + /** + * @public + *

      Indicates when to apply parameter updates.

      + */ + ApplyMethod?: ApplyMethod; + + /** + * @public + *

      The valid DB engine modes.

      + */ + SupportedEngineModes?: string[]; +} + +/** + * @public + *

      Provides details about a DB cluster parameter group including the parameters in the DB cluster parameter group.

      + */ +export interface DBClusterParameterGroupDetails { + /** + * @public + *

      Provides a list of parameters for the DB cluster parameter group.

      + */ + Parameters?: Parameter[]; + + /** + * @public + *

      An optional pagination token provided by a previous + * DescribeDBClusterParameters request. + * If this parameter is specified, the response includes + * only records beyond the marker, + * up to the value specified by MaxRecords.

      + */ + Marker?: string; +} + +/** + * @public + *

      + */ +export interface DescribeDBClusterParametersMessage { + /** + * @public + *

      The name of a specific DB cluster parameter group to return parameter details for.

      + *

      Constraints:

      + *
        + *
      • + *

        If supplied, must match the name of an existing DBClusterParameterGroup.

        + *
      • + *
      + */ + DBClusterParameterGroupName: string | undefined; + + /** + * @public + *

      A specific source to return parameters for.

      + *

      Valid Values:

      + *
        + *
      • + *

        + * customer + *

        + *
      • + *
      • + *

        + * engine + *

        + *
      • + *
      • + *

        + * service + *

        + *
      • + *
      + */ + Source?: string; + + /** + * @public + *

      This parameter isn't currently supported.

      + */ + Filters?: Filter[]; + + /** + * @public + *

      The maximum number of records to include in the response. + * If more records exist than the specified MaxRecords value, + * a pagination token called a marker is included in the response so you can retrieve the remaining results.

      + *

      Default: 100

      + *

      Constraints: Minimum 20, maximum 100.

      + */ + MaxRecords?: number; + + /** + * @public + *

      An optional pagination token provided by a previous + * DescribeDBClusterParameters request. + * If this parameter is specified, the response includes + * only records beyond the marker, + * up to the value specified by MaxRecords.

      + */ + Marker?: string; +} + +/** + * @public + *

      Contains the result of a successful invocation of the DescribeDBClusters action.

      + */ +export interface DBClusterMessage { + /** + * @public + *

      A pagination token that can be used in a later DescribeDBClusters request.

      + */ + Marker?: string; + + /** + * @public + *

      Contains a list of DB clusters for the user.

      + */ + DBClusters?: DBCluster[]; +} + +/** + * @public + *

      + */ +export interface DescribeDBClustersMessage { + /** + * @public + *

      The user-supplied DB cluster identifier or the Amazon Resource Name (ARN) of the DB cluster. If this parameter is specified, + * information for only the specific DB cluster is returned. This parameter isn't case-sensitive.

      + *

      Constraints:

      + *
        + *
      • + *

        If supplied, must match an existing DB cluster identifier.

        + *
      • + *
      + */ + DBClusterIdentifier?: string; + + /** + * @public + *

      A filter that specifies one or more DB clusters to describe.

      + *

      Supported Filters:

      + *
        + *
      • + *

        + * clone-group-id - Accepts clone group identifiers. + * The results list only includes information about + * the DB clusters associated with these clone groups.

        + *
      • + *
      • + *

        + * db-cluster-id - Accepts DB cluster identifiers and DB + * cluster Amazon Resource Names (ARNs). The results list only includes information about + * the DB clusters identified by these ARNs.

        + *
      • + *
      • + *

        + * db-cluster-resource-id - Accepts DB cluster resource identifiers. + * The results list will only include information about the DB clusters identified + * by these DB cluster resource identifiers.

        + *
      • + *
      • + *

        + * domain - Accepts Active Directory directory IDs. + * The results list only includes information about + * the DB clusters associated with these domains.

        + *
      • + *
      • + *

        + * engine - Accepts engine names. + * The results list only includes information about + * the DB clusters for these engines.

        + *
      • + *
      + */ + Filters?: Filter[]; + + /** + * @public + *

      The maximum number of records to include in the response. + * If more records exist than the specified MaxRecords value, + * a pagination token called a marker is included in the response so you can retrieve the remaining results.

      + *

      Default: 100

      + *

      Constraints: Minimum 20, maximum 100.

      + */ + MaxRecords?: number; + + /** + * @public + *

      An optional pagination token provided by a previous + * DescribeDBClusters request. + * If this parameter is specified, the response includes + * only records beyond the marker, + * up to the value specified by MaxRecords.

      + */ + Marker?: string; + + /** + * @public + *

      Specifies whether the output includes information about clusters + * shared from other Amazon Web Services accounts.

      + */ + IncludeShared?: boolean; +} + +/** + * @public + *

      + */ +export interface DescribeDBClusterSnapshotAttributesMessage { + /** + * @public + *

      The identifier for the DB cluster snapshot to describe the attributes for.

      + */ + DBClusterSnapshotIdentifier: string | undefined; +} + +/** + * @public + *

      Contains the name and values of a manual DB cluster snapshot attribute.

      + *

      Manual DB cluster snapshot attributes are used to authorize other Amazon Web Services accounts + * to restore a manual DB cluster snapshot. For more information, see the ModifyDBClusterSnapshotAttribute + * API action.

      + */ +export interface DBClusterSnapshotAttribute { + /** + * @public + *

      The name of the manual DB cluster snapshot attribute.

      + *

      The attribute named restore refers to the list of Amazon Web Services accounts that + * have permission to copy or restore the manual DB cluster snapshot. For more information, + * see the ModifyDBClusterSnapshotAttribute + * API action.

      + */ + AttributeName?: string; + + /** + * @public + *

      The value(s) for the manual DB cluster snapshot attribute.

      + *

      If the AttributeName field is set to restore, then this element + * returns a list of IDs of the Amazon Web Services accounts that are authorized to copy or restore the manual + * DB cluster snapshot. If a value of all is in the list, then the manual DB cluster snapshot + * is public and available for any Amazon Web Services account to copy or restore.

      + */ + AttributeValues?: string[]; +} + +/** + * @public + *

      Contains the results of a successful call to the DescribeDBClusterSnapshotAttributes + * API action.

      + *

      Manual DB cluster snapshot attributes are used to authorize other Amazon Web Services accounts + * to copy or restore a manual DB cluster snapshot. For more information, see the ModifyDBClusterSnapshotAttribute + * API action.

      + */ +export interface DBClusterSnapshotAttributesResult { + /** + * @public + *

      The identifier of the manual DB cluster snapshot that the attributes apply to.

      + */ + DBClusterSnapshotIdentifier?: string; + + /** + * @public + *

      The list of attributes and values for the manual DB cluster snapshot.

      + */ + DBClusterSnapshotAttributes?: DBClusterSnapshotAttribute[]; +} + +/** + * @public + */ +export interface DescribeDBClusterSnapshotAttributesResult { + /** + * @public + *

      Contains the results of a successful call to the DescribeDBClusterSnapshotAttributes + * API action.

      + *

      Manual DB cluster snapshot attributes are used to authorize other Amazon Web Services accounts + * to copy or restore a manual DB cluster snapshot. For more information, see the ModifyDBClusterSnapshotAttribute + * API action.

      + */ + DBClusterSnapshotAttributesResult?: DBClusterSnapshotAttributesResult; +} + +/** + * @public + *

      Provides a list of DB cluster snapshots for the user as the result of a call to the DescribeDBClusterSnapshots action.

      + */ +export interface DBClusterSnapshotMessage { + /** + * @public + *

      An optional pagination token provided by a previous + * DescribeDBClusterSnapshots request. + * If this parameter is specified, the response includes + * only records beyond the marker, + * up to the value specified by MaxRecords.

      + */ + Marker?: string; + + /** + * @public + *

      Provides a list of DB cluster snapshots for the user.

      + */ + DBClusterSnapshots?: DBClusterSnapshot[]; +} + +/** + * @public + *

      + */ +export interface DescribeDBClusterSnapshotsMessage { + /** + * @public + *

      The ID of the DB cluster to retrieve the list of DB cluster snapshots for. + * This parameter can't be used in conjunction with the + * DBClusterSnapshotIdentifier parameter. + * This parameter isn't case-sensitive.

      + *

      Constraints:

      + *
        + *
      • + *

        If supplied, must match the identifier of an existing DBCluster.

        + *
      • + *
      + */ + DBClusterIdentifier?: string; + + /** + * @public + *

      A specific DB cluster snapshot identifier to describe. + * This parameter can't be used in conjunction with the + * DBClusterIdentifier parameter. + * This value is stored as a lowercase string.

      + *

      Constraints:

      + *
        + *
      • + *

        If supplied, must match the identifier of an existing DBClusterSnapshot.

        + *
      • + *
      • + *

        If this identifier is for an automated snapshot, the SnapshotType parameter must also be specified.

        + *
      • *
      */ DBClusterSnapshotIdentifier?: string; @@ -1564,279 +2007,541 @@ export interface TargetHealth { * @public *

      The reason for the current health State of the RDS Proxy target.

      */ - Reason?: TargetHealthReason; + Reason?: TargetHealthReason; + + /** + * @public + *

      A description of the health of the RDS Proxy target. + * If the State is AVAILABLE, a description is not included.

      + */ + Description?: string; +} + +/** + * @public + * @enum + */ +export const TargetType = { + RDS_INSTANCE: "RDS_INSTANCE", + RDS_SERVERLESS_ENDPOINT: "RDS_SERVERLESS_ENDPOINT", + TRACKED_CLUSTER: "TRACKED_CLUSTER", +} as const; + +/** + * @public + */ +export type TargetType = (typeof TargetType)[keyof typeof TargetType]; + +/** + * @public + *

      Contains the details for an RDS Proxy target. It represents an RDS DB instance or Aurora DB cluster + * that the proxy can connect to. One or more targets are associated with an RDS Proxy target group.

      + *

      This data type is used as a response element in the DescribeDBProxyTargets action.

      + */ +export interface DBProxyTarget { + /** + * @public + *

      The Amazon Resource Name (ARN) for the RDS DB instance or Aurora DB cluster.

      + */ + TargetArn?: string; + + /** + * @public + *

      The writer endpoint for the RDS DB instance or Aurora DB cluster.

      + */ + Endpoint?: string; + + /** + * @public + *

      The DB cluster identifier when the target represents an Aurora DB cluster. This field is blank when the target represents an RDS DB instance.

      + */ + TrackedClusterId?: string; + + /** + * @public + *

      The identifier representing the target. It can be the instance identifier for an RDS DB instance, + * or the cluster identifier for an Aurora DB cluster.

      + */ + RdsResourceId?: string; + + /** + * @public + *

      The port that the RDS Proxy uses to connect to the target RDS DB instance or Aurora DB cluster.

      + */ + Port?: number; + + /** + * @public + *

      Specifies the kind of database, such as an RDS DB instance or an Aurora DB cluster, that the target represents.

      + */ + Type?: TargetType; + + /** + * @public + *

      A value that indicates whether the target of the proxy can be used for read/write or read-only operations.

      + */ + Role?: TargetRole; + + /** + * @public + *

      Information about the connection health of the RDS Proxy target.

      + */ + TargetHealth?: TargetHealth; +} + +/** + * @public + */ +export interface DescribeDBProxyTargetsResponse { + /** + * @public + *

      An arbitrary number of DBProxyTarget objects, containing details of the corresponding targets.

      + */ + Targets?: DBProxyTarget[]; + + /** + * @public + *

      An optional pagination token provided by a previous request. + * If this parameter is specified, the response includes only records beyond the marker, + * up to the value specified by MaxRecords.

      + */ + Marker?: string; +} + +/** + * @public + *

      Contains the result of a successful invocation of the DescribeDBSecurityGroups action.

      + */ +export interface DBSecurityGroupMessage { + /** + * @public + *

      An optional pagination token provided by a previous request. + * If this parameter is specified, the response includes + * only records beyond the marker, + * up to the value specified by MaxRecords.

      + */ + Marker?: string; + + /** + * @public + *

      A list of DBSecurityGroup instances.

      + */ + DBSecurityGroups?: DBSecurityGroup[]; +} + +/** + * @public + *

      + */ +export interface DescribeDBSecurityGroupsMessage { + /** + * @public + *

      The name of the DB security group to return details for.

      + */ + DBSecurityGroupName?: string; + + /** + * @public + *

      This parameter isn't currently supported.

      + */ + Filters?: Filter[]; + + /** + * @public + *

      The maximum number of records to include in the response. + * If more records exist than the specified MaxRecords value, + * a pagination token called a marker is included in the response so that + * you can retrieve the remaining results.

      + *

      Default: 100

      + *

      Constraints: Minimum 20, maximum 100.

      + */ + MaxRecords?: number; + + /** + * @public + *

      An optional pagination token provided by a previous + * DescribeDBSecurityGroups request. + * If this parameter is specified, the response includes + * only records beyond the marker, + * up to the value specified by MaxRecords.

      + */ + Marker?: string; +} + +/** + * @public + *

      + */ +export interface DescribeDBSnapshotAttributesMessage { + /** + * @public + *

      The identifier for the DB snapshot to describe the attributes for.

      + */ + DBSnapshotIdentifier: string | undefined; +} + +/** + * @public + *

      Contains the name and values of a manual DB snapshot attribute

      + *

      Manual DB snapshot attributes are used to authorize other Amazon Web Services accounts + * to restore a manual DB snapshot. For more information, see the ModifyDBSnapshotAttribute + * API.

      + */ +export interface DBSnapshotAttribute { + /** + * @public + *

      The name of the manual DB snapshot attribute.

      + *

      The attribute named restore refers to the list of Amazon Web Services accounts that + * have permission to copy or restore the manual DB cluster snapshot. For more information, + * see the ModifyDBSnapshotAttribute + * API action.

      + */ + AttributeName?: string; + + /** + * @public + *

      The value or values for the manual DB snapshot attribute.

      + *

      If the AttributeName field is set to restore, then this element + * returns a list of IDs of the Amazon Web Services accounts that are authorized to copy or restore the manual + * DB snapshot. If a value of all is in the list, then the manual DB snapshot + * is public and available for any Amazon Web Services account to copy or restore.

      + */ + AttributeValues?: string[]; +} + +/** + * @public + *

      Contains the results of a successful call to the DescribeDBSnapshotAttributes + * API action.

      + *

      Manual DB snapshot attributes are used to authorize other Amazon Web Services accounts + * to copy or restore a manual DB snapshot. For more information, see the ModifyDBSnapshotAttribute + * API action.

      + */ +export interface DBSnapshotAttributesResult { + /** + * @public + *

      The identifier of the manual DB snapshot that the attributes apply to.

      + */ + DBSnapshotIdentifier?: string; /** * @public - *

      A description of the health of the RDS Proxy target. - * If the State is AVAILABLE, a description is not included.

      + *

      The list of attributes and values for the manual DB snapshot.

      */ - Description?: string; + DBSnapshotAttributes?: DBSnapshotAttribute[]; } /** * @public - * @enum */ -export const TargetType = { - RDS_INSTANCE: "RDS_INSTANCE", - RDS_SERVERLESS_ENDPOINT: "RDS_SERVERLESS_ENDPOINT", - TRACKED_CLUSTER: "TRACKED_CLUSTER", -} as const; +export interface DescribeDBSnapshotAttributesResult { + /** + * @public + *

      Contains the results of a successful call to the DescribeDBSnapshotAttributes + * API action.

      + *

      Manual DB snapshot attributes are used to authorize other Amazon Web Services accounts + * to copy or restore a manual DB snapshot. For more information, see the ModifyDBSnapshotAttribute + * API action.

      + */ + DBSnapshotAttributesResult?: DBSnapshotAttributesResult; +} /** * @public + *

      Contains the result of a successful invocation of the DescribeDBSnapshots action.

      */ -export type TargetType = (typeof TargetType)[keyof typeof TargetType]; +export interface DBSnapshotMessage { + /** + * @public + *

      An optional pagination token provided by a previous request. + * If this parameter is specified, the response includes + * only records beyond the marker, + * up to the value specified by MaxRecords.

      + */ + Marker?: string; -/** - * @public - *

      Contains the details for an RDS Proxy target. It represents an RDS DB instance or Aurora DB cluster - * that the proxy can connect to. One or more targets are associated with an RDS Proxy target group.

      - *

      This data type is used as a response element in the DescribeDBProxyTargets action.

      - */ -export interface DBProxyTarget { /** * @public - *

      The Amazon Resource Name (ARN) for the RDS DB instance or Aurora DB cluster.

      + *

      A list of DBSnapshot instances.

      */ - TargetArn?: string; + DBSnapshots?: DBSnapshot[]; +} +/** + * @public + *

      + */ +export interface DescribeDBSnapshotsMessage { /** * @public - *

      The writer endpoint for the RDS DB instance or Aurora DB cluster.

      + *

      The ID of the DB instance to retrieve the list of DB snapshots for. + * This parameter isn't case-sensitive.

      + *

      Constraints:

      + *
        + *
      • + *

        If supplied, must match the identifier of an existing DBInstance.

        + *
      • + *
      */ - Endpoint?: string; + DBInstanceIdentifier?: string; /** * @public - *

      The DB cluster identifier when the target represents an Aurora DB cluster. This field is blank when the target represents an RDS DB instance.

      + *

      A specific DB snapshot identifier to describe. + * This value is stored as a lowercase string.

      + *

      Constraints:

      + *
        + *
      • + *

        If supplied, must match the identifier of an existing DBSnapshot.

        + *
      • + *
      • + *

        If this identifier is for an automated snapshot, the SnapshotType parameter must also be specified.

        + *
      • + *
      */ - TrackedClusterId?: string; + DBSnapshotIdentifier?: string; /** * @public - *

      The identifier representing the target. It can be the instance identifier for an RDS DB instance, - * or the cluster identifier for an Aurora DB cluster.

      + *

      The type of snapshots to be returned. You can specify one of the following values:

      + *
        + *
      • + *

        + * automated - Return all DB snapshots that have been automatically taken by + * Amazon RDS for my Amazon Web Services account.

        + *
      • + *
      • + *

        + * manual - Return all DB snapshots that have been taken by my Amazon Web Services account.

        + *
      • + *
      • + *

        + * shared - Return all manual DB snapshots that have been shared to my Amazon Web Services account.

        + *
      • + *
      • + *

        + * public - Return all DB snapshots that have been marked as public.

        + *
      • + *
      • + *

        + * awsbackup - Return the DB snapshots managed by the Amazon Web Services Backup service.

        + *

        For information about Amazon Web Services Backup, see the + * + * Amazon Web Services Backup Developer Guide. + * + *

        + *

        The awsbackup type does not apply to Aurora.

        + *
      • + *
      + *

      If you don't specify a SnapshotType value, then both automated and manual snapshots are + * returned. Shared and public DB snapshots are not included in the returned results by default. + * You can include shared snapshots with these results by enabling the IncludeShared + * parameter. You can include public snapshots with these results by enabling the + * IncludePublic parameter.

      + *

      The IncludeShared and IncludePublic parameters don't apply for SnapshotType values + * of manual or automated. The IncludePublic parameter doesn't apply when SnapshotType is + * set to shared. The IncludeShared parameter doesn't apply when SnapshotType is set to + * public.

      */ - RdsResourceId?: string; + SnapshotType?: string; /** * @public - *

      The port that the RDS Proxy uses to connect to the target RDS DB instance or Aurora DB cluster.

      + *

      A filter that specifies one or more DB snapshots to describe.

      + *

      Supported filters:

      + *
        + *
      • + *

        + * db-instance-id - Accepts DB instance identifiers and DB + * instance Amazon Resource Names (ARNs).

        + *
      • + *
      • + *

        + * db-snapshot-id - Accepts DB snapshot identifiers.

        + *
      • + *
      • + *

        + * dbi-resource-id - Accepts identifiers of source DB instances.

        + *
      • + *
      • + *

        + * snapshot-type - Accepts types of DB snapshots.

        + *
      • + *
      • + *

        + * engine - Accepts names of database engines.

        + *
      • + *
      */ - Port?: number; + Filters?: Filter[]; /** * @public - *

      Specifies the kind of database, such as an RDS DB instance or an Aurora DB cluster, that the target represents.

      + *

      The maximum number of records to include in the response. + * If more records exist than the specified MaxRecords value, + * a pagination token called a marker is included in the response so that + * you can retrieve the remaining results.

      + *

      Default: 100

      + *

      Constraints: Minimum 20, maximum 100.

      */ - Type?: TargetType; + MaxRecords?: number; /** * @public - *

      A value that indicates whether the target of the proxy can be used for read/write or read-only operations.

      + *

      An optional pagination token provided by a previous + * DescribeDBSnapshots request. + * If this parameter is specified, the response includes + * only records beyond the marker, + * up to the value specified by MaxRecords.

      */ - Role?: TargetRole; + Marker?: string; /** * @public - *

      Information about the connection health of the RDS Proxy target.

      + *

      Specifies whether to include shared manual DB cluster snapshots + * from other Amazon Web Services accounts that this Amazon Web Services account has been given + * permission to copy or restore. By default, these snapshots are not included.

      + *

      You can give an Amazon Web Services account permission to restore a manual DB snapshot from + * another Amazon Web Services account by using the ModifyDBSnapshotAttribute API action.

      + *

      This setting doesn't apply to RDS Custom.

      */ - TargetHealth?: TargetHealth; -} + IncludeShared?: boolean; -/** - * @public - */ -export interface DescribeDBProxyTargetsResponse { /** * @public - *

      An arbitrary number of DBProxyTarget objects, containing details of the corresponding targets.

      + *

      Specifies whether to include manual DB cluster snapshots that are public and can be copied + * or restored by any Amazon Web Services account. By default, the public snapshots are not included.

      + *

      You can share a manual DB snapshot as public by using the ModifyDBSnapshotAttribute API.

      + *

      This setting doesn't apply to RDS Custom.

      */ - Targets?: DBProxyTarget[]; + IncludePublic?: boolean; /** * @public - *

      An optional pagination token provided by a previous request. - * If this parameter is specified, the response includes only records beyond the marker, - * up to the value specified by MaxRecords.

      + *

      A specific DB resource ID to describe.

      */ - Marker?: string; + DbiResourceId?: string; } /** * @public - *

      Contains the result of a successful invocation of the DescribeDBSecurityGroups action.

      + *

      Contains the details of a tenant database in a snapshot of a DB instance.

      */ -export interface DBSecurityGroupMessage { +export interface DBSnapshotTenantDatabase { /** * @public - *

      An optional pagination token provided by a previous request. - * If this parameter is specified, the response includes - * only records beyond the marker, - * up to the value specified by MaxRecords.

      + *

      The identifier for the snapshot of the DB instance.

      */ - Marker?: string; + DBSnapshotIdentifier?: string; /** * @public - *

      A list of DBSecurityGroup instances.

      + *

      The ID for the DB instance that contains the tenant databases.

      */ - DBSecurityGroups?: DBSecurityGroup[]; -} + DBInstanceIdentifier?: string; -/** - * @public - *

      - */ -export interface DescribeDBSecurityGroupsMessage { /** * @public - *

      The name of the DB security group to return details for.

      + *

      The resource identifier of the source CDB instance. This identifier can't be changed + * and is unique to an Amazon Web Services Region.

      */ - DBSecurityGroupName?: string; + DbiResourceId?: string; /** * @public - *

      This parameter isn't currently supported.

      + *

      The name of the database engine.

      */ - Filters?: Filter[]; + EngineName?: string; /** * @public - *

      The maximum number of records to include in the response. - * If more records exist than the specified MaxRecords value, - * a pagination token called a marker is included in the response so that - * you can retrieve the remaining results.

      - *

      Default: 100

      - *

      Constraints: Minimum 20, maximum 100.

      + *

      The type of DB snapshot.

      */ - MaxRecords?: number; + SnapshotType?: string; /** * @public - *

      An optional pagination token provided by a previous - * DescribeDBSecurityGroups request. - * If this parameter is specified, the response includes - * only records beyond the marker, - * up to the value specified by MaxRecords.

      + *

      The time the DB snapshot was taken, specified in Coordinated Universal Time (UTC). If + * you copy the snapshot, the creation time changes.

      */ - Marker?: string; -} + TenantDatabaseCreateTime?: Date; -/** - * @public - *

      - */ -export interface DescribeDBSnapshotAttributesMessage { /** * @public - *

      The identifier for the DB snapshot to describe the attributes for.

      + *

      The name of the tenant database.

      */ - DBSnapshotIdentifier: string | undefined; -} + TenantDBName?: string; -/** - * @public - *

      Contains the name and values of a manual DB snapshot attribute

      - *

      Manual DB snapshot attributes are used to authorize other Amazon Web Services accounts - * to restore a manual DB snapshot. For more information, see the ModifyDBSnapshotAttribute - * API.

      - */ -export interface DBSnapshotAttribute { /** * @public - *

      The name of the manual DB snapshot attribute.

      - *

      The attribute named restore refers to the list of Amazon Web Services accounts that - * have permission to copy or restore the manual DB cluster snapshot. For more information, - * see the ModifyDBSnapshotAttribute - * API action.

      + *

      The master username of the tenant database.

      + */ + MasterUsername?: string; + + /** + * @public + *

      The resource ID of the tenant database.

      */ - AttributeName?: string; + TenantDatabaseResourceId?: string; /** * @public - *

      The value or values for the manual DB snapshot attribute.

      - *

      If the AttributeName field is set to restore, then this element - * returns a list of IDs of the Amazon Web Services accounts that are authorized to copy or restore the manual - * DB snapshot. If a value of all is in the list, then the manual DB snapshot - * is public and available for any Amazon Web Services account to copy or restore.

      + *

      The name of the character set of a tenant database.

      */ - AttributeValues?: string[]; -} + CharacterSetName?: string; -/** - * @public - *

      Contains the results of a successful call to the DescribeDBSnapshotAttributes - * API action.

      - *

      Manual DB snapshot attributes are used to authorize other Amazon Web Services accounts - * to copy or restore a manual DB snapshot. For more information, see the ModifyDBSnapshotAttribute - * API action.

      - */ -export interface DBSnapshotAttributesResult { /** * @public - *

      The identifier of the manual DB snapshot that the attributes apply to.

      + *

      The Amazon Resource Name (ARN) for the snapshot tenant database.

      */ - DBSnapshotIdentifier?: string; + DBSnapshotTenantDatabaseARN?: string; /** * @public - *

      The list of attributes and values for the manual DB snapshot.

      + *

      The NCHAR character set name of the tenant database.

      */ - DBSnapshotAttributes?: DBSnapshotAttribute[]; -} + NcharCharacterSetName?: string; -/** - * @public - */ -export interface DescribeDBSnapshotAttributesResult { /** * @public - *

      Contains the results of a successful call to the DescribeDBSnapshotAttributes - * API action.

      - *

      Manual DB snapshot attributes are used to authorize other Amazon Web Services accounts - * to copy or restore a manual DB snapshot. For more information, see the ModifyDBSnapshotAttribute - * API action.

      + *

      A list of tags. + * For more information, see Tagging Amazon RDS Resources in the Amazon RDS User Guide. + *

      */ - DBSnapshotAttributesResult?: DBSnapshotAttributesResult; + TagList?: Tag[]; } /** * @public - *

      Contains the result of a successful invocation of the DescribeDBSnapshots action.

      */ -export interface DBSnapshotMessage { +export interface DBSnapshotTenantDatabasesMessage { /** * @public - *

      An optional pagination token provided by a previous request. - * If this parameter is specified, the response includes - * only records beyond the marker, - * up to the value specified by MaxRecords.

      + *

      An optional pagination token provided by a previous request. If this parameter is + * specified, the response includes only records beyond the marker, up to the value + * specified by MaxRecords.

      */ Marker?: string; /** * @public - *

      A list of DBSnapshot instances.

      + *

      A list of DB snapshot tenant databases.

      */ - DBSnapshots?: DBSnapshot[]; + DBSnapshotTenantDatabases?: DBSnapshotTenantDatabase[]; } /** * @public - *

      */ -export interface DescribeDBSnapshotsMessage { +export interface DescribeDBSnapshotTenantDatabasesMessage { /** * @public - *

      The ID of the DB instance to retrieve the list of DB snapshots for. - * This parameter isn't case-sensitive.

      + *

      The ID of the DB instance used to create the DB snapshots. This parameter isn't + * case-sensitive.

      *

      Constraints:

      *
        *
      • - *

        If supplied, must match the identifier of an existing DBInstance.

        + *

        If supplied, must match the identifier of an existing DBInstance.

        *
      • *
      */ @@ -1844,15 +2549,16 @@ export interface DescribeDBSnapshotsMessage { /** * @public - *

      A specific DB snapshot identifier to describe. - * This value is stored as a lowercase string.

      + *

      The ID of a DB snapshot that contains the tenant databases to describe. This value is + * stored as a lowercase string.

      *

      Constraints:

      *
        *
      • - *

        If supplied, must match the identifier of an existing DBSnapshot.

        + *

        If you specify this parameter, the value must match the ID of an existing DB snapshot.

        *
      • *
      • - *

        If this identifier is for an automated snapshot, the SnapshotType parameter must also be specified.

        + *

        If you specify an automatic snapshot, you must also specify + * SnapshotType.

        *
      • *
      */ @@ -1860,73 +2566,73 @@ export interface DescribeDBSnapshotsMessage { /** * @public - *

      The type of snapshots to be returned. You can specify one of the following values:

      + *

      The type of DB snapshots to be returned. You can specify one of the following + * values:

      *
        *
      • *

        - * automated - Return all DB snapshots that have been automatically taken by - * Amazon RDS for my Amazon Web Services account.

        + * automated – All DB snapshots that have been automatically taken + * by Amazon RDS for my Amazon Web Services account.

        *
      • *
      • *

        - * manual - Return all DB snapshots that have been taken by my Amazon Web Services account.

        + * manual – All DB snapshots that have been taken by my Amazon Web + * Services account.

        *
      • *
      • *

        - * shared - Return all manual DB snapshots that have been shared to my Amazon Web Services account.

        + * shared – All manual DB snapshots that have been shared to my + * Amazon Web Services account.

        *
      • *
      • *

        - * public - Return all DB snapshots that have been marked as public.

        + * public – All DB snapshots that have been marked as public.

        *
      • *
      • *

        - * awsbackup - Return the DB snapshots managed by the Amazon Web Services Backup service.

        - *

        For information about Amazon Web Services Backup, see the - * - * Amazon Web Services Backup Developer Guide. - * - *

        - *

        The awsbackup type does not apply to Aurora.

        + * awsbackup – All DB snapshots managed by the Amazon Web Services Backup + * service.

        *
      • *
      - *

      If you don't specify a SnapshotType value, then both automated and manual snapshots are - * returned. Shared and public DB snapshots are not included in the returned results by default. - * You can include shared snapshots with these results by enabling the IncludeShared - * parameter. You can include public snapshots with these results by enabling the - * IncludePublic parameter.

      - *

      The IncludeShared and IncludePublic parameters don't apply for SnapshotType values - * of manual or automated. The IncludePublic parameter doesn't apply when SnapshotType is - * set to shared. The IncludeShared parameter doesn't apply when SnapshotType is set to - * public.

      */ SnapshotType?: string; /** * @public - *

      A filter that specifies one or more DB snapshots to describe.

      + *

      A filter that specifies one or more tenant databases to describe.

      *

      Supported filters:

      *
        *
      • *

        - * db-instance-id - Accepts DB instance identifiers and DB - * instance Amazon Resource Names (ARNs).

        + * tenant-db-name - Tenant database names. The results list only + * includes information about the tenant databases that match these tenant DB + * names.

        *
      • *
      • *

        - * db-snapshot-id - Accepts DB snapshot identifiers.

        + * tenant-database-resource-id - Tenant database resource + * identifiers. The results list only includes information about the tenant + * databases contained within the DB snapshots.

        *
      • *
      • *

        - * dbi-resource-id - Accepts identifiers of source DB instances.

        + * dbi-resource-id - DB instance resource identifiers. The results + * list only includes information about snapshots containing tenant databases + * contained within the DB instances identified by these resource + * identifiers.

        *
      • *
      • *

        - * snapshot-type - Accepts types of DB snapshots.

        + * db-instance-id - Accepts DB instance identifiers and DB instance + * Amazon Resource Names (ARNs).

        *
      • *
      • *

        - * engine - Accepts names of database engines.

        + * db-snapshot-id - Accepts DB snapshot identifiers.

        + *
      • + *
      • + *

        + * snapshot-type - Accepts types of DB snapshots.

        *
      • *
      */ @@ -1934,48 +2640,24 @@ export interface DescribeDBSnapshotsMessage { /** * @public - *

      The maximum number of records to include in the response. - * If more records exist than the specified MaxRecords value, - * a pagination token called a marker is included in the response so that - * you can retrieve the remaining results.

      - *

      Default: 100

      - *

      Constraints: Minimum 20, maximum 100.

      + *

      The maximum number of records to include in the response. If more records exist than + * the specified MaxRecords value, a pagination token called a marker is + * included in the response so that you can retrieve the remaining results.

      */ MaxRecords?: number; /** * @public *

      An optional pagination token provided by a previous - * DescribeDBSnapshots request. - * If this parameter is specified, the response includes - * only records beyond the marker, - * up to the value specified by MaxRecords.

      + * DescribeDBSnapshotTenantDatabases request. If this parameter is + * specified, the response includes only records beyond the marker, up to the value + * specified by MaxRecords.

      */ Marker?: string; /** * @public - *

      Specifies whether to include shared manual DB cluster snapshots - * from other Amazon Web Services accounts that this Amazon Web Services account has been given - * permission to copy or restore. By default, these snapshots are not included.

      - *

      You can give an Amazon Web Services account permission to restore a manual DB snapshot from - * another Amazon Web Services account by using the ModifyDBSnapshotAttribute API action.

      - *

      This setting doesn't apply to RDS Custom.

      - */ - IncludeShared?: boolean; - - /** - * @public - *

      Specifies whether to include manual DB cluster snapshots that are public and can be copied - * or restored by any Amazon Web Services account. By default, the public snapshots are not included.

      - *

      You can share a manual DB snapshot as public by using the ModifyDBSnapshotAttribute API.

      - *

      This setting doesn't apply to RDS Custom.

      - */ - IncludePublic?: boolean; - - /** - * @public - *

      A specific DB resource ID to describe.

      + *

      A specific DB resource identifier to describe.

      */ DbiResourceId?: string; } @@ -4434,6 +5116,91 @@ export interface SourceRegionMessage { SourceRegions?: SourceRegion[]; } +/** + * @public + */ +export interface DescribeTenantDatabasesMessage { + /** + * @public + *

      The user-supplied DB instance identifier, which must match the identifier of an + * existing instance owned by the Amazon Web Services account. This parameter isn't + * case-sensitive.

      + */ + DBInstanceIdentifier?: string; + + /** + * @public + *

      The user-supplied tenant database name, which must match the name of an existing + * tenant database on the specified DB instance owned by your Amazon Web Services account. This parameter + * isn’t case-sensitive.

      + */ + TenantDBName?: string; + + /** + * @public + *

      A filter that specifies one or more database tenants to describe.

      + *

      Supported filters:

      + *
        + *
      • + *

        + * tenant-db-name - Tenant database names. The results list only + * includes information about the tenant databases that match these tenant DB + * names.

        + *
      • + *
      • + *

        + * tenant-database-resource-id - Tenant database resource + * identifiers.

        + *
      • + *
      • + *

        + * dbi-resource-id - DB instance resource identifiers. The results + * list only includes information about the tenants contained within the DB + * instances identified by these resource identifiers.

        + *
      • + *
      + */ + Filters?: Filter[]; + + /** + * @public + *

      An optional pagination token provided by a previous + * DescribeTenantDatabases request. If this parameter is specified, the + * response includes only records beyond the marker, up to the value specified by + * MaxRecords.

      + */ + Marker?: string; + + /** + * @public + *

      The maximum number of records to include in the response. If more records exist than + * the specified MaxRecords value, a pagination token called a marker is + * included in the response so that you can retrieve the remaining results.

      + */ + MaxRecords?: number; +} + +/** + * @public + */ +export interface TenantDatabasesMessage { + /** + * @public + *

      An optional pagination token provided by a previous + * DescribeTenantDatabases request. If this parameter is specified, the + * response includes only records beyond the marker, up to the value specified by + * MaxRecords.

      + */ + Marker?: string; + + /** + * @public + *

      An array of the tenant databases requested by the DescribeTenantDatabases + * operation.

      + */ + TenantDatabases?: TenantDatabase[]; +} + /** * @public *

      @@ -6086,8 +6853,8 @@ export interface ModifyDBInstanceMessage { *
        *
      • *

        If you are modifying the DB instance class and upgrading the engine version at the same time, the currently running engine version must be supported on the - * specified DB instance class. Otherwise, the operation returns an error. In this case, first run the operation to modify the DB instance class, - * and then run it again to upgrade the engine version.

        + * specified DB instance class. Otherwise, the operation returns an error. In this case, first run the operation to upgrade the engine version, + * and then run it again to modify the DB instance class.

        *
      • *
      */ @@ -6362,8 +7129,8 @@ export interface ModifyDBInstanceMessage { *
        *
      • *

        If you are upgrading the engine version and modifying the DB instance class at the same time, the currently running engine version must be supported on the - * specified DB instance class. Otherwise, the operation returns an error. In this case, first run the operation to modify the DB instance class, - * and then run it again to upgrade the engine version.

        + * specified DB instance class. Otherwise, the operation returns an error. In this case, first run the operation to upgrade the engine version, + * and then run it again to modify the DB instance class.

        *
      • *
      */ @@ -7078,6 +7845,24 @@ export interface ModifyDBInstanceMessage { *

      Indicates whether the DB instance has a dedicated log volume (DLV) enabled.

      */ DedicatedLogVolume?: boolean; + + /** + * @public + *

      Specifies whether the to convert your DB instance from the single-tenant configuration + * to the multi-tenant configuration. This parameter is supported only for RDS for Oracle + * CDB instances.

      + *

      During the conversion, RDS creates an initial tenant database and associates the DB + * name, master user name, character set, and national character set metadata with this + * database. The tags associated with the instance also propagate to the initial tenant + * database. You can add more tenant databases to your DB instance by using the + * CreateTenantDatabase operation.

      + * + *

      The conversion to the multi-tenant configuration is permanent and irreversible, so + * you can't later convert back to the single-tenant configuration. When you specify + * this parameter, you must also specify ApplyImmediately.

      + *
      + */ + MultiTenant?: boolean; } /** @@ -7797,6 +8582,91 @@ export interface ModifyOptionGroupResult { OptionGroup?: OptionGroup; } +/** + * @public + */ +export interface ModifyTenantDatabaseMessage { + /** + * @public + *

      The identifier of the DB instance that contains the tenant database that you are + * modifying. This parameter isn't case-sensitive.

      + *

      Constraints:

      + *
        + *
      • + *

        Must match the identifier of an existing DB instance.

        + *
      • + *
      + */ + DBInstanceIdentifier: string | undefined; + + /** + * @public + *

      The user-supplied name of the tenant database that you want to modify. This parameter + * isn’t case-sensitive.

      + *

      Constraints:

      + *
        + *
      • + *

        Must match the identifier of an existing tenant database.

        + *
      • + *
      + */ + TenantDBName: string | undefined; + + /** + * @public + *

      The new password for the master user of the specified tenant database in your DB + * instance.

      + * + *

      Amazon RDS operations never return the password, so this action provides a way to regain + * access to a tenant database user if the password is lost. This includes restoring + * privileges that might have been accidentally revoked.

      + *
      + *

      Constraints:

      + *
        + *
      • + *

        Can include any printable ASCII character except /, " (double + * quote), @, & (ampersand), and ' + * (single quote).

        + *
      • + *
      + *

      Length constraints:

      + *
        + *
      • + *

        Must contain between 8 and 30 characters.

        + *
      • + *
      + */ + MasterUserPassword?: string; + + /** + * @public + *

      The new name of the tenant database when renaming a tenant database. This parameter + * isn’t case-sensitive.

      + *

      Constraints:

      + *
        + *
      • + *

        Can't be the string null or any other reserved word.

        + *
      • + *
      • + *

        Can't be longer than 8 characters.

        + *
      • + *
      + */ + NewTenantDBName?: string; +} + +/** + * @public + */ +export interface ModifyTenantDatabaseResult { + /** + * @public + *

      A tenant database in the DB instance. This data type is an element in the response to + * the DescribeTenantDatabases action.

      + */ + TenantDatabase?: TenantDatabase; +} + /** * @public *

      @@ -12359,3 +13229,29 @@ export interface SwitchoverReadReplicaResult { */ DBInstance?: DBInstance; } + +/** + * @internal + */ +export const TenantDatabasesMessageFilterSensitiveLog = (obj: TenantDatabasesMessage): any => ({ + ...obj, + ...(obj.TenantDatabases && { + TenantDatabases: obj.TenantDatabases.map((item) => TenantDatabaseFilterSensitiveLog(item)), + }), +}); + +/** + * @internal + */ +export const ModifyTenantDatabaseMessageFilterSensitiveLog = (obj: ModifyTenantDatabaseMessage): any => ({ + ...obj, + ...(obj.MasterUserPassword && { MasterUserPassword: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const ModifyTenantDatabaseResultFilterSensitiveLog = (obj: ModifyTenantDatabaseResult): any => ({ + ...obj, + ...(obj.TenantDatabase && { TenantDatabase: TenantDatabaseFilterSensitiveLog(obj.TenantDatabase) }), +}); diff --git a/clients/client-rds/src/pagination/DescribeDBSnapshotTenantDatabasesPaginator.ts b/clients/client-rds/src/pagination/DescribeDBSnapshotTenantDatabasesPaginator.ts new file mode 100644 index 0000000000000..e1a96e6196d81 --- /dev/null +++ b/clients/client-rds/src/pagination/DescribeDBSnapshotTenantDatabasesPaginator.ts @@ -0,0 +1,50 @@ +// smithy-typescript generated code +import { Paginator } from "@smithy/types"; + +import { + DescribeDBSnapshotTenantDatabasesCommand, + DescribeDBSnapshotTenantDatabasesCommandInput, + DescribeDBSnapshotTenantDatabasesCommandOutput, +} from "../commands/DescribeDBSnapshotTenantDatabasesCommand"; +import { RDSClient } from "../RDSClient"; +import { RDSPaginationConfiguration } from "./Interfaces"; + +/** + * @internal + */ +const makePagedClientRequest = async ( + client: RDSClient, + input: DescribeDBSnapshotTenantDatabasesCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new DescribeDBSnapshotTenantDatabasesCommand(input), ...args); +}; +/** + * @public + */ +export async function* paginateDescribeDBSnapshotTenantDatabases( + config: RDSPaginationConfiguration, + input: DescribeDBSnapshotTenantDatabasesCommandInput, + ...additionalArguments: any +): Paginator { + // ToDo: replace with actual type instead of typeof input.Marker + let token: typeof input.Marker | undefined = config.startingToken || undefined; + let hasNext = true; + let page: DescribeDBSnapshotTenantDatabasesCommandOutput; + while (hasNext) { + input.Marker = token; + input["MaxRecords"] = config.pageSize; + if (config.client instanceof RDSClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected RDS | RDSClient"); + } + yield page; + const prevToken = token; + token = page.Marker; + hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken)); + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-rds/src/pagination/DescribeTenantDatabasesPaginator.ts b/clients/client-rds/src/pagination/DescribeTenantDatabasesPaginator.ts new file mode 100644 index 0000000000000..25ce136531b7c --- /dev/null +++ b/clients/client-rds/src/pagination/DescribeTenantDatabasesPaginator.ts @@ -0,0 +1,50 @@ +// smithy-typescript generated code +import { Paginator } from "@smithy/types"; + +import { + DescribeTenantDatabasesCommand, + DescribeTenantDatabasesCommandInput, + DescribeTenantDatabasesCommandOutput, +} from "../commands/DescribeTenantDatabasesCommand"; +import { RDSClient } from "../RDSClient"; +import { RDSPaginationConfiguration } from "./Interfaces"; + +/** + * @internal + */ +const makePagedClientRequest = async ( + client: RDSClient, + input: DescribeTenantDatabasesCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new DescribeTenantDatabasesCommand(input), ...args); +}; +/** + * @public + */ +export async function* paginateDescribeTenantDatabases( + config: RDSPaginationConfiguration, + input: DescribeTenantDatabasesCommandInput, + ...additionalArguments: any +): Paginator { + // ToDo: replace with actual type instead of typeof input.Marker + let token: typeof input.Marker | undefined = config.startingToken || undefined; + let hasNext = true; + let page: DescribeTenantDatabasesCommandOutput; + while (hasNext) { + input.Marker = token; + input["MaxRecords"] = config.pageSize; + if (config.client instanceof RDSClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected RDS | RDSClient"); + } + yield page; + const prevToken = token; + token = page.Marker; + hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken)); + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-rds/src/pagination/index.ts b/clients/client-rds/src/pagination/index.ts index 4be853691d1f0..0f79aa6dbcfa2 100644 --- a/clients/client-rds/src/pagination/index.ts +++ b/clients/client-rds/src/pagination/index.ts @@ -29,6 +29,7 @@ export * from "./DescribeDBProxyEndpointsPaginator"; export * from "./DescribeDBProxyTargetGroupsPaginator"; export * from "./DescribeDBProxyTargetsPaginator"; export * from "./DescribeDBSecurityGroupsPaginator"; +export * from "./DescribeDBSnapshotTenantDatabasesPaginator"; export * from "./DescribeDBSnapshotsPaginator"; export * from "./DescribeDBSubnetGroupsPaginator"; export * from "./DescribeEngineDefaultParametersPaginator"; @@ -44,4 +45,5 @@ export * from "./DescribePendingMaintenanceActionsPaginator"; export * from "./DescribeReservedDBInstancesOfferingsPaginator"; export * from "./DescribeReservedDBInstancesPaginator"; export * from "./DescribeSourceRegionsPaginator"; +export * from "./DescribeTenantDatabasesPaginator"; export * from "./DownloadDBLogFilePortionPaginator"; diff --git a/clients/client-rds/src/protocols/Aws_query.ts b/clients/client-rds/src/protocols/Aws_query.ts index b3fe631a45b9b..d63637f9d4629 100644 --- a/clients/client-rds/src/protocols/Aws_query.ts +++ b/clients/client-rds/src/protocols/Aws_query.ts @@ -112,6 +112,10 @@ import { } from "../commands/CreateGlobalClusterCommand"; import { CreateIntegrationCommandInput, CreateIntegrationCommandOutput } from "../commands/CreateIntegrationCommand"; import { CreateOptionGroupCommandInput, CreateOptionGroupCommandOutput } from "../commands/CreateOptionGroupCommand"; +import { + CreateTenantDatabaseCommandInput, + CreateTenantDatabaseCommandOutput, +} from "../commands/CreateTenantDatabaseCommand"; import { DeleteBlueGreenDeploymentCommandInput, DeleteBlueGreenDeploymentCommandOutput, @@ -170,6 +174,10 @@ import { } from "../commands/DeleteGlobalClusterCommand"; import { DeleteIntegrationCommandInput, DeleteIntegrationCommandOutput } from "../commands/DeleteIntegrationCommand"; import { DeleteOptionGroupCommandInput, DeleteOptionGroupCommandOutput } from "../commands/DeleteOptionGroupCommand"; +import { + DeleteTenantDatabaseCommandInput, + DeleteTenantDatabaseCommandOutput, +} from "../commands/DeleteTenantDatabaseCommand"; import { DeregisterDBProxyTargetsCommandInput, DeregisterDBProxyTargetsCommandOutput, @@ -261,6 +269,10 @@ import { DescribeDBSnapshotsCommandInput, DescribeDBSnapshotsCommandOutput, } from "../commands/DescribeDBSnapshotsCommand"; +import { + DescribeDBSnapshotTenantDatabasesCommandInput, + DescribeDBSnapshotTenantDatabasesCommandOutput, +} from "../commands/DescribeDBSnapshotTenantDatabasesCommand"; import { DescribeDBSubnetGroupsCommandInput, DescribeDBSubnetGroupsCommandOutput, @@ -322,6 +334,10 @@ import { DescribeSourceRegionsCommandInput, DescribeSourceRegionsCommandOutput, } from "../commands/DescribeSourceRegionsCommand"; +import { + DescribeTenantDatabasesCommandInput, + DescribeTenantDatabasesCommandOutput, +} from "../commands/DescribeTenantDatabasesCommand"; import { DescribeValidDBInstanceModificationsCommandInput, DescribeValidDBInstanceModificationsCommandOutput, @@ -397,6 +413,10 @@ import { ModifyGlobalClusterCommandOutput, } from "../commands/ModifyGlobalClusterCommand"; import { ModifyOptionGroupCommandInput, ModifyOptionGroupCommandOutput } from "../commands/ModifyOptionGroupCommand"; +import { + ModifyTenantDatabaseCommandInput, + ModifyTenantDatabaseCommandOutput, +} from "../commands/ModifyTenantDatabaseCommand"; import { PromoteReadReplicaCommandInput, PromoteReadReplicaCommandOutput } from "../commands/PromoteReadReplicaCommand"; import { PromoteReadReplicaDBClusterCommandInput, @@ -571,6 +591,8 @@ import { CreateIntegrationMessage, CreateOptionGroupMessage, CreateOptionGroupResult, + CreateTenantDatabaseMessage, + CreateTenantDatabaseResult, CustomAvailabilityZoneNotFoundFault, CustomDBEngineVersionAlreadyExistsFault, CustomDBEngineVersionAMI, @@ -583,11 +605,8 @@ import { DBClusterAutomatedBackupNotFoundFault, DBClusterAutomatedBackupQuotaExceededFault, DBClusterBacktrack, - DBClusterBacktrackMessage, - DBClusterBacktrackNotFoundFault, DBClusterEndpoint, DBClusterEndpointAlreadyExistsFault, - DBClusterEndpointMessage, DBClusterEndpointNotFoundFault, DBClusterEndpointQuotaExceededFault, DBClusterMember, @@ -595,7 +614,6 @@ import { DBClusterOptionGroupStatus, DBClusterParameterGroup, DBClusterParameterGroupNotFoundFault, - DBClusterParameterGroupsMessage, DBClusterQuotaExceededFault, DBClusterRole, DBClusterRoleAlreadyExistsFault, @@ -639,6 +657,7 @@ import { DBSnapshot, DBSnapshotAlreadyExistsFault, DBSnapshotNotFoundFault, + DBSnapshotTenantDatabaseNotFoundFault, DBSubnetGroup, DBSubnetGroupAlreadyExistsFault, DBSubnetGroupDoesNotCoverEnoughAZs, @@ -676,16 +695,14 @@ import { DeleteGlobalClusterResult, DeleteIntegrationMessage, DeleteOptionGroupMessage, + DeleteTenantDatabaseMessage, + DeleteTenantDatabaseResult, DeregisterDBProxyTargetsRequest, DeregisterDBProxyTargetsResponse, DescribeAccountAttributesMessage, DescribeBlueGreenDeploymentsRequest, DescribeBlueGreenDeploymentsResponse, DescribeCertificatesMessage, - DescribeDBClusterAutomatedBackupsMessage, - DescribeDBClusterBacktracksMessage, - DescribeDBClusterEndpointsMessage, - DescribeDBClusterParameterGroupsMessage, DomainMembership, DomainNotFoundFault, Ec2ImagePropertiesNotSupportedFault, @@ -746,7 +763,6 @@ import { OptionGroupQuotaExceededFault, OptionSetting, Outpost, - Parameter, PendingCloudwatchLogsExports, PendingMaintenanceAction, PendingModifiedValues, @@ -775,6 +791,11 @@ import { SubscriptionNotFoundFault, SwitchoverDetail, Tag, + TenantDatabase, + TenantDatabaseAlreadyExistsFault, + TenantDatabaseNotFoundFault, + TenantDatabasePendingModifiedValues, + TenantDatabaseQuotaExceededFault, Timezone, UpgradeTarget, UserAuthConfig, @@ -786,10 +807,14 @@ import { CloudwatchLogsExportConfiguration, ConnectionPoolConfiguration, ConnectionPoolConfigurationInfo, + DBClusterBacktrackMessage, + DBClusterBacktrackNotFoundFault, DBClusterCapacityInfo, + DBClusterEndpointMessage, DBClusterMessage, DBClusterParameterGroupDetails, DBClusterParameterGroupNameMessage, + DBClusterParameterGroupsMessage, DBClusterRoleNotFoundFault, DBClusterSnapshotAttribute, DBClusterSnapshotAttributesResult, @@ -809,8 +834,14 @@ import { DBSnapshotAttribute, DBSnapshotAttributesResult, DBSnapshotMessage, + DBSnapshotTenantDatabase, + DBSnapshotTenantDatabasesMessage, DBSubnetGroupMessage, DBUpgradeDependencyFailureFault, + DescribeDBClusterAutomatedBackupsMessage, + DescribeDBClusterBacktracksMessage, + DescribeDBClusterEndpointsMessage, + DescribeDBClusterParameterGroupsMessage, DescribeDBClusterParametersMessage, DescribeDBClustersMessage, DescribeDBClusterSnapshotAttributesMessage, @@ -836,6 +867,7 @@ import { DescribeDBSnapshotAttributesMessage, DescribeDBSnapshotAttributesResult, DescribeDBSnapshotsMessage, + DescribeDBSnapshotTenantDatabasesMessage, DescribeDBSubnetGroupsMessage, DescribeEngineDefaultClusterParametersMessage, DescribeEngineDefaultClusterParametersResult, @@ -855,6 +887,7 @@ import { DescribeReservedDBInstancesMessage, DescribeReservedDBInstancesOfferingsMessage, DescribeSourceRegionsMessage, + DescribeTenantDatabasesMessage, DescribeValidDBInstanceModificationsMessage, DescribeValidDBInstanceModificationsResult, DoubleRange, @@ -917,6 +950,8 @@ import { ModifyGlobalClusterResult, ModifyOptionGroupMessage, ModifyOptionGroupResult, + ModifyTenantDatabaseMessage, + ModifyTenantDatabaseResult, OptionConfiguration, OptionGroupOption, OptionGroupOptionSetting, @@ -925,6 +960,7 @@ import { OptionVersion, OrderableDBInstanceOption, OrderableDBInstanceOptionsMessage, + Parameter, PendingMaintenanceActionsMessage, PointInTimeRestoreNotEnabledFault, PromoteReadReplicaDBClusterMessage, @@ -1002,6 +1038,7 @@ import { SwitchoverReadReplicaResult, TagListMessage, TargetHealth, + TenantDatabasesMessage, ValidDBInstanceModificationsMessage, ValidStorageOptions, } from "../models/models_1"; @@ -1534,6 +1571,23 @@ export const se_CreateOptionGroupCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +/** + * serializeAws_queryCreateTenantDatabaseCommand + */ +export const se_CreateTenantDatabaseCommand = async ( + input: CreateTenantDatabaseCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = SHARED_HEADERS; + let body: any; + body = buildFormUrlencodedString({ + ...se_CreateTenantDatabaseMessage(input, context), + Action: "CreateTenantDatabase", + Version: "2014-10-31", + }); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + /** * serializeAws_queryDeleteBlueGreenDeploymentCommand */ @@ -1857,6 +1911,23 @@ export const se_DeleteOptionGroupCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +/** + * serializeAws_queryDeleteTenantDatabaseCommand + */ +export const se_DeleteTenantDatabaseCommand = async ( + input: DeleteTenantDatabaseCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = SHARED_HEADERS; + let body: any; + body = buildFormUrlencodedString({ + ...se_DeleteTenantDatabaseMessage(input, context), + Action: "DeleteTenantDatabase", + Version: "2014-10-31", + }); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + /** * serializeAws_queryDeregisterDBProxyTargetsCommand */ @@ -2282,6 +2353,23 @@ export const se_DescribeDBSnapshotsCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +/** + * serializeAws_queryDescribeDBSnapshotTenantDatabasesCommand + */ +export const se_DescribeDBSnapshotTenantDatabasesCommand = async ( + input: DescribeDBSnapshotTenantDatabasesCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = SHARED_HEADERS; + let body: any; + body = buildFormUrlencodedString({ + ...se_DescribeDBSnapshotTenantDatabasesMessage(input, context), + Action: "DescribeDBSnapshotTenantDatabases", + Version: "2014-10-31", + }); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + /** * serializeAws_queryDescribeDBSubnetGroupsCommand */ @@ -2554,6 +2642,23 @@ export const se_DescribeSourceRegionsCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +/** + * serializeAws_queryDescribeTenantDatabasesCommand + */ +export const se_DescribeTenantDatabasesCommand = async ( + input: DescribeTenantDatabasesCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = SHARED_HEADERS; + let body: any; + body = buildFormUrlencodedString({ + ...se_DescribeTenantDatabasesMessage(input, context), + Action: "DescribeTenantDatabases", + Version: "2014-10-31", + }); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + /** * serializeAws_queryDescribeValidDBInstanceModificationsCommand */ @@ -2962,6 +3067,23 @@ export const se_ModifyOptionGroupCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +/** + * serializeAws_queryModifyTenantDatabaseCommand + */ +export const se_ModifyTenantDatabaseCommand = async ( + input: ModifyTenantDatabaseCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = SHARED_HEADERS; + let body: any; + body = buildFormUrlencodedString({ + ...se_ModifyTenantDatabaseMessage(input, context), + Action: "ModifyTenantDatabase", + Version: "2014-10-31", + }); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + /** * serializeAws_queryPromoteReadReplicaCommand */ @@ -3707,9 +3829,15 @@ const de_AddTagsToResourceCommandError = async ( case "DBSnapshotNotFound": case "com.amazonaws.rds#DBSnapshotNotFoundFault": throw await de_DBSnapshotNotFoundFaultRes(parsedOutput, context); + case "DBSnapshotTenantDatabaseNotFoundFault": + case "com.amazonaws.rds#DBSnapshotTenantDatabaseNotFoundFault": + throw await de_DBSnapshotTenantDatabaseNotFoundFaultRes(parsedOutput, context); case "IntegrationNotFoundFault": case "com.amazonaws.rds#IntegrationNotFoundFault": throw await de_IntegrationNotFoundFaultRes(parsedOutput, context); + case "TenantDatabaseNotFound": + case "com.amazonaws.rds#TenantDatabaseNotFoundFault": + throw await de_TenantDatabaseNotFoundFaultRes(parsedOutput, context); default: const parsedBody = parsedOutput.body; return throwDefaultError({ @@ -4698,6 +4826,9 @@ const de_CreateDBInstanceCommandError = async ( case "StorageTypeNotSupported": case "com.amazonaws.rds#StorageTypeNotSupportedFault": throw await de_StorageTypeNotSupportedFaultRes(parsedOutput, context); + case "TenantDatabaseQuotaExceeded": + case "com.amazonaws.rds#TenantDatabaseQuotaExceededFault": + throw await de_TenantDatabaseQuotaExceededFaultRes(parsedOutput, context); default: const parsedBody = parsedOutput.body; return throwDefaultError({ @@ -4807,6 +4938,9 @@ const de_CreateDBInstanceReadReplicaCommandError = async ( case "StorageTypeNotSupported": case "com.amazonaws.rds#StorageTypeNotSupportedFault": throw await de_StorageTypeNotSupportedFaultRes(parsedOutput, context); + case "TenantDatabaseQuotaExceeded": + case "com.amazonaws.rds#TenantDatabaseQuotaExceededFault": + throw await de_TenantDatabaseQuotaExceededFaultRes(parsedOutput, context); default: const parsedBody = parsedOutput.body; return throwDefaultError({ @@ -5370,6 +5504,61 @@ const de_CreateOptionGroupCommandError = async ( } }; +/** + * deserializeAws_queryCreateTenantDatabaseCommand + */ +export const de_CreateTenantDatabaseCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CreateTenantDatabaseCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_CreateTenantDatabaseResult(data.CreateTenantDatabaseResult, context); + const response: CreateTenantDatabaseCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_queryCreateTenantDatabaseCommandError + */ +const de_CreateTenantDatabaseCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseErrorBody(output.body, context), + }; + const errorCode = loadQueryErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "DBInstanceNotFound": + case "com.amazonaws.rds#DBInstanceNotFoundFault": + throw await de_DBInstanceNotFoundFaultRes(parsedOutput, context); + case "InvalidDBInstanceState": + case "com.amazonaws.rds#InvalidDBInstanceStateFault": + throw await de_InvalidDBInstanceStateFaultRes(parsedOutput, context); + case "TenantDatabaseAlreadyExists": + case "com.amazonaws.rds#TenantDatabaseAlreadyExistsFault": + throw await de_TenantDatabaseAlreadyExistsFaultRes(parsedOutput, context); + case "TenantDatabaseQuotaExceeded": + case "com.amazonaws.rds#TenantDatabaseQuotaExceededFault": + throw await de_TenantDatabaseQuotaExceededFaultRes(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + return throwDefaultError({ + output, + parsedBody: parsedBody.Error, + errorCode, + }); + } +}; + /** * deserializeAws_queryDeleteBlueGreenDeploymentCommand */ @@ -6319,6 +6508,58 @@ const de_DeleteOptionGroupCommandError = async ( } }; +/** + * deserializeAws_queryDeleteTenantDatabaseCommand + */ +export const de_DeleteTenantDatabaseCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_DeleteTenantDatabaseCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_DeleteTenantDatabaseResult(data.DeleteTenantDatabaseResult, context); + const response: DeleteTenantDatabaseCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_queryDeleteTenantDatabaseCommandError + */ +const de_DeleteTenantDatabaseCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseErrorBody(output.body, context), + }; + const errorCode = loadQueryErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "DBInstanceNotFound": + case "com.amazonaws.rds#DBInstanceNotFoundFault": + throw await de_DBInstanceNotFoundFaultRes(parsedOutput, context); + case "InvalidDBInstanceState": + case "com.amazonaws.rds#InvalidDBInstanceStateFault": + throw await de_InvalidDBInstanceStateFaultRes(parsedOutput, context); + case "TenantDatabaseNotFound": + case "com.amazonaws.rds#TenantDatabaseNotFoundFault": + throw await de_TenantDatabaseNotFoundFaultRes(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + return throwDefaultError({ + output, + parsedBody: parsedBody.Error, + errorCode, + }); + } +}; + /** * deserializeAws_queryDeregisterDBProxyTargetsCommand */ @@ -7487,6 +7728,52 @@ const de_DescribeDBSnapshotsCommandError = async ( } }; +/** + * deserializeAws_queryDescribeDBSnapshotTenantDatabasesCommand + */ +export const de_DescribeDBSnapshotTenantDatabasesCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_DescribeDBSnapshotTenantDatabasesCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_DBSnapshotTenantDatabasesMessage(data.DescribeDBSnapshotTenantDatabasesResult, context); + const response: DescribeDBSnapshotTenantDatabasesCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_queryDescribeDBSnapshotTenantDatabasesCommandError + */ +const de_DescribeDBSnapshotTenantDatabasesCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseErrorBody(output.body, context), + }; + const errorCode = loadQueryErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "DBSnapshotNotFound": + case "com.amazonaws.rds#DBSnapshotNotFoundFault": + throw await de_DBSnapshotNotFoundFaultRes(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + return throwDefaultError({ + output, + parsedBody: parsedBody.Error, + errorCode, + }); + } +}; + /** * deserializeAws_queryDescribeDBSubnetGroupsCommand */ @@ -8184,6 +8471,52 @@ const de_DescribeSourceRegionsCommandError = async ( }); }; +/** + * deserializeAws_queryDescribeTenantDatabasesCommand + */ +export const de_DescribeTenantDatabasesCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_DescribeTenantDatabasesCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_TenantDatabasesMessage(data.DescribeTenantDatabasesResult, context); + const response: DescribeTenantDatabasesCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_queryDescribeTenantDatabasesCommandError + */ +const de_DescribeTenantDatabasesCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseErrorBody(output.body, context), + }; + const errorCode = loadQueryErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "DBInstanceNotFound": + case "com.amazonaws.rds#DBInstanceNotFoundFault": + throw await de_DBInstanceNotFoundFaultRes(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + return throwDefaultError({ + output, + parsedBody: parsedBody.Error, + errorCode, + }); + } +}; + /** * deserializeAws_queryDescribeValidDBInstanceModificationsCommand */ @@ -8440,9 +8773,15 @@ const de_ListTagsForResourceCommandError = async ( case "DBSnapshotNotFound": case "com.amazonaws.rds#DBSnapshotNotFoundFault": throw await de_DBSnapshotNotFoundFaultRes(parsedOutput, context); + case "DBSnapshotTenantDatabaseNotFoundFault": + case "com.amazonaws.rds#DBSnapshotTenantDatabaseNotFoundFault": + throw await de_DBSnapshotTenantDatabaseNotFoundFaultRes(parsedOutput, context); case "IntegrationNotFoundFault": case "com.amazonaws.rds#IntegrationNotFoundFault": throw await de_IntegrationNotFoundFaultRes(parsedOutput, context); + case "TenantDatabaseNotFound": + case "com.amazonaws.rds#TenantDatabaseNotFoundFault": + throw await de_TenantDatabaseNotFoundFaultRes(parsedOutput, context); default: const parsedBody = parsedOutput.body; return throwDefaultError({ @@ -8989,6 +9328,9 @@ const de_ModifyDBInstanceCommandError = async ( case "StorageTypeNotSupported": case "com.amazonaws.rds#StorageTypeNotSupportedFault": throw await de_StorageTypeNotSupportedFaultRes(parsedOutput, context); + case "TenantDatabaseQuotaExceeded": + case "com.amazonaws.rds#TenantDatabaseQuotaExceededFault": + throw await de_TenantDatabaseQuotaExceededFaultRes(parsedOutput, context); default: const parsedBody = parsedOutput.body; return throwDefaultError({ @@ -9528,6 +9870,61 @@ const de_ModifyOptionGroupCommandError = async ( } }; +/** + * deserializeAws_queryModifyTenantDatabaseCommand + */ +export const de_ModifyTenantDatabaseCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_ModifyTenantDatabaseCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_ModifyTenantDatabaseResult(data.ModifyTenantDatabaseResult, context); + const response: ModifyTenantDatabaseCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_queryModifyTenantDatabaseCommandError + */ +const de_ModifyTenantDatabaseCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseErrorBody(output.body, context), + }; + const errorCode = loadQueryErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "DBInstanceNotFound": + case "com.amazonaws.rds#DBInstanceNotFoundFault": + throw await de_DBInstanceNotFoundFaultRes(parsedOutput, context); + case "InvalidDBInstanceState": + case "com.amazonaws.rds#InvalidDBInstanceStateFault": + throw await de_InvalidDBInstanceStateFaultRes(parsedOutput, context); + case "TenantDatabaseAlreadyExists": + case "com.amazonaws.rds#TenantDatabaseAlreadyExistsFault": + throw await de_TenantDatabaseAlreadyExistsFaultRes(parsedOutput, context); + case "TenantDatabaseNotFound": + case "com.amazonaws.rds#TenantDatabaseNotFoundFault": + throw await de_TenantDatabaseNotFoundFaultRes(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + return throwDefaultError({ + output, + parsedBody: parsedBody.Error, + errorCode, + }); + } +}; + /** * deserializeAws_queryPromoteReadReplicaCommand */ @@ -10099,9 +10496,15 @@ const de_RemoveTagsFromResourceCommandError = async ( case "DBSnapshotNotFound": case "com.amazonaws.rds#DBSnapshotNotFoundFault": throw await de_DBSnapshotNotFoundFaultRes(parsedOutput, context); + case "DBSnapshotTenantDatabaseNotFoundFault": + case "com.amazonaws.rds#DBSnapshotTenantDatabaseNotFoundFault": + throw await de_DBSnapshotTenantDatabaseNotFoundFaultRes(parsedOutput, context); case "IntegrationNotFoundFault": case "com.amazonaws.rds#IntegrationNotFoundFault": throw await de_IntegrationNotFoundFaultRes(parsedOutput, context); + case "TenantDatabaseNotFound": + case "com.amazonaws.rds#TenantDatabaseNotFoundFault": + throw await de_TenantDatabaseNotFoundFaultRes(parsedOutput, context); default: const parsedBody = parsedOutput.body; return throwDefaultError({ @@ -10597,6 +11000,9 @@ const de_RestoreDBInstanceFromDBSnapshotCommandError = async ( case "StorageTypeNotSupported": case "com.amazonaws.rds#StorageTypeNotSupportedFault": throw await de_StorageTypeNotSupportedFaultRes(parsedOutput, context); + case "TenantDatabaseQuotaExceeded": + case "com.amazonaws.rds#TenantDatabaseQuotaExceededFault": + throw await de_TenantDatabaseQuotaExceededFaultRes(parsedOutput, context); default: const parsedBody = parsedOutput.body; return throwDefaultError({ @@ -10806,6 +11212,9 @@ const de_RestoreDBInstanceToPointInTimeCommandError = async ( case "StorageTypeNotSupported": case "com.amazonaws.rds#StorageTypeNotSupportedFault": throw await de_StorageTypeNotSupportedFaultRes(parsedOutput, context); + case "TenantDatabaseQuotaExceeded": + case "com.amazonaws.rds#TenantDatabaseQuotaExceededFault": + throw await de_TenantDatabaseQuotaExceededFaultRes(parsedOutput, context); default: const parsedBody = parsedOutput.body; return throwDefaultError({ @@ -12412,6 +12821,22 @@ const de_DBSnapshotNotFoundFaultRes = async ( return __decorateServiceException(exception, body); }; +/** + * deserializeAws_queryDBSnapshotTenantDatabaseNotFoundFaultRes + */ +const de_DBSnapshotTenantDatabaseNotFoundFaultRes = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = de_DBSnapshotTenantDatabaseNotFoundFault(body.Error, context); + const exception = new DBSnapshotTenantDatabaseNotFoundFault({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }); + return __decorateServiceException(exception, body); +}; + /** * deserializeAws_queryDBSubnetGroupAlreadyExistsFaultRes */ @@ -13693,6 +14118,54 @@ const de_SubscriptionNotFoundFaultRes = async ( return __decorateServiceException(exception, body); }; +/** + * deserializeAws_queryTenantDatabaseAlreadyExistsFaultRes + */ +const de_TenantDatabaseAlreadyExistsFaultRes = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = de_TenantDatabaseAlreadyExistsFault(body.Error, context); + const exception = new TenantDatabaseAlreadyExistsFault({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }); + return __decorateServiceException(exception, body); +}; + +/** + * deserializeAws_queryTenantDatabaseNotFoundFaultRes + */ +const de_TenantDatabaseNotFoundFaultRes = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = de_TenantDatabaseNotFoundFault(body.Error, context); + const exception = new TenantDatabaseNotFoundFault({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }); + return __decorateServiceException(exception, body); +}; + +/** + * deserializeAws_queryTenantDatabaseQuotaExceededFaultRes + */ +const de_TenantDatabaseQuotaExceededFaultRes = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = de_TenantDatabaseQuotaExceededFault(body.Error, context); + const exception = new TenantDatabaseQuotaExceededFault({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }); + return __decorateServiceException(exception, body); +}; + /** * serializeAws_queryAddRoleToDBClusterMessage */ @@ -14716,6 +15189,9 @@ const se_CreateDBInstanceMessage = (input: CreateDBInstanceMessage, context: __S if (input.DedicatedLogVolume != null) { entries["DedicatedLogVolume"] = input.DedicatedLogVolume; } + if (input.MultiTenant != null) { + entries["MultiTenant"] = input.MultiTenant; + } return entries; }; @@ -15265,6 +15741,42 @@ const se_CreateOptionGroupMessage = (input: CreateOptionGroupMessage, context: _ return entries; }; +/** + * serializeAws_queryCreateTenantDatabaseMessage + */ +const se_CreateTenantDatabaseMessage = (input: CreateTenantDatabaseMessage, context: __SerdeContext): any => { + const entries: any = {}; + if (input.DBInstanceIdentifier != null) { + entries["DBInstanceIdentifier"] = input.DBInstanceIdentifier; + } + if (input.TenantDBName != null) { + entries["TenantDBName"] = input.TenantDBName; + } + if (input.MasterUsername != null) { + entries["MasterUsername"] = input.MasterUsername; + } + if (input.MasterUserPassword != null) { + entries["MasterUserPassword"] = input.MasterUserPassword; + } + if (input.CharacterSetName != null) { + entries["CharacterSetName"] = input.CharacterSetName; + } + if (input.NcharCharacterSetName != null) { + entries["NcharCharacterSetName"] = input.NcharCharacterSetName; + } + if (input.Tags != null) { + const memberEntries = se_TagList(input.Tags, context); + if (input.Tags?.length === 0) { + entries.Tags = []; + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `Tags.${key}`; + entries[loc] = value; + }); + } + return entries; +}; + /** * serializeAws_queryDBSecurityGroupNameList */ @@ -15529,6 +16041,26 @@ const se_DeleteOptionGroupMessage = (input: DeleteOptionGroupMessage, context: _ return entries; }; +/** + * serializeAws_queryDeleteTenantDatabaseMessage + */ +const se_DeleteTenantDatabaseMessage = (input: DeleteTenantDatabaseMessage, context: __SerdeContext): any => { + const entries: any = {}; + if (input.DBInstanceIdentifier != null) { + entries["DBInstanceIdentifier"] = input.DBInstanceIdentifier; + } + if (input.TenantDBName != null) { + entries["TenantDBName"] = input.TenantDBName; + } + if (input.SkipFinalSnapshot != null) { + entries["SkipFinalSnapshot"] = input.SkipFinalSnapshot; + } + if (input.FinalDBSnapshotIdentifier != null) { + entries["FinalDBSnapshotIdentifier"] = input.FinalDBSnapshotIdentifier; + } + return entries; +}; + /** * serializeAws_queryDeregisterDBProxyTargetsRequest */ @@ -16242,9 +16774,54 @@ const se_DescribeDBSnapshotAttributesMessage = ( }; /** - * serializeAws_queryDescribeDBSnapshotsMessage + * serializeAws_queryDescribeDBSnapshotsMessage + */ +const se_DescribeDBSnapshotsMessage = (input: DescribeDBSnapshotsMessage, context: __SerdeContext): any => { + const entries: any = {}; + if (input.DBInstanceIdentifier != null) { + entries["DBInstanceIdentifier"] = input.DBInstanceIdentifier; + } + if (input.DBSnapshotIdentifier != null) { + entries["DBSnapshotIdentifier"] = input.DBSnapshotIdentifier; + } + if (input.SnapshotType != null) { + entries["SnapshotType"] = input.SnapshotType; + } + if (input.Filters != null) { + const memberEntries = se_FilterList(input.Filters, context); + if (input.Filters?.length === 0) { + entries.Filters = []; + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `Filters.${key}`; + entries[loc] = value; + }); + } + if (input.MaxRecords != null) { + entries["MaxRecords"] = input.MaxRecords; + } + if (input.Marker != null) { + entries["Marker"] = input.Marker; + } + if (input.IncludeShared != null) { + entries["IncludeShared"] = input.IncludeShared; + } + if (input.IncludePublic != null) { + entries["IncludePublic"] = input.IncludePublic; + } + if (input.DbiResourceId != null) { + entries["DbiResourceId"] = input.DbiResourceId; + } + return entries; +}; + +/** + * serializeAws_queryDescribeDBSnapshotTenantDatabasesMessage */ -const se_DescribeDBSnapshotsMessage = (input: DescribeDBSnapshotsMessage, context: __SerdeContext): any => { +const se_DescribeDBSnapshotTenantDatabasesMessage = ( + input: DescribeDBSnapshotTenantDatabasesMessage, + context: __SerdeContext +): any => { const entries: any = {}; if (input.DBInstanceIdentifier != null) { entries["DBInstanceIdentifier"] = input.DBInstanceIdentifier; @@ -16271,12 +16848,6 @@ const se_DescribeDBSnapshotsMessage = (input: DescribeDBSnapshotsMessage, contex if (input.Marker != null) { entries["Marker"] = input.Marker; } - if (input.IncludeShared != null) { - entries["IncludeShared"] = input.IncludeShared; - } - if (input.IncludePublic != null) { - entries["IncludePublic"] = input.IncludePublic; - } if (input.DbiResourceId != null) { entries["DbiResourceId"] = input.DbiResourceId; } @@ -16821,6 +17392,36 @@ const se_DescribeSourceRegionsMessage = (input: DescribeSourceRegionsMessage, co return entries; }; +/** + * serializeAws_queryDescribeTenantDatabasesMessage + */ +const se_DescribeTenantDatabasesMessage = (input: DescribeTenantDatabasesMessage, context: __SerdeContext): any => { + const entries: any = {}; + if (input.DBInstanceIdentifier != null) { + entries["DBInstanceIdentifier"] = input.DBInstanceIdentifier; + } + if (input.TenantDBName != null) { + entries["TenantDBName"] = input.TenantDBName; + } + if (input.Filters != null) { + const memberEntries = se_FilterList(input.Filters, context); + if (input.Filters?.length === 0) { + entries.Filters = []; + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `Filters.${key}`; + entries[loc] = value; + }); + } + if (input.Marker != null) { + entries["Marker"] = input.Marker; + } + if (input.MaxRecords != null) { + entries["MaxRecords"] = input.MaxRecords; + } + return entries; +}; + /** * serializeAws_queryDescribeValidDBInstanceModificationsMessage */ @@ -17585,6 +18186,9 @@ const se_ModifyDBInstanceMessage = (input: ModifyDBInstanceMessage, context: __S if (input.DedicatedLogVolume != null) { entries["DedicatedLogVolume"] = input.DedicatedLogVolume; } + if (input.MultiTenant != null) { + entries["MultiTenant"] = input.MultiTenant; + } return entries; }; @@ -17865,6 +18469,26 @@ const se_ModifyOptionGroupMessage = (input: ModifyOptionGroupMessage, context: _ return entries; }; +/** + * serializeAws_queryModifyTenantDatabaseMessage + */ +const se_ModifyTenantDatabaseMessage = (input: ModifyTenantDatabaseMessage, context: __SerdeContext): any => { + const entries: any = {}; + if (input.DBInstanceIdentifier != null) { + entries["DBInstanceIdentifier"] = input.DBInstanceIdentifier; + } + if (input.TenantDBName != null) { + entries["TenantDBName"] = input.TenantDBName; + } + if (input.MasterUserPassword != null) { + entries["MasterUserPassword"] = input.MasterUserPassword; + } + if (input.NewTenantDBName != null) { + entries["NewTenantDBName"] = input.NewTenantDBName; + } + return entries; +}; + /** * serializeAws_queryOptionConfiguration */ @@ -20492,6 +21116,17 @@ const de_CreateOptionGroupResult = (output: any, context: __SerdeContext): Creat return contents; }; +/** + * deserializeAws_queryCreateTenantDatabaseResult + */ +const de_CreateTenantDatabaseResult = (output: any, context: __SerdeContext): CreateTenantDatabaseResult => { + const contents: any = {}; + if (output["TenantDatabase"] !== undefined) { + contents.TenantDatabase = de_TenantDatabase(output["TenantDatabase"], context); + } + return contents; +}; + /** * deserializeAws_queryCustomAvailabilityZoneNotFoundFault */ @@ -22252,6 +22887,9 @@ const de_DBInstance = (output: any, context: __SerdeContext): DBInstance => { if (output["IsStorageConfigUpgradeAvailable"] !== undefined) { contents.IsStorageConfigUpgradeAvailable = __parseBoolean(output["IsStorageConfigUpgradeAvailable"]); } + if (output["MultiTenant"] !== undefined) { + contents.MultiTenant = __parseBoolean(output["MultiTenant"]); + } return contents; }; @@ -22369,6 +23007,9 @@ const de_DBInstanceAutomatedBackup = (output: any, context: __SerdeContext): DBI if (output["DedicatedLogVolume"] !== undefined) { contents.DedicatedLogVolume = __parseBoolean(output["DedicatedLogVolume"]); } + if (output["MultiTenant"] !== undefined) { + contents.MultiTenant = __parseBoolean(output["MultiTenant"]); + } return contents; }; @@ -23328,6 +23969,9 @@ const de_DBSnapshot = (output: any, context: __SerdeContext): DBSnapshot => { if (output["DedicatedLogVolume"] !== undefined) { contents.DedicatedLogVolume = __parseBoolean(output["DedicatedLogVolume"]); } + if (output["MultiTenant"] !== undefined) { + contents.MultiTenant = __parseBoolean(output["MultiTenant"]); + } return contents; }; @@ -23432,6 +24076,107 @@ const de_DBSnapshotNotFoundFault = (output: any, context: __SerdeContext): DBSna return contents; }; +/** + * deserializeAws_queryDBSnapshotTenantDatabase + */ +const de_DBSnapshotTenantDatabase = (output: any, context: __SerdeContext): DBSnapshotTenantDatabase => { + const contents: any = {}; + if (output["DBSnapshotIdentifier"] !== undefined) { + contents.DBSnapshotIdentifier = __expectString(output["DBSnapshotIdentifier"]); + } + if (output["DBInstanceIdentifier"] !== undefined) { + contents.DBInstanceIdentifier = __expectString(output["DBInstanceIdentifier"]); + } + if (output["DbiResourceId"] !== undefined) { + contents.DbiResourceId = __expectString(output["DbiResourceId"]); + } + if (output["EngineName"] !== undefined) { + contents.EngineName = __expectString(output["EngineName"]); + } + if (output["SnapshotType"] !== undefined) { + contents.SnapshotType = __expectString(output["SnapshotType"]); + } + if (output["TenantDatabaseCreateTime"] !== undefined) { + contents.TenantDatabaseCreateTime = __expectNonNull( + __parseRfc3339DateTimeWithOffset(output["TenantDatabaseCreateTime"]) + ); + } + if (output["TenantDBName"] !== undefined) { + contents.TenantDBName = __expectString(output["TenantDBName"]); + } + if (output["MasterUsername"] !== undefined) { + contents.MasterUsername = __expectString(output["MasterUsername"]); + } + if (output["TenantDatabaseResourceId"] !== undefined) { + contents.TenantDatabaseResourceId = __expectString(output["TenantDatabaseResourceId"]); + } + if (output["CharacterSetName"] !== undefined) { + contents.CharacterSetName = __expectString(output["CharacterSetName"]); + } + if (output["DBSnapshotTenantDatabaseARN"] !== undefined) { + contents.DBSnapshotTenantDatabaseARN = __expectString(output["DBSnapshotTenantDatabaseARN"]); + } + if (output["NcharCharacterSetName"] !== undefined) { + contents.NcharCharacterSetName = __expectString(output["NcharCharacterSetName"]); + } + if (output.TagList === "") { + contents.TagList = []; + } else if (output["TagList"] !== undefined && output["TagList"]["Tag"] !== undefined) { + contents.TagList = de_TagList(__getArrayIfSingleItem(output["TagList"]["Tag"]), context); + } + return contents; +}; + +/** + * deserializeAws_queryDBSnapshotTenantDatabaseNotFoundFault + */ +const de_DBSnapshotTenantDatabaseNotFoundFault = ( + output: any, + context: __SerdeContext +): DBSnapshotTenantDatabaseNotFoundFault => { + const contents: any = {}; + if (output["message"] !== undefined) { + contents.message = __expectString(output["message"]); + } + return contents; +}; + +/** + * deserializeAws_queryDBSnapshotTenantDatabasesList + */ +const de_DBSnapshotTenantDatabasesList = (output: any, context: __SerdeContext): DBSnapshotTenantDatabase[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_DBSnapshotTenantDatabase(entry, context); + }); +}; + +/** + * deserializeAws_queryDBSnapshotTenantDatabasesMessage + */ +const de_DBSnapshotTenantDatabasesMessage = ( + output: any, + context: __SerdeContext +): DBSnapshotTenantDatabasesMessage => { + const contents: any = {}; + if (output["Marker"] !== undefined) { + contents.Marker = __expectString(output["Marker"]); + } + if (output.DBSnapshotTenantDatabases === "") { + contents.DBSnapshotTenantDatabases = []; + } else if ( + output["DBSnapshotTenantDatabases"] !== undefined && + output["DBSnapshotTenantDatabases"]["DBSnapshotTenantDatabase"] !== undefined + ) { + contents.DBSnapshotTenantDatabases = de_DBSnapshotTenantDatabasesList( + __getArrayIfSingleItem(output["DBSnapshotTenantDatabases"]["DBSnapshotTenantDatabase"]), + context + ); + } + return contents; +}; + /** * deserializeAws_queryDBSubnetGroup */ @@ -23708,6 +24453,17 @@ const de_DeleteGlobalClusterResult = (output: any, context: __SerdeContext): Del return contents; }; +/** + * deserializeAws_queryDeleteTenantDatabaseResult + */ +const de_DeleteTenantDatabaseResult = (output: any, context: __SerdeContext): DeleteTenantDatabaseResult => { + const contents: any = {}; + if (output["TenantDatabase"] !== undefined) { + contents.TenantDatabase = de_TenantDatabase(output["TenantDatabase"], context); + } + return contents; +}; + /** * deserializeAws_queryDeregisterDBProxyTargetsResponse */ @@ -25510,6 +26266,17 @@ const de_ModifyOptionGroupResult = (output: any, context: __SerdeContext): Modif return contents; }; +/** + * deserializeAws_queryModifyTenantDatabaseResult + */ +const de_ModifyTenantDatabaseResult = (output: any, context: __SerdeContext): ModifyTenantDatabaseResult => { + const contents: any = {}; + if (output["TenantDatabase"] !== undefined) { + contents.TenantDatabase = de_TenantDatabase(output["TenantDatabase"], context); + } + return contents; +}; + /** * deserializeAws_queryNetworkTypeNotSupported */ @@ -26414,6 +27181,9 @@ const de_PendingModifiedValues = (output: any, context: __SerdeContext): Pending if (output["DedicatedLogVolume"] !== undefined) { contents.DedicatedLogVolume = __parseBoolean(output["DedicatedLogVolume"]); } + if (output["MultiTenant"] !== undefined) { + contents.MultiTenant = __parseBoolean(output["MultiTenant"]); + } return contents; }; @@ -27645,6 +28415,143 @@ const de_TargetList = (output: any, context: __SerdeContext): DBProxyTarget[] => }); }; +/** + * deserializeAws_queryTenantDatabase + */ +const de_TenantDatabase = (output: any, context: __SerdeContext): TenantDatabase => { + const contents: any = {}; + if (output["TenantDatabaseCreateTime"] !== undefined) { + contents.TenantDatabaseCreateTime = __expectNonNull( + __parseRfc3339DateTimeWithOffset(output["TenantDatabaseCreateTime"]) + ); + } + if (output["DBInstanceIdentifier"] !== undefined) { + contents.DBInstanceIdentifier = __expectString(output["DBInstanceIdentifier"]); + } + if (output["TenantDBName"] !== undefined) { + contents.TenantDBName = __expectString(output["TenantDBName"]); + } + if (output["Status"] !== undefined) { + contents.Status = __expectString(output["Status"]); + } + if (output["MasterUsername"] !== undefined) { + contents.MasterUsername = __expectString(output["MasterUsername"]); + } + if (output["DbiResourceId"] !== undefined) { + contents.DbiResourceId = __expectString(output["DbiResourceId"]); + } + if (output["TenantDatabaseResourceId"] !== undefined) { + contents.TenantDatabaseResourceId = __expectString(output["TenantDatabaseResourceId"]); + } + if (output["TenantDatabaseARN"] !== undefined) { + contents.TenantDatabaseARN = __expectString(output["TenantDatabaseARN"]); + } + if (output["CharacterSetName"] !== undefined) { + contents.CharacterSetName = __expectString(output["CharacterSetName"]); + } + if (output["NcharCharacterSetName"] !== undefined) { + contents.NcharCharacterSetName = __expectString(output["NcharCharacterSetName"]); + } + if (output["DeletionProtection"] !== undefined) { + contents.DeletionProtection = __parseBoolean(output["DeletionProtection"]); + } + if (output["PendingModifiedValues"] !== undefined) { + contents.PendingModifiedValues = de_TenantDatabasePendingModifiedValues(output["PendingModifiedValues"], context); + } + if (output.TagList === "") { + contents.TagList = []; + } else if (output["TagList"] !== undefined && output["TagList"]["Tag"] !== undefined) { + contents.TagList = de_TagList(__getArrayIfSingleItem(output["TagList"]["Tag"]), context); + } + return contents; +}; + +/** + * deserializeAws_queryTenantDatabaseAlreadyExistsFault + */ +const de_TenantDatabaseAlreadyExistsFault = ( + output: any, + context: __SerdeContext +): TenantDatabaseAlreadyExistsFault => { + const contents: any = {}; + if (output["message"] !== undefined) { + contents.message = __expectString(output["message"]); + } + return contents; +}; + +/** + * deserializeAws_queryTenantDatabaseNotFoundFault + */ +const de_TenantDatabaseNotFoundFault = (output: any, context: __SerdeContext): TenantDatabaseNotFoundFault => { + const contents: any = {}; + if (output["message"] !== undefined) { + contents.message = __expectString(output["message"]); + } + return contents; +}; + +/** + * deserializeAws_queryTenantDatabasePendingModifiedValues + */ +const de_TenantDatabasePendingModifiedValues = ( + output: any, + context: __SerdeContext +): TenantDatabasePendingModifiedValues => { + const contents: any = {}; + if (output["MasterUserPassword"] !== undefined) { + contents.MasterUserPassword = __expectString(output["MasterUserPassword"]); + } + if (output["TenantDBName"] !== undefined) { + contents.TenantDBName = __expectString(output["TenantDBName"]); + } + return contents; +}; + +/** + * deserializeAws_queryTenantDatabaseQuotaExceededFault + */ +const de_TenantDatabaseQuotaExceededFault = ( + output: any, + context: __SerdeContext +): TenantDatabaseQuotaExceededFault => { + const contents: any = {}; + if (output["message"] !== undefined) { + contents.message = __expectString(output["message"]); + } + return contents; +}; + +/** + * deserializeAws_queryTenantDatabasesList + */ +const de_TenantDatabasesList = (output: any, context: __SerdeContext): TenantDatabase[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_TenantDatabase(entry, context); + }); +}; + +/** + * deserializeAws_queryTenantDatabasesMessage + */ +const de_TenantDatabasesMessage = (output: any, context: __SerdeContext): TenantDatabasesMessage => { + const contents: any = {}; + if (output["Marker"] !== undefined) { + contents.Marker = __expectString(output["Marker"]); + } + if (output.TenantDatabases === "") { + contents.TenantDatabases = []; + } else if (output["TenantDatabases"] !== undefined && output["TenantDatabases"]["TenantDatabase"] !== undefined) { + contents.TenantDatabases = de_TenantDatabasesList( + __getArrayIfSingleItem(output["TenantDatabases"]["TenantDatabase"]), + context + ); + } + return contents; +}; + /** * deserializeAws_queryTimezone */ diff --git a/clients/client-rds/src/waiters/index.ts b/clients/client-rds/src/waiters/index.ts index 7ab8ddbe8a904..c41c82749bac3 100644 --- a/clients/client-rds/src/waiters/index.ts +++ b/clients/client-rds/src/waiters/index.ts @@ -7,3 +7,5 @@ export * from "./waitForDBInstanceAvailable"; export * from "./waitForDBInstanceDeleted"; export * from "./waitForDBSnapshotAvailable"; export * from "./waitForDBSnapshotDeleted"; +export * from "./waitForTenantDatabaseAvailable"; +export * from "./waitForTenantDatabaseDeleted"; diff --git a/clients/client-rds/src/waiters/waitForTenantDatabaseAvailable.ts b/clients/client-rds/src/waiters/waitForTenantDatabaseAvailable.ts new file mode 100644 index 0000000000000..617fe815757b9 --- /dev/null +++ b/clients/client-rds/src/waiters/waitForTenantDatabaseAvailable.ts @@ -0,0 +1,101 @@ +// smithy-typescript generated code +import { checkExceptions, createWaiter, WaiterConfiguration, WaiterResult, WaiterState } from "@smithy/util-waiter"; + +import { + DescribeTenantDatabasesCommand, + DescribeTenantDatabasesCommandInput, +} from "../commands/DescribeTenantDatabasesCommand"; +import { RDSClient } from "../RDSClient"; + +const checkState = async (client: RDSClient, input: DescribeTenantDatabasesCommandInput): Promise => { + let reason; + try { + const result: any = await client.send(new DescribeTenantDatabasesCommand(input)); + reason = result; + try { + const returnComparator = () => { + const flat_1: any[] = [].concat(...result.TenantDatabases); + const projection_3 = flat_1.map((element_2: any) => { + return element_2.Status; + }); + return projection_3; + }; + let allStringEq_5 = returnComparator().length > 0; + for (const element_4 of returnComparator()) { + allStringEq_5 = allStringEq_5 && element_4 == "available"; + } + if (allStringEq_5) { + return { state: WaiterState.SUCCESS, reason }; + } + } catch (e) {} + try { + const returnComparator = () => { + const flat_1: any[] = [].concat(...result.TenantDatabases); + const projection_3 = flat_1.map((element_2: any) => { + return element_2.Status; + }); + return projection_3; + }; + for (const anyStringEq_4 of returnComparator()) { + if (anyStringEq_4 == "deleted") { + return { state: WaiterState.FAILURE, reason }; + } + } + } catch (e) {} + try { + const returnComparator = () => { + const flat_1: any[] = [].concat(...result.TenantDatabases); + const projection_3 = flat_1.map((element_2: any) => { + return element_2.Status; + }); + return projection_3; + }; + for (const anyStringEq_4 of returnComparator()) { + if (anyStringEq_4 == "incompatible-parameters") { + return { state: WaiterState.FAILURE, reason }; + } + } + } catch (e) {} + try { + const returnComparator = () => { + const flat_1: any[] = [].concat(...result.TenantDatabases); + const projection_3 = flat_1.map((element_2: any) => { + return element_2.Status; + }); + return projection_3; + }; + for (const anyStringEq_4 of returnComparator()) { + if (anyStringEq_4 == "incompatible-restore") { + return { state: WaiterState.FAILURE, reason }; + } + } + } catch (e) {} + } catch (exception) { + reason = exception; + } + return { state: WaiterState.RETRY, reason }; +}; +/** + * + * @deprecated Use waitUntilTenantDatabaseAvailable instead. waitForTenantDatabaseAvailable does not throw error in non-success cases. + */ +export const waitForTenantDatabaseAvailable = async ( + params: WaiterConfiguration, + input: DescribeTenantDatabasesCommandInput +): Promise => { + const serviceDefaults = { minDelay: 30, maxDelay: 120 }; + return createWaiter({ ...serviceDefaults, ...params }, input, checkState); +}; +/** + * + * @param params - Waiter configuration options. + * @param input - The input to DescribeTenantDatabasesCommand for polling. + */ +export const waitUntilTenantDatabaseAvailable = async ( + params: WaiterConfiguration, + input: DescribeTenantDatabasesCommandInput +): Promise => { + const serviceDefaults = { minDelay: 30, maxDelay: 120 }; + const result = await createWaiter({ ...serviceDefaults, ...params }, input, checkState); + return checkExceptions(result); +}; diff --git a/clients/client-rds/src/waiters/waitForTenantDatabaseDeleted.ts b/clients/client-rds/src/waiters/waitForTenantDatabaseDeleted.ts new file mode 100644 index 0000000000000..67469c49f6942 --- /dev/null +++ b/clients/client-rds/src/waiters/waitForTenantDatabaseDeleted.ts @@ -0,0 +1,54 @@ +// smithy-typescript generated code +import { checkExceptions, createWaiter, WaiterConfiguration, WaiterResult, WaiterState } from "@smithy/util-waiter"; + +import { + DescribeTenantDatabasesCommand, + DescribeTenantDatabasesCommandInput, +} from "../commands/DescribeTenantDatabasesCommand"; +import { RDSClient } from "../RDSClient"; + +const checkState = async (client: RDSClient, input: DescribeTenantDatabasesCommandInput): Promise => { + let reason; + try { + const result: any = await client.send(new DescribeTenantDatabasesCommand(input)); + reason = result; + try { + const returnComparator = () => { + return result.TenantDatabases.length == 0.0; + }; + if (returnComparator() == true) { + return { state: WaiterState.SUCCESS, reason }; + } + } catch (e) {} + } catch (exception) { + reason = exception; + if (exception.name && exception.name == "DBInstanceNotFoundFault") { + return { state: WaiterState.SUCCESS, reason }; + } + } + return { state: WaiterState.RETRY, reason }; +}; +/** + * + * @deprecated Use waitUntilTenantDatabaseDeleted instead. waitForTenantDatabaseDeleted does not throw error in non-success cases. + */ +export const waitForTenantDatabaseDeleted = async ( + params: WaiterConfiguration, + input: DescribeTenantDatabasesCommandInput +): Promise => { + const serviceDefaults = { minDelay: 30, maxDelay: 120 }; + return createWaiter({ ...serviceDefaults, ...params }, input, checkState); +}; +/** + * + * @param params - Waiter configuration options. + * @param input - The input to DescribeTenantDatabasesCommand for polling. + */ +export const waitUntilTenantDatabaseDeleted = async ( + params: WaiterConfiguration, + input: DescribeTenantDatabasesCommandInput +): Promise => { + const serviceDefaults = { minDelay: 30, maxDelay: 120 }; + const result = await createWaiter({ ...serviceDefaults, ...params }, input, checkState); + return checkExceptions(result); +}; diff --git a/codegen/sdk-codegen/aws-models/rds.json b/codegen/sdk-codegen/aws-models/rds.json index 007dd3a224cf2..5c3e8bd4bf3be 100644 --- a/codegen/sdk-codegen/aws-models/rds.json +++ b/codegen/sdk-codegen/aws-models/rds.json @@ -402,8 +402,14 @@ { "target": "com.amazonaws.rds#DBSnapshotNotFoundFault" }, + { + "target": "com.amazonaws.rds#DBSnapshotTenantDatabaseNotFoundFault" + }, { "target": "com.amazonaws.rds#IntegrationNotFoundFault" + }, + { + "target": "com.amazonaws.rds#TenantDatabaseNotFoundFault" } ], "traits": { @@ -547,6 +553,9 @@ { "target": "com.amazonaws.rds#CreateOptionGroup" }, + { + "target": "com.amazonaws.rds#CreateTenantDatabase" + }, { "target": "com.amazonaws.rds#DeleteBlueGreenDeployment" }, @@ -604,6 +613,9 @@ { "target": "com.amazonaws.rds#DeleteOptionGroup" }, + { + "target": "com.amazonaws.rds#DeleteTenantDatabase" + }, { "target": "com.amazonaws.rds#DeregisterDBProxyTargets" }, @@ -679,6 +691,9 @@ { "target": "com.amazonaws.rds#DescribeDBSnapshots" }, + { + "target": "com.amazonaws.rds#DescribeDBSnapshotTenantDatabases" + }, { "target": "com.amazonaws.rds#DescribeDBSubnetGroups" }, @@ -727,6 +742,9 @@ { "target": "com.amazonaws.rds#DescribeSourceRegions" }, + { + "target": "com.amazonaws.rds#DescribeTenantDatabases" + }, { "target": "com.amazonaws.rds#DescribeValidDBInstanceModifications" }, @@ -799,6 +817,9 @@ { "target": "com.amazonaws.rds#ModifyOptionGroup" }, + { + "target": "com.amazonaws.rds#ModifyTenantDatabase" + }, { "target": "com.amazonaws.rds#PromoteReadReplica" }, @@ -1939,6 +1960,17 @@ "expect": { "error": "Invalid Configuration: Missing Region" } + }, + { + "documentation": "Partition doesn't support DualStack", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": true + } } ], "version": "1.0" @@ -4594,6 +4626,9 @@ }, { "target": "com.amazonaws.rds#StorageTypeNotSupportedFault" + }, + { + "target": "com.amazonaws.rds#TenantDatabaseQuotaExceededFault" } ], "traits": { @@ -5078,6 +5113,12 @@ "traits": { "smithy.api#documentation": "

      Indicates whether the DB instance has a dedicated log volume (DLV) enabled.

      " } + }, + "MultiTenant": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

      Specifies whether to use the multi-tenant configuration or the single-tenant\n configuration (default). This parameter only applies to RDS for Oracle container\n database (CDB) engines.

      \n

      Note the following restrictions:

      \n
        \n
      • \n

        The DB engine that you specify in the request must support the multi-tenant\n configuration. If you attempt to enable the multi-tenant configuration on a DB\n engine that doesn't support it, the request fails.

        \n
      • \n
      • \n

        If you specify the multi-tenant configuration when you create your DB instance,\n you can't later modify this DB instance to use the single-tenant configuration.

        \n
      • \n
      " + } } }, "traits": { @@ -5159,6 +5200,9 @@ }, { "target": "com.amazonaws.rds#StorageTypeNotSupportedFault" + }, + { + "target": "com.amazonaws.rds#TenantDatabaseQuotaExceededFault" } ], "traits": { @@ -6486,6 +6530,98 @@ "smithy.api#output": {} } }, + "com.amazonaws.rds#CreateTenantDatabase": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#CreateTenantDatabaseMessage" + }, + "output": { + "target": "com.amazonaws.rds#CreateTenantDatabaseResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBInstanceNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBInstanceStateFault" + }, + { + "target": "com.amazonaws.rds#TenantDatabaseAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#TenantDatabaseQuotaExceededFault" + } + ], + "traits": { + "smithy.api#documentation": "

      Creates a tenant database in a DB instance that uses the multi-tenant configuration.\n Only RDS for Oracle container database (CDB) instances are supported.

      " + } + }, + "com.amazonaws.rds#CreateTenantDatabaseMessage": { + "type": "structure", + "members": { + "DBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

      The user-supplied DB instance identifier. RDS creates your tenant database in this DB\n instance. This parameter isn't case-sensitive.

      ", + "smithy.api#required": {} + } + }, + "TenantDBName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

      The user-supplied name of the tenant database that you want to create in your DB\n instance. This parameter has the same constraints as DBName in\n CreateDBInstance.

      ", + "smithy.api#required": {} + } + }, + "MasterUsername": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

      The name for the master user account in your tenant database. RDS creates this user\n account in the tenant database and grants privileges to the master user. This parameter\n is case-sensitive.

      \n

      Constraints:

      \n
        \n
      • \n

        Must be 1 to 16 letters, numbers, or underscores.

        \n
      • \n
      • \n

        First character must be a letter.

        \n
      • \n
      • \n

        Can't be a reserved word for the chosen database engine.

        \n
      • \n
      ", + "smithy.api#required": {} + } + }, + "MasterUserPassword": { + "target": "com.amazonaws.rds#SensitiveString", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

      The password for the master user in your tenant database.

      \n

      Constraints:

      \n
        \n
      • \n

        Must be 8 to 30 characters.

        \n
      • \n
      • \n

        Can include any printable ASCII character except forward slash\n (/), double quote (\"), at symbol (@),\n ampersand (&), or single quote (').

        \n
      • \n
      ", + "smithy.api#required": {} + } + }, + "CharacterSetName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

      The character set for your tenant database. If you don't specify a value, the\n character set name defaults to AL32UTF8.

      " + } + }, + "NcharCharacterSetName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

      The NCHAR value for the tenant database.

      " + } + }, + "Tags": { + "target": "com.amazonaws.rds#TagList" + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#CreateTenantDatabaseResult": { + "type": "structure", + "members": { + "TenantDatabase": { + "target": "com.amazonaws.rds#TenantDatabase" + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.rds#CustomAvailabilityZoneNotFoundFault": { "type": "structure", "members": { @@ -8465,7 +8601,7 @@ "DBName": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

      Contains the initial database name that you provided (if required) when you created\n the DB instance. This name is returned for the life of your DB instance. For an RDS for\n Oracle CDB instance, the name identifies the PDB rather than the CDB.

      " + "smithy.api#documentation": "

      The initial database name that you provided (if required) when you created\n the DB instance. This name is returned for the life of your DB instance. For an RDS for\n Oracle CDB instance, the name identifies the PDB rather than the CDB.

      " } }, "Endpoint": { @@ -8926,6 +9062,12 @@ "traits": { "smithy.api#documentation": "

      Indicates whether an upgrade is recommended for the storage file system configuration\n on the DB instance. To migrate to the preferred configuration, you can either create a\n blue/green deployment, or create a read replica from the DB instance. For more\n information, see Upgrading the storage file system for a DB instance.

      " } + }, + "MultiTenant": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

      Specifies whether the DB instance is in the multi-tenant configuration (TRUE) or the\n single-tenant configuration (FALSE).

      " + } } }, "traits": { @@ -9131,6 +9273,12 @@ "traits": { "smithy.api#documentation": "

      Indicates whether the DB instance has a dedicated log volume (DLV) enabled.

      " } + }, + "MultiTenant": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

      Specifies whether the automatic backup is for a DB instance in the multi-tenant\n configuration (TRUE) or the single-tenant configuration (FALSE).

      " + } } }, "traits": { @@ -9369,7 +9517,7 @@ "Normal": { "target": "com.amazonaws.rds#Boolean", "traits": { - "smithy.api#documentation": "

      A Boolean value that is true if the instance is operating normally, or false if the instance is in an error state.

      " + "smithy.api#documentation": "

      Indicates whether the instance is operating normally (TRUE) or is in an error state (FALSE).

      " } }, "Status": { @@ -10572,6 +10720,12 @@ "traits": { "smithy.api#documentation": "

      Indicates whether the DB instance has a dedicated log volume (DLV) enabled.

      " } + }, + "MultiTenant": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

      Indicates whether the snapshot is of a DB instance using the multi-tenant\n configuration (TRUE) or the single-tenant configuration (FALSE).

      " + } } }, "traits": { @@ -10691,6 +10845,135 @@ "smithy.api#httpError": 404 } }, + "com.amazonaws.rds#DBSnapshotTenantDatabase": { + "type": "structure", + "members": { + "DBSnapshotIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

      The identifier for the snapshot of the DB instance.

      " + } + }, + "DBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

      The ID for the DB instance that contains the tenant databases.

      " + } + }, + "DbiResourceId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

      The resource identifier of the source CDB instance. This identifier can't be changed\n and is unique to an Amazon Web Services Region.

      " + } + }, + "EngineName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

      The name of the database engine.

      " + } + }, + "SnapshotType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

      The type of DB snapshot.

      " + } + }, + "TenantDatabaseCreateTime": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

      The time the DB snapshot was taken, specified in Coordinated Universal Time (UTC). If\n you copy the snapshot, the creation time changes.

      " + } + }, + "TenantDBName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

      The name of the tenant database.

      " + } + }, + "MasterUsername": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

      The master username of the tenant database.

      " + } + }, + "TenantDatabaseResourceId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

      The resource ID of the tenant database.

      " + } + }, + "CharacterSetName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

      The name of the character set of a tenant database.

      " + } + }, + "DBSnapshotTenantDatabaseARN": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

      The Amazon Resource Name (ARN) for the snapshot tenant database.

      " + } + }, + "NcharCharacterSetName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

      The NCHAR character set name of the tenant database.

      " + } + }, + "TagList": { + "target": "com.amazonaws.rds#TagList" + } + }, + "traits": { + "smithy.api#documentation": "

      Contains the details of a tenant database in a snapshot of a DB instance.

      " + } + }, + "com.amazonaws.rds#DBSnapshotTenantDatabaseNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "DBSnapshotTenantDatabaseNotFoundFault", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

      The specified snapshot tenant database wasn't found.

      ", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#DBSnapshotTenantDatabasesList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#DBSnapshotTenantDatabase", + "traits": { + "smithy.api#xmlName": "DBSnapshotTenantDatabase" + } + } + }, + "com.amazonaws.rds#DBSnapshotTenantDatabasesMessage": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

      An optional pagination token provided by a previous request. If this parameter is\n specified, the response includes only records beyond the marker, up to the value\n specified by MaxRecords.

      " + } + }, + "DBSnapshotTenantDatabases": { + "target": "com.amazonaws.rds#DBSnapshotTenantDatabasesList", + "traits": { + "smithy.api#documentation": "

      A list of DB snapshot tenant databases.

      " + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.rds#DBSubnetGroup": { "type": "structure", "members": { @@ -12062,6 +12345,76 @@ "smithy.api#input": {} } }, + "com.amazonaws.rds#DeleteTenantDatabase": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DeleteTenantDatabaseMessage" + }, + "output": { + "target": "com.amazonaws.rds#DeleteTenantDatabaseResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBInstanceNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBInstanceStateFault" + }, + { + "target": "com.amazonaws.rds#TenantDatabaseNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

      Deletes a tenant database from your DB instance. This command only applies to RDS for\n Oracle container database (CDB) instances.

      \n

      You can't delete a tenant database when it is the only tenant in the DB\n instance.

      " + } + }, + "com.amazonaws.rds#DeleteTenantDatabaseMessage": { + "type": "structure", + "members": { + "DBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

      The user-supplied identifier for the DB instance that contains the tenant database\n that you want to delete.

      ", + "smithy.api#required": {} + } + }, + "TenantDBName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

      The user-supplied name of the tenant database that you want to remove from your DB\n instance. Amazon RDS deletes the tenant database with this name. This parameter isn’t\n case-sensitive.

      ", + "smithy.api#required": {} + } + }, + "SkipFinalSnapshot": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

      Specifies whether to skip the creation of a final DB snapshot before removing the\n tenant database from your DB instance. If you enable this parameter, RDS doesn't create\n a DB snapshot. If you don't enable this parameter, RDS creates a DB snapshot before it\n deletes the tenant database. By default, RDS doesn't skip the final snapshot. If you\n don't enable this parameter, you must specify the FinalDBSnapshotIdentifier\n parameter.

      " + } + }, + "FinalDBSnapshotIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

      The DBSnapshotIdentifier of the new DBSnapshot created when\n the SkipFinalSnapshot parameter is disabled.

      \n \n

      If you enable this parameter and also enable SkipFinalShapshot, the\n command results in an error.

      \n
      " + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DeleteTenantDatabaseResult": { + "type": "structure", + "members": { + "TenantDatabase": { + "target": "com.amazonaws.rds#TenantDatabase" + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.rds#DeregisterDBProxyTargets": { "type": "operation", "input": { @@ -14696,6 +15049,79 @@ "smithy.api#output": {} } }, + "com.amazonaws.rds#DescribeDBSnapshotTenantDatabases": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeDBSnapshotTenantDatabasesMessage" + }, + "output": { + "target": "com.amazonaws.rds#DBSnapshotTenantDatabasesMessage" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBSnapshotNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

      Describes the tenant databases that exist in a DB snapshot. This command only applies\n to RDS for Oracle DB instances in the multi-tenant configuration.

      \n

      You can use this command to inspect the tenant databases within a snapshot before\n restoring it. You can't directly interact with the tenant databases in a DB snapshot. If\n you restore a snapshot that was taken from DB instance using the multi-tenant\n configuration, you restore all its tenant databases.

      ", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "DBSnapshotTenantDatabases", + "pageSize": "MaxRecords" + } + } + }, + "com.amazonaws.rds#DescribeDBSnapshotTenantDatabasesMessage": { + "type": "structure", + "members": { + "DBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

      The ID of the DB instance used to create the DB snapshots. This parameter isn't\n case-sensitive.

      \n

      Constraints:

      \n
        \n
      • \n

        If supplied, must match the identifier of an existing DBInstance.

        \n
      • \n
      " + } + }, + "DBSnapshotIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

      The ID of a DB snapshot that contains the tenant databases to describe. This value is\n stored as a lowercase string.

      \n

      Constraints:

      \n
        \n
      • \n

        If you specify this parameter, the value must match the ID of an existing DB snapshot.

        \n
      • \n
      • \n

        If you specify an automatic snapshot, you must also specify\n SnapshotType.

        \n
      • \n
      " + } + }, + "SnapshotType": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

      The type of DB snapshots to be returned. You can specify one of the following\n values:

      \n
        \n
      • \n

        \n automated – All DB snapshots that have been automatically taken\n by Amazon RDS for my Amazon Web Services account.

        \n
      • \n
      • \n

        \n manual – All DB snapshots that have been taken by my Amazon Web\n Services account.

        \n
      • \n
      • \n

        \n shared – All manual DB snapshots that have been shared to my\n Amazon Web Services account.

        \n
      • \n
      • \n

        \n public – All DB snapshots that have been marked as public.

        \n
      • \n
      • \n

        \n awsbackup – All DB snapshots managed by the Amazon Web Services Backup\n service.

        \n
      • \n
      " + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

      A filter that specifies one or more tenant databases to describe.

      \n

      Supported filters:

      \n
        \n
      • \n

        \n tenant-db-name - Tenant database names. The results list only\n includes information about the tenant databases that match these tenant DB\n names.

        \n
      • \n
      • \n

        \n tenant-database-resource-id - Tenant database resource\n identifiers. The results list only includes information about the tenant\n databases contained within the DB snapshots.

        \n
      • \n
      • \n

        \n dbi-resource-id - DB instance resource identifiers. The results\n list only includes information about snapshots containing tenant databases\n contained within the DB instances identified by these resource\n identifiers.

        \n
      • \n
      • \n

        \n db-instance-id - Accepts DB instance identifiers and DB instance\n Amazon Resource Names (ARNs).

        \n
      • \n
      • \n

        \n db-snapshot-id - Accepts DB snapshot identifiers.

        \n
      • \n
      • \n

        \n snapshot-type - Accepts types of DB snapshots.

        \n
      • \n
      " + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

      The maximum number of records to include in the response. If more records exist than\n the specified MaxRecords value, a pagination token called a marker is\n included in the response so that you can retrieve the remaining results.

      " + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

      An optional pagination token provided by a previous\n DescribeDBSnapshotTenantDatabases request. If this parameter is\n specified, the response includes only records beyond the marker, up to the value\n specified by MaxRecords.

      " + } + }, + "DbiResourceId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

      A specific DB resource identifier to describe.

      " + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, "com.amazonaws.rds#DescribeDBSnapshots": { "type": "operation", "input": { @@ -16539,48 +16965,177 @@ "Status": "available", "SupportsDBInstanceAutomatedBackupsReplication": true } - ] - } + ] + } + } + ], + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "SourceRegions", + "pageSize": "MaxRecords" + } + } + }, + "com.amazonaws.rds#DescribeSourceRegionsMessage": { + "type": "structure", + "members": { + "RegionName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

      The source Amazon Web Services Region name. For example, us-east-1.

      \n

      Constraints:

      \n
        \n
      • \n

        Must specify a valid Amazon Web Services Region name.

        \n
      • \n
      " + } + }, + "MaxRecords": { + "target": "com.amazonaws.rds#IntegerOptional", + "traits": { + "smithy.api#documentation": "

      The maximum number of records to include in the response. If more records exist\n than the specified MaxRecords value, a pagination token called a marker is\n included in the response so you can retrieve the remaining results.

      \n

      Default: 100

      \n

      Constraints: Minimum 20, maximum 100.

      " + } + }, + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

      An optional pagination token provided by a previous DescribeSourceRegions request. If this parameter is specified, the response\n includes only records beyond the marker, up to the value specified by\n MaxRecords.

      " + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

      This parameter isn't currently supported.

      " + } + } + }, + "traits": { + "smithy.api#documentation": "

      ", + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeTenantDatabases": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeTenantDatabasesMessage" + }, + "output": { + "target": "com.amazonaws.rds#TenantDatabasesMessage" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBInstanceNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

      Describes the tenant databases in a DB instance that uses the multi-tenant\n configuration. Only RDS for Oracle CDB instances are supported.

      ", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "TenantDatabases", + "pageSize": "MaxRecords" + }, + "smithy.waiters#waitable": { + "TenantDatabaseAvailable": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "TenantDatabases[].Status", + "expected": "available", + "comparator": "allStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "TenantDatabases[].Status", + "expected": "deleted", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "TenantDatabases[].Status", + "expected": "incompatible-parameters", + "comparator": "anyStringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "TenantDatabases[].Status", + "expected": "incompatible-restore", + "comparator": "anyStringEquals" + } + } + } + ], + "minDelay": 30 + }, + "TenantDatabaseDeleted": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "length(TenantDatabases) == `0`", + "expected": "true", + "comparator": "booleanEquals" + } + } + }, + { + "state": "success", + "matcher": { + "errorType": "DBInstanceNotFoundFault" + } + } + ], + "minDelay": 30 } - ], - "smithy.api#paginated": { - "inputToken": "Marker", - "outputToken": "Marker", - "items": "SourceRegions", - "pageSize": "MaxRecords" } } }, - "com.amazonaws.rds#DescribeSourceRegionsMessage": { + "com.amazonaws.rds#DescribeTenantDatabasesMessage": { "type": "structure", "members": { - "RegionName": { + "DBInstanceIdentifier": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

      The source Amazon Web Services Region name. For example, us-east-1.

      \n

      Constraints:

      \n
        \n
      • \n

        Must specify a valid Amazon Web Services Region name.

        \n
      • \n
      " + "smithy.api#documentation": "

      The user-supplied DB instance identifier, which must match the identifier of an\n existing instance owned by the Amazon Web Services account. This parameter isn't\n case-sensitive.

      " } }, - "MaxRecords": { - "target": "com.amazonaws.rds#IntegerOptional", + "TenantDBName": { + "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

      The maximum number of records to include in the response. If more records exist\n than the specified MaxRecords value, a pagination token called a marker is\n included in the response so you can retrieve the remaining results.

      \n

      Default: 100

      \n

      Constraints: Minimum 20, maximum 100.

      " + "smithy.api#documentation": "

      The user-supplied tenant database name, which must match the name of an existing\n tenant database on the specified DB instance owned by your Amazon Web Services account. This parameter\n isn’t case-sensitive.

      " + } + }, + "Filters": { + "target": "com.amazonaws.rds#FilterList", + "traits": { + "smithy.api#documentation": "

      A filter that specifies one or more database tenants to describe.

      \n

      Supported filters:

      \n
        \n
      • \n

        \n tenant-db-name - Tenant database names. The results list only\n includes information about the tenant databases that match these tenant DB\n names.

        \n
      • \n
      • \n

        \n tenant-database-resource-id - Tenant database resource\n identifiers.

        \n
      • \n
      • \n

        \n dbi-resource-id - DB instance resource identifiers. The results\n list only includes information about the tenants contained within the DB\n instances identified by these resource identifiers.

        \n
      • \n
      " } }, "Marker": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

      An optional pagination token provided by a previous DescribeSourceRegions request. If this parameter is specified, the response\n includes only records beyond the marker, up to the value specified by\n MaxRecords.

      " + "smithy.api#documentation": "

      An optional pagination token provided by a previous\n DescribeTenantDatabases request. If this parameter is specified, the\n response includes only records beyond the marker, up to the value specified by\n MaxRecords.

      " } }, - "Filters": { - "target": "com.amazonaws.rds#FilterList", + "MaxRecords": { + "target": "com.amazonaws.rds#IntegerOptional", "traits": { - "smithy.api#documentation": "

      This parameter isn't currently supported.

      " + "smithy.api#documentation": "

      The maximum number of records to include in the response. If more records exist than\n the specified MaxRecords value, a pagination token called a marker is\n included in the response so that you can retrieve the remaining results.

      " } } }, "traits": { - "smithy.api#documentation": "

      ", "smithy.api#input": {} } }, @@ -17190,7 +17745,7 @@ "Enabled": { "target": "com.amazonaws.rds#Boolean", "traits": { - "smithy.api#documentation": "

      A Boolean value indicating if the subscription is enabled. True indicates the subscription is enabled.

      " + "smithy.api#documentation": "

      Specifies whether the subscription is enabled. True indicates the subscription is enabled.

      " } }, "EventSubscriptionArn": { @@ -17608,7 +18163,7 @@ "Status": { "target": "com.amazonaws.rds#FailoverStatus", "traits": { - "smithy.api#documentation": "

      The current status of the global cluster. Possible values are as follows:

      \n
        \n
      • \n

        pending – The service received a request to switch over or fail over the global cluster. The\n global cluster's primary DB cluster and the specified secondary DB cluster are being verified before the operation\n starts.

        \n
      • \n
      • \n

        failing-over – This status covers the range of Aurora internal operations that take place during the switchover or failover process, such\n as demoting the primary Aurora DB cluster, promoting the secondary Aurora DB cluster, and synchronizing replicas.

        \n
      • \n
      • \n

        cancelling – The request to switch over or fail over the global cluster was cancelled and the primary\n Aurora DB cluster and the selected secondary Aurora DB cluster are returning to their previous states.

        \n
      • \n
      " + "smithy.api#documentation": "

      The current status of the global cluster. Possible values are as follows:

      \n
        \n
      • \n

        pending – The service received a request to switch over or fail over the global cluster. The\n global cluster's primary DB cluster and the specified secondary DB cluster are being verified before the operation\n starts.

        \n
      • \n
      • \n

        failing-over – Aurora is promoting the chosen secondary Aurora DB cluster to become the new primary DB cluster to fail over the global cluster.

        \n
      • \n
      • \n

        cancelling – The request to switch over or fail over the global cluster was cancelled and the primary\n Aurora DB cluster and the selected secondary Aurora DB cluster are returning to their previous states.

        \n
      • \n
      • \n

        switching-over – This status covers the range of Aurora internal operations that take place during the switchover process, such\n as demoting the primary Aurora DB cluster, promoting the secondary Aurora DB cluster, and synchronizing replicas.

        \n
      • \n
      " } }, "FromDbClusterArn": { @@ -18896,8 +19451,14 @@ { "target": "com.amazonaws.rds#DBSnapshotNotFoundFault" }, + { + "target": "com.amazonaws.rds#DBSnapshotTenantDatabaseNotFoundFault" + }, { "target": "com.amazonaws.rds#IntegrationNotFoundFault" + }, + { + "target": "com.amazonaws.rds#TenantDatabaseNotFoundFault" } ], "traits": { @@ -20066,6 +20627,9 @@ }, { "target": "com.amazonaws.rds#StorageTypeNotSupportedFault" + }, + { + "target": "com.amazonaws.rds#TenantDatabaseQuotaExceededFault" } ], "traits": { @@ -20137,7 +20701,7 @@ "DBInstanceClass": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

      The new compute and memory capacity of the DB instance, for example db.m4.large. Not all DB instance classes are available in all\n Amazon Web Services Regions, or for all database engines. For the full list of DB instance classes, and availability for your engine, see DB Instance Class in the \n Amazon RDS User Guide or \n Aurora\n DB instance classes in the Amazon Aurora User Guide. For RDS Custom, see DB instance class support for RDS Custom for Oracle and \n DB instance class support for RDS Custom for SQL Server.

      \n

      If you modify the DB instance class, an outage occurs during the change. The change is\n applied during the next maintenance window, unless you specify\n ApplyImmediately in your request.

      \n

      Default: Uses existing setting

      \n

      Constraints:

      \n
        \n
      • \n

        If you are modifying the DB instance class and upgrading the engine version at the same time, the currently running engine version must be supported on the \n specified DB instance class. Otherwise, the operation returns an error. In this case, first run the operation to modify the DB instance class, \n and then run it again to upgrade the engine version.

        \n
      • \n
      " + "smithy.api#documentation": "

      The new compute and memory capacity of the DB instance, for example db.m4.large. Not all DB instance classes are available in all\n Amazon Web Services Regions, or for all database engines. For the full list of DB instance classes, and availability for your engine, see DB Instance Class in the \n Amazon RDS User Guide or \n Aurora\n DB instance classes in the Amazon Aurora User Guide. For RDS Custom, see DB instance class support for RDS Custom for Oracle and \n DB instance class support for RDS Custom for SQL Server.

      \n

      If you modify the DB instance class, an outage occurs during the change. The change is\n applied during the next maintenance window, unless you specify\n ApplyImmediately in your request.

      \n

      Default: Uses existing setting

      \n

      Constraints:

      \n
        \n
      • \n

        If you are modifying the DB instance class and upgrading the engine version at the same time, the currently running engine version must be supported on the \n specified DB instance class. Otherwise, the operation returns an error. In this case, first run the operation to upgrade the engine version, \n and then run it again to modify the DB instance class.

        \n
      • \n
      " } }, "DBSubnetGroupName": { @@ -20203,7 +20767,7 @@ "EngineVersion": { "target": "com.amazonaws.rds#String", "traits": { - "smithy.api#documentation": "

      The version number of the database engine to upgrade to. \n Changing this parameter results in an outage and the change \n is applied during the next maintenance window\n unless the ApplyImmediately parameter is enabled for this request.

      \n

      For major version upgrades, if a nondefault DB parameter group is currently in use, a\n new DB parameter group in the DB parameter group family for the new engine version must\n be specified. The new DB parameter group can be the default for that DB parameter group\n family.

      \n

      If you specify only a major version, Amazon RDS updates the DB instance to the \n default minor version if the current minor version is lower.\n For information about valid engine versions, see CreateDBInstance, \n or call DescribeDBEngineVersions.

      \n

      If the instance that you're modifying is acting as a read replica, the engine version\n that you specify must be the same or higher than the version that the source DB instance\n or cluster is running.

      \n

      In RDS Custom for Oracle, this parameter is supported for read replicas only if they are in the \n PATCH_DB_FAILURE lifecycle.

      \n

      Constraints:

      \n
        \n
      • \n

        If you are upgrading the engine version and modifying the DB instance class at the same time, the currently running engine version must be supported on the \n specified DB instance class. Otherwise, the operation returns an error. In this case, first run the operation to modify the DB instance class, \n and then run it again to upgrade the engine version.

        \n
      • \n
      " + "smithy.api#documentation": "

      The version number of the database engine to upgrade to. \n Changing this parameter results in an outage and the change \n is applied during the next maintenance window\n unless the ApplyImmediately parameter is enabled for this request.

      \n

      For major version upgrades, if a nondefault DB parameter group is currently in use, a\n new DB parameter group in the DB parameter group family for the new engine version must\n be specified. The new DB parameter group can be the default for that DB parameter group\n family.

      \n

      If you specify only a major version, Amazon RDS updates the DB instance to the \n default minor version if the current minor version is lower.\n For information about valid engine versions, see CreateDBInstance, \n or call DescribeDBEngineVersions.

      \n

      If the instance that you're modifying is acting as a read replica, the engine version\n that you specify must be the same or higher than the version that the source DB instance\n or cluster is running.

      \n

      In RDS Custom for Oracle, this parameter is supported for read replicas only if they are in the \n PATCH_DB_FAILURE lifecycle.

      \n

      Constraints:

      \n
        \n
      • \n

        If you are upgrading the engine version and modifying the DB instance class at the same time, the currently running engine version must be supported on the \n specified DB instance class. Otherwise, the operation returns an error. In this case, first run the operation to upgrade the engine version, \n and then run it again to modify the DB instance class.

        \n
      • \n
      " } }, "AllowMajorVersionUpgrade": { @@ -20475,6 +21039,12 @@ "traits": { "smithy.api#documentation": "

      Indicates whether the DB instance has a dedicated log volume (DLV) enabled.

      " } + }, + "MultiTenant": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

      Specifies whether the to convert your DB instance from the single-tenant configuration\n to the multi-tenant configuration. This parameter is supported only for RDS for Oracle\n CDB instances.

      \n

      During the conversion, RDS creates an initial tenant database and associates the DB\n name, master user name, character set, and national character set metadata with this\n database. The tags associated with the instance also propagate to the initial tenant\n database. You can add more tenant databases to your DB instance by using the\n CreateTenantDatabase operation.

      \n \n

      The conversion to the multi-tenant configuration is permanent and irreversible, so\n you can't later convert back to the single-tenant configuration. When you specify\n this parameter, you must also specify ApplyImmediately.

      \n
      " + } } }, "traits": { @@ -21394,6 +21964,79 @@ "smithy.api#output": {} } }, + "com.amazonaws.rds#ModifyTenantDatabase": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#ModifyTenantDatabaseMessage" + }, + "output": { + "target": "com.amazonaws.rds#ModifyTenantDatabaseResult" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBInstanceNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidDBInstanceStateFault" + }, + { + "target": "com.amazonaws.rds#TenantDatabaseAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#TenantDatabaseNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

      Modifies an existing tenant database in a DB instance. You can change the tenant\n database name or the master user password. This operation is supported only for RDS for\n Oracle CDB instances using the multi-tenant configuration.

      " + } + }, + "com.amazonaws.rds#ModifyTenantDatabaseMessage": { + "type": "structure", + "members": { + "DBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

      The identifier of the DB instance that contains the tenant database that you are\n modifying. This parameter isn't case-sensitive.

      \n

      Constraints:

      \n
        \n
      • \n

        Must match the identifier of an existing DB instance.

        \n
      • \n
      ", + "smithy.api#required": {} + } + }, + "TenantDBName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

      The user-supplied name of the tenant database that you want to modify. This parameter\n isn’t case-sensitive.

      \n

      Constraints:

      \n
        \n
      • \n

        Must match the identifier of an existing tenant database.

        \n
      • \n
      ", + "smithy.api#required": {} + } + }, + "MasterUserPassword": { + "target": "com.amazonaws.rds#SensitiveString", + "traits": { + "smithy.api#documentation": "

      The new password for the master user of the specified tenant database in your DB\n instance.

      \n \n

      Amazon RDS operations never return the password, so this action provides a way to regain\n access to a tenant database user if the password is lost. This includes restoring\n privileges that might have been accidentally revoked.

      \n
      \n

      Constraints:

      \n
        \n
      • \n

        Can include any printable ASCII character except /, \" (double\n quote), @, & (ampersand), and '\n (single quote).

        \n
      • \n
      \n

      Length constraints:

      \n
        \n
      • \n

        Must contain between 8 and 30 characters.

        \n
      • \n
      " + } + }, + "NewTenantDBName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

      The new name of the tenant database when renaming a tenant database. This parameter\n isn’t case-sensitive.

      \n

      Constraints:

      \n
        \n
      • \n

        Can't be the string null or any other reserved word.

        \n
      • \n
      • \n

        Can't be longer than 8 characters.

        \n
      • \n
      " + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#ModifyTenantDatabaseResult": { + "type": "structure", + "members": { + "TenantDatabase": { + "target": "com.amazonaws.rds#TenantDatabase" + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.rds#NetworkTypeNotSupported": { "type": "structure", "members": { @@ -22637,6 +23280,12 @@ "traits": { "smithy.api#documentation": "

      Indicates whether the DB instance has a dedicated log volume (DLV) enabled.>

      " } + }, + "MultiTenant": { + "target": "com.amazonaws.rds#BooleanOptional", + "traits": { + "smithy.api#documentation": "

      Indicates whether the DB instance will change to the multi-tenant configuration (TRUE)\n or the single-tenant configuration (FALSE).

      " + } } }, "traits": { @@ -23578,8 +24227,14 @@ { "target": "com.amazonaws.rds#DBSnapshotNotFoundFault" }, + { + "target": "com.amazonaws.rds#DBSnapshotTenantDatabaseNotFoundFault" + }, { "target": "com.amazonaws.rds#IntegrationNotFoundFault" + }, + { + "target": "com.amazonaws.rds#TenantDatabaseNotFoundFault" } ], "traits": { @@ -25172,6 +25827,9 @@ }, { "target": "com.amazonaws.rds#StorageTypeNotSupportedFault" + }, + { + "target": "com.amazonaws.rds#TenantDatabaseQuotaExceededFault" } ], "traits": { @@ -25940,6 +26598,9 @@ }, { "target": "com.amazonaws.rds#StorageTypeNotSupportedFault" + }, + { + "target": "com.amazonaws.rds#TenantDatabaseQuotaExceededFault" } ], "traits": { @@ -26566,6 +27227,12 @@ "smithy.api#documentation": "

      The scaling configuration for an Aurora DB cluster in serverless DB engine mode.

      \n

      For more information, see Using Amazon Aurora Serverless v1 in the\n Amazon Aurora User Guide.

      " } }, + "com.amazonaws.rds#SensitiveString": { + "type": "string", + "traits": { + "smithy.api#sensitive": {} + } + }, "com.amazonaws.rds#ServerlessV2ScalingConfiguration": { "type": "structure", "members": { @@ -28318,6 +28985,189 @@ } } }, + "com.amazonaws.rds#TenantDatabase": { + "type": "structure", + "members": { + "TenantDatabaseCreateTime": { + "target": "com.amazonaws.rds#TStamp", + "traits": { + "smithy.api#documentation": "

      The creation time of the tenant database.

      " + } + }, + "DBInstanceIdentifier": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

      The ID of the DB instance that contains the tenant database.

      " + } + }, + "TenantDBName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

      The database name of the tenant database.

      " + } + }, + "Status": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

      The status of the tenant database.

      " + } + }, + "MasterUsername": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

      The master username of the tenant database.

      " + } + }, + "DbiResourceId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

      The Amazon Web Services Region-unique, immutable identifier for the DB instance.

      " + } + }, + "TenantDatabaseResourceId": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

      The Amazon Web Services Region-unique, immutable identifier for the tenant database.

      " + } + }, + "TenantDatabaseARN": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

      The Amazon Resource Name (ARN) for the tenant database.

      " + } + }, + "CharacterSetName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

      The character set of the tenant database.

      " + } + }, + "NcharCharacterSetName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

      The NCHAR character set name of the tenant database.

      " + } + }, + "DeletionProtection": { + "target": "com.amazonaws.rds#Boolean", + "traits": { + "smithy.api#documentation": "

      Specifies whether deletion protection is enabled for the DB instance.

      " + } + }, + "PendingModifiedValues": { + "target": "com.amazonaws.rds#TenantDatabasePendingModifiedValues", + "traits": { + "smithy.api#documentation": "

      Information about pending changes for a tenant database.

      " + } + }, + "TagList": { + "target": "com.amazonaws.rds#TagList" + } + }, + "traits": { + "smithy.api#documentation": "

      A tenant database in the DB instance. This data type is an element in the response to\n the DescribeTenantDatabases action.

      " + } + }, + "com.amazonaws.rds#TenantDatabaseAlreadyExistsFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "TenantDatabaseAlreadyExists", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

      You attempted to either create a tenant database that already exists or \n modify a tenant database to use the name of an existing tenant database.

      ", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#TenantDatabaseNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "TenantDatabaseNotFound", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

      The specified tenant database wasn't found in the DB instance.

      ", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.rds#TenantDatabasePendingModifiedValues": { + "type": "structure", + "members": { + "MasterUserPassword": { + "target": "com.amazonaws.rds#SensitiveString", + "traits": { + "smithy.api#documentation": "

      The master password for the tenant database.

      " + } + }, + "TenantDBName": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

      The name of the tenant database.

      " + } + } + }, + "traits": { + "smithy.api#documentation": "

      A response element in the ModifyTenantDatabase operation that describes\n changes that will be applied. Specific changes are identified by subelements.

      " + } + }, + "com.amazonaws.rds#TenantDatabaseQuotaExceededFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "TenantDatabaseQuotaExceeded", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

      You attempted to create more tenant databases than are permitted in your Amazon Web Services\n account.

      ", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#TenantDatabasesList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#TenantDatabase", + "traits": { + "smithy.api#xmlName": "TenantDatabase" + } + } + }, + "com.amazonaws.rds#TenantDatabasesMessage": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#documentation": "

      An optional pagination token provided by a previous\n DescribeTenantDatabases request. If this parameter is specified, the\n response includes only records beyond the marker, up to the value specified by\n MaxRecords.

      " + } + }, + "TenantDatabases": { + "target": "com.amazonaws.rds#TenantDatabasesList", + "traits": { + "smithy.api#documentation": "

      An array of the tenant databases requested by the DescribeTenantDatabases\n operation.

      " + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.rds#Timezone": { "type": "structure", "members": {