From 45b42fc0040d3d01fd0f3514c4c5530138fb3214 Mon Sep 17 00:00:00 2001
From: awstools
Date: Fri, 27 Oct 2023 19:46:05 +0000
Subject: [PATCH] feat(client-redshift): added support to create a dual stack
cluster
---
.../src/commands/CreateClusterCommand.ts | 7 ++
.../CreateClusterSubnetGroupCommand.ts | 3 +
.../commands/CreateEndpointAccessCommand.ts | 1 +
.../src/commands/DeleteClusterCommand.ts | 2 +
.../commands/DeleteEndpointAccessCommand.ts | 1 +
.../DescribeClusterSubnetGroupsCommand.ts | 3 +
.../src/commands/DescribeClustersCommand.ts | 2 +
.../commands/DescribeEndpointAccessCommand.ts | 1 +
.../DescribeEventCategoriesCommand.ts | 3 +-
.../commands/DisableSnapshotCopyCommand.ts | 2 +
.../src/commands/EnableSnapshotCopyCommand.ts | 2 +
.../src/commands/ModifyClusterCommand.ts | 7 ++
.../ModifyClusterDbRevisionCommand.ts | 2 +
.../commands/ModifyClusterIamRolesCommand.ts | 2 +
.../ModifyClusterMaintenanceCommand.ts | 2 +
.../ModifyClusterSubnetGroupCommand.ts | 3 +
.../commands/ModifyEndpointAccessCommand.ts | 1 +
...odifySnapshotCopyRetentionPeriodCommand.ts | 2 +
.../src/commands/PauseClusterCommand.ts | 2 +
.../src/commands/RebootClusterCommand.ts | 2 +
.../src/commands/ResizeClusterCommand.ts | 2 +
.../RestoreFromClusterSnapshotCommand.ts | 7 ++
.../src/commands/ResumeClusterCommand.ts | 2 +
.../commands/RotateEncryptionKeyCommand.ts | 2 +
.../client-redshift/src/models/models_0.ts | 59 ++++++++++----
.../client-redshift/src/models/models_1.ts | 26 +++++++
.../src/protocols/Aws_query.ts | 76 ++++++++++++++++++-
codegen/sdk-codegen/aws-models/redshift.json | 62 +++++++++++++++
28 files changed, 269 insertions(+), 17 deletions(-)
diff --git a/clients/client-redshift/src/commands/CreateClusterCommand.ts b/clients/client-redshift/src/commands/CreateClusterCommand.ts
index e259f755e3758..f72f1d18153db 100644
--- a/clients/client-redshift/src/commands/CreateClusterCommand.ts
+++ b/clients/client-redshift/src/commands/CreateClusterCommand.ts
@@ -103,6 +103,7 @@ export interface CreateClusterCommandOutput extends CreateClusterResult, __Metad
* LoadSampleData: "STRING_VALUE",
* ManageMasterPassword: true || false,
* MasterPasswordSecretKmsKeyId: "STRING_VALUE",
+ * IpAddressType: "STRING_VALUE",
* };
* const command = new CreateClusterCommand(input);
* const response = await client.send(command);
@@ -128,6 +129,7 @@ export interface CreateClusterCommandOutput extends CreateClusterResult, __Metad
* // SubnetId: "STRING_VALUE",
* // PrivateIpAddress: "STRING_VALUE",
* // AvailabilityZone: "STRING_VALUE",
+ * // Ipv6Address: "STRING_VALUE",
* // },
* // ],
* // },
@@ -282,6 +284,7 @@ export interface CreateClusterCommandOutput extends CreateClusterResult, __Metad
* // CustomDomainCertificateExpiryDate: new Date("TIMESTAMP"),
* // MasterPasswordSecretArn: "STRING_VALUE",
* // MasterPasswordSecretKmsKeyId: "STRING_VALUE",
+ * // IpAddressType: "STRING_VALUE",
* // },
* // };
*
@@ -352,6 +355,10 @@ export interface CreateClusterCommandOutput extends CreateClusterResult, __Metad
* @throws {@link InvalidVPCNetworkStateFault} (client fault)
* The cluster subnet group does not cover all Availability Zones.
*
+ * @throws {@link Ipv6CidrBlockNotFoundFault} (client fault)
+ * There are no subnets in your VPC with associated IPv6 CIDR blocks. To use dual-stack mode,
+ * associate an IPv6 CIDR block with each subnet in your VPC.
+ *
* @throws {@link LimitExceededFault} (client fault)
* The encryption key has exceeded its grant limit in Amazon Web Services KMS.
*
diff --git a/clients/client-redshift/src/commands/CreateClusterSubnetGroupCommand.ts b/clients/client-redshift/src/commands/CreateClusterSubnetGroupCommand.ts
index 6ad52c3a2e414..0072237cb5f1c 100644
--- a/clients/client-redshift/src/commands/CreateClusterSubnetGroupCommand.ts
+++ b/clients/client-redshift/src/commands/CreateClusterSubnetGroupCommand.ts
@@ -91,6 +91,9 @@ export interface CreateClusterSubnetGroupCommandOutput extends CreateClusterSubn
* // Value: "STRING_VALUE",
* // },
* // ],
+ * // SupportedClusterIpAddressTypes: [ // ValueStringList
+ * // "STRING_VALUE",
+ * // ],
* // },
* // };
*
diff --git a/clients/client-redshift/src/commands/CreateEndpointAccessCommand.ts b/clients/client-redshift/src/commands/CreateEndpointAccessCommand.ts
index 67a2d5c04bf43..e5508c2f56938 100644
--- a/clients/client-redshift/src/commands/CreateEndpointAccessCommand.ts
+++ b/clients/client-redshift/src/commands/CreateEndpointAccessCommand.ts
@@ -79,6 +79,7 @@ export interface CreateEndpointAccessCommandOutput extends EndpointAccess, __Met
* // SubnetId: "STRING_VALUE",
* // PrivateIpAddress: "STRING_VALUE",
* // AvailabilityZone: "STRING_VALUE",
+ * // Ipv6Address: "STRING_VALUE",
* // },
* // ],
* // },
diff --git a/clients/client-redshift/src/commands/DeleteClusterCommand.ts b/clients/client-redshift/src/commands/DeleteClusterCommand.ts
index bcfa6c08ea048..db561573621bc 100644
--- a/clients/client-redshift/src/commands/DeleteClusterCommand.ts
+++ b/clients/client-redshift/src/commands/DeleteClusterCommand.ts
@@ -89,6 +89,7 @@ export interface DeleteClusterCommandOutput extends DeleteClusterResult, __Metad
* // SubnetId: "STRING_VALUE",
* // PrivateIpAddress: "STRING_VALUE",
* // AvailabilityZone: "STRING_VALUE",
+ * // Ipv6Address: "STRING_VALUE",
* // },
* // ],
* // },
@@ -243,6 +244,7 @@ export interface DeleteClusterCommandOutput extends DeleteClusterResult, __Metad
* // CustomDomainCertificateExpiryDate: new Date("TIMESTAMP"),
* // MasterPasswordSecretArn: "STRING_VALUE",
* // MasterPasswordSecretKmsKeyId: "STRING_VALUE",
+ * // IpAddressType: "STRING_VALUE",
* // },
* // };
*
diff --git a/clients/client-redshift/src/commands/DeleteEndpointAccessCommand.ts b/clients/client-redshift/src/commands/DeleteEndpointAccessCommand.ts
index d86ac66841896..889225e0bb822 100644
--- a/clients/client-redshift/src/commands/DeleteEndpointAccessCommand.ts
+++ b/clients/client-redshift/src/commands/DeleteEndpointAccessCommand.ts
@@ -73,6 +73,7 @@ export interface DeleteEndpointAccessCommandOutput extends EndpointAccess, __Met
* // SubnetId: "STRING_VALUE",
* // PrivateIpAddress: "STRING_VALUE",
* // AvailabilityZone: "STRING_VALUE",
+ * // Ipv6Address: "STRING_VALUE",
* // },
* // ],
* // },
diff --git a/clients/client-redshift/src/commands/DescribeClusterSubnetGroupsCommand.ts b/clients/client-redshift/src/commands/DescribeClusterSubnetGroupsCommand.ts
index fd60ad359756e..35be9b83b68da 100644
--- a/clients/client-redshift/src/commands/DescribeClusterSubnetGroupsCommand.ts
+++ b/clients/client-redshift/src/commands/DescribeClusterSubnetGroupsCommand.ts
@@ -95,6 +95,9 @@ export interface DescribeClusterSubnetGroupsCommandOutput extends ClusterSubnetG
* // Value: "STRING_VALUE",
* // },
* // ],
+ * // SupportedClusterIpAddressTypes: [ // ValueStringList
+ * // "STRING_VALUE",
+ * // ],
* // },
* // ],
* // };
diff --git a/clients/client-redshift/src/commands/DescribeClustersCommand.ts b/clients/client-redshift/src/commands/DescribeClustersCommand.ts
index 3ea79101c7a33..1c97d49d71fb5 100644
--- a/clients/client-redshift/src/commands/DescribeClustersCommand.ts
+++ b/clients/client-redshift/src/commands/DescribeClustersCommand.ts
@@ -93,6 +93,7 @@ export interface DescribeClustersCommandOutput extends ClustersMessage, __Metada
* // SubnetId: "STRING_VALUE",
* // PrivateIpAddress: "STRING_VALUE",
* // AvailabilityZone: "STRING_VALUE",
+ * // Ipv6Address: "STRING_VALUE",
* // },
* // ],
* // },
@@ -247,6 +248,7 @@ export interface DescribeClustersCommandOutput extends ClustersMessage, __Metada
* // CustomDomainCertificateExpiryDate: new Date("TIMESTAMP"),
* // MasterPasswordSecretArn: "STRING_VALUE",
* // MasterPasswordSecretKmsKeyId: "STRING_VALUE",
+ * // IpAddressType: "STRING_VALUE",
* // },
* // ],
* // };
diff --git a/clients/client-redshift/src/commands/DescribeEndpointAccessCommand.ts b/clients/client-redshift/src/commands/DescribeEndpointAccessCommand.ts
index 7f809aeb5007e..08b2b3006fe04 100644
--- a/clients/client-redshift/src/commands/DescribeEndpointAccessCommand.ts
+++ b/clients/client-redshift/src/commands/DescribeEndpointAccessCommand.ts
@@ -80,6 +80,7 @@ export interface DescribeEndpointAccessCommandOutput extends EndpointAccessList,
* // SubnetId: "STRING_VALUE",
* // PrivateIpAddress: "STRING_VALUE",
* // AvailabilityZone: "STRING_VALUE",
+ * // Ipv6Address: "STRING_VALUE",
* // },
* // ],
* // },
diff --git a/clients/client-redshift/src/commands/DescribeEventCategoriesCommand.ts b/clients/client-redshift/src/commands/DescribeEventCategoriesCommand.ts
index 3c913654cc2bb..da4e9cb50e0fe 100644
--- a/clients/client-redshift/src/commands/DescribeEventCategoriesCommand.ts
+++ b/clients/client-redshift/src/commands/DescribeEventCategoriesCommand.ts
@@ -14,8 +14,7 @@ import {
SMITHY_CONTEXT_KEY,
} from "@smithy/types";
-import { DescribeEventCategoriesMessage } from "../models/models_0";
-import { EventCategoriesMessage } from "../models/models_1";
+import { DescribeEventCategoriesMessage, EventCategoriesMessage } from "../models/models_1";
import { de_DescribeEventCategoriesCommand, se_DescribeEventCategoriesCommand } from "../protocols/Aws_query";
import { RedshiftClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../RedshiftClient";
diff --git a/clients/client-redshift/src/commands/DisableSnapshotCopyCommand.ts b/clients/client-redshift/src/commands/DisableSnapshotCopyCommand.ts
index f9a6f8c26682b..275ddf7bffaf3 100644
--- a/clients/client-redshift/src/commands/DisableSnapshotCopyCommand.ts
+++ b/clients/client-redshift/src/commands/DisableSnapshotCopyCommand.ts
@@ -79,6 +79,7 @@ export interface DisableSnapshotCopyCommandOutput extends DisableSnapshotCopyRes
* // SubnetId: "STRING_VALUE",
* // PrivateIpAddress: "STRING_VALUE",
* // AvailabilityZone: "STRING_VALUE",
+ * // Ipv6Address: "STRING_VALUE",
* // },
* // ],
* // },
@@ -233,6 +234,7 @@ export interface DisableSnapshotCopyCommandOutput extends DisableSnapshotCopyRes
* // CustomDomainCertificateExpiryDate: new Date("TIMESTAMP"),
* // MasterPasswordSecretArn: "STRING_VALUE",
* // MasterPasswordSecretKmsKeyId: "STRING_VALUE",
+ * // IpAddressType: "STRING_VALUE",
* // },
* // };
*
diff --git a/clients/client-redshift/src/commands/EnableSnapshotCopyCommand.ts b/clients/client-redshift/src/commands/EnableSnapshotCopyCommand.ts
index e168221c29605..a80990dc7858e 100644
--- a/clients/client-redshift/src/commands/EnableSnapshotCopyCommand.ts
+++ b/clients/client-redshift/src/commands/EnableSnapshotCopyCommand.ts
@@ -80,6 +80,7 @@ export interface EnableSnapshotCopyCommandOutput extends EnableSnapshotCopyResul
* // SubnetId: "STRING_VALUE",
* // PrivateIpAddress: "STRING_VALUE",
* // AvailabilityZone: "STRING_VALUE",
+ * // Ipv6Address: "STRING_VALUE",
* // },
* // ],
* // },
@@ -234,6 +235,7 @@ export interface EnableSnapshotCopyCommandOutput extends EnableSnapshotCopyResul
* // CustomDomainCertificateExpiryDate: new Date("TIMESTAMP"),
* // MasterPasswordSecretArn: "STRING_VALUE",
* // MasterPasswordSecretKmsKeyId: "STRING_VALUE",
+ * // IpAddressType: "STRING_VALUE",
* // },
* // };
*
diff --git a/clients/client-redshift/src/commands/ModifyClusterCommand.ts b/clients/client-redshift/src/commands/ModifyClusterCommand.ts
index 6ec9684e6b2d7..4002571de894a 100644
--- a/clients/client-redshift/src/commands/ModifyClusterCommand.ts
+++ b/clients/client-redshift/src/commands/ModifyClusterCommand.ts
@@ -89,6 +89,7 @@ export interface ModifyClusterCommandOutput extends ModifyClusterResult, __Metad
* Port: Number("int"),
* ManageMasterPassword: true || false,
* MasterPasswordSecretKmsKeyId: "STRING_VALUE",
+ * IpAddressType: "STRING_VALUE",
* };
* const command = new ModifyClusterCommand(input);
* const response = await client.send(command);
@@ -114,6 +115,7 @@ export interface ModifyClusterCommandOutput extends ModifyClusterResult, __Metad
* // SubnetId: "STRING_VALUE",
* // PrivateIpAddress: "STRING_VALUE",
* // AvailabilityZone: "STRING_VALUE",
+ * // Ipv6Address: "STRING_VALUE",
* // },
* // ],
* // },
@@ -268,6 +270,7 @@ export interface ModifyClusterCommandOutput extends ModifyClusterResult, __Metad
* // CustomDomainCertificateExpiryDate: new Date("TIMESTAMP"),
* // MasterPasswordSecretArn: "STRING_VALUE",
* // MasterPasswordSecretKmsKeyId: "STRING_VALUE",
+ * // IpAddressType: "STRING_VALUE",
* // },
* // };
*
@@ -327,6 +330,10 @@ export interface ModifyClusterCommandOutput extends ModifyClusterResult, __Metad
* The retention period specified is either in the past or is not a valid value.
* The value must be either -1 or an integer between 1 and 3,653.
*
+ * @throws {@link Ipv6CidrBlockNotFoundFault} (client fault)
+ * There are no subnets in your VPC with associated IPv6 CIDR blocks. To use dual-stack mode,
+ * associate an IPv6 CIDR block with each subnet in your VPC.
+ *
* @throws {@link LimitExceededFault} (client fault)
* The encryption key has exceeded its grant limit in Amazon Web Services KMS.
*
diff --git a/clients/client-redshift/src/commands/ModifyClusterDbRevisionCommand.ts b/clients/client-redshift/src/commands/ModifyClusterDbRevisionCommand.ts
index 6f37134e74d8d..b733270499981 100644
--- a/clients/client-redshift/src/commands/ModifyClusterDbRevisionCommand.ts
+++ b/clients/client-redshift/src/commands/ModifyClusterDbRevisionCommand.ts
@@ -77,6 +77,7 @@ export interface ModifyClusterDbRevisionCommandOutput extends ModifyClusterDbRev
* // SubnetId: "STRING_VALUE",
* // PrivateIpAddress: "STRING_VALUE",
* // AvailabilityZone: "STRING_VALUE",
+ * // Ipv6Address: "STRING_VALUE",
* // },
* // ],
* // },
@@ -231,6 +232,7 @@ export interface ModifyClusterDbRevisionCommandOutput extends ModifyClusterDbRev
* // CustomDomainCertificateExpiryDate: new Date("TIMESTAMP"),
* // MasterPasswordSecretArn: "STRING_VALUE",
* // MasterPasswordSecretKmsKeyId: "STRING_VALUE",
+ * // IpAddressType: "STRING_VALUE",
* // },
* // };
*
diff --git a/clients/client-redshift/src/commands/ModifyClusterIamRolesCommand.ts b/clients/client-redshift/src/commands/ModifyClusterIamRolesCommand.ts
index d0f3b9be29fde..40edf25d1bdb9 100644
--- a/clients/client-redshift/src/commands/ModifyClusterIamRolesCommand.ts
+++ b/clients/client-redshift/src/commands/ModifyClusterIamRolesCommand.ts
@@ -86,6 +86,7 @@ export interface ModifyClusterIamRolesCommandOutput extends ModifyClusterIamRole
* // SubnetId: "STRING_VALUE",
* // PrivateIpAddress: "STRING_VALUE",
* // AvailabilityZone: "STRING_VALUE",
+ * // Ipv6Address: "STRING_VALUE",
* // },
* // ],
* // },
@@ -240,6 +241,7 @@ export interface ModifyClusterIamRolesCommandOutput extends ModifyClusterIamRole
* // CustomDomainCertificateExpiryDate: new Date("TIMESTAMP"),
* // MasterPasswordSecretArn: "STRING_VALUE",
* // MasterPasswordSecretKmsKeyId: "STRING_VALUE",
+ * // IpAddressType: "STRING_VALUE",
* // },
* // };
*
diff --git a/clients/client-redshift/src/commands/ModifyClusterMaintenanceCommand.ts b/clients/client-redshift/src/commands/ModifyClusterMaintenanceCommand.ts
index 7214f06172fd1..bfaf9ac8896c5 100644
--- a/clients/client-redshift/src/commands/ModifyClusterMaintenanceCommand.ts
+++ b/clients/client-redshift/src/commands/ModifyClusterMaintenanceCommand.ts
@@ -80,6 +80,7 @@ export interface ModifyClusterMaintenanceCommandOutput extends ModifyClusterMain
* // SubnetId: "STRING_VALUE",
* // PrivateIpAddress: "STRING_VALUE",
* // AvailabilityZone: "STRING_VALUE",
+ * // Ipv6Address: "STRING_VALUE",
* // },
* // ],
* // },
@@ -234,6 +235,7 @@ export interface ModifyClusterMaintenanceCommandOutput extends ModifyClusterMain
* // CustomDomainCertificateExpiryDate: new Date("TIMESTAMP"),
* // MasterPasswordSecretArn: "STRING_VALUE",
* // MasterPasswordSecretKmsKeyId: "STRING_VALUE",
+ * // IpAddressType: "STRING_VALUE",
* // },
* // };
*
diff --git a/clients/client-redshift/src/commands/ModifyClusterSubnetGroupCommand.ts b/clients/client-redshift/src/commands/ModifyClusterSubnetGroupCommand.ts
index 0c7586d8e5e06..3833a472ce628 100644
--- a/clients/client-redshift/src/commands/ModifyClusterSubnetGroupCommand.ts
+++ b/clients/client-redshift/src/commands/ModifyClusterSubnetGroupCommand.ts
@@ -80,6 +80,9 @@ export interface ModifyClusterSubnetGroupCommandOutput extends ModifyClusterSubn
* // Value: "STRING_VALUE",
* // },
* // ],
+ * // SupportedClusterIpAddressTypes: [ // ValueStringList
+ * // "STRING_VALUE",
+ * // ],
* // },
* // };
*
diff --git a/clients/client-redshift/src/commands/ModifyEndpointAccessCommand.ts b/clients/client-redshift/src/commands/ModifyEndpointAccessCommand.ts
index 4431479b5e673..1e1e553d6ffe7 100644
--- a/clients/client-redshift/src/commands/ModifyEndpointAccessCommand.ts
+++ b/clients/client-redshift/src/commands/ModifyEndpointAccessCommand.ts
@@ -77,6 +77,7 @@ export interface ModifyEndpointAccessCommandOutput extends EndpointAccess, __Met
* // SubnetId: "STRING_VALUE",
* // PrivateIpAddress: "STRING_VALUE",
* // AvailabilityZone: "STRING_VALUE",
+ * // Ipv6Address: "STRING_VALUE",
* // },
* // ],
* // },
diff --git a/clients/client-redshift/src/commands/ModifySnapshotCopyRetentionPeriodCommand.ts b/clients/client-redshift/src/commands/ModifySnapshotCopyRetentionPeriodCommand.ts
index e369460354d3e..46279395e3d71 100644
--- a/clients/client-redshift/src/commands/ModifySnapshotCopyRetentionPeriodCommand.ts
+++ b/clients/client-redshift/src/commands/ModifySnapshotCopyRetentionPeriodCommand.ts
@@ -88,6 +88,7 @@ export interface ModifySnapshotCopyRetentionPeriodCommandOutput
* // SubnetId: "STRING_VALUE",
* // PrivateIpAddress: "STRING_VALUE",
* // AvailabilityZone: "STRING_VALUE",
+ * // Ipv6Address: "STRING_VALUE",
* // },
* // ],
* // },
@@ -242,6 +243,7 @@ export interface ModifySnapshotCopyRetentionPeriodCommandOutput
* // CustomDomainCertificateExpiryDate: new Date("TIMESTAMP"),
* // MasterPasswordSecretArn: "STRING_VALUE",
* // MasterPasswordSecretKmsKeyId: "STRING_VALUE",
+ * // IpAddressType: "STRING_VALUE",
* // },
* // };
*
diff --git a/clients/client-redshift/src/commands/PauseClusterCommand.ts b/clients/client-redshift/src/commands/PauseClusterCommand.ts
index d90a95f9ff7c1..66a43507414b8 100644
--- a/clients/client-redshift/src/commands/PauseClusterCommand.ts
+++ b/clients/client-redshift/src/commands/PauseClusterCommand.ts
@@ -72,6 +72,7 @@ export interface PauseClusterCommandOutput extends PauseClusterResult, __Metadat
* // SubnetId: "STRING_VALUE",
* // PrivateIpAddress: "STRING_VALUE",
* // AvailabilityZone: "STRING_VALUE",
+ * // Ipv6Address: "STRING_VALUE",
* // },
* // ],
* // },
@@ -226,6 +227,7 @@ export interface PauseClusterCommandOutput extends PauseClusterResult, __Metadat
* // CustomDomainCertificateExpiryDate: new Date("TIMESTAMP"),
* // MasterPasswordSecretArn: "STRING_VALUE",
* // MasterPasswordSecretKmsKeyId: "STRING_VALUE",
+ * // IpAddressType: "STRING_VALUE",
* // },
* // };
*
diff --git a/clients/client-redshift/src/commands/RebootClusterCommand.ts b/clients/client-redshift/src/commands/RebootClusterCommand.ts
index 7d7621a888ab2..17148e692b55a 100644
--- a/clients/client-redshift/src/commands/RebootClusterCommand.ts
+++ b/clients/client-redshift/src/commands/RebootClusterCommand.ts
@@ -78,6 +78,7 @@ export interface RebootClusterCommandOutput extends RebootClusterResult, __Metad
* // SubnetId: "STRING_VALUE",
* // PrivateIpAddress: "STRING_VALUE",
* // AvailabilityZone: "STRING_VALUE",
+ * // Ipv6Address: "STRING_VALUE",
* // },
* // ],
* // },
@@ -232,6 +233,7 @@ export interface RebootClusterCommandOutput extends RebootClusterResult, __Metad
* // CustomDomainCertificateExpiryDate: new Date("TIMESTAMP"),
* // MasterPasswordSecretArn: "STRING_VALUE",
* // MasterPasswordSecretKmsKeyId: "STRING_VALUE",
+ * // IpAddressType: "STRING_VALUE",
* // },
* // };
*
diff --git a/clients/client-redshift/src/commands/ResizeClusterCommand.ts b/clients/client-redshift/src/commands/ResizeClusterCommand.ts
index f017e060be835..3df535490405e 100644
--- a/clients/client-redshift/src/commands/ResizeClusterCommand.ts
+++ b/clients/client-redshift/src/commands/ResizeClusterCommand.ts
@@ -120,6 +120,7 @@ export interface ResizeClusterCommandOutput extends ResizeClusterResult, __Metad
* // SubnetId: "STRING_VALUE",
* // PrivateIpAddress: "STRING_VALUE",
* // AvailabilityZone: "STRING_VALUE",
+ * // Ipv6Address: "STRING_VALUE",
* // },
* // ],
* // },
@@ -274,6 +275,7 @@ export interface ResizeClusterCommandOutput extends ResizeClusterResult, __Metad
* // CustomDomainCertificateExpiryDate: new Date("TIMESTAMP"),
* // MasterPasswordSecretArn: "STRING_VALUE",
* // MasterPasswordSecretKmsKeyId: "STRING_VALUE",
+ * // IpAddressType: "STRING_VALUE",
* // },
* // };
*
diff --git a/clients/client-redshift/src/commands/RestoreFromClusterSnapshotCommand.ts b/clients/client-redshift/src/commands/RestoreFromClusterSnapshotCommand.ts
index 9bf30a4d97aa9..7b62e6dfcadc3 100644
--- a/clients/client-redshift/src/commands/RestoreFromClusterSnapshotCommand.ts
+++ b/clients/client-redshift/src/commands/RestoreFromClusterSnapshotCommand.ts
@@ -101,6 +101,7 @@ export interface RestoreFromClusterSnapshotCommandOutput extends RestoreFromClus
* Encrypted: true || false,
* ManageMasterPassword: true || false,
* MasterPasswordSecretKmsKeyId: "STRING_VALUE",
+ * IpAddressType: "STRING_VALUE",
* };
* const command = new RestoreFromClusterSnapshotCommand(input);
* const response = await client.send(command);
@@ -126,6 +127,7 @@ export interface RestoreFromClusterSnapshotCommandOutput extends RestoreFromClus
* // SubnetId: "STRING_VALUE",
* // PrivateIpAddress: "STRING_VALUE",
* // AvailabilityZone: "STRING_VALUE",
+ * // Ipv6Address: "STRING_VALUE",
* // },
* // ],
* // },
@@ -280,6 +282,7 @@ export interface RestoreFromClusterSnapshotCommandOutput extends RestoreFromClus
* // CustomDomainCertificateExpiryDate: new Date("TIMESTAMP"),
* // MasterPasswordSecretArn: "STRING_VALUE",
* // MasterPasswordSecretKmsKeyId: "STRING_VALUE",
+ * // IpAddressType: "STRING_VALUE",
* // },
* // };
*
@@ -367,6 +370,10 @@ export interface RestoreFromClusterSnapshotCommandOutput extends RestoreFromClus
* @throws {@link InvalidVPCNetworkStateFault} (client fault)
* The cluster subnet group does not cover all Availability Zones.
*
+ * @throws {@link Ipv6CidrBlockNotFoundFault} (client fault)
+ * There are no subnets in your VPC with associated IPv6 CIDR blocks. To use dual-stack mode,
+ * associate an IPv6 CIDR block with each subnet in your VPC.
+ *
* @throws {@link LimitExceededFault} (client fault)
* The encryption key has exceeded its grant limit in Amazon Web Services KMS.
*
diff --git a/clients/client-redshift/src/commands/ResumeClusterCommand.ts b/clients/client-redshift/src/commands/ResumeClusterCommand.ts
index 15c9e4ace4b2c..3df6ca74bbd8d 100644
--- a/clients/client-redshift/src/commands/ResumeClusterCommand.ts
+++ b/clients/client-redshift/src/commands/ResumeClusterCommand.ts
@@ -72,6 +72,7 @@ export interface ResumeClusterCommandOutput extends ResumeClusterResult, __Metad
* // SubnetId: "STRING_VALUE",
* // PrivateIpAddress: "STRING_VALUE",
* // AvailabilityZone: "STRING_VALUE",
+ * // Ipv6Address: "STRING_VALUE",
* // },
* // ],
* // },
@@ -226,6 +227,7 @@ export interface ResumeClusterCommandOutput extends ResumeClusterResult, __Metad
* // CustomDomainCertificateExpiryDate: new Date("TIMESTAMP"),
* // MasterPasswordSecretArn: "STRING_VALUE",
* // MasterPasswordSecretKmsKeyId: "STRING_VALUE",
+ * // IpAddressType: "STRING_VALUE",
* // },
* // };
*
diff --git a/clients/client-redshift/src/commands/RotateEncryptionKeyCommand.ts b/clients/client-redshift/src/commands/RotateEncryptionKeyCommand.ts
index 297428763974e..4c4eb7f76e191 100644
--- a/clients/client-redshift/src/commands/RotateEncryptionKeyCommand.ts
+++ b/clients/client-redshift/src/commands/RotateEncryptionKeyCommand.ts
@@ -75,6 +75,7 @@ export interface RotateEncryptionKeyCommandOutput extends RotateEncryptionKeyRes
* // SubnetId: "STRING_VALUE",
* // PrivateIpAddress: "STRING_VALUE",
* // AvailabilityZone: "STRING_VALUE",
+ * // Ipv6Address: "STRING_VALUE",
* // },
* // ],
* // },
@@ -229,6 +230,7 @@ export interface RotateEncryptionKeyCommandOutput extends RotateEncryptionKeyRes
* // CustomDomainCertificateExpiryDate: new Date("TIMESTAMP"),
* // MasterPasswordSecretArn: "STRING_VALUE",
* // MasterPasswordSecretKmsKeyId: "STRING_VALUE",
+ * // IpAddressType: "STRING_VALUE",
* // },
* // };
*
diff --git a/clients/client-redshift/src/models/models_0.ts b/clients/client-redshift/src/models/models_0.ts
index 767a367e4d3f3..20f47d3755eb6 100644
--- a/clients/client-redshift/src/models/models_0.ts
+++ b/clients/client-redshift/src/models/models_0.ts
@@ -2434,6 +2434,12 @@ export interface NetworkInterface {
* The Availability Zone.
*/
AvailabilityZone?: string;
+
+ /**
+ * @public
+ * The IPv6 address of the network interface within the subnet.
+ */
+ Ipv6Address?: string;
}
/**
@@ -3318,6 +3324,12 @@ export interface Cluster {
* The ID of the Key Management Service (KMS) key used to encrypt and store the cluster's admin credentials secret.
*/
MasterPasswordSecretKmsKeyId?: string;
+
+ /**
+ * @public
+ * The IP address type for the cluster. Possible values are ipv4
and dualstack
.
+ */
+ IpAddressType?: string;
}
/**
@@ -3961,6 +3973,12 @@ export interface ClusterSubnetGroup {
* The list of tags for the cluster subnet group.
*/
Tags?: Tag[];
+
+ /**
+ * @public
+ * The IP address types supported by this cluster subnet group. Possible values are ipv4
and dualstack
.
+ */
+ SupportedClusterIpAddressTypes?: string[];
}
/**
@@ -4726,6 +4744,12 @@ export interface CreateClusterMessage {
* You can only use this parameter if ManageMasterPassword
is true.
*/
MasterPasswordSecretKmsKeyId?: string;
+
+ /**
+ * @public
+ * The IP address types that the cluster supports. Possible values are ipv4
and dualstack
.
+ */
+ IpAddressType?: string;
}
/**
@@ -4922,6 +4946,27 @@ export class InvalidVPCNetworkStateFault extends __BaseException {
}
}
+/**
+ * @public
+ * There are no subnets in your VPC with associated IPv6 CIDR blocks. To use dual-stack mode,
+ * associate an IPv6 CIDR block with each subnet in your VPC.
+ */
+export class Ipv6CidrBlockNotFoundFault extends __BaseException {
+ readonly name: "Ipv6CidrBlockNotFoundFault" = "Ipv6CidrBlockNotFoundFault";
+ readonly $fault: "client" = "client";
+ /**
+ * @internal
+ */
+ constructor(opts: __ExceptionOptionType) {
+ super({
+ name: "Ipv6CidrBlockNotFoundFault",
+ $fault: "client",
+ ...opts,
+ });
+ Object.setPrototypeOf(this, Ipv6CidrBlockNotFoundFault.prototype);
+ }
+}
+
/**
* @public
* The operation would exceed the number of nodes allowed for a cluster.
@@ -8832,20 +8877,6 @@ export interface EndpointAuthorizationList {
Marker?: string;
}
-/**
- * @public
- *
- */
-export interface DescribeEventCategoriesMessage {
- /**
- * @public
- * The source type, such as cluster or parameter group, to which the described event
- * categories apply.
- * Valid values: cluster, cluster-snapshot, cluster-parameter-group, cluster-security-group, and scheduled-action.
- */
- SourceType?: string;
-}
-
/**
* @internal
*/
diff --git a/clients/client-redshift/src/models/models_1.ts b/clients/client-redshift/src/models/models_1.ts
index b93e115d40064..7329dab9922cf 100644
--- a/clients/client-redshift/src/models/models_1.ts
+++ b/clients/client-redshift/src/models/models_1.ts
@@ -30,6 +30,20 @@ import {
} from "./models_0";
import { RedshiftServiceException as __BaseException } from "./RedshiftServiceException";
+/**
+ * @public
+ *
+ */
+export interface DescribeEventCategoriesMessage {
+ /**
+ * @public
+ * The source type, such as cluster or parameter group, to which the described event
+ * categories apply.
+ * Valid values: cluster, cluster-snapshot, cluster-parameter-group, cluster-security-group, and scheduled-action.
+ */
+ SourceType?: string;
+}
+
/**
* @public
* Describes event information.
@@ -3381,6 +3395,12 @@ export interface ModifyClusterMessage {
* You can only use this parameter if ManageMasterPassword
is true.
*/
MasterPasswordSecretKmsKeyId?: string;
+
+ /**
+ * @public
+ * The IP address types that the cluster supports. Possible values are ipv4
and dualstack
.
+ */
+ IpAddressType?: string;
}
/**
@@ -4537,6 +4557,12 @@ export interface RestoreFromClusterSnapshotMessage {
* You can only use this parameter if ManageMasterPassword
is true.
*/
MasterPasswordSecretKmsKeyId?: string;
+
+ /**
+ * @public
+ * The IP address type for the cluster. Possible values are ipv4
and dualstack
.
+ */
+ IpAddressType?: string;
}
/**
diff --git a/clients/client-redshift/src/protocols/Aws_query.ts b/clients/client-redshift/src/protocols/Aws_query.ts
index 0e61e00c65002..63d463efd84f5 100644
--- a/clients/client-redshift/src/protocols/Aws_query.ts
+++ b/clients/client-redshift/src/protocols/Aws_query.ts
@@ -605,7 +605,6 @@ import {
DescribeDefaultClusterParametersResult,
DescribeEndpointAccessMessage,
DescribeEndpointAuthorizationMessage,
- DescribeEventCategoriesMessage,
EC2SecurityGroup,
ElasticIpStatus,
Endpoint,
@@ -658,6 +657,7 @@ import {
InvalidUsageLimitFault,
InvalidVPCNetworkStateFault,
IPRange,
+ Ipv6CidrBlockNotFoundFault,
LimitExceededFault,
MaintenanceTrack,
NetworkInterface,
@@ -729,6 +729,7 @@ import {
VpcSecurityGroupMembership,
} from "../models/models_0";
import {
+ DescribeEventCategoriesMessage,
DescribeEventsMessage,
DescribeEventSubscriptionsMessage,
DescribeHsmClientCertificatesMessage,
@@ -3761,6 +3762,9 @@ const de_CreateClusterCommandError = async (
case "InvalidVPCNetworkStateFault":
case "com.amazonaws.redshift#InvalidVPCNetworkStateFault":
throw await de_InvalidVPCNetworkStateFaultRes(parsedOutput, context);
+ case "Ipv6CidrBlockNotFoundFault":
+ case "com.amazonaws.redshift#Ipv6CidrBlockNotFoundFault":
+ throw await de_Ipv6CidrBlockNotFoundFaultRes(parsedOutput, context);
case "LimitExceededFault":
case "com.amazonaws.redshift#LimitExceededFault":
throw await de_LimitExceededFaultRes(parsedOutput, context);
@@ -8157,6 +8161,9 @@ const de_ModifyClusterCommandError = async (
case "InvalidRetentionPeriodFault":
case "com.amazonaws.redshift#InvalidRetentionPeriodFault":
throw await de_InvalidRetentionPeriodFaultRes(parsedOutput, context);
+ case "Ipv6CidrBlockNotFoundFault":
+ case "com.amazonaws.redshift#Ipv6CidrBlockNotFoundFault":
+ throw await de_Ipv6CidrBlockNotFoundFaultRes(parsedOutput, context);
case "LimitExceededFault":
case "com.amazonaws.redshift#LimitExceededFault":
throw await de_LimitExceededFaultRes(parsedOutput, context);
@@ -9439,6 +9446,9 @@ const de_RestoreFromClusterSnapshotCommandError = async (
case "InvalidVPCNetworkStateFault":
case "com.amazonaws.redshift#InvalidVPCNetworkStateFault":
throw await de_InvalidVPCNetworkStateFaultRes(parsedOutput, context);
+ case "Ipv6CidrBlockNotFoundFault":
+ case "com.amazonaws.redshift#Ipv6CidrBlockNotFoundFault":
+ throw await de_Ipv6CidrBlockNotFoundFaultRes(parsedOutput, context);
case "LimitExceededFault":
case "com.amazonaws.redshift#LimitExceededFault":
throw await de_LimitExceededFaultRes(parsedOutput, context);
@@ -11202,6 +11212,22 @@ const de_InvalidVPCNetworkStateFaultRes = async (
return __decorateServiceException(exception, body);
};
+/**
+ * deserializeAws_queryIpv6CidrBlockNotFoundFaultRes
+ */
+const de_Ipv6CidrBlockNotFoundFaultRes = async (
+ parsedOutput: any,
+ context: __SerdeContext
+): Promise => {
+ const body = parsedOutput.body;
+ const deserialized: any = de_Ipv6CidrBlockNotFoundFault(body.Error, context);
+ const exception = new Ipv6CidrBlockNotFoundFault({
+ $metadata: deserializeMetadata(parsedOutput),
+ ...deserialized,
+ });
+ return __decorateServiceException(exception, body);
+};
+
/**
* deserializeAws_queryLimitExceededFaultRes
*/
@@ -12332,6 +12358,9 @@ const se_CreateClusterMessage = (input: CreateClusterMessage, context: __SerdeCo
if (input.MasterPasswordSecretKmsKeyId != null) {
entries["MasterPasswordSecretKmsKeyId"] = input.MasterPasswordSecretKmsKeyId;
}
+ if (input.IpAddressType != null) {
+ entries["IpAddressType"] = input.IpAddressType;
+ }
return entries;
};
@@ -14577,6 +14606,9 @@ const se_ModifyClusterMessage = (input: ModifyClusterMessage, context: __SerdeCo
if (input.MasterPasswordSecretKmsKeyId != null) {
entries["MasterPasswordSecretKmsKeyId"] = input.MasterPasswordSecretKmsKeyId;
}
+ if (input.IpAddressType != null) {
+ entries["IpAddressType"] = input.IpAddressType;
+ }
return entries;
};
@@ -15217,6 +15249,9 @@ const se_RestoreFromClusterSnapshotMessage = (
if (input.MasterPasswordSecretKmsKeyId != null) {
entries["MasterPasswordSecretKmsKeyId"] = input.MasterPasswordSecretKmsKeyId;
}
+ if (input.IpAddressType != null) {
+ entries["IpAddressType"] = input.IpAddressType;
+ }
return entries;
};
@@ -16372,6 +16407,9 @@ const de_Cluster = (output: any, context: __SerdeContext): Cluster => {
if (output["MasterPasswordSecretKmsKeyId"] !== undefined) {
contents.MasterPasswordSecretKmsKeyId = __expectString(output["MasterPasswordSecretKmsKeyId"]);
}
+ if (output["IpAddressType"] !== undefined) {
+ contents.IpAddressType = __expectString(output["IpAddressType"]);
+ }
return contents;
};
@@ -17017,6 +17055,17 @@ const de_ClusterSubnetGroup = (output: any, context: __SerdeContext): ClusterSub
} else if (output["Tags"] !== undefined && output["Tags"]["Tag"] !== undefined) {
contents.Tags = de_TagList(__getArrayIfSingleItem(output["Tags"]["Tag"]), context);
}
+ if (output.SupportedClusterIpAddressTypes === "") {
+ contents.SupportedClusterIpAddressTypes = [];
+ } else if (
+ output["SupportedClusterIpAddressTypes"] !== undefined &&
+ output["SupportedClusterIpAddressTypes"]["item"] !== undefined
+ ) {
+ contents.SupportedClusterIpAddressTypes = de_ValueStringList(
+ __getArrayIfSingleItem(output["SupportedClusterIpAddressTypes"]["item"]),
+ context
+ );
+ }
return contents;
};
@@ -19209,6 +19258,17 @@ const de_IPRangeList = (output: any, context: __SerdeContext): IPRange[] => {
});
};
+/**
+ * deserializeAws_queryIpv6CidrBlockNotFoundFault
+ */
+const de_Ipv6CidrBlockNotFoundFault = (output: any, context: __SerdeContext): Ipv6CidrBlockNotFoundFault => {
+ const contents: any = {};
+ if (output["message"] !== undefined) {
+ contents.message = __expectString(output["message"]);
+ }
+ return contents;
+};
+
/**
* deserializeAws_queryLimitExceededFault
*/
@@ -19448,6 +19508,9 @@ const de_NetworkInterface = (output: any, context: __SerdeContext): NetworkInter
if (output["AvailabilityZone"] !== undefined) {
contents.AvailabilityZone = __expectString(output["AvailabilityZone"]);
}
+ if (output["Ipv6Address"] !== undefined) {
+ contents.Ipv6Address = __expectString(output["Ipv6Address"]);
+ }
return contents;
};
@@ -21709,6 +21772,17 @@ const de_UsageLimits = (output: any, context: __SerdeContext): UsageLimit[] => {
});
};
+/**
+ * deserializeAws_queryValueStringList
+ */
+const de_ValueStringList = (output: any, context: __SerdeContext): string[] => {
+ return (output || [])
+ .filter((e: any) => e != null)
+ .map((entry: any) => {
+ return __expectString(entry) as any;
+ });
+};
+
/**
* deserializeAws_queryVpcEndpoint
*/
diff --git a/codegen/sdk-codegen/aws-models/redshift.json b/codegen/sdk-codegen/aws-models/redshift.json
index e22368e80405b..5cc475249eb89 100644
--- a/codegen/sdk-codegen/aws-models/redshift.json
+++ b/codegen/sdk-codegen/aws-models/redshift.json
@@ -1496,6 +1496,12 @@
"traits": {
"smithy.api#documentation": "The ID of the Key Management Service (KMS) key used to encrypt and store the cluster's admin credentials secret.
"
}
+ },
+ "IpAddressType": {
+ "target": "com.amazonaws.redshift#String",
+ "traits": {
+ "smithy.api#documentation": "The IP address type for the cluster. Possible values are ipv4
and dualstack
.
"
+ }
}
},
"traits": {
@@ -2265,6 +2271,12 @@
"traits": {
"smithy.api#documentation": "The list of tags for the cluster subnet group.
"
}
+ },
+ "SupportedClusterIpAddressTypes": {
+ "target": "com.amazonaws.redshift#ValueStringList",
+ "traits": {
+ "smithy.api#documentation": "The IP address types supported by this cluster subnet group. Possible values are ipv4
and dualstack
.
"
+ }
}
},
"traits": {
@@ -2681,6 +2693,9 @@
{
"target": "com.amazonaws.redshift#InvalidVPCNetworkStateFault"
},
+ {
+ "target": "com.amazonaws.redshift#Ipv6CidrBlockNotFoundFault"
+ },
{
"target": "com.amazonaws.redshift#LimitExceededFault"
},
@@ -2928,6 +2943,12 @@
"traits": {
"smithy.api#documentation": "The ID of the Key Management Service (KMS) key used to encrypt and store the cluster's admin credentials secret. \n You can only use this parameter if ManageMasterPassword
is true.
"
}
+ },
+ "IpAddressType": {
+ "target": "com.amazonaws.redshift#String",
+ "traits": {
+ "smithy.api#documentation": "The IP address types that the cluster supports. Possible values are ipv4
and dualstack
.
"
+ }
}
},
"traits": {
@@ -10263,6 +10284,23 @@
"smithy.api#httpError": 400
}
},
+ "com.amazonaws.redshift#Ipv6CidrBlockNotFoundFault": {
+ "type": "structure",
+ "members": {
+ "message": {
+ "target": "com.amazonaws.redshift#ExceptionMessage"
+ }
+ },
+ "traits": {
+ "aws.protocols#awsQueryError": {
+ "code": "Ipv6CidrBlockNotFoundFault",
+ "httpResponseCode": 400
+ },
+ "smithy.api#documentation": "There are no subnets in your VPC with associated IPv6 CIDR blocks. To use dual-stack mode,\n associate an IPv6 CIDR block with each subnet in your VPC.
",
+ "smithy.api#error": "client",
+ "smithy.api#httpError": 400
+ }
+ },
"com.amazonaws.redshift#LimitExceededFault": {
"type": "structure",
"members": {
@@ -10585,6 +10623,9 @@
{
"target": "com.amazonaws.redshift#InvalidRetentionPeriodFault"
},
+ {
+ "target": "com.amazonaws.redshift#Ipv6CidrBlockNotFoundFault"
+ },
{
"target": "com.amazonaws.redshift#LimitExceededFault"
},
@@ -10978,6 +11019,12 @@
"traits": {
"smithy.api#documentation": "The ID of the Key Management Service (KMS) key used to encrypt and store the cluster's admin credentials secret. \n You can only use this parameter if ManageMasterPassword
is true.
"
}
+ },
+ "IpAddressType": {
+ "target": "com.amazonaws.redshift#String",
+ "traits": {
+ "smithy.api#documentation": "The IP address types that the cluster supports. Possible values are ipv4
and dualstack
.
"
+ }
}
},
"traits": {
@@ -11752,6 +11799,12 @@
"traits": {
"smithy.api#documentation": "The Availability Zone.
"
}
+ },
+ "Ipv6Address": {
+ "target": "com.amazonaws.redshift#String",
+ "traits": {
+ "smithy.api#documentation": "The IPv6 address of the network interface within the subnet.
"
+ }
}
},
"traits": {
@@ -15047,6 +15100,9 @@
{
"target": "com.amazonaws.redshift#InvalidVPCNetworkStateFault"
},
+ {
+ "target": "com.amazonaws.redshift#Ipv6CidrBlockNotFoundFault"
+ },
{
"target": "com.amazonaws.redshift#LimitExceededFault"
},
@@ -15299,6 +15355,12 @@
"traits": {
"smithy.api#documentation": "The ID of the Key Management Service (KMS) key used to encrypt and store the cluster's admin credentials secret. \n You can only use this parameter if ManageMasterPassword
is true.
"
}
+ },
+ "IpAddressType": {
+ "target": "com.amazonaws.redshift#String",
+ "traits": {
+ "smithy.api#documentation": "The IP address type for the cluster. Possible values are ipv4
and dualstack
.
"
+ }
}
},
"traits": {