@mavogel/cdk-vscode-server 0.0.55 → 0.0.57

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