Modifies a zero-ETL integration with Amazon Redshift.
+ *Currently, you can only modify integrations that have Aurora MySQL source DB clusters. Integrations with Aurora PostgreSQL and RDS sources currently don't support modifying the integration.
+ *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.
+ * + * @public + */ +export class ModifyIntegrationCommand extends $Command + .classBuilder< + ModifyIntegrationCommandInput, + ModifyIntegrationCommandOutput, + RDSClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep({ + ...commonParams, + }) + .m(function (this: any, Command: any, cs: any, config: RDSClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AmazonRDSv19", "ModifyIntegration", {}) + .n("RDSClient", "ModifyIntegrationCommand") + .f(void 0, void 0) + .ser(se_ModifyIntegrationCommand) + .de(de_ModifyIntegrationCommand) + .build() {} diff --git a/clients/client-rds/src/commands/index.ts b/clients/client-rds/src/commands/index.ts index 17b454ad6eac..09983d0d594d 100644 --- a/clients/client-rds/src/commands/index.ts +++ b/clients/client-rds/src/commands/index.ts @@ -125,6 +125,7 @@ export * from "./ModifyDBSnapshotCommand"; export * from "./ModifyDBSubnetGroupCommand"; export * from "./ModifyEventSubscriptionCommand"; export * from "./ModifyGlobalClusterCommand"; +export * from "./ModifyIntegrationCommand"; export * from "./ModifyOptionGroupCommand"; export * from "./ModifyTenantDatabaseCommand"; export * from "./PromoteReadReplicaCommand"; diff --git a/clients/client-rds/src/models/models_0.ts b/clients/client-rds/src/models/models_0.ts index 595b3918f2e7..3619eb5ec059 100644 --- a/clients/client-rds/src/models/models_0.ts +++ b/clients/client-rds/src/models/models_0.ts @@ -12243,6 +12243,21 @@ export interface CreateIntegrationMessage { * @public */ Tags?: Tag[]; + + /** + *Data filtering options for the integration. For more information, see + * Data filtering for Aurora zero-ETL integrations with Amazon Redshift. + *
+ *Valid for: Integrations with Aurora MySQL source DB clusters only
+ * @public + */ + DataFilter?: string; + + /** + *A description of the integration.
+ * @public + */ + Description?: string; } /** @@ -12352,6 +12367,20 @@ export interface Integration { * @public */ Errors?: IntegrationError[]; + + /** + *Data filters for the integration. These filters determine which tables + * from the source database are sent to the target Amazon Redshift data warehouse. + *
+ * @public + */ + DataFilter?: string; + + /** + *A description of the integration.
+ * @public + */ + Description?: string; } /** diff --git a/clients/client-rds/src/models/models_1.ts b/clients/client-rds/src/models/models_1.ts index 6c7c18e257fb..f052d0cbf415 100644 --- a/clients/client-rds/src/models/models_1.ts +++ b/clients/client-rds/src/models/models_1.ts @@ -9981,6 +9981,36 @@ export interface ModifyGlobalClusterResult { GlobalCluster?: GlobalCluster; } +/** + * @public + */ +export interface ModifyIntegrationMessage { + /** + *The unique identifier of the integration to modify.
+ * @public + */ + IntegrationIdentifier: string | undefined; + + /** + *A new name for the integration.
+ * @public + */ + IntegrationName?: string; + + /** + *A new data filter for the integration. For more information, see + * Data filtering for Aurora zero-ETL integrations with Amazon Redshift.
+ * @public + */ + DataFilter?: string; + + /** + *A new description for the integration.
+ * @public + */ + Description?: string; +} + /** *A list of all available options
* @public diff --git a/clients/client-rds/src/protocols/Aws_query.ts b/clients/client-rds/src/protocols/Aws_query.ts index dfa95d2d2817..c721edf3b01b 100644 --- a/clients/client-rds/src/protocols/Aws_query.ts +++ b/clients/client-rds/src/protocols/Aws_query.ts @@ -431,6 +431,7 @@ import { ModifyGlobalClusterCommandInput, ModifyGlobalClusterCommandOutput, } from "../commands/ModifyGlobalClusterCommand"; +import { ModifyIntegrationCommandInput, ModifyIntegrationCommandOutput } from "../commands/ModifyIntegrationCommand"; import { ModifyOptionGroupCommandInput, ModifyOptionGroupCommandOutput } from "../commands/ModifyOptionGroupCommand"; import { ModifyTenantDatabaseCommandInput, @@ -998,6 +999,7 @@ import { ModifyEventSubscriptionResult, ModifyGlobalClusterMessage, ModifyGlobalClusterResult, + ModifyIntegrationMessage, ModifyOptionGroupMessage, ModifyOptionGroupResult, ModifyTenantDatabaseMessage, @@ -3245,6 +3247,23 @@ export const se_ModifyGlobalClusterCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +/** + * serializeAws_queryModifyIntegrationCommand + */ +export const se_ModifyIntegrationCommand = async ( + input: ModifyIntegrationCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = SHARED_HEADERS; + let body: any; + body = buildFormUrlencodedString({ + ...se_ModifyIntegrationMessage(input, context), + [_A]: _MI, + [_V]: _, + }); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + /** * serializeAws_queryModifyOptionGroupCommand */ @@ -6339,6 +6358,26 @@ export const de_ModifyGlobalClusterCommand = async ( return response; }; +/** + * deserializeAws_queryModifyIntegrationCommand + */ +export const de_ModifyIntegrationCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): PromiseData filtering options for the integration. For more information, see \n Data filtering for Aurora zero-ETL integrations with Amazon Redshift.\n
\nValid for: Integrations with Aurora MySQL source DB clusters only
" + } + }, + "Description": { + "target": "com.amazonaws.rds#IntegrationDescription", + "traits": { + "smithy.api#documentation": "A description of the integration.
" + } } }, "traits": { @@ -11734,6 +11750,16 @@ "smithy.api#httpError": 400 } }, + "com.amazonaws.rds#DataFilter": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 25600 + }, + "smithy.api#pattern": "^[a-zA-Z0-9_ \"\\\\\\-$,*.:?+\\/]*$" + } + }, "com.amazonaws.rds#DatabaseArn": { "type": "string", "traits": { @@ -12891,6 +12917,7 @@ "output": { "SourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:my-cluster", "IntegrationName": "my-integration", + "IntegrationArn": "arn:aws:rds:us-east-1:123456789012:integration:5b9f3d79-7392-4a3e-896c-58eaa1b53231", "TargetArn": "arn:aws:redshift-serverless:us-east-1:123456789012:namespace/62c70612-0302-4db7-8414-b5e3e049f0d8", "Tags": [], "CreateTime": "2023-12-28T17:20:20.629Z", @@ -16895,6 +16922,7 @@ "Integrations": [ { "IntegrationName": "my-integration", + "IntegrationArn": "arn:aws:rds:us-east-1:123456789012:integration:5b9f3d79-7392-4a3e-896c-58eaa1b53231", "SourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:my-cluster", "TargetArn": "arn:aws:redshift-serverless:us-east-1:123456789012:namespace/62c70612-0302-4db7-8414-b5e3e049f0d8", "Tags": [], @@ -19653,6 +19681,18 @@ "traits": { "smithy.api#documentation": "Any errors associated with the integration.
" } + }, + "DataFilter": { + "target": "com.amazonaws.rds#DataFilter", + "traits": { + "smithy.api#documentation": "Data filters for the integration. These filters determine which tables\n from the source database are sent to the target Amazon Redshift data warehouse. \n
" + } + }, + "Description": { + "target": "com.amazonaws.rds#IntegrationDescription", + "traits": { + "smithy.api#documentation": "A description of the integration.
" + } } }, "traits": { @@ -19683,7 +19723,7 @@ "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_:\\-\\/]+$" + "smithy.api#pattern": "^arn:aws[a-z\\-]*:rds(-[a-z]*)?:[a-z0-9\\-]*:[0-9]*:integration:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$" } }, "com.amazonaws.rds#IntegrationConflictOperationFault": { @@ -19703,6 +19743,16 @@ "smithy.api#httpError": 400 } }, + "com.amazonaws.rds#IntegrationDescription": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1000 + }, + "smithy.api#pattern": ".*" + } + }, "com.amazonaws.rds#IntegrationError": { "type": "structure", "members": { @@ -23170,6 +23220,84 @@ "smithy.api#output": {} } }, + "com.amazonaws.rds#ModifyIntegration": { + "type": "operation", + "input": { + "target": "com.amazonaws.rds#ModifyIntegrationMessage" + }, + "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": "Modifies a zero-ETL integration with Amazon Redshift.
\nCurrently, you can only modify integrations that have Aurora MySQL source DB clusters. Integrations with Aurora PostgreSQL and RDS sources currently don't support modifying the integration.
\nThe unique identifier of the integration to modify.
", + "smithy.api#required": {} + } + }, + "IntegrationName": { + "target": "com.amazonaws.rds#IntegrationName", + "traits": { + "smithy.api#documentation": "A new name for the integration.
" + } + }, + "DataFilter": { + "target": "com.amazonaws.rds#DataFilter", + "traits": { + "smithy.api#documentation": "A new data filter for the integration. For more information, see \n Data filtering for Aurora zero-ETL integrations with Amazon Redshift.
" + } + }, + "Description": { + "target": "com.amazonaws.rds#IntegrationDescription", + "traits": { + "smithy.api#documentation": "A new description for the integration.
" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, "com.amazonaws.rds#ModifyOptionGroup": { "type": "operation", "input": {