@aws-cdk/aws-redshift-alpha 2.12.0-alpha.0 → 2.15.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +16 -3
- package/.jsii.tabl.json +35 -35
- package/lib/cluster.d.ts +71 -165
- package/lib/cluster.js +45 -26
- package/lib/database-options.d.ts +4 -11
- package/lib/database-options.js +1 -1
- package/lib/database-secret.d.ts +4 -13
- package/lib/database-secret.js +3 -7
- package/lib/endpoint.d.ts +4 -15
- package/lib/endpoint.js +3 -8
- package/lib/parameter-group.d.ts +9 -25
- package/lib/parameter-group.js +4 -10
- package/lib/subnet-group.d.ts +11 -33
- package/lib/subnet-group.js +4 -10
- package/lib/table.d.ts +43 -148
- package/lib/table.js +53 -28
- package/lib/user.d.ts +16 -76
- package/lib/user.js +5 -19
- package/package.json +8 -8
package/lib/cluster.d.ts
CHANGED
|
@@ -9,356 +9,280 @@ import { Endpoint } from './endpoint';
|
|
|
9
9
|
import { IClusterParameterGroup } from './parameter-group';
|
|
10
10
|
import { IClusterSubnetGroup } from './subnet-group';
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* @experimental
|
|
12
|
+
* Possible Node Types to use in the cluster
|
|
13
|
+
* used for defining {@link ClusterProps.nodeType}.
|
|
15
14
|
*/
|
|
16
15
|
export declare enum NodeType {
|
|
17
16
|
/**
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* @experimental
|
|
17
|
+
* ds2.xlarge
|
|
21
18
|
*/
|
|
22
19
|
DS2_XLARGE = "ds2.xlarge",
|
|
23
20
|
/**
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
* @experimental
|
|
21
|
+
* ds2.8xlarge
|
|
27
22
|
*/
|
|
28
23
|
DS2_8XLARGE = "ds2.8xlarge",
|
|
29
24
|
/**
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
* @experimental
|
|
25
|
+
* dc1.large
|
|
33
26
|
*/
|
|
34
27
|
DC1_LARGE = "dc1.large",
|
|
35
28
|
/**
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
* @experimental
|
|
29
|
+
* dc1.8xlarge
|
|
39
30
|
*/
|
|
40
31
|
DC1_8XLARGE = "dc1.8xlarge",
|
|
41
32
|
/**
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
* @experimental
|
|
33
|
+
* dc2.large
|
|
45
34
|
*/
|
|
46
35
|
DC2_LARGE = "dc2.large",
|
|
47
36
|
/**
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
* @experimental
|
|
37
|
+
* dc2.8xlarge
|
|
51
38
|
*/
|
|
52
39
|
DC2_8XLARGE = "dc2.8xlarge",
|
|
53
40
|
/**
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
* @experimental
|
|
41
|
+
* ra3.xlplus
|
|
57
42
|
*/
|
|
58
43
|
RA3_XLPLUS = "ra3.xlplus",
|
|
59
44
|
/**
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
* @experimental
|
|
45
|
+
* ra3.4xlarge
|
|
63
46
|
*/
|
|
64
47
|
RA3_4XLARGE = "ra3.4xlarge",
|
|
65
48
|
/**
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
* @experimental
|
|
49
|
+
* ra3.16xlarge
|
|
69
50
|
*/
|
|
70
51
|
RA3_16XLARGE = "ra3.16xlarge"
|
|
71
52
|
}
|
|
72
53
|
/**
|
|
73
|
-
*
|
|
74
|
-
*
|
|
54
|
+
* What cluster type to use.
|
|
75
55
|
* Used by {@link ClusterProps.clusterType}
|
|
76
|
-
*
|
|
77
|
-
* @experimental
|
|
78
56
|
*/
|
|
79
57
|
export declare enum ClusterType {
|
|
80
58
|
/**
|
|
81
|
-
*
|
|
82
|
-
*
|
|
83
|
-
* @experimental
|
|
59
|
+
* single-node cluster, the {@link ClusterProps.numberOfNodes} parameter is not required
|
|
84
60
|
*/
|
|
85
61
|
SINGLE_NODE = "single-node",
|
|
86
62
|
/**
|
|
87
|
-
*
|
|
88
|
-
*
|
|
89
|
-
* @experimental
|
|
63
|
+
* multi-node cluster, set the amount of nodes using {@link ClusterProps.numberOfNodes} parameter
|
|
90
64
|
*/
|
|
91
65
|
MULTI_NODE = "multi-node"
|
|
92
66
|
}
|
|
93
67
|
/**
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
* @experimental
|
|
68
|
+
* Username and password combination
|
|
97
69
|
*/
|
|
98
70
|
export interface Login {
|
|
99
71
|
/**
|
|
100
|
-
*
|
|
101
|
-
*
|
|
102
|
-
* @experimental
|
|
72
|
+
* Username
|
|
103
73
|
*/
|
|
104
74
|
readonly masterUsername: string;
|
|
105
75
|
/**
|
|
106
|
-
*
|
|
76
|
+
* Password
|
|
107
77
|
*
|
|
108
78
|
* Do not put passwords in your CDK code directly.
|
|
109
79
|
*
|
|
110
80
|
* @default a Secrets Manager generated password
|
|
111
|
-
* @experimental
|
|
112
81
|
*/
|
|
113
82
|
readonly masterPassword?: SecretValue;
|
|
114
83
|
/**
|
|
115
|
-
*
|
|
84
|
+
* KMS encryption key to encrypt the generated secret.
|
|
116
85
|
*
|
|
117
86
|
* @default default master key
|
|
118
|
-
* @experimental
|
|
119
87
|
*/
|
|
120
88
|
readonly encryptionKey?: kms.IKey;
|
|
121
89
|
}
|
|
122
90
|
/**
|
|
123
|
-
*
|
|
124
|
-
*
|
|
125
|
-
* @experimental
|
|
91
|
+
* Options to add the multi user rotation
|
|
126
92
|
*/
|
|
127
93
|
export interface RotationMultiUserOptions {
|
|
128
94
|
/**
|
|
129
|
-
*
|
|
130
|
-
*
|
|
131
|
-
* It must be a JSON string with the following format:
|
|
95
|
+
* The secret to rotate. It must be a JSON string with the following format:
|
|
132
96
|
* ```
|
|
133
97
|
* {
|
|
134
|
-
*
|
|
135
|
-
*
|
|
136
|
-
*
|
|
137
|
-
*
|
|
138
|
-
*
|
|
139
|
-
*
|
|
140
|
-
*
|
|
98
|
+
* "engine": <required: database engine>,
|
|
99
|
+
* "host": <required: instance host name>,
|
|
100
|
+
* "username": <required: username>,
|
|
101
|
+
* "password": <required: password>,
|
|
102
|
+
* "dbname": <optional: database name>,
|
|
103
|
+
* "port": <optional: if not specified, default port will be used>,
|
|
104
|
+
* "masterarn": <required: the arn of the master secret which will be used to create users/change passwords>
|
|
141
105
|
* }
|
|
142
106
|
* ```
|
|
143
|
-
*
|
|
144
|
-
* @experimental
|
|
145
107
|
*/
|
|
146
108
|
readonly secret: secretsmanager.ISecret;
|
|
147
109
|
/**
|
|
148
|
-
*
|
|
110
|
+
* Specifies the number of days after the previous rotation before
|
|
111
|
+
* Secrets Manager triggers the next automatic rotation.
|
|
149
112
|
*
|
|
150
113
|
* @default Duration.days(30)
|
|
151
|
-
* @experimental
|
|
152
114
|
*/
|
|
153
115
|
readonly automaticallyAfter?: Duration;
|
|
154
116
|
}
|
|
155
117
|
/**
|
|
156
|
-
*
|
|
157
|
-
*
|
|
118
|
+
* Create a Redshift Cluster with a given number of nodes.
|
|
158
119
|
* Implemented by {@link Cluster} via {@link ClusterBase}.
|
|
159
|
-
*
|
|
160
|
-
* @experimental
|
|
161
120
|
*/
|
|
162
121
|
export interface ICluster extends IResource, ec2.IConnectable, secretsmanager.ISecretAttachmentTarget {
|
|
163
122
|
/**
|
|
164
|
-
*
|
|
123
|
+
* Name of the cluster
|
|
165
124
|
*
|
|
166
|
-
* @experimental
|
|
167
125
|
* @attribute ClusterName
|
|
168
126
|
*/
|
|
169
127
|
readonly clusterName: string;
|
|
170
128
|
/**
|
|
171
|
-
*
|
|
129
|
+
* The endpoint to use for read/write operations
|
|
172
130
|
*
|
|
173
|
-
* @experimental
|
|
174
131
|
* @attribute EndpointAddress,EndpointPort
|
|
175
132
|
*/
|
|
176
133
|
readonly clusterEndpoint: Endpoint;
|
|
177
134
|
}
|
|
178
135
|
/**
|
|
179
|
-
*
|
|
180
|
-
*
|
|
181
|
-
* @experimental
|
|
136
|
+
* Properties that describe an existing cluster instance
|
|
182
137
|
*/
|
|
183
138
|
export interface ClusterAttributes {
|
|
184
139
|
/**
|
|
185
|
-
*
|
|
140
|
+
* The security groups of the redshift cluster
|
|
186
141
|
*
|
|
187
142
|
* @default no security groups will be attached to the import
|
|
188
|
-
* @experimental
|
|
189
143
|
*/
|
|
190
144
|
readonly securityGroups?: ec2.ISecurityGroup[];
|
|
191
145
|
/**
|
|
192
|
-
*
|
|
193
|
-
*
|
|
194
|
-
* @experimental
|
|
146
|
+
* Identifier for the cluster
|
|
195
147
|
*/
|
|
196
148
|
readonly clusterName: string;
|
|
197
149
|
/**
|
|
198
|
-
*
|
|
199
|
-
*
|
|
200
|
-
* @experimental
|
|
150
|
+
* Cluster endpoint address
|
|
201
151
|
*/
|
|
202
152
|
readonly clusterEndpointAddress: string;
|
|
203
153
|
/**
|
|
204
|
-
*
|
|
205
|
-
*
|
|
206
|
-
* @experimental
|
|
154
|
+
* Cluster endpoint port
|
|
207
155
|
*/
|
|
208
156
|
readonly clusterEndpointPort: number;
|
|
209
157
|
}
|
|
210
158
|
/**
|
|
211
|
-
*
|
|
212
|
-
*
|
|
213
|
-
* @experimental
|
|
159
|
+
* Properties for a new database cluster
|
|
214
160
|
*/
|
|
215
161
|
export interface ClusterProps {
|
|
216
162
|
/**
|
|
217
|
-
*
|
|
163
|
+
* An optional identifier for the cluster
|
|
218
164
|
*
|
|
219
165
|
* @default - A name is automatically generated.
|
|
220
|
-
* @experimental
|
|
221
166
|
*/
|
|
222
167
|
readonly clusterName?: string;
|
|
223
168
|
/**
|
|
224
|
-
*
|
|
169
|
+
* Additional parameters to pass to the database engine
|
|
170
|
+
* https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html
|
|
225
171
|
*
|
|
226
172
|
* @default - No parameter group.
|
|
227
|
-
* @experimental
|
|
228
173
|
*/
|
|
229
174
|
readonly parameterGroup?: IClusterParameterGroup;
|
|
230
175
|
/**
|
|
231
|
-
*
|
|
176
|
+
* Number of compute nodes in the cluster. Only specify this property for multi-node clusters.
|
|
232
177
|
*
|
|
233
178
|
* Value must be at least 2 and no more than 100.
|
|
234
179
|
*
|
|
235
180
|
* @default - 2 if `clusterType` is ClusterType.MULTI_NODE, undefined otherwise
|
|
236
|
-
* @experimental
|
|
237
181
|
*/
|
|
238
182
|
readonly numberOfNodes?: number;
|
|
239
183
|
/**
|
|
240
|
-
*
|
|
184
|
+
* The node type to be provisioned for the cluster.
|
|
241
185
|
*
|
|
242
186
|
* @default {@link NodeType.DC2_LARGE}
|
|
243
|
-
* @experimental
|
|
244
187
|
*/
|
|
245
188
|
readonly nodeType?: NodeType;
|
|
246
189
|
/**
|
|
247
|
-
*
|
|
190
|
+
* Settings for the individual instances that are launched
|
|
248
191
|
*
|
|
249
192
|
* @default {@link ClusterType.MULTI_NODE}
|
|
250
|
-
* @experimental
|
|
251
193
|
*/
|
|
252
194
|
readonly clusterType?: ClusterType;
|
|
253
195
|
/**
|
|
254
|
-
*
|
|
196
|
+
* What port to listen on
|
|
255
197
|
*
|
|
256
198
|
* @default - The default for the engine is used.
|
|
257
|
-
* @experimental
|
|
258
199
|
*/
|
|
259
200
|
readonly port?: number;
|
|
260
201
|
/**
|
|
261
|
-
*
|
|
202
|
+
* Whether to enable encryption of data at rest in the cluster.
|
|
262
203
|
*
|
|
263
204
|
* @default true
|
|
264
|
-
* @experimental
|
|
265
205
|
*/
|
|
266
206
|
readonly encrypted?: boolean;
|
|
267
207
|
/**
|
|
268
|
-
*
|
|
208
|
+
* The KMS key to use for encryption of data at rest.
|
|
269
209
|
*
|
|
270
210
|
* @default - AWS-managed key, if encryption at rest is enabled
|
|
271
|
-
* @experimental
|
|
272
211
|
*/
|
|
273
212
|
readonly encryptionKey?: kms.IKey;
|
|
274
213
|
/**
|
|
275
|
-
*
|
|
214
|
+
* A preferred maintenance window day/time range. Should be specified as a range ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC).
|
|
276
215
|
*
|
|
277
216
|
* Example: 'Sun:23:45-Mon:00:15'
|
|
278
217
|
*
|
|
279
218
|
* @default - 30-minute window selected at random from an 8-hour block of time for
|
|
280
219
|
* each AWS Region, occurring on a random day of the week.
|
|
281
220
|
* @see https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_UpgradeDBInstance.Maintenance.html#Concepts.DBMaintenance
|
|
282
|
-
* @experimental
|
|
283
221
|
*/
|
|
284
222
|
readonly preferredMaintenanceWindow?: string;
|
|
285
223
|
/**
|
|
286
|
-
*
|
|
287
|
-
*
|
|
288
|
-
* @experimental
|
|
224
|
+
* The VPC to place the cluster in.
|
|
289
225
|
*/
|
|
290
226
|
readonly vpc: ec2.IVpc;
|
|
291
227
|
/**
|
|
292
|
-
*
|
|
228
|
+
* Where to place the instances within the VPC
|
|
293
229
|
*
|
|
294
230
|
* @default - private subnets
|
|
295
|
-
* @experimental
|
|
296
231
|
*/
|
|
297
232
|
readonly vpcSubnets?: ec2.SubnetSelection;
|
|
298
233
|
/**
|
|
299
|
-
*
|
|
234
|
+
* Security group.
|
|
300
235
|
*
|
|
301
236
|
* @default - a new security group is created.
|
|
302
|
-
* @experimental
|
|
303
237
|
*/
|
|
304
238
|
readonly securityGroups?: ec2.ISecurityGroup[];
|
|
305
239
|
/**
|
|
306
|
-
*
|
|
240
|
+
* A cluster subnet group to use with this cluster.
|
|
307
241
|
*
|
|
308
242
|
* @default - a new subnet group will be created.
|
|
309
|
-
* @experimental
|
|
310
243
|
*/
|
|
311
244
|
readonly subnetGroup?: IClusterSubnetGroup;
|
|
312
245
|
/**
|
|
313
|
-
*
|
|
314
|
-
*
|
|
315
|
-
* @experimental
|
|
246
|
+
* Username and password for the administrative user
|
|
316
247
|
*/
|
|
317
248
|
readonly masterUser: Login;
|
|
318
249
|
/**
|
|
319
|
-
*
|
|
320
|
-
*
|
|
250
|
+
* A list of AWS Identity and Access Management (IAM) role that can be used by the cluster to access other AWS services.
|
|
321
251
|
* Specify a maximum of 10 roles.
|
|
322
252
|
*
|
|
323
253
|
* @default - No role is attached to the cluster.
|
|
324
|
-
* @experimental
|
|
325
254
|
*/
|
|
326
255
|
readonly roles?: iam.IRole[];
|
|
327
256
|
/**
|
|
328
|
-
*
|
|
257
|
+
* Name of a database which is automatically created inside the cluster
|
|
329
258
|
*
|
|
330
259
|
* @default - default_db
|
|
331
|
-
* @experimental
|
|
332
260
|
*/
|
|
333
261
|
readonly defaultDatabaseName?: string;
|
|
334
262
|
/**
|
|
335
|
-
*
|
|
336
|
-
*
|
|
263
|
+
* Bucket to send logs to.
|
|
337
264
|
* Logging information includes queries and connection attempts, for the specified Amazon Redshift cluster.
|
|
338
265
|
*
|
|
339
266
|
* @default - No Logs
|
|
340
|
-
* @experimental
|
|
341
267
|
*/
|
|
342
268
|
readonly loggingBucket?: s3.IBucket;
|
|
343
269
|
/**
|
|
344
|
-
*
|
|
270
|
+
* Prefix used for logging
|
|
345
271
|
*
|
|
346
272
|
* @default - no prefix
|
|
347
|
-
* @experimental
|
|
348
273
|
*/
|
|
349
274
|
readonly loggingKeyPrefix?: string;
|
|
350
275
|
/**
|
|
351
|
-
*
|
|
276
|
+
* The removal policy to apply when the cluster and its instances are removed
|
|
277
|
+
* from the stack or replaced during an update.
|
|
352
278
|
*
|
|
353
279
|
* @default RemovalPolicy.RETAIN
|
|
354
|
-
* @experimental
|
|
355
280
|
*/
|
|
356
281
|
readonly removalPolicy?: RemovalPolicy;
|
|
357
282
|
/**
|
|
358
|
-
*
|
|
283
|
+
* Whether to make cluster publicly accessible.
|
|
359
284
|
*
|
|
360
285
|
* @default false
|
|
361
|
-
* @experimental
|
|
362
286
|
*/
|
|
363
287
|
readonly publiclyAccessible?: boolean;
|
|
364
288
|
}
|
|
@@ -379,47 +303,34 @@ declare abstract class ClusterBase extends Resource implements ICluster {
|
|
|
379
303
|
*/
|
|
380
304
|
abstract readonly connections: ec2.Connections;
|
|
381
305
|
/**
|
|
382
|
-
*
|
|
383
|
-
*
|
|
384
|
-
* @experimental
|
|
306
|
+
* Renders the secret attachment target specifications.
|
|
385
307
|
*/
|
|
386
308
|
asSecretAttachmentTarget(): secretsmanager.SecretAttachmentTargetProps;
|
|
387
309
|
}
|
|
388
310
|
/**
|
|
389
|
-
*
|
|
311
|
+
* Create a Redshift cluster a given number of nodes.
|
|
390
312
|
*
|
|
391
|
-
* @experimental
|
|
392
313
|
* @resource AWS::Redshift::Cluster
|
|
393
314
|
*/
|
|
394
315
|
export declare class Cluster extends ClusterBase {
|
|
395
316
|
/**
|
|
396
|
-
*
|
|
397
|
-
*
|
|
398
|
-
* @experimental
|
|
317
|
+
* Import an existing DatabaseCluster from properties
|
|
399
318
|
*/
|
|
400
319
|
static fromClusterAttributes(scope: Construct, id: string, attrs: ClusterAttributes): ICluster;
|
|
401
320
|
/**
|
|
402
|
-
*
|
|
403
|
-
*
|
|
404
|
-
* @experimental
|
|
321
|
+
* Identifier of the cluster
|
|
405
322
|
*/
|
|
406
323
|
readonly clusterName: string;
|
|
407
324
|
/**
|
|
408
|
-
*
|
|
409
|
-
*
|
|
410
|
-
* @experimental
|
|
325
|
+
* The endpoint to use for read/write operations
|
|
411
326
|
*/
|
|
412
327
|
readonly clusterEndpoint: Endpoint;
|
|
413
328
|
/**
|
|
414
|
-
*
|
|
415
|
-
*
|
|
416
|
-
* @experimental
|
|
329
|
+
* Access to the network connections
|
|
417
330
|
*/
|
|
418
331
|
readonly connections: ec2.Connections;
|
|
419
332
|
/**
|
|
420
|
-
*
|
|
421
|
-
*
|
|
422
|
-
* @experimental
|
|
333
|
+
* The secret attached to this cluster
|
|
423
334
|
*/
|
|
424
335
|
readonly secret?: secretsmanager.ISecret;
|
|
425
336
|
private readonly singleUserRotationApplication;
|
|
@@ -432,21 +343,16 @@ export declare class Cluster extends ClusterBase {
|
|
|
432
343
|
* The subnets used by the DB subnet group.
|
|
433
344
|
*/
|
|
434
345
|
private readonly vpcSubnets?;
|
|
435
|
-
/**
|
|
436
|
-
* @experimental
|
|
437
|
-
*/
|
|
438
346
|
constructor(scope: Construct, id: string, props: ClusterProps);
|
|
439
347
|
/**
|
|
440
|
-
*
|
|
348
|
+
* Adds the single user rotation of the master password to this cluster.
|
|
441
349
|
*
|
|
442
|
-
* @param automaticallyAfter Specifies the number of days after the previous rotation
|
|
443
|
-
*
|
|
350
|
+
* @param [automaticallyAfter=Duration.days(30)] Specifies the number of days after the previous rotation
|
|
351
|
+
* before Secrets Manager triggers the next automatic rotation.
|
|
444
352
|
*/
|
|
445
353
|
addRotationSingleUser(automaticallyAfter?: Duration): secretsmanager.SecretRotation;
|
|
446
354
|
/**
|
|
447
|
-
*
|
|
448
|
-
*
|
|
449
|
-
* @experimental
|
|
355
|
+
* Adds the multi user rotation to this cluster.
|
|
450
356
|
*/
|
|
451
357
|
addRotationMultiUser(id: string, options: RotationMultiUserOptions): secretsmanager.SecretRotation;
|
|
452
358
|
private validateNodeCount;
|