@mavogel/cdk-vscode-server 0.0.55 → 0.0.56

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 (62) hide show
  1. package/.claude/hooks/file_checker.sh +0 -0
  2. package/.jsii +96 -24
  3. package/API.md +56 -0
  4. package/CLAUDE.md +84 -118
  5. package/README.md +48 -0
  6. package/assets/installer/installer.lambda/index.js +14 -2
  7. package/examples/custom-domain/main.ts +49 -0
  8. package/integ-tests/integ.al2023.ts.snapshot/IntegSetupVSCodeOnAl2023DefaultTestDeployAssert74D8F645.assets.json +7 -6
  9. package/integ-tests/integ.al2023.ts.snapshot/IntegSetupVSCodeOnAl2023DefaultTestDeployAssert74D8F645.template.json +6 -6
  10. package/integ-tests/integ.al2023.ts.snapshot/IntegTestStackAl2023.assets.json +20 -12
  11. package/integ-tests/integ.al2023.ts.snapshot/IntegTestStackAl2023.template.json +36 -152
  12. package/integ-tests/integ.al2023.ts.snapshot/{asset.23732f3d1982f7fb0da3bd6638a8107337bb767fea165b45eae12000a1dd67ce → asset.0ad50fc42afd768c3d0bfdd4701e43284fb077a25f19eea1e8c51a5ca36ebfe4}/index.js +988 -1165
  13. package/integ-tests/{integ.ubuntu.ts.snapshot/asset.a9865c9d36c7aa999e28cb7926e7a3a8e0b6d0854b25131a172024c5777442fa.lambda → integ.al2023.ts.snapshot/asset.33da23274e25bd9f43638c5d83dad26e3931cbe78d462ffd9a9f565e948b4f5f.lambda}/index.js +14 -2
  14. package/integ-tests/{integ.ubuntu.ts.snapshot/asset.f692c9f68e4daba2abc99103efd3518bced1e9d7a2a89847b9b5d5473c64f1bd.bundle → integ.al2023.ts.snapshot/asset.530055f7515b3f0a47900f5df37e729ba40ca977b2d07b952bdefa2b8f883f42.bundle}/index.js +296 -191
  15. package/integ-tests/{integ.ubuntu.ts.snapshot/asset.ce2f3595a340d6c519a65888ef97e3b9b64f053f83608e32cc28162e22d7d99a → integ.al2023.ts.snapshot/asset.9d043014be736e8162bcc7ec5590cc6d2ff24fd0d9c73a5c5d595151c5fdad00}/index.js +1 -1
  16. package/integ-tests/integ.al2023.ts.snapshot/cdk.out +1 -1
  17. package/integ-tests/integ.al2023.ts.snapshot/integ.json +4 -3
  18. package/integ-tests/integ.al2023.ts.snapshot/manifest.json +956 -7
  19. package/integ-tests/integ.al2023.ts.snapshot/tree.json +1 -3228
  20. package/integ-tests/integ.custom-domain.ts +87 -0
  21. package/integ-tests/integ.custom-domain.ts.snapshot/IntegSetupVSCodeOnCustomDomainDefaultTestDeployAssert6982D514.assets.json +33 -0
  22. package/integ-tests/integ.custom-domain.ts.snapshot/IntegSetupVSCodeOnCustomDomainDefaultTestDeployAssert6982D514.template.json +333 -0
  23. package/integ-tests/integ.custom-domain.ts.snapshot/IntegTestStackCustomDomain.assets.json +132 -0
  24. package/integ-tests/integ.custom-domain.ts.snapshot/IntegTestStackCustomDomain.template.json +2862 -0
  25. package/integ-tests/{integ.ubuntu.ts.snapshot/asset.23732f3d1982f7fb0da3bd6638a8107337bb767fea165b45eae12000a1dd67ce → integ.custom-domain.ts.snapshot/asset.0ad50fc42afd768c3d0bfdd4701e43284fb077a25f19eea1e8c51a5ca36ebfe4}/index.js +988 -1165
  26. package/integ-tests/integ.custom-domain.ts.snapshot/asset.2819175352ad1ce0dae768e83fc328fb70fb5f10b4a8ff0ccbcb791f02b0716d/index.js +1 -0
  27. package/integ-tests/{integ.al2023.ts.snapshot/asset.a9865c9d36c7aa999e28cb7926e7a3a8e0b6d0854b25131a172024c5777442fa.lambda → integ.custom-domain.ts.snapshot/asset.33da23274e25bd9f43638c5d83dad26e3931cbe78d462ffd9a9f565e948b4f5f.lambda}/index.js +14 -2
  28. package/integ-tests/{integ.al2023.ts.snapshot/asset.f692c9f68e4daba2abc99103efd3518bced1e9d7a2a89847b9b5d5473c64f1bd.bundle → integ.custom-domain.ts.snapshot/asset.530055f7515b3f0a47900f5df37e729ba40ca977b2d07b952bdefa2b8f883f42.bundle}/index.js +296 -191
  29. package/integ-tests/integ.custom-domain.ts.snapshot/asset.781ab0ab74634cdaf61539ab208ab777829ef07097ac21f95b9e15a3b1eedc1b.lambda/index.js +57 -0
  30. package/integ-tests/integ.custom-domain.ts.snapshot/asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200/__entrypoint__.js +1 -0
  31. package/integ-tests/integ.custom-domain.ts.snapshot/asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200/index.js +1 -0
  32. package/integ-tests/{integ.al2023.ts.snapshot/asset.ce2f3595a340d6c519a65888ef97e3b9b64f053f83608e32cc28162e22d7d99a → integ.custom-domain.ts.snapshot/asset.9d043014be736e8162bcc7ec5590cc6d2ff24fd0d9c73a5c5d595151c5fdad00}/index.js +1 -1
  33. package/integ-tests/integ.custom-domain.ts.snapshot/asset.b073cebcf4d61fb152a30f5a5e57a94df7f980a549fdf1a79a0b18c5750522d8/index.js +1 -0
  34. package/integ-tests/integ.custom-domain.ts.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/cfn-response.js +1 -0
  35. package/integ-tests/integ.custom-domain.ts.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/consts.js +1 -0
  36. package/integ-tests/integ.custom-domain.ts.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/framework.js +3 -0
  37. package/integ-tests/integ.custom-domain.ts.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/outbound.js +1 -0
  38. package/integ-tests/integ.custom-domain.ts.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/util.js +1 -0
  39. package/integ-tests/integ.custom-domain.ts.snapshot/integ.json +23 -0
  40. package/integ-tests/integ.custom-domain.ts.snapshot/manifest.json +1653 -0
  41. package/integ-tests/integ.custom-domain.ts.snapshot/tree.json +1 -0
  42. package/integ-tests/integ.ubuntu.ts.snapshot/IntegSetupVSCodeOnUbuntuDefaultTestDeployAssertFF8DF2C5.assets.json +7 -6
  43. package/integ-tests/integ.ubuntu.ts.snapshot/IntegSetupVSCodeOnUbuntuDefaultTestDeployAssertFF8DF2C5.template.json +6 -6
  44. package/integ-tests/integ.ubuntu.ts.snapshot/IntegTestStackUbuntu22.assets.json +20 -12
  45. package/integ-tests/integ.ubuntu.ts.snapshot/IntegTestStackUbuntu22.template.json +36 -72
  46. package/integ-tests/integ.ubuntu.ts.snapshot/asset.0ad50fc42afd768c3d0bfdd4701e43284fb077a25f19eea1e8c51a5ca36ebfe4/index.js +5992 -0
  47. package/integ-tests/integ.ubuntu.ts.snapshot/asset.33da23274e25bd9f43638c5d83dad26e3931cbe78d462ffd9a9f565e948b4f5f.lambda/index.js +143 -0
  48. package/integ-tests/integ.ubuntu.ts.snapshot/asset.530055f7515b3f0a47900f5df37e729ba40ca977b2d07b952bdefa2b8f883f42.bundle/index.js +30676 -0
  49. package/integ-tests/integ.ubuntu.ts.snapshot/asset.9d043014be736e8162bcc7ec5590cc6d2ff24fd0d9c73a5c5d595151c5fdad00/index.js +1 -0
  50. package/integ-tests/integ.ubuntu.ts.snapshot/cdk.out +1 -1
  51. package/integ-tests/integ.ubuntu.ts.snapshot/integ.json +3 -2
  52. package/integ-tests/integ.ubuntu.ts.snapshot/manifest.json +956 -7
  53. package/integ-tests/integ.ubuntu.ts.snapshot/tree.json +1 -3070
  54. package/lib/installer/installer.d.ts +7 -0
  55. package/lib/installer/installer.js +15 -7
  56. package/lib/installer/installer.lambda.js +20 -3
  57. package/lib/vscode-server.d.ts +33 -0
  58. package/lib/vscode-server.js +165 -5
  59. package/mavogelcdkvscodeserver/go.mod +1 -1
  60. package/mavogelcdkvscodeserver/jsii/jsii.go +2 -2
  61. package/mavogelcdkvscodeserver/version +1 -1
  62. package/package.json +4 -4
@@ -1,3228 +1 @@
1
- {
2
- "version": "tree-0.1",
3
- "tree": {
4
- "id": "App",
5
- "path": "",
6
- "children": {
7
- "IntegTestStackAl2023": {
8
- "id": "IntegTestStackAl2023",
9
- "path": "IntegTestStackAl2023",
10
- "children": {
11
- "IntegVSCodeServer": {
12
- "id": "IntegVSCodeServer",
13
- "path": "IntegTestStackAl2023/IntegVSCodeServer",
14
- "children": {
15
- "password-secret": {
16
- "id": "password-secret",
17
- "path": "IntegTestStackAl2023/IntegVSCodeServer/password-secret",
18
- "children": {
19
- "Resource": {
20
- "id": "Resource",
21
- "path": "IntegTestStackAl2023/IntegVSCodeServer/password-secret/Resource",
22
- "attributes": {
23
- "aws:cdk:cloudformation:type": "AWS::SecretsManager::Secret",
24
- "aws:cdk:cloudformation:props": {
25
- "generateSecretString": {
26
- "passwordLength": 16,
27
- "secretStringTemplate": "{\"username\":\"participant\"}",
28
- "excludePunctuation": true,
29
- "includeSpace": false,
30
- "generateStringKey": "password"
31
- },
32
- "tags": [
33
- {
34
- "key": "app",
35
- "value": "vscode-server"
36
- },
37
- {
38
- "key": "Environement",
39
- "value": "IntegTestAl2023"
40
- },
41
- {
42
- "key": "IntegTest",
43
- "value": "True"
44
- }
45
- ]
46
- }
47
- },
48
- "constructInfo": {
49
- "fqn": "aws-cdk-lib.aws_secretsmanager.CfnSecret",
50
- "version": "2.177.0"
51
- }
52
- }
53
- },
54
- "constructInfo": {
55
- "fqn": "aws-cdk-lib.aws_secretsmanager.Secret",
56
- "version": "2.177.0"
57
- }
58
- },
59
- "SecretRetrieverOnEventHandler": {
60
- "id": "SecretRetrieverOnEventHandler",
61
- "path": "IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieverOnEventHandler",
62
- "children": {
63
- "ServiceRole": {
64
- "id": "ServiceRole",
65
- "path": "IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieverOnEventHandler/ServiceRole",
66
- "children": {
67
- "ImportServiceRole": {
68
- "id": "ImportServiceRole",
69
- "path": "IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieverOnEventHandler/ServiceRole/ImportServiceRole",
70
- "constructInfo": {
71
- "fqn": "aws-cdk-lib.Resource",
72
- "version": "2.177.0"
73
- }
74
- },
75
- "Resource": {
76
- "id": "Resource",
77
- "path": "IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieverOnEventHandler/ServiceRole/Resource",
78
- "attributes": {
79
- "aws:cdk:cloudformation:type": "AWS::IAM::Role",
80
- "aws:cdk:cloudformation:props": {
81
- "assumeRolePolicyDocument": {
82
- "Statement": [
83
- {
84
- "Action": "sts:AssumeRole",
85
- "Effect": "Allow",
86
- "Principal": {
87
- "Service": "lambda.amazonaws.com"
88
- }
89
- }
90
- ],
91
- "Version": "2012-10-17"
92
- },
93
- "managedPolicyArns": [
94
- {
95
- "Fn::Join": [
96
- "",
97
- [
98
- "arn:",
99
- {
100
- "Ref": "AWS::Partition"
101
- },
102
- ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"
103
- ]
104
- ]
105
- }
106
- ],
107
- "tags": [
108
- {
109
- "key": "app",
110
- "value": "vscode-server"
111
- },
112
- {
113
- "key": "Environement",
114
- "value": "IntegTestAl2023"
115
- },
116
- {
117
- "key": "IntegTest",
118
- "value": "True"
119
- }
120
- ]
121
- }
122
- },
123
- "constructInfo": {
124
- "fqn": "aws-cdk-lib.aws_iam.CfnRole",
125
- "version": "2.177.0"
126
- }
127
- },
128
- "DefaultPolicy": {
129
- "id": "DefaultPolicy",
130
- "path": "IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieverOnEventHandler/ServiceRole/DefaultPolicy",
131
- "children": {
132
- "Resource": {
133
- "id": "Resource",
134
- "path": "IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieverOnEventHandler/ServiceRole/DefaultPolicy/Resource",
135
- "attributes": {
136
- "aws:cdk:cloudformation:type": "AWS::IAM::Policy",
137
- "aws:cdk:cloudformation:props": {
138
- "policyDocument": {
139
- "Statement": [
140
- {
141
- "Action": "secretsmanager:GetSecretValue",
142
- "Effect": "Allow",
143
- "Resource": {
144
- "Ref": "IntegVSCodeServerpasswordsecret202A5DB3"
145
- }
146
- }
147
- ],
148
- "Version": "2012-10-17"
149
- },
150
- "policyName": "IntegVSCodeServerSecretRetrieverOnEventHandlerServiceRoleDefaultPolicy2641E2C6",
151
- "roles": [
152
- {
153
- "Ref": "IntegVSCodeServerSecretRetrieverOnEventHandlerServiceRoleBEF8D4D2"
154
- }
155
- ]
156
- }
157
- },
158
- "constructInfo": {
159
- "fqn": "aws-cdk-lib.aws_iam.CfnPolicy",
160
- "version": "2.177.0"
161
- }
162
- }
163
- },
164
- "constructInfo": {
165
- "fqn": "aws-cdk-lib.aws_iam.Policy",
166
- "version": "2.177.0"
167
- }
168
- }
169
- },
170
- "constructInfo": {
171
- "fqn": "aws-cdk-lib.aws_iam.Role",
172
- "version": "2.177.0"
173
- }
174
- },
175
- "Code": {
176
- "id": "Code",
177
- "path": "IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieverOnEventHandler/Code",
178
- "children": {
179
- "Stage": {
180
- "id": "Stage",
181
- "path": "IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieverOnEventHandler/Code/Stage",
182
- "constructInfo": {
183
- "fqn": "aws-cdk-lib.AssetStaging",
184
- "version": "2.177.0"
185
- }
186
- },
187
- "AssetBucket": {
188
- "id": "AssetBucket",
189
- "path": "IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieverOnEventHandler/Code/AssetBucket",
190
- "constructInfo": {
191
- "fqn": "aws-cdk-lib.aws_s3.BucketBase",
192
- "version": "2.177.0"
193
- }
194
- }
195
- },
196
- "constructInfo": {
197
- "fqn": "aws-cdk-lib.aws_s3_assets.Asset",
198
- "version": "2.177.0"
199
- }
200
- },
201
- "Resource": {
202
- "id": "Resource",
203
- "path": "IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieverOnEventHandler/Resource",
204
- "attributes": {
205
- "aws:cdk:cloudformation:type": "AWS::Lambda::Function",
206
- "aws:cdk:cloudformation:props": {
207
- "code": {
208
- "s3Bucket": {
209
- "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
210
- },
211
- "s3Key": "781ab0ab74634cdaf61539ab208ab777829ef07097ac21f95b9e15a3b1eedc1b.zip"
212
- },
213
- "description": "src/secret-retriever/secret-retriever.lambda.ts",
214
- "handler": "index.handler",
215
- "memorySize": 128,
216
- "role": {
217
- "Fn::GetAtt": [
218
- "IntegVSCodeServerSecretRetrieverOnEventHandlerServiceRoleBEF8D4D2",
219
- "Arn"
220
- ]
221
- },
222
- "runtime": "nodejs20.x",
223
- "tags": [
224
- {
225
- "key": "app",
226
- "value": "vscode-server"
227
- },
228
- {
229
- "key": "Environement",
230
- "value": "IntegTestAl2023"
231
- },
232
- {
233
- "key": "IntegTest",
234
- "value": "True"
235
- }
236
- ],
237
- "timeout": 10
238
- }
239
- },
240
- "constructInfo": {
241
- "fqn": "aws-cdk-lib.aws_lambda.CfnFunction",
242
- "version": "2.177.0"
243
- }
244
- }
245
- },
246
- "constructInfo": {
247
- "fqn": "aws-cdk-lib.aws_lambda.Function",
248
- "version": "2.177.0"
249
- }
250
- },
251
- "SecretRetrieveProvider": {
252
- "id": "SecretRetrieveProvider",
253
- "path": "IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieveProvider",
254
- "children": {
255
- "framework-onEvent": {
256
- "id": "framework-onEvent",
257
- "path": "IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieveProvider/framework-onEvent",
258
- "children": {
259
- "ServiceRole": {
260
- "id": "ServiceRole",
261
- "path": "IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieveProvider/framework-onEvent/ServiceRole",
262
- "children": {
263
- "ImportServiceRole": {
264
- "id": "ImportServiceRole",
265
- "path": "IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieveProvider/framework-onEvent/ServiceRole/ImportServiceRole",
266
- "constructInfo": {
267
- "fqn": "aws-cdk-lib.Resource",
268
- "version": "2.177.0"
269
- }
270
- },
271
- "Resource": {
272
- "id": "Resource",
273
- "path": "IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieveProvider/framework-onEvent/ServiceRole/Resource",
274
- "attributes": {
275
- "aws:cdk:cloudformation:type": "AWS::IAM::Role",
276
- "aws:cdk:cloudformation:props": {
277
- "assumeRolePolicyDocument": {
278
- "Statement": [
279
- {
280
- "Action": "sts:AssumeRole",
281
- "Effect": "Allow",
282
- "Principal": {
283
- "Service": "lambda.amazonaws.com"
284
- }
285
- }
286
- ],
287
- "Version": "2012-10-17"
288
- },
289
- "managedPolicyArns": [
290
- {
291
- "Fn::Join": [
292
- "",
293
- [
294
- "arn:",
295
- {
296
- "Ref": "AWS::Partition"
297
- },
298
- ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"
299
- ]
300
- ]
301
- }
302
- ],
303
- "tags": [
304
- {
305
- "key": "app",
306
- "value": "vscode-server"
307
- },
308
- {
309
- "key": "Environement",
310
- "value": "IntegTestAl2023"
311
- },
312
- {
313
- "key": "IntegTest",
314
- "value": "True"
315
- }
316
- ]
317
- }
318
- },
319
- "constructInfo": {
320
- "fqn": "aws-cdk-lib.aws_iam.CfnRole",
321
- "version": "2.177.0"
322
- }
323
- },
324
- "DefaultPolicy": {
325
- "id": "DefaultPolicy",
326
- "path": "IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieveProvider/framework-onEvent/ServiceRole/DefaultPolicy",
327
- "children": {
328
- "Resource": {
329
- "id": "Resource",
330
- "path": "IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieveProvider/framework-onEvent/ServiceRole/DefaultPolicy/Resource",
331
- "attributes": {
332
- "aws:cdk:cloudformation:type": "AWS::IAM::Policy",
333
- "aws:cdk:cloudformation:props": {
334
- "policyDocument": {
335
- "Statement": [
336
- {
337
- "Action": "lambda:InvokeFunction",
338
- "Effect": "Allow",
339
- "Resource": [
340
- {
341
- "Fn::GetAtt": [
342
- "IntegVSCodeServerSecretRetrieverOnEventHandlerDD084AE3",
343
- "Arn"
344
- ]
345
- },
346
- {
347
- "Fn::Join": [
348
- "",
349
- [
350
- {
351
- "Fn::GetAtt": [
352
- "IntegVSCodeServerSecretRetrieverOnEventHandlerDD084AE3",
353
- "Arn"
354
- ]
355
- },
356
- ":*"
357
- ]
358
- ]
359
- }
360
- ]
361
- }
362
- ],
363
- "Version": "2012-10-17"
364
- },
365
- "policyName": "IntegVSCodeServerSecretRetrieveProviderframeworkonEventServiceRoleDefaultPolicyEC4DCEA0",
366
- "roles": [
367
- {
368
- "Ref": "IntegVSCodeServerSecretRetrieveProviderframeworkonEventServiceRole0F156B64"
369
- }
370
- ]
371
- }
372
- },
373
- "constructInfo": {
374
- "fqn": "aws-cdk-lib.aws_iam.CfnPolicy",
375
- "version": "2.177.0"
376
- }
377
- }
378
- },
379
- "constructInfo": {
380
- "fqn": "aws-cdk-lib.aws_iam.Policy",
381
- "version": "2.177.0"
382
- }
383
- }
384
- },
385
- "constructInfo": {
386
- "fqn": "aws-cdk-lib.aws_iam.Role",
387
- "version": "2.177.0"
388
- }
389
- },
390
- "Code": {
391
- "id": "Code",
392
- "path": "IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieveProvider/framework-onEvent/Code",
393
- "children": {
394
- "Stage": {
395
- "id": "Stage",
396
- "path": "IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieveProvider/framework-onEvent/Code/Stage",
397
- "constructInfo": {
398
- "fqn": "aws-cdk-lib.AssetStaging",
399
- "version": "2.177.0"
400
- }
401
- },
402
- "AssetBucket": {
403
- "id": "AssetBucket",
404
- "path": "IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieveProvider/framework-onEvent/Code/AssetBucket",
405
- "constructInfo": {
406
- "fqn": "aws-cdk-lib.aws_s3.BucketBase",
407
- "version": "2.177.0"
408
- }
409
- }
410
- },
411
- "constructInfo": {
412
- "fqn": "aws-cdk-lib.aws_s3_assets.Asset",
413
- "version": "2.177.0"
414
- }
415
- },
416
- "Resource": {
417
- "id": "Resource",
418
- "path": "IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieveProvider/framework-onEvent/Resource",
419
- "attributes": {
420
- "aws:cdk:cloudformation:type": "AWS::Lambda::Function",
421
- "aws:cdk:cloudformation:props": {
422
- "code": {
423
- "s3Bucket": {
424
- "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
425
- },
426
- "s3Key": "bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca.zip"
427
- },
428
- "description": "AWS CDK resource provider framework - onEvent (IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieveProvider)",
429
- "environment": {
430
- "variables": {
431
- "USER_ON_EVENT_FUNCTION_ARN": {
432
- "Fn::GetAtt": [
433
- "IntegVSCodeServerSecretRetrieverOnEventHandlerDD084AE3",
434
- "Arn"
435
- ]
436
- }
437
- }
438
- },
439
- "handler": "framework.onEvent",
440
- "role": {
441
- "Fn::GetAtt": [
442
- "IntegVSCodeServerSecretRetrieveProviderframeworkonEventServiceRole0F156B64",
443
- "Arn"
444
- ]
445
- },
446
- "runtime": {
447
- "Fn::FindInMap": [
448
- "LatestNodeRuntimeMap",
449
- {
450
- "Ref": "AWS::Region"
451
- },
452
- "value"
453
- ]
454
- },
455
- "tags": [
456
- {
457
- "key": "app",
458
- "value": "vscode-server"
459
- },
460
- {
461
- "key": "Environement",
462
- "value": "IntegTestAl2023"
463
- },
464
- {
465
- "key": "IntegTest",
466
- "value": "True"
467
- }
468
- ],
469
- "timeout": 900
470
- }
471
- },
472
- "constructInfo": {
473
- "fqn": "aws-cdk-lib.aws_lambda.CfnFunction",
474
- "version": "2.177.0"
475
- }
476
- }
477
- },
478
- "constructInfo": {
479
- "fqn": "aws-cdk-lib.aws_lambda.Function",
480
- "version": "2.177.0"
481
- }
482
- }
483
- },
484
- "constructInfo": {
485
- "fqn": "aws-cdk-lib.custom_resources.Provider",
486
- "version": "2.177.0"
487
- }
488
- },
489
- "SecretRetrieverCustomResource": {
490
- "id": "SecretRetrieverCustomResource",
491
- "path": "IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieverCustomResource",
492
- "children": {
493
- "Default": {
494
- "id": "Default",
495
- "path": "IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieverCustomResource/Default",
496
- "constructInfo": {
497
- "fqn": "aws-cdk-lib.CfnResource",
498
- "version": "2.177.0"
499
- }
500
- }
501
- },
502
- "constructInfo": {
503
- "fqn": "aws-cdk-lib.CustomResource",
504
- "version": "2.177.0"
505
- }
506
- },
507
- "vpc": {
508
- "id": "vpc",
509
- "path": "IntegTestStackAl2023/IntegVSCodeServer/vpc",
510
- "children": {
511
- "Resource": {
512
- "id": "Resource",
513
- "path": "IntegTestStackAl2023/IntegVSCodeServer/vpc/Resource",
514
- "attributes": {
515
- "aws:cdk:cloudformation:type": "AWS::EC2::VPC",
516
- "aws:cdk:cloudformation:props": {
517
- "cidrBlock": "10.0.0.0/16",
518
- "enableDnsHostnames": true,
519
- "enableDnsSupport": true,
520
- "instanceTenancy": "default",
521
- "tags": [
522
- {
523
- "key": "app",
524
- "value": "vscode-server"
525
- },
526
- {
527
- "key": "Environement",
528
- "value": "IntegTestAl2023"
529
- },
530
- {
531
- "key": "IntegTest",
532
- "value": "True"
533
- },
534
- {
535
- "key": "Name",
536
- "value": "IntegTestStackAl2023/IntegVSCodeServer/vpc"
537
- }
538
- ]
539
- }
540
- },
541
- "constructInfo": {
542
- "fqn": "aws-cdk-lib.aws_ec2.CfnVPC",
543
- "version": "2.177.0"
544
- }
545
- },
546
- "publicSubnet1": {
547
- "id": "publicSubnet1",
548
- "path": "IntegTestStackAl2023/IntegVSCodeServer/vpc/publicSubnet1",
549
- "children": {
550
- "Subnet": {
551
- "id": "Subnet",
552
- "path": "IntegTestStackAl2023/IntegVSCodeServer/vpc/publicSubnet1/Subnet",
553
- "attributes": {
554
- "aws:cdk:cloudformation:type": "AWS::EC2::Subnet",
555
- "aws:cdk:cloudformation:props": {
556
- "availabilityZone": {
557
- "Fn::Select": [
558
- 0,
559
- {
560
- "Fn::GetAZs": ""
561
- }
562
- ]
563
- },
564
- "cidrBlock": "10.0.0.0/17",
565
- "mapPublicIpOnLaunch": true,
566
- "tags": [
567
- {
568
- "key": "app",
569
- "value": "vscode-server"
570
- },
571
- {
572
- "key": "aws-cdk:subnet-name",
573
- "value": "public"
574
- },
575
- {
576
- "key": "aws-cdk:subnet-type",
577
- "value": "Public"
578
- },
579
- {
580
- "key": "Environement",
581
- "value": "IntegTestAl2023"
582
- },
583
- {
584
- "key": "IntegTest",
585
- "value": "True"
586
- },
587
- {
588
- "key": "Name",
589
- "value": "IntegTestStackAl2023/IntegVSCodeServer/vpc/publicSubnet1"
590
- }
591
- ],
592
- "vpcId": {
593
- "Ref": "IntegVSCodeServervpc93DDE887"
594
- }
595
- }
596
- },
597
- "constructInfo": {
598
- "fqn": "aws-cdk-lib.aws_ec2.CfnSubnet",
599
- "version": "2.177.0"
600
- }
601
- },
602
- "Acl": {
603
- "id": "Acl",
604
- "path": "IntegTestStackAl2023/IntegVSCodeServer/vpc/publicSubnet1/Acl",
605
- "constructInfo": {
606
- "fqn": "aws-cdk-lib.Resource",
607
- "version": "2.177.0"
608
- }
609
- },
610
- "RouteTable": {
611
- "id": "RouteTable",
612
- "path": "IntegTestStackAl2023/IntegVSCodeServer/vpc/publicSubnet1/RouteTable",
613
- "attributes": {
614
- "aws:cdk:cloudformation:type": "AWS::EC2::RouteTable",
615
- "aws:cdk:cloudformation:props": {
616
- "tags": [
617
- {
618
- "key": "app",
619
- "value": "vscode-server"
620
- },
621
- {
622
- "key": "Environement",
623
- "value": "IntegTestAl2023"
624
- },
625
- {
626
- "key": "IntegTest",
627
- "value": "True"
628
- },
629
- {
630
- "key": "Name",
631
- "value": "IntegTestStackAl2023/IntegVSCodeServer/vpc/publicSubnet1"
632
- }
633
- ],
634
- "vpcId": {
635
- "Ref": "IntegVSCodeServervpc93DDE887"
636
- }
637
- }
638
- },
639
- "constructInfo": {
640
- "fqn": "aws-cdk-lib.aws_ec2.CfnRouteTable",
641
- "version": "2.177.0"
642
- }
643
- },
644
- "RouteTableAssociation": {
645
- "id": "RouteTableAssociation",
646
- "path": "IntegTestStackAl2023/IntegVSCodeServer/vpc/publicSubnet1/RouteTableAssociation",
647
- "attributes": {
648
- "aws:cdk:cloudformation:type": "AWS::EC2::SubnetRouteTableAssociation",
649
- "aws:cdk:cloudformation:props": {
650
- "routeTableId": {
651
- "Ref": "IntegVSCodeServervpcpublicSubnet1RouteTableFD418D0B"
652
- },
653
- "subnetId": {
654
- "Ref": "IntegVSCodeServervpcpublicSubnet1Subnet928029A1"
655
- }
656
- }
657
- },
658
- "constructInfo": {
659
- "fqn": "aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation",
660
- "version": "2.177.0"
661
- }
662
- },
663
- "DefaultRoute": {
664
- "id": "DefaultRoute",
665
- "path": "IntegTestStackAl2023/IntegVSCodeServer/vpc/publicSubnet1/DefaultRoute",
666
- "attributes": {
667
- "aws:cdk:cloudformation:type": "AWS::EC2::Route",
668
- "aws:cdk:cloudformation:props": {
669
- "destinationCidrBlock": "0.0.0.0/0",
670
- "gatewayId": {
671
- "Ref": "IntegVSCodeServervpcIGW960F6D83"
672
- },
673
- "routeTableId": {
674
- "Ref": "IntegVSCodeServervpcpublicSubnet1RouteTableFD418D0B"
675
- }
676
- }
677
- },
678
- "constructInfo": {
679
- "fqn": "aws-cdk-lib.aws_ec2.CfnRoute",
680
- "version": "2.177.0"
681
- }
682
- }
683
- },
684
- "constructInfo": {
685
- "fqn": "aws-cdk-lib.aws_ec2.PublicSubnet",
686
- "version": "2.177.0"
687
- }
688
- },
689
- "publicSubnet2": {
690
- "id": "publicSubnet2",
691
- "path": "IntegTestStackAl2023/IntegVSCodeServer/vpc/publicSubnet2",
692
- "children": {
693
- "Subnet": {
694
- "id": "Subnet",
695
- "path": "IntegTestStackAl2023/IntegVSCodeServer/vpc/publicSubnet2/Subnet",
696
- "attributes": {
697
- "aws:cdk:cloudformation:type": "AWS::EC2::Subnet",
698
- "aws:cdk:cloudformation:props": {
699
- "availabilityZone": {
700
- "Fn::Select": [
701
- 1,
702
- {
703
- "Fn::GetAZs": ""
704
- }
705
- ]
706
- },
707
- "cidrBlock": "10.0.128.0/17",
708
- "mapPublicIpOnLaunch": true,
709
- "tags": [
710
- {
711
- "key": "app",
712
- "value": "vscode-server"
713
- },
714
- {
715
- "key": "aws-cdk:subnet-name",
716
- "value": "public"
717
- },
718
- {
719
- "key": "aws-cdk:subnet-type",
720
- "value": "Public"
721
- },
722
- {
723
- "key": "Environement",
724
- "value": "IntegTestAl2023"
725
- },
726
- {
727
- "key": "IntegTest",
728
- "value": "True"
729
- },
730
- {
731
- "key": "Name",
732
- "value": "IntegTestStackAl2023/IntegVSCodeServer/vpc/publicSubnet2"
733
- }
734
- ],
735
- "vpcId": {
736
- "Ref": "IntegVSCodeServervpc93DDE887"
737
- }
738
- }
739
- },
740
- "constructInfo": {
741
- "fqn": "aws-cdk-lib.aws_ec2.CfnSubnet",
742
- "version": "2.177.0"
743
- }
744
- },
745
- "Acl": {
746
- "id": "Acl",
747
- "path": "IntegTestStackAl2023/IntegVSCodeServer/vpc/publicSubnet2/Acl",
748
- "constructInfo": {
749
- "fqn": "aws-cdk-lib.Resource",
750
- "version": "2.177.0"
751
- }
752
- },
753
- "RouteTable": {
754
- "id": "RouteTable",
755
- "path": "IntegTestStackAl2023/IntegVSCodeServer/vpc/publicSubnet2/RouteTable",
756
- "attributes": {
757
- "aws:cdk:cloudformation:type": "AWS::EC2::RouteTable",
758
- "aws:cdk:cloudformation:props": {
759
- "tags": [
760
- {
761
- "key": "app",
762
- "value": "vscode-server"
763
- },
764
- {
765
- "key": "Environement",
766
- "value": "IntegTestAl2023"
767
- },
768
- {
769
- "key": "IntegTest",
770
- "value": "True"
771
- },
772
- {
773
- "key": "Name",
774
- "value": "IntegTestStackAl2023/IntegVSCodeServer/vpc/publicSubnet2"
775
- }
776
- ],
777
- "vpcId": {
778
- "Ref": "IntegVSCodeServervpc93DDE887"
779
- }
780
- }
781
- },
782
- "constructInfo": {
783
- "fqn": "aws-cdk-lib.aws_ec2.CfnRouteTable",
784
- "version": "2.177.0"
785
- }
786
- },
787
- "RouteTableAssociation": {
788
- "id": "RouteTableAssociation",
789
- "path": "IntegTestStackAl2023/IntegVSCodeServer/vpc/publicSubnet2/RouteTableAssociation",
790
- "attributes": {
791
- "aws:cdk:cloudformation:type": "AWS::EC2::SubnetRouteTableAssociation",
792
- "aws:cdk:cloudformation:props": {
793
- "routeTableId": {
794
- "Ref": "IntegVSCodeServervpcpublicSubnet2RouteTableC264EFB4"
795
- },
796
- "subnetId": {
797
- "Ref": "IntegVSCodeServervpcpublicSubnet2SubnetE381654D"
798
- }
799
- }
800
- },
801
- "constructInfo": {
802
- "fqn": "aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation",
803
- "version": "2.177.0"
804
- }
805
- },
806
- "DefaultRoute": {
807
- "id": "DefaultRoute",
808
- "path": "IntegTestStackAl2023/IntegVSCodeServer/vpc/publicSubnet2/DefaultRoute",
809
- "attributes": {
810
- "aws:cdk:cloudformation:type": "AWS::EC2::Route",
811
- "aws:cdk:cloudformation:props": {
812
- "destinationCidrBlock": "0.0.0.0/0",
813
- "gatewayId": {
814
- "Ref": "IntegVSCodeServervpcIGW960F6D83"
815
- },
816
- "routeTableId": {
817
- "Ref": "IntegVSCodeServervpcpublicSubnet2RouteTableC264EFB4"
818
- }
819
- }
820
- },
821
- "constructInfo": {
822
- "fqn": "aws-cdk-lib.aws_ec2.CfnRoute",
823
- "version": "2.177.0"
824
- }
825
- }
826
- },
827
- "constructInfo": {
828
- "fqn": "aws-cdk-lib.aws_ec2.PublicSubnet",
829
- "version": "2.177.0"
830
- }
831
- },
832
- "IGW": {
833
- "id": "IGW",
834
- "path": "IntegTestStackAl2023/IntegVSCodeServer/vpc/IGW",
835
- "attributes": {
836
- "aws:cdk:cloudformation:type": "AWS::EC2::InternetGateway",
837
- "aws:cdk:cloudformation:props": {
838
- "tags": [
839
- {
840
- "key": "app",
841
- "value": "vscode-server"
842
- },
843
- {
844
- "key": "Environement",
845
- "value": "IntegTestAl2023"
846
- },
847
- {
848
- "key": "IntegTest",
849
- "value": "True"
850
- },
851
- {
852
- "key": "Name",
853
- "value": "IntegTestStackAl2023/IntegVSCodeServer/vpc"
854
- }
855
- ]
856
- }
857
- },
858
- "constructInfo": {
859
- "fqn": "aws-cdk-lib.aws_ec2.CfnInternetGateway",
860
- "version": "2.177.0"
861
- }
862
- },
863
- "VPCGW": {
864
- "id": "VPCGW",
865
- "path": "IntegTestStackAl2023/IntegVSCodeServer/vpc/VPCGW",
866
- "attributes": {
867
- "aws:cdk:cloudformation:type": "AWS::EC2::VPCGatewayAttachment",
868
- "aws:cdk:cloudformation:props": {
869
- "internetGatewayId": {
870
- "Ref": "IntegVSCodeServervpcIGW960F6D83"
871
- },
872
- "vpcId": {
873
- "Ref": "IntegVSCodeServervpc93DDE887"
874
- }
875
- }
876
- },
877
- "constructInfo": {
878
- "fqn": "aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment",
879
- "version": "2.177.0"
880
- }
881
- },
882
- "RestrictDefaultSecurityGroupCustomResource": {
883
- "id": "RestrictDefaultSecurityGroupCustomResource",
884
- "path": "IntegTestStackAl2023/IntegVSCodeServer/vpc/RestrictDefaultSecurityGroupCustomResource",
885
- "children": {
886
- "Default": {
887
- "id": "Default",
888
- "path": "IntegTestStackAl2023/IntegVSCodeServer/vpc/RestrictDefaultSecurityGroupCustomResource/Default",
889
- "constructInfo": {
890
- "fqn": "aws-cdk-lib.CfnResource",
891
- "version": "2.177.0"
892
- }
893
- }
894
- },
895
- "constructInfo": {
896
- "fqn": "aws-cdk-lib.CustomResource",
897
- "version": "2.177.0"
898
- }
899
- }
900
- },
901
- "constructInfo": {
902
- "fqn": "aws-cdk-lib.aws_ec2.Vpc",
903
- "version": "2.177.0"
904
- }
905
- },
906
- "cf-to-server-sg": {
907
- "id": "cf-to-server-sg",
908
- "path": "IntegTestStackAl2023/IntegVSCodeServer/cf-to-server-sg",
909
- "children": {
910
- "Resource": {
911
- "id": "Resource",
912
- "path": "IntegTestStackAl2023/IntegVSCodeServer/cf-to-server-sg/Resource",
913
- "attributes": {
914
- "aws:cdk:cloudformation:type": "AWS::EC2::SecurityGroup",
915
- "aws:cdk:cloudformation:props": {
916
- "groupDescription": "SG for VSCodeServer - only allow CloudFront ingress",
917
- "groupName": "cloudfront-to-vscode-server",
918
- "securityGroupEgress": [
919
- {
920
- "cidrIp": "0.0.0.0/0",
921
- "description": "Allow all outbound traffic by default",
922
- "ipProtocol": "-1"
923
- }
924
- ],
925
- "tags": [
926
- {
927
- "key": "app",
928
- "value": "vscode-server"
929
- },
930
- {
931
- "key": "Environement",
932
- "value": "IntegTestAl2023"
933
- },
934
- {
935
- "key": "IntegTest",
936
- "value": "True"
937
- }
938
- ],
939
- "vpcId": {
940
- "Ref": "IntegVSCodeServervpc93DDE887"
941
- }
942
- }
943
- },
944
- "constructInfo": {
945
- "fqn": "aws-cdk-lib.aws_ec2.CfnSecurityGroup",
946
- "version": "2.177.0"
947
- }
948
- },
949
- "from {IndirectPeer}:80": {
950
- "id": "from {IndirectPeer}:80",
951
- "path": "IntegTestStackAl2023/IntegVSCodeServer/cf-to-server-sg/from {IndirectPeer}:80",
952
- "attributes": {
953
- "aws:cdk:cloudformation:type": "AWS::EC2::SecurityGroupIngress",
954
- "aws:cdk:cloudformation:props": {
955
- "description": "Allow HTTP from com.amazonaws.global.cloudfront.origin-facing",
956
- "fromPort": 80,
957
- "groupId": {
958
- "Fn::GetAtt": [
959
- "IntegVSCodeServercftoserversgFFE586B0",
960
- "GroupId"
961
- ]
962
- },
963
- "ipProtocol": "tcp",
964
- "sourcePrefixListId": {
965
- "Fn::GetAtt": [
966
- "IntegVSCodeServercfprefixlistIdGetPrefixListIdF0821FFC",
967
- "PrefixLists.0.PrefixListId"
968
- ]
969
- },
970
- "toPort": 80
971
- }
972
- },
973
- "constructInfo": {
974
- "fqn": "aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress",
975
- "version": "2.177.0"
976
- }
977
- }
978
- },
979
- "constructInfo": {
980
- "fqn": "aws-cdk-lib.aws_ec2.SecurityGroup",
981
- "version": "2.177.0"
982
- }
983
- },
984
- "cf-prefixlistId": {
985
- "id": "cf-prefixlistId",
986
- "path": "IntegTestStackAl2023/IntegVSCodeServer/cf-prefixlistId",
987
- "children": {
988
- "GetPrefixListIdLogGroup": {
989
- "id": "GetPrefixListIdLogGroup",
990
- "path": "IntegTestStackAl2023/IntegVSCodeServer/cf-prefixlistId/GetPrefixListIdLogGroup",
991
- "children": {
992
- "Resource": {
993
- "id": "Resource",
994
- "path": "IntegTestStackAl2023/IntegVSCodeServer/cf-prefixlistId/GetPrefixListIdLogGroup/Resource",
995
- "attributes": {
996
- "aws:cdk:cloudformation:type": "AWS::Logs::LogGroup",
997
- "aws:cdk:cloudformation:props": {
998
- "retentionInDays": 1,
999
- "tags": [
1000
- {
1001
- "key": "app",
1002
- "value": "vscode-server"
1003
- },
1004
- {
1005
- "key": "Environement",
1006
- "value": "IntegTestAl2023"
1007
- },
1008
- {
1009
- "key": "IntegTest",
1010
- "value": "True"
1011
- }
1012
- ]
1013
- }
1014
- },
1015
- "constructInfo": {
1016
- "fqn": "aws-cdk-lib.aws_logs.CfnLogGroup",
1017
- "version": "2.177.0"
1018
- }
1019
- }
1020
- },
1021
- "constructInfo": {
1022
- "fqn": "aws-cdk-lib.aws_logs.LogGroup",
1023
- "version": "2.177.0"
1024
- }
1025
- },
1026
- "GetPrefixListIdRole": {
1027
- "id": "GetPrefixListIdRole",
1028
- "path": "IntegTestStackAl2023/IntegVSCodeServer/cf-prefixlistId/GetPrefixListIdRole",
1029
- "children": {
1030
- "ImportGetPrefixListIdRole": {
1031
- "id": "ImportGetPrefixListIdRole",
1032
- "path": "IntegTestStackAl2023/IntegVSCodeServer/cf-prefixlistId/GetPrefixListIdRole/ImportGetPrefixListIdRole",
1033
- "constructInfo": {
1034
- "fqn": "aws-cdk-lib.Resource",
1035
- "version": "2.177.0"
1036
- }
1037
- },
1038
- "Resource": {
1039
- "id": "Resource",
1040
- "path": "IntegTestStackAl2023/IntegVSCodeServer/cf-prefixlistId/GetPrefixListIdRole/Resource",
1041
- "attributes": {
1042
- "aws:cdk:cloudformation:type": "AWS::IAM::Role",
1043
- "aws:cdk:cloudformation:props": {
1044
- "assumeRolePolicyDocument": {
1045
- "Statement": [
1046
- {
1047
- "Action": "sts:AssumeRole",
1048
- "Effect": "Allow",
1049
- "Principal": {
1050
- "Service": "lambda.amazonaws.com"
1051
- }
1052
- }
1053
- ],
1054
- "Version": "2012-10-17"
1055
- },
1056
- "tags": [
1057
- {
1058
- "key": "app",
1059
- "value": "vscode-server"
1060
- },
1061
- {
1062
- "key": "Environement",
1063
- "value": "IntegTestAl2023"
1064
- },
1065
- {
1066
- "key": "IntegTest",
1067
- "value": "True"
1068
- }
1069
- ]
1070
- }
1071
- },
1072
- "constructInfo": {
1073
- "fqn": "aws-cdk-lib.aws_iam.CfnRole",
1074
- "version": "2.177.0"
1075
- }
1076
- }
1077
- },
1078
- "constructInfo": {
1079
- "fqn": "aws-cdk-lib.aws_iam.Role",
1080
- "version": "2.177.0"
1081
- }
1082
- },
1083
- "GetPrefixListId": {
1084
- "id": "GetPrefixListId",
1085
- "path": "IntegTestStackAl2023/IntegVSCodeServer/cf-prefixlistId/GetPrefixListId",
1086
- "children": {
1087
- "Provider": {
1088
- "id": "Provider",
1089
- "path": "IntegTestStackAl2023/IntegVSCodeServer/cf-prefixlistId/GetPrefixListId/Provider",
1090
- "constructInfo": {
1091
- "fqn": "aws-cdk-lib.aws_lambda.SingletonFunction",
1092
- "version": "2.177.0"
1093
- }
1094
- },
1095
- "Resource": {
1096
- "id": "Resource",
1097
- "path": "IntegTestStackAl2023/IntegVSCodeServer/cf-prefixlistId/GetPrefixListId/Resource",
1098
- "children": {
1099
- "Default": {
1100
- "id": "Default",
1101
- "path": "IntegTestStackAl2023/IntegVSCodeServer/cf-prefixlistId/GetPrefixListId/Resource/Default",
1102
- "constructInfo": {
1103
- "fqn": "aws-cdk-lib.CfnResource",
1104
- "version": "2.177.0"
1105
- }
1106
- }
1107
- },
1108
- "constructInfo": {
1109
- "fqn": "aws-cdk-lib.CustomResource",
1110
- "version": "2.177.0"
1111
- }
1112
- },
1113
- "CustomResourcePolicy": {
1114
- "id": "CustomResourcePolicy",
1115
- "path": "IntegTestStackAl2023/IntegVSCodeServer/cf-prefixlistId/GetPrefixListId/CustomResourcePolicy",
1116
- "children": {
1117
- "Resource": {
1118
- "id": "Resource",
1119
- "path": "IntegTestStackAl2023/IntegVSCodeServer/cf-prefixlistId/GetPrefixListId/CustomResourcePolicy/Resource",
1120
- "attributes": {
1121
- "aws:cdk:cloudformation:type": "AWS::IAM::Policy",
1122
- "aws:cdk:cloudformation:props": {
1123
- "policyDocument": {
1124
- "Statement": [
1125
- {
1126
- "Action": "ec2:DescribeManagedPrefixLists",
1127
- "Effect": "Allow",
1128
- "Resource": "*"
1129
- }
1130
- ],
1131
- "Version": "2012-10-17"
1132
- },
1133
- "policyName": "IntegVSCodeServercfprefixlistIdGetPrefixListIdCustomResourcePolicyAB3F4958",
1134
- "roles": [
1135
- {
1136
- "Ref": "IntegVSCodeServercfprefixlistIdGetPrefixListIdRole1302B3E1"
1137
- }
1138
- ]
1139
- }
1140
- },
1141
- "constructInfo": {
1142
- "fqn": "aws-cdk-lib.aws_iam.CfnPolicy",
1143
- "version": "2.177.0"
1144
- }
1145
- }
1146
- },
1147
- "constructInfo": {
1148
- "fqn": "aws-cdk-lib.aws_iam.Policy",
1149
- "version": "2.177.0"
1150
- }
1151
- }
1152
- },
1153
- "constructInfo": {
1154
- "fqn": "aws-cdk-lib.custom_resources.AwsCustomResource",
1155
- "version": "2.177.0"
1156
- }
1157
- },
1158
- "PrefixList": {
1159
- "id": "PrefixList",
1160
- "path": "IntegTestStackAl2023/IntegVSCodeServer/cf-prefixlistId/PrefixList",
1161
- "constructInfo": {
1162
- "fqn": "aws-cdk-lib.Resource",
1163
- "version": "2.177.0"
1164
- }
1165
- }
1166
- },
1167
- "constructInfo": {
1168
- "fqn": "constructs.Construct",
1169
- "version": "10.4.2"
1170
- }
1171
- },
1172
- "server-instance-role": {
1173
- "id": "server-instance-role",
1174
- "path": "IntegTestStackAl2023/IntegVSCodeServer/server-instance-role",
1175
- "children": {
1176
- "Importserver-instance-role": {
1177
- "id": "Importserver-instance-role",
1178
- "path": "IntegTestStackAl2023/IntegVSCodeServer/server-instance-role/Importserver-instance-role",
1179
- "constructInfo": {
1180
- "fqn": "aws-cdk-lib.Resource",
1181
- "version": "2.177.0"
1182
- }
1183
- },
1184
- "Resource": {
1185
- "id": "Resource",
1186
- "path": "IntegTestStackAl2023/IntegVSCodeServer/server-instance-role/Resource",
1187
- "attributes": {
1188
- "aws:cdk:cloudformation:type": "AWS::IAM::Role",
1189
- "aws:cdk:cloudformation:props": {
1190
- "assumeRolePolicyDocument": {
1191
- "Statement": [
1192
- {
1193
- "Action": "sts:AssumeRole",
1194
- "Effect": "Allow",
1195
- "Principal": {
1196
- "Service": [
1197
- "ec2.amazonaws.com",
1198
- "ssm.amazonaws.com"
1199
- ]
1200
- }
1201
- }
1202
- ],
1203
- "Version": "2012-10-17"
1204
- },
1205
- "managedPolicyArns": [
1206
- {
1207
- "Fn::Join": [
1208
- "",
1209
- [
1210
- "arn:",
1211
- {
1212
- "Ref": "AWS::Partition"
1213
- },
1214
- ":iam::aws:policy/AmazonSSMManagedInstanceCore"
1215
- ]
1216
- ]
1217
- },
1218
- {
1219
- "Fn::Join": [
1220
- "",
1221
- [
1222
- "arn:",
1223
- {
1224
- "Ref": "AWS::Partition"
1225
- },
1226
- ":iam::aws:policy/CloudWatchAgentServerPolicy"
1227
- ]
1228
- ]
1229
- },
1230
- {
1231
- "Fn::Join": [
1232
- "",
1233
- [
1234
- "arn:",
1235
- {
1236
- "Ref": "AWS::Partition"
1237
- },
1238
- ":iam::aws:policy/AmazonQDeveloperAccess"
1239
- ]
1240
- ]
1241
- },
1242
- {
1243
- "Fn::Join": [
1244
- "",
1245
- [
1246
- "arn:",
1247
- {
1248
- "Ref": "AWS::Partition"
1249
- },
1250
- ":iam::aws:policy/ReadOnlyAccess"
1251
- ]
1252
- ]
1253
- }
1254
- ],
1255
- "policies": [
1256
- {
1257
- "policyName": "VSCodeInstanceInlinePolicy",
1258
- "policyDocument": {
1259
- "Statement": [
1260
- {
1261
- "Action": [
1262
- "iam:AddRoleToInstanceProfile",
1263
- "iam:AttachRolePolicy",
1264
- "iam:CreateRole",
1265
- "iam:CreateServiceLinkedRole",
1266
- "iam:DeleteRole",
1267
- "iam:DeleteRolePermissionsBoundary",
1268
- "iam:DeleteRolePolicy",
1269
- "iam:DeleteServiceLinkedRole",
1270
- "iam:DetachRolePolicy",
1271
- "iam:GetRole",
1272
- "iam:GetRolePolicy",
1273
- "iam:GetServiceLinkedRoleDeletionStatus",
1274
- "iam:ListAttachedRolePolicies",
1275
- "iam:ListInstanceProfilesForRole",
1276
- "iam:ListRolePolicies",
1277
- "iam:ListRoleTags",
1278
- "iam:ListRoles",
1279
- "iam:PutRolePermissionsBoundary",
1280
- "iam:PutRolePolicy",
1281
- "iam:RemoveRoleFromInstanceProfile",
1282
- "iam:TagRole",
1283
- "iam:UntagRole",
1284
- "iam:UpdateAssumeRolePolicy",
1285
- "iam:UpdateRole",
1286
- "iam:UpdateRoleDescription",
1287
- "sts:AssumeRole"
1288
- ],
1289
- "Effect": "Allow",
1290
- "Resource": {
1291
- "Fn::Join": [
1292
- "",
1293
- [
1294
- "arn:aws:iam::",
1295
- {
1296
- "Ref": "AWS::AccountId"
1297
- },
1298
- ":role/cdk-*"
1299
- ]
1300
- ]
1301
- },
1302
- "Sid": "StsAccess"
1303
- },
1304
- {
1305
- "Action": "iam:PassRole",
1306
- "Condition": {
1307
- "StringLike": {
1308
- "iam:PassedToService": "cloudformation.amazonaws.com"
1309
- }
1310
- },
1311
- "Effect": "Allow",
1312
- "Resource": {
1313
- "Fn::Join": [
1314
- "",
1315
- [
1316
- "arn:aws:iam::",
1317
- {
1318
- "Ref": "AWS::AccountId"
1319
- },
1320
- ":role/cdk-*"
1321
- ]
1322
- ]
1323
- }
1324
- },
1325
- {
1326
- "Action": "cloudformation:*",
1327
- "Effect": "Allow",
1328
- "Resource": {
1329
- "Fn::Join": [
1330
- "",
1331
- [
1332
- "arn:aws:cloudformation:*:",
1333
- {
1334
- "Ref": "AWS::AccountId"
1335
- },
1336
- ":stack/CDKToolkit/*"
1337
- ]
1338
- ]
1339
- }
1340
- },
1341
- {
1342
- "Action": [
1343
- "cloudformation:CreateChangeSet",
1344
- "cloudformation:DeleteChangeSet",
1345
- "cloudformation:ExecuteChangeSet",
1346
- "ec2:DescribeInstances",
1347
- "ec2:DescribeVolumesModifications*",
1348
- "ec2:ModifyVolume"
1349
- ],
1350
- "Effect": "Allow",
1351
- "Resource": "*"
1352
- },
1353
- {
1354
- "Action": "s3:*",
1355
- "Effect": "Allow",
1356
- "Resource": "*",
1357
- "Sid": "S3Access"
1358
- },
1359
- {
1360
- "Action": [
1361
- "ecr:CreateRepository",
1362
- "ecr:DeleteRepository",
1363
- "ecr:DescribeRepositories",
1364
- "ecr:GetLifecyclePolicy",
1365
- "ecr:PutImageScanningConfiguration",
1366
- "ecr:PutLifecyclePolicy",
1367
- "ecr:SetRepositoryPolicy"
1368
- ],
1369
- "Effect": "Allow",
1370
- "Resource": {
1371
- "Fn::Join": [
1372
- "",
1373
- [
1374
- "arn:aws:ecr:*:",
1375
- {
1376
- "Ref": "AWS::AccountId"
1377
- },
1378
- ":repository/cdk-*"
1379
- ]
1380
- ]
1381
- },
1382
- "Sid": "ECRAccess"
1383
- },
1384
- {
1385
- "Action": [
1386
- "ssm:DeleteParameter*",
1387
- "ssm:GetParameter*",
1388
- "ssm:PutParameter*"
1389
- ],
1390
- "Effect": "Allow",
1391
- "Resource": {
1392
- "Fn::Join": [
1393
- "",
1394
- [
1395
- "arn:aws:ssm:*:",
1396
- {
1397
- "Ref": "AWS::AccountId"
1398
- },
1399
- ":parameter/cdk-bootstrap/*"
1400
- ]
1401
- ]
1402
- }
1403
- },
1404
- {
1405
- "Action": [
1406
- "codepipeline:DisableStageTransition",
1407
- "codepipeline:EnableStageTransition",
1408
- "codepipeline:StartPipelineExecution",
1409
- "codepipeline:StopPipelineExecution",
1410
- "codepipeline:UpdatePipeline"
1411
- ],
1412
- "Effect": "Allow",
1413
- "Resource": {
1414
- "Fn::Join": [
1415
- "",
1416
- [
1417
- "arn:aws:codepipeline:*:",
1418
- {
1419
- "Ref": "AWS::AccountId"
1420
- },
1421
- ":*/*"
1422
- ]
1423
- ]
1424
- }
1425
- },
1426
- {
1427
- "Action": "kms:Decrypt",
1428
- "Effect": "Allow",
1429
- "Resource": {
1430
- "Fn::Join": [
1431
- "",
1432
- [
1433
- "arn:aws:kms:*:",
1434
- {
1435
- "Ref": "AWS::AccountId"
1436
- },
1437
- ":key/*"
1438
- ]
1439
- ]
1440
- }
1441
- }
1442
- ],
1443
- "Version": "2012-10-17"
1444
- }
1445
- }
1446
- ],
1447
- "tags": [
1448
- {
1449
- "key": "app",
1450
- "value": "vscode-server"
1451
- },
1452
- {
1453
- "key": "Environement",
1454
- "value": "IntegTestAl2023"
1455
- },
1456
- {
1457
- "key": "IntegTest",
1458
- "value": "True"
1459
- }
1460
- ]
1461
- }
1462
- },
1463
- "constructInfo": {
1464
- "fqn": "aws-cdk-lib.aws_iam.CfnRole",
1465
- "version": "2.177.0"
1466
- }
1467
- }
1468
- },
1469
- "constructInfo": {
1470
- "fqn": "aws-cdk-lib.aws_iam.Role",
1471
- "version": "2.177.0"
1472
- }
1473
- },
1474
- "server-instance": {
1475
- "id": "server-instance",
1476
- "path": "IntegTestStackAl2023/IntegVSCodeServer/server-instance",
1477
- "children": {
1478
- "InstanceProfile": {
1479
- "id": "InstanceProfile",
1480
- "path": "IntegTestStackAl2023/IntegVSCodeServer/server-instance/InstanceProfile",
1481
- "attributes": {
1482
- "aws:cdk:cloudformation:type": "AWS::IAM::InstanceProfile",
1483
- "aws:cdk:cloudformation:props": {
1484
- "roles": [
1485
- {
1486
- "Ref": "IntegVSCodeServerserverinstancerole7745B5BB"
1487
- }
1488
- ]
1489
- }
1490
- },
1491
- "constructInfo": {
1492
- "fqn": "aws-cdk-lib.aws_iam.CfnInstanceProfile",
1493
- "version": "2.177.0"
1494
- }
1495
- },
1496
- "Resource": {
1497
- "id": "Resource",
1498
- "path": "IntegTestStackAl2023/IntegVSCodeServer/server-instance/Resource",
1499
- "attributes": {
1500
- "aws:cdk:cloudformation:type": "AWS::EC2::Instance",
1501
- "aws:cdk:cloudformation:props": {
1502
- "availabilityZone": {
1503
- "Fn::Select": [
1504
- 0,
1505
- {
1506
- "Fn::GetAZs": ""
1507
- }
1508
- ]
1509
- },
1510
- "blockDeviceMappings": [
1511
- {
1512
- "deviceName": "/dev/sda1",
1513
- "ebs": {
1514
- "encrypted": true,
1515
- "deleteOnTermination": true,
1516
- "volumeSize": 20,
1517
- "volumeType": "gp3"
1518
- }
1519
- }
1520
- ],
1521
- "iamInstanceProfile": {
1522
- "Ref": "IntegVSCodeServerserverinstanceInstanceProfile6130979E"
1523
- },
1524
- "imageId": {
1525
- "Ref": "SsmParameterValueawsserviceamiamazonlinuxlatestal2023amikerneldefaultarm64C96584B6F00A464EAD1953AFF4B05118Parameter"
1526
- },
1527
- "instanceType": "m7g.xlarge",
1528
- "launchTemplate": {
1529
- "launchTemplateName": "IntegTestStackAl2023IntegVSCodeServerserverinstanceLaunchTemplate52F35056",
1530
- "version": {
1531
- "Fn::GetAtt": [
1532
- "IntegVSCodeServerserverinstanceLaunchTemplate43932ED3",
1533
- "LatestVersionNumber"
1534
- ]
1535
- }
1536
- },
1537
- "monitoring": true,
1538
- "networkInterfaces": [
1539
- {
1540
- "deviceIndex": "0",
1541
- "associatePublicIpAddress": true,
1542
- "subnetId": {
1543
- "Ref": "IntegVSCodeServervpcpublicSubnet1Subnet928029A1"
1544
- },
1545
- "groupSet": [
1546
- {
1547
- "Fn::GetAtt": [
1548
- "IntegVSCodeServercftoserversgFFE586B0",
1549
- "GroupId"
1550
- ]
1551
- }
1552
- ]
1553
- }
1554
- ],
1555
- "tags": [
1556
- {
1557
- "key": "app",
1558
- "value": "vscode-server"
1559
- },
1560
- {
1561
- "key": "Environement",
1562
- "value": "IntegTestAl2023"
1563
- },
1564
- {
1565
- "key": "IntegTest",
1566
- "value": "True"
1567
- },
1568
- {
1569
- "key": "Name",
1570
- "value": "VSCodeServer"
1571
- }
1572
- ],
1573
- "userData": {
1574
- "Fn::Base64": "\n #cloud-config\n hostname: VSCodeServer\n runcmd:\n - mkdir -p /Workshop && chown -R participant:participant /Workshop\n "
1575
- }
1576
- }
1577
- },
1578
- "constructInfo": {
1579
- "fqn": "aws-cdk-lib.aws_ec2.CfnInstance",
1580
- "version": "2.177.0"
1581
- }
1582
- },
1583
- "LaunchTemplate": {
1584
- "id": "LaunchTemplate",
1585
- "path": "IntegTestStackAl2023/IntegVSCodeServer/server-instance/LaunchTemplate",
1586
- "attributes": {
1587
- "aws:cdk:cloudformation:type": "AWS::EC2::LaunchTemplate",
1588
- "aws:cdk:cloudformation:props": {
1589
- "launchTemplateData": {
1590
- "metadataOptions": {
1591
- "httpTokens": "required"
1592
- }
1593
- },
1594
- "launchTemplateName": "IntegTestStackAl2023IntegVSCodeServerserverinstanceLaunchTemplate52F35056"
1595
- }
1596
- },
1597
- "constructInfo": {
1598
- "fqn": "aws-cdk-lib.aws_ec2.CfnLaunchTemplate",
1599
- "version": "2.177.0"
1600
- }
1601
- }
1602
- },
1603
- "constructInfo": {
1604
- "fqn": "aws-cdk-lib.aws_ec2.Instance",
1605
- "version": "2.177.0"
1606
- }
1607
- },
1608
- "cf-cache-policy": {
1609
- "id": "cf-cache-policy",
1610
- "path": "IntegTestStackAl2023/IntegVSCodeServer/cf-cache-policy",
1611
- "children": {
1612
- "Resource": {
1613
- "id": "Resource",
1614
- "path": "IntegTestStackAl2023/IntegVSCodeServer/cf-cache-policy/Resource",
1615
- "attributes": {
1616
- "aws:cdk:cloudformation:type": "AWS::CloudFront::CachePolicy",
1617
- "aws:cdk:cloudformation:props": {
1618
- "cachePolicyConfig": {
1619
- "name": "cf-cache-policy-vscodeserver-IntegTestStackAl2023",
1620
- "comment": "Cache policy for VSCodeServer",
1621
- "minTtl": 1,
1622
- "maxTtl": 31536000,
1623
- "defaultTtl": 86400,
1624
- "parametersInCacheKeyAndForwardedToOrigin": {
1625
- "cookiesConfig": {
1626
- "cookieBehavior": "all"
1627
- },
1628
- "headersConfig": {
1629
- "headerBehavior": "whitelist",
1630
- "headers": [
1631
- "Accept-Charset",
1632
- "Authorization",
1633
- "Origin",
1634
- "Accept",
1635
- "Referer",
1636
- "Host",
1637
- "Accept-Language",
1638
- "Accept-Encoding",
1639
- "Accept-Datetime"
1640
- ]
1641
- },
1642
- "enableAcceptEncodingGzip": false,
1643
- "enableAcceptEncodingBrotli": false,
1644
- "queryStringsConfig": {
1645
- "queryStringBehavior": "all"
1646
- }
1647
- }
1648
- }
1649
- }
1650
- },
1651
- "constructInfo": {
1652
- "fqn": "aws-cdk-lib.aws_cloudfront.CfnCachePolicy",
1653
- "version": "2.177.0"
1654
- }
1655
- }
1656
- },
1657
- "constructInfo": {
1658
- "fqn": "aws-cdk-lib.aws_cloudfront.CachePolicy",
1659
- "version": "2.177.0"
1660
- }
1661
- },
1662
- "cf-distribution": {
1663
- "id": "cf-distribution",
1664
- "path": "IntegTestStackAl2023/IntegVSCodeServer/cf-distribution",
1665
- "children": {
1666
- "Origin1": {
1667
- "id": "Origin1",
1668
- "path": "IntegTestStackAl2023/IntegVSCodeServer/cf-distribution/Origin1",
1669
- "constructInfo": {
1670
- "fqn": "constructs.Construct",
1671
- "version": "10.4.2"
1672
- }
1673
- },
1674
- "Resource": {
1675
- "id": "Resource",
1676
- "path": "IntegTestStackAl2023/IntegVSCodeServer/cf-distribution/Resource",
1677
- "attributes": {
1678
- "aws:cdk:cloudformation:type": "AWS::CloudFront::Distribution",
1679
- "aws:cdk:cloudformation:props": {
1680
- "distributionConfig": {
1681
- "enabled": true,
1682
- "origins": [
1683
- {
1684
- "domainName": {
1685
- "Fn::GetAtt": [
1686
- "IntegVSCodeServerserverinstance0A3D62D7",
1687
- "PublicDnsName"
1688
- ]
1689
- },
1690
- "id": "Cloudfront-IntegTestStackAl2023-IntegTestStackAl2023",
1691
- "customOriginConfig": {
1692
- "originSslProtocols": [
1693
- "TLSv1.2"
1694
- ],
1695
- "originProtocolPolicy": "http-only"
1696
- }
1697
- }
1698
- ],
1699
- "defaultCacheBehavior": {
1700
- "pathPattern": "*",
1701
- "targetOriginId": "Cloudfront-IntegTestStackAl2023-IntegTestStackAl2023",
1702
- "allowedMethods": [
1703
- "GET",
1704
- "HEAD",
1705
- "OPTIONS",
1706
- "PUT",
1707
- "PATCH",
1708
- "POST",
1709
- "DELETE"
1710
- ],
1711
- "cachePolicyId": {
1712
- "Ref": "IntegVSCodeServercfcachepolicy8F5F1F69"
1713
- },
1714
- "compress": true,
1715
- "originRequestPolicyId": "216adef6-5c7f-47e4-b989-5492eafa07d3",
1716
- "viewerProtocolPolicy": "allow-all"
1717
- },
1718
- "cacheBehaviors": [
1719
- {
1720
- "pathPattern": "/proxy/*",
1721
- "targetOriginId": "Cloudfront-IntegTestStackAl2023-IntegTestStackAl2023",
1722
- "allowedMethods": [
1723
- "GET",
1724
- "HEAD",
1725
- "OPTIONS",
1726
- "PUT",
1727
- "PATCH",
1728
- "POST",
1729
- "DELETE"
1730
- ],
1731
- "cachePolicyId": "4135ea2d-6df8-44a3-9df3-4b5a84be39ad",
1732
- "compress": false,
1733
- "originRequestPolicyId": "216adef6-5c7f-47e4-b989-5492eafa07d3",
1734
- "viewerProtocolPolicy": "allow-all"
1735
- }
1736
- ],
1737
- "comment": "Distribution for VSCodeServer",
1738
- "httpVersion": "http2and3",
1739
- "ipv6Enabled": true,
1740
- "priceClass": "PriceClass_All"
1741
- },
1742
- "tags": [
1743
- {
1744
- "key": "app",
1745
- "value": "vscode-server"
1746
- },
1747
- {
1748
- "key": "Environement",
1749
- "value": "IntegTestAl2023"
1750
- },
1751
- {
1752
- "key": "IntegTest",
1753
- "value": "True"
1754
- }
1755
- ]
1756
- }
1757
- },
1758
- "constructInfo": {
1759
- "fqn": "aws-cdk-lib.aws_cloudfront.CfnDistribution",
1760
- "version": "2.177.0"
1761
- }
1762
- }
1763
- },
1764
- "constructInfo": {
1765
- "fqn": "aws-cdk-lib.aws_cloudfront.Distribution",
1766
- "version": "2.177.0"
1767
- }
1768
- },
1769
- "ssm-document-al2023": {
1770
- "id": "ssm-document-al2023",
1771
- "path": "IntegTestStackAl2023/IntegVSCodeServer/ssm-document-al2023",
1772
- "attributes": {
1773
- "aws:cdk:cloudformation:type": "AWS::SSM::Document",
1774
- "aws:cdk:cloudformation:props": {
1775
- "content": {
1776
- "schemaVersion": "2.2",
1777
- "description": "Bootstrap VSCode code-server instance",
1778
- "parameters": {
1779
- "VSCodePassword": {
1780
- "type": "String",
1781
- "default": {
1782
- "Ref": "AWS::StackId"
1783
- }
1784
- },
1785
- "NodeVersion": {
1786
- "type": "String",
1787
- "default": "20",
1788
- "allowedValues": [
1789
- "22",
1790
- "20",
1791
- "18"
1792
- ]
1793
- },
1794
- "DotNetVersion": {
1795
- "type": "String",
1796
- "default": "8.0",
1797
- "allowedValues": [
1798
- "8.0",
1799
- "7.0"
1800
- ]
1801
- }
1802
- },
1803
- "mainSteps": [
1804
- {
1805
- "action": "aws:configurePackage",
1806
- "name": "InstallCloudWatchAgent",
1807
- "inputs": {
1808
- "name": "AmazonCloudWatchAgent",
1809
- "action": "Install"
1810
- }
1811
- },
1812
- {
1813
- "action": "aws:runDocument",
1814
- "name": "ConfigureCloudWatchAgent",
1815
- "inputs": {
1816
- "documentType": "SSMDocument",
1817
- "documentPath": "AmazonCloudWatch-ManageAgent",
1818
- "documentParameters": {
1819
- "action": "configure",
1820
- "mode": "ec2",
1821
- "optionalConfigurationSource": "default",
1822
- "optionalRestart": "yes"
1823
- }
1824
- }
1825
- },
1826
- {
1827
- "action": "aws:runShellScript",
1828
- "name": "InstallBasePackagesDnf",
1829
- "inputs": {
1830
- "runCommand": [
1831
- "#!/bin/bash",
1832
- "dnf install -y --allowerasing whois argon2 unzip nginx curl gnupg openssl"
1833
- ]
1834
- }
1835
- },
1836
- {
1837
- "action": "aws:runShellScript",
1838
- "name": "AddUserDnf",
1839
- "inputs": {
1840
- "runCommand": [
1841
- "#!/bin/bash",
1842
- "echo 'Adding user: participant'",
1843
- "adduser -c '' participant",
1844
- "passwd -l participant",
1845
- "echo \"participant:{{ VSCodePassword }}\" | chpasswd",
1846
- "usermod -aG wheel participant",
1847
- "echo \"User added. Checking configuration\"",
1848
- "getent passwd participant"
1849
- ]
1850
- }
1851
- },
1852
- {
1853
- "action": "aws:runShellScript",
1854
- "name": "InstallNodeDnf",
1855
- "inputs": {
1856
- "runCommand": [
1857
- "#!/bin/bash",
1858
- "dnf install -y nodejs20 npm",
1859
- "ln -s -f /usr/bin/node-20 /usr/bin/node",
1860
- "npm install -g npm@latest",
1861
- "echo \"Node and npm installed. Checking configuration\"",
1862
- "node -v",
1863
- "npm -v"
1864
- ]
1865
- }
1866
- },
1867
- {
1868
- "action": "aws:runShellScript",
1869
- "name": "InstallDockerDnf",
1870
- "inputs": {
1871
- "runCommand": [
1872
- "#!/bin/bash",
1873
- "dnf install -y docker",
1874
- "usermod -aG docker participant",
1875
- "systemctl restart code-server@participant.service",
1876
- "systemctl start docker.service",
1877
- "echo \"Docker installed. Checking configuration\"",
1878
- "docker --version",
1879
- "systemctl status docker.service"
1880
- ]
1881
- }
1882
- },
1883
- {
1884
- "action": "aws:runShellScript",
1885
- "name": "InstallGitDnf",
1886
- "inputs": {
1887
- "runCommand": [
1888
- "#!/bin/bash",
1889
- "dnf install -y git",
1890
- "sudo -u participant git config --global user.email \"participant@example.com\"",
1891
- "sudo -u participant git config --global user.name \"Workshop participant\"",
1892
- "sudo -u participant git config --global init.defaultBranch \"main\"",
1893
- "echo \"Git installed. Checking configuration\"",
1894
- "git --version"
1895
- ]
1896
- }
1897
- },
1898
- {
1899
- "action": "aws:runShellScript",
1900
- "name": "InstallPythonDnf",
1901
- "inputs": {
1902
- "runCommand": [
1903
- "#!/bin/bash",
1904
- "dnf install -y python3.11 python3.11-pip python3-virtualenv python3-pytest python3-boto3",
1905
- "echo 'alias pytest=pytest-3' >> /home/participant/.bashrc",
1906
- "echo 'alias python3=python3.11' >> /home/participant/.bashrc",
1907
- "echo 'alias pip3=pip3.11' >> /home/participant/.bashrc",
1908
- "echo 'alias=python3=python3.11' >> ~/.bashrc",
1909
- "echo 'alias pip3=pip3.11' >> ~/.bashrc",
1910
- "python3.11 -m pip install --upgrade pip 2>&1",
1911
- "echo \"Python and Pip installed. Checking configuration\"",
1912
- "python3.11 --version",
1913
- "python3.11 -m pip --version 2>&1"
1914
- ]
1915
- }
1916
- },
1917
- {
1918
- "action": "aws:runShellScript",
1919
- "name": "InstallAWSCLI",
1920
- "inputs": {
1921
- "runCommand": [
1922
- "#!/bin/bash",
1923
- "curl -fsSL https://awscli.amazonaws.com/awscli-exe-linux-$(uname -m).zip -o /tmp/aws-cli.zip",
1924
- "unzip -q -d /tmp /tmp/aws-cli.zip",
1925
- "sudo /tmp/aws/install",
1926
- "rm -rf /tmp/aws",
1927
- "echo \"AWS CLI installed. Checking configuration\"",
1928
- "aws --version"
1929
- ]
1930
- }
1931
- },
1932
- {
1933
- "action": "aws:runShellScript",
1934
- "name": "ConfigureCodeServer",
1935
- "inputs": {
1936
- "runCommand": [
1937
- "#!/bin/bash",
1938
- "export HOME=/home/participant",
1939
- "curl -fsSL https://code-server.dev/install.sh | bash -s -- 2>&1",
1940
- "systemctl enable --now code-server@participant 2>&1",
1941
- "tee /etc/nginx/conf.d/code-server.conf <<EOF\nserver {\n listen 80;\n listen [::]:80;\n # server_name distribution.distributionDomainName;\n server_name *.cloudfront.net;\n location / {\n proxy_pass http://localhost:8080/;\n proxy_set_header Host \\$host;\n proxy_set_header Upgrade \\$http_upgrade;\n proxy_set_header Connection upgrade;\n proxy_set_header Accept-Encoding gzip;\n }\n location /app {\n proxy_pass http://localhost:8081/app;\n proxy_set_header Host \\$host;\n proxy_set_header Upgrade \\$http_upgrade;\n proxy_set_header Connection upgrade;\n proxy_set_header Accept-Encoding gzip;\n }\n}\nEOF",
1942
- "mkdir -p /home/participant/.config/code-server",
1943
- "tee /home/participant/.config/code-server/config.yaml <<EOF\ncert: false\nauth: password\nhashed-password: \"$(echo -n {{ VSCodePassword }} | argon2 $(openssl rand -base64 12) -e)\"\nEOF",
1944
- "mkdir -p /home/participant/.local/share/code-server/User/",
1945
- "touch /home/participant/.hushlogin",
1946
- "mkdir -p /Workshop && chown -R participant:participant /Workshop",
1947
- "tee /home/participant/.local/share/code-server/User/settings.json <<EOF\n{\n \"extensions.autoUpdate\": false,\n \"extensions.autoCheckUpdates\": false,\n \"telemetry.telemetryLevel\": \"off\",\n \"security.workspace.trust.startupPrompt\": \"never\",\n \"security.workspace.trust.enabled\": false,\n \"security.workspace.trust.banner\": \"never\",\n \"security.workspace.trust.emptyWindow\": false,\n \"python.testing.pytestEnabled\": true,\n \"auto-run-command.rules\": [\n {\n \"command\": \"workbench.action.terminal.new\"\n }\n ]\n}\nEOF",
1948
- "chown -R participant:participant /home/participant",
1949
- "systemctl restart code-server@participant",
1950
- "systemctl restart nginx",
1951
- "sudo -u participant --login code-server --install-extension AmazonWebServices.aws-toolkit-vscode --force",
1952
- "sudo -u participant --login code-server --install-extension AmazonWebServices.amazon-q-vscode --force",
1953
- "sudo -u participant --login code-server --install-extension synedra.auto-run-command --force",
1954
- "sudo -u participant --login code-server --install-extension vscjava.vscode-java-pack --force",
1955
- "sudo -u participant --login code-server --install-extension ms-vscode.live-server --force",
1956
- "chown -R participant:participant /home/participant",
1957
- "echo \"Nginx installed. Checking configuration\"",
1958
- "nginx -t 2>&1",
1959
- "systemctl status nginx",
1960
- "echo \"CodeServer installed. Checking configuration\"",
1961
- "code-server -v",
1962
- "systemctl status code-server@participant"
1963
- ]
1964
- }
1965
- },
1966
- {
1967
- "action": "aws:runShellScript",
1968
- "name": "UpdateProfile",
1969
- "inputs": {
1970
- "runCommand": [
1971
- "#!/bin/bash",
1972
- "echo LANG=en_US.utf-8 >> /etc/environment",
1973
- "echo LC_ALL=en_US.UTF-8 >> /etc/environment",
1974
- "echo 'PATH=$PATH:/home/participant/.local/bin' >> /home/participant/.bashrc",
1975
- "echo 'export PATH' >> /home/participant/.bashrc",
1976
- {
1977
- "Fn::Join": [
1978
- "",
1979
- [
1980
- "echo 'export AWS_REGION=",
1981
- {
1982
- "Ref": "AWS::Region"
1983
- },
1984
- "' >> /home/participant/.bashrc"
1985
- ]
1986
- ]
1987
- },
1988
- {
1989
- "Fn::Join": [
1990
- "",
1991
- [
1992
- "echo 'export AWS_ACCOUNTID=",
1993
- {
1994
- "Ref": "AWS::AccountId"
1995
- },
1996
- "' >> /home/participant/.bashrc"
1997
- ]
1998
- ]
1999
- },
2000
- "echo 'export NEXT_TELEMETRY_DISABLED=1' >> /home/participant/.bashrc",
2001
- "echo \"export PS1='\\[\\033[01;32m\\]\\u:\\[\\033[01;34m\\]\\w\\[\\033[00m\\]\\$ '\" >> /home/participant/.bashrc",
2002
- "chown -R participant:participant /home/participant"
2003
- ]
2004
- }
2005
- },
2006
- {
2007
- "action": "aws:runShellScript",
2008
- "name": "InstallCDK",
2009
- "inputs": {
2010
- "runCommand": [
2011
- "#!/bin/bash",
2012
- "npm install -g aws-cdk",
2013
- "echo \"AWS CDK installed. Checking configuration\"",
2014
- "cdk --version"
2015
- ]
2016
- }
2017
- }
2018
- ]
2019
- },
2020
- "documentType": "Command",
2021
- "name": "vscode-server-al2023-IntegTestStackAl2023",
2022
- "tags": [
2023
- {
2024
- "key": "app",
2025
- "value": "vscode-server"
2026
- },
2027
- {
2028
- "key": "Environement",
2029
- "value": "IntegTestAl2023"
2030
- },
2031
- {
2032
- "key": "IntegTest",
2033
- "value": "True"
2034
- }
2035
- ]
2036
- }
2037
- },
2038
- "constructInfo": {
2039
- "fqn": "aws-cdk-lib.aws_ssm.CfnDocument",
2040
- "version": "2.177.0"
2041
- }
2042
- },
2043
- "InstallerOnEventHandler": {
2044
- "id": "InstallerOnEventHandler",
2045
- "path": "IntegTestStackAl2023/IntegVSCodeServer/InstallerOnEventHandler",
2046
- "children": {
2047
- "ServiceRole": {
2048
- "id": "ServiceRole",
2049
- "path": "IntegTestStackAl2023/IntegVSCodeServer/InstallerOnEventHandler/ServiceRole",
2050
- "children": {
2051
- "ImportServiceRole": {
2052
- "id": "ImportServiceRole",
2053
- "path": "IntegTestStackAl2023/IntegVSCodeServer/InstallerOnEventHandler/ServiceRole/ImportServiceRole",
2054
- "constructInfo": {
2055
- "fqn": "aws-cdk-lib.Resource",
2056
- "version": "2.177.0"
2057
- }
2058
- },
2059
- "Resource": {
2060
- "id": "Resource",
2061
- "path": "IntegTestStackAl2023/IntegVSCodeServer/InstallerOnEventHandler/ServiceRole/Resource",
2062
- "attributes": {
2063
- "aws:cdk:cloudformation:type": "AWS::IAM::Role",
2064
- "aws:cdk:cloudformation:props": {
2065
- "assumeRolePolicyDocument": {
2066
- "Statement": [
2067
- {
2068
- "Action": "sts:AssumeRole",
2069
- "Effect": "Allow",
2070
- "Principal": {
2071
- "Service": "lambda.amazonaws.com"
2072
- }
2073
- }
2074
- ],
2075
- "Version": "2012-10-17"
2076
- },
2077
- "managedPolicyArns": [
2078
- {
2079
- "Fn::Join": [
2080
- "",
2081
- [
2082
- "arn:",
2083
- {
2084
- "Ref": "AWS::Partition"
2085
- },
2086
- ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"
2087
- ]
2088
- ]
2089
- }
2090
- ],
2091
- "tags": [
2092
- {
2093
- "key": "app",
2094
- "value": "vscode-server"
2095
- },
2096
- {
2097
- "key": "Environement",
2098
- "value": "IntegTestAl2023"
2099
- },
2100
- {
2101
- "key": "IntegTest",
2102
- "value": "True"
2103
- }
2104
- ]
2105
- }
2106
- },
2107
- "constructInfo": {
2108
- "fqn": "aws-cdk-lib.aws_iam.CfnRole",
2109
- "version": "2.177.0"
2110
- }
2111
- },
2112
- "DefaultPolicy": {
2113
- "id": "DefaultPolicy",
2114
- "path": "IntegTestStackAl2023/IntegVSCodeServer/InstallerOnEventHandler/ServiceRole/DefaultPolicy",
2115
- "children": {
2116
- "Resource": {
2117
- "id": "Resource",
2118
- "path": "IntegTestStackAl2023/IntegVSCodeServer/InstallerOnEventHandler/ServiceRole/DefaultPolicy/Resource",
2119
- "attributes": {
2120
- "aws:cdk:cloudformation:type": "AWS::IAM::Policy",
2121
- "aws:cdk:cloudformation:props": {
2122
- "policyDocument": {
2123
- "Statement": [
2124
- {
2125
- "Action": "ssm:SendCommand",
2126
- "Effect": "Allow",
2127
- "Resource": [
2128
- {
2129
- "Fn::Join": [
2130
- "",
2131
- [
2132
- "arn:",
2133
- {
2134
- "Ref": "AWS::Partition"
2135
- },
2136
- ":ec2:",
2137
- {
2138
- "Ref": "AWS::Region"
2139
- },
2140
- ":",
2141
- {
2142
- "Ref": "AWS::AccountId"
2143
- },
2144
- ":instance/",
2145
- {
2146
- "Ref": "IntegVSCodeServerserverinstance0A3D62D7"
2147
- }
2148
- ]
2149
- ]
2150
- },
2151
- {
2152
- "Fn::Join": [
2153
- "",
2154
- [
2155
- "arn:",
2156
- {
2157
- "Ref": "AWS::Partition"
2158
- },
2159
- ":ssm:",
2160
- {
2161
- "Ref": "AWS::Region"
2162
- },
2163
- ":",
2164
- {
2165
- "Ref": "AWS::AccountId"
2166
- },
2167
- ":document/AmazonCloudWatch-ManageAgent"
2168
- ]
2169
- ]
2170
- },
2171
- {
2172
- "Fn::Join": [
2173
- "",
2174
- [
2175
- "arn:",
2176
- {
2177
- "Ref": "AWS::Partition"
2178
- },
2179
- ":ssm:",
2180
- {
2181
- "Ref": "AWS::Region"
2182
- },
2183
- ":",
2184
- {
2185
- "Ref": "AWS::AccountId"
2186
- },
2187
- ":document/vscode-server-al2023-IntegTestStackAl2023"
2188
- ]
2189
- ]
2190
- }
2191
- ]
2192
- }
2193
- ],
2194
- "Version": "2012-10-17"
2195
- },
2196
- "policyName": "IntegVSCodeServerInstallerOnEventHandlerServiceRoleDefaultPolicy1CAD86C2",
2197
- "roles": [
2198
- {
2199
- "Ref": "IntegVSCodeServerInstallerOnEventHandlerServiceRole59651FEF"
2200
- }
2201
- ]
2202
- }
2203
- },
2204
- "constructInfo": {
2205
- "fqn": "aws-cdk-lib.aws_iam.CfnPolicy",
2206
- "version": "2.177.0"
2207
- }
2208
- }
2209
- },
2210
- "constructInfo": {
2211
- "fqn": "aws-cdk-lib.aws_iam.Policy",
2212
- "version": "2.177.0"
2213
- }
2214
- }
2215
- },
2216
- "constructInfo": {
2217
- "fqn": "aws-cdk-lib.aws_iam.Role",
2218
- "version": "2.177.0"
2219
- }
2220
- },
2221
- "Code": {
2222
- "id": "Code",
2223
- "path": "IntegTestStackAl2023/IntegVSCodeServer/InstallerOnEventHandler/Code",
2224
- "children": {
2225
- "Stage": {
2226
- "id": "Stage",
2227
- "path": "IntegTestStackAl2023/IntegVSCodeServer/InstallerOnEventHandler/Code/Stage",
2228
- "constructInfo": {
2229
- "fqn": "aws-cdk-lib.AssetStaging",
2230
- "version": "2.177.0"
2231
- }
2232
- },
2233
- "AssetBucket": {
2234
- "id": "AssetBucket",
2235
- "path": "IntegTestStackAl2023/IntegVSCodeServer/InstallerOnEventHandler/Code/AssetBucket",
2236
- "constructInfo": {
2237
- "fqn": "aws-cdk-lib.aws_s3.BucketBase",
2238
- "version": "2.177.0"
2239
- }
2240
- }
2241
- },
2242
- "constructInfo": {
2243
- "fqn": "aws-cdk-lib.aws_s3_assets.Asset",
2244
- "version": "2.177.0"
2245
- }
2246
- },
2247
- "Resource": {
2248
- "id": "Resource",
2249
- "path": "IntegTestStackAl2023/IntegVSCodeServer/InstallerOnEventHandler/Resource",
2250
- "attributes": {
2251
- "aws:cdk:cloudformation:type": "AWS::Lambda::Function",
2252
- "aws:cdk:cloudformation:props": {
2253
- "code": {
2254
- "s3Bucket": {
2255
- "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
2256
- },
2257
- "s3Key": "a9865c9d36c7aa999e28cb7926e7a3a8e0b6d0854b25131a172024c5777442fa.zip"
2258
- },
2259
- "description": "src/installer/installer.lambda.ts",
2260
- "handler": "index.handler",
2261
- "memorySize": 512,
2262
- "role": {
2263
- "Fn::GetAtt": [
2264
- "IntegVSCodeServerInstallerOnEventHandlerServiceRole59651FEF",
2265
- "Arn"
2266
- ]
2267
- },
2268
- "runtime": "nodejs20.x",
2269
- "tags": [
2270
- {
2271
- "key": "app",
2272
- "value": "vscode-server"
2273
- },
2274
- {
2275
- "key": "Environement",
2276
- "value": "IntegTestAl2023"
2277
- },
2278
- {
2279
- "key": "IntegTest",
2280
- "value": "True"
2281
- }
2282
- ],
2283
- "timeout": 300
2284
- }
2285
- },
2286
- "constructInfo": {
2287
- "fqn": "aws-cdk-lib.aws_lambda.CfnFunction",
2288
- "version": "2.177.0"
2289
- }
2290
- }
2291
- },
2292
- "constructInfo": {
2293
- "fqn": "aws-cdk-lib.aws_lambda.Function",
2294
- "version": "2.177.0"
2295
- }
2296
- },
2297
- "InstallerProvider": {
2298
- "id": "InstallerProvider",
2299
- "path": "IntegTestStackAl2023/IntegVSCodeServer/InstallerProvider",
2300
- "children": {
2301
- "framework-onEvent": {
2302
- "id": "framework-onEvent",
2303
- "path": "IntegTestStackAl2023/IntegVSCodeServer/InstallerProvider/framework-onEvent",
2304
- "children": {
2305
- "ServiceRole": {
2306
- "id": "ServiceRole",
2307
- "path": "IntegTestStackAl2023/IntegVSCodeServer/InstallerProvider/framework-onEvent/ServiceRole",
2308
- "children": {
2309
- "ImportServiceRole": {
2310
- "id": "ImportServiceRole",
2311
- "path": "IntegTestStackAl2023/IntegVSCodeServer/InstallerProvider/framework-onEvent/ServiceRole/ImportServiceRole",
2312
- "constructInfo": {
2313
- "fqn": "aws-cdk-lib.Resource",
2314
- "version": "2.177.0"
2315
- }
2316
- },
2317
- "Resource": {
2318
- "id": "Resource",
2319
- "path": "IntegTestStackAl2023/IntegVSCodeServer/InstallerProvider/framework-onEvent/ServiceRole/Resource",
2320
- "attributes": {
2321
- "aws:cdk:cloudformation:type": "AWS::IAM::Role",
2322
- "aws:cdk:cloudformation:props": {
2323
- "assumeRolePolicyDocument": {
2324
- "Statement": [
2325
- {
2326
- "Action": "sts:AssumeRole",
2327
- "Effect": "Allow",
2328
- "Principal": {
2329
- "Service": "lambda.amazonaws.com"
2330
- }
2331
- }
2332
- ],
2333
- "Version": "2012-10-17"
2334
- },
2335
- "managedPolicyArns": [
2336
- {
2337
- "Fn::Join": [
2338
- "",
2339
- [
2340
- "arn:",
2341
- {
2342
- "Ref": "AWS::Partition"
2343
- },
2344
- ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"
2345
- ]
2346
- ]
2347
- }
2348
- ],
2349
- "tags": [
2350
- {
2351
- "key": "app",
2352
- "value": "vscode-server"
2353
- },
2354
- {
2355
- "key": "Environement",
2356
- "value": "IntegTestAl2023"
2357
- },
2358
- {
2359
- "key": "IntegTest",
2360
- "value": "True"
2361
- }
2362
- ]
2363
- }
2364
- },
2365
- "constructInfo": {
2366
- "fqn": "aws-cdk-lib.aws_iam.CfnRole",
2367
- "version": "2.177.0"
2368
- }
2369
- },
2370
- "DefaultPolicy": {
2371
- "id": "DefaultPolicy",
2372
- "path": "IntegTestStackAl2023/IntegVSCodeServer/InstallerProvider/framework-onEvent/ServiceRole/DefaultPolicy",
2373
- "children": {
2374
- "Resource": {
2375
- "id": "Resource",
2376
- "path": "IntegTestStackAl2023/IntegVSCodeServer/InstallerProvider/framework-onEvent/ServiceRole/DefaultPolicy/Resource",
2377
- "attributes": {
2378
- "aws:cdk:cloudformation:type": "AWS::IAM::Policy",
2379
- "aws:cdk:cloudformation:props": {
2380
- "policyDocument": {
2381
- "Statement": [
2382
- {
2383
- "Action": "lambda:InvokeFunction",
2384
- "Effect": "Allow",
2385
- "Resource": [
2386
- {
2387
- "Fn::GetAtt": [
2388
- "IntegVSCodeServerInstallerOnEventHandler6FF91542",
2389
- "Arn"
2390
- ]
2391
- },
2392
- {
2393
- "Fn::Join": [
2394
- "",
2395
- [
2396
- {
2397
- "Fn::GetAtt": [
2398
- "IntegVSCodeServerInstallerOnEventHandler6FF91542",
2399
- "Arn"
2400
- ]
2401
- },
2402
- ":*"
2403
- ]
2404
- ]
2405
- }
2406
- ]
2407
- }
2408
- ],
2409
- "Version": "2012-10-17"
2410
- },
2411
- "policyName": "IntegVSCodeServerInstallerProviderframeworkonEventServiceRoleDefaultPolicy3E54FC3A",
2412
- "roles": [
2413
- {
2414
- "Ref": "IntegVSCodeServerInstallerProviderframeworkonEventServiceRoleA509851F"
2415
- }
2416
- ]
2417
- }
2418
- },
2419
- "constructInfo": {
2420
- "fqn": "aws-cdk-lib.aws_iam.CfnPolicy",
2421
- "version": "2.177.0"
2422
- }
2423
- }
2424
- },
2425
- "constructInfo": {
2426
- "fqn": "aws-cdk-lib.aws_iam.Policy",
2427
- "version": "2.177.0"
2428
- }
2429
- }
2430
- },
2431
- "constructInfo": {
2432
- "fqn": "aws-cdk-lib.aws_iam.Role",
2433
- "version": "2.177.0"
2434
- }
2435
- },
2436
- "Code": {
2437
- "id": "Code",
2438
- "path": "IntegTestStackAl2023/IntegVSCodeServer/InstallerProvider/framework-onEvent/Code",
2439
- "children": {
2440
- "Stage": {
2441
- "id": "Stage",
2442
- "path": "IntegTestStackAl2023/IntegVSCodeServer/InstallerProvider/framework-onEvent/Code/Stage",
2443
- "constructInfo": {
2444
- "fqn": "aws-cdk-lib.AssetStaging",
2445
- "version": "2.177.0"
2446
- }
2447
- },
2448
- "AssetBucket": {
2449
- "id": "AssetBucket",
2450
- "path": "IntegTestStackAl2023/IntegVSCodeServer/InstallerProvider/framework-onEvent/Code/AssetBucket",
2451
- "constructInfo": {
2452
- "fqn": "aws-cdk-lib.aws_s3.BucketBase",
2453
- "version": "2.177.0"
2454
- }
2455
- }
2456
- },
2457
- "constructInfo": {
2458
- "fqn": "aws-cdk-lib.aws_s3_assets.Asset",
2459
- "version": "2.177.0"
2460
- }
2461
- },
2462
- "Resource": {
2463
- "id": "Resource",
2464
- "path": "IntegTestStackAl2023/IntegVSCodeServer/InstallerProvider/framework-onEvent/Resource",
2465
- "attributes": {
2466
- "aws:cdk:cloudformation:type": "AWS::Lambda::Function",
2467
- "aws:cdk:cloudformation:props": {
2468
- "code": {
2469
- "s3Bucket": {
2470
- "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
2471
- },
2472
- "s3Key": "bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca.zip"
2473
- },
2474
- "description": "AWS CDK resource provider framework - onEvent (IntegTestStackAl2023/IntegVSCodeServer/InstallerProvider)",
2475
- "environment": {
2476
- "variables": {
2477
- "USER_ON_EVENT_FUNCTION_ARN": {
2478
- "Fn::GetAtt": [
2479
- "IntegVSCodeServerInstallerOnEventHandler6FF91542",
2480
- "Arn"
2481
- ]
2482
- }
2483
- }
2484
- },
2485
- "handler": "framework.onEvent",
2486
- "role": {
2487
- "Fn::GetAtt": [
2488
- "IntegVSCodeServerInstallerProviderframeworkonEventServiceRoleA509851F",
2489
- "Arn"
2490
- ]
2491
- },
2492
- "runtime": {
2493
- "Fn::FindInMap": [
2494
- "LatestNodeRuntimeMap",
2495
- {
2496
- "Ref": "AWS::Region"
2497
- },
2498
- "value"
2499
- ]
2500
- },
2501
- "tags": [
2502
- {
2503
- "key": "app",
2504
- "value": "vscode-server"
2505
- },
2506
- {
2507
- "key": "Environement",
2508
- "value": "IntegTestAl2023"
2509
- },
2510
- {
2511
- "key": "IntegTest",
2512
- "value": "True"
2513
- }
2514
- ],
2515
- "timeout": 900
2516
- }
2517
- },
2518
- "constructInfo": {
2519
- "fqn": "aws-cdk-lib.aws_lambda.CfnFunction",
2520
- "version": "2.177.0"
2521
- }
2522
- }
2523
- },
2524
- "constructInfo": {
2525
- "fqn": "aws-cdk-lib.aws_lambda.Function",
2526
- "version": "2.177.0"
2527
- }
2528
- }
2529
- },
2530
- "constructInfo": {
2531
- "fqn": "aws-cdk-lib.custom_resources.Provider",
2532
- "version": "2.177.0"
2533
- }
2534
- },
2535
- "SSMInstallerCustomResource": {
2536
- "id": "SSMInstallerCustomResource",
2537
- "path": "IntegTestStackAl2023/IntegVSCodeServer/SSMInstallerCustomResource",
2538
- "children": {
2539
- "Default": {
2540
- "id": "Default",
2541
- "path": "IntegTestStackAl2023/IntegVSCodeServer/SSMInstallerCustomResource/Default",
2542
- "constructInfo": {
2543
- "fqn": "aws-cdk-lib.CfnResource",
2544
- "version": "2.177.0"
2545
- }
2546
- }
2547
- },
2548
- "constructInfo": {
2549
- "fqn": "aws-cdk-lib.CustomResource",
2550
- "version": "2.177.0"
2551
- }
2552
- },
2553
- "domainName": {
2554
- "id": "domainName",
2555
- "path": "IntegTestStackAl2023/IntegVSCodeServer/domainName",
2556
- "constructInfo": {
2557
- "fqn": "aws-cdk-lib.CfnOutput",
2558
- "version": "2.177.0"
2559
- }
2560
- },
2561
- "password": {
2562
- "id": "password",
2563
- "path": "IntegTestStackAl2023/IntegVSCodeServer/password",
2564
- "constructInfo": {
2565
- "fqn": "aws-cdk-lib.CfnOutput",
2566
- "version": "2.177.0"
2567
- }
2568
- }
2569
- },
2570
- "constructInfo": {
2571
- "fqn": "constructs.Construct",
2572
- "version": "10.4.2"
2573
- }
2574
- },
2575
- "LatestNodeRuntimeMap": {
2576
- "id": "LatestNodeRuntimeMap",
2577
- "path": "IntegTestStackAl2023/LatestNodeRuntimeMap",
2578
- "constructInfo": {
2579
- "fqn": "aws-cdk-lib.CfnMapping",
2580
- "version": "2.177.0"
2581
- }
2582
- },
2583
- "Custom::VpcRestrictDefaultSGCustomResourceProvider": {
2584
- "id": "Custom::VpcRestrictDefaultSGCustomResourceProvider",
2585
- "path": "IntegTestStackAl2023/Custom::VpcRestrictDefaultSGCustomResourceProvider",
2586
- "children": {
2587
- "Staging": {
2588
- "id": "Staging",
2589
- "path": "IntegTestStackAl2023/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging",
2590
- "constructInfo": {
2591
- "fqn": "aws-cdk-lib.AssetStaging",
2592
- "version": "2.177.0"
2593
- }
2594
- },
2595
- "Role": {
2596
- "id": "Role",
2597
- "path": "IntegTestStackAl2023/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role",
2598
- "constructInfo": {
2599
- "fqn": "aws-cdk-lib.CfnResource",
2600
- "version": "2.177.0"
2601
- }
2602
- },
2603
- "Handler": {
2604
- "id": "Handler",
2605
- "path": "IntegTestStackAl2023/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler",
2606
- "constructInfo": {
2607
- "fqn": "aws-cdk-lib.CfnResource",
2608
- "version": "2.177.0"
2609
- }
2610
- }
2611
- },
2612
- "constructInfo": {
2613
- "fqn": "aws-cdk-lib.CustomResourceProviderBase",
2614
- "version": "2.177.0"
2615
- }
2616
- },
2617
- "AWS679f53fac002430cb0da5b7982bd2287": {
2618
- "id": "AWS679f53fac002430cb0da5b7982bd2287",
2619
- "path": "IntegTestStackAl2023/AWS679f53fac002430cb0da5b7982bd2287",
2620
- "children": {
2621
- "Code": {
2622
- "id": "Code",
2623
- "path": "IntegTestStackAl2023/AWS679f53fac002430cb0da5b7982bd2287/Code",
2624
- "children": {
2625
- "Stage": {
2626
- "id": "Stage",
2627
- "path": "IntegTestStackAl2023/AWS679f53fac002430cb0da5b7982bd2287/Code/Stage",
2628
- "constructInfo": {
2629
- "fqn": "aws-cdk-lib.AssetStaging",
2630
- "version": "2.177.0"
2631
- }
2632
- },
2633
- "AssetBucket": {
2634
- "id": "AssetBucket",
2635
- "path": "IntegTestStackAl2023/AWS679f53fac002430cb0da5b7982bd2287/Code/AssetBucket",
2636
- "constructInfo": {
2637
- "fqn": "aws-cdk-lib.aws_s3.BucketBase",
2638
- "version": "2.177.0"
2639
- }
2640
- }
2641
- },
2642
- "constructInfo": {
2643
- "fqn": "aws-cdk-lib.aws_s3_assets.Asset",
2644
- "version": "2.177.0"
2645
- }
2646
- },
2647
- "Resource": {
2648
- "id": "Resource",
2649
- "path": "IntegTestStackAl2023/AWS679f53fac002430cb0da5b7982bd2287/Resource",
2650
- "attributes": {
2651
- "aws:cdk:cloudformation:type": "AWS::Lambda::Function",
2652
- "aws:cdk:cloudformation:props": {
2653
- "code": {
2654
- "s3Bucket": {
2655
- "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
2656
- },
2657
- "s3Key": "ce2f3595a340d6c519a65888ef97e3b9b64f053f83608e32cc28162e22d7d99a.zip"
2658
- },
2659
- "handler": "index.handler",
2660
- "loggingConfig": {
2661
- "logGroup": {
2662
- "Ref": "IntegVSCodeServercfprefixlistIdGetPrefixListIdLogGroup171C2803"
2663
- }
2664
- },
2665
- "role": {
2666
- "Fn::GetAtt": [
2667
- "IntegVSCodeServercfprefixlistIdGetPrefixListIdRole1302B3E1",
2668
- "Arn"
2669
- ]
2670
- },
2671
- "runtime": {
2672
- "Fn::FindInMap": [
2673
- "LatestNodeRuntimeMap",
2674
- {
2675
- "Ref": "AWS::Region"
2676
- },
2677
- "value"
2678
- ]
2679
- },
2680
- "timeout": 120
2681
- }
2682
- },
2683
- "constructInfo": {
2684
- "fqn": "aws-cdk-lib.aws_lambda.CfnFunction",
2685
- "version": "2.177.0"
2686
- }
2687
- }
2688
- },
2689
- "constructInfo": {
2690
- "fqn": "aws-cdk-lib.aws_lambda.Function",
2691
- "version": "2.177.0"
2692
- }
2693
- },
2694
- "SsmParameterValue:--aws--service--ami-amazon-linux-latest--al2023-ami-kernel-default-arm64:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter": {
2695
- "id": "SsmParameterValue:--aws--service--ami-amazon-linux-latest--al2023-ami-kernel-default-arm64:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter",
2696
- "path": "IntegTestStackAl2023/SsmParameterValue:--aws--service--ami-amazon-linux-latest--al2023-ami-kernel-default-arm64:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter",
2697
- "constructInfo": {
2698
- "fqn": "aws-cdk-lib.CfnParameter",
2699
- "version": "2.177.0"
2700
- }
2701
- },
2702
- "SsmParameterValue:--aws--service--ami-amazon-linux-latest--al2023-ami-kernel-default-arm64:C96584B6-F00A-464E-AD19-53AFF4B05118": {
2703
- "id": "SsmParameterValue:--aws--service--ami-amazon-linux-latest--al2023-ami-kernel-default-arm64:C96584B6-F00A-464E-AD19-53AFF4B05118",
2704
- "path": "IntegTestStackAl2023/SsmParameterValue:--aws--service--ami-amazon-linux-latest--al2023-ami-kernel-default-arm64:C96584B6-F00A-464E-AD19-53AFF4B05118",
2705
- "constructInfo": {
2706
- "fqn": "aws-cdk-lib.Resource",
2707
- "version": "2.177.0"
2708
- }
2709
- },
2710
- "login-handler": {
2711
- "id": "login-handler",
2712
- "path": "IntegTestStackAl2023/login-handler",
2713
- "children": {
2714
- "ServiceRole": {
2715
- "id": "ServiceRole",
2716
- "path": "IntegTestStackAl2023/login-handler/ServiceRole",
2717
- "children": {
2718
- "ImportServiceRole": {
2719
- "id": "ImportServiceRole",
2720
- "path": "IntegTestStackAl2023/login-handler/ServiceRole/ImportServiceRole",
2721
- "constructInfo": {
2722
- "fqn": "aws-cdk-lib.Resource",
2723
- "version": "2.177.0"
2724
- }
2725
- },
2726
- "Resource": {
2727
- "id": "Resource",
2728
- "path": "IntegTestStackAl2023/login-handler/ServiceRole/Resource",
2729
- "attributes": {
2730
- "aws:cdk:cloudformation:type": "AWS::IAM::Role",
2731
- "aws:cdk:cloudformation:props": {
2732
- "assumeRolePolicyDocument": {
2733
- "Statement": [
2734
- {
2735
- "Action": "sts:AssumeRole",
2736
- "Effect": "Allow",
2737
- "Principal": {
2738
- "Service": "lambda.amazonaws.com"
2739
- }
2740
- }
2741
- ],
2742
- "Version": "2012-10-17"
2743
- },
2744
- "managedPolicyArns": [
2745
- {
2746
- "Fn::Join": [
2747
- "",
2748
- [
2749
- "arn:",
2750
- {
2751
- "Ref": "AWS::Partition"
2752
- },
2753
- ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"
2754
- ]
2755
- ]
2756
- }
2757
- ]
2758
- }
2759
- },
2760
- "constructInfo": {
2761
- "fqn": "aws-cdk-lib.aws_iam.CfnRole",
2762
- "version": "2.177.0"
2763
- }
2764
- }
2765
- },
2766
- "constructInfo": {
2767
- "fqn": "aws-cdk-lib.aws_iam.Role",
2768
- "version": "2.177.0"
2769
- }
2770
- },
2771
- "Code": {
2772
- "id": "Code",
2773
- "path": "IntegTestStackAl2023/login-handler/Code",
2774
- "children": {
2775
- "Stage": {
2776
- "id": "Stage",
2777
- "path": "IntegTestStackAl2023/login-handler/Code/Stage",
2778
- "constructInfo": {
2779
- "fqn": "aws-cdk-lib.AssetStaging",
2780
- "version": "2.177.0"
2781
- }
2782
- },
2783
- "AssetBucket": {
2784
- "id": "AssetBucket",
2785
- "path": "IntegTestStackAl2023/login-handler/Code/AssetBucket",
2786
- "constructInfo": {
2787
- "fqn": "aws-cdk-lib.aws_s3.BucketBase",
2788
- "version": "2.177.0"
2789
- }
2790
- }
2791
- },
2792
- "constructInfo": {
2793
- "fqn": "aws-cdk-lib.aws_s3_assets.Asset",
2794
- "version": "2.177.0"
2795
- }
2796
- },
2797
- "Resource": {
2798
- "id": "Resource",
2799
- "path": "IntegTestStackAl2023/login-handler/Resource",
2800
- "attributes": {
2801
- "aws:cdk:cloudformation:type": "AWS::Lambda::Function",
2802
- "aws:cdk:cloudformation:props": {
2803
- "code": {
2804
- "s3Bucket": {
2805
- "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
2806
- },
2807
- "s3Key": "23732f3d1982f7fb0da3bd6638a8107337bb767fea165b45eae12000a1dd67ce.zip"
2808
- },
2809
- "handler": "index.handler",
2810
- "role": {
2811
- "Fn::GetAtt": [
2812
- "loginhandlerServiceRole330B0B32",
2813
- "Arn"
2814
- ]
2815
- },
2816
- "runtime": "nodejs20.x",
2817
- "timeout": 30
2818
- }
2819
- },
2820
- "constructInfo": {
2821
- "fqn": "aws-cdk-lib.aws_lambda.CfnFunction",
2822
- "version": "2.177.0"
2823
- }
2824
- },
2825
- "LogRetention": {
2826
- "id": "LogRetention",
2827
- "path": "IntegTestStackAl2023/login-handler/LogRetention",
2828
- "children": {
2829
- "Resource": {
2830
- "id": "Resource",
2831
- "path": "IntegTestStackAl2023/login-handler/LogRetention/Resource",
2832
- "constructInfo": {
2833
- "fqn": "aws-cdk-lib.CfnResource",
2834
- "version": "2.177.0"
2835
- }
2836
- }
2837
- },
2838
- "constructInfo": {
2839
- "fqn": "aws-cdk-lib.aws_logs.LogRetention",
2840
- "version": "2.177.0"
2841
- }
2842
- },
2843
- "LogGroup": {
2844
- "id": "LogGroup",
2845
- "path": "IntegTestStackAl2023/login-handler/LogGroup",
2846
- "constructInfo": {
2847
- "fqn": "aws-cdk-lib.Resource",
2848
- "version": "2.177.0"
2849
- }
2850
- }
2851
- },
2852
- "constructInfo": {
2853
- "fqn": "aws-cdk-lib.aws_lambda_nodejs.NodejsFunction",
2854
- "version": "2.177.0"
2855
- }
2856
- },
2857
- "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a": {
2858
- "id": "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a",
2859
- "path": "IntegTestStackAl2023/LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a",
2860
- "children": {
2861
- "Code": {
2862
- "id": "Code",
2863
- "path": "IntegTestStackAl2023/LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a/Code",
2864
- "children": {
2865
- "Stage": {
2866
- "id": "Stage",
2867
- "path": "IntegTestStackAl2023/LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a/Code/Stage",
2868
- "constructInfo": {
2869
- "fqn": "aws-cdk-lib.AssetStaging",
2870
- "version": "2.177.0"
2871
- }
2872
- },
2873
- "AssetBucket": {
2874
- "id": "AssetBucket",
2875
- "path": "IntegTestStackAl2023/LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a/Code/AssetBucket",
2876
- "constructInfo": {
2877
- "fqn": "aws-cdk-lib.aws_s3.BucketBase",
2878
- "version": "2.177.0"
2879
- }
2880
- }
2881
- },
2882
- "constructInfo": {
2883
- "fqn": "aws-cdk-lib.aws_s3_assets.Asset",
2884
- "version": "2.177.0"
2885
- }
2886
- },
2887
- "ServiceRole": {
2888
- "id": "ServiceRole",
2889
- "path": "IntegTestStackAl2023/LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a/ServiceRole",
2890
- "children": {
2891
- "ImportServiceRole": {
2892
- "id": "ImportServiceRole",
2893
- "path": "IntegTestStackAl2023/LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a/ServiceRole/ImportServiceRole",
2894
- "constructInfo": {
2895
- "fqn": "aws-cdk-lib.Resource",
2896
- "version": "2.177.0"
2897
- }
2898
- },
2899
- "Resource": {
2900
- "id": "Resource",
2901
- "path": "IntegTestStackAl2023/LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a/ServiceRole/Resource",
2902
- "attributes": {
2903
- "aws:cdk:cloudformation:type": "AWS::IAM::Role",
2904
- "aws:cdk:cloudformation:props": {
2905
- "assumeRolePolicyDocument": {
2906
- "Statement": [
2907
- {
2908
- "Action": "sts:AssumeRole",
2909
- "Effect": "Allow",
2910
- "Principal": {
2911
- "Service": "lambda.amazonaws.com"
2912
- }
2913
- }
2914
- ],
2915
- "Version": "2012-10-17"
2916
- },
2917
- "managedPolicyArns": [
2918
- {
2919
- "Fn::Join": [
2920
- "",
2921
- [
2922
- "arn:",
2923
- {
2924
- "Ref": "AWS::Partition"
2925
- },
2926
- ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"
2927
- ]
2928
- ]
2929
- }
2930
- ]
2931
- }
2932
- },
2933
- "constructInfo": {
2934
- "fqn": "aws-cdk-lib.aws_iam.CfnRole",
2935
- "version": "2.177.0"
2936
- }
2937
- },
2938
- "DefaultPolicy": {
2939
- "id": "DefaultPolicy",
2940
- "path": "IntegTestStackAl2023/LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a/ServiceRole/DefaultPolicy",
2941
- "children": {
2942
- "Resource": {
2943
- "id": "Resource",
2944
- "path": "IntegTestStackAl2023/LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a/ServiceRole/DefaultPolicy/Resource",
2945
- "attributes": {
2946
- "aws:cdk:cloudformation:type": "AWS::IAM::Policy",
2947
- "aws:cdk:cloudformation:props": {
2948
- "policyDocument": {
2949
- "Statement": [
2950
- {
2951
- "Action": [
2952
- "logs:DeleteRetentionPolicy",
2953
- "logs:PutRetentionPolicy"
2954
- ],
2955
- "Effect": "Allow",
2956
- "Resource": "*"
2957
- }
2958
- ],
2959
- "Version": "2012-10-17"
2960
- },
2961
- "policyName": "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB",
2962
- "roles": [
2963
- {
2964
- "Ref": "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB"
2965
- }
2966
- ]
2967
- }
2968
- },
2969
- "constructInfo": {
2970
- "fqn": "aws-cdk-lib.aws_iam.CfnPolicy",
2971
- "version": "2.177.0"
2972
- }
2973
- }
2974
- },
2975
- "constructInfo": {
2976
- "fqn": "aws-cdk-lib.aws_iam.Policy",
2977
- "version": "2.177.0"
2978
- }
2979
- }
2980
- },
2981
- "constructInfo": {
2982
- "fqn": "aws-cdk-lib.aws_iam.Role",
2983
- "version": "2.177.0"
2984
- }
2985
- },
2986
- "Resource": {
2987
- "id": "Resource",
2988
- "path": "IntegTestStackAl2023/LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a/Resource",
2989
- "constructInfo": {
2990
- "fqn": "aws-cdk-lib.CfnResource",
2991
- "version": "2.177.0"
2992
- }
2993
- }
2994
- },
2995
- "constructInfo": {
2996
- "fqn": "constructs.Construct",
2997
- "version": "10.4.2"
2998
- }
2999
- },
3000
- "Exports": {
3001
- "id": "Exports",
3002
- "path": "IntegTestStackAl2023/Exports",
3003
- "children": {
3004
- "Output{\"Ref\":\"loginhandler99CCCCFD\"}": {
3005
- "id": "Output{\"Ref\":\"loginhandler99CCCCFD\"}",
3006
- "path": "IntegTestStackAl2023/Exports/Output{\"Ref\":\"loginhandler99CCCCFD\"}",
3007
- "constructInfo": {
3008
- "fqn": "aws-cdk-lib.CfnOutput",
3009
- "version": "2.177.0"
3010
- }
3011
- },
3012
- "Output{\"Fn::GetAtt\":[\"IntegVSCodeServercfdistributionFDBE873F\",\"DomainName\"]}": {
3013
- "id": "Output{\"Fn::GetAtt\":[\"IntegVSCodeServercfdistributionFDBE873F\",\"DomainName\"]}",
3014
- "path": "IntegTestStackAl2023/Exports/Output{\"Fn::GetAtt\":[\"IntegVSCodeServercfdistributionFDBE873F\",\"DomainName\"]}",
3015
- "constructInfo": {
3016
- "fqn": "aws-cdk-lib.CfnOutput",
3017
- "version": "2.177.0"
3018
- }
3019
- },
3020
- "Output{\"Fn::GetAtt\":[\"IntegVSCodeServerSecretRetrieverCustomResource2F3DB8BD\",\"secretPasswordValue\"]}": {
3021
- "id": "Output{\"Fn::GetAtt\":[\"IntegVSCodeServerSecretRetrieverCustomResource2F3DB8BD\",\"secretPasswordValue\"]}",
3022
- "path": "IntegTestStackAl2023/Exports/Output{\"Fn::GetAtt\":[\"IntegVSCodeServerSecretRetrieverCustomResource2F3DB8BD\",\"secretPasswordValue\"]}",
3023
- "constructInfo": {
3024
- "fqn": "aws-cdk-lib.CfnOutput",
3025
- "version": "2.177.0"
3026
- }
3027
- }
3028
- },
3029
- "constructInfo": {
3030
- "fqn": "constructs.Construct",
3031
- "version": "10.4.2"
3032
- }
3033
- },
3034
- "BootstrapVersion": {
3035
- "id": "BootstrapVersion",
3036
- "path": "IntegTestStackAl2023/BootstrapVersion",
3037
- "constructInfo": {
3038
- "fqn": "aws-cdk-lib.CfnParameter",
3039
- "version": "2.177.0"
3040
- }
3041
- },
3042
- "CheckBootstrapVersion": {
3043
- "id": "CheckBootstrapVersion",
3044
- "path": "IntegTestStackAl2023/CheckBootstrapVersion",
3045
- "constructInfo": {
3046
- "fqn": "aws-cdk-lib.CfnRule",
3047
- "version": "2.177.0"
3048
- }
3049
- }
3050
- },
3051
- "constructInfo": {
3052
- "fqn": "aws-cdk-lib.Stack",
3053
- "version": "2.177.0"
3054
- }
3055
- },
3056
- "IntegSetupVSCodeOnAl2023": {
3057
- "id": "IntegSetupVSCodeOnAl2023",
3058
- "path": "IntegSetupVSCodeOnAl2023",
3059
- "children": {
3060
- "DefaultTest": {
3061
- "id": "DefaultTest",
3062
- "path": "IntegSetupVSCodeOnAl2023/DefaultTest",
3063
- "children": {
3064
- "Default": {
3065
- "id": "Default",
3066
- "path": "IntegSetupVSCodeOnAl2023/DefaultTest/Default",
3067
- "constructInfo": {
3068
- "fqn": "constructs.Construct",
3069
- "version": "10.4.2"
3070
- }
3071
- },
3072
- "DeployAssert": {
3073
- "id": "DeployAssert",
3074
- "path": "IntegSetupVSCodeOnAl2023/DefaultTest/DeployAssert",
3075
- "children": {
3076
- "LambdaInvoke493987f824f978002013a8ed7c9980f4": {
3077
- "id": "LambdaInvoke493987f824f978002013a8ed7c9980f4",
3078
- "path": "IntegSetupVSCodeOnAl2023/DefaultTest/DeployAssert/LambdaInvoke493987f824f978002013a8ed7c9980f4",
3079
- "children": {
3080
- "SdkProvider": {
3081
- "id": "SdkProvider",
3082
- "path": "IntegSetupVSCodeOnAl2023/DefaultTest/DeployAssert/LambdaInvoke493987f824f978002013a8ed7c9980f4/SdkProvider",
3083
- "children": {
3084
- "AssertionsProvider": {
3085
- "id": "AssertionsProvider",
3086
- "path": "IntegSetupVSCodeOnAl2023/DefaultTest/DeployAssert/LambdaInvoke493987f824f978002013a8ed7c9980f4/SdkProvider/AssertionsProvider",
3087
- "constructInfo": {
3088
- "fqn": "constructs.Construct",
3089
- "version": "10.4.2"
3090
- }
3091
- }
3092
- },
3093
- "constructInfo": {
3094
- "fqn": "@aws-cdk/integ-tests-alpha.AssertionsProvider",
3095
- "version": "2.177.0-alpha.0"
3096
- }
3097
- },
3098
- "Default": {
3099
- "id": "Default",
3100
- "path": "IntegSetupVSCodeOnAl2023/DefaultTest/DeployAssert/LambdaInvoke493987f824f978002013a8ed7c9980f4/Default",
3101
- "children": {
3102
- "Default": {
3103
- "id": "Default",
3104
- "path": "IntegSetupVSCodeOnAl2023/DefaultTest/DeployAssert/LambdaInvoke493987f824f978002013a8ed7c9980f4/Default/Default",
3105
- "constructInfo": {
3106
- "fqn": "aws-cdk-lib.CfnResource",
3107
- "version": "2.177.0"
3108
- }
3109
- }
3110
- },
3111
- "constructInfo": {
3112
- "fqn": "aws-cdk-lib.CustomResource",
3113
- "version": "2.177.0"
3114
- }
3115
- },
3116
- "Invoke": {
3117
- "id": "Invoke",
3118
- "path": "IntegSetupVSCodeOnAl2023/DefaultTest/DeployAssert/LambdaInvoke493987f824f978002013a8ed7c9980f4/Invoke",
3119
- "constructInfo": {
3120
- "fqn": "aws-cdk-lib.CfnResource",
3121
- "version": "2.177.0"
3122
- }
3123
- },
3124
- "AssertionResults": {
3125
- "id": "AssertionResults",
3126
- "path": "IntegSetupVSCodeOnAl2023/DefaultTest/DeployAssert/LambdaInvoke493987f824f978002013a8ed7c9980f4/AssertionResults",
3127
- "constructInfo": {
3128
- "fqn": "aws-cdk-lib.CfnOutput",
3129
- "version": "2.177.0"
3130
- }
3131
- }
3132
- },
3133
- "constructInfo": {
3134
- "fqn": "@aws-cdk/integ-tests-alpha.LambdaInvokeFunction",
3135
- "version": "2.177.0-alpha.0"
3136
- }
3137
- },
3138
- "SingletonFunction1488541a7b23466481b69b4408076b81": {
3139
- "id": "SingletonFunction1488541a7b23466481b69b4408076b81",
3140
- "path": "IntegSetupVSCodeOnAl2023/DefaultTest/DeployAssert/SingletonFunction1488541a7b23466481b69b4408076b81",
3141
- "children": {
3142
- "Staging": {
3143
- "id": "Staging",
3144
- "path": "IntegSetupVSCodeOnAl2023/DefaultTest/DeployAssert/SingletonFunction1488541a7b23466481b69b4408076b81/Staging",
3145
- "constructInfo": {
3146
- "fqn": "aws-cdk-lib.AssetStaging",
3147
- "version": "2.177.0"
3148
- }
3149
- },
3150
- "Role": {
3151
- "id": "Role",
3152
- "path": "IntegSetupVSCodeOnAl2023/DefaultTest/DeployAssert/SingletonFunction1488541a7b23466481b69b4408076b81/Role",
3153
- "constructInfo": {
3154
- "fqn": "aws-cdk-lib.CfnResource",
3155
- "version": "2.177.0"
3156
- }
3157
- },
3158
- "Handler": {
3159
- "id": "Handler",
3160
- "path": "IntegSetupVSCodeOnAl2023/DefaultTest/DeployAssert/SingletonFunction1488541a7b23466481b69b4408076b81/Handler",
3161
- "constructInfo": {
3162
- "fqn": "aws-cdk-lib.CfnResource",
3163
- "version": "2.177.0"
3164
- }
3165
- }
3166
- },
3167
- "constructInfo": {
3168
- "fqn": "constructs.Construct",
3169
- "version": "10.4.2"
3170
- }
3171
- },
3172
- "LatestNodeRuntimeMap": {
3173
- "id": "LatestNodeRuntimeMap",
3174
- "path": "IntegSetupVSCodeOnAl2023/DefaultTest/DeployAssert/LatestNodeRuntimeMap",
3175
- "constructInfo": {
3176
- "fqn": "aws-cdk-lib.CfnMapping",
3177
- "version": "2.177.0"
3178
- }
3179
- },
3180
- "BootstrapVersion": {
3181
- "id": "BootstrapVersion",
3182
- "path": "IntegSetupVSCodeOnAl2023/DefaultTest/DeployAssert/BootstrapVersion",
3183
- "constructInfo": {
3184
- "fqn": "aws-cdk-lib.CfnParameter",
3185
- "version": "2.177.0"
3186
- }
3187
- },
3188
- "CheckBootstrapVersion": {
3189
- "id": "CheckBootstrapVersion",
3190
- "path": "IntegSetupVSCodeOnAl2023/DefaultTest/DeployAssert/CheckBootstrapVersion",
3191
- "constructInfo": {
3192
- "fqn": "aws-cdk-lib.CfnRule",
3193
- "version": "2.177.0"
3194
- }
3195
- }
3196
- },
3197
- "constructInfo": {
3198
- "fqn": "aws-cdk-lib.Stack",
3199
- "version": "2.177.0"
3200
- }
3201
- }
3202
- },
3203
- "constructInfo": {
3204
- "fqn": "@aws-cdk/integ-tests-alpha.IntegTestCase",
3205
- "version": "2.177.0-alpha.0"
3206
- }
3207
- }
3208
- },
3209
- "constructInfo": {
3210
- "fqn": "@aws-cdk/integ-tests-alpha.IntegTest",
3211
- "version": "2.177.0-alpha.0"
3212
- }
3213
- },
3214
- "Tree": {
3215
- "id": "Tree",
3216
- "path": "Tree",
3217
- "constructInfo": {
3218
- "fqn": "constructs.Construct",
3219
- "version": "10.4.2"
3220
- }
3221
- }
3222
- },
3223
- "constructInfo": {
3224
- "fqn": "aws-cdk-lib.App",
3225
- "version": "2.177.0"
3226
- }
3227
- }
3228
- }
1
+ {"version":"tree-0.1","tree":{"id":"App","path":"","children":{"IntegTestStackAl2023":{"id":"IntegTestStackAl2023","path":"IntegTestStackAl2023","children":{"IntegVSCodeServer":{"id":"IntegVSCodeServer","path":"IntegTestStackAl2023/IntegVSCodeServer","children":{"password-secret":{"id":"password-secret","path":"IntegTestStackAl2023/IntegVSCodeServer/password-secret","children":{"Resource":{"id":"Resource","path":"IntegTestStackAl2023/IntegVSCodeServer/password-secret/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::SecretsManager::Secret","aws:cdk:cloudformation:props":{"generateSecretString":{"passwordLength":16,"secretStringTemplate":"{\"username\":\"participant\"}","excludePunctuation":true,"includeSpace":false,"generateStringKey":"password"},"tags":[{"key":"app","value":"vscode-server"},{"key":"Environement","value":"IntegTestAl2023"},{"key":"IntegTest","value":"True"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_secretsmanager.CfnSecret","version":"2.190.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_secretsmanager.Secret","version":"2.190.0","metadata":[{"generateSecretString":{"passwordLength":"*","secretStringTemplate":"*","excludePunctuation":true,"includeSpace":false,"generateStringKey":"*"}}]}},"SecretRetrieverOnEventHandler":{"id":"SecretRetrieverOnEventHandler","path":"IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieverOnEventHandler","children":{"ServiceRole":{"id":"ServiceRole","path":"IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieverOnEventHandler/ServiceRole","children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieverOnEventHandler/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.190.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieverOnEventHandler/ServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.190.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieverOnEventHandler/ServiceRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieverOnEventHandler/ServiceRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"secretsmanager:GetSecretValue","Effect":"Allow","Resource":{"Ref":"IntegVSCodeServerpasswordsecret202A5DB3"}}],"Version":"2012-10-17"},"policyName":"IntegVSCodeServerSecretRetrieverOnEventHandlerServiceRoleDefaultPolicy2641E2C6","roles":[{"Ref":"IntegVSCodeServerSecretRetrieverOnEventHandlerServiceRoleBEF8D4D2"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.190.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.190.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.190.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"Code":{"id":"Code","path":"IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieverOnEventHandler/Code","children":{"Stage":{"id":"Stage","path":"IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieverOnEventHandler/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.190.0"}},"AssetBucket":{"id":"AssetBucket","path":"IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieverOnEventHandler/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.190.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.190.0"}},"Resource":{"id":"Resource","path":"IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieverOnEventHandler/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"781ab0ab74634cdaf61539ab208ab777829ef07097ac21f95b9e15a3b1eedc1b.zip"},"description":"src/secret-retriever/secret-retriever.lambda.ts","handler":"index.handler","memorySize":128,"role":{"Fn::GetAtt":["IntegVSCodeServerSecretRetrieverOnEventHandlerServiceRoleBEF8D4D2","Arn"]},"runtime":"nodejs20.x","timeout":10}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.190.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.190.0","metadata":[{"description":"*","timeout":"*","memorySize":"*","runtime":"*","handler":"*","code":"*"}]}},"SecretRetrieveProvider":{"id":"SecretRetrieveProvider","path":"IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieveProvider","children":{"framework-onEvent":{"id":"framework-onEvent","path":"IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieveProvider/framework-onEvent","children":{"ServiceRole":{"id":"ServiceRole","path":"IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieveProvider/framework-onEvent/ServiceRole","children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieveProvider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.190.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieveProvider/framework-onEvent/ServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.190.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieveProvider/framework-onEvent/ServiceRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieveProvider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["IntegVSCodeServerSecretRetrieverOnEventHandlerDD084AE3","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["IntegVSCodeServerSecretRetrieverOnEventHandlerDD084AE3","Arn"]},":*"]]}]},{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["IntegVSCodeServerSecretRetrieverOnEventHandlerDD084AE3","Arn"]}}],"Version":"2012-10-17"},"policyName":"IntegVSCodeServerSecretRetrieveProviderframeworkonEventServiceRoleDefaultPolicyEC4DCEA0","roles":[{"Ref":"IntegVSCodeServerSecretRetrieveProviderframeworkonEventServiceRole0F156B64"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.190.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.190.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.190.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]}},"Code":{"id":"Code","path":"IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieveProvider/framework-onEvent/Code","children":{"Stage":{"id":"Stage","path":"IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieveProvider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.190.0"}},"AssetBucket":{"id":"AssetBucket","path":"IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieveProvider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.190.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.190.0"}},"Resource":{"id":"Resource","path":"IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieveProvider/framework-onEvent/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca.zip"},"description":"AWS CDK resource provider framework - onEvent (IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieveProvider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["IntegVSCodeServerSecretRetrieverOnEventHandlerDD084AE3","Arn"]}}},"handler":"framework.onEvent","role":{"Fn::GetAtt":["IntegVSCodeServerSecretRetrieveProviderframeworkonEventServiceRole0F156B64","Arn"]},"runtime":{"Fn::FindInMap":["LatestNodeRuntimeMap",{"Ref":"AWS::Region"},"value"]},"timeout":900}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.190.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.190.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","logGroup":"*","vpc":"*","vpcSubnets":"*","securityGroups":"*","role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"2.190.0"}},"SecretRetrieverCustomResource":{"id":"SecretRetrieverCustomResource","path":"IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieverCustomResource","children":{"Default":{"id":"Default","path":"IntegTestStackAl2023/IntegVSCodeServer/SecretRetrieverCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.190.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.190.0","metadata":["*","*","*","*"]}},"vpc":{"id":"vpc","path":"IntegTestStackAl2023/IntegVSCodeServer/vpc","children":{"Resource":{"id":"Resource","path":"IntegTestStackAl2023/IntegVSCodeServer/vpc/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"10.0.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"app","value":"vscode-server"},{"key":"Environement","value":"IntegTestAl2023"},{"key":"IntegTest","value":"True"},{"key":"Name","value":"IntegTestStackAl2023/IntegVSCodeServer/vpc"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.190.0"}},"publicSubnet1":{"id":"publicSubnet1","path":"IntegTestStackAl2023/IntegVSCodeServer/vpc/publicSubnet1","children":{"Subnet":{"id":"Subnet","path":"IntegTestStackAl2023/IntegVSCodeServer/vpc/publicSubnet1/Subnet","attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.0.0/17","mapPublicIpOnLaunch":true,"tags":[{"key":"app","value":"vscode-server"},{"key":"aws-cdk:subnet-name","value":"public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Environement","value":"IntegTestAl2023"},{"key":"IntegTest","value":"True"},{"key":"Name","value":"IntegTestStackAl2023/IntegVSCodeServer/vpc/publicSubnet1"}],"vpcId":{"Ref":"IntegVSCodeServervpc93DDE887"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.190.0"}},"Acl":{"id":"Acl","path":"IntegTestStackAl2023/IntegVSCodeServer/vpc/publicSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.190.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"IntegTestStackAl2023/IntegVSCodeServer/vpc/publicSubnet1/RouteTable","attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"app","value":"vscode-server"},{"key":"Environement","value":"IntegTestAl2023"},{"key":"IntegTest","value":"True"},{"key":"Name","value":"IntegTestStackAl2023/IntegVSCodeServer/vpc/publicSubnet1"}],"vpcId":{"Ref":"IntegVSCodeServervpc93DDE887"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.190.0"}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"IntegTestStackAl2023/IntegVSCodeServer/vpc/publicSubnet1/RouteTableAssociation","attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"IntegVSCodeServervpcpublicSubnet1RouteTableFD418D0B"},"subnetId":{"Ref":"IntegVSCodeServervpcpublicSubnet1Subnet928029A1"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.190.0"}},"DefaultRoute":{"id":"DefaultRoute","path":"IntegTestStackAl2023/IntegVSCodeServer/vpc/publicSubnet1/DefaultRoute","attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"IntegVSCodeServervpcIGW960F6D83"},"routeTableId":{"Ref":"IntegVSCodeServervpcpublicSubnet1RouteTableFD418D0B"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.190.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.190.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]}},"publicSubnet2":{"id":"publicSubnet2","path":"IntegTestStackAl2023/IntegVSCodeServer/vpc/publicSubnet2","children":{"Subnet":{"id":"Subnet","path":"IntegTestStackAl2023/IntegVSCodeServer/vpc/publicSubnet2/Subnet","attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"10.0.128.0/17","mapPublicIpOnLaunch":true,"tags":[{"key":"app","value":"vscode-server"},{"key":"aws-cdk:subnet-name","value":"public"},{"key":"aws-cdk:subnet-type","value":"Public"},{"key":"Environement","value":"IntegTestAl2023"},{"key":"IntegTest","value":"True"},{"key":"Name","value":"IntegTestStackAl2023/IntegVSCodeServer/vpc/publicSubnet2"}],"vpcId":{"Ref":"IntegVSCodeServervpc93DDE887"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.190.0"}},"Acl":{"id":"Acl","path":"IntegTestStackAl2023/IntegVSCodeServer/vpc/publicSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.190.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"IntegTestStackAl2023/IntegVSCodeServer/vpc/publicSubnet2/RouteTable","attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"app","value":"vscode-server"},{"key":"Environement","value":"IntegTestAl2023"},{"key":"IntegTest","value":"True"},{"key":"Name","value":"IntegTestStackAl2023/IntegVSCodeServer/vpc/publicSubnet2"}],"vpcId":{"Ref":"IntegVSCodeServervpc93DDE887"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.190.0"}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"IntegTestStackAl2023/IntegVSCodeServer/vpc/publicSubnet2/RouteTableAssociation","attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"IntegVSCodeServervpcpublicSubnet2RouteTableC264EFB4"},"subnetId":{"Ref":"IntegVSCodeServervpcpublicSubnet2SubnetE381654D"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.190.0"}},"DefaultRoute":{"id":"DefaultRoute","path":"IntegTestStackAl2023/IntegVSCodeServer/vpc/publicSubnet2/DefaultRoute","attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Route","aws:cdk:cloudformation:props":{"destinationCidrBlock":"0.0.0.0/0","gatewayId":{"Ref":"IntegVSCodeServervpcIGW960F6D83"},"routeTableId":{"Ref":"IntegVSCodeServervpcpublicSubnet2RouteTableC264EFB4"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRoute","version":"2.190.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PublicSubnet","version":"2.190.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":true,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{}]}},"IGW":{"id":"IGW","path":"IntegTestStackAl2023/IntegVSCodeServer/vpc/IGW","attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::InternetGateway","aws:cdk:cloudformation:props":{"tags":[{"key":"app","value":"vscode-server"},{"key":"Environement","value":"IntegTestAl2023"},{"key":"IntegTest","value":"True"},{"key":"Name","value":"IntegTestStackAl2023/IntegVSCodeServer/vpc"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInternetGateway","version":"2.190.0"}},"VPCGW":{"id":"VPCGW","path":"IntegTestStackAl2023/IntegVSCodeServer/vpc/VPCGW","attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPCGatewayAttachment","aws:cdk:cloudformation:props":{"internetGatewayId":{"Ref":"IntegVSCodeServervpcIGW960F6D83"},"vpcId":{"Ref":"IntegVSCodeServervpc93DDE887"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment","version":"2.190.0"}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"IntegTestStackAl2023/IntegVSCodeServer/vpc/RestrictDefaultSecurityGroupCustomResource","children":{"Default":{"id":"Default","path":"IntegTestStackAl2023/IntegVSCodeServer/vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.190.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.190.0","metadata":["*"]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.190.0","metadata":[{"maxAzs":"*","createInternetGateway":true,"subnetConfiguration":[{"name":"*","subnetType":"Public"}],"enableDnsHostnames":true,"enableDnsSupport":true}]}},"cf-to-server-sg":{"id":"cf-to-server-sg","path":"IntegTestStackAl2023/IntegVSCodeServer/cf-to-server-sg","children":{"Resource":{"id":"Resource","path":"IntegTestStackAl2023/IntegVSCodeServer/cf-to-server-sg/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"SG for VSCodeServer - only allow CloudFront ingress","groupName":"cloudfront-to-vscode-server","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"tags":[{"key":"app","value":"vscode-server"},{"key":"Environement","value":"IntegTestAl2023"},{"key":"IntegTest","value":"True"}],"vpcId":{"Ref":"IntegVSCodeServervpc93DDE887"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.190.0"}},"from {IndirectPeer}:80":{"id":"from {IndirectPeer}:80","path":"IntegTestStackAl2023/IntegVSCodeServer/cf-to-server-sg/from {IndirectPeer}:80","attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"Allow HTTP from com.amazonaws.global.cloudfront.origin-facing","fromPort":80,"groupId":{"Fn::GetAtt":["IntegVSCodeServercftoserversgFFE586B0","GroupId"]},"ipProtocol":"tcp","sourcePrefixListId":{"Fn::GetAtt":["IntegVSCodeServercfprefixlistIdGetPrefixListIdF0821FFC","PrefixLists.0.PrefixListId"]},"toPort":80}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"2.190.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.190.0","metadata":[{"vpc":"*","description":"*","securityGroupName":"*"},{"addIngressRule":[{"canInlineRule":false,"connections":"*","uniqueId":"*"},{},"*"]}]}},"cf-prefixlistId":{"id":"cf-prefixlistId","path":"IntegTestStackAl2023/IntegVSCodeServer/cf-prefixlistId","children":{"GetPrefixListIdLogGroup":{"id":"GetPrefixListIdLogGroup","path":"IntegTestStackAl2023/IntegVSCodeServer/cf-prefixlistId/GetPrefixListIdLogGroup","children":{"Resource":{"id":"Resource","path":"IntegTestStackAl2023/IntegVSCodeServer/cf-prefixlistId/GetPrefixListIdLogGroup/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":1,"tags":[{"key":"app","value":"vscode-server"},{"key":"Environement","value":"IntegTestAl2023"},{"key":"IntegTest","value":"True"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.190.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.190.0","metadata":[{"removalPolicy":"destroy","retention":1}]}},"GetPrefixListIdRole":{"id":"GetPrefixListIdRole","path":"IntegTestStackAl2023/IntegVSCodeServer/cf-prefixlistId/GetPrefixListIdRole","children":{"ImportGetPrefixListIdRole":{"id":"ImportGetPrefixListIdRole","path":"IntegTestStackAl2023/IntegVSCodeServer/cf-prefixlistId/GetPrefixListIdRole/ImportGetPrefixListIdRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.190.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"IntegTestStackAl2023/IntegVSCodeServer/cf-prefixlistId/GetPrefixListIdRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.190.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.190.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"attachInlinePolicy":["*"]}]}},"GetPrefixListId":{"id":"GetPrefixListId","path":"IntegTestStackAl2023/IntegVSCodeServer/cf-prefixlistId/GetPrefixListId","children":{"Provider":{"id":"Provider","path":"IntegTestStackAl2023/IntegVSCodeServer/cf-prefixlistId/GetPrefixListId/Provider","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.SingletonFunction","version":"2.190.0","metadata":[{"uuid":"*","lambdaPurpose":"*","memorySize":"*","timeout":"*","role":"*","logGroup":"*","functionName":"*","vpc":"*","vpcSubnets":"*","code":"*","handler":"*","runtime":"*"},{"addMetadata":["*",true]},{"addMetadata":["*","*"]}]}},"Resource":{"id":"Resource","path":"IntegTestStackAl2023/IntegVSCodeServer/cf-prefixlistId/GetPrefixListId/Resource","children":{"Default":{"id":"Default","path":"IntegTestStackAl2023/IntegVSCodeServer/cf-prefixlistId/GetPrefixListId/Resource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.190.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.190.0","metadata":["*","*","*"]}},"CustomResourcePolicy":{"id":"CustomResourcePolicy","path":"IntegTestStackAl2023/IntegVSCodeServer/cf-prefixlistId/GetPrefixListId/CustomResourcePolicy","children":{"Resource":{"id":"Resource","path":"IntegTestStackAl2023/IntegVSCodeServer/cf-prefixlistId/GetPrefixListId/CustomResourcePolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"ec2:DescribeManagedPrefixLists","Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"IntegVSCodeServercfprefixlistIdGetPrefixListIdCustomResourcePolicyAB3F4958","roles":[{"Ref":"IntegVSCodeServercfprefixlistIdGetPrefixListIdRole1302B3E1"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.190.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.190.0","metadata":[{"statements":"*"},{"addStatements":[{}]},{"attachToRole":["*"]},{"attachToRole":["*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.custom_resources.AwsCustomResource","version":"2.190.0"}},"PrefixList":{"id":"PrefixList","path":"IntegTestStackAl2023/IntegVSCodeServer/cf-prefixlistId/PrefixList","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.190.0","metadata":[]}}},"constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"server-instance-role":{"id":"server-instance-role","path":"IntegTestStackAl2023/IntegVSCodeServer/server-instance-role","children":{"Importserver-instance-role":{"id":"Importserver-instance-role","path":"IntegTestStackAl2023/IntegVSCodeServer/server-instance-role/Importserver-instance-role","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.190.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"IntegTestStackAl2023/IntegVSCodeServer/server-instance-role/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":["ec2.amazonaws.com","ssm.amazonaws.com"]}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonSSMManagedInstanceCore"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/CloudWatchAgentServerPolicy"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/AmazonQDeveloperAccess"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/ReadOnlyAccess"]]}],"policies":[{"policyName":"VSCodeInstanceInlinePolicy","policyDocument":{"Statement":[{"Action":["iam:AddRoleToInstanceProfile","iam:AttachRolePolicy","iam:CreateRole","iam:CreateServiceLinkedRole","iam:DeleteRole","iam:DeleteRolePermissionsBoundary","iam:DeleteRolePolicy","iam:DeleteServiceLinkedRole","iam:DetachRolePolicy","iam:GetRole","iam:GetRolePolicy","iam:GetServiceLinkedRoleDeletionStatus","iam:ListAttachedRolePolicies","iam:ListInstanceProfilesForRole","iam:ListRolePolicies","iam:ListRoleTags","iam:ListRoles","iam:PutRolePermissionsBoundary","iam:PutRolePolicy","iam:RemoveRoleFromInstanceProfile","iam:TagRole","iam:UntagRole","iam:UpdateAssumeRolePolicy","iam:UpdateRole","iam:UpdateRoleDescription","sts:AssumeRole"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:aws:iam::",{"Ref":"AWS::AccountId"},":role/cdk-*"]]},"Sid":"StsAccess"},{"Action":"iam:PassRole","Condition":{"StringLike":{"iam:PassedToService":"cloudformation.amazonaws.com"}},"Effect":"Allow","Resource":{"Fn::Join":["",["arn:aws:iam::",{"Ref":"AWS::AccountId"},":role/cdk-*"]]}},{"Action":"cloudformation:*","Effect":"Allow","Resource":{"Fn::Join":["",["arn:aws:cloudformation:*:",{"Ref":"AWS::AccountId"},":stack/CDKToolkit/*"]]}},{"Action":["cloudformation:CreateChangeSet","cloudformation:DeleteChangeSet","cloudformation:ExecuteChangeSet","ec2:DescribeInstances","ec2:DescribeVolumesModifications*","ec2:ModifyVolume"],"Effect":"Allow","Resource":"*"},{"Action":"s3:*","Effect":"Allow","Resource":"*","Sid":"S3Access"},{"Action":["ecr:CreateRepository","ecr:DeleteRepository","ecr:DescribeRepositories","ecr:GetLifecyclePolicy","ecr:PutImageScanningConfiguration","ecr:PutLifecyclePolicy","ecr:SetRepositoryPolicy"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:aws:ecr:*:",{"Ref":"AWS::AccountId"},":repository/cdk-*"]]},"Sid":"ECRAccess"},{"Action":["ssm:DeleteParameter*","ssm:GetParameter*","ssm:PutParameter*"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:aws:ssm:*:",{"Ref":"AWS::AccountId"},":parameter/cdk-bootstrap/*"]]}},{"Action":["codepipeline:DisableStageTransition","codepipeline:EnableStageTransition","codepipeline:StartPipelineExecution","codepipeline:StopPipelineExecution","codepipeline:UpdatePipeline"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:aws:codepipeline:*:",{"Ref":"AWS::AccountId"},":*/*"]]}},{"Action":"kms:Decrypt","Effect":"Allow","Resource":{"Fn::Join":["",["arn:aws:kms:*:",{"Ref":"AWS::AccountId"},":key/*"]]}}],"Version":"2012-10-17"}}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.190.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.190.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"inlinePolicies":"*","managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"},{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]}]}},"server-instance":{"id":"server-instance","path":"IntegTestStackAl2023/IntegVSCodeServer/server-instance","children":{"InstanceProfile":{"id":"InstanceProfile","path":"IntegTestStackAl2023/IntegVSCodeServer/server-instance/InstanceProfile","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::InstanceProfile","aws:cdk:cloudformation:props":{"roles":[{"Ref":"IntegVSCodeServerserverinstancerole7745B5BB"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnInstanceProfile","version":"2.190.0"}},"Resource":{"id":"Resource","path":"IntegTestStackAl2023/IntegVSCodeServer/server-instance/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Instance","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"blockDeviceMappings":[{"deviceName":"/dev/sda1","ebs":{"encrypted":true,"deleteOnTermination":true,"volumeSize":20,"volumeType":"gp3"}}],"iamInstanceProfile":{"Ref":"IntegVSCodeServerserverinstanceInstanceProfile6130979E"},"imageId":{"Ref":"SsmParameterValueawsserviceamiamazonlinuxlatestal2023amikerneldefaultarm64C96584B6F00A464EAD1953AFF4B05118Parameter"},"instanceType":"m7g.xlarge","launchTemplate":{"launchTemplateName":"IntegTestStackAl2023IntegVSCodeServerserverinstanceLaunchTemplate52F35056","version":{"Fn::GetAtt":["IntegVSCodeServerserverinstanceLaunchTemplate43932ED3","LatestVersionNumber"]}},"monitoring":true,"networkInterfaces":[{"deviceIndex":"0","associatePublicIpAddress":true,"subnetId":{"Ref":"IntegVSCodeServervpcpublicSubnet1Subnet928029A1"},"groupSet":[{"Fn::GetAtt":["IntegVSCodeServercftoserversgFFE586B0","GroupId"]}]}],"tags":[{"key":"app","value":"vscode-server"},{"key":"Environement","value":"IntegTestAl2023"},{"key":"IntegTest","value":"True"},{"key":"Name","value":"VSCodeServer"}],"userData":{"Fn::Base64":"\n #cloud-config\n hostname: VSCodeServer\n runcmd:\n - mkdir -p /Workshop && chown -R participant:participant /Workshop\n "}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnInstance","version":"2.190.0"}},"LaunchTemplate":{"id":"LaunchTemplate","path":"IntegTestStackAl2023/IntegVSCodeServer/server-instance/LaunchTemplate","attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::LaunchTemplate","aws:cdk:cloudformation:props":{"launchTemplateData":{"metadataOptions":{"httpTokens":"required"}},"launchTemplateName":"IntegTestStackAl2023IntegVSCodeServerserverinstanceLaunchTemplate52F35056"}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnLaunchTemplate","version":"2.190.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Instance","version":"2.190.0","metadata":[{"vpc":"*","instanceName":"*","instanceType":"*","machineImage":"*","requireImdsv2":true,"vpcSubnets":{"subnetType":"Public"},"associatePublicIpAddress":true,"detailedMonitoring":true,"blockDevices":[{"deviceName":"*","volume":"*"}],"role":"*","securityGroup":"*","userData":"*"}]}},"cf-cache-policy":{"id":"cf-cache-policy","path":"IntegTestStackAl2023/IntegVSCodeServer/cf-cache-policy","children":{"Resource":{"id":"Resource","path":"IntegTestStackAl2023/IntegVSCodeServer/cf-cache-policy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudFront::CachePolicy","aws:cdk:cloudformation:props":{"cachePolicyConfig":{"name":"cf-cache-policy-vscodeserver-IntegTestStackAl2023","comment":"Cache policy for VSCodeServer","minTtl":1,"maxTtl":31536000,"defaultTtl":86400,"parametersInCacheKeyAndForwardedToOrigin":{"cookiesConfig":{"cookieBehavior":"all"},"headersConfig":{"headerBehavior":"whitelist","headers":["Accept-Charset","Authorization","Origin","Accept","Referer","Host","Accept-Language","Accept-Encoding","Accept-Datetime"]},"enableAcceptEncodingGzip":false,"enableAcceptEncodingBrotli":false,"queryStringsConfig":{"queryStringBehavior":"all"}}}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CfnCachePolicy","version":"2.190.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CachePolicy","version":"2.190.0","metadata":[{"cachePolicyName":"*","comment":"*","minTtl":"*","maxTtl":"*","defaultTtl":"*","cookieBehavior":"*","enableAcceptEncodingGzip":false,"headerBehavior":"*","queryStringBehavior":"*"}]}},"cf-distribution":{"id":"cf-distribution","path":"IntegTestStackAl2023/IntegVSCodeServer/cf-distribution","children":{"Origin1":{"id":"Origin1","path":"IntegTestStackAl2023/IntegVSCodeServer/cf-distribution/Origin1","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"Resource":{"id":"Resource","path":"IntegTestStackAl2023/IntegVSCodeServer/cf-distribution/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::CloudFront::Distribution","aws:cdk:cloudformation:props":{"distributionConfig":{"enabled":true,"origins":[{"domainName":{"Fn::GetAtt":["IntegVSCodeServerserverinstance0A3D62D7","PublicDnsName"]},"id":"Cloudfront-IntegTestStackAl2023-IntegTestStackAl2023","customOriginConfig":{"originSslProtocols":["TLSv1.2"],"originProtocolPolicy":"http-only"}}],"defaultCacheBehavior":{"pathPattern":"*","targetOriginId":"Cloudfront-IntegTestStackAl2023-IntegTestStackAl2023","allowedMethods":["GET","HEAD","OPTIONS","PUT","PATCH","POST","DELETE"],"cachePolicyId":{"Ref":"IntegVSCodeServercfcachepolicy8F5F1F69"},"compress":true,"originRequestPolicyId":"216adef6-5c7f-47e4-b989-5492eafa07d3","viewerProtocolPolicy":"allow-all"},"cacheBehaviors":[{"pathPattern":"/proxy/*","targetOriginId":"Cloudfront-IntegTestStackAl2023-IntegTestStackAl2023","allowedMethods":["GET","HEAD","OPTIONS","PUT","PATCH","POST","DELETE"],"cachePolicyId":"4135ea2d-6df8-44a3-9df3-4b5a84be39ad","compress":false,"originRequestPolicyId":"216adef6-5c7f-47e4-b989-5492eafa07d3","viewerProtocolPolicy":"allow-all"}],"comment":"Distribution for VSCodeServer","httpVersion":"http2and3","ipv6Enabled":true,"priceClass":"PriceClass_All"},"tags":[{"key":"app","value":"vscode-server"},{"key":"Environement","value":"IntegTestAl2023"},{"key":"IntegTest","value":"True"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.CfnDistribution","version":"2.190.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_cloudfront.Distribution","version":"2.190.0","metadata":[{"enabled":true,"httpVersion":"http2and3","comment":"*","priceClass":"PriceClass_All","defaultBehavior":{"allowedMethods":"*","cachePolicy":"*","originRequestPolicy":{"originRequestPolicyId":"*"},"viewerProtocolPolicy":"allow-all","origin":"*"},"additionalBehaviors":"*"},{"addBehavior":["*",{},{"allowedMethods":"*","compress":false,"cachePolicy":{"cachePolicyId":"*"},"originRequestPolicy":{"originRequestPolicyId":"*"},"viewerProtocolPolicy":"allow-all"}]}]}},"ssm-document-al2023":{"id":"ssm-document-al2023","path":"IntegTestStackAl2023/IntegVSCodeServer/ssm-document-al2023","attributes":{"aws:cdk:cloudformation:type":"AWS::SSM::Document","aws:cdk:cloudformation:props":{"content":{"schemaVersion":"2.2","description":"Bootstrap VSCode code-server instance","parameters":{"VSCodePassword":{"type":"String","default":{"Ref":"AWS::StackId"}},"NodeVersion":{"type":"String","default":"20","allowedValues":["22","20","18"]},"DotNetVersion":{"type":"String","default":"8.0","allowedValues":["8.0","7.0"]}},"mainSteps":[{"action":"aws:configurePackage","name":"InstallCloudWatchAgent","inputs":{"name":"AmazonCloudWatchAgent","action":"Install"}},{"action":"aws:runDocument","name":"ConfigureCloudWatchAgent","inputs":{"documentType":"SSMDocument","documentPath":"AmazonCloudWatch-ManageAgent","documentParameters":{"action":"configure","mode":"ec2","optionalConfigurationSource":"default","optionalRestart":"yes"}}},{"action":"aws:runShellScript","name":"InstallBasePackagesDnf","inputs":{"runCommand":["#!/bin/bash","dnf install -y --allowerasing whois argon2 unzip nginx curl gnupg openssl"]}},{"action":"aws:runShellScript","name":"AddUserDnf","inputs":{"runCommand":["#!/bin/bash","echo 'Adding user: participant'","adduser -c '' participant","passwd -l participant","echo \"participant:{{ VSCodePassword }}\" | chpasswd","usermod -aG wheel participant","echo \"User added. Checking configuration\"","getent passwd participant"]}},{"action":"aws:runShellScript","name":"InstallNodeDnf","inputs":{"runCommand":["#!/bin/bash","dnf install -y nodejs20 npm","ln -s -f /usr/bin/node-20 /usr/bin/node","npm install -g npm@latest","echo \"Node and npm installed. Checking configuration\"","node -v","npm -v"]}},{"action":"aws:runShellScript","name":"InstallDockerDnf","inputs":{"runCommand":["#!/bin/bash","dnf install -y docker","usermod -aG docker participant","systemctl restart code-server@participant.service","systemctl start docker.service","echo \"Docker installed. Checking configuration\"","docker --version","systemctl status docker.service"]}},{"action":"aws:runShellScript","name":"InstallGitDnf","inputs":{"runCommand":["#!/bin/bash","dnf install -y git","sudo -u participant git config --global user.email \"participant@example.com\"","sudo -u participant git config --global user.name \"Workshop participant\"","sudo -u participant git config --global init.defaultBranch \"main\"","echo \"Git installed. Checking configuration\"","git --version"]}},{"action":"aws:runShellScript","name":"InstallPythonDnf","inputs":{"runCommand":["#!/bin/bash","dnf install -y python3.11 python3.11-pip python3-virtualenv python3-pytest python3-boto3","echo 'alias pytest=pytest-3' >> /home/participant/.bashrc","echo 'alias python3=python3.11' >> /home/participant/.bashrc","echo 'alias pip3=pip3.11' >> /home/participant/.bashrc","echo 'alias=python3=python3.11' >> ~/.bashrc","echo 'alias pip3=pip3.11' >> ~/.bashrc","python3.11 -m pip install --upgrade pip 2>&1","echo \"Python and Pip installed. Checking configuration\"","python3.11 --version","python3.11 -m pip --version 2>&1"]}},{"action":"aws:runShellScript","name":"InstallAWSCLI","inputs":{"runCommand":["#!/bin/bash","curl -fsSL https://awscli.amazonaws.com/awscli-exe-linux-$(uname -m).zip -o /tmp/aws-cli.zip","unzip -q -d /tmp /tmp/aws-cli.zip","sudo /tmp/aws/install","rm -rf /tmp/aws","echo \"AWS CLI installed. Checking configuration\"","aws --version"]}},{"action":"aws:runShellScript","name":"ConfigureCodeServer","inputs":{"runCommand":["#!/bin/bash","export HOME=/home/participant","curl -fsSL https://code-server.dev/install.sh | bash -s -- 2>&1","systemctl enable --now code-server@participant 2>&1","tee /etc/nginx/conf.d/code-server.conf <<EOF\nserver {\n listen 80;\n listen [::]:80;\n # server_name distribution.distributionDomainName;\n server_name *.cloudfront.net;\n location / {\n proxy_pass http://localhost:8080/;\n proxy_set_header Host \\$host;\n proxy_set_header Upgrade \\$http_upgrade;\n proxy_set_header Connection upgrade;\n proxy_set_header Accept-Encoding gzip;\n }\n location /app {\n proxy_pass http://localhost:8081/app;\n proxy_set_header Host \\$host;\n proxy_set_header Upgrade \\$http_upgrade;\n proxy_set_header Connection upgrade;\n proxy_set_header Accept-Encoding gzip;\n }\n}\nEOF","mkdir -p /home/participant/.config/code-server","tee /home/participant/.config/code-server/config.yaml <<EOF\ncert: false\nauth: password\nhashed-password: \"$(echo -n {{ VSCodePassword }} | argon2 $(openssl rand -base64 12) -e)\"\nEOF","mkdir -p /home/participant/.local/share/code-server/User/","touch /home/participant/.hushlogin","mkdir -p /Workshop && chown -R participant:participant /Workshop","tee /home/participant/.local/share/code-server/User/settings.json <<EOF\n{\n \"extensions.autoUpdate\": false,\n \"extensions.autoCheckUpdates\": false,\n \"telemetry.telemetryLevel\": \"off\",\n \"security.workspace.trust.startupPrompt\": \"never\",\n \"security.workspace.trust.enabled\": false,\n \"security.workspace.trust.banner\": \"never\",\n \"security.workspace.trust.emptyWindow\": false,\n \"python.testing.pytestEnabled\": true,\n \"auto-run-command.rules\": [\n {\n \"command\": \"workbench.action.terminal.new\"\n }\n ]\n}\nEOF","chown -R participant:participant /home/participant","systemctl restart code-server@participant","systemctl restart nginx","sudo -u participant --login code-server --install-extension AmazonWebServices.aws-toolkit-vscode --force","sudo -u participant --login code-server --install-extension AmazonWebServices.amazon-q-vscode --force","sudo -u participant --login code-server --install-extension synedra.auto-run-command --force","sudo -u participant --login code-server --install-extension vscjava.vscode-java-pack --force","sudo -u participant --login code-server --install-extension ms-vscode.live-server --force","chown -R participant:participant /home/participant","echo \"Nginx installed. Checking configuration\"","nginx -t 2>&1","systemctl status nginx","echo \"CodeServer installed. Checking configuration\"","code-server -v","systemctl status code-server@participant"]}},{"action":"aws:runShellScript","name":"UpdateProfile","inputs":{"runCommand":["#!/bin/bash","echo LANG=en_US.utf-8 >> /etc/environment","echo LC_ALL=en_US.UTF-8 >> /etc/environment","echo 'PATH=$PATH:/home/participant/.local/bin' >> /home/participant/.bashrc","echo 'export PATH' >> /home/participant/.bashrc",{"Fn::Join":["",["echo 'export AWS_REGION=",{"Ref":"AWS::Region"},"' >> /home/participant/.bashrc"]]},{"Fn::Join":["",["echo 'export AWS_ACCOUNTID=",{"Ref":"AWS::AccountId"},"' >> /home/participant/.bashrc"]]},"echo 'export NEXT_TELEMETRY_DISABLED=1' >> /home/participant/.bashrc","echo \"export PS1='\\[\\033[01;32m\\]\\u:\\[\\033[01;34m\\]\\w\\[\\033[00m\\]\\$ '\" >> /home/participant/.bashrc","chown -R participant:participant /home/participant"]}},{"action":"aws:runShellScript","name":"InstallCDK","inputs":{"runCommand":["#!/bin/bash","npm install -g aws-cdk","echo \"AWS CDK installed. Checking configuration\"","cdk --version"]}}]},"documentType":"Command","name":"vscode-server-al2023-IntegTestStackAl2023","tags":[{"key":"app","value":"vscode-server"},{"key":"Environement","value":"IntegTestAl2023"},{"key":"IntegTest","value":"True"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_ssm.CfnDocument","version":"2.190.0"}},"InstallerOnEventHandler":{"id":"InstallerOnEventHandler","path":"IntegTestStackAl2023/IntegVSCodeServer/InstallerOnEventHandler","children":{"ServiceRole":{"id":"ServiceRole","path":"IntegTestStackAl2023/IntegVSCodeServer/InstallerOnEventHandler/ServiceRole","children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"IntegTestStackAl2023/IntegVSCodeServer/InstallerOnEventHandler/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.190.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"IntegTestStackAl2023/IntegVSCodeServer/InstallerOnEventHandler/ServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.190.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"IntegTestStackAl2023/IntegVSCodeServer/InstallerOnEventHandler/ServiceRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"IntegTestStackAl2023/IntegVSCodeServer/InstallerOnEventHandler/ServiceRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["ssm:GetCommandInvocation","ssm:ListCommandInvocations","ssm:SendCommand"],"Effect":"Allow","Resource":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ec2:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":instance/",{"Ref":"IntegVSCodeServerserverinstance0A3D62D7"}]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":document/AmazonCloudWatch-ManageAgent"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":document/vscode-server-al2023-IntegTestStackAl2023"]]}]}],"Version":"2012-10-17"},"policyName":"IntegVSCodeServerInstallerOnEventHandlerServiceRoleDefaultPolicy1CAD86C2","roles":[{"Ref":"IntegVSCodeServerInstallerOnEventHandlerServiceRole59651FEF"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.190.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.190.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.190.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"Code":{"id":"Code","path":"IntegTestStackAl2023/IntegVSCodeServer/InstallerOnEventHandler/Code","children":{"Stage":{"id":"Stage","path":"IntegTestStackAl2023/IntegVSCodeServer/InstallerOnEventHandler/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.190.0"}},"AssetBucket":{"id":"AssetBucket","path":"IntegTestStackAl2023/IntegVSCodeServer/InstallerOnEventHandler/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.190.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.190.0"}},"Resource":{"id":"Resource","path":"IntegTestStackAl2023/IntegVSCodeServer/InstallerOnEventHandler/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"33da23274e25bd9f43638c5d83dad26e3931cbe78d462ffd9a9f565e948b4f5f.zip"},"description":"src/installer/installer.lambda.ts","handler":"index.handler","memorySize":512,"role":{"Fn::GetAtt":["IntegVSCodeServerInstallerOnEventHandlerServiceRole59651FEF","Arn"]},"runtime":"nodejs20.x","timeout":300}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.190.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.190.0","metadata":[{"description":"*","timeout":"*","memorySize":"*","runtime":"*","handler":"*","code":"*"}]}},"InstallerProvider":{"id":"InstallerProvider","path":"IntegTestStackAl2023/IntegVSCodeServer/InstallerProvider","children":{"framework-onEvent":{"id":"framework-onEvent","path":"IntegTestStackAl2023/IntegVSCodeServer/InstallerProvider/framework-onEvent","children":{"ServiceRole":{"id":"ServiceRole","path":"IntegTestStackAl2023/IntegVSCodeServer/InstallerProvider/framework-onEvent/ServiceRole","children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"IntegTestStackAl2023/IntegVSCodeServer/InstallerProvider/framework-onEvent/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.190.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"IntegTestStackAl2023/IntegVSCodeServer/InstallerProvider/framework-onEvent/ServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.190.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"IntegTestStackAl2023/IntegVSCodeServer/InstallerProvider/framework-onEvent/ServiceRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"IntegTestStackAl2023/IntegVSCodeServer/InstallerProvider/framework-onEvent/ServiceRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["IntegVSCodeServerInstallerOnEventHandler6FF91542","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["IntegVSCodeServerInstallerOnEventHandler6FF91542","Arn"]},":*"]]}]},{"Action":"lambda:GetFunction","Effect":"Allow","Resource":{"Fn::GetAtt":["IntegVSCodeServerInstallerOnEventHandler6FF91542","Arn"]}}],"Version":"2012-10-17"},"policyName":"IntegVSCodeServerInstallerProviderframeworkonEventServiceRoleDefaultPolicy3E54FC3A","roles":[{"Ref":"IntegVSCodeServerInstallerProviderframeworkonEventServiceRoleA509851F"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.190.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.190.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.190.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]}},"Code":{"id":"Code","path":"IntegTestStackAl2023/IntegVSCodeServer/InstallerProvider/framework-onEvent/Code","children":{"Stage":{"id":"Stage","path":"IntegTestStackAl2023/IntegVSCodeServer/InstallerProvider/framework-onEvent/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.190.0"}},"AssetBucket":{"id":"AssetBucket","path":"IntegTestStackAl2023/IntegVSCodeServer/InstallerProvider/framework-onEvent/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.190.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.190.0"}},"Resource":{"id":"Resource","path":"IntegTestStackAl2023/IntegVSCodeServer/InstallerProvider/framework-onEvent/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca.zip"},"description":"AWS CDK resource provider framework - onEvent (IntegTestStackAl2023/IntegVSCodeServer/InstallerProvider)","environment":{"variables":{"USER_ON_EVENT_FUNCTION_ARN":{"Fn::GetAtt":["IntegVSCodeServerInstallerOnEventHandler6FF91542","Arn"]}}},"handler":"framework.onEvent","role":{"Fn::GetAtt":["IntegVSCodeServerInstallerProviderframeworkonEventServiceRoleA509851F","Arn"]},"runtime":{"Fn::FindInMap":["LatestNodeRuntimeMap",{"Ref":"AWS::Region"},"value"]},"timeout":900}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.190.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.190.0","metadata":[{"code":"*","description":"*","runtime":"*","handler":"*","timeout":"*","logGroup":"*","vpc":"*","vpcSubnets":"*","securityGroups":"*","role":"*","functionName":"*","environmentEncryption":"*"},{"addEnvironment":["*","*"]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.custom_resources.Provider","version":"2.190.0"}},"SSMInstallerCustomResource":{"id":"SSMInstallerCustomResource","path":"IntegTestStackAl2023/IntegVSCodeServer/SSMInstallerCustomResource","children":{"Default":{"id":"Default","path":"IntegTestStackAl2023/IntegVSCodeServer/SSMInstallerCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.190.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.190.0","metadata":["*"]}},"domainName":{"id":"domainName","path":"IntegTestStackAl2023/IntegVSCodeServer/domainName","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.190.0"}},"password":{"id":"password","path":"IntegTestStackAl2023/IntegVSCodeServer/password","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.190.0"}}},"constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"LatestNodeRuntimeMap":{"id":"LatestNodeRuntimeMap","path":"IntegTestStackAl2023/LatestNodeRuntimeMap","constructInfo":{"fqn":"aws-cdk-lib.CfnMapping","version":"2.190.0"}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"IntegTestStackAl2023/Custom::VpcRestrictDefaultSGCustomResourceProvider","children":{"Staging":{"id":"Staging","path":"IntegTestStackAl2023/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.190.0"}},"Role":{"id":"Role","path":"IntegTestStackAl2023/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.190.0"}},"Handler":{"id":"Handler","path":"IntegTestStackAl2023/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.190.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.190.0"}},"AWS679f53fac002430cb0da5b7982bd2287":{"id":"AWS679f53fac002430cb0da5b7982bd2287","path":"IntegTestStackAl2023/AWS679f53fac002430cb0da5b7982bd2287","children":{"Code":{"id":"Code","path":"IntegTestStackAl2023/AWS679f53fac002430cb0da5b7982bd2287/Code","children":{"Stage":{"id":"Stage","path":"IntegTestStackAl2023/AWS679f53fac002430cb0da5b7982bd2287/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.190.0"}},"AssetBucket":{"id":"AssetBucket","path":"IntegTestStackAl2023/AWS679f53fac002430cb0da5b7982bd2287/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.190.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.190.0"}},"Resource":{"id":"Resource","path":"IntegTestStackAl2023/AWS679f53fac002430cb0da5b7982bd2287/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"9d043014be736e8162bcc7ec5590cc6d2ff24fd0d9c73a5c5d595151c5fdad00.zip"},"handler":"index.handler","loggingConfig":{"logGroup":{"Ref":"IntegVSCodeServercfprefixlistIdGetPrefixListIdLogGroup171C2803"}},"role":{"Fn::GetAtt":["IntegVSCodeServercfprefixlistIdGetPrefixListIdRole1302B3E1","Arn"]},"runtime":{"Fn::FindInMap":["LatestNodeRuntimeMap",{"Ref":"AWS::Region"},"value"]},"timeout":120}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.190.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.190.0","metadata":[{"memorySize":"*","timeout":"*","role":"*","logGroup":"*","functionName":"*","vpc":"*","vpcSubnets":"*","code":"*","handler":"*","runtime":"*"}]}},"SsmParameterValue:--aws--service--ami-amazon-linux-latest--al2023-ami-kernel-default-arm64:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter":{"id":"SsmParameterValue:--aws--service--ami-amazon-linux-latest--al2023-ami-kernel-default-arm64:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter","path":"IntegTestStackAl2023/SsmParameterValue:--aws--service--ami-amazon-linux-latest--al2023-ami-kernel-default-arm64:C96584B6-F00A-464E-AD19-53AFF4B05118.Parameter","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.190.0"}},"SsmParameterValue:--aws--service--ami-amazon-linux-latest--al2023-ami-kernel-default-arm64:C96584B6-F00A-464E-AD19-53AFF4B05118":{"id":"SsmParameterValue:--aws--service--ami-amazon-linux-latest--al2023-ami-kernel-default-arm64:C96584B6-F00A-464E-AD19-53AFF4B05118","path":"IntegTestStackAl2023/SsmParameterValue:--aws--service--ami-amazon-linux-latest--al2023-ami-kernel-default-arm64:C96584B6-F00A-464E-AD19-53AFF4B05118","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.190.0","metadata":[]}},"login-handler":{"id":"login-handler","path":"IntegTestStackAl2023/login-handler","children":{"ServiceRole":{"id":"ServiceRole","path":"IntegTestStackAl2023/login-handler/ServiceRole","children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"IntegTestStackAl2023/login-handler/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.190.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"IntegTestStackAl2023/login-handler/ServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.190.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.190.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]}]}},"Code":{"id":"Code","path":"IntegTestStackAl2023/login-handler/Code","children":{"Stage":{"id":"Stage","path":"IntegTestStackAl2023/login-handler/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.190.0"}},"AssetBucket":{"id":"AssetBucket","path":"IntegTestStackAl2023/login-handler/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.190.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.190.0"}},"Resource":{"id":"Resource","path":"IntegTestStackAl2023/login-handler/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"0ad50fc42afd768c3d0bfdd4701e43284fb077a25f19eea1e8c51a5ca36ebfe4.zip"},"handler":"index.handler","role":{"Fn::GetAtt":["loginhandlerServiceRole330B0B32","Arn"]},"runtime":"nodejs20.x","timeout":30}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.190.0"}},"LogRetention":{"id":"LogRetention","path":"IntegTestStackAl2023/login-handler/LogRetention","children":{"Resource":{"id":"Resource","path":"IntegTestStackAl2023/login-handler/LogRetention/Resource","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.190.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogRetention","version":"2.190.0"}},"LogGroup":{"id":"LogGroup","path":"IntegTestStackAl2023/login-handler/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.190.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_lambda_nodejs.NodejsFunction","version":"2.190.0","metadata":[{"functionName":"*","entry":"*","runtime":"*","logRetention":1,"timeout":"*","bundling":{"esbuildArgs":"*"},"code":"*","handler":"*"},{"functionName":"*","entry":"*","runtime":"*","logRetention":1,"timeout":"*","bundling":{"esbuildArgs":"*"}}]}},"LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a":{"id":"LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a","path":"IntegTestStackAl2023/LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a","children":{"Code":{"id":"Code","path":"IntegTestStackAl2023/LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a/Code","children":{"Stage":{"id":"Stage","path":"IntegTestStackAl2023/LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.190.0"}},"AssetBucket":{"id":"AssetBucket","path":"IntegTestStackAl2023/LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.190.0","metadata":[]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.190.0"}},"ServiceRole":{"id":"ServiceRole","path":"IntegTestStackAl2023/LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a/ServiceRole","children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"IntegTestStackAl2023/LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.190.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"IntegTestStackAl2023/LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a/ServiceRole/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.190.0"}},"DefaultPolicy":{"id":"DefaultPolicy","path":"IntegTestStackAl2023/LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a/ServiceRole/DefaultPolicy","children":{"Resource":{"id":"Resource","path":"IntegTestStackAl2023/LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a/ServiceRole/DefaultPolicy/Resource","attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:DeleteRetentionPolicy","logs:PutRetentionPolicy"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"policyName":"LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB","roles":[{"Ref":"LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB"}]}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.190.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.190.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]}}},"constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.190.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"}]},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]}},"Resource":{"id":"Resource","path":"IntegTestStackAl2023/LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a/Resource","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.190.0"}}},"constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"Exports":{"id":"Exports","path":"IntegTestStackAl2023/Exports","children":{"Output{\"Ref\":\"loginhandler99CCCCFD\"}":{"id":"Output{\"Ref\":\"loginhandler99CCCCFD\"}","path":"IntegTestStackAl2023/Exports/Output{\"Ref\":\"loginhandler99CCCCFD\"}","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.190.0"}},"Output{\"Fn::GetAtt\":[\"IntegVSCodeServercfdistributionFDBE873F\",\"DomainName\"]}":{"id":"Output{\"Fn::GetAtt\":[\"IntegVSCodeServercfdistributionFDBE873F\",\"DomainName\"]}","path":"IntegTestStackAl2023/Exports/Output{\"Fn::GetAtt\":[\"IntegVSCodeServercfdistributionFDBE873F\",\"DomainName\"]}","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.190.0"}},"Output{\"Fn::GetAtt\":[\"IntegVSCodeServerSecretRetrieverCustomResource2F3DB8BD\",\"secretPasswordValue\"]}":{"id":"Output{\"Fn::GetAtt\":[\"IntegVSCodeServerSecretRetrieverCustomResource2F3DB8BD\",\"secretPasswordValue\"]}","path":"IntegTestStackAl2023/Exports/Output{\"Fn::GetAtt\":[\"IntegVSCodeServerSecretRetrieverCustomResource2F3DB8BD\",\"secretPasswordValue\"]}","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.190.0"}}},"constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"IntegTestStackAl2023/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.190.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"IntegTestStackAl2023/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.190.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.190.0"}},"IntegSetupVSCodeOnAl2023":{"id":"IntegSetupVSCodeOnAl2023","path":"IntegSetupVSCodeOnAl2023","children":{"DefaultTest":{"id":"DefaultTest","path":"IntegSetupVSCodeOnAl2023/DefaultTest","children":{"Default":{"id":"Default","path":"IntegSetupVSCodeOnAl2023/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"IntegSetupVSCodeOnAl2023/DefaultTest/DeployAssert","children":{"LambdaInvoke493987f824f978002013a8ed7c9980f4":{"id":"LambdaInvoke493987f824f978002013a8ed7c9980f4","path":"IntegSetupVSCodeOnAl2023/DefaultTest/DeployAssert/LambdaInvoke493987f824f978002013a8ed7c9980f4","children":{"SdkProvider":{"id":"SdkProvider","path":"IntegSetupVSCodeOnAl2023/DefaultTest/DeployAssert/LambdaInvoke493987f824f978002013a8ed7c9980f4/SdkProvider","children":{"AssertionsProvider":{"id":"AssertionsProvider","path":"IntegSetupVSCodeOnAl2023/DefaultTest/DeployAssert/LambdaInvoke493987f824f978002013a8ed7c9980f4/SdkProvider/AssertionsProvider","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.AssertionsProvider","version":"2.190.0-alpha.0"}},"Default":{"id":"Default","path":"IntegSetupVSCodeOnAl2023/DefaultTest/DeployAssert/LambdaInvoke493987f824f978002013a8ed7c9980f4/Default","children":{"Default":{"id":"Default","path":"IntegSetupVSCodeOnAl2023/DefaultTest/DeployAssert/LambdaInvoke493987f824f978002013a8ed7c9980f4/Default/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.190.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.190.0","metadata":["*","*","*"]}},"Invoke":{"id":"Invoke","path":"IntegSetupVSCodeOnAl2023/DefaultTest/DeployAssert/LambdaInvoke493987f824f978002013a8ed7c9980f4/Invoke","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.190.0"}},"AssertionResults":{"id":"AssertionResults","path":"IntegSetupVSCodeOnAl2023/DefaultTest/DeployAssert/LambdaInvoke493987f824f978002013a8ed7c9980f4/AssertionResults","constructInfo":{"fqn":"aws-cdk-lib.CfnOutput","version":"2.190.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.LambdaInvokeFunction","version":"2.190.0-alpha.0"}},"SingletonFunction1488541a7b23466481b69b4408076b81":{"id":"SingletonFunction1488541a7b23466481b69b4408076b81","path":"IntegSetupVSCodeOnAl2023/DefaultTest/DeployAssert/SingletonFunction1488541a7b23466481b69b4408076b81","children":{"Staging":{"id":"Staging","path":"IntegSetupVSCodeOnAl2023/DefaultTest/DeployAssert/SingletonFunction1488541a7b23466481b69b4408076b81/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.190.0"}},"Role":{"id":"Role","path":"IntegSetupVSCodeOnAl2023/DefaultTest/DeployAssert/SingletonFunction1488541a7b23466481b69b4408076b81/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.190.0"}},"Handler":{"id":"Handler","path":"IntegSetupVSCodeOnAl2023/DefaultTest/DeployAssert/SingletonFunction1488541a7b23466481b69b4408076b81/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.190.0"}}},"constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"LatestNodeRuntimeMap":{"id":"LatestNodeRuntimeMap","path":"IntegSetupVSCodeOnAl2023/DefaultTest/DeployAssert/LatestNodeRuntimeMap","constructInfo":{"fqn":"aws-cdk-lib.CfnMapping","version":"2.190.0"}},"BootstrapVersion":{"id":"BootstrapVersion","path":"IntegSetupVSCodeOnAl2023/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.190.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"IntegSetupVSCodeOnAl2023/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.190.0"}}},"constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.190.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.190.0-alpha.0"}}},"constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.190.0-alpha.0"}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}},"constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.190.0"}}}