From 32d38b0a731a44295f08ac3937052ab5de840ea6 Mon Sep 17 00:00:00 2001 From: awstools Date: Wed, 30 Oct 2024 18:19:43 +0000 Subject: [PATCH] feat(client-redshift): This release launches S3 event integrations to create and manage integrations from an Amazon S3 source into an Amazon Redshift database. --- clients/client-redshift/README.md | 2 +- .../src/commands/CreateIntegrationCommand.ts | 4 +- .../src/commands/DeleteIntegrationCommand.ts | 2 +- .../commands/DescribeIntegrationsCommand.ts | 2 +- .../src/commands/ModifyIntegrationCommand.ts | 2 +- .../client-redshift/src/models/models_0.ts | 2 +- .../client-redshift/src/models/models_1.ts | 2 +- codegen/sdk-codegen/aws-models/redshift.json | 60 ++++++++++++++----- 8 files changed, 53 insertions(+), 23 deletions(-) diff --git a/clients/client-redshift/README.md b/clients/client-redshift/README.md index e160af5d992a7..66d04217a4296 100644 --- a/clients/client-redshift/README.md +++ b/clients/client-redshift/README.md @@ -31,7 +31,7 @@ build, query, and maintain the databases that make up your data warehouse.

## Installing -To install the this package, simply type add or install @aws-sdk/client-redshift +To install this package, simply type add or install @aws-sdk/client-redshift using your favorite package manager: - `npm install @aws-sdk/client-redshift` diff --git a/clients/client-redshift/src/commands/CreateIntegrationCommand.ts b/clients/client-redshift/src/commands/CreateIntegrationCommand.ts index 766e549906682..b71499b12d3b2 100644 --- a/clients/client-redshift/src/commands/CreateIntegrationCommand.ts +++ b/clients/client-redshift/src/commands/CreateIntegrationCommand.ts @@ -28,7 +28,7 @@ export interface CreateIntegrationCommandInput extends CreateIntegrationMessage export interface CreateIntegrationCommandOutput extends Integration, __MetadataBearer {} /** - *

Creates a zero-ETL integration with Amazon Redshift.

+ *

Creates a zero-ETL integration or S3 event integration with Amazon Redshift.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript @@ -96,7 +96,7 @@ export interface CreateIntegrationCommandOutput extends Integration, __MetadataB * and these requests conflict with each other.

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

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

+ *

You can't create any more zero-ETL or S3 event integrations because the quota has been reached.

* * @throws {@link IntegrationSourceNotFoundFault} (client fault) *

The specified integration source can't be found.

diff --git a/clients/client-redshift/src/commands/DeleteIntegrationCommand.ts b/clients/client-redshift/src/commands/DeleteIntegrationCommand.ts index 2c337ea6fe435..59cd473bda24b 100644 --- a/clients/client-redshift/src/commands/DeleteIntegrationCommand.ts +++ b/clients/client-redshift/src/commands/DeleteIntegrationCommand.ts @@ -28,7 +28,7 @@ export interface DeleteIntegrationCommandInput extends DeleteIntegrationMessage export interface DeleteIntegrationCommandOutput extends Integration, __MetadataBearer {} /** - *

Deletes a zero-ETL integration with Amazon Redshift.

+ *

Deletes a zero-ETL integration or S3 event integration with Amazon Redshift.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-redshift/src/commands/DescribeIntegrationsCommand.ts b/clients/client-redshift/src/commands/DescribeIntegrationsCommand.ts index 85d340a7f695c..1fd8890bbf205 100644 --- a/clients/client-redshift/src/commands/DescribeIntegrationsCommand.ts +++ b/clients/client-redshift/src/commands/DescribeIntegrationsCommand.ts @@ -28,7 +28,7 @@ export interface DescribeIntegrationsCommandInput extends DescribeIntegrationsMe export interface DescribeIntegrationsCommandOutput extends IntegrationsMessage, __MetadataBearer {} /** - *

Describes one or more zero-ETL integrations with Amazon Redshift.

+ *

Describes one or more zero-ETL or S3 event integrations with Amazon Redshift.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-redshift/src/commands/ModifyIntegrationCommand.ts b/clients/client-redshift/src/commands/ModifyIntegrationCommand.ts index 3fcaa29adf25b..e4b16e1e8f70a 100644 --- a/clients/client-redshift/src/commands/ModifyIntegrationCommand.ts +++ b/clients/client-redshift/src/commands/ModifyIntegrationCommand.ts @@ -29,7 +29,7 @@ export interface ModifyIntegrationCommandInput extends ModifyIntegrationMessage export interface ModifyIntegrationCommandOutput extends Integration, __MetadataBearer {} /** - *

Modifies a zero-ETL integration with Amazon Redshift.

+ *

Modifies a zero-ETL integration or S3 event integration with Amazon Redshift.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-redshift/src/models/models_0.ts b/clients/client-redshift/src/models/models_0.ts index 0c98b4e0b5245..9d356184c449a 100644 --- a/clients/client-redshift/src/models/models_0.ts +++ b/clients/client-redshift/src/models/models_0.ts @@ -6511,7 +6511,7 @@ export class IntegrationConflictOperationFault extends __BaseException { } /** - *

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

+ *

You can't create any more zero-ETL or S3 event integrations because the quota has been reached.

* @public */ export class IntegrationQuotaExceededFault extends __BaseException { diff --git a/clients/client-redshift/src/models/models_1.ts b/clients/client-redshift/src/models/models_1.ts index aa8de97624775..a49b08cceffc2 100644 --- a/clients/client-redshift/src/models/models_1.ts +++ b/clients/client-redshift/src/models/models_1.ts @@ -2961,7 +2961,7 @@ export interface DescribeTagsMessage { *

Snapshot copy grant

* *
  • - *

    Integration (zero-ETL integration)

    + *

    Integration (zero-ETL integration or S3 event integration)

    * *

    To describe the tags associated with an integration, don't specify ResourceType, * instead specify the ResourceName of the integration.

    diff --git a/codegen/sdk-codegen/aws-models/redshift.json b/codegen/sdk-codegen/aws-models/redshift.json index bb18da7a3a1cb..63c276a3e72ce 100644 --- a/codegen/sdk-codegen/aws-models/redshift.json +++ b/codegen/sdk-codegen/aws-models/redshift.json @@ -3852,14 +3852,14 @@ } ], "traits": { - "smithy.api#documentation": "

    Creates a zero-ETL integration with Amazon Redshift.

    " + "smithy.api#documentation": "

    Creates a zero-ETL integration or S3 event integration with Amazon Redshift.

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

    The Amazon Resource Name (ARN) of the database to use as the source for replication.

    ", @@ -3867,7 +3867,7 @@ } }, "TargetArn": { - "target": "com.amazonaws.redshift#String", + "target": "com.amazonaws.redshift#TargetArn", "traits": { "smithy.api#clientOptional": {}, "smithy.api#documentation": "

    The Amazon Resource Name (ARN) of the Amazon Redshift data warehouse to use as the target for replication.

    ", @@ -5372,7 +5372,7 @@ } ], "traits": { - "smithy.api#documentation": "

    Deletes a zero-ETL integration with Amazon Redshift.

    " + "smithy.api#documentation": "

    Deletes a zero-ETL integration or S3 event integration with Amazon Redshift.

    " } }, "com.amazonaws.redshift#DeleteIntegrationMessage": { @@ -7325,13 +7325,13 @@ "type": "structure", "members": { "IntegrationArn": { - "target": "com.amazonaws.redshift#String", + "target": "com.amazonaws.redshift#InboundIntegrationArn", "traits": { "smithy.api#documentation": "

    The Amazon Resource Name (ARN) of the inbound integration.

    " } }, "TargetArn": { - "target": "com.amazonaws.redshift#String", + "target": "com.amazonaws.redshift#TargetArn", "traits": { "smithy.api#documentation": "

    The Amazon Resource Name (ARN) of the target of an inbound integration.

    " } @@ -7370,7 +7370,7 @@ } ], "traits": { - "smithy.api#documentation": "

    Describes one or more zero-ETL integrations with Amazon Redshift.

    ", + "smithy.api#documentation": "

    Describes one or more zero-ETL or S3 event integrations with Amazon Redshift.

    ", "smithy.api#paginated": { "inputToken": "Marker", "outputToken": "Marker", @@ -8383,7 +8383,7 @@ "ResourceType": { "target": "com.amazonaws.redshift#String", "traits": { - "smithy.api#documentation": "

    The type of resource with which you want to view tags. Valid resource types are:

    \n
      \n
    • \n

      Cluster

      \n
    • \n
    • \n

      CIDR/IP

      \n
    • \n
    • \n

      EC2 security group

      \n
    • \n
    • \n

      Snapshot

      \n
    • \n
    • \n

      Cluster security group

      \n
    • \n
    • \n

      Subnet group

      \n
    • \n
    • \n

      HSM connection

      \n
    • \n
    • \n

      HSM certificate

      \n
    • \n
    • \n

      Parameter group

      \n
    • \n
    • \n

      Snapshot copy grant

      \n
    • \n
    • \n

      Integration (zero-ETL integration)

      \n \n

      To describe the tags associated with an integration, don't specify ResourceType, \n instead specify the ResourceName of the integration.

      \n
      \n
    • \n
    \n

    For more information about Amazon Redshift resource types and constructing ARNs, go to\n Specifying Policy Elements: Actions, Effects, Resources, and Principals in\n the Amazon Redshift Cluster Management Guide.

    " + "smithy.api#documentation": "

    The type of resource with which you want to view tags. Valid resource types are:

    \n
      \n
    • \n

      Cluster

      \n
    • \n
    • \n

      CIDR/IP

      \n
    • \n
    • \n

      EC2 security group

      \n
    • \n
    • \n

      Snapshot

      \n
    • \n
    • \n

      Cluster security group

      \n
    • \n
    • \n

      Subnet group

      \n
    • \n
    • \n

      HSM connection

      \n
    • \n
    • \n

      HSM certificate

      \n
    • \n
    • \n

      Parameter group

      \n
    • \n
    • \n

      Snapshot copy grant

      \n
    • \n
    • \n

      Integration (zero-ETL integration or S3 event integration)

      \n \n

      To describe the tags associated with an integration, don't specify ResourceType, \n instead specify the ResourceName of the integration.

      \n
      \n
    • \n
    \n

    For more information about Amazon Redshift resource types and constructing ARNs, go to\n Specifying Policy Elements: Actions, Effects, Resources, and Principals in\n the Amazon Redshift Cluster Management Guide.

    " } }, "MaxRecords": { @@ -10331,7 +10331,7 @@ "type": "structure", "members": { "IntegrationArn": { - "target": "com.amazonaws.redshift#String", + "target": "com.amazonaws.redshift#InboundIntegrationArn", "traits": { "smithy.api#documentation": "

    The Amazon Resource Name (ARN) of an inbound integration.

    " } @@ -10343,7 +10343,7 @@ } }, "TargetArn": { - "target": "com.amazonaws.redshift#String", + "target": "com.amazonaws.redshift#TargetArn", "traits": { "smithy.api#documentation": "

    The Amazon Resource Name (ARN) of the target of an inbound integration.

    " } @@ -10371,6 +10371,16 @@ "smithy.api#documentation": "

    The content of an inbound integration.

    " } }, + "com.amazonaws.redshift#InboundIntegrationArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + }, + "smithy.api#pattern": "^arn:aws[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.redshift#InboundIntegrationList": { "type": "list", "member": { @@ -10461,7 +10471,7 @@ "type": "structure", "members": { "IntegrationArn": { - "target": "com.amazonaws.redshift#String", + "target": "com.amazonaws.redshift#IntegrationArn", "traits": { "smithy.api#documentation": "

    The Amazon Resource Name (ARN) of the integration.

    " } @@ -10473,13 +10483,13 @@ } }, "SourceArn": { - "target": "com.amazonaws.redshift#String", + "target": "com.amazonaws.redshift#SourceArn", "traits": { "smithy.api#documentation": "

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

    " } }, "TargetArn": { - "target": "com.amazonaws.redshift#String", + "target": "com.amazonaws.redshift#TargetArn", "traits": { "smithy.api#documentation": "

    The Amazon Resource Name (ARN) of the Amazon Redshift data warehouse to use as the target for replication.

    " } @@ -10678,7 +10688,7 @@ "code": "IntegrationQuotaExceededFault", "httpResponseCode": 400 }, - "smithy.api#documentation": "

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

    ", + "smithy.api#documentation": "

    You can't create any more zero-ETL or S3 event integrations because the quota has been reached.

    ", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -12653,7 +12663,7 @@ } ], "traits": { - "smithy.api#documentation": "

    Modifies a zero-ETL integration with Amazon Redshift.

    " + "smithy.api#documentation": "

    Modifies a zero-ETL integration or S3 event integration with Amazon Redshift.

    " } }, "com.amazonaws.redshift#ModifyIntegrationMessage": { @@ -18621,6 +18631,16 @@ } } }, + "com.amazonaws.redshift#SourceArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + }, + "smithy.api#pattern": "^arn:aws[a-z\\-]*:(s3|dynamodb):.*:.*:[a-zA-Z0-9._\\-\\/]+$" + } + }, "com.amazonaws.redshift#SourceIdsList": { "type": "list", "member": { @@ -19197,6 +19217,16 @@ "smithy.api#output": {} } }, + "com.amazonaws.redshift#TargetArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 20, + "max": 2048 + }, + "smithy.api#pattern": "^arn:aws[a-z\\-]*:redshift(-serverless)?:[a-z0-9\\-]+:[0-9]{12}:(namespace\\/|namespace:)[a-z0-9\\-]+$" + } + }, "com.amazonaws.redshift#TrackList": { "type": "list", "member": {