@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.
- package/.jsii +6985 -0
- package/LICENSE +201 -0
- package/NOTICE +2 -0
- package/README.md +247 -0
- package/lib/cluster.d.ts +454 -0
- package/lib/cluster.js +231 -0
- package/lib/database-options.d.ts +30 -0
- package/lib/database-options.js +3 -0
- package/lib/database-secret.d.ts +35 -0
- package/lib/database-secret.js +32 -0
- package/lib/endpoint.d.ts +31 -0
- package/lib/endpoint.js +28 -0
- package/lib/index.d.ts +8 -0
- package/lib/index.js +22 -0
- package/lib/parameter-group.d.ts +72 -0
- package/lib/parameter-group.js +52 -0
- package/lib/private/database-query-provider/handler-name.d.ts +5 -0
- package/lib/private/database-query-provider/handler-name.js +10 -0
- package/lib/private/database-query-provider/index.d.ts +2 -0
- package/lib/private/database-query-provider/index.js +21 -0
- package/lib/private/database-query-provider/privileges.d.ts +6 -0
- package/lib/private/database-query-provider/privileges.js +57 -0
- package/lib/private/database-query-provider/table.d.ts +6 -0
- package/lib/private/database-query-provider/table.js +56 -0
- package/lib/private/database-query-provider/user.d.ts +9 -0
- package/lib/private/database-query-provider/user.js +69 -0
- package/lib/private/database-query-provider/util.d.ts +4 -0
- package/lib/private/database-query-provider/util.js +41 -0
- package/lib/private/database-query.d.ts +24 -0
- package/lib/private/database-query.js +78 -0
- package/lib/private/handler-props.d.ts +26 -0
- package/lib/private/handler-props.js +3 -0
- package/lib/private/privileges.d.ts +48 -0
- package/lib/private/privileges.js +64 -0
- package/lib/redshift-canned-metrics.generated.d.ts +192 -0
- package/lib/redshift-canned-metrics.generated.js +161 -0
- package/lib/subnet-group.d.ts +74 -0
- package/lib/subnet-group.js +49 -0
- package/lib/table.d.ts +241 -0
- package/lib/table.js +104 -0
- package/lib/user.d.ts +174 -0
- package/lib/user.js +102 -0
- package/package.json +124 -0
- package/rosetta/cluster.ts-fixture +21 -0
- 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
|