Skip to content

Commit

Permalink
feat(client-rds): This release launches the ModifyIntegration API and…
Browse files Browse the repository at this point in the history
… support for data filtering for zero-ETL Integrations.
  • Loading branch information
awstools committed Mar 18, 2024
1 parent 69aee05 commit 861baa7
Show file tree
Hide file tree
Showing 12 changed files with 444 additions and 19 deletions.
8 changes: 8 additions & 0 deletions clients/client-rds/README.md
Expand Up @@ -1263,6 +1263,14 @@ ModifyGlobalCluster

[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/rds/command/ModifyGlobalClusterCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-rds/Interface/ModifyGlobalClusterCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-rds/Interface/ModifyGlobalClusterCommandOutput/)

</details>
<details>
<summary>
ModifyIntegration
</summary>

[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/rds/command/ModifyIntegrationCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-rds/Interface/ModifyIntegrationCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-rds/Interface/ModifyIntegrationCommandOutput/)

</details>
<details>
<summary>
Expand Down
23 changes: 23 additions & 0 deletions clients/client-rds/src/RDS.ts
Expand Up @@ -632,6 +632,11 @@ import {
ModifyGlobalClusterCommandInput,
ModifyGlobalClusterCommandOutput,
} from "./commands/ModifyGlobalClusterCommand";
import {
ModifyIntegrationCommand,
ModifyIntegrationCommandInput,
ModifyIntegrationCommandOutput,
} from "./commands/ModifyIntegrationCommand";
import {
ModifyOptionGroupCommand,
ModifyOptionGroupCommandInput,
Expand Down Expand Up @@ -936,6 +941,7 @@ const commands = {
ModifyDBSubnetGroupCommand,
ModifyEventSubscriptionCommand,
ModifyGlobalClusterCommand,
ModifyIntegrationCommand,
ModifyOptionGroupCommand,
ModifyTenantDatabaseCommand,
PromoteReadReplicaCommand,
Expand Down Expand Up @@ -3117,6 +3123,23 @@ export interface RDS {
cb: (err: any, data?: ModifyGlobalClusterCommandOutput) => void
): void;

/**
* @see {@link ModifyIntegrationCommand}
*/
modifyIntegration(
args: ModifyIntegrationCommandInput,
options?: __HttpHandlerOptions
): Promise<ModifyIntegrationCommandOutput>;
modifyIntegration(
args: ModifyIntegrationCommandInput,
cb: (err: any, data?: ModifyIntegrationCommandOutput) => void
): void;
modifyIntegration(
args: ModifyIntegrationCommandInput,
options: __HttpHandlerOptions,
cb: (err: any, data?: ModifyIntegrationCommandOutput) => void
): void;

/**
* @see {@link ModifyOptionGroupCommand}
*/
Expand Down
3 changes: 3 additions & 0 deletions clients/client-rds/src/RDSClient.ts
Expand Up @@ -461,6 +461,7 @@ import {
ModifyGlobalClusterCommandInput,
ModifyGlobalClusterCommandOutput,
} from "./commands/ModifyGlobalClusterCommand";
import { ModifyIntegrationCommandInput, ModifyIntegrationCommandOutput } from "./commands/ModifyIntegrationCommand";
import { ModifyOptionGroupCommandInput, ModifyOptionGroupCommandOutput } from "./commands/ModifyOptionGroupCommand";
import {
ModifyTenantDatabaseCommandInput,
Expand Down Expand Up @@ -709,6 +710,7 @@ export type ServiceInputTypes =
| ModifyDBSubnetGroupCommandInput
| ModifyEventSubscriptionCommandInput
| ModifyGlobalClusterCommandInput
| ModifyIntegrationCommandInput
| ModifyOptionGroupCommandInput
| ModifyTenantDatabaseCommandInput
| PromoteReadReplicaCommandInput
Expand Down Expand Up @@ -875,6 +877,7 @@ export type ServiceOutputTypes =
| ModifyDBSubnetGroupCommandOutput
| ModifyEventSubscriptionCommandOutput
| ModifyGlobalClusterCommandOutput
| ModifyIntegrationCommandOutput
| ModifyOptionGroupCommandOutput
| ModifyTenantDatabaseCommandOutput
| PromoteReadReplicaCommandOutput
Expand Down
4 changes: 4 additions & 0 deletions clients/client-rds/src/commands/CreateIntegrationCommand.ts
Expand Up @@ -48,6 +48,8 @@ export interface CreateIntegrationCommandOutput extends Integration, __MetadataB
* Value: "STRING_VALUE",
* },
* ],
* DataFilter: "STRING_VALUE",
* Description: "STRING_VALUE",
* };
* const command = new CreateIntegrationCommand(input);
* const response = await client.send(command);
Expand All @@ -74,6 +76,8 @@ export interface CreateIntegrationCommandOutput extends Integration, __MetadataB
* // ErrorMessage: "STRING_VALUE",
* // },
* // ],
* // DataFilter: "STRING_VALUE",
* // Description: "STRING_VALUE",
* // };
*
* ```
Expand Down
2 changes: 2 additions & 0 deletions clients/client-rds/src/commands/DeleteIntegrationCommand.ts
Expand Up @@ -62,6 +62,8 @@ export interface DeleteIntegrationCommandOutput extends Integration, __MetadataB
* // ErrorMessage: "STRING_VALUE",
* // },
* // ],
* // DataFilter: "STRING_VALUE",
* // Description: "STRING_VALUE",
* // };
*
* ```
Expand Down
Expand Up @@ -75,6 +75,8 @@ export interface DescribeIntegrationsCommandOutput extends DescribeIntegrationsR
* // ErrorMessage: "STRING_VALUE",
* // },
* // ],
* // DataFilter: "STRING_VALUE",
* // Description: "STRING_VALUE",
* // },
* // ],
* // };
Expand Down
122 changes: 122 additions & 0 deletions clients/client-rds/src/commands/ModifyIntegrationCommand.ts
@@ -0,0 +1,122 @@
// smithy-typescript generated code
import { getEndpointPlugin } from "@smithy/middleware-endpoint";
import { getSerdePlugin } from "@smithy/middleware-serde";
import { Command as $Command } from "@smithy/smithy-client";
import { MetadataBearer as __MetadataBearer } from "@smithy/types";

import { commonParams } from "../endpoint/EndpointParameters";
import { Integration } from "../models/models_0";
import { ModifyIntegrationMessage } from "../models/models_1";
import { de_ModifyIntegrationCommand, se_ModifyIntegrationCommand } from "../protocols/Aws_query";
import { RDSClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../RDSClient";

/**
* @public
*/
export { __MetadataBearer, $Command };
/**
* @public
*
* The input for {@link ModifyIntegrationCommand}.
*/
export interface ModifyIntegrationCommandInput extends ModifyIntegrationMessage {}
/**
* @public
*
* The output of {@link ModifyIntegrationCommand}.
*/
export interface ModifyIntegrationCommandOutput extends Integration, __MetadataBearer {}

/**
* <p>Modifies a zero-ETL integration with Amazon Redshift.</p>
* <note>
* <p>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.</p>
* </note>
* @example
* Use a bare-bones client and the command you need to make an API call.
* ```javascript
* import { RDSClient, ModifyIntegrationCommand } from "@aws-sdk/client-rds"; // ES Modules import
* // const { RDSClient, ModifyIntegrationCommand } = require("@aws-sdk/client-rds"); // CommonJS import
* const client = new RDSClient(config);
* const input = { // ModifyIntegrationMessage
* IntegrationIdentifier: "STRING_VALUE", // required
* IntegrationName: "STRING_VALUE",
* DataFilter: "STRING_VALUE",
* Description: "STRING_VALUE",
* };
* const command = new ModifyIntegrationCommand(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
* // "<keys>": "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",
* // },
* // ],
* // DataFilter: "STRING_VALUE",
* // Description: "STRING_VALUE",
* // };
*
* ```
*
* @param ModifyIntegrationCommandInput - {@link ModifyIntegrationCommandInput}
* @returns {@link ModifyIntegrationCommandOutput}
* @see {@link ModifyIntegrationCommandInput} for command's `input` shape.
* @see {@link ModifyIntegrationCommandOutput} for command's `response` shape.
* @see {@link RDSClientResolvedConfig | config} for RDSClient's `config` shape.
*
* @throws {@link IntegrationConflictOperationFault} (client fault)
* <p>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.</p>
*
* @throws {@link IntegrationNotFoundFault} (client fault)
* <p>The specified integration could not be found.</p>
*
* @throws {@link InvalidIntegrationStateFault} (client fault)
* <p>The integration is in an invalid state and can't perform the requested operation.</p>
*
* @throws {@link RDSServiceException}
* <p>Base exception class for all service exceptions from RDS service.</p>
*
* @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() {}
1 change: 1 addition & 0 deletions clients/client-rds/src/commands/index.ts
Expand Up @@ -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";
Expand Down
29 changes: 29 additions & 0 deletions clients/client-rds/src/models/models_0.ts
Expand Up @@ -12243,6 +12243,21 @@ export interface CreateIntegrationMessage {
* @public
*/
Tags?: Tag[];

/**
* <p>Data filtering options for the integration. For more information, see
* <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/zero-etl.filtering.html">Data filtering for Aurora zero-ETL integrations with Amazon Redshift</a>.
* </p>
* <p>Valid for: Integrations with Aurora MySQL source DB clusters only</p>
* @public
*/
DataFilter?: string;

/**
* <p>A description of the integration.</p>
* @public
*/
Description?: string;
}

/**
Expand Down Expand Up @@ -12352,6 +12367,20 @@ export interface Integration {
* @public
*/
Errors?: IntegrationError[];

/**
* <p>Data filters for the integration. These filters determine which tables
* from the source database are sent to the target Amazon Redshift data warehouse.
* </p>
* @public
*/
DataFilter?: string;

/**
* <p>A description of the integration.</p>
* @public
*/
Description?: string;
}

/**
Expand Down
30 changes: 30 additions & 0 deletions clients/client-rds/src/models/models_1.ts
Expand Up @@ -9981,6 +9981,36 @@ export interface ModifyGlobalClusterResult {
GlobalCluster?: GlobalCluster;
}

/**
* @public
*/
export interface ModifyIntegrationMessage {
/**
* <p>The unique identifier of the integration to modify.</p>
* @public
*/
IntegrationIdentifier: string | undefined;

/**
* <p>A new name for the integration.</p>
* @public
*/
IntegrationName?: string;

/**
* <p>A new data filter for the integration. For more information, see
* <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Zero_ETL_Filtering.html">Data filtering for Aurora zero-ETL integrations with Amazon Redshift</a>.</p>
* @public
*/
DataFilter?: string;

/**
* <p>A new description for the integration.</p>
* @public
*/
Description?: string;
}

/**
* <p>A list of all available options</p>
* @public
Expand Down

0 comments on commit 861baa7

Please sign in to comment.