@aws-cdk/aws-redshift-alpha 2.0.0-alpha.1

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.
Files changed (45) hide show
  1. package/.jsii +6985 -0
  2. package/LICENSE +201 -0
  3. package/NOTICE +2 -0
  4. package/README.md +247 -0
  5. package/lib/cluster.d.ts +454 -0
  6. package/lib/cluster.js +231 -0
  7. package/lib/database-options.d.ts +30 -0
  8. package/lib/database-options.js +3 -0
  9. package/lib/database-secret.d.ts +35 -0
  10. package/lib/database-secret.js +32 -0
  11. package/lib/endpoint.d.ts +31 -0
  12. package/lib/endpoint.js +28 -0
  13. package/lib/index.d.ts +8 -0
  14. package/lib/index.js +22 -0
  15. package/lib/parameter-group.d.ts +72 -0
  16. package/lib/parameter-group.js +52 -0
  17. package/lib/private/database-query-provider/handler-name.d.ts +5 -0
  18. package/lib/private/database-query-provider/handler-name.js +10 -0
  19. package/lib/private/database-query-provider/index.d.ts +2 -0
  20. package/lib/private/database-query-provider/index.js +21 -0
  21. package/lib/private/database-query-provider/privileges.d.ts +6 -0
  22. package/lib/private/database-query-provider/privileges.js +57 -0
  23. package/lib/private/database-query-provider/table.d.ts +6 -0
  24. package/lib/private/database-query-provider/table.js +56 -0
  25. package/lib/private/database-query-provider/user.d.ts +9 -0
  26. package/lib/private/database-query-provider/user.js +69 -0
  27. package/lib/private/database-query-provider/util.d.ts +4 -0
  28. package/lib/private/database-query-provider/util.js +41 -0
  29. package/lib/private/database-query.d.ts +24 -0
  30. package/lib/private/database-query.js +78 -0
  31. package/lib/private/handler-props.d.ts +26 -0
  32. package/lib/private/handler-props.js +3 -0
  33. package/lib/private/privileges.d.ts +48 -0
  34. package/lib/private/privileges.js +64 -0
  35. package/lib/redshift-canned-metrics.generated.d.ts +192 -0
  36. package/lib/redshift-canned-metrics.generated.js +161 -0
  37. package/lib/subnet-group.d.ts +74 -0
  38. package/lib/subnet-group.js +49 -0
  39. package/lib/table.d.ts +241 -0
  40. package/lib/table.js +104 -0
  41. package/lib/user.d.ts +174 -0
  42. package/lib/user.js +102 -0
  43. package/package.json +124 -0
  44. package/rosetta/cluster.ts-fixture +21 -0
  45. package/rosetta/default.ts-fixture +12 -0
@@ -0,0 +1,192 @@
1
+ export declare class RedshiftMetrics {
2
+ static cpuUtilizationAverage(dimensions: {
3
+ ClusterIdentifier: string;
4
+ }): {
5
+ namespace: string;
6
+ metricName: string;
7
+ dimensions: {
8
+ ClusterIdentifier: string;
9
+ };
10
+ statistic: string;
11
+ };
12
+ static percentageDiskSpaceUsedAverage(dimensions: {
13
+ ClusterIdentifier: string;
14
+ }): {
15
+ namespace: string;
16
+ metricName: string;
17
+ dimensions: {
18
+ ClusterIdentifier: string;
19
+ };
20
+ statistic: string;
21
+ };
22
+ static databaseConnectionsAverage(dimensions: {
23
+ ClusterIdentifier: string;
24
+ }): {
25
+ namespace: string;
26
+ metricName: string;
27
+ dimensions: {
28
+ ClusterIdentifier: string;
29
+ };
30
+ statistic: string;
31
+ };
32
+ static healthStatusSum(dimensions: {
33
+ ClusterIdentifier: string;
34
+ }): {
35
+ namespace: string;
36
+ metricName: string;
37
+ dimensions: {
38
+ ClusterIdentifier: string;
39
+ };
40
+ statistic: string;
41
+ };
42
+ static maintenanceModeSum(dimensions: {
43
+ ClusterIdentifier: string;
44
+ }): {
45
+ namespace: string;
46
+ metricName: string;
47
+ dimensions: {
48
+ ClusterIdentifier: string;
49
+ };
50
+ statistic: string;
51
+ };
52
+ static networkReceiveThroughputSum(dimensions: {
53
+ ClusterIdentifier: string;
54
+ }): {
55
+ namespace: string;
56
+ metricName: string;
57
+ dimensions: {
58
+ ClusterIdentifier: string;
59
+ };
60
+ statistic: string;
61
+ };
62
+ static networkTransmitThroughputSum(dimensions: {
63
+ ClusterIdentifier: string;
64
+ }): {
65
+ namespace: string;
66
+ metricName: string;
67
+ dimensions: {
68
+ ClusterIdentifier: string;
69
+ };
70
+ statistic: string;
71
+ };
72
+ static queriesCompletedPerSecondSum(dimensions: {
73
+ ClusterIdentifier: string;
74
+ }): {
75
+ namespace: string;
76
+ metricName: string;
77
+ dimensions: {
78
+ ClusterIdentifier: string;
79
+ };
80
+ statistic: string;
81
+ };
82
+ static queryDurationAverage(dimensions: {
83
+ ClusterIdentifier: string;
84
+ }): {
85
+ namespace: string;
86
+ metricName: string;
87
+ dimensions: {
88
+ ClusterIdentifier: string;
89
+ };
90
+ statistic: string;
91
+ };
92
+ static queryRuntimeBreakdownSum(dimensions: {
93
+ ClusterIdentifier: string;
94
+ }): {
95
+ namespace: string;
96
+ metricName: string;
97
+ dimensions: {
98
+ ClusterIdentifier: string;
99
+ };
100
+ statistic: string;
101
+ };
102
+ static readIopsSum(dimensions: {
103
+ ClusterIdentifier: string;
104
+ }): {
105
+ namespace: string;
106
+ metricName: string;
107
+ dimensions: {
108
+ ClusterIdentifier: string;
109
+ };
110
+ statistic: string;
111
+ };
112
+ static readLatencyAverage(dimensions: {
113
+ ClusterIdentifier: string;
114
+ }): {
115
+ namespace: string;
116
+ metricName: string;
117
+ dimensions: {
118
+ ClusterIdentifier: string;
119
+ };
120
+ statistic: string;
121
+ };
122
+ static readThroughputSum(dimensions: {
123
+ ClusterIdentifier: string;
124
+ }): {
125
+ namespace: string;
126
+ metricName: string;
127
+ dimensions: {
128
+ ClusterIdentifier: string;
129
+ };
130
+ statistic: string;
131
+ };
132
+ static wlmQueriesCompletedPerSecondAverage(dimensions: {
133
+ ClusterIdentifier: string;
134
+ }): {
135
+ namespace: string;
136
+ metricName: string;
137
+ dimensions: {
138
+ ClusterIdentifier: string;
139
+ };
140
+ statistic: string;
141
+ };
142
+ static wlmQueryDurationAverage(dimensions: {
143
+ ClusterIdentifier: string;
144
+ }): {
145
+ namespace: string;
146
+ metricName: string;
147
+ dimensions: {
148
+ ClusterIdentifier: string;
149
+ };
150
+ statistic: string;
151
+ };
152
+ static wlmQueueLengthSum(dimensions: {
153
+ ClusterIdentifier: string;
154
+ }): {
155
+ namespace: string;
156
+ metricName: string;
157
+ dimensions: {
158
+ ClusterIdentifier: string;
159
+ };
160
+ statistic: string;
161
+ };
162
+ static writeIopsSum(dimensions: {
163
+ ClusterIdentifier: string;
164
+ }): {
165
+ namespace: string;
166
+ metricName: string;
167
+ dimensions: {
168
+ ClusterIdentifier: string;
169
+ };
170
+ statistic: string;
171
+ };
172
+ static writeLatencyAverage(dimensions: {
173
+ ClusterIdentifier: string;
174
+ }): {
175
+ namespace: string;
176
+ metricName: string;
177
+ dimensions: {
178
+ ClusterIdentifier: string;
179
+ };
180
+ statistic: string;
181
+ };
182
+ static writeThroughputSum(dimensions: {
183
+ ClusterIdentifier: string;
184
+ }): {
185
+ namespace: string;
186
+ metricName: string;
187
+ dimensions: {
188
+ ClusterIdentifier: string;
189
+ };
190
+ statistic: string;
191
+ };
192
+ }
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+ // Copyright 2012-2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.RedshiftMetrics = void 0;
5
+ /* eslint-disable max-len */ // This is generated code - line lengths are difficult to control
6
+ class RedshiftMetrics {
7
+ static cpuUtilizationAverage(dimensions) {
8
+ return {
9
+ namespace: 'AWS/Redshift',
10
+ metricName: 'CPUUtilization',
11
+ dimensions,
12
+ statistic: 'Average',
13
+ };
14
+ }
15
+ static percentageDiskSpaceUsedAverage(dimensions) {
16
+ return {
17
+ namespace: 'AWS/Redshift',
18
+ metricName: 'PercentageDiskSpaceUsed',
19
+ dimensions,
20
+ statistic: 'Average',
21
+ };
22
+ }
23
+ static databaseConnectionsAverage(dimensions) {
24
+ return {
25
+ namespace: 'AWS/Redshift',
26
+ metricName: 'DatabaseConnections',
27
+ dimensions,
28
+ statistic: 'Average',
29
+ };
30
+ }
31
+ static healthStatusSum(dimensions) {
32
+ return {
33
+ namespace: 'AWS/Redshift',
34
+ metricName: 'HealthStatus',
35
+ dimensions,
36
+ statistic: 'Sum',
37
+ };
38
+ }
39
+ static maintenanceModeSum(dimensions) {
40
+ return {
41
+ namespace: 'AWS/Redshift',
42
+ metricName: 'MaintenanceMode',
43
+ dimensions,
44
+ statistic: 'Sum',
45
+ };
46
+ }
47
+ static networkReceiveThroughputSum(dimensions) {
48
+ return {
49
+ namespace: 'AWS/Redshift',
50
+ metricName: 'NetworkReceiveThroughput',
51
+ dimensions,
52
+ statistic: 'Sum',
53
+ };
54
+ }
55
+ static networkTransmitThroughputSum(dimensions) {
56
+ return {
57
+ namespace: 'AWS/Redshift',
58
+ metricName: 'NetworkTransmitThroughput',
59
+ dimensions,
60
+ statistic: 'Sum',
61
+ };
62
+ }
63
+ static queriesCompletedPerSecondSum(dimensions) {
64
+ return {
65
+ namespace: 'AWS/Redshift',
66
+ metricName: 'QueriesCompletedPerSecond',
67
+ dimensions,
68
+ statistic: 'Sum',
69
+ };
70
+ }
71
+ static queryDurationAverage(dimensions) {
72
+ return {
73
+ namespace: 'AWS/Redshift',
74
+ metricName: 'QueryDuration',
75
+ dimensions,
76
+ statistic: 'Average',
77
+ };
78
+ }
79
+ static queryRuntimeBreakdownSum(dimensions) {
80
+ return {
81
+ namespace: 'AWS/Redshift',
82
+ metricName: 'QueryRuntimeBreakdown',
83
+ dimensions,
84
+ statistic: 'Sum',
85
+ };
86
+ }
87
+ static readIopsSum(dimensions) {
88
+ return {
89
+ namespace: 'AWS/Redshift',
90
+ metricName: 'ReadIOPS',
91
+ dimensions,
92
+ statistic: 'Sum',
93
+ };
94
+ }
95
+ static readLatencyAverage(dimensions) {
96
+ return {
97
+ namespace: 'AWS/Redshift',
98
+ metricName: 'ReadLatency',
99
+ dimensions,
100
+ statistic: 'Average',
101
+ };
102
+ }
103
+ static readThroughputSum(dimensions) {
104
+ return {
105
+ namespace: 'AWS/Redshift',
106
+ metricName: 'ReadThroughput',
107
+ dimensions,
108
+ statistic: 'Sum',
109
+ };
110
+ }
111
+ static wlmQueriesCompletedPerSecondAverage(dimensions) {
112
+ return {
113
+ namespace: 'AWS/Redshift',
114
+ metricName: 'WLMQueriesCompletedPerSecond',
115
+ dimensions,
116
+ statistic: 'Average',
117
+ };
118
+ }
119
+ static wlmQueryDurationAverage(dimensions) {
120
+ return {
121
+ namespace: 'AWS/Redshift',
122
+ metricName: 'WLMQueryDuration',
123
+ dimensions,
124
+ statistic: 'Average',
125
+ };
126
+ }
127
+ static wlmQueueLengthSum(dimensions) {
128
+ return {
129
+ namespace: 'AWS/Redshift',
130
+ metricName: 'WLMQueueLength',
131
+ dimensions,
132
+ statistic: 'Sum',
133
+ };
134
+ }
135
+ static writeIopsSum(dimensions) {
136
+ return {
137
+ namespace: 'AWS/Redshift',
138
+ metricName: 'WriteIOPS',
139
+ dimensions,
140
+ statistic: 'Sum',
141
+ };
142
+ }
143
+ static writeLatencyAverage(dimensions) {
144
+ return {
145
+ namespace: 'AWS/Redshift',
146
+ metricName: 'WriteLatency',
147
+ dimensions,
148
+ statistic: 'Average',
149
+ };
150
+ }
151
+ static writeThroughputSum(dimensions) {
152
+ return {
153
+ namespace: 'AWS/Redshift',
154
+ metricName: 'WriteThroughput',
155
+ dimensions,
156
+ statistic: 'Sum',
157
+ };
158
+ }
159
+ }
160
+ exports.RedshiftMetrics = RedshiftMetrics;
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkc2hpZnQtY2FubmVkLW1ldHJpY3MuZ2VuZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicmVkc2hpZnQtY2FubmVkLW1ldHJpY3MuZ2VuZXJhdGVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwrRUFBK0U7OztBQUUvRSw0QkFBNEIsQ0FBQyxpRUFBaUU7QUFFOUYsTUFBYSxlQUFlO0lBQ25CLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxVQUF5QztRQUMzRSxPQUFPO1lBQ0wsU0FBUyxFQUFFLGNBQWM7WUFDekIsVUFBVSxFQUFFLGdCQUFnQjtZQUM1QixVQUFVO1lBQ1YsU0FBUyxFQUFFLFNBQVM7U0FDckIsQ0FBQztJQUNKLENBQUM7SUFDTSxNQUFNLENBQUMsOEJBQThCLENBQUMsVUFBeUM7UUFDcEYsT0FBTztZQUNMLFNBQVMsRUFBRSxjQUFjO1lBQ3pCLFVBQVUsRUFBRSx5QkFBeUI7WUFDckMsVUFBVTtZQUNWLFNBQVMsRUFBRSxTQUFTO1NBQ3JCLENBQUM7SUFDSixDQUFDO0lBQ00sTUFBTSxDQUFDLDBCQUEwQixDQUFDLFVBQXlDO1FBQ2hGLE9BQU87WUFDTCxTQUFTLEVBQUUsY0FBYztZQUN6QixVQUFVLEVBQUUscUJBQXFCO1lBQ2pDLFVBQVU7WUFDVixTQUFTLEVBQUUsU0FBUztTQUNyQixDQUFDO0lBQ0osQ0FBQztJQUNNLE1BQU0sQ0FBQyxlQUFlLENBQUMsVUFBeUM7UUFDckUsT0FBTztZQUNMLFNBQVMsRUFBRSxjQUFjO1lBQ3pCLFVBQVUsRUFBRSxjQUFjO1lBQzFCLFVBQVU7WUFDVixTQUFTLEVBQUUsS0FBSztTQUNqQixDQUFDO0lBQ0osQ0FBQztJQUNNLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxVQUF5QztRQUN4RSxPQUFPO1lBQ0wsU0FBUyxFQUFFLGNBQWM7WUFDekIsVUFBVSxFQUFFLGlCQUFpQjtZQUM3QixVQUFVO1lBQ1YsU0FBUyxFQUFFLEtBQUs7U0FDakIsQ0FBQztJQUNKLENBQUM7SUFD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Q0FBQyxrQkFBa0IsQ0FBQyxVQUF5QztRQUN4RSxPQUFPO1lBQ0wsU0FBUyxFQUFFLGNBQWM7WUFDekIsVUFBVSxFQUFFLGlCQUFpQjtZQUM3QixVQUFVO1lBQ1YsU0FBUyxFQUFFLEtBQUs7U0FDakIsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXpKRCwwQ0F5SkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAxMi0yMDIxIEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG5cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4gKi8gLy8gVGhpcyBpcyBnZW5lcmF0ZWQgY29kZSAtIGxpbmUgbGVuZ3RocyBhcmUgZGlmZmljdWx0IHRvIGNvbnRyb2xcblxuZXhwb3J0IGNsYXNzIFJlZHNoaWZ0TWV0cmljcyB7XG4gIHB1YmxpYyBzdGF0aWMgY3B1VXRpbGl6YXRpb25BdmVyYWdlKGRpbWVuc2lvbnM6IHsgQ2x1c3RlcklkZW50aWZpZXI6IHN0cmluZyB9KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWVzcGFjZTogJ0FXUy9SZWRzaGlmdCcsXG4gICAgICBtZXRyaWNOYW1lOiAnQ1BVVXRpbGl6YXRpb24nLFxuICAgICAgZGltZW5zaW9ucyxcbiAgICAgIHN0YXRpc3RpYzogJ0F2ZXJhZ2UnLFxuICAgIH07XG4gIH1cbiAgcHVibGljIHN0YXRpYyBwZXJjZW50YWdlRGlza1NwYWNlVXNlZEF2ZXJhZ2UoZGltZW5zaW9uczogeyBDbHVzdGVySWRlbnRpZmllcjogc3RyaW5nIH0pIHtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZXNwYWNlOiAnQVdTL1JlZHNoaWZ0JyxcbiAgICAgIG1ldHJpY05hbWU6ICdQZXJjZW50YWdlRGlza1NwYWNlVXNlZCcsXG4gICAgICBkaW1lbnNpb25zLFxuICAgICAgc3RhdGlzdGljOiAnQXZlcmFnZScsXG4gICAgfTtcbiAgfVxuICBwdWJsaWMgc3RhdGljIGRhdGFiYXNlQ29ubmVjdGlvbnNBdmVyYWdlKGRpbWVuc2lvbnM6IHsgQ2x1c3RlcklkZW50aWZpZXI6IHN0cmluZyB9KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWVzcGFjZTogJ0FXUy9SZWRzaGlmdCcsXG4gICAgICBtZXRyaWNOYW1lOiAnRGF0YWJhc2VDb25uZWN0aW9ucycsXG4gICAgICBkaW1lbnNpb25zLFxuICAgICAgc3RhdGlzdGljOiAnQXZlcmFnZScsXG4gICAgfTtcbiAgfVxuICBwdWJsaWMgc3RhdGljIGhlYWx0aFN0YXR1c1N1bShkaW1lbnNpb25zOiB7IENsdXN0ZXJJZGVudGlmaWVyOiBzdHJpbmcgfSkge1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lc3BhY2U6ICdBV1MvUmVkc2hpZnQnLFxuICAgICAgbWV0cmljTmFtZTogJ0hlYWx0aFN0YXR1cycsXG4gICAgICBkaW1lbnNpb25zLFxuICAgICAgc3RhdGlzdGljOiAnU3VtJyxcbiAgICB9O1xuICB9XG4gIHB1YmxpYyBzdGF0aWMgbWFpbnRlbmFuY2VNb2RlU3VtKGRpbWVuc2lvbnM6IHsgQ2x1c3RlcklkZW50aWZpZXI6IHN0cmluZyB9KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWVzcGFjZTogJ0FXUy9SZWRzaGlmdCcsXG4gICAgICBtZXRyaWNOYW1lOiAnTWFpbnRlbmFuY2VNb2RlJyxcbiAgICAgIGRpbWVuc2lvbnMsXG4gICAgICBzdGF0aXN0aWM6ICdTdW0nLFxuICAgIH07XG4gIH1cbiAgcHVibGljIHN0YXRpYyBuZXR3b3JrUmVjZWl2ZVRocm91Z2hwdXRTdW0oZGltZW5zaW9uczogeyBDbHVzdGVySWRlbnRpZmllcjogc3RyaW5nIH0pIHtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZXNwYWNlOiAnQVdTL1JlZHNoaWZ0JyxcbiAgICAgIG1ldHJpY05hbWU6ICdOZXR3b3JrUmVjZWl2ZVRocm91Z2hwdXQnLFxuICAgICAgZGltZW5zaW9ucyxcbiAgICAgIHN0YXRpc3RpYzogJ1N1bScsXG4gICAgfTtcbiAgfVxuICBwdWJsaWMgc3RhdGljIG5ldHdvcmtUcmFuc21pdFRocm91Z2hwdXRTdW0oZGltZW5zaW9uczogeyBDbHVzdGVySWRlbnRpZmllcjogc3RyaW5nIH0pIHtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZXNwYWNlOiAnQVdTL1JlZHNoaWZ0JyxcbiAgICAgIG1ldHJpY05hbWU6ICdOZXR3b3JrVHJhbnNtaXRUaHJvdWdocHV0JyxcbiAgICAgIGRpbWVuc2lvbnMsXG4gICAgICBzdGF0aXN0aWM6ICdTdW0nLFxuICAgIH07XG4gIH1cbiAgcHVibGljIHN0YXRpYyBxdWVyaWVzQ29tcGxldGVkUGVyU2Vjb25kU3VtKGRpbWVuc2lvbnM6IHsgQ2x1c3RlcklkZW50aWZpZXI6IHN0cmluZyB9KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWVzcGFjZTogJ0FXUy9SZWRzaGlmdCcsXG4gICAgICBtZXRyaWNOYW1lOiAnUXVlcmllc0NvbXBsZXRlZFBlclNlY29uZCcsXG4gICAgICBkaW1lbnNpb25zLFxuICAgICAgc3RhdGlzdGljOiAnU3VtJyxcbiAgICB9O1xuICB9XG4gIHB1YmxpYyBzdGF0aWMgcXVlcnlEdXJhdGlvbkF2ZXJhZ2UoZGltZW5zaW9uczogeyBDbHVzdGVySWRlbnRpZmllcjogc3RyaW5nIH0pIHtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZXNwYWNlOiAnQVdTL1JlZHNoaWZ0JyxcbiAgICAgIG1ldHJpY05hbWU6ICdRdWVyeUR1cmF0aW9uJyxcbiAgICAgIGRpbWVuc2lvbnMsXG4gICAgICBzdGF0aXN0aWM6ICdBdmVyYWdlJyxcbiAgICB9O1xuICB9XG4gIHB1YmxpYyBzdGF0aWMgcXVlcnlSdW50aW1lQnJlYWtkb3duU3VtKGRpbWVuc2lvbnM6IHsgQ2x1c3RlcklkZW50aWZpZXI6IHN0cmluZyB9KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWVzcGFjZTogJ0FXUy9SZWRzaGlmdCcsXG4gICAgICBtZXRyaWNOYW1lOiAnUXVlcnlSdW50aW1lQnJlYWtkb3duJyxcbiAgICAgIGRpbWVuc2lvbnMsXG4gICAgICBzdGF0aXN0aWM6ICdTdW0nLFxuICAgIH07XG4gIH1cbiAgcHVibGljIHN0YXRpYyByZWFkSW9wc1N1bShkaW1lbnNpb25zOiB7IENsdXN0ZXJJZGVudGlmaWVyOiBzdHJpbmcgfSkge1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lc3BhY2U6ICdBV1MvUmVkc2hpZnQnLFxuICAgICAgbWV0cmljTmFtZTogJ1JlYWRJT1BTJyxcbiAgICAgIGRpbWVuc2lvbnMsXG4gICAgICBzdGF0aXN0aWM6ICdTdW0nLFxuICAgIH07XG4gIH1cbiAgcHVibGljIHN0YXRpYyByZWFkTGF0ZW5jeUF2ZXJhZ2UoZGltZW5zaW9uczogeyBDbHVzdGVySWRlbnRpZmllcjogc3RyaW5nIH0pIHtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZXNwYWNlOiAnQVdTL1JlZHNoaWZ0JyxcbiAgICAgIG1ldHJpY05hbWU6ICdSZWFkTGF0ZW5jeScsXG4gICAgICBkaW1lbnNpb25zLFxuICAgICAgc3RhdGlzdGljOiAnQXZlcmFnZScsXG4gICAgfTtcbiAgfVxuICBwdWJsaWMgc3RhdGljIHJlYWRUaHJvdWdocHV0U3VtKGRpbWVuc2lvbnM6IHsgQ2x1c3RlcklkZW50aWZpZXI6IHN0cmluZyB9KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWVzcGFjZTogJ0FXUy9SZWRzaGlmdCcsXG4gICAgICBtZXRyaWNOYW1lOiAnUmVhZFRocm91Z2hwdXQnLFxuICAgICAgZGltZW5zaW9ucyxcbiAgICAgIHN0YXRpc3RpYzogJ1N1bScsXG4gICAgfTtcbiAgfVxuICBwdWJsaWMgc3RhdGljIHdsbVF1ZXJpZXNDb21wbGV0ZWRQZXJTZWNvbmRBdmVyYWdlKGRpbWVuc2lvbnM6IHsgQ2x1c3RlcklkZW50aWZpZXI6IHN0cmluZyB9KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWVzcGFjZTogJ0FXUy9SZWRzaGlmdCcsXG4gICAgICBtZXRyaWNOYW1lOiAnV0xNUXVlcmllc0NvbXBsZXRlZFBlclNlY29uZCcsXG4gICAgICBkaW1lbnNpb25zLFxuICAgICAgc3RhdGlzdGljOiAnQXZlcmFnZScsXG4gICAgfTtcbiAgfVxuICBwdWJsaWMgc3RhdGljIHdsbVF1ZXJ5RHVyYXRpb25BdmVyYWdlKGRpbWVuc2lvbnM6IHsgQ2x1c3RlcklkZW50aWZpZXI6IHN0cmluZyB9KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWVzcGFjZTogJ0FXUy9SZWRzaGlmdCcsXG4gICAgICBtZXRyaWNOYW1lOiAnV0xNUXVlcnlEdXJhdGlvbicsXG4gICAgICBkaW1lbnNpb25zLFxuICAgICAgc3RhdGlzdGljOiAnQXZlcmFnZScsXG4gICAgfTtcbiAgfVxuICBwdWJsaWMgc3RhdGljIHdsbVF1ZXVlTGVuZ3RoU3VtKGRpbWVuc2lvbnM6IHsgQ2x1c3RlcklkZW50aWZpZXI6IHN0cmluZyB9KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWVzcGFjZTogJ0FXUy9SZWRzaGlmdCcsXG4gICAgICBtZXRyaWNOYW1lOiAnV0xNUXVldWVMZW5ndGgnLFxuICAgICAgZGltZW5zaW9ucyxcbiAgICAgIHN0YXRpc3RpYzogJ1N1bScsXG4gICAgfTtcbiAgfVxuICBwdWJsaWMgc3RhdGljIHdyaXRlSW9wc1N1bShkaW1lbnNpb25zOiB7IENsdXN0ZXJJZGVudGlmaWVyOiBzdHJpbmcgfSkge1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lc3BhY2U6ICdBV1MvUmVkc2hpZnQnLFxuICAgICAgbWV0cmljTmFtZTogJ1dyaXRlSU9QUycsXG4gICAgICBkaW1lbnNpb25zLFxuICAgICAgc3RhdGlzdGljOiAnU3VtJyxcbiAgICB9O1xuICB9XG4gIHB1YmxpYyBzdGF0aWMgd3JpdGVMYXRlbmN5QXZlcmFnZShkaW1lbnNpb25zOiB7IENsdXN0ZXJJZGVudGlmaWVyOiBzdHJpbmcgfSkge1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lc3BhY2U6ICdBV1MvUmVkc2hpZnQnLFxuICAgICAgbWV0cmljTmFtZTogJ1dyaXRlTGF0ZW5jeScsXG4gICAgICBkaW1lbnNpb25zLFxuICAgICAgc3RhdGlzdGljOiAnQXZlcmFnZScsXG4gICAgfTtcbiAgfVxuICBwdWJsaWMgc3RhdGljIHdyaXRlVGhyb3VnaHB1dFN1bShkaW1lbnNpb25zOiB7IENsdXN0ZXJJZGVudGlmaWVyOiBzdHJpbmcgfSkge1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lc3BhY2U6ICdBV1MvUmVkc2hpZnQnLFxuICAgICAgbWV0cmljTmFtZTogJ1dyaXRlVGhyb3VnaHB1dCcsXG4gICAgICBkaW1lbnNpb25zLFxuICAgICAgc3RhdGlzdGljOiAnU3VtJyxcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -0,0 +1,74 @@
1
+ import * as ec2 from 'aws-cdk-lib/aws-ec2';
2
+ import { IResource, RemovalPolicy, Resource } from 'aws-cdk-lib';
3
+ import { Construct } from 'constructs';
4
+ /**
5
+ * (experimental) Interface for a cluster subnet group.
6
+ *
7
+ * @experimental
8
+ */
9
+ export interface IClusterSubnetGroup extends IResource {
10
+ /**
11
+ * (experimental) The name of the cluster subnet group.
12
+ *
13
+ * @experimental
14
+ * @attribute true
15
+ */
16
+ readonly clusterSubnetGroupName: string;
17
+ }
18
+ /**
19
+ * (experimental) Properties for creating a ClusterSubnetGroup.
20
+ *
21
+ * @experimental
22
+ */
23
+ export interface ClusterSubnetGroupProps {
24
+ /**
25
+ * (experimental) Description of the subnet group.
26
+ *
27
+ * @experimental
28
+ */
29
+ readonly description: string;
30
+ /**
31
+ * (experimental) The VPC to place the subnet group in.
32
+ *
33
+ * @experimental
34
+ */
35
+ readonly vpc: ec2.IVpc;
36
+ /**
37
+ * (experimental) Which subnets within the VPC to associate with this group.
38
+ *
39
+ * @default - private subnets
40
+ * @experimental
41
+ */
42
+ readonly vpcSubnets?: ec2.SubnetSelection;
43
+ /**
44
+ * (experimental) The removal policy to apply when the subnet group are removed from the stack or replaced during an update.
45
+ *
46
+ * @default RemovalPolicy.RETAIN
47
+ * @experimental
48
+ */
49
+ readonly removalPolicy?: RemovalPolicy;
50
+ }
51
+ /**
52
+ * (experimental) Class for creating a Redshift cluster subnet group.
53
+ *
54
+ * @experimental
55
+ * @resource AWS::Redshift::ClusterSubnetGroup
56
+ */
57
+ export declare class ClusterSubnetGroup extends Resource implements IClusterSubnetGroup {
58
+ /**
59
+ * (experimental) Imports an existing subnet group by name.
60
+ *
61
+ * @experimental
62
+ */
63
+ static fromClusterSubnetGroupName(scope: Construct, id: string, clusterSubnetGroupName: string): IClusterSubnetGroup;
64
+ /**
65
+ * (experimental) The name of the cluster subnet group.
66
+ *
67
+ * @experimental
68
+ */
69
+ readonly clusterSubnetGroupName: string;
70
+ /**
71
+ * @experimental
72
+ */
73
+ constructor(scope: Construct, id: string, props: ClusterSubnetGroupProps);
74
+ }
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ClusterSubnetGroup = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ const ec2 = require("aws-cdk-lib/aws-ec2");
7
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
8
+ const aws_redshift_1 = require("aws-cdk-lib/aws-redshift");
9
+ /**
10
+ * (experimental) Class for creating a Redshift cluster subnet group.
11
+ *
12
+ * @experimental
13
+ * @resource AWS::Redshift::ClusterSubnetGroup
14
+ */
15
+ class ClusterSubnetGroup extends aws_cdk_lib_1.Resource {
16
+ /**
17
+ * @experimental
18
+ */
19
+ constructor(scope, id, props) {
20
+ var _b, _c;
21
+ super(scope, id);
22
+ const { subnetIds } = props.vpc.selectSubnets((_b = props.vpcSubnets) !== null && _b !== void 0 ? _b : { subnetType: ec2.SubnetType.PRIVATE });
23
+ const subnetGroup = new aws_redshift_1.CfnClusterSubnetGroup(this, 'Default', {
24
+ description: props.description,
25
+ subnetIds,
26
+ });
27
+ subnetGroup.applyRemovalPolicy((_c = props.removalPolicy) !== null && _c !== void 0 ? _c : aws_cdk_lib_1.RemovalPolicy.RETAIN, {
28
+ applyToUpdateReplacePolicy: true,
29
+ });
30
+ this.clusterSubnetGroupName = subnetGroup.ref;
31
+ }
32
+ /**
33
+ * (experimental) Imports an existing subnet group by name.
34
+ *
35
+ * @experimental
36
+ */
37
+ static fromClusterSubnetGroupName(scope, id, clusterSubnetGroupName) {
38
+ return new class extends aws_cdk_lib_1.Resource {
39
+ constructor() {
40
+ super(...arguments);
41
+ this.clusterSubnetGroupName = clusterSubnetGroupName;
42
+ }
43
+ }(scope, id);
44
+ }
45
+ }
46
+ exports.ClusterSubnetGroup = ClusterSubnetGroup;
47
+ _a = JSII_RTTI_SYMBOL_1;
48
+ ClusterSubnetGroup[_a] = { fqn: "@aws-cdk/aws-redshift-alpha.ClusterSubnetGroup", version: "2.0.0-alpha.1" };
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VibmV0LWdyb3VwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3VibmV0LWdyb3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMkNBQTJDO0FBQzNDLDZDQUFpRTtBQUVqRSwyREFBaUU7Ozs7Ozs7QUF3QmpFLE1BQWEsa0JBQW1CLFNBQVEsc0JBQVE7Ozs7SUFXOUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUE4Qjs7UUFDdEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxhQUFhLE9BQUMsS0FBSyxDQUFDLFVBQVUsbUNBQUksRUFBRSxVQUFVLEVBQUUsR0FBRyxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBRTFHLE1BQU0sV0FBVyxHQUFHLElBQUksb0NBQXFCLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUM3RCxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsU0FBUztTQUNWLENBQUMsQ0FBQztRQUNILFdBQVcsQ0FBQyxrQkFBa0IsT0FBQyxLQUFLLENBQUMsYUFBYSxtQ0FBSSwyQkFBYSxDQUFDLE1BQU0sRUFBRTtZQUMxRSwwQkFBMEIsRUFBRSxJQUFJO1NBQ2pDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxzQkFBc0IsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDO0lBQ2hELENBQUM7Ozs7OztJQXRCTSxNQUFNLENBQUMsMEJBQTBCLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsc0JBQThCO1FBQ25HLE9BQU8sSUFBSSxLQUFNLFNBQVEsc0JBQVE7WUFBdEI7O2dCQUNPLDJCQUFzQixHQUFHLHNCQUFzQixDQUFDO1lBQ2xFLENBQUM7U0FBQSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNmLENBQUM7O0FBUEgsZ0RBMEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZWMyIGZyb20gJ2F3cy1jZGstbGliL2F3cy1lYzInO1xuaW1wb3J0IHsgSVJlc291cmNlLCBSZW1vdmFsUG9saWN5LCBSZXNvdXJjZSB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQ2ZuQ2x1c3RlclN1Ym5ldEdyb3VwIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXJlZHNoaWZ0JztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIElDbHVzdGVyU3VibmV0R3JvdXAgZXh0ZW5kcyBJUmVzb3VyY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBjbHVzdGVyU3VibmV0R3JvdXBOYW1lOiBzdHJpbmc7XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIENsdXN0ZXJTdWJuZXRHcm91cFByb3BzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgZGVzY3JpcHRpb246IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHZwYzogZWMyLklWcGM7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgdnBjU3VibmV0cz86IGVjMi5TdWJuZXRTZWxlY3Rpb247XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSByZW1vdmFsUG9saWN5PzogUmVtb3ZhbFBvbGljeVxufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBjbGFzcyBDbHVzdGVyU3VibmV0R3JvdXAgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElDbHVzdGVyU3VibmV0R3JvdXAge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUNsdXN0ZXJTdWJuZXRHcm91cE5hbWUoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgY2x1c3RlclN1Ym5ldEdyb3VwTmFtZTogc3RyaW5nKTogSUNsdXN0ZXJTdWJuZXRHcm91cCB7XG4gICAgcmV0dXJuIG5ldyBjbGFzcyBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSUNsdXN0ZXJTdWJuZXRHcm91cCB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgY2x1c3RlclN1Ym5ldEdyb3VwTmFtZSA9IGNsdXN0ZXJTdWJuZXRHcm91cE5hbWU7XG4gICAgfShzY29wZSwgaWQpO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IGNsdXN0ZXJTdWJuZXRHcm91cE5hbWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ2x1c3RlclN1Ym5ldEdyb3VwUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgeyBzdWJuZXRJZHMgfSA9IHByb3BzLnZwYy5zZWxlY3RTdWJuZXRzKHByb3BzLnZwY1N1Ym5ldHMgPz8geyBzdWJuZXRUeXBlOiBlYzIuU3VibmV0VHlwZS5QUklWQVRFIH0pO1xuXG4gICAgY29uc3Qgc3VibmV0R3JvdXAgPSBuZXcgQ2ZuQ2x1c3RlclN1Ym5ldEdyb3VwKHRoaXMsICdEZWZhdWx0Jywge1xuICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgc3VibmV0SWRzLFxuICAgIH0pO1xuICAgIHN1Ym5ldEdyb3VwLmFwcGx5UmVtb3ZhbFBvbGljeShwcm9wcy5yZW1vdmFsUG9saWN5ID8/IFJlbW92YWxQb2xpY3kuUkVUQUlOLCB7XG4gICAgICBhcHBseVRvVXBkYXRlUmVwbGFjZVBvbGljeTogdHJ1ZSxcbiAgICB9KTtcblxuICAgIHRoaXMuY2x1c3RlclN1Ym5ldEdyb3VwTmFtZSA9IHN1Ym5ldEdyb3VwLnJlZjtcbiAgfVxufVxuIl19