From 8bc90cc7b707f1050cf803a659f5a53c76ff1ee4 Mon Sep 17 00:00:00 2001 From: awstools Date: Mon, 30 Oct 2023 18:20:38 +0000 Subject: [PATCH] feat(client-rds): This release launches the CreateIntegration, DeleteIntegration, and DescribeIntegrations APIs to manage zero-ETL Integrations. --- clients/client-rds/README.md | 24 + clients/client-rds/src/RDS.ts | 69 ++ clients/client-rds/src/RDSClient.ts | 12 + .../src/commands/AddTagsToResourceCommand.ts | 3 + .../CreateCustomDBEngineVersionCommand.ts | 2 + .../src/commands/CreateIntegrationCommand.ts | 204 +++++ .../DeleteCustomDBEngineVersionCommand.ts | 2 + .../src/commands/DeleteIntegrationCommand.ts | 181 +++++ .../DescribeDBClusterParametersCommand.ts | 3 +- ...cribeDBClusterSnapshotAttributesCommand.ts | 2 +- .../DescribeDBClusterSnapshotsCommand.ts | 2 +- .../src/commands/DescribeDBClustersCommand.ts | 2 +- .../DescribeDBEngineVersionsCommand.ts | 5 +- .../commands/DescribeIntegrationsCommand.ts | 189 +++++ .../commands/ListTagsForResourceCommand.ts | 3 + .../ModifyCustomDBEngineVersionCommand.ts | 2 + .../commands/RemoveTagsFromResourceCommand.ts | 3 + clients/client-rds/src/commands/index.ts | 3 + clients/client-rds/src/models/models_0.ts | 722 +++++++----------- clients/client-rds/src/models/models_1.ts | 491 +++++++++++- .../DescribeIntegrationsPaginator.ts | 50 ++ clients/client-rds/src/pagination/index.ts | 1 + clients/client-rds/src/protocols/Aws_query.ts | 606 ++++++++++++++- codegen/sdk-codegen/aws-models/rds.json | 527 +++++++++++++ 24 files changed, 2657 insertions(+), 451 deletions(-) create mode 100644 clients/client-rds/src/commands/CreateIntegrationCommand.ts create mode 100644 clients/client-rds/src/commands/DeleteIntegrationCommand.ts create mode 100644 clients/client-rds/src/commands/DescribeIntegrationsCommand.ts create mode 100644 clients/client-rds/src/pagination/DescribeIntegrationsPaginator.ts diff --git a/clients/client-rds/README.md b/clients/client-rds/README.md index 221139053ff4..13da7c037432 100644 --- a/clients/client-rds/README.md +++ b/clients/client-rds/README.md @@ -487,6 +487,14 @@ CreateGlobalCluster [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/classes/createglobalclustercommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/interfaces/createglobalclustercommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/interfaces/createglobalclustercommandoutput.html) + +
+ +CreateIntegration + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/classes/createintegrationcommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/interfaces/createintegrationcommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/interfaces/createintegrationcommandoutput.html) +
@@ -631,6 +639,14 @@ DeleteGlobalCluster [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/classes/deleteglobalclustercommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/interfaces/deleteglobalclustercommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/interfaces/deleteglobalclustercommandoutput.html) +
+
+ +DeleteIntegration + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/classes/deleteintegrationcommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/interfaces/deleteintegrationcommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/interfaces/deleteintegrationcommandoutput.html) +
@@ -903,6 +919,14 @@ DescribeGlobalClusters [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/classes/describeglobalclusterscommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/interfaces/describeglobalclusterscommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/interfaces/describeglobalclusterscommandoutput.html) +
+
+ +DescribeIntegrations + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/classes/describeintegrationscommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/interfaces/describeintegrationscommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-rds/interfaces/describeintegrationscommandoutput.html) +
diff --git a/clients/client-rds/src/RDS.ts b/clients/client-rds/src/RDS.ts index 512ccc4cc354..209275b865ab 100644 --- a/clients/client-rds/src/RDS.ts +++ b/clients/client-rds/src/RDS.ts @@ -147,6 +147,11 @@ import { CreateGlobalClusterCommandInput, CreateGlobalClusterCommandOutput, } from "./commands/CreateGlobalClusterCommand"; +import { + CreateIntegrationCommand, + CreateIntegrationCommandInput, + CreateIntegrationCommandOutput, +} from "./commands/CreateIntegrationCommand"; import { CreateOptionGroupCommand, CreateOptionGroupCommandInput, @@ -237,6 +242,11 @@ import { DeleteGlobalClusterCommandInput, DeleteGlobalClusterCommandOutput, } from "./commands/DeleteGlobalClusterCommand"; +import { + DeleteIntegrationCommand, + DeleteIntegrationCommandInput, + DeleteIntegrationCommandOutput, +} from "./commands/DeleteIntegrationCommand"; import { DeleteOptionGroupCommand, DeleteOptionGroupCommandInput, @@ -407,6 +417,11 @@ import { DescribeGlobalClustersCommandInput, DescribeGlobalClustersCommandOutput, } from "./commands/DescribeGlobalClustersCommand"; +import { + DescribeIntegrationsCommand, + DescribeIntegrationsCommandInput, + DescribeIntegrationsCommandOutput, +} from "./commands/DescribeIntegrationsCommand"; import { DescribeOptionGroupOptionsCommand, DescribeOptionGroupOptionsCommandInput, @@ -754,6 +769,7 @@ const commands = { CreateDBSubnetGroupCommand, CreateEventSubscriptionCommand, CreateGlobalClusterCommand, + CreateIntegrationCommand, CreateOptionGroupCommand, DeleteBlueGreenDeploymentCommand, DeleteCustomDBEngineVersionCommand, @@ -772,6 +788,7 @@ const commands = { DeleteDBSubnetGroupCommand, DeleteEventSubscriptionCommand, DeleteGlobalClusterCommand, + DeleteIntegrationCommand, DeleteOptionGroupCommand, DeregisterDBProxyTargetsCommand, DescribeAccountAttributesCommand, @@ -806,6 +823,7 @@ const commands = { DescribeEventSubscriptionsCommand, DescribeExportTasksCommand, DescribeGlobalClustersCommand, + DescribeIntegrationsCommand, DescribeOptionGroupOptionsCommand, DescribeOptionGroupsCommand, DescribeOrderableDBInstanceOptionsCommand, @@ -1350,6 +1368,23 @@ export interface RDS { cb: (err: any, data?: CreateGlobalClusterCommandOutput) => void ): void; + /** + * @see {@link CreateIntegrationCommand} + */ + createIntegration( + args: CreateIntegrationCommandInput, + options?: __HttpHandlerOptions + ): Promise; + createIntegration( + args: CreateIntegrationCommandInput, + cb: (err: any, data?: CreateIntegrationCommandOutput) => void + ): void; + createIntegration( + args: CreateIntegrationCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateIntegrationCommandOutput) => void + ): void; + /** * @see {@link CreateOptionGroupCommand} */ @@ -1647,6 +1682,23 @@ export interface RDS { cb: (err: any, data?: DeleteGlobalClusterCommandOutput) => void ): void; + /** + * @see {@link DeleteIntegrationCommand} + */ + deleteIntegration( + args: DeleteIntegrationCommandInput, + options?: __HttpHandlerOptions + ): Promise; + deleteIntegration( + args: DeleteIntegrationCommandInput, + cb: (err: any, data?: DeleteIntegrationCommandOutput) => void + ): void; + deleteIntegration( + args: DeleteIntegrationCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteIntegrationCommandOutput) => void + ): void; + /** * @see {@link DeleteOptionGroupCommand} */ @@ -2222,6 +2274,23 @@ export interface RDS { cb: (err: any, data?: DescribeGlobalClustersCommandOutput) => void ): void; + /** + * @see {@link DescribeIntegrationsCommand} + */ + describeIntegrations( + args: DescribeIntegrationsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + describeIntegrations( + args: DescribeIntegrationsCommandInput, + cb: (err: any, data?: DescribeIntegrationsCommandOutput) => void + ): void; + describeIntegrations( + args: DescribeIntegrationsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DescribeIntegrationsCommandOutput) => void + ): void; + /** * @see {@link DescribeOptionGroupOptionsCommand} */ diff --git a/clients/client-rds/src/RDSClient.ts b/clients/client-rds/src/RDSClient.ts index 9ac816c99b6f..0a093fdd1da1 100644 --- a/clients/client-rds/src/RDSClient.ts +++ b/clients/client-rds/src/RDSClient.ts @@ -136,6 +136,7 @@ import { CreateGlobalClusterCommandInput, CreateGlobalClusterCommandOutput, } from "./commands/CreateGlobalClusterCommand"; +import { CreateIntegrationCommandInput, CreateIntegrationCommandOutput } from "./commands/CreateIntegrationCommand"; import { CreateOptionGroupCommandInput, CreateOptionGroupCommandOutput } from "./commands/CreateOptionGroupCommand"; import { DeleteBlueGreenDeploymentCommandInput, @@ -193,6 +194,7 @@ import { DeleteGlobalClusterCommandInput, DeleteGlobalClusterCommandOutput, } from "./commands/DeleteGlobalClusterCommand"; +import { DeleteIntegrationCommandInput, DeleteIntegrationCommandOutput } from "./commands/DeleteIntegrationCommand"; import { DeleteOptionGroupCommandInput, DeleteOptionGroupCommandOutput } from "./commands/DeleteOptionGroupCommand"; import { DeregisterDBProxyTargetsCommandInput, @@ -314,6 +316,10 @@ import { DescribeGlobalClustersCommandInput, DescribeGlobalClustersCommandOutput, } from "./commands/DescribeGlobalClustersCommand"; +import { + DescribeIntegrationsCommandInput, + DescribeIntegrationsCommandOutput, +} from "./commands/DescribeIntegrationsCommand"; import { DescribeOptionGroupOptionsCommandInput, DescribeOptionGroupOptionsCommandOutput, @@ -562,6 +568,7 @@ export type ServiceInputTypes = | CreateDBSubnetGroupCommandInput | CreateEventSubscriptionCommandInput | CreateGlobalClusterCommandInput + | CreateIntegrationCommandInput | CreateOptionGroupCommandInput | DeleteBlueGreenDeploymentCommandInput | DeleteCustomDBEngineVersionCommandInput @@ -580,6 +587,7 @@ export type ServiceInputTypes = | DeleteDBSubnetGroupCommandInput | DeleteEventSubscriptionCommandInput | DeleteGlobalClusterCommandInput + | DeleteIntegrationCommandInput | DeleteOptionGroupCommandInput | DeregisterDBProxyTargetsCommandInput | DescribeAccountAttributesCommandInput @@ -614,6 +622,7 @@ export type ServiceInputTypes = | DescribeEventsCommandInput | DescribeExportTasksCommandInput | DescribeGlobalClustersCommandInput + | DescribeIntegrationsCommandInput | DescribeOptionGroupOptionsCommandInput | DescribeOptionGroupsCommandInput | DescribeOrderableDBInstanceOptionsCommandInput @@ -711,6 +720,7 @@ export type ServiceOutputTypes = | CreateDBSubnetGroupCommandOutput | CreateEventSubscriptionCommandOutput | CreateGlobalClusterCommandOutput + | CreateIntegrationCommandOutput | CreateOptionGroupCommandOutput | DeleteBlueGreenDeploymentCommandOutput | DeleteCustomDBEngineVersionCommandOutput @@ -729,6 +739,7 @@ export type ServiceOutputTypes = | DeleteDBSubnetGroupCommandOutput | DeleteEventSubscriptionCommandOutput | DeleteGlobalClusterCommandOutput + | DeleteIntegrationCommandOutput | DeleteOptionGroupCommandOutput | DeregisterDBProxyTargetsCommandOutput | DescribeAccountAttributesCommandOutput @@ -763,6 +774,7 @@ export type ServiceOutputTypes = | DescribeEventsCommandOutput | DescribeExportTasksCommandOutput | DescribeGlobalClustersCommandOutput + | DescribeIntegrationsCommandOutput | DescribeOptionGroupOptionsCommandOutput | DescribeOptionGroupsCommandOutput | DescribeOrderableDBInstanceOptionsCommandOutput diff --git a/clients/client-rds/src/commands/AddTagsToResourceCommand.ts b/clients/client-rds/src/commands/AddTagsToResourceCommand.ts index 2b04b8db9d96..c32332c8b082 100644 --- a/clients/client-rds/src/commands/AddTagsToResourceCommand.ts +++ b/clients/client-rds/src/commands/AddTagsToResourceCommand.ts @@ -89,6 +89,9 @@ export interface AddTagsToResourceCommandOutput extends __MetadataBearer {} *

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

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

The specified integration could not be found.

+ * * @throws {@link RDSServiceException} *

Base exception class for all service exceptions from RDS service.

* diff --git a/clients/client-rds/src/commands/CreateCustomDBEngineVersionCommand.ts b/clients/client-rds/src/commands/CreateCustomDBEngineVersionCommand.ts index 4022aa5b49ee..2bcc4717a6e5 100644 --- a/clients/client-rds/src/commands/CreateCustomDBEngineVersionCommand.ts +++ b/clients/client-rds/src/commands/CreateCustomDBEngineVersionCommand.ts @@ -105,6 +105,7 @@ export interface CreateCustomDBEngineVersionCommandOutput extends DBEngineVersio * // SupportsGlobalDatabases: true || false, * // SupportsBabelfish: true || false, * // SupportsLocalWriteForwarding: true || false, + * // SupportsIntegrations: true || false, * // }, * // ], * // SupportedTimezones: [ // SupportedTimezonesList @@ -145,6 +146,7 @@ export interface CreateCustomDBEngineVersionCommandOutput extends DBEngineVersio * // "STRING_VALUE", * // ], * // SupportsLocalWriteForwarding: true || false, + * // SupportsIntegrations: true || false, * // }; * * ``` diff --git a/clients/client-rds/src/commands/CreateIntegrationCommand.ts b/clients/client-rds/src/commands/CreateIntegrationCommand.ts new file mode 100644 index 000000000000..6907bdb032e6 --- /dev/null +++ b/clients/client-rds/src/commands/CreateIntegrationCommand.ts @@ -0,0 +1,204 @@ +// 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 { CreateIntegrationMessage, Integration } from "../models/models_0"; +import { de_CreateIntegrationCommand, se_CreateIntegrationCommand } from "../protocols/Aws_query"; +import { RDSClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../RDSClient"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link CreateIntegrationCommand}. + */ +export interface CreateIntegrationCommandInput extends CreateIntegrationMessage {} +/** + * @public + * + * The output of {@link CreateIntegrationCommand}. + */ +export interface CreateIntegrationCommandOutput extends Integration, __MetadataBearer {} + +/** + * @public + *

Creates a zero-ETL integration with Amazon Redshift. For more information, see Working + * with Amazon Aurora zero-ETL integrations with Amazon Redshift in the + * Amazon Aurora User Guide.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { RDSClient, CreateIntegrationCommand } from "@aws-sdk/client-rds"; // ES Modules import + * // const { RDSClient, CreateIntegrationCommand } = require("@aws-sdk/client-rds"); // CommonJS import + * const client = new RDSClient(config); + * const input = { // CreateIntegrationMessage + * SourceArn: "STRING_VALUE", // required + * TargetArn: "STRING_VALUE", // required + * IntegrationName: "STRING_VALUE", // required + * KMSKeyId: "STRING_VALUE", + * AdditionalEncryptionContext: { // EncryptionContextMap + * "": "STRING_VALUE", + * }, + * Tags: [ // TagList + * { // Tag + * Key: "STRING_VALUE", + * Value: "STRING_VALUE", + * }, + * ], + * }; + * const command = new CreateIntegrationCommand(input); + * const response = await client.send(command); + * // { // Integration + * // SourceArn: "STRING_VALUE", + * // TargetArn: "STRING_VALUE", + * // IntegrationName: "STRING_VALUE", + * // IntegrationArn: "STRING_VALUE", + * // KMSKeyId: "STRING_VALUE", + * // AdditionalEncryptionContext: { // EncryptionContextMap + * // "": "STRING_VALUE", + * // }, + * // Status: "creating" || "active" || "modifying" || "failed" || "deleting" || "syncing" || "needs_attention", + * // Tags: [ // TagList + * // { // Tag + * // Key: "STRING_VALUE", + * // Value: "STRING_VALUE", + * // }, + * // ], + * // CreateTime: new Date("TIMESTAMP"), + * // Errors: [ // IntegrationErrorList + * // { // IntegrationError + * // ErrorCode: "STRING_VALUE", // required + * // ErrorMessage: "STRING_VALUE", + * // }, + * // ], + * // }; + * + * ``` + * + * @param CreateIntegrationCommandInput - {@link CreateIntegrationCommandInput} + * @returns {@link CreateIntegrationCommandOutput} + * @see {@link CreateIntegrationCommandInput} for command's `input` shape. + * @see {@link CreateIntegrationCommandOutput} for command's `response` shape. + * @see {@link RDSClientResolvedConfig | config} for RDSClient's `config` shape. + * + * @throws {@link DBClusterNotFoundFault} (client fault) + *

+ * DBClusterIdentifier doesn't refer to an existing DB cluster.

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

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

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

The integration you are trying to create already exists.

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

A conflicting conditional operation is currently in progress against this resource. + * Typically occurs when there are multiple requests being made to the same resource at the same time, + * and these requests conflict with each other.

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

You can't crate any more zero-ETL integrations because the quota has been reached.

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

An error occurred accessing an Amazon Web Services KMS key.

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

Base exception class for all service exceptions from RDS service.

+ * + */ +export class CreateIntegrationCommand extends $Command< + CreateIntegrationCommandInput, + CreateIntegrationCommandOutput, + 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: CreateIntegrationCommandInput) { + // 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, CreateIntegrationCommand.getEndpointParameterInstructions()) + ); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "RDSClient"; + const commandName = "CreateIntegrationCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: (_: any) => _, + outputFilterSensitiveLog: (_: any) => _, + [SMITHY_CONTEXT_KEY]: { + service: "AmazonRDSv19", + operation: "CreateIntegration", + }, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + /** + * @internal + */ + private serialize(input: CreateIntegrationCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return se_CreateIntegrationCommand(input, context); + } + + /** + * @internal + */ + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return de_CreateIntegrationCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-rds/src/commands/DeleteCustomDBEngineVersionCommand.ts b/clients/client-rds/src/commands/DeleteCustomDBEngineVersionCommand.ts index 7cfa919cb89b..77738256ede3 100644 --- a/clients/client-rds/src/commands/DeleteCustomDBEngineVersionCommand.ts +++ b/clients/client-rds/src/commands/DeleteCustomDBEngineVersionCommand.ts @@ -111,6 +111,7 @@ export interface DeleteCustomDBEngineVersionCommandOutput extends DBEngineVersio * // SupportsGlobalDatabases: true || false, * // SupportsBabelfish: true || false, * // SupportsLocalWriteForwarding: true || false, + * // SupportsIntegrations: true || false, * // }, * // ], * // SupportedTimezones: [ // SupportedTimezonesList @@ -151,6 +152,7 @@ export interface DeleteCustomDBEngineVersionCommandOutput extends DBEngineVersio * // "STRING_VALUE", * // ], * // SupportsLocalWriteForwarding: true || false, + * // SupportsIntegrations: true || false, * // }; * * ``` diff --git a/clients/client-rds/src/commands/DeleteIntegrationCommand.ts b/clients/client-rds/src/commands/DeleteIntegrationCommand.ts new file mode 100644 index 000000000000..776d859de7a4 --- /dev/null +++ b/clients/client-rds/src/commands/DeleteIntegrationCommand.ts @@ -0,0 +1,181 @@ +// 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 { DeleteIntegrationMessage, Integration } from "../models/models_0"; +import { de_DeleteIntegrationCommand, se_DeleteIntegrationCommand } from "../protocols/Aws_query"; +import { RDSClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../RDSClient"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link DeleteIntegrationCommand}. + */ +export interface DeleteIntegrationCommandInput extends DeleteIntegrationMessage {} +/** + * @public + * + * The output of {@link DeleteIntegrationCommand}. + */ +export interface DeleteIntegrationCommandOutput extends Integration, __MetadataBearer {} + +/** + * @public + *

Deletes a zero-ETL integration with Amazon Redshift. For more information, see Deleting Amazon Aurora zero-ETL integrations with Amazon Redshift in the + * Amazon Aurora User Guide + *

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { RDSClient, DeleteIntegrationCommand } from "@aws-sdk/client-rds"; // ES Modules import + * // const { RDSClient, DeleteIntegrationCommand } = require("@aws-sdk/client-rds"); // CommonJS import + * const client = new RDSClient(config); + * const input = { // DeleteIntegrationMessage + * IntegrationIdentifier: "STRING_VALUE", // required + * }; + * const command = new DeleteIntegrationCommand(input); + * const response = await client.send(command); + * // { // Integration + * // SourceArn: "STRING_VALUE", + * // TargetArn: "STRING_VALUE", + * // IntegrationName: "STRING_VALUE", + * // IntegrationArn: "STRING_VALUE", + * // KMSKeyId: "STRING_VALUE", + * // AdditionalEncryptionContext: { // EncryptionContextMap + * // "": "STRING_VALUE", + * // }, + * // Status: "creating" || "active" || "modifying" || "failed" || "deleting" || "syncing" || "needs_attention", + * // Tags: [ // TagList + * // { // Tag + * // Key: "STRING_VALUE", + * // Value: "STRING_VALUE", + * // }, + * // ], + * // CreateTime: new Date("TIMESTAMP"), + * // Errors: [ // IntegrationErrorList + * // { // IntegrationError + * // ErrorCode: "STRING_VALUE", // required + * // ErrorMessage: "STRING_VALUE", + * // }, + * // ], + * // }; + * + * ``` + * + * @param DeleteIntegrationCommandInput - {@link DeleteIntegrationCommandInput} + * @returns {@link DeleteIntegrationCommandOutput} + * @see {@link DeleteIntegrationCommandInput} for command's `input` shape. + * @see {@link DeleteIntegrationCommandOutput} for command's `response` shape. + * @see {@link RDSClientResolvedConfig | config} for RDSClient's `config` shape. + * + * @throws {@link IntegrationConflictOperationFault} (client fault) + *

A conflicting conditional operation is currently in progress against this resource. + * Typically occurs when there are multiple requests being made to the same resource at the same time, + * and these requests conflict with each other.

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

The specified integration could not be found.

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

The integration is in an invalid state and can't perform the requested operation.

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

Base exception class for all service exceptions from RDS service.

+ * + */ +export class DeleteIntegrationCommand extends $Command< + DeleteIntegrationCommandInput, + DeleteIntegrationCommandOutput, + 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: DeleteIntegrationCommandInput) { + // 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, DeleteIntegrationCommand.getEndpointParameterInstructions()) + ); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "RDSClient"; + const commandName = "DeleteIntegrationCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: (_: any) => _, + outputFilterSensitiveLog: (_: any) => _, + [SMITHY_CONTEXT_KEY]: { + service: "AmazonRDSv19", + operation: "DeleteIntegration", + }, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + /** + * @internal + */ + private serialize(input: DeleteIntegrationCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return se_DeleteIntegrationCommand(input, context); + } + + /** + * @internal + */ + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return de_DeleteIntegrationCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-rds/src/commands/DescribeDBClusterParametersCommand.ts b/clients/client-rds/src/commands/DescribeDBClusterParametersCommand.ts index 723b06a4912e..43b8dacc60f2 100644 --- a/clients/client-rds/src/commands/DescribeDBClusterParametersCommand.ts +++ b/clients/client-rds/src/commands/DescribeDBClusterParametersCommand.ts @@ -14,7 +14,8 @@ import { SMITHY_CONTEXT_KEY, } from "@smithy/types"; -import { DBClusterParameterGroupDetails, DescribeDBClusterParametersMessage } from "../models/models_0"; +import { DBClusterParameterGroupDetails } from "../models/models_0"; +import { DescribeDBClusterParametersMessage } from "../models/models_1"; import { de_DescribeDBClusterParametersCommand, se_DescribeDBClusterParametersCommand } from "../protocols/Aws_query"; import { RDSClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../RDSClient"; diff --git a/clients/client-rds/src/commands/DescribeDBClusterSnapshotAttributesCommand.ts b/clients/client-rds/src/commands/DescribeDBClusterSnapshotAttributesCommand.ts index 603cd5ed6d3c..43525e38fea0 100644 --- a/clients/client-rds/src/commands/DescribeDBClusterSnapshotAttributesCommand.ts +++ b/clients/client-rds/src/commands/DescribeDBClusterSnapshotAttributesCommand.ts @@ -17,7 +17,7 @@ import { import { DescribeDBClusterSnapshotAttributesMessage, DescribeDBClusterSnapshotAttributesResult, -} from "../models/models_0"; +} from "../models/models_1"; import { de_DescribeDBClusterSnapshotAttributesCommand, se_DescribeDBClusterSnapshotAttributesCommand, diff --git a/clients/client-rds/src/commands/DescribeDBClusterSnapshotsCommand.ts b/clients/client-rds/src/commands/DescribeDBClusterSnapshotsCommand.ts index 992d5eeaeb16..07b0fc71a5e9 100644 --- a/clients/client-rds/src/commands/DescribeDBClusterSnapshotsCommand.ts +++ b/clients/client-rds/src/commands/DescribeDBClusterSnapshotsCommand.ts @@ -14,7 +14,7 @@ import { SMITHY_CONTEXT_KEY, } from "@smithy/types"; -import { DBClusterSnapshotMessage, DescribeDBClusterSnapshotsMessage } from "../models/models_0"; +import { DBClusterSnapshotMessage, DescribeDBClusterSnapshotsMessage } from "../models/models_1"; import { de_DescribeDBClusterSnapshotsCommand, se_DescribeDBClusterSnapshotsCommand } from "../protocols/Aws_query"; import { RDSClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../RDSClient"; diff --git a/clients/client-rds/src/commands/DescribeDBClustersCommand.ts b/clients/client-rds/src/commands/DescribeDBClustersCommand.ts index be6f1ad5ebb4..8736c192549a 100644 --- a/clients/client-rds/src/commands/DescribeDBClustersCommand.ts +++ b/clients/client-rds/src/commands/DescribeDBClustersCommand.ts @@ -14,7 +14,7 @@ import { SMITHY_CONTEXT_KEY, } from "@smithy/types"; -import { DBClusterMessage, DescribeDBClustersMessage } from "../models/models_0"; +import { DBClusterMessage, DescribeDBClustersMessage } from "../models/models_1"; import { de_DescribeDBClustersCommand, se_DescribeDBClustersCommand } from "../protocols/Aws_query"; import { RDSClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../RDSClient"; diff --git a/clients/client-rds/src/commands/DescribeDBEngineVersionsCommand.ts b/clients/client-rds/src/commands/DescribeDBEngineVersionsCommand.ts index 1ae3c75e60f8..e65e7e356358 100644 --- a/clients/client-rds/src/commands/DescribeDBEngineVersionsCommand.ts +++ b/clients/client-rds/src/commands/DescribeDBEngineVersionsCommand.ts @@ -14,8 +14,7 @@ import { SMITHY_CONTEXT_KEY, } from "@smithy/types"; -import { DBEngineVersionMessage } from "../models/models_0"; -import { DescribeDBEngineVersionsMessage } from "../models/models_1"; +import { DBEngineVersionMessage, DescribeDBEngineVersionsMessage } from "../models/models_1"; import { de_DescribeDBEngineVersionsCommand, se_DescribeDBEngineVersionsCommand } from "../protocols/Aws_query"; import { RDSClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../RDSClient"; @@ -110,6 +109,7 @@ export interface DescribeDBEngineVersionsCommandOutput extends DBEngineVersionMe * // SupportsGlobalDatabases: true || false, * // SupportsBabelfish: true || false, * // SupportsLocalWriteForwarding: true || false, + * // SupportsIntegrations: true || false, * // }, * // ], * // SupportedTimezones: [ // SupportedTimezonesList @@ -150,6 +150,7 @@ export interface DescribeDBEngineVersionsCommandOutput extends DBEngineVersionMe * // "STRING_VALUE", * // ], * // SupportsLocalWriteForwarding: true || false, + * // SupportsIntegrations: true || false, * // }, * // ], * // }; diff --git a/clients/client-rds/src/commands/DescribeIntegrationsCommand.ts b/clients/client-rds/src/commands/DescribeIntegrationsCommand.ts new file mode 100644 index 000000000000..10c3a951deb5 --- /dev/null +++ b/clients/client-rds/src/commands/DescribeIntegrationsCommand.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 { DescribeIntegrationsMessage, DescribeIntegrationsResponse } from "../models/models_1"; +import { de_DescribeIntegrationsCommand, se_DescribeIntegrationsCommand } from "../protocols/Aws_query"; +import { RDSClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../RDSClient"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link DescribeIntegrationsCommand}. + */ +export interface DescribeIntegrationsCommandInput extends DescribeIntegrationsMessage {} +/** + * @public + * + * The output of {@link DescribeIntegrationsCommand}. + */ +export interface DescribeIntegrationsCommandOutput extends DescribeIntegrationsResponse, __MetadataBearer {} + +/** + * @public + *

Describe one or more zero-ETL integration with Amazon Redshift. For more information, + * see Viewing and monitoring Amazon Aurora zero-ETL integrations with Amazon Redshift in + * the Amazon Aurora User Guide + *

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { RDSClient, DescribeIntegrationsCommand } from "@aws-sdk/client-rds"; // ES Modules import + * // const { RDSClient, DescribeIntegrationsCommand } = require("@aws-sdk/client-rds"); // CommonJS import + * const client = new RDSClient(config); + * const input = { // DescribeIntegrationsMessage + * IntegrationIdentifier: "STRING_VALUE", + * Filters: [ // FilterList + * { // Filter + * Name: "STRING_VALUE", // required + * Values: [ // FilterValueList // required + * "STRING_VALUE", + * ], + * }, + * ], + * MaxRecords: Number("int"), + * Marker: "STRING_VALUE", + * }; + * const command = new DescribeIntegrationsCommand(input); + * const response = await client.send(command); + * // { // DescribeIntegrationsResponse + * // Marker: "STRING_VALUE", + * // Integrations: [ // IntegrationList + * // { // Integration + * // SourceArn: "STRING_VALUE", + * // TargetArn: "STRING_VALUE", + * // IntegrationName: "STRING_VALUE", + * // IntegrationArn: "STRING_VALUE", + * // KMSKeyId: "STRING_VALUE", + * // AdditionalEncryptionContext: { // EncryptionContextMap + * // "": "STRING_VALUE", + * // }, + * // Status: "creating" || "active" || "modifying" || "failed" || "deleting" || "syncing" || "needs_attention", + * // Tags: [ // TagList + * // { // Tag + * // Key: "STRING_VALUE", + * // Value: "STRING_VALUE", + * // }, + * // ], + * // CreateTime: new Date("TIMESTAMP"), + * // Errors: [ // IntegrationErrorList + * // { // IntegrationError + * // ErrorCode: "STRING_VALUE", // required + * // ErrorMessage: "STRING_VALUE", + * // }, + * // ], + * // }, + * // ], + * // }; + * + * ``` + * + * @param DescribeIntegrationsCommandInput - {@link DescribeIntegrationsCommandInput} + * @returns {@link DescribeIntegrationsCommandOutput} + * @see {@link DescribeIntegrationsCommandInput} for command's `input` shape. + * @see {@link DescribeIntegrationsCommandOutput} for command's `response` shape. + * @see {@link RDSClientResolvedConfig | config} for RDSClient's `config` shape. + * + * @throws {@link IntegrationNotFoundFault} (client fault) + *

The specified integration could not be found.

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

Base exception class for all service exceptions from RDS service.

+ * + */ +export class DescribeIntegrationsCommand extends $Command< + DescribeIntegrationsCommandInput, + DescribeIntegrationsCommandOutput, + 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: DescribeIntegrationsCommandInput) { + // 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, DescribeIntegrationsCommand.getEndpointParameterInstructions()) + ); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "RDSClient"; + const commandName = "DescribeIntegrationsCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: (_: any) => _, + outputFilterSensitiveLog: (_: any) => _, + [SMITHY_CONTEXT_KEY]: { + service: "AmazonRDSv19", + operation: "DescribeIntegrations", + }, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + /** + * @internal + */ + private serialize(input: DescribeIntegrationsCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return se_DescribeIntegrationsCommand(input, context); + } + + /** + * @internal + */ + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return de_DescribeIntegrationsCommand(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 6e6bffaccf03..a1e4b5f452de 100644 --- a/clients/client-rds/src/commands/ListTagsForResourceCommand.ts +++ b/clients/client-rds/src/commands/ListTagsForResourceCommand.ts @@ -99,6 +99,9 @@ export interface ListTagsForResourceCommandOutput extends TagListMessage, __Meta *

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

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

The specified integration could not be found.

+ * * @throws {@link RDSServiceException} *

Base exception class for all service exceptions from RDS service.

* diff --git a/clients/client-rds/src/commands/ModifyCustomDBEngineVersionCommand.ts b/clients/client-rds/src/commands/ModifyCustomDBEngineVersionCommand.ts index bfc8be98b3a0..00850277abd0 100644 --- a/clients/client-rds/src/commands/ModifyCustomDBEngineVersionCommand.ts +++ b/clients/client-rds/src/commands/ModifyCustomDBEngineVersionCommand.ts @@ -104,6 +104,7 @@ export interface ModifyCustomDBEngineVersionCommandOutput extends DBEngineVersio * // SupportsGlobalDatabases: true || false, * // SupportsBabelfish: true || false, * // SupportsLocalWriteForwarding: true || false, + * // SupportsIntegrations: true || false, * // }, * // ], * // SupportedTimezones: [ // SupportedTimezonesList @@ -144,6 +145,7 @@ export interface ModifyCustomDBEngineVersionCommandOutput extends DBEngineVersio * // "STRING_VALUE", * // ], * // SupportsLocalWriteForwarding: true || false, + * // SupportsIntegrations: true || false, * // }; * * ``` diff --git a/clients/client-rds/src/commands/RemoveTagsFromResourceCommand.ts b/clients/client-rds/src/commands/RemoveTagsFromResourceCommand.ts index 9eee5835eb1f..449d4c19e0bf 100644 --- a/clients/client-rds/src/commands/RemoveTagsFromResourceCommand.ts +++ b/clients/client-rds/src/commands/RemoveTagsFromResourceCommand.ts @@ -88,6 +88,9 @@ export interface RemoveTagsFromResourceCommandOutput extends __MetadataBearer {} *

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

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

The specified integration could not be found.

+ * * @throws {@link RDSServiceException} *

Base exception class for all service exceptions from RDS service.

* diff --git a/clients/client-rds/src/commands/index.ts b/clients/client-rds/src/commands/index.ts index 136280158e87..95244c5d54f4 100644 --- a/clients/client-rds/src/commands/index.ts +++ b/clients/client-rds/src/commands/index.ts @@ -28,6 +28,7 @@ export * from "./CreateDBSnapshotCommand"; export * from "./CreateDBSubnetGroupCommand"; export * from "./CreateEventSubscriptionCommand"; export * from "./CreateGlobalClusterCommand"; +export * from "./CreateIntegrationCommand"; export * from "./CreateOptionGroupCommand"; export * from "./DeleteBlueGreenDeploymentCommand"; export * from "./DeleteCustomDBEngineVersionCommand"; @@ -46,6 +47,7 @@ export * from "./DeleteDBSnapshotCommand"; export * from "./DeleteDBSubnetGroupCommand"; export * from "./DeleteEventSubscriptionCommand"; export * from "./DeleteGlobalClusterCommand"; +export * from "./DeleteIntegrationCommand"; export * from "./DeleteOptionGroupCommand"; export * from "./DeregisterDBProxyTargetsCommand"; export * from "./DescribeAccountAttributesCommand"; @@ -80,6 +82,7 @@ export * from "./DescribeEventSubscriptionsCommand"; export * from "./DescribeEventsCommand"; export * from "./DescribeExportTasksCommand"; export * from "./DescribeGlobalClustersCommand"; +export * from "./DescribeIntegrationsCommand"; export * from "./DescribeOptionGroupOptionsCommand"; export * from "./DescribeOptionGroupsCommand"; export * from "./DescribeOrderableDBInstanceOptionsCommand"; diff --git a/clients/client-rds/src/models/models_0.ts b/clients/client-rds/src/models/models_0.ts index a609783cecd1..31c8d508df84 100644 --- a/clients/client-rds/src/models/models_0.ts +++ b/clients/client-rds/src/models/models_0.ts @@ -693,6 +693,26 @@ export class DBSnapshotNotFoundFault extends __BaseException { } } +/** + * @public + *

The specified integration could not be found.

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

@@ -3836,6 +3856,13 @@ export interface UpgradeTarget { *

Valid for: Aurora DB clusters only

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

Indicates whether the DB engine version supports Aurora zero-ETL integrations with + * Amazon Redshift.

+ */ + SupportsIntegrations?: boolean; } /** @@ -4065,6 +4092,13 @@ export interface DBEngineVersion { *

Valid for: Aurora DB clusters only

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

Indicates whether the DB engine version supports Aurora zero-ETL integrations with + * Amazon Redshift.

+ */ + SupportsIntegrations?: boolean; } /** @@ -11566,6 +11600,229 @@ export class GlobalClusterQuotaExceededFault extends __BaseException { } } +/** + * @public + */ +export interface CreateIntegrationMessage { + /** + * @public + *

The Amazon Resource Name (ARN) of the Aurora DB cluster to use as the source for + * replication.

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

The ARN of the Redshift data warehouse to use as the target for replication.

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

The name of the integration.

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

The Amazon Web Services Key Management System (Amazon Web Services KMS) key identifier for the key to use to + * encrypt the integration. If you don't specify an encryption key, Aurora uses a default + * Amazon Web Services owned key.

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

An optional set of non-secret key–value pairs that contains additional contextual + * information about the data. For more information, see Encryption + * context in the Amazon Web Services Key Management Service Developer + * Guide.

+ *

You can only include this parameter if you specify the KMSKeyId parameter.

+ */ + AdditionalEncryptionContext?: Record; + + /** + * @public + *

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

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

An error associated with a zero-ETL integration with Amazon Redshift.

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

The error code associated with the integration.

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

A message explaining the error.

+ */ + ErrorMessage?: string; +} + +/** + * @public + * @enum + */ +export const IntegrationStatus = { + ACTIVE: "active", + CREATING: "creating", + DELETING: "deleting", + FAILED: "failed", + MODIFYING: "modifying", + NEEDS_ATTENTION: "needs_attention", + SYNCING: "syncing", +} as const; + +/** + * @public + */ +export type IntegrationStatus = (typeof IntegrationStatus)[keyof typeof IntegrationStatus]; + +/** + * @public + *

An Aurora zero-ETL integration with Amazon Redshift. For more information, see Working + * with Amazon Aurora zero-ETL integrations with Amazon Redshift in the + * Amazon Aurora User Guide.

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

The Amazon Resource Name (ARN) of the Aurora DB cluster used as the source for + * replication.

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

The ARN of the Redshift data warehouse used as the target for replication.

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

The name of the integration.

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

The ARN of the integration.

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

The Amazon Web Services Key Management System (Amazon Web Services KMS) key identifier for the key used to to + * encrypt the integration.

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

The encryption context for the integration. For more information, see Encryption context in the Amazon Web Services Key Management Service Developer + * Guide.

+ */ + AdditionalEncryptionContext?: Record; + + /** + * @public + *

The current status of the integration.

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

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

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

The time when the integration was created, in Universal Coordinated Time + * (UTC).

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

Any errors associated with the integration.

+ */ + Errors?: IntegrationError[]; +} + +/** + * @public + *

The integration you are trying to create already exists.

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

A conflicting conditional operation is currently in progress against this resource. + * Typically occurs when there are multiple requests being made to the same resource at the same time, + * and these requests conflict with each other.

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

You can't crate any more zero-ETL integrations because the quota has been reached.

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

@@ -12948,6 +13205,37 @@ export interface DeleteGlobalClusterResult { GlobalCluster?: GlobalCluster; } +/** + * @public + */ +export interface DeleteIntegrationMessage { + /** + * @public + *

The unique identifier of the integration.

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

The integration is in an invalid state and can't perform the requested operation.

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

@@ -13805,437 +14093,3 @@ export interface DBClusterParameterGroupDetails { */ 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; - - /** - * @public - *

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

- *
    - *
  • - *

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

    - *
  • - *
  • - *

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

    - *
  • - *
  • - *

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

    - *
  • - *
  • - *

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

    - *
  • - *
- *

If you don't specify a SnapshotType value, then both automated and manual DB cluster snapshots are - * returned. You can include shared DB cluster snapshots with these results by enabling the IncludeShared - * parameter. You can include public DB cluster 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 cluster snapshots to describe.

- *

Supported filters:

- *
    - *
  • - *

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

    - *
  • - *
  • - *

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

    - *
  • - *
  • - *

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

    - *
  • - *
  • - *

    - * engine - Accepts names of database 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 - * 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 - *

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 cluster snapshot from - * another Amazon Web Services account by the ModifyDBClusterSnapshotAttribute API action.

- */ - 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 cluster snapshot as public by using the ModifyDBClusterSnapshotAttribute API action.

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

A specific DB cluster resource ID to describe.

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

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

- */ -export interface DBEngineVersionMessage { - /** - * @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 DBEngineVersion elements.

- */ - DBEngineVersions?: DBEngineVersion[]; -} diff --git a/clients/client-rds/src/models/models_1.ts b/clients/client-rds/src/models/models_1.ts index 615945b5c6aa..860a4e3dfc67 100644 --- a/clients/client-rds/src/models/models_1.ts +++ b/clients/client-rds/src/models/models_1.ts @@ -10,7 +10,8 @@ import { BlueGreenDeployment, Certificate, DBCluster, - DBClusterSnapshotAttributesResult, + DBClusterSnapshot, + DBEngineVersion, DBInstance, DBInstanceAutomatedBackup, DBParameterGroup, @@ -24,6 +25,7 @@ import { ExportTask, Filter, GlobalCluster, + Integration, OptionGroup, OptionSetting, Parameter, @@ -37,6 +39,440 @@ import { } from "./models_0"; import { RDSServiceException as __BaseException } from "./RDSServiceException"; +/** + * @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; + + /** + * @public + *

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

+ *
    + *
  • + *

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

    + *
  • + *
  • + *

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

    + *
  • + *
  • + *

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

    + *
  • + *
  • + *

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

    + *
  • + *
+ *

If you don't specify a SnapshotType value, then both automated and manual DB cluster snapshots are + * returned. You can include shared DB cluster snapshots with these results by enabling the IncludeShared + * parameter. You can include public DB cluster 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 cluster snapshots to describe.

+ *

Supported filters:

+ *
    + *
  • + *

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

    + *
  • + *
  • + *

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

    + *
  • + *
  • + *

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

    + *
  • + *
  • + *

    + * engine - Accepts names of database 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 + * 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 + *

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 cluster snapshot from + * another Amazon Web Services account by the ModifyDBClusterSnapshotAttribute API action.

+ */ + 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 cluster snapshot as public by using the ModifyDBClusterSnapshotAttribute API action.

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

A specific DB cluster resource ID to describe.

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

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

+ */ +export interface DBEngineVersionMessage { + /** + * @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 DBEngineVersion elements.

+ */ + DBEngineVersions?: DBEngineVersion[]; +} + /** * @public */ @@ -2423,6 +2859,59 @@ export interface GlobalClustersMessage { GlobalClusters?: GlobalCluster[]; } +/** + * @public + */ +export interface DescribeIntegrationsMessage { + /** + * @public + *

The unique identifier of the integration.

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

A filter that specifies one or more resources to return.

+ */ + 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 DescribeIntegrations + * 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 DescribeIntegrationsResponse { + /** + * @public + *

A pagination token that can be used in a later DescribeIntegrations + * request.

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

A list of integrations.

+ */ + Integrations?: Integration[]; +} + /** * @public *

diff --git a/clients/client-rds/src/pagination/DescribeIntegrationsPaginator.ts b/clients/client-rds/src/pagination/DescribeIntegrationsPaginator.ts new file mode 100644 index 000000000000..1e98af6e6531 --- /dev/null +++ b/clients/client-rds/src/pagination/DescribeIntegrationsPaginator.ts @@ -0,0 +1,50 @@ +// smithy-typescript generated code +import { Paginator } from "@smithy/types"; + +import { + DescribeIntegrationsCommand, + DescribeIntegrationsCommandInput, + DescribeIntegrationsCommandOutput, +} from "../commands/DescribeIntegrationsCommand"; +import { RDSClient } from "../RDSClient"; +import { RDSPaginationConfiguration } from "./Interfaces"; + +/** + * @internal + */ +const makePagedClientRequest = async ( + client: RDSClient, + input: DescribeIntegrationsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new DescribeIntegrationsCommand(input), ...args); +}; +/** + * @public + */ +export async function* paginateDescribeIntegrations( + config: RDSPaginationConfiguration, + input: DescribeIntegrationsCommandInput, + ...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: DescribeIntegrationsCommandOutput; + 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 226b0f371d26..4be853691d1f 100644 --- a/clients/client-rds/src/pagination/index.ts +++ b/clients/client-rds/src/pagination/index.ts @@ -36,6 +36,7 @@ export * from "./DescribeEventSubscriptionsPaginator"; export * from "./DescribeEventsPaginator"; export * from "./DescribeExportTasksPaginator"; export * from "./DescribeGlobalClustersPaginator"; +export * from "./DescribeIntegrationsPaginator"; export * from "./DescribeOptionGroupOptionsPaginator"; export * from "./DescribeOptionGroupsPaginator"; export * from "./DescribeOrderableDBInstanceOptionsPaginator"; diff --git a/clients/client-rds/src/protocols/Aws_query.ts b/clients/client-rds/src/protocols/Aws_query.ts index 9a171b8f09f4..992b0ec657f9 100644 --- a/clients/client-rds/src/protocols/Aws_query.ts +++ b/clients/client-rds/src/protocols/Aws_query.ts @@ -110,6 +110,7 @@ import { CreateGlobalClusterCommandInput, CreateGlobalClusterCommandOutput, } from "../commands/CreateGlobalClusterCommand"; +import { CreateIntegrationCommandInput, CreateIntegrationCommandOutput } from "../commands/CreateIntegrationCommand"; import { CreateOptionGroupCommandInput, CreateOptionGroupCommandOutput } from "../commands/CreateOptionGroupCommand"; import { DeleteBlueGreenDeploymentCommandInput, @@ -167,6 +168,7 @@ import { DeleteGlobalClusterCommandInput, DeleteGlobalClusterCommandOutput, } from "../commands/DeleteGlobalClusterCommand"; +import { DeleteIntegrationCommandInput, DeleteIntegrationCommandOutput } from "../commands/DeleteIntegrationCommand"; import { DeleteOptionGroupCommandInput, DeleteOptionGroupCommandOutput } from "../commands/DeleteOptionGroupCommand"; import { DeregisterDBProxyTargetsCommandInput, @@ -288,6 +290,10 @@ import { DescribeGlobalClustersCommandInput, DescribeGlobalClustersCommandOutput, } from "../commands/DescribeGlobalClustersCommand"; +import { + DescribeIntegrationsCommandInput, + DescribeIntegrationsCommandOutput, +} from "../commands/DescribeIntegrationsCommand"; import { DescribeOptionGroupOptionsCommandInput, DescribeOptionGroupOptionsCommandOutput, @@ -562,6 +568,7 @@ import { CreateEventSubscriptionResult, CreateGlobalClusterMessage, CreateGlobalClusterResult, + CreateIntegrationMessage, CreateOptionGroupMessage, CreateOptionGroupResult, CustomAvailabilityZoneNotFoundFault, @@ -584,7 +591,6 @@ import { DBClusterEndpointNotFoundFault, DBClusterEndpointQuotaExceededFault, DBClusterMember, - DBClusterMessage, DBClusterNotFoundFault, DBClusterOptionGroupStatus, DBClusterParameterGroup, @@ -597,12 +603,8 @@ import { DBClusterRoleQuotaExceededFault, DBClusterSnapshot, DBClusterSnapshotAlreadyExistsFault, - DBClusterSnapshotAttribute, - DBClusterSnapshotAttributesResult, - DBClusterSnapshotMessage, DBClusterSnapshotNotFoundFault, DBEngineVersion, - DBEngineVersionMessage, DBInstance, DBInstanceAlreadyExistsFault, DBInstanceAutomatedBackup, @@ -673,6 +675,7 @@ import { DeleteEventSubscriptionResult, DeleteGlobalClusterMessage, DeleteGlobalClusterResult, + DeleteIntegrationMessage, DeleteOptionGroupMessage, DeregisterDBProxyTargetsRequest, DeregisterDBProxyTargetsResponse, @@ -684,11 +687,6 @@ import { DescribeDBClusterBacktracksMessage, DescribeDBClusterEndpointsMessage, DescribeDBClusterParameterGroupsMessage, - DescribeDBClusterParametersMessage, - DescribeDBClustersMessage, - DescribeDBClusterSnapshotAttributesMessage, - DescribeDBClusterSnapshotAttributesResult, - DescribeDBClusterSnapshotsMessage, DomainMembership, DomainNotFoundFault, Ec2ImagePropertiesNotSupportedFault, @@ -708,6 +706,12 @@ import { InstanceQuotaExceededFault, InsufficientDBInstanceCapacityFault, InsufficientStorageClusterCapacityFault, + Integration, + IntegrationAlreadyExistsFault, + IntegrationConflictOperationFault, + IntegrationError, + IntegrationNotFoundFault, + IntegrationQuotaExceededFault, InvalidBlueGreenDeploymentStateFault, InvalidCustomDBEngineVersionStateFault, InvalidDBClusterAutomatedBackupStateFault, @@ -727,6 +731,7 @@ import { InvalidEventSubscriptionStateFault, InvalidExportTaskStateFault, InvalidGlobalClusterStateFault, + InvalidIntegrationStateFault, InvalidOptionGroupStateFault, InvalidSubnet, InvalidVPCNetworkStateFault, @@ -782,8 +787,13 @@ import { ConnectionPoolConfiguration, ConnectionPoolConfigurationInfo, DBClusterCapacityInfo, + DBClusterMessage, DBClusterParameterGroupNameMessage, DBClusterRoleNotFoundFault, + DBClusterSnapshotAttribute, + DBClusterSnapshotAttributesResult, + DBClusterSnapshotMessage, + DBEngineVersionMessage, DBInstanceAutomatedBackupMessage, DBInstanceMessage, DBInstanceRoleNotFoundFault, @@ -800,6 +810,11 @@ import { DBSnapshotMessage, DBSubnetGroupMessage, DBUpgradeDependencyFailureFault, + DescribeDBClusterParametersMessage, + DescribeDBClustersMessage, + DescribeDBClusterSnapshotAttributesMessage, + DescribeDBClusterSnapshotAttributesResult, + DescribeDBClusterSnapshotsMessage, DescribeDBEngineVersionsMessage, DescribeDBInstanceAutomatedBackupsMessage, DescribeDBInstancesMessage, @@ -830,6 +845,8 @@ import { DescribeEventSubscriptionsMessage, DescribeExportTasksMessage, DescribeGlobalClustersMessage, + DescribeIntegrationsMessage, + DescribeIntegrationsResponse, DescribeOptionGroupOptionsMessage, DescribeOptionGroupsMessage, DescribeOrderableDBInstanceOptionsMessage, @@ -1482,6 +1499,23 @@ export const se_CreateGlobalClusterCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +/** + * serializeAws_queryCreateIntegrationCommand + */ +export const se_CreateIntegrationCommand = async ( + input: CreateIntegrationCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = SHARED_HEADERS; + let body: any; + body = buildFormUrlencodedString({ + ...se_CreateIntegrationMessage(input, context), + Action: "CreateIntegration", + Version: "2014-10-31", + }); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + /** * serializeAws_queryCreateOptionGroupCommand */ @@ -1788,6 +1822,23 @@ export const se_DeleteGlobalClusterCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +/** + * serializeAws_queryDeleteIntegrationCommand + */ +export const se_DeleteIntegrationCommand = async ( + input: DeleteIntegrationCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = SHARED_HEADERS; + let body: any; + body = buildFormUrlencodedString({ + ...se_DeleteIntegrationMessage(input, context), + Action: "DeleteIntegration", + Version: "2014-10-31", + }); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + /** * serializeAws_queryDeleteOptionGroupCommand */ @@ -2366,6 +2417,23 @@ export const se_DescribeGlobalClustersCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +/** + * serializeAws_queryDescribeIntegrationsCommand + */ +export const se_DescribeIntegrationsCommand = async ( + input: DescribeIntegrationsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = SHARED_HEADERS; + let body: any; + body = buildFormUrlencodedString({ + ...se_DescribeIntegrationsMessage(input, context), + Action: "DescribeIntegrations", + Version: "2014-10-31", + }); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + /** * serializeAws_queryDescribeOptionGroupOptionsCommand */ @@ -3638,6 +3706,9 @@ const de_AddTagsToResourceCommandError = async ( case "DBSnapshotNotFound": case "com.amazonaws.rds#DBSnapshotNotFoundFault": throw await de_DBSnapshotNotFoundFaultRes(parsedOutput, context); + case "IntegrationNotFoundFault": + case "com.amazonaws.rds#IntegrationNotFoundFault": + throw await de_IntegrationNotFoundFaultRes(parsedOutput, context); default: const parsedBody = parsedOutput.body; return throwDefaultError({ @@ -5188,6 +5259,67 @@ const de_CreateGlobalClusterCommandError = async ( } }; +/** + * deserializeAws_queryCreateIntegrationCommand + */ +export const de_CreateIntegrationCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CreateIntegrationCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_Integration(data.CreateIntegrationResult, context); + const response: CreateIntegrationCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_queryCreateIntegrationCommandError + */ +const de_CreateIntegrationCommandError = 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 "DBClusterNotFoundFault": + case "com.amazonaws.rds#DBClusterNotFoundFault": + throw await de_DBClusterNotFoundFaultRes(parsedOutput, context); + case "DBInstanceNotFound": + case "com.amazonaws.rds#DBInstanceNotFoundFault": + throw await de_DBInstanceNotFoundFaultRes(parsedOutput, context); + case "IntegrationAlreadyExistsFault": + case "com.amazonaws.rds#IntegrationAlreadyExistsFault": + throw await de_IntegrationAlreadyExistsFaultRes(parsedOutput, context); + case "IntegrationConflictOperationFault": + case "com.amazonaws.rds#IntegrationConflictOperationFault": + throw await de_IntegrationConflictOperationFaultRes(parsedOutput, context); + case "IntegrationQuotaExceededFault": + case "com.amazonaws.rds#IntegrationQuotaExceededFault": + throw await de_IntegrationQuotaExceededFaultRes(parsedOutput, context); + case "KMSKeyNotAccessibleFault": + case "com.amazonaws.rds#KMSKeyNotAccessibleFault": + throw await de_KMSKeyNotAccessibleFaultRes(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + return throwDefaultError({ + output, + parsedBody: parsedBody.Error, + errorCode, + }); + } +}; + /** * deserializeAws_queryCreateOptionGroupCommand */ @@ -6088,6 +6220,58 @@ const de_DeleteGlobalClusterCommandError = async ( } }; +/** + * deserializeAws_queryDeleteIntegrationCommand + */ +export const de_DeleteIntegrationCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_DeleteIntegrationCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_Integration(data.DeleteIntegrationResult, context); + const response: DeleteIntegrationCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_queryDeleteIntegrationCommandError + */ +const de_DeleteIntegrationCommandError = 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 "IntegrationConflictOperationFault": + case "com.amazonaws.rds#IntegrationConflictOperationFault": + throw await de_IntegrationConflictOperationFaultRes(parsedOutput, context); + case "IntegrationNotFoundFault": + case "com.amazonaws.rds#IntegrationNotFoundFault": + throw await de_IntegrationNotFoundFaultRes(parsedOutput, context); + case "InvalidIntegrationStateFault": + case "com.amazonaws.rds#InvalidIntegrationStateFault": + throw await de_InvalidIntegrationStateFaultRes(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + return throwDefaultError({ + output, + parsedBody: parsedBody.Error, + errorCode, + }); + } +}; + /** * deserializeAws_queryDeleteOptionGroupCommand */ @@ -7649,6 +7833,52 @@ const de_DescribeGlobalClustersCommandError = async ( } }; +/** + * deserializeAws_queryDescribeIntegrationsCommand + */ +export const de_DescribeIntegrationsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_DescribeIntegrationsCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_DescribeIntegrationsResponse(data.DescribeIntegrationsResult, context); + const response: DescribeIntegrationsCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_queryDescribeIntegrationsCommandError + */ +const de_DescribeIntegrationsCommandError = 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 "IntegrationNotFoundFault": + case "com.amazonaws.rds#IntegrationNotFoundFault": + throw await de_IntegrationNotFoundFaultRes(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + return throwDefaultError({ + output, + parsedBody: parsedBody.Error, + errorCode, + }); + } +}; + /** * deserializeAws_queryDescribeOptionGroupOptionsCommand */ @@ -8209,6 +8439,9 @@ const de_ListTagsForResourceCommandError = async ( case "DBSnapshotNotFound": case "com.amazonaws.rds#DBSnapshotNotFoundFault": throw await de_DBSnapshotNotFoundFaultRes(parsedOutput, context); + case "IntegrationNotFoundFault": + case "com.amazonaws.rds#IntegrationNotFoundFault": + throw await de_IntegrationNotFoundFaultRes(parsedOutput, context); default: const parsedBody = parsedOutput.body; return throwDefaultError({ @@ -9865,6 +10098,9 @@ const de_RemoveTagsFromResourceCommandError = async ( case "DBSnapshotNotFound": case "com.amazonaws.rds#DBSnapshotNotFoundFault": throw await de_DBSnapshotNotFoundFaultRes(parsedOutput, context); + case "IntegrationNotFoundFault": + case "com.amazonaws.rds#IntegrationNotFoundFault": + throw await de_IntegrationNotFoundFaultRes(parsedOutput, context); default: const parsedBody = parsedOutput.body; return throwDefaultError({ @@ -12524,6 +12760,70 @@ const de_InsufficientStorageClusterCapacityFaultRes = async ( return __decorateServiceException(exception, body); }; +/** + * deserializeAws_queryIntegrationAlreadyExistsFaultRes + */ +const de_IntegrationAlreadyExistsFaultRes = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = de_IntegrationAlreadyExistsFault(body.Error, context); + const exception = new IntegrationAlreadyExistsFault({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }); + return __decorateServiceException(exception, body); +}; + +/** + * deserializeAws_queryIntegrationConflictOperationFaultRes + */ +const de_IntegrationConflictOperationFaultRes = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = de_IntegrationConflictOperationFault(body.Error, context); + const exception = new IntegrationConflictOperationFault({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }); + return __decorateServiceException(exception, body); +}; + +/** + * deserializeAws_queryIntegrationNotFoundFaultRes + */ +const de_IntegrationNotFoundFaultRes = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = de_IntegrationNotFoundFault(body.Error, context); + const exception = new IntegrationNotFoundFault({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }); + return __decorateServiceException(exception, body); +}; + +/** + * deserializeAws_queryIntegrationQuotaExceededFaultRes + */ +const de_IntegrationQuotaExceededFaultRes = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = de_IntegrationQuotaExceededFault(body.Error, context); + const exception = new IntegrationQuotaExceededFault({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }); + return __decorateServiceException(exception, body); +}; + /** * deserializeAws_queryInvalidBlueGreenDeploymentStateFaultRes */ @@ -12876,6 +13176,22 @@ const de_InvalidGlobalClusterStateFaultRes = async ( return __decorateServiceException(exception, body); }; +/** + * deserializeAws_queryInvalidIntegrationStateFaultRes + */ +const de_InvalidIntegrationStateFaultRes = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = de_InvalidIntegrationStateFault(body.Error, context); + const exception = new InvalidIntegrationStateFault({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }); + return __decorateServiceException(exception, body); +}; + /** * deserializeAws_queryInvalidOptionGroupStateFaultRes */ @@ -14874,6 +15190,43 @@ const se_CreateGlobalClusterMessage = (input: CreateGlobalClusterMessage, contex return entries; }; +/** + * serializeAws_queryCreateIntegrationMessage + */ +const se_CreateIntegrationMessage = (input: CreateIntegrationMessage, context: __SerdeContext): any => { + const entries: any = {}; + if (input.SourceArn != null) { + entries["SourceArn"] = input.SourceArn; + } + if (input.TargetArn != null) { + entries["TargetArn"] = input.TargetArn; + } + if (input.IntegrationName != null) { + entries["IntegrationName"] = input.IntegrationName; + } + if (input.KMSKeyId != null) { + entries["KMSKeyId"] = input.KMSKeyId; + } + if (input.AdditionalEncryptionContext != null) { + const memberEntries = se_EncryptionContextMap(input.AdditionalEncryptionContext, context); + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `AdditionalEncryptionContext.${key}`; + entries[loc] = value; + }); + } + 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_queryCreateOptionGroupMessage */ @@ -15146,6 +15499,17 @@ const se_DeleteGlobalClusterMessage = (input: DeleteGlobalClusterMessage, contex return entries; }; +/** + * serializeAws_queryDeleteIntegrationMessage + */ +const se_DeleteIntegrationMessage = (input: DeleteIntegrationMessage, context: __SerdeContext): any => { + const entries: any = {}; + if (input.IntegrationIdentifier != null) { + entries["IntegrationIdentifier"] = input.IntegrationIdentifier; + } + return entries; +}; + /** * serializeAws_queryDeleteOptionGroupMessage */ @@ -16158,6 +16522,33 @@ const se_DescribeGlobalClustersMessage = (input: DescribeGlobalClustersMessage, return entries; }; +/** + * serializeAws_queryDescribeIntegrationsMessage + */ +const se_DescribeIntegrationsMessage = (input: DescribeIntegrationsMessage, context: __SerdeContext): any => { + const entries: any = {}; + if (input.IntegrationIdentifier != null) { + entries["IntegrationIdentifier"] = input.IntegrationIdentifier; + } + 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; + } + return entries; +}; + /** * serializeAws_queryDescribeOptionGroupOptionsMessage */ @@ -16456,6 +16847,22 @@ const se_DownloadDBLogFilePortionMessage = (input: DownloadDBLogFilePortionMessa return entries; }; +/** + * serializeAws_queryEncryptionContextMap + */ +const se_EncryptionContextMap = (input: Record, context: __SerdeContext): any => { + const entries: any = {}; + let counter = 1; + Object.keys(input) + .filter((key) => input[key as keyof typeof input] != null) + .forEach((key) => { + entries[`entry.${counter}.key`] = key; + entries[`entry.${counter}.value`] = input[key as keyof typeof input]!; + counter++; + }); + return entries; +}; + /** * serializeAws_queryEngineModeList */ @@ -21409,6 +21816,9 @@ const de_DBEngineVersion = (output: any, context: __SerdeContext): DBEngineVersi if (output["SupportsLocalWriteForwarding"] !== undefined) { contents.SupportsLocalWriteForwarding = __parseBoolean(output["SupportsLocalWriteForwarding"]); } + if (output["SupportsIntegrations"] !== undefined) { + contents.SupportsIntegrations = __parseBoolean(output["SupportsIntegrations"]); + } return contents; }; @@ -23465,6 +23875,22 @@ const de_DescribeEngineDefaultParametersResult = ( return contents; }; +/** + * deserializeAws_queryDescribeIntegrationsResponse + */ +const de_DescribeIntegrationsResponse = (output: any, context: __SerdeContext): DescribeIntegrationsResponse => { + const contents: any = {}; + if (output["Marker"] !== undefined) { + contents.Marker = __expectString(output["Marker"]); + } + if (output.Integrations === "") { + contents.Integrations = []; + } else if (output["Integrations"] !== undefined && output["Integrations"]["Integration"] !== undefined) { + contents.Integrations = de_IntegrationList(__getArrayIfSingleItem(output["Integrations"]["Integration"]), context); + } + return contents; +}; + /** * deserializeAws_queryDescribeValidDBInstanceModificationsResult */ @@ -23622,6 +24048,19 @@ const de_EC2SecurityGroupList = (output: any, context: __SerdeContext): EC2Secur }); }; +/** + * deserializeAws_queryEncryptionContextMap + */ +const de_EncryptionContextMap = (output: any, context: __SerdeContext): Record => { + return output.reduce((acc: any, pair: any) => { + if (pair["value"] === null) { + return acc; + } + acc[pair["key"]] = __expectString(pair["value"]) as any; + return acc; + }, {}); +}; + /** * deserializeAws_queryEndpoint */ @@ -24279,6 +24718,139 @@ const de_InsufficientStorageClusterCapacityFault = ( return contents; }; +/** + * deserializeAws_queryIntegration + */ +const de_Integration = (output: any, context: __SerdeContext): Integration => { + const contents: any = {}; + if (output["SourceArn"] !== undefined) { + contents.SourceArn = __expectString(output["SourceArn"]); + } + if (output["TargetArn"] !== undefined) { + contents.TargetArn = __expectString(output["TargetArn"]); + } + if (output["IntegrationName"] !== undefined) { + contents.IntegrationName = __expectString(output["IntegrationName"]); + } + if (output["IntegrationArn"] !== undefined) { + contents.IntegrationArn = __expectString(output["IntegrationArn"]); + } + if (output["KMSKeyId"] !== undefined) { + contents.KMSKeyId = __expectString(output["KMSKeyId"]); + } + if (output.AdditionalEncryptionContext === "") { + contents.AdditionalEncryptionContext = {}; + } else if ( + output["AdditionalEncryptionContext"] !== undefined && + output["AdditionalEncryptionContext"]["entry"] !== undefined + ) { + contents.AdditionalEncryptionContext = de_EncryptionContextMap( + __getArrayIfSingleItem(output["AdditionalEncryptionContext"]["entry"]), + context + ); + } + if (output["Status"] !== undefined) { + contents.Status = __expectString(output["Status"]); + } + if (output.Tags === "") { + contents.Tags = []; + } else if (output["Tags"] !== undefined && output["Tags"]["Tag"] !== undefined) { + contents.Tags = de_TagList(__getArrayIfSingleItem(output["Tags"]["Tag"]), context); + } + if (output["CreateTime"] !== undefined) { + contents.CreateTime = __expectNonNull(__parseRfc3339DateTimeWithOffset(output["CreateTime"])); + } + if (output.Errors === "") { + contents.Errors = []; + } else if (output["Errors"] !== undefined && output["Errors"]["IntegrationError"] !== undefined) { + contents.Errors = de_IntegrationErrorList(__getArrayIfSingleItem(output["Errors"]["IntegrationError"]), context); + } + return contents; +}; + +/** + * deserializeAws_queryIntegrationAlreadyExistsFault + */ +const de_IntegrationAlreadyExistsFault = (output: any, context: __SerdeContext): IntegrationAlreadyExistsFault => { + const contents: any = {}; + if (output["message"] !== undefined) { + contents.message = __expectString(output["message"]); + } + return contents; +}; + +/** + * deserializeAws_queryIntegrationConflictOperationFault + */ +const de_IntegrationConflictOperationFault = ( + output: any, + context: __SerdeContext +): IntegrationConflictOperationFault => { + const contents: any = {}; + if (output["message"] !== undefined) { + contents.message = __expectString(output["message"]); + } + return contents; +}; + +/** + * deserializeAws_queryIntegrationError + */ +const de_IntegrationError = (output: any, context: __SerdeContext): IntegrationError => { + const contents: any = {}; + if (output["ErrorCode"] !== undefined) { + contents.ErrorCode = __expectString(output["ErrorCode"]); + } + if (output["ErrorMessage"] !== undefined) { + contents.ErrorMessage = __expectString(output["ErrorMessage"]); + } + return contents; +}; + +/** + * deserializeAws_queryIntegrationErrorList + */ +const de_IntegrationErrorList = (output: any, context: __SerdeContext): IntegrationError[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_IntegrationError(entry, context); + }); +}; + +/** + * deserializeAws_queryIntegrationList + */ +const de_IntegrationList = (output: any, context: __SerdeContext): Integration[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_Integration(entry, context); + }); +}; + +/** + * deserializeAws_queryIntegrationNotFoundFault + */ +const de_IntegrationNotFoundFault = (output: any, context: __SerdeContext): IntegrationNotFoundFault => { + const contents: any = {}; + if (output["message"] !== undefined) { + contents.message = __expectString(output["message"]); + } + return contents; +}; + +/** + * deserializeAws_queryIntegrationQuotaExceededFault + */ +const de_IntegrationQuotaExceededFault = (output: any, context: __SerdeContext): IntegrationQuotaExceededFault => { + const contents: any = {}; + if (output["message"] !== undefined) { + contents.message = __expectString(output["message"]); + } + return contents; +}; + /** * deserializeAws_queryInvalidBlueGreenDeploymentStateFault */ @@ -24551,6 +25123,17 @@ const de_InvalidGlobalClusterStateFault = (output: any, context: __SerdeContext) return contents; }; +/** + * deserializeAws_queryInvalidIntegrationStateFault + */ +const de_InvalidIntegrationStateFault = (output: any, context: __SerdeContext): InvalidIntegrationStateFault => { + const contents: any = {}; + if (output["message"] !== undefined) { + contents.message = __expectString(output["message"]); + } + return contents; +}; + /** * deserializeAws_queryInvalidOptionGroupStateFault */ @@ -27051,6 +27634,9 @@ const de_UpgradeTarget = (output: any, context: __SerdeContext): UpgradeTarget = if (output["SupportsLocalWriteForwarding"] !== undefined) { contents.SupportsLocalWriteForwarding = __parseBoolean(output["SupportsLocalWriteForwarding"]); } + if (output["SupportsIntegrations"] !== undefined) { + contents.SupportsIntegrations = __parseBoolean(output["SupportsIntegrations"]); + } return contents; }; diff --git a/codegen/sdk-codegen/aws-models/rds.json b/codegen/sdk-codegen/aws-models/rds.json index c3afab349dfc..74f1e4344d0b 100644 --- a/codegen/sdk-codegen/aws-models/rds.json +++ b/codegen/sdk-codegen/aws-models/rds.json @@ -401,6 +401,9 @@ }, { "target": "com.amazonaws.rds#DBSnapshotNotFoundFault" + }, + { + "target": "com.amazonaws.rds#IntegrationNotFoundFault" } ], "traits": { @@ -538,6 +541,9 @@ { "target": "com.amazonaws.rds#CreateGlobalCluster" }, + { + "target": "com.amazonaws.rds#CreateIntegration" + }, { "target": "com.amazonaws.rds#CreateOptionGroup" }, @@ -592,6 +598,9 @@ { "target": "com.amazonaws.rds#DeleteGlobalCluster" }, + { + "target": "com.amazonaws.rds#DeleteIntegration" + }, { "target": "com.amazonaws.rds#DeleteOptionGroup" }, @@ -694,6 +703,9 @@ { "target": "com.amazonaws.rds#DescribeGlobalClusters" }, + { + "target": "com.amazonaws.rds#DescribeIntegrations" + }, { "target": "com.amazonaws.rds#DescribeOptionGroupOptions" }, @@ -2041,6 +2053,15 @@ "smithy.api#output": {} } }, + "com.amazonaws.rds#Arn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 20, + "max": 2048 + } + } + }, "com.amazonaws.rds#AttributeValueList": { "type": "list", "member": { @@ -6273,6 +6294,85 @@ "smithy.api#output": {} } }, + "com.amazonaws.rds#CreateIntegration": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#CreateIntegrationMessage" + }, + "output": { + "target": "com.amazonaws.rds#Integration" + }, + "errors": [ + { + "target": "com.amazonaws.rds#DBClusterNotFoundFault" + }, + { + "target": "com.amazonaws.rds#DBInstanceNotFoundFault" + }, + { + "target": "com.amazonaws.rds#IntegrationAlreadyExistsFault" + }, + { + "target": "com.amazonaws.rds#IntegrationConflictOperationFault" + }, + { + "target": "com.amazonaws.rds#IntegrationQuotaExceededFault" + }, + { + "target": "com.amazonaws.rds#KMSKeyNotAccessibleFault" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a zero-ETL integration with Amazon Redshift. For more information, see Working\n with Amazon Aurora zero-ETL integrations with Amazon Redshift in the\n Amazon Aurora User Guide.

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

The Amazon Resource Name (ARN) of the Aurora DB cluster to use as the source for\n replication.

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

The ARN of the Redshift data warehouse to use as the target for replication.

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

The name of the integration.

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

The Amazon Web Services Key Management System (Amazon Web Services KMS) key identifier for the key to use to\n encrypt the integration. If you don't specify an encryption key, Aurora uses a default\n Amazon Web Services owned key.

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

An optional set of non-secret key–value pairs that contains additional contextual\n information about the data. For more information, see Encryption\n context in the Amazon Web Services Key Management Service Developer\n Guide.

\n

You can only include this parameter if you specify the KMSKeyId parameter.

" + } + }, + "Tags": { + "target": "com.amazonaws.rds#TagList" + } + }, + "traits": { + "smithy.api#input": {} + } + }, "com.amazonaws.rds#CreateOptionGroup": { "type": "operation", "input": { @@ -8263,6 +8363,12 @@ "traits": { "smithy.api#documentation": "

Indicates whether the DB engine version supports forwarding write operations from reader DB instances \n to the writer DB instance in the DB cluster. By default, write operations aren't allowed on reader DB instances.

\n

Valid for: Aurora DB clusters only

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

Indicates whether the DB engine version supports Aurora zero-ETL integrations with\n Amazon Redshift.

" + } } }, "traits": { @@ -11853,6 +11959,45 @@ "smithy.api#output": {} } }, + "com.amazonaws.rds#DeleteIntegration": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DeleteIntegrationMessage" + }, + "output": { + "target": "com.amazonaws.rds#Integration" + }, + "errors": [ + { + "target": "com.amazonaws.rds#IntegrationConflictOperationFault" + }, + { + "target": "com.amazonaws.rds#IntegrationNotFoundFault" + }, + { + "target": "com.amazonaws.rds#InvalidIntegrationStateFault" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a zero-ETL integration with Amazon Redshift. For more information, see Deleting Amazon Aurora zero-ETL integrations with Amazon Redshift in the\n Amazon Aurora User Guide\n

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

The unique identifier of the integration.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, "com.amazonaws.rds#DeleteOptionGroup": { "type": "operation", "input": { @@ -15511,6 +15656,81 @@ "smithy.api#input": {} } }, + "com.amazonaws.rds#DescribeIntegrations": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#DescribeIntegrationsMessage" + }, + "output": { + "target": "com.amazonaws.rds#DescribeIntegrationsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.rds#IntegrationNotFoundFault" + } + ], + "traits": { + "smithy.api#documentation": "

Describe one or more zero-ETL integration with Amazon Redshift. For more information,\n see Viewing and monitoring Amazon Aurora zero-ETL integrations with Amazon Redshift in\n the Amazon Aurora User Guide\n

", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "Marker", + "items": "Integrations", + "pageSize": "MaxRecords" + } + } + }, + "com.amazonaws.rds#DescribeIntegrationsMessage": { + "type": "structure", + "members": { + "IntegrationIdentifier": { + "target": "com.amazonaws.rds#IntegrationIdentifier", + "traits": { + "smithy.api#documentation": "

The unique identifier of the integration.

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

A filter that specifies one or more resources to return.

" + } + }, + "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.

\n

Default: 100

\n

Constraints: Minimum 20, maximum 100.

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

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

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.rds#DescribeIntegrationsResponse": { + "type": "structure", + "members": { + "Marker": { + "target": "com.amazonaws.rds#Marker", + "traits": { + "smithy.api#documentation": "

A pagination token that can be used in a later DescribeIntegrations\n request.

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

A list of integrations.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.rds#DescribeOptionGroupOptions": { "type": "operation", "input": { @@ -16702,6 +16922,15 @@ "smithy.api#httpError": 400 } }, + "com.amazonaws.rds#EncryptionContextMap": { + "type": "map", + "key": { + "target": "com.amazonaws.rds#String" + }, + "value": { + "target": "com.amazonaws.rds#String" + } + }, "com.amazonaws.rds#Endpoint": { "type": "structure", "members": { @@ -17863,6 +18092,256 @@ "com.amazonaws.rds#IntegerOptional": { "type": "integer" }, + "com.amazonaws.rds#Integration": { + "type": "structure", + "members": { + "SourceArn": { + "target": "com.amazonaws.rds#SourceArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Aurora DB cluster used as the source for\n replication.

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

The ARN of the Redshift data warehouse used as the target for replication.

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

The name of the integration.

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

The ARN of the integration.

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

The Amazon Web Services Key Management System (Amazon Web Services KMS) key identifier for the key used to to\n encrypt the integration.

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

The encryption context for the integration. For more information, see Encryption context in the Amazon Web Services Key Management Service Developer\n Guide.

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

The current status of the integration.

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

The time when the integration was created, in Universal Coordinated Time\n (UTC).

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

Any errors associated with the integration.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An Aurora zero-ETL integration with Amazon Redshift. For more information, see Working\n with Amazon Aurora zero-ETL integrations with Amazon Redshift in the\n Amazon Aurora User Guide.

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

The integration you are trying to create already exists.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#IntegrationArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + }, + "smithy.api#pattern": "^arn:aws[a-z\\-]*:rds(-[a-z]*)?:[a-z0-9\\-]*:[0-9]*:integration:[a-z][a-z0-9]*(-[a-zA-Z0-9]+)*\\/[a-zA-Z0-9_:\\-\\/]+$" + } + }, + "com.amazonaws.rds#IntegrationConflictOperationFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "IntegrationConflictOperationFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

A conflicting conditional operation is currently in progress against this resource.\n Typically occurs when there are multiple requests being made to the same resource at the same time,\n and these requests conflict with each other.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#IntegrationError": { + "type": "structure", + "members": { + "ErrorCode": { + "target": "com.amazonaws.rds#String", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "

The error code associated with the integration.

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

A message explaining the error.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An error associated with a zero-ETL integration with Amazon Redshift.

" + } + }, + "com.amazonaws.rds#IntegrationErrorList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#IntegrationError", + "traits": { + "smithy.api#xmlName": "IntegrationError" + } + } + }, + "com.amazonaws.rds#IntegrationIdentifier": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + }, + "smithy.api#pattern": "^[a-zA-Z0-9_:\\-\\/]+$" + } + }, + "com.amazonaws.rds#IntegrationList": { + "type": "list", + "member": { + "target": "com.amazonaws.rds#Integration", + "traits": { + "smithy.api#xmlName": "Integration" + } + } + }, + "com.amazonaws.rds#IntegrationName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 63 + }, + "smithy.api#pattern": "^[a-zA-Z][a-zA-Z0-9]*(-[a-zA-Z0-9]+)*$" + } + }, + "com.amazonaws.rds#IntegrationNotFoundFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "IntegrationNotFoundFault", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

The specified integration could not be found.

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

You can't crate any more zero-ETL integrations because the quota has been reached.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.rds#IntegrationStatus": { + "type": "enum", + "members": { + "CREATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "creating" + } + }, + "ACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "active" + } + }, + "MODIFYING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "modifying" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + }, + "DELETING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deleting" + } + }, + "SYNCING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "syncing" + } + }, + "NEEDS_ATTENTION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "needs_attention" + } + } + } + }, "com.amazonaws.rds#InvalidBlueGreenDeploymentStateFault": { "type": "structure", "members": { @@ -18237,6 +18716,23 @@ "smithy.api#httpError": 400 } }, + "com.amazonaws.rds#InvalidIntegrationStateFault": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.rds#ExceptionMessage" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidIntegrationStateFault", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The integration is in an invalid state and can't perform the requested operation.

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, "com.amazonaws.rds#InvalidOptionGroupStateFault": { "type": "structure", "members": { @@ -18381,6 +18877,9 @@ }, { "target": "com.amazonaws.rds#DBSnapshotNotFoundFault" + }, + { + "target": "com.amazonaws.rds#IntegrationNotFoundFault" } ], "traits": { @@ -18478,6 +18977,15 @@ "com.amazonaws.rds#LongOptional": { "type": "long" }, + "com.amazonaws.rds#Marker": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 340 + } + } + }, "com.amazonaws.rds#MasterUserSecret": { "type": "structure", "members": { @@ -23031,6 +23539,9 @@ }, { "target": "com.amazonaws.rds#DBSnapshotNotFoundFault" + }, + { + "target": "com.amazonaws.rds#IntegrationNotFoundFault" } ], "traits": { @@ -26079,6 +26590,16 @@ "smithy.api#httpError": 400 } }, + "com.amazonaws.rds#SourceArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + }, + "smithy.api#pattern": "^arn:aws[a-z\\-]*:rds(-[a-z]*)?:[a-z0-9\\-]*:[0-9]*:(cluster|db):[a-z][a-z0-9]*(-[a-z0-9]+)*$" + } + }, "com.amazonaws.rds#SourceClusterNotSupportedFault": { "type": "structure", "members": { @@ -27823,6 +28344,12 @@ "traits": { "smithy.api#documentation": "

Indicates whether the target engine version supports forwarding write operations from reader DB instances \n to the writer DB instance in the DB cluster. By default, write operations aren't allowed on reader DB instances.

\n

Valid for: Aurora DB clusters only

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

Indicates whether the DB engine version supports Aurora zero-ETL integrations with\n Amazon Redshift.

" + } } }, "traits": {