Skip to content

Commit b6495b0

Browse files
author
awstools
committed
feat(client-redshift-serverless): Adds dualstack support for Redshift Serverless workgroup.
1 parent cada4c3 commit b6495b0

14 files changed

+149
-7
lines changed

clients/client-redshift-serverless/src/auth/httpAuthSchemeProvider.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ function createAwsAuthSigv4HttpAuthOption(authParameters: RedshiftServerlessHttp
6060
name: "redshift-serverless",
6161
region: authParameters.region,
6262
},
63-
propertiesExtractor: (config: RedshiftServerlessClientConfig, context) => ({
63+
propertiesExtractor: (config: Partial<RedshiftServerlessClientConfig>, context) => ({
6464
/**
6565
* @internal
6666
*/

clients/client-redshift-serverless/src/commands/CreateEndpointAccessCommand.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ export interface CreateEndpointAccessCommandOutput extends CreateEndpointAccessR
7878
* // subnetId: "STRING_VALUE",
7979
* // privateIpAddress: "STRING_VALUE",
8080
* // availabilityZone: "STRING_VALUE",
81+
* // ipv6Address: "STRING_VALUE",
8182
* // },
8283
* // ],
8384
* // },

clients/client-redshift-serverless/src/commands/CreateWorkgroupCommand.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ export interface CreateWorkgroupCommandOutput extends CreateWorkgroupResponse, _
6565
* ],
6666
* port: Number("int"),
6767
* maxCapacity: Number("int"),
68+
* ipAddressType: "STRING_VALUE",
6869
* };
6970
* const command = new CreateWorkgroupCommand(input);
7071
* const response = await client.send(command);
@@ -102,6 +103,7 @@ export interface CreateWorkgroupCommandOutput extends CreateWorkgroupResponse, _
102103
* // subnetId: "STRING_VALUE",
103104
* // privateIpAddress: "STRING_VALUE",
104105
* // availabilityZone: "STRING_VALUE",
106+
* // ipv6Address: "STRING_VALUE",
105107
* // },
106108
* // ],
107109
* // },
@@ -119,6 +121,7 @@ export interface CreateWorkgroupCommandOutput extends CreateWorkgroupResponse, _
119121
* // crossAccountVpcs: [ // VpcIds
120122
* // "STRING_VALUE",
121123
* // ],
124+
* // ipAddressType: "STRING_VALUE",
122125
* // },
123126
* // };
124127
*
@@ -139,6 +142,9 @@ export interface CreateWorkgroupCommandOutput extends CreateWorkgroupResponse, _
139142
* @throws {@link InternalServerException} (server fault)
140143
* <p>The request processing has failed because of an unknown error, exception or failure.</p>
141144
*
145+
* @throws {@link Ipv6CidrBlockNotFoundException} (client fault)
146+
* <p>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.</p>
147+
*
142148
* @throws {@link ResourceNotFoundException} (client fault)
143149
* <p>The resource could not be found.</p>
144150
*

clients/client-redshift-serverless/src/commands/DeleteEndpointAccessCommand.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ export interface DeleteEndpointAccessCommandOutput extends DeleteEndpointAccessR
7070
* // subnetId: "STRING_VALUE",
7171
* // privateIpAddress: "STRING_VALUE",
7272
* // availabilityZone: "STRING_VALUE",
73+
* // ipv6Address: "STRING_VALUE",
7374
* // },
7475
* // ],
7576
* // },

clients/client-redshift-serverless/src/commands/DeleteWorkgroupCommand.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ export interface DeleteWorkgroupCommandOutput extends DeleteWorkgroupResponse, _
7878
* // subnetId: "STRING_VALUE",
7979
* // privateIpAddress: "STRING_VALUE",
8080
* // availabilityZone: "STRING_VALUE",
81+
* // ipv6Address: "STRING_VALUE",
8182
* // },
8283
* // ],
8384
* // },
@@ -95,6 +96,7 @@ export interface DeleteWorkgroupCommandOutput extends DeleteWorkgroupResponse, _
9596
* // crossAccountVpcs: [ // VpcIds
9697
* // "STRING_VALUE",
9798
* // ],
99+
* // ipAddressType: "STRING_VALUE",
98100
* // },
99101
* // };
100102
*

clients/client-redshift-serverless/src/commands/GetEndpointAccessCommand.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ export interface GetEndpointAccessCommandOutput extends GetEndpointAccessRespons
7070
* // subnetId: "STRING_VALUE",
7171
* // privateIpAddress: "STRING_VALUE",
7272
* // availabilityZone: "STRING_VALUE",
73+
* // ipv6Address: "STRING_VALUE",
7374
* // },
7475
* // ],
7576
* // },

clients/client-redshift-serverless/src/commands/GetWorkgroupCommand.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ export interface GetWorkgroupCommandOutput extends GetWorkgroupResponse, __Metad
7878
* // subnetId: "STRING_VALUE",
7979
* // privateIpAddress: "STRING_VALUE",
8080
* // availabilityZone: "STRING_VALUE",
81+
* // ipv6Address: "STRING_VALUE",
8182
* // },
8283
* // ],
8384
* // },
@@ -95,6 +96,7 @@ export interface GetWorkgroupCommandOutput extends GetWorkgroupResponse, __Metad
9596
* // crossAccountVpcs: [ // VpcIds
9697
* // "STRING_VALUE",
9798
* // ],
99+
* // ipAddressType: "STRING_VALUE",
98100
* // },
99101
* // };
100102
*

clients/client-redshift-serverless/src/commands/ListEndpointAccessCommand.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ export interface ListEndpointAccessCommandOutput extends ListEndpointAccessRespo
7676
* // subnetId: "STRING_VALUE",
7777
* // privateIpAddress: "STRING_VALUE",
7878
* // availabilityZone: "STRING_VALUE",
79+
* // ipv6Address: "STRING_VALUE",
7980
* // },
8081
* // ],
8182
* // },

clients/client-redshift-serverless/src/commands/ListWorkgroupsCommand.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ export interface ListWorkgroupsCommandOutput extends ListWorkgroupsResponse, __M
8282
* // subnetId: "STRING_VALUE",
8383
* // privateIpAddress: "STRING_VALUE",
8484
* // availabilityZone: "STRING_VALUE",
85+
* // ipv6Address: "STRING_VALUE",
8586
* // },
8687
* // ],
8788
* // },
@@ -99,6 +100,7 @@ export interface ListWorkgroupsCommandOutput extends ListWorkgroupsResponse, __M
99100
* // crossAccountVpcs: [ // VpcIds
100101
* // "STRING_VALUE",
101102
* // ],
103+
* // ipAddressType: "STRING_VALUE",
102104
* // },
103105
* // ],
104106
* // };

clients/client-redshift-serverless/src/commands/UpdateEndpointAccessCommand.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ export interface UpdateEndpointAccessCommandOutput extends UpdateEndpointAccessR
7373
* // subnetId: "STRING_VALUE",
7474
* // privateIpAddress: "STRING_VALUE",
7575
* // availabilityZone: "STRING_VALUE",
76+
* // ipv6Address: "STRING_VALUE",
7677
* // },
7778
* // ],
7879
* // },

clients/client-redshift-serverless/src/commands/UpdateWorkgroupCommand.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ export interface UpdateWorkgroupCommandOutput extends UpdateWorkgroupResponse, _
5959
* ],
6060
* port: Number("int"),
6161
* maxCapacity: Number("int"),
62+
* ipAddressType: "STRING_VALUE",
6263
* };
6364
* const command = new UpdateWorkgroupCommand(input);
6465
* const response = await client.send(command);
@@ -96,6 +97,7 @@ export interface UpdateWorkgroupCommandOutput extends UpdateWorkgroupResponse, _
9697
* // subnetId: "STRING_VALUE",
9798
* // privateIpAddress: "STRING_VALUE",
9899
* // availabilityZone: "STRING_VALUE",
100+
* // ipv6Address: "STRING_VALUE",
99101
* // },
100102
* // ],
101103
* // },
@@ -113,6 +115,7 @@ export interface UpdateWorkgroupCommandOutput extends UpdateWorkgroupResponse, _
113115
* // crossAccountVpcs: [ // VpcIds
114116
* // "STRING_VALUE",
115117
* // ],
118+
* // ipAddressType: "STRING_VALUE",
116119
* // },
117120
* // };
118121
*
@@ -133,6 +136,9 @@ export interface UpdateWorkgroupCommandOutput extends UpdateWorkgroupResponse, _
133136
* @throws {@link InternalServerException} (server fault)
134137
* <p>The request processing has failed because of an unknown error, exception or failure.</p>
135138
*
139+
* @throws {@link Ipv6CidrBlockNotFoundException} (client fault)
140+
* <p>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.</p>
141+
*
136142
* @throws {@link ResourceNotFoundException} (client fault)
137143
* <p>The resource could not be found.</p>
138144
*

clients/client-redshift-serverless/src/models/models_0.ts

Lines changed: 47 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -572,6 +572,12 @@ export interface NetworkInterface {
572572
* @public
573573
*/
574574
availabilityZone?: string;
575+
576+
/**
577+
* <p>The IPv6 address of the network interface within the subnet.</p>
578+
* @public
579+
*/
580+
ipv6Address?: string;
575581
}
576582

577583
/**
@@ -1072,7 +1078,7 @@ export interface CreateScheduledActionRequest {
10721078
* <p>The ARN of the IAM role to assume to run the scheduled action. This IAM role must have permission to run the Amazon Redshift Serverless API operation in the scheduled action.
10731079
* This IAM role must allow the Amazon Redshift scheduler to schedule creating snapshots. (Principal scheduler.redshift.amazonaws.com) to assume permissions on your behalf.
10741080
* For more information about the IAM role to use with the Amazon Redshift scheduler, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html">Using Identity-Based Policies for
1075-
* Amazon Redshift</a> in the Amazon Redshift Cluster Management Guide</p>
1081+
* Amazon Redshift</a> in the Amazon Redshift Management Guide</p>
10761082
* @public
10771083
*/
10781084
roleArn: string | undefined;
@@ -1165,7 +1171,7 @@ export interface ScheduledActionResponse {
11651171
* <p>The ARN of the IAM role to assume to run the scheduled action. This IAM role must have permission to run the Amazon Redshift Serverless API operation in the scheduled action.
11661172
* This IAM role must allow the Amazon Redshift scheduler to schedule creating snapshots. (Principal scheduler.redshift.amazonaws.com) to assume permissions on your behalf.
11671173
* For more information about the IAM role to use with the Amazon Redshift scheduler, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html">Using Identity-Based Policies for
1168-
* Amazon Redshift</a> in the Amazon Redshift Cluster Management Guide</p>
1174+
* Amazon Redshift</a> in the Amazon Redshift Management Guide</p>
11691175
* @public
11701176
*/
11711177
roleArn?: string;
@@ -1556,6 +1562,12 @@ export interface CreateWorkgroupRequest {
15561562
* @public
15571563
*/
15581564
maxCapacity?: number;
1565+
1566+
/**
1567+
* <p>The IP address type that the workgroup supports. Possible values are <code>ipv4</code> and <code>dualstack</code>.</p>
1568+
* @public
1569+
*/
1570+
ipAddressType?: string;
15591571
}
15601572

15611573
/**
@@ -1733,6 +1745,12 @@ export interface Workgroup {
17331745
* @public
17341746
*/
17351747
crossAccountVpcs?: string[];
1748+
1749+
/**
1750+
* <p>The IP address type that the workgroup supports. Possible values are <code>ipv4</code> and <code>dualstack</code>.</p>
1751+
* @public
1752+
*/
1753+
ipAddressType?: string;
17361754
}
17371755

17381756
/**
@@ -1767,6 +1785,26 @@ export class InsufficientCapacityException extends __BaseException {
17671785
}
17681786
}
17691787

1788+
/**
1789+
* <p>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.</p>
1790+
* @public
1791+
*/
1792+
export class Ipv6CidrBlockNotFoundException extends __BaseException {
1793+
readonly name: "Ipv6CidrBlockNotFoundException" = "Ipv6CidrBlockNotFoundException";
1794+
readonly $fault: "client" = "client";
1795+
/**
1796+
* @internal
1797+
*/
1798+
constructor(opts: __ExceptionOptionType<Ipv6CidrBlockNotFoundException, __BaseException>) {
1799+
super({
1800+
name: "Ipv6CidrBlockNotFoundException",
1801+
$fault: "client",
1802+
...opts,
1803+
});
1804+
Object.setPrototypeOf(this, Ipv6CidrBlockNotFoundException.prototype);
1805+
}
1806+
}
1807+
17701808
/**
17711809
* @public
17721810
*/
@@ -3343,7 +3381,7 @@ export interface UpdateScheduledActionRequest {
33433381
* <p>The ARN of the IAM role to assume to run the scheduled action. This IAM role must have permission to run the Amazon Redshift Serverless API operation in the scheduled action.
33443382
* This IAM role must allow the Amazon Redshift scheduler to schedule creating snapshots (Principal scheduler.redshift.amazonaws.com) to assume permissions on your behalf.
33453383
* For more information about the IAM role to use with the Amazon Redshift scheduler, see <a href="https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html">Using Identity-Based Policies for
3346-
* Amazon Redshift</a> in the Amazon Redshift Cluster Management Guide</p>
3384+
* Amazon Redshift</a> in the Amazon Redshift Management Guide</p>
33473385
* @public
33483386
*/
33493387
roleArn?: string;
@@ -3788,6 +3826,12 @@ export interface UpdateWorkgroupRequest {
37883826
* @public
37893827
*/
37903828
maxCapacity?: number;
3829+
3830+
/**
3831+
* <p>The IP address type that the workgroup supports. Possible values are <code>ipv4</code> and <code>dualstack</code>.</p>
3832+
* @public
3833+
*/
3834+
ipAddressType?: string;
37913835
}
37923836

37933837
/**

clients/client-redshift-serverless/src/protocols/Aws_json1_1.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,7 @@ import {
219219
InsufficientCapacityException,
220220
InternalServerException,
221221
InvalidPaginationException,
222+
Ipv6CidrBlockNotFoundException,
222223
ListCustomDomainAssociationsRequest,
223224
ListCustomDomainAssociationsResponse,
224225
ListEndpointAccessRequest,
@@ -2132,6 +2133,9 @@ const de_CommandError = async (output: __HttpResponse, context: __SerdeContext):
21322133
case "InsufficientCapacityException":
21332134
case "com.amazonaws.redshiftserverless#InsufficientCapacityException":
21342135
throw await de_InsufficientCapacityExceptionRes(parsedOutput, context);
2136+
case "Ipv6CidrBlockNotFoundException":
2137+
case "com.amazonaws.redshiftserverless#Ipv6CidrBlockNotFoundException":
2138+
throw await de_Ipv6CidrBlockNotFoundExceptionRes(parsedOutput, context);
21352139
case "InvalidPaginationException":
21362140
case "com.amazonaws.redshiftserverless#InvalidPaginationException":
21372141
throw await de_InvalidPaginationExceptionRes(parsedOutput, context);
@@ -2222,6 +2226,22 @@ const de_InvalidPaginationExceptionRes = async (
22222226
return __decorateServiceException(exception, body);
22232227
};
22242228

2229+
/**
2230+
* deserializeAws_json1_1Ipv6CidrBlockNotFoundExceptionRes
2231+
*/
2232+
const de_Ipv6CidrBlockNotFoundExceptionRes = async (
2233+
parsedOutput: any,
2234+
context: __SerdeContext
2235+
): Promise<Ipv6CidrBlockNotFoundException> => {
2236+
const body = parsedOutput.body;
2237+
const deserialized: any = _json(body);
2238+
const exception = new Ipv6CidrBlockNotFoundException({
2239+
$metadata: deserializeMetadata(parsedOutput),
2240+
...deserialized,
2241+
});
2242+
return __decorateServiceException(exception, body);
2243+
};
2244+
22252245
/**
22262246
* deserializeAws_json1_1ResourceNotFoundExceptionRes
22272247
*/
@@ -2794,6 +2814,8 @@ const de_GetWorkgroupResponse = (output: any, context: __SerdeContext): GetWorkg
27942814

27952815
// de_InvalidPaginationException omitted.
27962816

2817+
// de_Ipv6CidrBlockNotFoundException omitted.
2818+
27972819
/**
27982820
* deserializeAws_json1_1ListCustomDomainAssociationsResponse
27992821
*/
@@ -3240,6 +3262,7 @@ const de_Workgroup = (output: any, context: __SerdeContext): Workgroup => {
32403262
customDomainName: __expectString,
32413263
endpoint: _json,
32423264
enhancedVpcRouting: __expectBoolean,
3265+
ipAddressType: __expectString,
32433266
maxCapacity: __expectInt32,
32443267
namespaceName: __expectString,
32453268
patchVersion: __expectString,

0 commit comments

Comments
 (0)