@aws-cdk/aws-imagebuilder-alpha 2.230.0-alpha.0 → 2.231.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 +6650 -4518
- package/.jsii.tabl.json.gz +0 -0
- package/.warnings.jsii.js +49 -1
- package/README.md +216 -11
- package/awslint.json +1 -0
- package/lib/amazon-managed-image.d.ts +242 -0
- package/lib/amazon-managed-image.js +522 -0
- package/lib/base-image.d.ts +13 -0
- package/lib/base-image.js +39 -4
- package/lib/component.js +8 -8
- package/lib/container-recipe.js +4 -4
- package/lib/distribution-configuration.js +2 -2
- package/lib/image-pipeline.js +2 -2
- package/lib/image-recipe.js +1 -1
- package/lib/image.d.ts +339 -0
- package/lib/image.js +357 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js +3 -1
- package/lib/infrastructure-configuration.js +1 -1
- package/lib/lifecycle-policy.d.ts +3 -3
- package/lib/lifecycle-policy.js +5 -5
- package/lib/os-version.js +1 -1
- package/lib/private/constants.d.ts +7 -0
- package/lib/private/constants.js +11 -0
- package/lib/private/image-and-pipeline-props-helper.d.ts +4 -3
- package/lib/private/image-and-pipeline-props-helper.js +1 -1
- package/lib/private/policy-helper.d.ts +2 -1
- package/lib/private/policy-helper.js +1 -1
- package/lib/recipe-base.js +1 -1
- package/lib/workflow.js +5 -5
- package/package.json +6 -6
- package/rosetta/default.ts-fixture +4 -0
|
@@ -0,0 +1,522 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AmazonManagedImage = void 0;
|
|
4
|
+
const jsiiDeprecationWarnings = require("../.warnings.jsii.js");
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const cdk = require("aws-cdk-lib");
|
|
7
|
+
const image_1 = require("./image");
|
|
8
|
+
const constants_1 = require("./private/constants");
|
|
9
|
+
/**
|
|
10
|
+
* Helper class for working with Amazon-managed images
|
|
11
|
+
*/
|
|
12
|
+
class AmazonManagedImage {
|
|
13
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedImage", version: "2.231.0-alpha.0" };
|
|
14
|
+
/**
|
|
15
|
+
* Imports the Amazon Linux 2 Amazon-managed image
|
|
16
|
+
*
|
|
17
|
+
* @param scope The construct scope
|
|
18
|
+
* @param id Identifier of the construct
|
|
19
|
+
* @param opts The Amazon-managed image attributes
|
|
20
|
+
*
|
|
21
|
+
* @see https://docs.aws.amazon.com/linux/al2/ug/index.html
|
|
22
|
+
* @see https://gallery.ecr.aws/amazonlinux/amazonlinux
|
|
23
|
+
*/
|
|
24
|
+
static amazonLinux2(scope, id, opts) {
|
|
25
|
+
try {
|
|
26
|
+
jsiiDeprecationWarnings._aws_cdk_aws_imagebuilder_alpha_AmazonManagedImageOptions(opts);
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
30
|
+
Error.captureStackTrace(error, this.amazonLinux2);
|
|
31
|
+
}
|
|
32
|
+
throw error;
|
|
33
|
+
}
|
|
34
|
+
return this.predefinedManagedImage(scope, id, opts, this.AMAZON_LINUX_2_CONFIG);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Imports the Amazon Linux 2023 Amazon-managed image
|
|
38
|
+
*
|
|
39
|
+
* @param scope The construct scope
|
|
40
|
+
* @param id Identifier of the construct
|
|
41
|
+
* @param opts The Amazon-managed image attributes
|
|
42
|
+
*
|
|
43
|
+
* @see https://docs.aws.amazon.com/linux/al2023/ug/what-is-amazon-linux.html
|
|
44
|
+
* @see https://gallery.ecr.aws/amazonlinux/amazonlinux
|
|
45
|
+
*/
|
|
46
|
+
static amazonLinux2023(scope, id, opts) {
|
|
47
|
+
try {
|
|
48
|
+
jsiiDeprecationWarnings._aws_cdk_aws_imagebuilder_alpha_AmazonManagedImageOptions(opts);
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
52
|
+
Error.captureStackTrace(error, this.amazonLinux2023);
|
|
53
|
+
}
|
|
54
|
+
throw error;
|
|
55
|
+
}
|
|
56
|
+
return this.predefinedManagedImage(scope, id, opts, this.AMAZON_LINUX_2023_CONFIG);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Imports the Red Hat Enterprise Linux 10 Amazon-managed image
|
|
60
|
+
*
|
|
61
|
+
* @param scope The construct scope
|
|
62
|
+
* @param id Identifier of the construct
|
|
63
|
+
* @param opts The Amazon-managed image attributes
|
|
64
|
+
*
|
|
65
|
+
* @see https://aws.amazon.com/partners/redhat/faqs
|
|
66
|
+
*/
|
|
67
|
+
static redHatEnterpriseLinux10(scope, id, opts) {
|
|
68
|
+
try {
|
|
69
|
+
jsiiDeprecationWarnings._aws_cdk_aws_imagebuilder_alpha_AmazonManagedImageOptions(opts);
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
73
|
+
Error.captureStackTrace(error, this.redHatEnterpriseLinux10);
|
|
74
|
+
}
|
|
75
|
+
throw error;
|
|
76
|
+
}
|
|
77
|
+
return this.predefinedManagedImage(scope, id, opts, this.RED_HAT_ENTERPRISE_LINUX_10_CONFIG);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Imports the SUSE Linux Enterprise Server 15 Amazon-managed image
|
|
81
|
+
*
|
|
82
|
+
* @param scope The construct scope
|
|
83
|
+
* @param id Identifier of the construct
|
|
84
|
+
* @param opts The Amazon-managed image attributes
|
|
85
|
+
*
|
|
86
|
+
* @see https://aws.amazon.com/linux/commercial-linux/faqs/
|
|
87
|
+
*/
|
|
88
|
+
static suseLinuxEnterpriseServer15(scope, id, opts) {
|
|
89
|
+
try {
|
|
90
|
+
jsiiDeprecationWarnings._aws_cdk_aws_imagebuilder_alpha_AmazonManagedImageOptions(opts);
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
94
|
+
Error.captureStackTrace(error, this.suseLinuxEnterpriseServer15);
|
|
95
|
+
}
|
|
96
|
+
throw error;
|
|
97
|
+
}
|
|
98
|
+
return this.predefinedManagedImage(scope, id, opts, this.SUSE_LINUX_ENTERPRISE_SERVER_15_CONFIG);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Imports the Ubuntu 22.04 Amazon-managed image
|
|
102
|
+
*
|
|
103
|
+
* @param scope The construct scope
|
|
104
|
+
* @param id Identifier of the construct
|
|
105
|
+
* @param opts The Amazon-managed image attributes
|
|
106
|
+
*
|
|
107
|
+
* @see https://documentation.ubuntu.com/aws
|
|
108
|
+
* @see https://hub.docker.com/_/ubuntu
|
|
109
|
+
*/
|
|
110
|
+
static ubuntuServer2204(scope, id, opts) {
|
|
111
|
+
try {
|
|
112
|
+
jsiiDeprecationWarnings._aws_cdk_aws_imagebuilder_alpha_AmazonManagedImageOptions(opts);
|
|
113
|
+
}
|
|
114
|
+
catch (error) {
|
|
115
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
116
|
+
Error.captureStackTrace(error, this.ubuntuServer2204);
|
|
117
|
+
}
|
|
118
|
+
throw error;
|
|
119
|
+
}
|
|
120
|
+
return this.predefinedManagedImage(scope, id, opts, this.UBUNTU_SERVER_22_04_CONFIG);
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Imports the Ubuntu 24.04 Amazon-managed image
|
|
124
|
+
*
|
|
125
|
+
* @param scope The construct scope
|
|
126
|
+
* @param id Identifier of the construct
|
|
127
|
+
* @param opts The Amazon-managed image attributes
|
|
128
|
+
*
|
|
129
|
+
* @see https://documentation.ubuntu.com/aws
|
|
130
|
+
* @see https://hub.docker.com/_/ubuntu
|
|
131
|
+
*/
|
|
132
|
+
static ubuntuServer2404(scope, id, opts) {
|
|
133
|
+
try {
|
|
134
|
+
jsiiDeprecationWarnings._aws_cdk_aws_imagebuilder_alpha_AmazonManagedImageOptions(opts);
|
|
135
|
+
}
|
|
136
|
+
catch (error) {
|
|
137
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
138
|
+
Error.captureStackTrace(error, this.ubuntuServer2404);
|
|
139
|
+
}
|
|
140
|
+
throw error;
|
|
141
|
+
}
|
|
142
|
+
return this.predefinedManagedImage(scope, id, opts, this.UBUNTU_SERVER_24_04_CONFIG);
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Imports the Windows Server 2016 Core Amazon-managed image
|
|
146
|
+
*
|
|
147
|
+
* @param scope The construct scope
|
|
148
|
+
* @param id Identifier of the construct
|
|
149
|
+
* @param opts The Amazon-managed image attributes
|
|
150
|
+
*
|
|
151
|
+
* @see https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/index.html
|
|
152
|
+
* @see https://hub.docker.com/r/microsoft/windows-servercore
|
|
153
|
+
*/
|
|
154
|
+
static windowsServer2016Core(scope, id, opts) {
|
|
155
|
+
try {
|
|
156
|
+
jsiiDeprecationWarnings._aws_cdk_aws_imagebuilder_alpha_AmazonManagedImageOptions(opts);
|
|
157
|
+
}
|
|
158
|
+
catch (error) {
|
|
159
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
160
|
+
Error.captureStackTrace(error, this.windowsServer2016Core);
|
|
161
|
+
}
|
|
162
|
+
throw error;
|
|
163
|
+
}
|
|
164
|
+
return this.predefinedManagedImage(scope, id, opts, this.WINDOWS_SERVER_2016_CORE_CONFIG);
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Imports the Windows Server 2016 Full Amazon-managed image
|
|
168
|
+
*
|
|
169
|
+
* @param scope The construct scope
|
|
170
|
+
* @param id Identifier of the construct
|
|
171
|
+
* @param opts The Amazon-managed image attributes
|
|
172
|
+
*
|
|
173
|
+
* @see https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/index.html
|
|
174
|
+
*/
|
|
175
|
+
static windowsServer2016Full(scope, id, opts) {
|
|
176
|
+
try {
|
|
177
|
+
jsiiDeprecationWarnings._aws_cdk_aws_imagebuilder_alpha_AmazonManagedImageOptions(opts);
|
|
178
|
+
}
|
|
179
|
+
catch (error) {
|
|
180
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
181
|
+
Error.captureStackTrace(error, this.windowsServer2016Full);
|
|
182
|
+
}
|
|
183
|
+
throw error;
|
|
184
|
+
}
|
|
185
|
+
return this.predefinedManagedImage(scope, id, opts, this.WINDOWS_SERVER_2016_FULL_CONFIG);
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Imports the Windows Server 2019 Core Amazon-managed image
|
|
189
|
+
*
|
|
190
|
+
* @param scope The construct scope
|
|
191
|
+
* @param id Identifier of the construct
|
|
192
|
+
* @param opts The Amazon-managed image attributes
|
|
193
|
+
*
|
|
194
|
+
* @see https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/index.html
|
|
195
|
+
* @see https://hub.docker.com/r/microsoft/windows-servercore
|
|
196
|
+
*/
|
|
197
|
+
static windowsServer2019Core(scope, id, opts) {
|
|
198
|
+
try {
|
|
199
|
+
jsiiDeprecationWarnings._aws_cdk_aws_imagebuilder_alpha_AmazonManagedImageOptions(opts);
|
|
200
|
+
}
|
|
201
|
+
catch (error) {
|
|
202
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
203
|
+
Error.captureStackTrace(error, this.windowsServer2019Core);
|
|
204
|
+
}
|
|
205
|
+
throw error;
|
|
206
|
+
}
|
|
207
|
+
return this.predefinedManagedImage(scope, id, opts, this.WINDOWS_SERVER_2019_CORE_CONFIG);
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Imports the Windows Server 2019 Full Amazon-managed image
|
|
211
|
+
*
|
|
212
|
+
* @param scope The construct scope
|
|
213
|
+
* @param id Identifier of the construct
|
|
214
|
+
* @param opts The Amazon-managed image attributes
|
|
215
|
+
*
|
|
216
|
+
* @see https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/index.html
|
|
217
|
+
*/
|
|
218
|
+
static windowsServer2019Full(scope, id, opts) {
|
|
219
|
+
try {
|
|
220
|
+
jsiiDeprecationWarnings._aws_cdk_aws_imagebuilder_alpha_AmazonManagedImageOptions(opts);
|
|
221
|
+
}
|
|
222
|
+
catch (error) {
|
|
223
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
224
|
+
Error.captureStackTrace(error, this.windowsServer2019Full);
|
|
225
|
+
}
|
|
226
|
+
throw error;
|
|
227
|
+
}
|
|
228
|
+
return this.predefinedManagedImage(scope, id, opts, this.WINDOWS_SERVER_2019_FULL_CONFIG);
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Imports the Windows Server 2022 Core Amazon-managed image
|
|
232
|
+
*
|
|
233
|
+
* @param scope The construct scope
|
|
234
|
+
* @param id Identifier of the construct
|
|
235
|
+
* @param opts The Amazon-managed image attributes
|
|
236
|
+
*
|
|
237
|
+
* @see https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/index.html
|
|
238
|
+
*/
|
|
239
|
+
static windowsServer2022Core(scope, id, opts) {
|
|
240
|
+
try {
|
|
241
|
+
jsiiDeprecationWarnings._aws_cdk_aws_imagebuilder_alpha_AmazonManagedImageOptions(opts);
|
|
242
|
+
}
|
|
243
|
+
catch (error) {
|
|
244
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
245
|
+
Error.captureStackTrace(error, this.windowsServer2022Core);
|
|
246
|
+
}
|
|
247
|
+
throw error;
|
|
248
|
+
}
|
|
249
|
+
return this.predefinedManagedImage(scope, id, opts, this.WINDOWS_SERVER_2022_CORE_CONFIG);
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Imports the Windows Server 2022 Full Amazon-managed image
|
|
253
|
+
*
|
|
254
|
+
* @param scope The construct scope
|
|
255
|
+
* @param id Identifier of the construct
|
|
256
|
+
* @param opts The Amazon-managed image attributes
|
|
257
|
+
*
|
|
258
|
+
* @see https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/index.html
|
|
259
|
+
*/
|
|
260
|
+
static windowsServer2022Full(scope, id, opts) {
|
|
261
|
+
try {
|
|
262
|
+
jsiiDeprecationWarnings._aws_cdk_aws_imagebuilder_alpha_AmazonManagedImageOptions(opts);
|
|
263
|
+
}
|
|
264
|
+
catch (error) {
|
|
265
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
266
|
+
Error.captureStackTrace(error, this.windowsServer2022Full);
|
|
267
|
+
}
|
|
268
|
+
throw error;
|
|
269
|
+
}
|
|
270
|
+
return this.predefinedManagedImage(scope, id, opts, this.WINDOWS_SERVER_2022_FULL_CONFIG);
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Imports the Windows Server 2025 Core Amazon-managed image
|
|
274
|
+
*
|
|
275
|
+
* @param scope The construct scope
|
|
276
|
+
* @param id Identifier of the construct
|
|
277
|
+
* @param opts The Amazon-managed image attributes
|
|
278
|
+
*
|
|
279
|
+
* @see https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/index.html
|
|
280
|
+
*/
|
|
281
|
+
static windowsServer2025Core(scope, id, opts) {
|
|
282
|
+
try {
|
|
283
|
+
jsiiDeprecationWarnings._aws_cdk_aws_imagebuilder_alpha_AmazonManagedImageOptions(opts);
|
|
284
|
+
}
|
|
285
|
+
catch (error) {
|
|
286
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
287
|
+
Error.captureStackTrace(error, this.windowsServer2025Core);
|
|
288
|
+
}
|
|
289
|
+
throw error;
|
|
290
|
+
}
|
|
291
|
+
return this.predefinedManagedImage(scope, id, opts, this.WINDOWS_SERVER_2025_CORE_CONFIG);
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Imports the Windows Server 2025 Full Amazon-managed image
|
|
295
|
+
*
|
|
296
|
+
* @param scope The construct scope
|
|
297
|
+
* @param id Identifier of the construct
|
|
298
|
+
* @param opts The Amazon-managed image attributes
|
|
299
|
+
*
|
|
300
|
+
* @see https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/index.html
|
|
301
|
+
*/
|
|
302
|
+
static windowsServer2025Full(scope, id, opts) {
|
|
303
|
+
try {
|
|
304
|
+
jsiiDeprecationWarnings._aws_cdk_aws_imagebuilder_alpha_AmazonManagedImageOptions(opts);
|
|
305
|
+
}
|
|
306
|
+
catch (error) {
|
|
307
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
308
|
+
Error.captureStackTrace(error, this.windowsServer2025Full);
|
|
309
|
+
}
|
|
310
|
+
throw error;
|
|
311
|
+
}
|
|
312
|
+
return this.predefinedManagedImage(scope, id, opts, this.WINDOWS_SERVER_2025_FULL_CONFIG);
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Imports the macOS 14 Amazon-managed image
|
|
316
|
+
*
|
|
317
|
+
* @param scope The construct scope
|
|
318
|
+
* @param id Identifier of the construct
|
|
319
|
+
* @param opts The Amazon-managed image attributes
|
|
320
|
+
*
|
|
321
|
+
* @see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-mac-instances.html
|
|
322
|
+
*/
|
|
323
|
+
static macOS14(scope, id, opts) {
|
|
324
|
+
try {
|
|
325
|
+
jsiiDeprecationWarnings._aws_cdk_aws_imagebuilder_alpha_AmazonManagedImageOptions(opts);
|
|
326
|
+
}
|
|
327
|
+
catch (error) {
|
|
328
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
329
|
+
Error.captureStackTrace(error, this.macOS14);
|
|
330
|
+
}
|
|
331
|
+
throw error;
|
|
332
|
+
}
|
|
333
|
+
return this.predefinedManagedImage(scope, id, opts, this.MACOS_14_CONFIG);
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* Imports the macOS 15 Amazon-managed image
|
|
337
|
+
*
|
|
338
|
+
* @param scope The construct scope
|
|
339
|
+
* @param id Identifier of the construct
|
|
340
|
+
* @param opts The Amazon-managed image attributes
|
|
341
|
+
*
|
|
342
|
+
* @see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-mac-instances.html
|
|
343
|
+
*/
|
|
344
|
+
static macOS15(scope, id, opts) {
|
|
345
|
+
try {
|
|
346
|
+
jsiiDeprecationWarnings._aws_cdk_aws_imagebuilder_alpha_AmazonManagedImageOptions(opts);
|
|
347
|
+
}
|
|
348
|
+
catch (error) {
|
|
349
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
350
|
+
Error.captureStackTrace(error, this.macOS15);
|
|
351
|
+
}
|
|
352
|
+
throw error;
|
|
353
|
+
}
|
|
354
|
+
return this.predefinedManagedImage(scope, id, opts, this.MACOS_15_CONFIG);
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* Imports an Amazon-managed image from its attributes
|
|
358
|
+
*
|
|
359
|
+
* @param scope The construct scope
|
|
360
|
+
* @param id Identifier of the construct
|
|
361
|
+
* @param attrs - The Amazon-managed image attributes
|
|
362
|
+
*/
|
|
363
|
+
static fromAmazonManagedImageAttributes(scope, id, attrs) {
|
|
364
|
+
try {
|
|
365
|
+
jsiiDeprecationWarnings._aws_cdk_aws_imagebuilder_alpha_AmazonManagedImageAttributes(attrs);
|
|
366
|
+
}
|
|
367
|
+
catch (error) {
|
|
368
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
369
|
+
Error.captureStackTrace(error, this.fromAmazonManagedImageAttributes);
|
|
370
|
+
}
|
|
371
|
+
throw error;
|
|
372
|
+
}
|
|
373
|
+
return image_1.Image.fromImageArn(scope, id, cdk.Stack.of(scope).formatArn({
|
|
374
|
+
service: 'imagebuilder',
|
|
375
|
+
account: 'aws',
|
|
376
|
+
resource: 'image',
|
|
377
|
+
resourceName: `${attrs.imageName}/${attrs.imageVersion ?? constants_1.LATEST_VERSION}`,
|
|
378
|
+
}));
|
|
379
|
+
}
|
|
380
|
+
/**
|
|
381
|
+
* Imports an Amazon-managed image from its name
|
|
382
|
+
*
|
|
383
|
+
* @param scope The construct scope
|
|
384
|
+
* @param id Identifier of the construct
|
|
385
|
+
* @param amazonManagedImageName - The name of the Amazon-managed image
|
|
386
|
+
*/
|
|
387
|
+
static fromAmazonManagedImageName(scope, id, amazonManagedImageName) {
|
|
388
|
+
return this.fromAmazonManagedImageAttributes(scope, id, { imageName: amazonManagedImageName });
|
|
389
|
+
}
|
|
390
|
+
static AMAZON_LINUX_2_CONFIG = {
|
|
391
|
+
image: 'Amazon Linux 2',
|
|
392
|
+
supportedCombinations: {
|
|
393
|
+
[`${image_1.ImageType.AMI}-${image_1.ImageArchitecture.X86_64}`]: 'amazon-linux-2-x86',
|
|
394
|
+
[`${image_1.ImageType.AMI}-${image_1.ImageArchitecture.ARM64}`]: 'amazon-linux-2-arm64',
|
|
395
|
+
[`${image_1.ImageType.DOCKER}-${image_1.ImageArchitecture.X86_64}`]: 'amazon-linux-x86-2',
|
|
396
|
+
},
|
|
397
|
+
};
|
|
398
|
+
static AMAZON_LINUX_2023_CONFIG = {
|
|
399
|
+
image: 'Amazon Linux 2023',
|
|
400
|
+
supportedCombinations: {
|
|
401
|
+
[`${image_1.ImageType.AMI}-${image_1.ImageArchitecture.X86_64}`]: 'amazon-linux-2023-x86',
|
|
402
|
+
[`${image_1.ImageType.AMI}-${image_1.ImageArchitecture.ARM64}`]: 'amazon-linux-2023-arm64',
|
|
403
|
+
[`${image_1.ImageType.DOCKER}-${image_1.ImageArchitecture.X86_64}`]: 'amazon-linux-2023-x86-2023',
|
|
404
|
+
},
|
|
405
|
+
};
|
|
406
|
+
static RED_HAT_ENTERPRISE_LINUX_10_CONFIG = {
|
|
407
|
+
image: 'Red Hat Enterprise Linux 10',
|
|
408
|
+
supportedCombinations: {
|
|
409
|
+
[`${image_1.ImageType.AMI}-${image_1.ImageArchitecture.X86_64}`]: 'red-hat-enterprise-linux-10-x86',
|
|
410
|
+
[`${image_1.ImageType.AMI}-${image_1.ImageArchitecture.ARM64}`]: 'red-hat-enterprise-linux-10-arm64',
|
|
411
|
+
},
|
|
412
|
+
};
|
|
413
|
+
static SUSE_LINUX_ENTERPRISE_SERVER_15_CONFIG = {
|
|
414
|
+
image: 'SUSE Linux Enterprise Server 15',
|
|
415
|
+
supportedCombinations: {
|
|
416
|
+
[`${image_1.ImageType.AMI}-${image_1.ImageArchitecture.X86_64}`]: 'suse-linux-enterprise-server-15-x86',
|
|
417
|
+
[`${image_1.ImageType.AMI}-${image_1.ImageArchitecture.ARM64}`]: 'suse-linux-enterprise-server-15-arm64',
|
|
418
|
+
},
|
|
419
|
+
};
|
|
420
|
+
static UBUNTU_SERVER_22_04_CONFIG = {
|
|
421
|
+
image: 'Ubuntu 22.04',
|
|
422
|
+
supportedCombinations: {
|
|
423
|
+
[`${image_1.ImageType.AMI}-${image_1.ImageArchitecture.X86_64}`]: 'ubuntu-server-22-lts-x86',
|
|
424
|
+
[`${image_1.ImageType.AMI}-${image_1.ImageArchitecture.ARM64}`]: 'ubuntu-server-22-lts-arm64',
|
|
425
|
+
[`${image_1.ImageType.DOCKER}-${image_1.ImageArchitecture.X86_64}`]: 'ubuntu-22-x86-22-04',
|
|
426
|
+
},
|
|
427
|
+
};
|
|
428
|
+
static UBUNTU_SERVER_24_04_CONFIG = {
|
|
429
|
+
image: 'Ubuntu 24.04',
|
|
430
|
+
supportedCombinations: {
|
|
431
|
+
[`${image_1.ImageType.AMI}-${image_1.ImageArchitecture.X86_64}`]: 'ubuntu-server-24-lts-x86',
|
|
432
|
+
[`${image_1.ImageType.AMI}-${image_1.ImageArchitecture.ARM64}`]: 'ubuntu-server-24-lts-arm64',
|
|
433
|
+
[`${image_1.ImageType.DOCKER}-${image_1.ImageArchitecture.X86_64}`]: 'ubuntu-24-x86-24-04',
|
|
434
|
+
},
|
|
435
|
+
};
|
|
436
|
+
static WINDOWS_SERVER_2016_CORE_CONFIG = {
|
|
437
|
+
image: 'Windows Server 2016 Core',
|
|
438
|
+
supportedCombinations: {
|
|
439
|
+
[`${image_1.ImageType.AMI}-${image_1.ImageArchitecture.X86_64}`]: 'windows-server-2016-english-core-base-x86',
|
|
440
|
+
[`${image_1.ImageType.DOCKER}-${image_1.ImageArchitecture.X86_64}`]: 'windows-server-2016-x86-core-ltsc2016-amd64',
|
|
441
|
+
},
|
|
442
|
+
};
|
|
443
|
+
static WINDOWS_SERVER_2016_FULL_CONFIG = {
|
|
444
|
+
image: 'Windows Server 2016 Full',
|
|
445
|
+
supportedCombinations: {
|
|
446
|
+
[`${image_1.ImageType.AMI}-${image_1.ImageArchitecture.X86_64}`]: 'windows-server-2016-english-full-base-x86',
|
|
447
|
+
},
|
|
448
|
+
};
|
|
449
|
+
static WINDOWS_SERVER_2019_CORE_CONFIG = {
|
|
450
|
+
image: 'Windows Server 2019 Core',
|
|
451
|
+
supportedCombinations: {
|
|
452
|
+
[`${image_1.ImageType.AMI}-${image_1.ImageArchitecture.X86_64}`]: 'windows-server-2019-english-core-base-x86',
|
|
453
|
+
[`${image_1.ImageType.DOCKER}-${image_1.ImageArchitecture.X86_64}`]: 'windows-server-2019-x86-core-ltsc2019-amd64',
|
|
454
|
+
},
|
|
455
|
+
};
|
|
456
|
+
static WINDOWS_SERVER_2019_FULL_CONFIG = {
|
|
457
|
+
image: 'Windows Server 2019 Full',
|
|
458
|
+
supportedCombinations: {
|
|
459
|
+
[`${image_1.ImageType.AMI}-${image_1.ImageArchitecture.X86_64}`]: 'windows-server-2019-english-full-base-x86',
|
|
460
|
+
},
|
|
461
|
+
};
|
|
462
|
+
static WINDOWS_SERVER_2022_CORE_CONFIG = {
|
|
463
|
+
image: 'Windows Server 2022 Core',
|
|
464
|
+
supportedCombinations: {
|
|
465
|
+
[`${image_1.ImageType.AMI}-${image_1.ImageArchitecture.X86_64}`]: 'windows-server-2022-english-core-base-x86',
|
|
466
|
+
},
|
|
467
|
+
};
|
|
468
|
+
static WINDOWS_SERVER_2022_FULL_CONFIG = {
|
|
469
|
+
image: 'Windows Server 2022 Full',
|
|
470
|
+
supportedCombinations: {
|
|
471
|
+
[`${image_1.ImageType.AMI}-${image_1.ImageArchitecture.X86_64}`]: 'windows-server-2022-english-full-base-x86',
|
|
472
|
+
},
|
|
473
|
+
};
|
|
474
|
+
static WINDOWS_SERVER_2025_CORE_CONFIG = {
|
|
475
|
+
image: 'Windows Server 2025 Core',
|
|
476
|
+
supportedCombinations: {
|
|
477
|
+
[`${image_1.ImageType.AMI}-${image_1.ImageArchitecture.X86_64}`]: 'windows-server-2025-english-core-base-x86',
|
|
478
|
+
},
|
|
479
|
+
};
|
|
480
|
+
static WINDOWS_SERVER_2025_FULL_CONFIG = {
|
|
481
|
+
image: 'Windows Server 2025 Full',
|
|
482
|
+
supportedCombinations: {
|
|
483
|
+
[`${image_1.ImageType.AMI}-${image_1.ImageArchitecture.X86_64}`]: 'windows-server-2025-english-full-base-x86',
|
|
484
|
+
},
|
|
485
|
+
};
|
|
486
|
+
static MACOS_14_CONFIG = {
|
|
487
|
+
image: 'macOS 14',
|
|
488
|
+
supportedCombinations: {
|
|
489
|
+
[`${image_1.ImageType.AMI}-${image_1.ImageArchitecture.X86_64}`]: 'macos-sonoma-x86',
|
|
490
|
+
[`${image_1.ImageType.AMI}-${image_1.ImageArchitecture.ARM64}`]: 'macos-sonoma-arm64',
|
|
491
|
+
},
|
|
492
|
+
};
|
|
493
|
+
static MACOS_15_CONFIG = {
|
|
494
|
+
image: 'macOS 15',
|
|
495
|
+
supportedCombinations: {
|
|
496
|
+
[`${image_1.ImageType.AMI}-${image_1.ImageArchitecture.X86_64}`]: 'macos-sequoia-x86',
|
|
497
|
+
[`${image_1.ImageType.AMI}-${image_1.ImageArchitecture.ARM64}`]: 'macos-sequoia-arm64',
|
|
498
|
+
},
|
|
499
|
+
};
|
|
500
|
+
static validatePredefinedManagedImageOptions(scope, opts, image) {
|
|
501
|
+
if (cdk.Token.isUnresolved(opts.imageArchitecture)) {
|
|
502
|
+
throw new cdk.ValidationError(`architecture cannot be a token for ${image}`, scope);
|
|
503
|
+
}
|
|
504
|
+
if (cdk.Token.isUnresolved(opts.imageType)) {
|
|
505
|
+
throw new cdk.ValidationError(`type cannot be a token for ${image}`, scope);
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
static predefinedManagedImage(scope, id, opts, config) {
|
|
509
|
+
this.validatePredefinedManagedImageOptions(scope, opts, config.image);
|
|
510
|
+
const key = `${opts.imageType}-${opts.imageArchitecture}`;
|
|
511
|
+
const imageName = config.supportedCombinations[key];
|
|
512
|
+
if (!imageName) {
|
|
513
|
+
throw new cdk.ValidationError(`architecture ${opts.imageArchitecture} with type ${opts.imageType} is not a supported architecture and type for ${config.image}`, scope);
|
|
514
|
+
}
|
|
515
|
+
return this.fromAmazonManagedImageAttributes(scope, id, {
|
|
516
|
+
imageName,
|
|
517
|
+
imageVersion: opts.imageVersion,
|
|
518
|
+
});
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
exports.AmazonManagedImage = AmazonManagedImage;
|
|
522
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1hem9uLW1hbmFnZWQtaW1hZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhbWF6b24tbWFuYWdlZC1pbWFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1DQUFtQztBQUVuQyxtQ0FBc0U7QUFDdEUsbURBQXFEO0FBK0NyRDs7R0FFRztBQUNILE1BQWEsa0JBQWtCOztJQUM3Qjs7Ozs7Ozs7O09BU0c7SUFDSSxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLElBQStCOzs7Ozs7Ozs7O1FBQ3RGLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0tBQ2pGO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksTUFBTSxDQUFDLGVBQWUsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxJQUErQjs7Ozs7Ozs7OztRQUN6RixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQztLQUNwRjtJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksTUFBTSxDQUFDLHVCQUF1QixDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLElBQStCOzs7Ozs7Ozs7O1FBQ2pHLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO0tBQzlGO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSxNQUFNLENBQUMsMkJBQTJCLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsSUFBK0I7Ozs7Ozs7Ozs7UUFDckcsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLHNDQUFzQyxDQUFDLENBQUM7S0FDbEc7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsSUFBK0I7Ozs7Ozs7Ozs7UUFDMUYsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLDBCQUEwQixDQUFDLENBQUM7S0FDdEY7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsSUFBK0I7Ozs7Ozs7Ozs7UUFDMUYsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLDBCQUEwQixDQUFDLENBQUM7S0FDdEY7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSxNQUFNLENBQUMscUJBQXFCLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsSUFBK0I7Ozs7Ozs7Ozs7UUFDL0YsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLCtCQUErQixDQUFDLENBQUM7S0FDM0Y7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxJQUErQjs7Ozs7Ozs7OztRQUMvRixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsK0JBQStCLENBQUMsQ0FBQztLQUMzRjtJQUVEOzs7Ozs7Ozs7T0FTRztJQUNJLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxJQUErQjs7Ozs7Ozs7OztRQUMvRixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsK0JBQStCLENBQUMsQ0FBQztLQUMzRjtJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksTUFBTSxDQUFDLHFCQUFxQixDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLElBQStCOzs7Ozs7Ozs7O1FBQy9GLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0tBQzNGO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSxNQUFNLENBQUMscUJBQXFCLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsSUFBK0I7Ozs7Ozs7Ozs7UUFDL0YsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLCtCQUErQixDQUFDLENBQUM7S0FDM0Y7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxJQUErQjs7Ozs7Ozs7OztRQUMvRixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsK0JBQStCLENBQUMsQ0FBQztLQUMzRjtJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksTUFBTSxDQUFDLHFCQUFxQixDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLElBQStCOzs7Ozs7Ozs7O1FBQy9GLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0tBQzNGO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSxNQUFNLENBQUMscUJBQXFCLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsSUFBK0I7Ozs7Ozs7Ozs7UUFDL0YsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLCtCQUErQixDQUFDLENBQUM7S0FDM0Y7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsSUFBK0I7Ozs7Ozs7Ozs7UUFDakYsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0tBQzNFO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLElBQStCOzs7Ozs7Ozs7O1FBQ2pGLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztLQUMzRTtJQUVEOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FDNUMsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLEtBQW1DOzs7Ozs7Ozs7O1FBRW5DLE9BQU8sYUFBSyxDQUFDLFlBQVksQ0FDdkIsS0FBSyxFQUNMLEVBQUUsRUFDRixHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDNUIsT0FBTyxFQUFFLGNBQWM7WUFDdkIsT0FBTyxFQUFFLEtBQUs7WUFDZCxRQUFRLEVBQUUsT0FBTztZQUNqQixZQUFZLEVBQUUsR0FBRyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQyxZQUFZLElBQUksMEJBQWMsRUFBRTtTQUMzRSxDQUFDLENBQ0gsQ0FBQztLQUNIO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLDBCQUEwQixDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLHNCQUE4QjtRQUNuRyxPQUFPLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLENBQUMsQ0FBQztLQUNoRztJQUVPLE1BQU0sQ0FBVSxxQkFBcUIsR0FBNkI7UUFDeEUsS0FBSyxFQUFFLGdCQUFnQjtRQUN2QixxQkFBcUIsRUFBRTtZQUNyQixDQUFDLEdBQUcsaUJBQVMsQ0FBQyxHQUFHLElBQUkseUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxvQkFBb0I7WUFDdEUsQ0FBQyxHQUFHLGlCQUFTLENBQUMsR0FBRyxJQUFJLHlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsc0JBQXNCO1lBQ3ZFLENBQUMsR0FBRyxpQkFBUyxDQUFDLE1BQU0sSUFBSSx5QkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLG9CQUFvQjtTQUMxRTtLQUNGLENBQUM7SUFFTSxNQUFNLENBQVUsd0JBQXdCLEdBQTZCO1FBQzNFLEtBQUssRUFBRSxtQkFBbUI7UUFDMUIscUJBQXFCLEVBQUU7WUFDckIsQ0FBQyxHQUFHLGlCQUFTLENBQUMsR0FBRyxJQUFJLHlCQUFpQixDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsdUJBQXVCO1lBQ3pFLENBQUMsR0FBRyxpQkFBUyxDQUFDLEdBQUcsSUFBSSx5QkFBaUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLHlCQUF5QjtZQUMxRSxDQUFDLEdBQUcsaUJBQVMsQ0FBQyxNQUFNLElBQUkseUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSw0QkFBNEI7U0FDbEY7S0FDRixDQUFDO0lBRU0sTUFBTSxDQUFVLGtDQUFrQyxHQUE2QjtRQUNyRixLQUFLLEVBQUUsNkJBQTZCO1FBQ3BDLHFCQUFxQixFQUFFO1lBQ3JCLENBQUMsR0FBRyxpQkFBUyxDQUFDLEdBQUcsSUFBSSx5QkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLGlDQUFpQztZQUNuRixDQUFDLEdBQUcsaUJBQVMsQ0FBQyxHQUFHLElBQUkseUJBQWlCLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxtQ0FBbUM7U0FDckY7S0FDRixDQUFDO0lBRU0sTUFBTSxDQUFVLHNDQUFzQyxHQUE2QjtRQUN6RixLQUFLLEVBQUUsaUNBQWlDO1FBQ3hDLHFCQUFxQixFQUFFO1lBQ3JCLENBQUMsR0FBRyxpQkFBUyxDQUFDLEdBQUcsSUFBSSx5QkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLHFDQUFxQztZQUN2RixDQUFDLEdBQUcsaUJBQVMsQ0FBQyxHQUFHLElBQUkseUJBQWlCLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSx1Q0FBdUM7U0FDekY7S0FDRixDQUFDO0lBRU0sTUFBTSxDQUFVLDBCQUEwQixHQUE2QjtRQUM3RSxLQUFLLEVBQUUsY0FBYztRQUNyQixxQkFBcUIsRUFBRTtZQUNyQixDQUFDLEdBQUcsaUJBQVMsQ0FBQyxHQUFHLElBQUkseUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSwwQkFBMEI7WUFDNUUsQ0FBQyxHQUFHLGlCQUFTLENBQUMsR0FBRyxJQUFJLHlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsNEJBQTRCO1lBQzdFLENBQUMsR0FBRyxpQkFBUyxDQUFDLE1BQU0sSUFBSSx5QkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLHFCQUFxQjtTQUMzRTtLQUNGLENBQUM7SUFFTSxNQUFNLENBQVUsMEJBQTBCLEdBQTZCO1FBQzdFLEtBQUssRUFBRSxjQUFjO1FBQ3JCLHFCQUFxQixFQUFFO1lBQ3JCLENBQUMsR0FBRyxpQkFBUyxDQUFDLEdBQUcsSUFBSSx5QkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLDBCQUEwQjtZQUM1RSxDQUFDLEdBQUcsaUJBQVMsQ0FBQyxHQUFHLElBQUkseUJBQWlCLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSw0QkFBNEI7WUFDN0UsQ0FBQyxHQUFHLGlCQUFTLENBQUMsTUFBTSxJQUFJLHlCQUFpQixDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUscUJBQXFCO1NBQzNFO0tBQ0YsQ0FBQztJQUVNLE1BQU0sQ0FBVSwrQkFBK0IsR0FBNkI7UUFDbEYsS0FBSyxFQUFFLDBCQUEwQjtRQUNqQyxxQkFBcUIsRUFBRTtZQUNyQixDQUFDLEdBQUcsaUJBQVMsQ0FBQyxHQUFHLElBQUkseUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSwyQ0FBMkM7WUFDN0YsQ0FBQyxHQUFHLGlCQUFTLENBQUMsTUFBTSxJQUFJLHlCQUFpQixDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsNkNBQTZDO1NBQ25HO0tBQ0YsQ0FBQztJQUVNLE1BQU0sQ0FBVSwrQkFBK0IsR0FBNkI7UUFDbEYsS0FBSyxFQUFFLDBCQUEwQjtRQUNqQyxxQkFBcUIsRUFBRTtZQUNyQixDQUFDLEdBQUcsaUJBQVMsQ0FBQyxHQUFHLElBQUkseUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSwyQ0FBMkM7U0FDOUY7S0FDRixDQUFDO0lBRU0sTUFBTSxDQUFVLCtCQUErQixHQUE2QjtRQUNsRixLQUFLLEVBQUUsMEJBQTBCO1FBQ2pDLHFCQUFxQixFQUFFO1lBQ3JCLENBQUMsR0FBRyxpQkFBUyxDQUFDLEdBQUcsSUFBSSx5QkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLDJDQUEyQztZQUM3RixDQUFDLEdBQUcsaUJBQVMsQ0FBQyxNQUFNLElBQUkseUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSw2Q0FBNkM7U0FDbkc7S0FDRixDQUFDO0lBRU0sTUFBTSxDQUFVLCtCQUErQixHQUE2QjtRQUNsRixLQUFLLEVBQUUsMEJBQTBCO1FBQ2pDLHFCQUFxQixFQUFFO1lBQ3JCLENBQUMsR0FBRyxpQkFBUyxDQUFDLEdBQUcsSUFBSSx5QkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLDJDQUEyQztTQUM5RjtLQUNGLENBQUM7SUFFTSxNQUFNLENBQVUsK0JBQStCLEdBQTZCO1FBQ2xGLEtBQUssRUFBRSwwQkFBMEI7UUFDakMscUJBQXFCLEVBQUU7WUFDckIsQ0FBQyxHQUFHLGlCQUFTLENBQUMsR0FBRyxJQUFJLHlCQUFpQixDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsMkNBQTJDO1NBQzlGO0tBQ0YsQ0FBQztJQUVNLE1BQU0sQ0FBVSwrQkFBK0IsR0FBNkI7UUFDbEYsS0FBSyxFQUFFLDBCQUEwQjtRQUNqQyxxQkFBcUIsRUFBRTtZQUNyQixDQUFDLEdBQUcsaUJBQVMsQ0FBQyxHQUFHLElBQUkseUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSwyQ0FBMkM7U0FDOUY7S0FDRixDQUFDO0lBRU0sTUFBTSxDQUFVLCtCQUErQixHQUE2QjtRQUNsRixLQUFLLEVBQUUsMEJBQTBCO1FBQ2pDLHFCQUFxQixFQUFFO1lBQ3JCLENBQUMsR0FBRyxpQkFBUyxDQUFDLEdBQUcsSUFBSSx5QkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLDJDQUEyQztTQUM5RjtLQUNGLENBQUM7SUFFTSxNQUFNLENBQVUsK0JBQStCLEdBQTZCO1FBQ2xGLEtBQUssRUFBRSwwQkFBMEI7UUFDakMscUJBQXFCLEVBQUU7WUFDckIsQ0FBQyxHQUFHLGlCQUFTLENBQUMsR0FBRyxJQUFJLHlCQUFpQixDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsMkNBQTJDO1NBQzlGO0tBQ0YsQ0FBQztJQUVNLE1BQU0sQ0FBVSxlQUFlLEdBQTZCO1FBQ2xFLEtBQUssRUFBRSxVQUFVO1FBQ2pCLHFCQUFxQixFQUFFO1lBQ3JCLENBQUMsR0FBRyxpQkFBUyxDQUFDLEdBQUcsSUFBSSx5QkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLGtCQUFrQjtZQUNwRSxDQUFDLEdBQUcsaUJBQVMsQ0FBQyxHQUFHLElBQUkseUJBQWlCLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxvQkFBb0I7U0FDdEU7S0FDRixDQUFDO0lBRU0sTUFBTSxDQUFVLGVBQWUsR0FBNkI7UUFDbEUsS0FBSyxFQUFFLFVBQVU7UUFDakIscUJBQXFCLEVBQUU7WUFDckIsQ0FBQyxHQUFHLGlCQUFTLENBQUMsR0FBRyxJQUFJLHlCQUFpQixDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsbUJBQW1CO1lBQ3JFLENBQUMsR0FBRyxpQkFBUyxDQUFDLEdBQUcsSUFBSSx5QkFBaUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLHFCQUFxQjtTQUN2RTtLQUNGLENBQUM7SUFFTSxNQUFNLENBQUMscUNBQXFDLENBQ2xELEtBQWdCLEVBQ2hCLElBQStCLEVBQy9CLEtBQWE7UUFFYixJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7WUFDbkQsTUFBTSxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUMsc0NBQXNDLEtBQUssRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3RGLENBQUM7UUFFRCxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQzNDLE1BQU0sSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDLDhCQUE4QixLQUFLLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM5RSxDQUFDO0tBQ0Y7SUFFTyxNQUFNLENBQUMsc0JBQXNCLENBQ25DLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixJQUErQixFQUMvQixNQUFnQztRQUVoQyxJQUFJLENBQUMscUNBQXFDLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdEUsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQzFELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVwRCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDZixNQUFNLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FDM0IsZ0JBQWdCLElBQUksQ0FBQyxpQkFBaUIsY0FBYyxJQUFJLENBQUMsU0FBUyxpREFBaUQsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUNqSSxLQUFLLENBQ04sQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ3RELFNBQVM7WUFDVCxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7U0FDaEMsQ0FBQyxDQUFDO0tBQ0o7O0FBNVpILGdEQTZaQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IElJbWFnZSwgSW1hZ2UsIEltYWdlQXJjaGl0ZWN0dXJlLCBJbWFnZVR5cGUgfSBmcm9tICcuL2ltYWdlJztcbmltcG9ydCB7IExBVEVTVF9WRVJTSU9OIH0gZnJvbSAnLi9wcml2YXRlL2NvbnN0YW50cyc7XG5cbi8qKlxuICogQXR0cmlidXRlcyBmb3IgaW1wb3J0aW5nIGFuIEFtYXpvbi1tYW5hZ2VkIGltYWdlIGJ5IG5hbWUgKGFuZCBvcHRpb25hbGx5IGEgdmVyc2lvbilcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBbWF6b25NYW5hZ2VkSW1hZ2VBdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBBbWF6b24tbWFuYWdlZCBpbWFnZS4gVGhlIHByb3ZpZGVkIG5hbWUgbXVzdCBiZSBub3JtYWxpemVkIGJ5IGNvbnZlcnRpbmcgYWxsIGFscGhhYmV0aWNhbFxuICAgKiBjaGFyYWN0ZXJzIHRvIGxvd2VyY2FzZSwgYW5kIHJlcGxhY2luZyBhbGwgc3BhY2VzIGFuZCB1bmRlcnNjb3JlcyB3aXRoIGh5cGhlbnMuXG4gICAqL1xuICByZWFkb25seSBpbWFnZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHZlcnNpb24gb2YgdGhlIEFtYXpvbi1tYW5hZ2VkIGltYWdlXG4gICAqXG4gICAqIEBkZWZhdWx0IHgueC54XG4gICAqL1xuICByZWFkb25seSBpbWFnZVZlcnNpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3Igc2VsZWN0aW5nIGEgcHJlZGVmaW5lZCBBbWF6b24tbWFuYWdlZCBpbWFnZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFtYXpvbk1hbmFnZWRJbWFnZU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGFyY2hpdGVjdHVyZSBvZiB0aGUgQW1hem9uLW1hbmFnZWQgaW1hZ2VcbiAgICovXG4gIHJlYWRvbmx5IGltYWdlQXJjaGl0ZWN0dXJlOiBJbWFnZUFyY2hpdGVjdHVyZTtcblxuICAvKipcbiAgICogVGhlIHR5cGUgb2YgdGhlIEFtYXpvbi1tYW5hZ2VkIGltYWdlXG4gICAqL1xuICByZWFkb25seSBpbWFnZVR5cGU6IEltYWdlVHlwZTtcblxuICAvKipcbiAgICogVGhlIHZlcnNpb24gb2YgdGhlIEFtYXpvbi1tYW5hZ2VkIGltYWdlXG4gICAqXG4gICAqIEBkZWZhdWx0IHgueC54XG4gICAqL1xuICByZWFkb25seSBpbWFnZVZlcnNpb24/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBBbWF6b25NYW5hZ2VkSW1hZ2VDb25maWcge1xuICByZWFkb25seSBpbWFnZTogc3RyaW5nO1xuICByZWFkb25seSBzdXBwb3J0ZWRDb21iaW5hdGlvbnM6IHsgW2NvbWJvOiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuLyoqXG4gKiBIZWxwZXIgY2xhc3MgZm9yIHdvcmtpbmcgd2l0aCBBbWF6b24tbWFuYWdlZCBpbWFnZXNcbiAqL1xuZXhwb3J0IGNsYXNzIEFtYXpvbk1hbmFnZWRJbWFnZSB7XG4gIC8qKlxuICAgKiBJbXBvcnRzIHRoZSBBbWF6b24gTGludXggMiBBbWF6b24tbWFuYWdlZCBpbWFnZVxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBvcHRzIFRoZSBBbWF6b24tbWFuYWdlZCBpbWFnZSBhdHRyaWJ1dGVzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xpbnV4L2FsMi91Zy9pbmRleC5odG1sXG4gICAqIEBzZWUgaHR0cHM6Ly9nYWxsZXJ5LmVjci5hd3MvYW1hem9ubGludXgvYW1hem9ubGludXhcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYW1hem9uTGludXgyKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdHM6IEFtYXpvbk1hbmFnZWRJbWFnZU9wdGlvbnMpOiBJSW1hZ2Uge1xuICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRNYW5hZ2VkSW1hZ2Uoc2NvcGUsIGlkLCBvcHRzLCB0aGlzLkFNQVpPTl9MSU5VWF8yX0NPTkZJRyk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0cyB0aGUgQW1hem9uIExpbnV4IDIwMjMgQW1hem9uLW1hbmFnZWQgaW1hZ2VcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gb3B0cyBUaGUgQW1hem9uLW1hbmFnZWQgaW1hZ2UgYXR0cmlidXRlc1xuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9saW51eC9hbDIwMjMvdWcvd2hhdC1pcy1hbWF6b24tbGludXguaHRtbFxuICAgKiBAc2VlIGh0dHBzOi8vZ2FsbGVyeS5lY3IuYXdzL2FtYXpvbmxpbnV4L2FtYXpvbmxpbnV4XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFtYXpvbkxpbnV4MjAyMyhzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBvcHRzOiBBbWF6b25NYW5hZ2VkSW1hZ2VPcHRpb25zKTogSUltYWdlIHtcbiAgICByZXR1cm4gdGhpcy5wcmVkZWZpbmVkTWFuYWdlZEltYWdlKHNjb3BlLCBpZCwgb3B0cywgdGhpcy5BTUFaT05fTElOVVhfMjAyM19DT05GSUcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgdGhlIFJlZCBIYXQgRW50ZXJwcmlzZSBMaW51eCAxMCBBbWF6b24tbWFuYWdlZCBpbWFnZVxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBvcHRzIFRoZSBBbWF6b24tbWFuYWdlZCBpbWFnZSBhdHRyaWJ1dGVzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9hd3MuYW1hem9uLmNvbS9wYXJ0bmVycy9yZWRoYXQvZmFxc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWRIYXRFbnRlcnByaXNlTGludXgxMChzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBvcHRzOiBBbWF6b25NYW5hZ2VkSW1hZ2VPcHRpb25zKTogSUltYWdlIHtcbiAgICByZXR1cm4gdGhpcy5wcmVkZWZpbmVkTWFuYWdlZEltYWdlKHNjb3BlLCBpZCwgb3B0cywgdGhpcy5SRURfSEFUX0VOVEVSUFJJU0VfTElOVVhfMTBfQ09ORklHKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIHRoZSBTVVNFIExpbnV4IEVudGVycHJpc2UgU2VydmVyIDE1IEFtYXpvbi1tYW5hZ2VkIGltYWdlXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIG9wdHMgVGhlIEFtYXpvbi1tYW5hZ2VkIGltYWdlIGF0dHJpYnV0ZXNcbiAgICpcbiAgICogQHNlZSBodHRwczovL2F3cy5hbWF6b24uY29tL2xpbnV4L2NvbW1lcmNpYWwtbGludXgvZmFxcy9cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgc3VzZUxpbnV4RW50ZXJwcmlzZVNlcnZlcjE1KHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdHM6IEFtYXpvbk1hbmFnZWRJbWFnZU9wdGlvbnMpOiBJSW1hZ2Uge1xuICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRNYW5hZ2VkSW1hZ2Uoc2NvcGUsIGlkLCBvcHRzLCB0aGlzLlNVU0VfTElOVVhfRU5URVJQUklTRV9TRVJWRVJfMTVfQ09ORklHKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIHRoZSBVYnVudHUgMjIuMDQgQW1hem9uLW1hbmFnZWQgaW1hZ2VcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gb3B0cyBUaGUgQW1hem9uLW1hbmFnZWQgaW1hZ2UgYXR0cmlidXRlc1xuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jdW1lbnRhdGlvbi51YnVudHUuY29tL2F3c1xuICAgKiBAc2VlIGh0dHBzOi8vaHViLmRvY2tlci5jb20vXy91YnVudHVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdWJ1bnR1U2VydmVyMjIwNChzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBvcHRzOiBBbWF6b25NYW5hZ2VkSW1hZ2VPcHRpb25zKTogSUltYWdlIHtcbiAgICByZXR1cm4gdGhpcy5wcmVkZWZpbmVkTWFuYWdlZEltYWdlKHNjb3BlLCBpZCwgb3B0cywgdGhpcy5VQlVOVFVfU0VSVkVSXzIyXzA0X0NPTkZJRyk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0cyB0aGUgVWJ1bnR1IDI0LjA0IEFtYXpvbi1tYW5hZ2VkIGltYWdlXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIG9wdHMgVGhlIEFtYXpvbi1tYW5hZ2VkIGltYWdlIGF0dHJpYnV0ZXNcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3VtZW50YXRpb24udWJ1bnR1LmNvbS9hd3NcbiAgICogQHNlZSBodHRwczovL2h1Yi5kb2NrZXIuY29tL18vdWJ1bnR1XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHVidW50dVNlcnZlcjI0MDQoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0czogQW1hem9uTWFuYWdlZEltYWdlT3B0aW9ucyk6IElJbWFnZSB7XG4gICAgcmV0dXJuIHRoaXMucHJlZGVmaW5lZE1hbmFnZWRJbWFnZShzY29wZSwgaWQsIG9wdHMsIHRoaXMuVUJVTlRVX1NFUlZFUl8yNF8wNF9DT05GSUcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgdGhlIFdpbmRvd3MgU2VydmVyIDIwMTYgQ29yZSBBbWF6b24tbWFuYWdlZCBpbWFnZVxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBvcHRzIFRoZSBBbWF6b24tbWFuYWdlZCBpbWFnZSBhdHRyaWJ1dGVzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2VjMi9sYXRlc3Qvd2luZG93cy1hbWktcmVmZXJlbmNlL2luZGV4Lmh0bWxcbiAgICogQHNlZSBodHRwczovL2h1Yi5kb2NrZXIuY29tL3IvbWljcm9zb2Z0L3dpbmRvd3Mtc2VydmVyY29yZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aW5kb3dzU2VydmVyMjAxNkNvcmUoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0czogQW1hem9uTWFuYWdlZEltYWdlT3B0aW9ucyk6IElJbWFnZSB7XG4gICAgcmV0dXJuIHRoaXMucHJlZGVmaW5lZE1hbmFnZWRJbWFnZShzY29wZSwgaWQsIG9wdHMsIHRoaXMuV0lORE9XU19TRVJWRVJfMjAxNl9DT1JFX0NPTkZJRyk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0cyB0aGUgV2luZG93cyBTZXJ2ZXIgMjAxNiBGdWxsIEFtYXpvbi1tYW5hZ2VkIGltYWdlXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIG9wdHMgVGhlIEFtYXpvbi1tYW5hZ2VkIGltYWdlIGF0dHJpYnV0ZXNcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWMyL2xhdGVzdC93aW5kb3dzLWFtaS1yZWZlcmVuY2UvaW5kZXguaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aW5kb3dzU2VydmVyMjAxNkZ1bGwoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0czogQW1hem9uTWFuYWdlZEltYWdlT3B0aW9ucyk6IElJbWFnZSB7XG4gICAgcmV0dXJuIHRoaXMucHJlZGVmaW5lZE1hbmFnZWRJbWFnZShzY29wZSwgaWQsIG9wdHMsIHRoaXMuV0lORE9XU19TRVJWRVJfMjAxNl9GVUxMX0NPTkZJRyk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0cyB0aGUgV2luZG93cyBTZXJ2ZXIgMjAxOSBDb3JlIEFtYXpvbi1tYW5hZ2VkIGltYWdlXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIG9wdHMgVGhlIEFtYXpvbi1tYW5hZ2VkIGltYWdlIGF0dHJpYnV0ZXNcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWMyL2xhdGVzdC93aW5kb3dzLWFtaS1yZWZlcmVuY2UvaW5kZXguaHRtbFxuICAgKiBAc2VlIGh0dHBzOi8vaHViLmRvY2tlci5jb20vci9taWNyb3NvZnQvd2luZG93cy1zZXJ2ZXJjb3JlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpbmRvd3NTZXJ2ZXIyMDE5Q29yZShzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBvcHRzOiBBbWF6b25NYW5hZ2VkSW1hZ2VPcHRpb25zKTogSUltYWdlIHtcbiAgICByZXR1cm4gdGhpcy5wcmVkZWZpbmVkTWFuYWdlZEltYWdlKHNjb3BlLCBpZCwgb3B0cywgdGhpcy5XSU5ET1dTX1NFUlZFUl8yMDE5X0NPUkVfQ09ORklHKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIHRoZSBXaW5kb3dzIFNlcnZlciAyMDE5IEZ1bGwgQW1hem9uLW1hbmFnZWQgaW1hZ2VcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gb3B0cyBUaGUgQW1hem9uLW1hbmFnZWQgaW1hZ2UgYXR0cmlidXRlc1xuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9lYzIvbGF0ZXN0L3dpbmRvd3MtYW1pLXJlZmVyZW5jZS9pbmRleC5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpbmRvd3NTZXJ2ZXIyMDE5RnVsbChzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBvcHRzOiBBbWF6b25NYW5hZ2VkSW1hZ2VPcHRpb25zKTogSUltYWdlIHtcbiAgICByZXR1cm4gdGhpcy5wcmVkZWZpbmVkTWFuYWdlZEltYWdlKHNjb3BlLCBpZCwgb3B0cywgdGhpcy5XSU5ET1dTX1NFUlZFUl8yMDE5X0ZVTExfQ09ORklHKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIHRoZSBXaW5kb3dzIFNlcnZlciAyMDIyIENvcmUgQW1hem9uLW1hbmFnZWQgaW1hZ2VcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gb3B0cyBUaGUgQW1hem9uLW1hbmFnZWQgaW1hZ2UgYXR0cmlidXRlc1xuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9lYzIvbGF0ZXN0L3dpbmRvd3MtYW1pLXJlZmVyZW5jZS9pbmRleC5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpbmRvd3NTZXJ2ZXIyMDIyQ29yZShzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBvcHRzOiBBbWF6b25NYW5hZ2VkSW1hZ2VPcHRpb25zKTogSUltYWdlIHtcbiAgICByZXR1cm4gdGhpcy5wcmVkZWZpbmVkTWFuYWdlZEltYWdlKHNjb3BlLCBpZCwgb3B0cywgdGhpcy5XSU5ET1dTX1NFUlZFUl8yMDIyX0NPUkVfQ09ORklHKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIHRoZSBXaW5kb3dzIFNlcnZlciAyMDIyIEZ1bGwgQW1hem9uLW1hbmFnZWQgaW1hZ2VcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gb3B0cyBUaGUgQW1hem9uLW1hbmFnZWQgaW1hZ2UgYXR0cmlidXRlc1xuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9lYzIvbGF0ZXN0L3dpbmRvd3MtYW1pLXJlZmVyZW5jZS9pbmRleC5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpbmRvd3NTZXJ2ZXIyMDIyRnVsbChzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBvcHRzOiBBbWF6b25NYW5hZ2VkSW1hZ2VPcHRpb25zKTogSUltYWdlIHtcbiAgICByZXR1cm4gdGhpcy5wcmVkZWZpbmVkTWFuYWdlZEltYWdlKHNjb3BlLCBpZCwgb3B0cywgdGhpcy5XSU5ET1dTX1NFUlZFUl8yMDIyX0ZVTExfQ09ORklHKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIHRoZSBXaW5kb3dzIFNlcnZlciAyMDI1IENvcmUgQW1hem9uLW1hbmFnZWQgaW1hZ2VcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gb3B0cyBUaGUgQW1hem9uLW1hbmFnZWQgaW1hZ2UgYXR0cmlidXRlc1xuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9lYzIvbGF0ZXN0L3dpbmRvd3MtYW1pLXJlZmVyZW5jZS9pbmRleC5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpbmRvd3NTZXJ2ZXIyMDI1Q29yZShzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBvcHRzOiBBbWF6b25NYW5hZ2VkSW1hZ2VPcHRpb25zKTogSUltYWdlIHtcbiAgICByZXR1cm4gdGhpcy5wcmVkZWZpbmVkTWFuYWdlZEltYWdlKHNjb3BlLCBpZCwgb3B0cywgdGhpcy5XSU5ET1dTX1NFUlZFUl8yMDI1X0NPUkVfQ09ORklHKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIHRoZSBXaW5kb3dzIFNlcnZlciAyMDI1IEZ1bGwgQW1hem9uLW1hbmFnZWQgaW1hZ2VcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gb3B0cyBUaGUgQW1hem9uLW1hbmFnZWQgaW1hZ2UgYXR0cmlidXRlc1xuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9lYzIvbGF0ZXN0L3dpbmRvd3MtYW1pLXJlZmVyZW5jZS9pbmRleC5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpbmRvd3NTZXJ2ZXIyMDI1RnVsbChzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBvcHRzOiBBbWF6b25NYW5hZ2VkSW1hZ2VPcHRpb25zKTogSUltYWdlIHtcbiAgICByZXR1cm4gdGhpcy5wcmVkZWZpbmVkTWFuYWdlZEltYWdlKHNjb3BlLCBpZCwgb3B0cywgdGhpcy5XSU5ET1dTX1NFUlZFUl8yMDI1X0ZVTExfQ09ORklHKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIHRoZSBtYWNPUyAxNCBBbWF6b24tbWFuYWdlZCBpbWFnZVxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBvcHRzIFRoZSBBbWF6b24tbWFuYWdlZCBpbWFnZSBhdHRyaWJ1dGVzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL2VjMi1tYWMtaW5zdGFuY2VzLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbWFjT1MxNChzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBvcHRzOiBBbWF6b25NYW5hZ2VkSW1hZ2VPcHRpb25zKTogSUltYWdlIHtcbiAgICByZXR1cm4gdGhpcy5wcmVkZWZpbmVkTWFuYWdlZEltYWdlKHNjb3BlLCBpZCwgb3B0cywgdGhpcy5NQUNPU18xNF9DT05GSUcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgdGhlIG1hY09TIDE1IEFtYXpvbi1tYW5hZ2VkIGltYWdlXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIG9wdHMgVGhlIEFtYXpvbi1tYW5hZ2VkIGltYWdlIGF0dHJpYnV0ZXNcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvZWMyLW1hYy1pbnN0YW5jZXMuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBtYWNPUzE1KHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdHM6IEFtYXpvbk1hbmFnZWRJbWFnZU9wdGlvbnMpOiBJSW1hZ2Uge1xuICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRNYW5hZ2VkSW1hZ2Uoc2NvcGUsIGlkLCBvcHRzLCB0aGlzLk1BQ09TXzE1X0NPTkZJRyk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0cyBhbiBBbWF6b24tbWFuYWdlZCBpbWFnZSBmcm9tIGl0cyBhdHRyaWJ1dGVzXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGF0dHJzIC0gVGhlIEFtYXpvbi1tYW5hZ2VkIGltYWdlIGF0dHJpYnV0ZXNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUFtYXpvbk1hbmFnZWRJbWFnZUF0dHJpYnV0ZXMoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGF0dHJzOiBBbWF6b25NYW5hZ2VkSW1hZ2VBdHRyaWJ1dGVzLFxuICApOiBJSW1hZ2Uge1xuICAgIHJldHVybiBJbWFnZS5mcm9tSW1hZ2VBcm4oXG4gICAgICBzY29wZSxcbiAgICAgIGlkLFxuICAgICAgY2RrLlN0YWNrLm9mKHNjb3BlKS5mb3JtYXRBcm4oe1xuICAgICAgICBzZXJ2aWNlOiAnaW1hZ2VidWlsZGVyJyxcbiAgICAgICAgYWNjb3VudDogJ2F3cycsXG4gICAgICAgIHJlc291cmNlOiAnaW1hZ2UnLFxuICAgICAgICByZXNvdXJjZU5hbWU6IGAke2F0dHJzLmltYWdlTmFtZX0vJHthdHRycy5pbWFnZVZlcnNpb24gPz8gTEFURVNUX1ZFUlNJT059YCxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0cyBhbiBBbWF6b24tbWFuYWdlZCBpbWFnZSBmcm9tIGl0cyBuYW1lXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGFtYXpvbk1hbmFnZWRJbWFnZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgQW1hem9uLW1hbmFnZWQgaW1hZ2VcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUFtYXpvbk1hbmFnZWRJbWFnZU5hbWUoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgYW1hem9uTWFuYWdlZEltYWdlTmFtZTogc3RyaW5nKTogSUltYWdlIHtcbiAgICByZXR1cm4gdGhpcy5mcm9tQW1hem9uTWFuYWdlZEltYWdlQXR0cmlidXRlcyhzY29wZSwgaWQsIHsgaW1hZ2VOYW1lOiBhbWF6b25NYW5hZ2VkSW1hZ2VOYW1lIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgQU1BWk9OX0xJTlVYXzJfQ09ORklHOiBBbWF6b25NYW5hZ2VkSW1hZ2VDb25maWcgPSB7XG4gICAgaW1hZ2U6ICdBbWF6b24gTGludXggMicsXG4gICAgc3VwcG9ydGVkQ29tYmluYXRpb25zOiB7XG4gICAgICBbYCR7SW1hZ2VUeXBlLkFNSX0tJHtJbWFnZUFyY2hpdGVjdHVyZS5YODZfNjR9YF06ICdhbWF6b24tbGludXgtMi14ODYnLFxuICAgICAgW2Ake0ltYWdlVHlwZS5BTUl9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuQVJNNjR9YF06ICdhbWF6b24tbGludXgtMi1hcm02NCcsXG4gICAgICBbYCR7SW1hZ2VUeXBlLkRPQ0tFUn0tJHtJbWFnZUFyY2hpdGVjdHVyZS5YODZfNjR9YF06ICdhbWF6b24tbGludXgteDg2LTInLFxuICAgIH0sXG4gIH07XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgQU1BWk9OX0xJTlVYXzIwMjNfQ09ORklHOiBBbWF6b25NYW5hZ2VkSW1hZ2VDb25maWcgPSB7XG4gICAgaW1hZ2U6ICdBbWF6b24gTGludXggMjAyMycsXG4gICAgc3VwcG9ydGVkQ29tYmluYXRpb25zOiB7XG4gICAgICBbYCR7SW1hZ2VUeXBlLkFNSX0tJHtJbWFnZUFyY2hpdGVjdHVyZS5YODZfNjR9YF06ICdhbWF6b24tbGludXgtMjAyMy14ODYnLFxuICAgICAgW2Ake0ltYWdlVHlwZS5BTUl9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuQVJNNjR9YF06ICdhbWF6b24tbGludXgtMjAyMy1hcm02NCcsXG4gICAgICBbYCR7SW1hZ2VUeXBlLkRPQ0tFUn0tJHtJbWFnZUFyY2hpdGVjdHVyZS5YODZfNjR9YF06ICdhbWF6b24tbGludXgtMjAyMy14ODYtMjAyMycsXG4gICAgfSxcbiAgfTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBSRURfSEFUX0VOVEVSUFJJU0VfTElOVVhfMTBfQ09ORklHOiBBbWF6b25NYW5hZ2VkSW1hZ2VDb25maWcgPSB7XG4gICAgaW1hZ2U6ICdSZWQgSGF0IEVudGVycHJpc2UgTGludXggMTAnLFxuICAgIHN1cHBvcnRlZENvbWJpbmF0aW9uczoge1xuICAgICAgW2Ake0ltYWdlVHlwZS5BTUl9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuWDg2XzY0fWBdOiAncmVkLWhhdC1lbnRlcnByaXNlLWxpbnV4LTEwLXg4NicsXG4gICAgICBbYCR7SW1hZ2VUeXBlLkFNSX0tJHtJbWFnZUFyY2hpdGVjdHVyZS5BUk02NH1gXTogJ3JlZC1oYXQtZW50ZXJwcmlzZS1saW51eC0xMC1hcm02NCcsXG4gICAgfSxcbiAgfTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBTVVNFX0xJTlVYX0VOVEVSUFJJU0VfU0VSVkVSXzE1X0NPTkZJRzogQW1hem9uTWFuYWdlZEltYWdlQ29uZmlnID0ge1xuICAgIGltYWdlOiAnU1VTRSBMaW51eCBFbnRlcnByaXNlIFNlcnZlciAxNScsXG4gICAgc3VwcG9ydGVkQ29tYmluYXRpb25zOiB7XG4gICAgICBbYCR7SW1hZ2VUeXBlLkFNSX0tJHtJbWFnZUFyY2hpdGVjdHVyZS5YODZfNjR9YF06ICdzdXNlLWxpbnV4LWVudGVycHJpc2Utc2VydmVyLTE1LXg4NicsXG4gICAgICBbYCR7SW1hZ2VUeXBlLkFNSX0tJHtJbWFnZUFyY2hpdGVjdHVyZS5BUk02NH1gXTogJ3N1c2UtbGludXgtZW50ZXJwcmlzZS1zZXJ2ZXItMTUtYXJtNjQnLFxuICAgIH0sXG4gIH07XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgVUJVTlRVX1NFUlZFUl8yMl8wNF9DT05GSUc6IEFtYXpvbk1hbmFnZWRJbWFnZUNvbmZpZyA9IHtcbiAgICBpbWFnZTogJ1VidW50dSAyMi4wNCcsXG4gICAgc3VwcG9ydGVkQ29tYmluYXRpb25zOiB7XG4gICAgICBbYCR7SW1hZ2VUeXBlLkFNSX0tJHtJbWFnZUFyY2hpdGVjdHVyZS5YODZfNjR9YF06ICd1YnVudHUtc2VydmVyLTIyLWx0cy14ODYnLFxuICAgICAgW2Ake0ltYWdlVHlwZS5BTUl9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuQVJNNjR9YF06ICd1YnVudHUtc2VydmVyLTIyLWx0cy1hcm02NCcsXG4gICAgICBbYCR7SW1hZ2VUeXBlLkRPQ0tFUn0tJHtJbWFnZUFyY2hpdGVjdHVyZS5YODZfNjR9YF06ICd1YnVudHUtMjIteDg2LTIyLTA0JyxcbiAgICB9LFxuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFVCVU5UVV9TRVJWRVJfMjRfMDRfQ09ORklHOiBBbWF6b25NYW5hZ2VkSW1hZ2VDb25maWcgPSB7XG4gICAgaW1hZ2U6ICdVYnVudHUgMjQuMDQnLFxuICAgIHN1cHBvcnRlZENvbWJpbmF0aW9uczoge1xuICAgICAgW2Ake0ltYWdlVHlwZS5BTUl9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuWDg2XzY0fWBdOiAndWJ1bnR1LXNlcnZlci0yNC1sdHMteDg2JyxcbiAgICAgIFtgJHtJbWFnZVR5cGUuQU1JfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLkFSTTY0fWBdOiAndWJ1bnR1LXNlcnZlci0yNC1sdHMtYXJtNjQnLFxuICAgICAgW2Ake0ltYWdlVHlwZS5ET0NLRVJ9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuWDg2XzY0fWBdOiAndWJ1bnR1LTI0LXg4Ni0yNC0wNCcsXG4gICAgfSxcbiAgfTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBXSU5ET1dTX1NFUlZFUl8yMDE2X0NPUkVfQ09ORklHOiBBbWF6b25NYW5hZ2VkSW1hZ2VDb25maWcgPSB7XG4gICAgaW1hZ2U6ICdXaW5kb3dzIFNlcnZlciAyMDE2IENvcmUnLFxuICAgIHN1cHBvcnRlZENvbWJpbmF0aW9uczoge1xuICAgICAgW2Ake0ltYWdlVHlwZS5BTUl9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuWDg2XzY0fWBdOiAnd2luZG93cy1zZXJ2ZXItMjAxNi1lbmdsaXNoLWNvcmUtYmFzZS14ODYnLFxuICAgICAgW2Ake0ltYWdlVHlwZS5ET0NLRVJ9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuWDg2XzY0fWBdOiAnd2luZG93cy1zZXJ2ZXItMjAxNi14ODYtY29yZS1sdHNjMjAxNi1hbWQ2NCcsXG4gICAgfSxcbiAgfTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBXSU5ET1dTX1NFUlZFUl8yMDE2X0ZVTExfQ09ORklHOiBBbWF6b25NYW5hZ2VkSW1hZ2VDb25maWcgPSB7XG4gICAgaW1hZ2U6ICdXaW5kb3dzIFNlcnZlciAyMDE2IEZ1bGwnLFxuICAgIHN1cHBvcnRlZENvbWJpbmF0aW9uczoge1xuICAgICAgW2Ake0ltYWdlVHlwZS5BTUl9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuWDg2XzY0fWBdOiAnd2luZG93cy1zZXJ2ZXItMjAxNi1lbmdsaXNoLWZ1bGwtYmFzZS14ODYnLFxuICAgIH0sXG4gIH07XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgV0lORE9XU19TRVJWRVJfMjAxOV9DT1JFX0NPTkZJRzogQW1hem9uTWFuYWdlZEltYWdlQ29uZmlnID0ge1xuICAgIGltYWdlOiAnV2luZG93cyBTZXJ2ZXIgMjAxOSBDb3JlJyxcbiAgICBzdXBwb3J0ZWRDb21iaW5hdGlvbnM6IHtcbiAgICAgIFtgJHtJbWFnZVR5cGUuQU1JfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLlg4Nl82NH1gXTogJ3dpbmRvd3Mtc2VydmVyLTIwMTktZW5nbGlzaC1jb3JlLWJhc2UteDg2JyxcbiAgICAgIFtgJHtJbWFnZVR5cGUuRE9DS0VSfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLlg4Nl82NH1gXTogJ3dpbmRvd3Mtc2VydmVyLTIwMTkteDg2LWNvcmUtbHRzYzIwMTktYW1kNjQnLFxuICAgIH0sXG4gIH07XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgV0lORE9XU19TRVJWRVJfMjAxOV9GVUxMX0NPTkZJRzogQW1hem9uTWFuYWdlZEltYWdlQ29uZmlnID0ge1xuICAgIGltYWdlOiAnV2luZG93cyBTZXJ2ZXIgMjAxOSBGdWxsJyxcbiAgICBzdXBwb3J0ZWRDb21iaW5hdGlvbnM6IHtcbiAgICAgIFtgJHtJbWFnZVR5cGUuQU1JfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLlg4Nl82NH1gXTogJ3dpbmRvd3Mtc2VydmVyLTIwMTktZW5nbGlzaC1mdWxsLWJhc2UteDg2JyxcbiAgICB9LFxuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFdJTkRPV1NfU0VSVkVSXzIwMjJfQ09SRV9DT05GSUc6IEFtYXpvbk1hbmFnZWRJbWFnZUNvbmZpZyA9IHtcbiAgICBpbWFnZTogJ1dpbmRvd3MgU2VydmVyIDIwMjIgQ29yZScsXG4gICAgc3VwcG9ydGVkQ29tYmluYXRpb25zOiB7XG4gICAgICBbYCR7SW1hZ2VUeXBlLkFNSX0tJHtJbWFnZUFyY2hpdGVjdHVyZS5YODZfNjR9YF06ICd3aW5kb3dzLXNlcnZlci0yMDIyLWVuZ2xpc2gtY29yZS1iYXNlLXg4NicsXG4gICAgfSxcbiAgfTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBXSU5ET1dTX1NFUlZFUl8yMDIyX0ZVTExfQ09ORklHOiBBbWF6b25NYW5hZ2VkSW1hZ2VDb25maWcgPSB7XG4gICAgaW1hZ2U6ICdXaW5kb3dzIFNlcnZlciAyMDIyIEZ1bGwnLFxuICAgIHN1cHBvcnRlZENvbWJpbmF0aW9uczoge1xuICAgICAgW2Ake0ltYWdlVHlwZS5BTUl9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuWDg2XzY0fWBdOiAnd2luZG93cy1zZXJ2ZXItMjAyMi1lbmdsaXNoLWZ1bGwtYmFzZS14ODYnLFxuICAgIH0sXG4gIH07XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgV0lORE9XU19TRVJWRVJfMjAyNV9DT1JFX0NPTkZJRzogQW1hem9uTWFuYWdlZEltYWdlQ29uZmlnID0ge1xuICAgIGltYWdlOiAnV2luZG93cyBTZXJ2ZXIgMjAyNSBDb3JlJyxcbiAgICBzdXBwb3J0ZWRDb21iaW5hdGlvbnM6IHtcbiAgICAgIFtgJHtJbWFnZVR5cGUuQU1JfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLlg4Nl82NH1gXTogJ3dpbmRvd3Mtc2VydmVyLTIwMjUtZW5nbGlzaC1jb3JlLWJhc2UteDg2JyxcbiAgICB9LFxuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFdJTkRPV1NfU0VSVkVSXzIwMjVfRlVMTF9DT05GSUc6IEFtYXpvbk1hbmFnZWRJbWFnZUNvbmZpZyA9IHtcbiAgICBpbWFnZTogJ1dpbmRvd3MgU2VydmVyIDIwMjUgRnVsbCcsXG4gICAgc3VwcG9ydGVkQ29tYmluYXRpb25zOiB7XG4gICAgICBbYCR7SW1hZ2VUeXBlLkFNSX0tJHtJbWFnZUFyY2hpdGVjdHVyZS5YODZfNjR9YF06ICd3aW5kb3dzLXNlcnZlci0yMDI1LWVuZ2xpc2gtZnVsbC1iYXNlLXg4NicsXG4gICAgfSxcbiAgfTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBNQUNPU18xNF9DT05GSUc6IEFtYXpvbk1hbmFnZWRJbWFnZUNvbmZpZyA9IHtcbiAgICBpbWFnZTogJ21hY09TIDE0JyxcbiAgICBzdXBwb3J0ZWRDb21iaW5hdGlvbnM6IHtcbiAgICAgIFtgJHtJbWFnZVR5cGUuQU1JfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLlg4Nl82NH1gXTogJ21hY29zLXNvbm9tYS14ODYnLFxuICAgICAgW2Ake0ltYWdlVHlwZS5BTUl9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuQVJNNjR9YF06ICdtYWNvcy1zb25vbWEtYXJtNjQnLFxuICAgIH0sXG4gIH07XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgTUFDT1NfMTVfQ09ORklHOiBBbWF6b25NYW5hZ2VkSW1hZ2VDb25maWcgPSB7XG4gICAgaW1hZ2U6ICdtYWNPUyAxNScsXG4gICAgc3VwcG9ydGVkQ29tYmluYXRpb25zOiB7XG4gICAgICBbYCR7SW1hZ2VUeXBlLkFNSX0tJHtJbWFnZUFyY2hpdGVjdHVyZS5YODZfNjR9YF06ICdtYWNvcy1zZXF1b2lhLXg4NicsXG4gICAgICBbYCR7SW1hZ2VUeXBlLkFNSX0tJHtJbWFnZUFyY2hpdGVjdHVyZS5BUk02NH1gXTogJ21hY29zLXNlcXVvaWEtYXJtNjQnLFxuICAgIH0sXG4gIH07XG5cbiAgcHJpdmF0ZSBzdGF0aWMgdmFsaWRhdGVQcmVkZWZpbmVkTWFuYWdlZEltYWdlT3B0aW9ucyhcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIG9wdHM6IEFtYXpvbk1hbmFnZWRJbWFnZU9wdGlvbnMsXG4gICAgaW1hZ2U6IHN0cmluZyxcbiAgKSB7XG4gICAgaWYgKGNkay5Ub2tlbi5pc1VucmVzb2x2ZWQob3B0cy5pbWFnZUFyY2hpdGVjdHVyZSkpIHtcbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKGBhcmNoaXRlY3R1cmUgY2Fubm90IGJlIGEgdG9rZW4gZm9yICR7aW1hZ2V9YCwgc2NvcGUpO1xuICAgIH1cblxuICAgIGlmIChjZGsuVG9rZW4uaXNVbnJlc29sdmVkKG9wdHMuaW1hZ2VUeXBlKSkge1xuICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IoYHR5cGUgY2Fubm90IGJlIGEgdG9rZW4gZm9yICR7aW1hZ2V9YCwgc2NvcGUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHByZWRlZmluZWRNYW5hZ2VkSW1hZ2UoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIG9wdHM6IEFtYXpvbk1hbmFnZWRJbWFnZU9wdGlvbnMsXG4gICAgY29uZmlnOiBBbWF6b25NYW5hZ2VkSW1hZ2VDb25maWcsXG4gICk6IElJbWFnZSB7XG4gICAgdGhpcy52YWxpZGF0ZVByZWRlZmluZWRNYW5hZ2VkSW1hZ2VPcHRpb25zKHNjb3BlLCBvcHRzLCBjb25maWcuaW1hZ2UpO1xuXG4gICAgY29uc3Qga2V5ID0gYCR7b3B0cy5pbWFnZVR5cGV9LSR7b3B0cy5pbWFnZUFyY2hpdGVjdHVyZX1gO1xuICAgIGNvbnN0IGltYWdlTmFtZSA9IGNvbmZpZy5zdXBwb3J0ZWRDb21iaW5hdGlvbnNba2V5XTtcblxuICAgIGlmICghaW1hZ2VOYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgYGFyY2hpdGVjdHVyZSAke29wdHMuaW1hZ2VBcmNoaXRlY3R1cmV9IHdpdGggdHlwZSAke29wdHMuaW1hZ2VUeXBlfSBpcyBub3QgYSBzdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlIGFuZCB0eXBlIGZvciAke2NvbmZpZy5pbWFnZX1gLFxuICAgICAgICBzY29wZSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZnJvbUFtYXpvbk1hbmFnZWRJbWFnZUF0dHJpYnV0ZXMoc2NvcGUsIGlkLCB7XG4gICAgICBpbWFnZU5hbWUsXG4gICAgICBpbWFnZVZlcnNpb246IG9wdHMuaW1hZ2VWZXJzaW9uLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
package/lib/base-image.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as ecr from 'aws-cdk-lib/aws-ecr';
|
|
2
2
|
import * as ssm from 'aws-cdk-lib/aws-ssm';
|
|
3
|
+
import { IImage } from './image';
|
|
3
4
|
/**
|
|
4
5
|
* Represents a base image that is used to start from in EC2 Image Builder image builds
|
|
5
6
|
*/
|
|
@@ -10,6 +11,12 @@ export declare class BaseImage {
|
|
|
10
11
|
* @param amiId The AMI ID to use as the base image
|
|
11
12
|
*/
|
|
12
13
|
static fromAmiId(amiId: string): BaseImage;
|
|
14
|
+
/**
|
|
15
|
+
* The EC2 Image Builder image to use as a base image in an image recipe
|
|
16
|
+
*
|
|
17
|
+
* @param image The EC2 Image Builder image to use as a base image
|
|
18
|
+
*/
|
|
19
|
+
static fromImage(image: IImage): BaseImage;
|
|
13
20
|
/**
|
|
14
21
|
* The marketplace product ID for an AMI product to use as the base image in an image recipe
|
|
15
22
|
*
|
|
@@ -67,6 +74,12 @@ export declare class BaseContainerImage {
|
|
|
67
74
|
* @param tag The tag of the base image in the ECR public repository
|
|
68
75
|
*/
|
|
69
76
|
static fromEcrPublic(registryAlias: string, repositoryName: string, tag: string): BaseContainerImage;
|
|
77
|
+
/**
|
|
78
|
+
* The EC2 Image Builder image to use as a base image in a container recipe
|
|
79
|
+
*
|
|
80
|
+
* @param image The EC2 Image Builder image to use as a base image
|
|
81
|
+
*/
|
|
82
|
+
static fromImage(image: IImage): BaseContainerImage;
|
|
70
83
|
/**
|
|
71
84
|
* The string value of the base image to use in a container recipe. This can be an EC2 Image Builder image ARN,
|
|
72
85
|
* an ECR or ECR public image, or a container URI sourced from a third-party container registry such as DockerHub.
|