aws-delivlib 13.4.2 → 13.4.6

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 (72) hide show
  1. package/cdk.out/{asset.e12c7af9b638ac5f6e69012fdab4a414bd0c107b6a233304e64b443a621ecd20 → asset.1c4d00e8f9125a52b4db3e74494c950959ffa433738adcf5c9f7251e4d255451}/create-release.js +0 -0
  2. package/cdk.out/{asset.e12c7af9b638ac5f6e69012fdab4a414bd0c107b6a233304e64b443a621ecd20 → asset.1c4d00e8f9125a52b4db3e74494c950959ffa433738adcf5c9f7251e4d255451}/package-lock.json +100 -95
  3. package/cdk.out/{asset.e12c7af9b638ac5f6e69012fdab4a414bd0c107b6a233304e64b443a621ecd20 → asset.1c4d00e8f9125a52b4db3e74494c950959ffa433738adcf5c9f7251e4d255451}/package.json +0 -0
  4. package/cdk.out/{asset.e12c7af9b638ac5f6e69012fdab4a414bd0c107b6a233304e64b443a621ecd20 → asset.1c4d00e8f9125a52b4db3e74494c950959ffa433738adcf5c9f7251e4d255451}/publish.sh +0 -0
  5. package/cdk.out/{asset.e12c7af9b638ac5f6e69012fdab4a414bd0c107b6a233304e64b443a621ecd20 → asset.1c4d00e8f9125a52b4db3e74494c950959ffa433738adcf5c9f7251e4d255451}/sign-files.sh +0 -0
  6. package/cdk.out/{asset.e12c7af9b638ac5f6e69012fdab4a414bd0c107b6a233304e64b443a621ecd20 → asset.1c4d00e8f9125a52b4db3e74494c950959ffa433738adcf5c9f7251e4d255451}/with-signing-key.sh +0 -0
  7. package/cdk.out/{asset.dc2e98009b027861f34e56eebb81faa5a3951ed9da80ce4a903a45de04268238 → asset.3044256b9586ecb8a7709713aaca30ceb34f699e3f93c8858f633aaf2f0c7140}/index.js +17 -11
  8. package/cdk.out/delivlib-test.assets.json +8 -8
  9. package/cdk.out/delivlib-test.template.json +32 -27
  10. package/cdk.out/manifest.json +272 -272
  11. package/cdk.out/tree.json +442 -437
  12. package/lib/custom-resource-handlers/src/certificate-signing-request.tsbuildinfo +1 -1
  13. package/lib/custom-resource-handlers/src/pgp-secret.tsbuildinfo +1 -1
  14. package/lib/custom-resource-handlers/src/private-key.tsbuildinfo +1 -1
  15. package/lib/publishing/github/package-lock.json +100 -95
  16. package/package.json +17 -18
  17. package/lib/__tests__/auto-build.test.d.ts +0 -1
  18. package/lib/__tests__/auto-build.test.js +0 -119
  19. package/lib/__tests__/build-spec.test.d.ts +0 -1
  20. package/lib/__tests__/build-spec.test.js +0 -82
  21. package/lib/__tests__/bump.test.d.ts +0 -1
  22. package/lib/__tests__/bump.test.js +0 -284
  23. package/lib/__tests__/canary.test.d.ts +0 -1
  24. package/lib/__tests__/canary.test.js +0 -144
  25. package/lib/__tests__/change-control-lambda/disable-transition.test.d.ts +0 -1
  26. package/lib/__tests__/change-control-lambda/disable-transition.test.js +0 -64
  27. package/lib/__tests__/change-control-lambda/handler.test.d.ts +0 -1
  28. package/lib/__tests__/change-control-lambda/handler.test.js +0 -143
  29. package/lib/__tests__/change-control-lambda/time-window.test.d.ts +0 -1
  30. package/lib/__tests__/change-control-lambda/time-window.test.js +0 -131
  31. package/lib/__tests__/chime-notifier.test.d.ts +0 -6
  32. package/lib/__tests__/chime-notifier.test.js +0 -138
  33. package/lib/__tests__/code-signing-cert.test.d.ts +0 -1
  34. package/lib/__tests__/code-signing-cert.test.js +0 -72
  35. package/lib/__tests__/custom-resource-handlers/_cloud-formation.test.d.ts +0 -1
  36. package/lib/__tests__/custom-resource-handlers/_cloud-formation.test.js +0 -100
  37. package/lib/__tests__/custom-resource-handlers/_exec.test.d.ts +0 -1
  38. package/lib/__tests__/custom-resource-handlers/_exec.test.js +0 -9
  39. package/lib/__tests__/custom-resource-handlers/_rmrf.test.d.ts +0 -1
  40. package/lib/__tests__/custom-resource-handlers/_rmrf.test.js +0 -13
  41. package/lib/__tests__/custom-resource-handlers/certificate-signing-request.test.d.ts +0 -1
  42. package/lib/__tests__/custom-resource-handlers/certificate-signing-request.test.js +0 -171
  43. package/lib/__tests__/custom-resource-handlers/pgp-secret.test.d.ts +0 -1
  44. package/lib/__tests__/custom-resource-handlers/pgp-secret.test.js +0 -169
  45. package/lib/__tests__/custom-resource-handlers/private-key.test.d.ts +0 -1
  46. package/lib/__tests__/custom-resource-handlers/private-key.test.js +0 -164
  47. package/lib/__tests__/integ.delivlib.d.ts +0 -1
  48. package/lib/__tests__/integ.delivlib.js +0 -33
  49. package/lib/__tests__/open-pgp-key-pair.test.d.ts +0 -1
  50. package/lib/__tests__/open-pgp-key-pair.test.js +0 -130
  51. package/lib/__tests__/pipeline-notifications/chime.test.d.ts +0 -1
  52. package/lib/__tests__/pipeline-notifications/chime.test.js +0 -69
  53. package/lib/__tests__/pipeline-notifications/slack.test.d.ts +0 -1
  54. package/lib/__tests__/pipeline-notifications/slack.test.js +0 -82
  55. package/lib/__tests__/pipeline.test.d.ts +0 -1
  56. package/lib/__tests__/pipeline.test.js +0 -362
  57. package/lib/__tests__/pr.test.d.ts +0 -3
  58. package/lib/__tests__/pr.test.js +0 -88
  59. package/lib/__tests__/publishing.test.d.ts +0 -1
  60. package/lib/__tests__/publishing.test.js +0 -89
  61. package/lib/__tests__/registry-sync/ecr-mirror.test.d.ts +0 -1
  62. package/lib/__tests__/registry-sync/ecr-mirror.test.js +0 -313
  63. package/lib/__tests__/registry-sync/mirror-source.test.d.ts +0 -1
  64. package/lib/__tests__/registry-sync/mirror-source.test.js +0 -225
  65. package/lib/__tests__/shellable.test.d.ts +0 -1
  66. package/lib/__tests__/shellable.test.js +0 -479
  67. package/lib/__tests__/test-stack.d.ts +0 -4
  68. package/lib/__tests__/test-stack.js +0 -184
  69. package/lib/__tests__/watcher-handler.test.d.ts +0 -1
  70. package/lib/__tests__/watcher-handler.test.js +0 -190
  71. package/lib/__tests__/watcher.test.d.ts +0 -1
  72. package/lib/__tests__/watcher.test.js +0 -78
@@ -1,479 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- Object.defineProperty(exports, "__esModule", { value: true });
22
- const path = __importStar(require("path"));
23
- const assert_1 = require("@monocdk-experiment/assert");
24
- const cdk = __importStar(require("monocdk"));
25
- const lib_1 = require("../../lib");
26
- // tslint:disable:max-line-length
27
- test('can assume a refreshable role', () => {
28
- const stack = new cdk.Stack(new cdk.App(), 'TestStack');
29
- new lib_1.Shellable(stack, 'MyShellable', {
30
- scriptDirectory: path.join(__dirname, 'delivlib-tests/linux'),
31
- entrypoint: 'test.sh',
32
- assumeRole: {
33
- profileName: 'profile',
34
- roleArn: 'arn',
35
- sessionName: 'session',
36
- refresh: true,
37
- },
38
- });
39
- const template = (0, assert_1.expect)(stack).value;
40
- expect(JSON.parse(template.Resources.MyShellableB2FFD397.Properties.Source.BuildSpec).phases.pre_build.commands).toEqual([
41
- 'echo "Downloading scripts from s3://${SCRIPT_S3_BUCKET}/${SCRIPT_S3_KEY}"',
42
- 'aws s3 cp s3://${SCRIPT_S3_BUCKET}/${SCRIPT_S3_KEY} /tmp',
43
- 'mkdir -p /tmp/scriptdir',
44
- 'unzip /tmp/$(basename $SCRIPT_S3_KEY) -d /tmp/scriptdir',
45
- 'mkdir -p ~/.aws',
46
- 'touch ~/.aws/credentials',
47
- 'config=~/.aws/config',
48
- 'echo [profile profile]>> ${config}',
49
- 'echo credential_source = EcsContainer >> ${config}',
50
- 'echo role_session_name = session >> ${config}',
51
- 'echo role_arn = arn >> $config',
52
- 'export AWS_PROFILE=profile',
53
- 'export AWS_SDK_LOAD_CONFIG=1',
54
- ]);
55
- });
56
- test('minimal configuration', () => {
57
- const stack = new cdk.Stack(new cdk.App(), 'TestStack');
58
- new lib_1.Shellable(stack, 'MyShellable', {
59
- scriptDirectory: path.join(__dirname, 'delivlib-tests/linux'),
60
- entrypoint: 'test.sh',
61
- });
62
- (0, assert_1.expect)(stack).to((0, assert_1.haveResource)('AWS::CodeBuild::Project'));
63
- });
64
- test('assume role', () => {
65
- const stack = new cdk.Stack(new cdk.App(), 'TestStack');
66
- new lib_1.Shellable(stack, 'MyShellable', {
67
- scriptDirectory: path.join(__dirname, 'delivlib-tests/linux'),
68
- entrypoint: 'test.sh',
69
- assumeRole: {
70
- roleArn: 'arn:aws:role:to:assume',
71
- sessionName: 'my-session-name',
72
- },
73
- });
74
- const template = assert_1.SynthUtils.synthesize(stack).template;
75
- const buildSpec = JSON.parse(template.Resources.MyShellableB2FFD397.Properties.Source.BuildSpec);
76
- expect(buildSpec.phases.pre_build.commands)
77
- .toContain('AWS_STS_REGIONAL_ENDPOINTS=legacy aws sts assume-role --role-arn \"arn:aws:role:to:assume\" --role-session-name \"my-session-name\" > $creds');
78
- });
79
- test('assume role with external-id', () => {
80
- const stack = new cdk.Stack(new cdk.App(), 'TestStack');
81
- new lib_1.Shellable(stack, 'MyShellable', {
82
- scriptDirectory: path.join(__dirname, 'delivlib-tests/linux'),
83
- entrypoint: 'test.sh',
84
- assumeRole: {
85
- roleArn: 'arn:aws:role:to:assume',
86
- sessionName: 'my-session-name',
87
- externalId: 'my-externa-id',
88
- },
89
- });
90
- const template = assert_1.SynthUtils.synthesize(stack).template;
91
- const buildSpec = JSON.parse(template.Resources.MyShellableB2FFD397.Properties.Source.BuildSpec);
92
- expect(buildSpec.phases.pre_build.commands)
93
- .toContain('AWS_STS_REGIONAL_ENDPOINTS=legacy aws sts assume-role --role-arn \"arn:aws:role:to:assume\" --role-session-name \"my-session-name\" --external-id \"my-externa-id\" > $creds');
94
- });
95
- test('assume role with regional endpoints', () => {
96
- const stack = new cdk.Stack(new cdk.App(), 'TestStack');
97
- new lib_1.Shellable(stack, 'MyShellable', {
98
- scriptDirectory: path.join(__dirname, 'delivlib-tests/linux'),
99
- entrypoint: 'test.sh',
100
- assumeRole: {
101
- roleArn: 'arn:aws:role:to:assume',
102
- sessionName: 'my-session-name',
103
- },
104
- useRegionalStsEndpoints: true,
105
- });
106
- const template = assert_1.SynthUtils.synthesize(stack).template;
107
- const buildSpec = JSON.parse(template.Resources.MyShellableB2FFD397.Properties.Source.BuildSpec);
108
- expect(buildSpec.phases.pre_build.commands)
109
- .toContain('AWS_STS_REGIONAL_ENDPOINTS=regional aws sts assume-role --role-arn \"arn:aws:role:to:assume\" --role-session-name \"my-session-name\" > $creds');
110
- });
111
- test('assume role with global endpoints', () => {
112
- const stack = new cdk.Stack(new cdk.App(), 'TestStack');
113
- new lib_1.Shellable(stack, 'MyShellable', {
114
- scriptDirectory: path.join(__dirname, 'delivlib-tests/linux'),
115
- entrypoint: 'test.sh',
116
- assumeRole: {
117
- roleArn: 'arn:aws:role:to:assume',
118
- sessionName: 'my-session-name',
119
- },
120
- useRegionalStsEndpoints: false,
121
- });
122
- const template = assert_1.SynthUtils.synthesize(stack).template;
123
- const buildSpec = JSON.parse(template.Resources.MyShellableB2FFD397.Properties.Source.BuildSpec);
124
- expect(buildSpec.phases.pre_build.commands)
125
- .toContain('AWS_STS_REGIONAL_ENDPOINTS=legacy aws sts assume-role --role-arn \"arn:aws:role:to:assume\" --role-session-name \"my-session-name\" > $creds');
126
- });
127
- test('assume role not supported on windows', () => {
128
- const stack = new cdk.Stack(new cdk.App(), 'TestStack');
129
- expect(() => new lib_1.Shellable(stack, 'MyShellable', {
130
- scriptDirectory: path.join(__dirname, 'delivlib-tests/linux'),
131
- platform: lib_1.ShellPlatform.Windows,
132
- entrypoint: 'test.sh',
133
- assumeRole: {
134
- roleArn: 'arn:aws:role:to:assume',
135
- sessionName: 'my-session-name',
136
- },
137
- })).toThrow('assumeRole is not supported on Windows');
138
- });
139
- test('alarm options - defaults', () => {
140
- const stack = new cdk.Stack(new cdk.App(), 'TestStack');
141
- new lib_1.Shellable(stack, 'MyShellable', {
142
- scriptDirectory: path.join(__dirname, 'delivlib-tests/linux'),
143
- entrypoint: 'test.sh',
144
- });
145
- (0, assert_1.expect)(stack).to((0, assert_1.haveResource)('AWS::CloudWatch::Alarm', {
146
- EvaluationPeriods: 1,
147
- Threshold: 1,
148
- Period: 300,
149
- }));
150
- });
151
- test('alarm options - custom', () => {
152
- const stack = new cdk.Stack(new cdk.App(), 'TestStack');
153
- new lib_1.Shellable(stack, 'MyShellable', {
154
- scriptDirectory: path.join(__dirname, 'delivlib-tests/linux'),
155
- entrypoint: 'test.sh',
156
- alarmEvaluationPeriods: 2,
157
- alarmThreshold: 5,
158
- alarmPeriod: cdk.Duration.minutes(60),
159
- });
160
- (0, assert_1.expect)(stack).to((0, assert_1.haveResource)('AWS::CloudWatch::Alarm', {
161
- EvaluationPeriods: 2,
162
- Threshold: 5,
163
- Period: 3600,
164
- }));
165
- });
166
- test('privileged mode', () => {
167
- const stack = new cdk.Stack(new cdk.App(), 'TestStack');
168
- new lib_1.Shellable(stack, 'AllowDocker', {
169
- scriptDirectory: path.join(__dirname, 'delivlib-tests/linux'),
170
- entrypoint: 'test.sh',
171
- privileged: true,
172
- });
173
- (0, assert_1.expect)(stack).to((0, assert_1.haveResource)('AWS::CodeBuild::Project', {
174
- Environment: {
175
- PrivilegedMode: true,
176
- },
177
- }, assert_1.ResourcePart.Properties, true));
178
- });
179
- test('environment variables', () => {
180
- const stack = new cdk.Stack(new cdk.App(), 'TestStack');
181
- new lib_1.Shellable(stack, 'EnvironmentVariables', {
182
- scriptDirectory: path.join(__dirname, 'delivlib-tests/linux'),
183
- entrypoint: 'test.sh',
184
- environment: {
185
- ENV_VAR: 'env-var-value',
186
- UNDEFINED_VAR: undefined,
187
- EMPTY_STRING: '',
188
- },
189
- environmentSecrets: {
190
- ENV_VAR_SECRET: 'arn:test:secretsmanager:region:000000000000:secret:env-var-secret-name-abc123',
191
- },
192
- environmentParameters: {
193
- ENV_VAR_PARAMETER: 'env-var-parameter-name',
194
- },
195
- });
196
- (0, assert_1.expect)(stack).to((0, assert_1.haveResource)('AWS::CodeBuild::Project', {
197
- Environment: {
198
- EnvironmentVariables: [
199
- {
200
- Name: 'SCRIPT_S3_BUCKET',
201
- Type: 'PLAINTEXT',
202
- Value: {
203
- Ref: 'AssetParameters3d34b07ba871989d030649c646b3096ba7c78ca531897bcdb0670774d2f9d3e4S3BucketDA91EFBC',
204
- },
205
- },
206
- {
207
- Name: 'SCRIPT_S3_KEY',
208
- Type: 'PLAINTEXT',
209
- Value: {
210
- 'Fn::Join': ['', [{
211
- 'Fn::Select': [0, {
212
- 'Fn::Split': ['||', {
213
- Ref: 'AssetParameters3d34b07ba871989d030649c646b3096ba7c78ca531897bcdb0670774d2f9d3e4S3VersionKeyF3F83F76',
214
- }],
215
- }],
216
- }, {
217
- 'Fn::Select': [1, {
218
- 'Fn::Split': ['||', {
219
- Ref: 'AssetParameters3d34b07ba871989d030649c646b3096ba7c78ca531897bcdb0670774d2f9d3e4S3VersionKeyF3F83F76',
220
- }],
221
- }],
222
- }]],
223
- },
224
- },
225
- {
226
- Name: 'ENV_VAR',
227
- Type: 'PLAINTEXT',
228
- Value: 'env-var-value',
229
- },
230
- {
231
- Name: 'EMPTY_STRING',
232
- Type: 'PLAINTEXT',
233
- Value: '',
234
- },
235
- {
236
- Name: 'ENV_VAR_SECRET',
237
- Type: 'SECRETS_MANAGER',
238
- Value: 'env-var-secret-name',
239
- },
240
- {
241
- Name: 'ENV_VAR_PARAMETER',
242
- Type: 'PARAMETER_STORE',
243
- Value: 'env-var-parameter-name',
244
- },
245
- ],
246
- },
247
- }, assert_1.ResourcePart.Properties, true));
248
- (0, assert_1.expect)(stack).to((0, assert_1.haveResource)('AWS::IAM::Policy', {
249
- PolicyDocument: {
250
- Statement: [
251
- {
252
- Action: 'ssm:GetParameters',
253
- Effect: 'Allow',
254
- Resource: {
255
- 'Fn::Join': [
256
- '',
257
- [
258
- 'arn:',
259
- {
260
- Ref: 'AWS::Partition',
261
- },
262
- ':ssm:',
263
- {
264
- Ref: 'AWS::Region',
265
- },
266
- ':',
267
- {
268
- Ref: 'AWS::AccountId',
269
- },
270
- ':parameter/env-var-parameter-name',
271
- ],
272
- ],
273
- },
274
- },
275
- {
276
- Action: 'secretsmanager:GetSecretValue',
277
- Effect: 'Allow',
278
- Resource: {
279
- 'Fn::Join': [
280
- '',
281
- [
282
- 'arn:',
283
- {
284
- Ref: 'AWS::Partition',
285
- },
286
- ':secretsmanager:',
287
- {
288
- Ref: 'AWS::Region',
289
- },
290
- ':',
291
- {
292
- Ref: 'AWS::AccountId',
293
- },
294
- ':secret:env-var-secret-name-??????',
295
- ],
296
- ],
297
- },
298
- },
299
- {
300
- Action: [
301
- 'logs:CreateLogGroup',
302
- 'logs:CreateLogStream',
303
- 'logs:PutLogEvents',
304
- ],
305
- Effect: 'Allow',
306
- Resource: [
307
- {
308
- 'Fn::Join': [
309
- '',
310
- [
311
- 'arn:',
312
- {
313
- Ref: 'AWS::Partition',
314
- },
315
- ':logs:',
316
- {
317
- Ref: 'AWS::Region',
318
- },
319
- ':',
320
- {
321
- Ref: 'AWS::AccountId',
322
- },
323
- ':log-group:/aws/codebuild/',
324
- {
325
- Ref: 'EnvironmentVariablesD266B682',
326
- },
327
- ],
328
- ],
329
- },
330
- {
331
- 'Fn::Join': [
332
- '',
333
- [
334
- 'arn:',
335
- {
336
- Ref: 'AWS::Partition',
337
- },
338
- ':logs:',
339
- {
340
- Ref: 'AWS::Region',
341
- },
342
- ':',
343
- {
344
- Ref: 'AWS::AccountId',
345
- },
346
- ':log-group:/aws/codebuild/',
347
- {
348
- Ref: 'EnvironmentVariablesD266B682',
349
- },
350
- ':*',
351
- ],
352
- ],
353
- },
354
- ],
355
- },
356
- {
357
- Action: [
358
- 'codebuild:CreateReportGroup',
359
- 'codebuild:CreateReport',
360
- 'codebuild:UpdateReport',
361
- 'codebuild:BatchPutTestCases',
362
- 'codebuild:BatchPutCodeCoverages',
363
- ],
364
- Effect: 'Allow',
365
- Resource: {
366
- 'Fn::Join': [
367
- '',
368
- [
369
- 'arn:',
370
- {
371
- Ref: 'AWS::Partition',
372
- },
373
- ':codebuild:',
374
- {
375
- Ref: 'AWS::Region',
376
- },
377
- ':',
378
- {
379
- Ref: 'AWS::AccountId',
380
- },
381
- ':report-group/',
382
- {
383
- Ref: 'EnvironmentVariablesD266B682',
384
- },
385
- '-*',
386
- ],
387
- ],
388
- },
389
- },
390
- {
391
- Action: [
392
- 's3:GetObject*',
393
- 's3:GetBucket*',
394
- 's3:List*',
395
- ],
396
- Effect: 'Allow',
397
- Resource: [
398
- {
399
- 'Fn::Join': [
400
- '',
401
- [
402
- 'arn:',
403
- {
404
- Ref: 'AWS::Partition',
405
- },
406
- ':s3:::',
407
- {
408
- Ref: 'AssetParameters3d34b07ba871989d030649c646b3096ba7c78ca531897bcdb0670774d2f9d3e4S3BucketDA91EFBC',
409
- },
410
- ],
411
- ],
412
- },
413
- {
414
- 'Fn::Join': [
415
- '',
416
- [
417
- 'arn:',
418
- {
419
- Ref: 'AWS::Partition',
420
- },
421
- ':s3:::',
422
- {
423
- Ref: 'AssetParameters3d34b07ba871989d030649c646b3096ba7c78ca531897bcdb0670774d2f9d3e4S3BucketDA91EFBC',
424
- },
425
- '/*',
426
- ],
427
- ],
428
- },
429
- ],
430
- },
431
- {
432
- Action: [
433
- 'secretsmanager:GetSecretValue',
434
- 'secretsmanager:DescribeSecret',
435
- ],
436
- Effect: 'Allow',
437
- Resource: 'arn:test:secretsmanager:region:000000000000:secret:env-var-secret-name-abc123',
438
- },
439
- {
440
- Action: [
441
- 'ssm:DescribeParameters',
442
- 'ssm:GetParameters',
443
- 'ssm:GetParameter',
444
- 'ssm:GetParameterHistory',
445
- ],
446
- Effect: 'Allow',
447
- Resource: {
448
- 'Fn::Join': [
449
- '',
450
- [
451
- 'arn:',
452
- {
453
- Ref: 'AWS::Partition',
454
- },
455
- ':ssm:',
456
- {
457
- Ref: 'AWS::Region',
458
- },
459
- ':',
460
- {
461
- Ref: 'AWS::AccountId',
462
- },
463
- ':parameter/env-var-parameter-name',
464
- ],
465
- ],
466
- },
467
- },
468
- ],
469
- Version: '2012-10-17',
470
- },
471
- PolicyName: 'EnvironmentVariablesRoleDefaultPolicy1BCDD5D0',
472
- Roles: [
473
- {
474
- Ref: 'EnvironmentVariablesRole93B5CD9F',
475
- },
476
- ],
477
- }));
478
- });
479
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGxhYmxlLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzaGVsbGFibGUudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBNkI7QUFDN0IsdURBQXNHO0FBQ3RHLDZDQUErQjtBQUMvQixtQ0FBcUQ7QUFHckQsaUNBQWlDO0FBRWpDLElBQUksQ0FBQywrQkFBK0IsRUFBRSxHQUFHLEVBQUU7SUFDekMsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBRXhELElBQUksZUFBUyxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUU7UUFDbEMsZUFBZSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLHNCQUFzQixDQUFDO1FBQzdELFVBQVUsRUFBRSxTQUFTO1FBQ3JCLFVBQVUsRUFBRTtZQUNWLFdBQVcsRUFBRSxTQUFTO1lBQ3RCLE9BQU8sRUFBRSxLQUFLO1lBQ2QsV0FBVyxFQUFFLFNBQVM7WUFDdEIsT0FBTyxFQUFFLElBQUk7U0FDZDtLQUNGLENBQUMsQ0FBQztJQUVILE1BQU0sUUFBUSxHQUFHLElBQUEsZUFBTSxFQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUVyQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDdkgsMkVBQTJFO1FBQzNFLDBEQUEwRDtRQUMxRCx5QkFBeUI7UUFDekIseURBQXlEO1FBQ3pELGlCQUFpQjtRQUNqQiwwQkFBMEI7UUFDMUIsc0JBQXNCO1FBQ3RCLG9DQUFvQztRQUNwQyxvREFBb0Q7UUFDcEQsK0NBQStD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IHsgZXhwZWN0IGFzIGFzc2VydCwgaGF2ZVJlc291cmNlLCBSZXNvdXJjZVBhcnQsIFN5bnRoVXRpbHMgfSBmcm9tICdAbW9ub2Nkay1leHBlcmltZW50L2Fzc2VydCc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnbW9ub2Nkayc7XG5pbXBvcnQgeyBTaGVsbGFibGUsIFNoZWxsUGxhdGZvcm0gfSBmcm9tICcuLi8uLi9saWInO1xuXG5cbi8vIHRzbGludDpkaXNhYmxlOm1heC1saW5lLWxlbmd0aFxuXG50ZXN0KCdjYW4gYXNzdW1lIGEgcmVmcmVzaGFibGUgcm9sZScsICgpID0+IHtcbiAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKG5ldyBjZGsuQXBwKCksICdUZXN0U3RhY2snKTtcblxuICBuZXcgU2hlbGxhYmxlKHN0YWNrLCAnTXlTaGVsbGFibGUnLCB7XG4gICAgc2NyaXB0RGlyZWN0b3J5OiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnZGVsaXZsaWItdGVzdHMvbGludXgnKSxcbiAgICBlbnRyeXBvaW50OiAndGVzdC5zaCcsXG4gICAgYXNzdW1lUm9sZToge1xuICAgICAgcHJvZmlsZU5hbWU6ICdwcm9maWxlJyxcbiAgICAgIHJvbGVBcm46ICdhcm4nLFxuICAgICAgc2Vzc2lvbk5hbWU6ICdzZXNzaW9uJyxcbiAgICAgIHJlZnJlc2g6IHRydWUsXG4gICAgfSxcbiAgfSk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBhc3NlcnQoc3RhY2spLnZhbHVlO1xuXG4gIGV4cGVjdChKU09OLnBhcnNlKHRlbXBsYXRlLlJlc291cmNlcy5NeVNoZWxsYWJsZUIyRkZEMzk3LlByb3BlcnRpZXMuU291cmNlLkJ1aWxkU3BlYykucGhhc2VzLnByZV9idWlsZC5jb21tYW5kcykudG9FcXVhbChbXG4gICAgJ2VjaG8gXCJEb3dubG9hZGluZyBzY3JpcHRzIGZyb20gczM6Ly8ke1NDUklQVF9TM19CVUNLRVR9LyR7U0NSSVBUX1MzX0tFWX1cIicsXG4gICAgJ2F3cyBzMyBjcCBzMzovLyR7U0NSSVBUX1MzX0JVQ0tFVH0vJHtTQ1JJUFRfUzNfS0VZfSAvdG1wJyxcbiAgICAnbWtkaXIgLXAgL3RtcC9zY3JpcHRkaXInLFxuICAgICd1bnppcCAvdG1wLyQoYmFzZW5hbWUgJFNDUklQVF9TM19LRVkpIC1kIC90bXAvc2NyaXB0ZGlyJyxcbiAgICAnbWtkaXIgLXAgfi8uYXdzJyxcbiAgICAndG91Y2ggfi8uYXdzL2NyZWRlbnRpYWxzJyxcbiAgICAnY29uZmlnPX4vLmF3cy9jb25maWcnLFxuICAgICdlY2hvIFtwcm9maWxlIHByb2ZpbGVdPj4gJHtjb25maWd9JyxcbiAgICAnZWNobyBjcmVkZW50aWFsX3NvdXJjZSA9IEVjc0NvbnRhaW5lciA+PiAke2NvbmZpZ30nLFxuICAgICdlY2hvIHJvbGVfc2Vzc2lvbl9uYW1lID0gc2Vzc2lvbiA+PiAke2NvbmZpZ30nLFxuICAgICdlY2hvIHJvbGVfYXJuID0gYXJuID4+ICRjb25maWcnLFxuICAgICdleHBvcnQgQVdTX1BST0ZJTEU9cHJvZmlsZScsXG4gICAgJ2V4cG9ydCBBV1NfU0RLX0xPQURfQ09ORklHPTEnLFxuICBdKTtcbn0pO1xuXG50ZXN0KCdtaW5pbWFsIGNvbmZpZ3VyYXRpb24nLCAoKSA9PiB7XG4gIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjayhuZXcgY2RrLkFwcCgpLCAnVGVzdFN0YWNrJyk7XG5cbiAgbmV3IFNoZWxsYWJsZShzdGFjaywgJ015U2hlbGxhYmxlJywge1xuICAgIHNjcmlwdERpcmVjdG9yeTogcGF0aC5qb2luKF9fZGlybmFtZSwgJ2RlbGl2bGliLXRlc3RzL2xpbnV4JyksXG4gICAgZW50cnlwb2ludDogJ3Rlc3Quc2gnLFxuICB9KTtcblxuICBhc3NlcnQoc3RhY2spLnRvKGhhdmVSZXNvdXJjZSgnQVdTOjpDb2RlQnVpbGQ6OlByb2plY3QnKSk7XG59KTtcblxudGVzdCgnYXNzdW1lIHJvbGUnLCAoKSA9PiB7XG4gIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjayhuZXcgY2RrLkFwcCgpLCAnVGVzdFN0YWNrJyk7XG5cbiAgbmV3IFNoZWxsYWJsZShzdGFjaywgJ015U2hlbGxhYmxlJywge1xuICAgIHNjcmlwdERpcmVjdG9yeTogcGF0aC5qb2luKF9fZGlybmFtZSwgJ2RlbGl2bGliLXRlc3RzL2xpbnV4JyksXG4gICAgZW50cnlwb2ludDogJ3Rlc3Quc2gnLFxuICAgIGFzc3VtZVJvbGU6IHtcbiAgICAgIHJvbGVBcm46ICdhcm46YXdzOnJvbGU6dG86YXNzdW1lJyxcbiAgICAgIHNlc3Npb25OYW1lOiAnbXktc2Vzc2lvbi1uYW1lJyxcbiAgICB9LFxuICB9KTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFN5bnRoVXRpbHMuc3ludGhlc2l6ZShzdGFjaykudGVtcGxhdGU7XG4gIGNvbnN0IGJ1aWxkU3BlYyA9IEpTT04ucGFyc2UodGVtcGxhdGUuUmVzb3VyY2VzLk15U2hlbGxhYmxlQjJGRkQzOTcuUHJvcGVydGllcy5Tb3VyY2UuQnVpbGRTcGVjKTtcblxuICBleHBlY3QoYnVpbGRTcGVjLnBoYXNlcy5wcmVfYnVpbGQuY29tbWFuZHMpXG4gICAgLnRvQ29udGFpbignQVdTX1NUU19SRUdJT05BTF9FTkRQT0lOVFM9bGVnYWN5IGF3cyBzdHMgYXNzdW1lLXJvbGUgLS1yb2xlLWFybiBcXFwiYXJuOmF3czpyb2xlOnRvOmFzc3VtZVxcXCIgLS1yb2xlLXNlc3Npb24tbmFtZSBcXFwibXktc2Vzc2lvbi1uYW1lXFxcIiAgPiAkY3JlZHMnKTtcbn0pO1xuXG50ZXN0KCdhc3N1bWUgcm9sZSB3aXRoIGV4dGVybmFsLWlkJywgKCkgPT4ge1xuICBjb25zdCBzdGFjayA9IG5ldyBjZGsuU3RhY2sobmV3IGNkay5BcHAoKSwgJ1Rlc3RTdGFjaycpO1xuXG4gIG5ldyBTaGVsbGFibGUoc3RhY2ssICdNeVNoZWxsYWJsZScsIHtcbiAgICBzY3JpcHREaXJlY3Rvcnk6IHBhdGguam9pbihfX2Rpcm5hbWUsICdkZWxpdmxpYi10ZXN0cy9saW51eCcpLFxuICAgIGVudHJ5cG9pbnQ6ICd0ZXN0LnNoJyxcbiAgICBhc3N1bWVSb2xlOiB7XG4gICAgICByb2xlQXJuOiAnYXJuOmF3czpyb2xlOnRvOmFzc3VtZScsXG4gICAgICBzZXNzaW9uTmFtZTogJ215LXNlc3Npb24tbmFtZScsXG4gICAgICBleHRlcm5hbElkOiAnbXktZXh0ZXJuYS1pZCcsXG4gICAgfSxcbiAgfSk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBTeW50aFV0aWxzLnN5bnRoZXNpemUoc3RhY2spLnRlbXBsYXRlO1xuICBjb25zdCBidWlsZFNwZWMgPSBKU09OLnBhcnNlKHRlbXBsYXRlLlJlc291cmNlcy5NeVNoZWxsYWJsZUIyRkZEMzk3LlByb3BlcnRpZXMuU291cmNlLkJ1aWxkU3BlYyk7XG5cbiAgZXhwZWN0KGJ1aWxkU3BlYy5waGFzZXMucHJlX2J1aWxkLmNvbW1hbmRzKVxuICAgIC50b0NvbnRhaW4oJ0FXU19TVFNfUkVHSU9OQUxfRU5EUE9JTlRTPWxlZ2FjeSBhd3Mgc3RzIGFzc3VtZS1yb2xlIC0tcm9sZS1hcm4gXFxcImFybjphd3M6cm9sZTp0bzphc3N1bWVcXFwiIC0tcm9sZS1zZXNzaW9uLW5hbWUgXFxcIm15LXNlc3Npb24tbmFtZVxcXCIgLS1leHRlcm5hbC1pZCBcXFwibXktZXh0ZXJuYS1pZFxcXCIgPiAkY3JlZHMnKTtcbn0pO1xuXG50ZXN0KCdhc3N1bWUgcm9sZSB3aXRoIHJlZ2lvbmFsIGVuZHBvaW50cycsICgpID0+IHtcbiAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKG5ldyBjZGsuQXBwKCksICdUZXN0U3RhY2snKTtcblxuICBuZXcgU2hlbGxhYmxlKHN0YWNrLCAnTXlTaGVsbGFibGUnLCB7XG4gICAgc2NyaXB0RGlyZWN0b3J5OiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnZGVsaXZsaWItdGVzdHMvbGludXgnKSxcbiAgICBlbnRyeXBvaW50OiAndGVzdC5zaCcsXG4gICAgYXNzdW1lUm9sZToge1xuICAgICAgcm9sZUFybjogJ2Fybjphd3M6cm9sZTp0bzphc3N1bWUnLFxuICAgICAgc2Vzc2lvbk5hbWU6ICdteS1zZXNzaW9uLW5hbWUnLFxuICAgIH0sXG4gICAgdXNlUmVnaW9uYWxTdHNFbmRwb2ludHM6IHRydWUsXG4gIH0pO1xuXG4gIGNvbnN0IHRlbXBsYXRlID0gU3ludGhVdGlscy5zeW50aGVzaXplKHN0YWNrKS50ZW1wbGF0ZTtcbiAgY29uc3QgYnVpbGRTcGVjID0gSlNPTi5wYXJzZSh0ZW1wbGF0ZS5SZXNvdXJjZXMuTXlTaGVsbGFibGVCMkZGRDM5Ny5Qcm9wZXJ0aWVzLlNvdXJjZS5CdWlsZFNwZWMpO1xuXG4gIGV4cGVjdChidWlsZFNwZWMucGhhc2VzLnByZV9idWlsZC5jb21tYW5kcylcbiAgICAudG9Db250YWluKCdBV1NfU1RTX1JFR0lPTkFMX0VORFBPSU5UUz1yZWdpb25hbCBhd3Mgc3RzIGFzc3VtZS1yb2xlIC0tcm9sZS1hcm4gXFxcImFybjphd3M6cm9sZTp0bzphc3N1bWVcXFwiIC0tcm9sZS1zZXNzaW9uLW5hbWUgXFxcIm15LXNlc3Npb24tbmFtZVxcXCIgID4gJGNyZWRzJyk7XG59KTtcblxudGVzdCgnYXNzdW1lIHJvbGUgd2l0aCBnbG9iYWwgZW5kcG9pbnRzJywgKCkgPT4ge1xuICBjb25zdCBzdGFjayA9IG5ldyBjZGsuU3RhY2sobmV3IGNkay5BcHAoKSwgJ1Rlc3RTdGFjaycpO1xuXG4gIG5ldyBTaGVsbGFibGUoc3RhY2ssICdNeVNoZWxsYWJsZScsIHtcbiAgICBzY3JpcHREaXJlY3Rvcnk6IHBhdGguam9pbihfX2Rpcm5hbWUsICdkZWxpdmxpYi10ZXN0cy9saW51eCcpLFxuICAgIGVudHJ5cG9pbnQ6ICd0ZXN0LnNoJyxcbiAgICBhc3N1bWVSb2xlOiB7XG4gICAgICByb2xlQXJuOiAnYXJuOmF3czpyb2xlOnRvOmFzc3VtZScsXG4gICAgICBzZXNzaW9uTmFtZTogJ215LXNlc3Npb24tbmFtZScsXG4gICAgfSxcbiAgICB1c2VSZWdpb25hbFN0c0VuZHBvaW50czogZmFsc2UsXG4gIH0pO1xuXG4gIGNvbnN0IHRlbXBsYXRlID0gU3ludGhVdGlscy5zeW50aGVzaXplKHN0YWNrKS50ZW1wbGF0ZTtcbiAgY29uc3QgYnVpbGRTcGVjID0gSlNPTi5wYXJzZSh0ZW1wbGF0ZS5SZXNvdXJjZXMuTXlTaGVsbGFibGVCMkZGRDM5Ny5Qcm9wZXJ0aWVzLlNvdXJjZS5CdWlsZFNwZWMpO1xuXG4gIGV4cGVjdChidWlsZFNwZWMucGhhc2VzLnByZV9idWlsZC5jb21tYW5kcylcbiAgICAudG9Db250YWluKCdBV1NfU1RTX1JFR0lPTkFMX0VORFBPSU5UUz1sZWdhY3kgYXdzIHN0cyBhc3N1bWUtcm9sZSAtLXJvbGUtYXJuIFxcXCJhcm46YXdzOnJvbGU6dG86YXNzdW1lXFxcIiAtLXJvbGUtc2Vzc2lvbi1uYW1lIFxcXCJteS1zZXNzaW9uLW5hbWVcXFwiICA+ICRjcmVkcycpO1xufSk7XG5cbnRlc3QoJ2Fzc3VtZSByb2xlIG5vdCBzdXBwb3J0ZWQgb24gd2luZG93cycsICgpID0+IHtcbiAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKG5ldyBjZGsuQXBwKCksICdUZXN0U3RhY2snKTtcblxuICBleHBlY3QoKCkgPT4gbmV3IFNoZWxsYWJsZShzdGFjaywgJ015U2hlbGxhYmxlJywge1xuICAgIHNjcmlwdERpcmVjdG9yeTogcGF0aC5qb2luKF9fZGlybmFtZSwgJ2RlbGl2bGliLXRlc3RzL2xpbnV4JyksXG4gICAgcGxhdGZvcm06IFNoZWxsUGxhdGZvcm0uV2luZG93cyxcbiAgICBlbnRyeXBvaW50OiAndGVzdC5zaCcsXG4gICAgYXNzdW1lUm9sZToge1xuICAgICAgcm9sZUFybjogJ2Fybjphd3M6cm9sZTp0bzphc3N1bWUnLFxuICAgICAgc2Vzc2lvbk5hbWU6ICdteS1zZXNzaW9uLW5hbWUnLFxuICAgIH0sXG4gIH0pKS50b1Rocm93KCdhc3N1bWVSb2xlIGlzIG5vdCBzdXBwb3J0ZWQgb24gV2luZG93cycpO1xufSk7XG5cbnRlc3QoJ2FsYXJtIG9wdGlvbnMgLSBkZWZhdWx0cycsICgpID0+IHtcbiAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKG5ldyBjZGsuQXBwKCksICdUZXN0U3RhY2snKTtcblxuICBuZXcgU2hlbGxhYmxlKHN0YWNrLCAnTXlTaGVsbGFibGUnLCB7XG4gICAgc2NyaXB0RGlyZWN0b3J5OiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnZGVsaXZsaWItdGVzdHMvbGludXgnKSxcbiAgICBlbnRyeXBvaW50OiAndGVzdC5zaCcsXG4gIH0pO1xuXG4gIGFzc2VydChzdGFjaykudG8oaGF2ZVJlc291cmNlKCdBV1M6OkNsb3VkV2F0Y2g6OkFsYXJtJywge1xuICAgIEV2YWx1YXRpb25QZXJpb2RzOiAxLFxuICAgIFRocmVzaG9sZDogMSxcbiAgICBQZXJpb2Q6IDMwMCxcbiAgfSkpO1xufSk7XG5cbnRlc3QoJ2FsYXJtIG9wdGlvbnMgLSBjdXN0b20nLCAoKSA9PiB7XG4gIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjayhuZXcgY2RrLkFwcCgpLCAnVGVzdFN0YWNrJyk7XG5cbiAgbmV3IFNoZWxsYWJsZShzdGFjaywgJ015U2hlbGxhYmxlJywge1xuICAgIHNjcmlwdERpcmVjdG9yeTogcGF0aC5qb2luKF9fZGlybmFtZSwgJ2RlbGl2bGliLXRlc3RzL2xpbnV4JyksXG4gICAgZW50cnlwb2ludDogJ3Rlc3Quc2gnLFxuICAgIGFsYXJtRXZhbHVhdGlvblBlcmlvZHM6IDIsXG4gICAgYWxhcm1UaHJlc2hvbGQ6IDUsXG4gICAgYWxhcm1QZXJpb2Q6IGNkay5EdXJhdGlvbi5taW51dGVzKDYwKSxcbiAgfSk7XG5cbiAgYXNzZXJ0KHN0YWNrKS50byhoYXZlUmVzb3VyY2UoJ0FXUzo6Q2xvdWRXYXRjaDo6QWxhcm0nLCB7XG4gICAgRXZhbHVhdGlvblBlcmlvZHM6IDIsXG4gICAgVGhyZXNob2xkOiA1LFxuICAgIFBlcmlvZDogMzYwMCxcbiAgfSkpO1xufSk7XG5cbnRlc3QoJ3ByaXZpbGVnZWQgbW9kZScsICgpID0+IHtcbiAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKG5ldyBjZGsuQXBwKCksICdUZXN0U3RhY2snKTtcblxuICBuZXcgU2hlbGxhYmxlKHN0YWNrLCAnQWxsb3dEb2NrZXInLCB7XG4gICAgc2NyaXB0RGlyZWN0b3J5OiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnZGVsaXZsaWItdGVzdHMvbGludXgnKSxcbiAgICBlbnRyeXBvaW50OiAndGVzdC5zaCcsXG4gICAgcHJpdmlsZWdlZDogdHJ1ZSxcbiAgfSk7XG5cbiAgYXNzZXJ0KHN0YWNrKS50byhoYXZlUmVzb3VyY2UoJ0FXUzo6Q29kZUJ1aWxkOjpQcm9qZWN0Jywge1xuICAgIEVudmlyb25tZW50OiB7XG4gICAgICBQcml2aWxlZ2VkTW9kZTogdHJ1ZSxcbiAgICB9LFxuICB9LCBSZXNvdXJjZVBhcnQuUHJvcGVydGllcywgdHJ1ZSkpO1xufSk7XG5cbnRlc3QoJ2Vudmlyb25tZW50IHZhcmlhYmxlcycsICgpID0+IHtcbiAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKG5ldyBjZGsuQXBwKCksICdUZXN0U3RhY2snKTtcblxuICBuZXcgU2hlbGxhYmxlKHN0YWNrLCAnRW52aXJvbm1lbnRWYXJpYWJsZXMnLCB7XG4gICAgc2NyaXB0RGlyZWN0b3J5OiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnZGVsaXZsaWItdGVzdHMvbGludXgnKSxcbiAgICBlbnRyeXBvaW50OiAndGVzdC5zaCcsXG4gICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgIEVOVl9WQVI6ICdlbnYtdmFyLXZhbHVlJyxcbiAgICAgIFVOREVGSU5FRF9WQVI6IHVuZGVmaW5lZCxcbiAgICAgIEVNUFRZX1NUUklORzogJycsXG4gICAgfSxcbiAgICBlbnZpcm9ubWVudFNlY3JldHM6IHtcbiAgICAgIEVOVl9WQVJfU0VDUkVUOiAnYXJuOnRlc3Q6c2VjcmV0c21hbmFnZXI6cmVnaW9uOjAwMDAwMDAwMDAwMDpzZWNyZXQ6ZW52LXZhci1zZWNyZXQtbmFtZS1hYmMxMjMnLFxuICAgIH0sXG4gICAgZW52aXJvbm1lbnRQYXJhbWV0ZXJzOiB7XG4gICAgICBFTlZfVkFSX1BBUkFNRVRFUjogJ2Vudi12YXItcGFyYW1ldGVyLW5hbWUnLFxuICAgIH0sXG4gIH0pO1xuXG4gIGFzc2VydChzdGFjaykudG8oaGF2ZVJlc291cmNlKCdBV1M6OkNvZGVCdWlsZDo6UHJvamVjdCcsIHtcbiAgICBFbnZpcm9ubWVudDoge1xuICAgICAgRW52aXJvbm1lbnRWYXJpYWJsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIE5hbWU6ICdTQ1JJUFRfUzNfQlVDS0VUJyxcbiAgICAgICAgICBUeXBlOiAnUExBSU5URVhUJyxcbiAgICAgICAgICBWYWx1ZToge1xuICAgICAgICAgICAgUmVmOiAnQXNzZXRQYXJhbWV0ZXJzM2QzNGIwN2JhODcxOTg5ZDAzMDY0OWM2NDZiMzA5NmJhN2M3OGNhNTMxODk3YmNkYjA2NzA3NzRkMmY5ZDNlNFMzQnVja2V0REE5MUVGQkMnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBOYW1lOiAnU0NSSVBUX1MzX0tFWScsXG4gICAgICAgICAgVHlwZTogJ1BMQUlOVEVYVCcsXG4gICAgICAgICAgVmFsdWU6IHtcbiAgICAgICAgICAgICdGbjo6Sm9pbic6IFsnJywgW3tcbiAgICAgICAgICAgICAgJ0ZuOjpTZWxlY3QnOiBbMCwge1xuICAgICAgICAgICAgICAgICdGbjo6U3BsaXQnOiBbJ3x8Jywge1xuICAgICAgICAgICAgICAgICAgUmVmOiAnQXNzZXRQYXJhbWV0ZXJzM2QzNGIwN2JhODcxOTg5ZDAzMDY0OWM2NDZiMzA5NmJhN2M3OGNhNTMxODk3YmNkYjA2NzA3NzRkMmY5ZDNlNFMzVmVyc2lvbktleUYzRjgzRjc2JyxcbiAgICAgICAgICAgICAgICB9XSxcbiAgICAgICAgICAgICAgfV0sXG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICdGbjo6U2VsZWN0JzogWzEsIHtcbiAgICAgICAgICAgICAgICAnRm46OlNwbGl0JzogWyd8fCcsIHtcbiAgICAgICAgICAgICAgICAgIFJlZjogJ0Fzc2V0UGFyYW1ldGVyczNkMzRiMDdiYTg3MTk4OWQwMzA2NDljNjQ2YjMwOTZiYTdjNzhjYTUzMTg5N2JjZGIwNjcwNzc0ZDJmOWQzZTRTM1ZlcnNpb25LZXlGM0Y4M0Y3NicsXG4gICAgICAgICAgICAgICAgfV0sXG4gICAgICAgICAgICAgIH1dLFxuICAgICAgICAgICAgfV1dLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBOYW1lOiAnRU5WX1ZBUicsXG4gICAgICAgICAgVHlwZTogJ1BMQUlOVEVYVCcsXG4gICAgICAgICAgVmFsdWU6ICdlbnYtdmFyLXZhbHVlJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIE5hbWU6ICdFTVBUWV9TVFJJTkcnLFxuICAgICAgICAgIFR5cGU6ICdQTEFJTlRFWFQnLFxuICAgICAgICAgIFZhbHVlOiAnJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIE5hbWU6ICdFTlZfVkFSX1NFQ1JFVCcsXG4gICAgICAgICAgVHlwZTogJ1NFQ1JFVFNfTUFOQUdFUicsXG4gICAgICAgICAgVmFsdWU6ICdlbnYtdmFyLXNlY3JldC1uYW1lJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIE5hbWU6ICdFTlZfVkFSX1BBUkFNRVRFUicsXG4gICAgICAgICAgVHlwZTogJ1BBUkFNRVRFUl9TVE9SRScsXG4gICAgICAgICAgVmFsdWU6ICdlbnYtdmFyLXBhcmFtZXRlci1uYW1lJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgfSwgUmVzb3VyY2VQYXJ0LlByb3BlcnRpZXMsIHRydWUpKTtcblxuICBhc3NlcnQoc3RhY2spLnRvKGhhdmVSZXNvdXJjZSgnQVdTOjpJQU06OlBvbGljeScsIHtcbiAgICBQb2xpY3lEb2N1bWVudDoge1xuICAgICAgU3RhdGVtZW50OiBbXG4gICAgICAgIHtcbiAgICAgICAgICBBY3Rpb246ICdzc206R2V0UGFyYW1ldGVycycsXG4gICAgICAgICAgRWZmZWN0OiAnQWxsb3cnLFxuICAgICAgICAgIFJlc291cmNlOiB7XG4gICAgICAgICAgICAnRm46OkpvaW4nOiBbXG4gICAgICAgICAgICAgICcnLFxuICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgJ2FybjonLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIFJlZjogJ0FXUzo6UGFydGl0aW9uJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICc6c3NtOicsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgUmVmOiAnQVdTOjpSZWdpb24nLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgJzonLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIFJlZjogJ0FXUzo6QWNjb3VudElkJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICc6cGFyYW1ldGVyL2Vudi12YXItcGFyYW1ldGVyLW5hbWUnLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgQWN0aW9uOiAnc2VjcmV0c21hbmFnZXI6R2V0U2VjcmV0VmFsdWUnLFxuICAgICAgICAgIEVmZmVjdDogJ0FsbG93JyxcbiAgICAgICAgICBSZXNvdXJjZToge1xuICAgICAgICAgICAgJ0ZuOjpKb2luJzogW1xuICAgICAgICAgICAgICAnJyxcbiAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICdhcm46JyxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBSZWY6ICdBV1M6OlBhcnRpdGlvbicsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAnOnNlY3JldHNtYW5hZ2VyOicsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgUmVmOiAnQVdTOjpSZWdpb24nLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgJzonLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIFJlZjogJ0FXUzo6QWNjb3VudElkJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICc6c2VjcmV0OmVudi12YXItc2VjcmV0LW5hbWUtPz8/Pz8/JyxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIEFjdGlvbjogW1xuICAgICAgICAgICAgJ2xvZ3M6Q3JlYXRlTG9nR3JvdXAnLFxuICAgICAgICAgICAgJ2xvZ3M6Q3JlYXRlTG9nU3RyZWFtJyxcbiAgICAgICAgICAgICdsb2dzOlB1dExvZ0V2ZW50cycsXG4gICAgICAgICAgXSxcbiAgICAgICAgICBFZmZlY3Q6ICdBbGxvdycsXG4gICAgICAgICAgUmVzb3VyY2U6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgJ0ZuOjpKb2luJzogW1xuICAgICAgICAgICAgICAgICcnLFxuICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICdhcm46JyxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgUmVmOiAnQVdTOjpQYXJ0aXRpb24nLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICc6bG9nczonLFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBSZWY6ICdBV1M6OlJlZ2lvbicsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgJzonLFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBSZWY6ICdBV1M6OkFjY291bnRJZCcsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgJzpsb2ctZ3JvdXA6L2F3cy9jb2RlYnVpbGQvJyxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgUmVmOiAnRW52aXJvbm1lbnRWYXJpYWJsZXNEMjY2QjY4MicsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAnRm46OkpvaW4nOiBbXG4gICAgICAgICAgICAgICAgJycsXG4gICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgJ2FybjonLFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBSZWY6ICdBV1M6OlBhcnRpdGlvbicsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgJzpsb2dzOicsXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFJlZjogJ0FXUzo6UmVnaW9uJyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAnOicsXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFJlZjogJ0FXUzo6QWNjb3VudElkJyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAnOmxvZy1ncm91cDovYXdzL2NvZGVidWlsZC8nLFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBSZWY6ICdFbnZpcm9ubWVudFZhcmlhYmxlc0QyNjZCNjgyJyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAnOionLFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBBY3Rpb246IFtcbiAgICAgICAgICAgICdjb2RlYnVpbGQ6Q3JlYXRlUmVwb3J0R3JvdXAnLFxuICAgICAgICAgICAgJ2NvZGVidWlsZDpDcmVhdGVSZXBvcnQnLFxuICAgICAgICAgICAgJ2NvZGVidWlsZDpVcGRhdGVSZXBvcnQnLFxuICAgICAgICAgICAgJ2NvZGVidWlsZDpCYXRjaFB1dFRlc3RDYXNlcycsXG4gICAgICAgICAgICAnY29kZWJ1aWxkOkJhdGNoUHV0Q29kZUNvdmVyYWdlcycsXG4gICAgICAgICAgXSxcbiAgICAgICAgICBFZmZlY3Q6ICdBbGxvdycsXG4gICAgICAgICAgUmVzb3VyY2U6IHtcbiAgICAgICAgICAgICdGbjo6Sm9pbic6IFtcbiAgICAgICAgICAgICAgJycsXG4gICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAnYXJuOicsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgUmVmOiAnQVdTOjpQYXJ0aXRpb24nLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgJzpjb2RlYnVpbGQ6JyxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBSZWY6ICdBV1M6OlJlZ2lvbicsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAnOicsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgUmVmOiAnQVdTOjpBY2NvdW50SWQnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgJzpyZXBvcnQtZ3JvdXAvJyxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBSZWY6ICdFbnZpcm9ubWVudFZhcmlhYmxlc0QyNjZCNjgyJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICctKicsXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBBY3Rpb246IFtcbiAgICAgICAgICAgICdzMzpHZXRPYmplY3QqJyxcbiAgICAgICAgICAgICdzMzpHZXRCdWNrZXQqJyxcbiAgICAgICAgICAgICdzMzpMaXN0KicsXG4gICAgICAgICAgXSxcbiAgICAgICAgICBFZmZlY3Q6ICdBbGxvdycsXG4gICAgICAgICAgUmVzb3VyY2U6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgJ0ZuOjpKb2luJzogW1xuICAgICAgICAgICAgICAgICcnLFxuICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICdhcm46JyxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgUmVmOiAnQVdTOjpQYXJ0aXRpb24nLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICc6czM6OjonLFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBSZWY6ICdBc3NldFBhcmFtZXRlcnMzZDM0YjA3YmE4NzE5ODlkMDMwNjQ5YzY0NmIzMDk2YmE3Yzc4Y2E1MzE4OTdiY2RiMDY3MDc3NGQyZjlkM2U0UzNCdWNrZXREQTkxRUZCQycsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAnRm46OkpvaW4nOiBbXG4gICAgICAgICAgICAgICAgJycsXG4gICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgJ2FybjonLFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBSZWY6ICdBV1M6OlBhcnRpdGlvbicsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgJzpzMzo6OicsXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFJlZjogJ0Fzc2V0UGFyYW1ldGVyczNkMzRiMDdiYTg3MTk4OWQwMzA2NDljNjQ2YjMwOTZiYTdjNzhjYTUzMTg5N2JjZGIwNjcwNzc0ZDJmOWQzZTRTM0J1Y2tldERBOTFFRkJDJyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAnLyonLFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBBY3Rpb246IFtcbiAgICAgICAgICAgICdzZWNyZXRzbWFuYWdlcjpHZXRTZWNyZXRWYWx1ZScsXG4gICAgICAgICAgICAnc2VjcmV0c21hbmFnZXI6RGVzY3JpYmVTZWNyZXQnLFxuICAgICAgICAgIF0sXG4gICAgICAgICAgRWZmZWN0OiAnQWxsb3cnLFxuICAgICAgICAgIFJlc291cmNlOiAnYXJuOnRlc3Q6c2VjcmV0c21hbmFnZXI6cmVnaW9uOjAwMDAwMDAwMDAwMDpzZWNyZXQ6ZW52LXZhci1zZWNyZXQtbmFtZS1hYmMxMjMnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgQWN0aW9uOiBbXG4gICAgICAgICAgICAnc3NtOkRlc2NyaWJlUGFyYW1ldGVycycsXG4gICAgICAgICAgICAnc3NtOkdldFBhcmFtZXRlcnMnLFxuICAgICAgICAgICAgJ3NzbTpHZXRQYXJhbWV0ZXInLFxuICAgICAgICAgICAgJ3NzbTpHZXRQYXJhbWV0ZXJIaXN0b3J5JyxcbiAgICAgICAgICBdLFxuICAgICAgICAgIEVmZmVjdDogJ0FsbG93JyxcbiAgICAgICAgICBSZXNvdXJjZToge1xuICAgICAgICAgICAgJ0ZuOjpKb2luJzogW1xuICAgICAgICAgICAgICAnJyxcbiAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICdhcm46JyxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBSZWY6ICdBV1M6OlBhcnRpdGlvbicsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAnOnNzbTonLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIFJlZjogJ0FXUzo6UmVnaW9uJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICc6JyxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBSZWY6ICdBV1M6OkFjY291bnRJZCcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAnOnBhcmFtZXRlci9lbnYtdmFyLXBhcmFtZXRlci1uYW1lJyxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBWZXJzaW9uOiAnMjAxMi0xMC0xNycsXG4gICAgfSxcbiAgICBQb2xpY3lOYW1lOiAnRW52aXJvbm1lbnRWYXJpYWJsZXNSb2xlRGVmYXVsdFBvbGljeTFCQ0RENUQwJyxcbiAgICBSb2xlczogW1xuICAgICAge1xuICAgICAgICBSZWY6ICdFbnZpcm9ubWVudFZhcmlhYmxlc1JvbGU5M0I1Q0Q5RicsXG4gICAgICB9LFxuICAgIF0sXG4gIH0pKTtcbn0pO1xuIl19
@@ -1,4 +0,0 @@
1
- import { App, Stack, StackProps } from 'monocdk';
2
- export declare class TestStack extends Stack {
3
- constructor(parent: App, id: string, props?: StackProps);
4
- }