@aws-solutions-constructs/aws-apigateway-lambda 2.79.1 → 2.81.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/.jsii +68 -50
  2. package/README.md +1 -0
  3. package/lib/index.d.ts +7 -0
  4. package/lib/index.js +4 -3
  5. package/package.json +6 -6
  6. package/test/integ.apilam-deployFunction.js.snapshot/apilam-deployFunction.assets.json +3 -3
  7. package/test/integ.apilam-deployFunction.js.snapshot/apilam-deployFunction.template.json +24 -35
  8. package/test/integ.apilam-deployFunction.js.snapshot/apilamdeployFunctionIntegDefaultTestDeployAssert281C111D.assets.json +1 -1
  9. package/test/integ.apilam-deployFunction.js.snapshot/cdk.out +1 -1
  10. package/test/integ.apilam-deployFunction.js.snapshot/integ.json +1 -1
  11. package/test/integ.apilam-deployFunction.js.snapshot/manifest.json +290 -6
  12. package/test/integ.apilam-deployFunction.js.snapshot/tree.json +1 -927
  13. package/test/integ.apilam-existingFunction.js.snapshot/apilam-existingFunction.assets.json +3 -3
  14. package/test/integ.apilam-existingFunction.js.snapshot/apilam-existingFunction.template.json +24 -35
  15. package/test/integ.apilam-existingFunction.js.snapshot/apilamexistingFunctionIntegDefaultTestDeployAssert4238FD03.assets.json +1 -1
  16. package/test/integ.apilam-existingFunction.js.snapshot/cdk.out +1 -1
  17. package/test/integ.apilam-existingFunction.js.snapshot/integ.json +1 -1
  18. package/test/integ.apilam-existingFunction.js.snapshot/manifest.json +290 -6
  19. package/test/integ.apilam-existingFunction.js.snapshot/tree.json +1 -927
  20. package/test/integ.apilam-no-usage-plan.d.ts +13 -0
  21. package/test/integ.apilam-no-usage-plan.js +40 -0
  22. package/test/integ.apilam-no-usage-plan.js.snapshot/apilam-no-usage-plan.assets.json +32 -0
  23. package/test/integ.apilam-no-usage-plan.js.snapshot/apilam-no-usage-plan.template.json +626 -0
  24. package/test/integ.apilam-no-usage-plan.js.snapshot/apilamnousageplanIntegDefaultTestDeployAssertFA088EA5.assets.json +19 -0
  25. package/test/integ.apilam-no-usage-plan.js.snapshot/apilamnousageplanIntegDefaultTestDeployAssertFA088EA5.template.json +36 -0
  26. package/test/integ.apilam-no-usage-plan.js.snapshot/asset.0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f/index.js +21 -0
  27. package/test/integ.apilam-no-usage-plan.js.snapshot/cdk.out +1 -0
  28. package/test/integ.apilam-no-usage-plan.js.snapshot/integ.json +12 -0
  29. package/test/integ.apilam-no-usage-plan.js.snapshot/manifest.json +481 -0
  30. package/test/integ.apilam-no-usage-plan.js.snapshot/tree.json +1 -0
  31. package/test/test.apigateway-lambda.test.js +40 -1
@@ -0,0 +1,626 @@
1
+ {
2
+ "Description": "Integration Test for aws-apigateway-lambda",
3
+ "Resources": {
4
+ "testapigatewaylambdaLambdaFunctionServiceRole5CD2E9F7": {
5
+ "Type": "AWS::IAM::Role",
6
+ "Properties": {
7
+ "AssumeRolePolicyDocument": {
8
+ "Statement": [
9
+ {
10
+ "Action": "sts:AssumeRole",
11
+ "Effect": "Allow",
12
+ "Principal": {
13
+ "Service": "lambda.amazonaws.com"
14
+ }
15
+ }
16
+ ],
17
+ "Version": "2012-10-17"
18
+ },
19
+ "Policies": [
20
+ {
21
+ "PolicyDocument": {
22
+ "Statement": [
23
+ {
24
+ "Action": [
25
+ "logs:CreateLogGroup",
26
+ "logs:CreateLogStream",
27
+ "logs:PutLogEvents"
28
+ ],
29
+ "Effect": "Allow",
30
+ "Resource": {
31
+ "Fn::Join": [
32
+ "",
33
+ [
34
+ "arn:",
35
+ {
36
+ "Ref": "AWS::Partition"
37
+ },
38
+ ":logs:",
39
+ {
40
+ "Ref": "AWS::Region"
41
+ },
42
+ ":",
43
+ {
44
+ "Ref": "AWS::AccountId"
45
+ },
46
+ ":log-group:/aws/lambda/*"
47
+ ]
48
+ ]
49
+ }
50
+ }
51
+ ],
52
+ "Version": "2012-10-17"
53
+ },
54
+ "PolicyName": "LambdaFunctionServiceRolePolicy"
55
+ }
56
+ ]
57
+ },
58
+ "Metadata": {
59
+ "guard": {
60
+ "SuppressedRules": [
61
+ "IAM_NO_INLINE_POLICY_CHECK"
62
+ ]
63
+ }
64
+ }
65
+ },
66
+ "testapigatewaylambdaLambdaFunction18FF222F": {
67
+ "Type": "AWS::Lambda::Function",
68
+ "Properties": {
69
+ "Code": {
70
+ "S3Bucket": {
71
+ "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
72
+ },
73
+ "S3Key": "0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip"
74
+ },
75
+ "Environment": {
76
+ "Variables": {
77
+ "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1"
78
+ }
79
+ },
80
+ "Handler": "index.handler",
81
+ "Role": {
82
+ "Fn::GetAtt": [
83
+ "testapigatewaylambdaLambdaFunctionServiceRole5CD2E9F7",
84
+ "Arn"
85
+ ]
86
+ },
87
+ "Runtime": "nodejs20.x",
88
+ "TracingConfig": {
89
+ "Mode": "Active"
90
+ }
91
+ },
92
+ "DependsOn": [
93
+ "testapigatewaylambdaLambdaFunctionServiceRole5CD2E9F7"
94
+ ],
95
+ "Metadata": {
96
+ "cfn_nag": {
97
+ "rules_to_suppress": [
98
+ {
99
+ "id": "W58",
100
+ "reason": "Lambda functions has the required permission to write CloudWatch Logs. It uses custom policy instead of arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole with tighter permissions."
101
+ },
102
+ {
103
+ "id": "W89",
104
+ "reason": "This is not a rule for the general case, just for specific use cases/industries"
105
+ },
106
+ {
107
+ "id": "W92",
108
+ "reason": "Impossible for us to define the correct concurrency for clients"
109
+ }
110
+ ]
111
+ }
112
+ }
113
+ },
114
+ "testapigatewaylambdaLambdaFunctioninlinePolicyAddedToExecutionRole00FEF72FF": {
115
+ "Type": "AWS::IAM::Policy",
116
+ "Properties": {
117
+ "PolicyDocument": {
118
+ "Statement": [
119
+ {
120
+ "Action": [
121
+ "xray:PutTelemetryRecords",
122
+ "xray:PutTraceSegments"
123
+ ],
124
+ "Effect": "Allow",
125
+ "Resource": "*"
126
+ }
127
+ ],
128
+ "Version": "2012-10-17"
129
+ },
130
+ "PolicyName": "testapigatewaylambdaLambdaFunctioninlinePolicyAddedToExecutionRole00FEF72FF",
131
+ "Roles": [
132
+ {
133
+ "Ref": "testapigatewaylambdaLambdaFunctionServiceRole5CD2E9F7"
134
+ }
135
+ ]
136
+ }
137
+ },
138
+ "testapigatewaylambdaApiAccessLogGroupEB3253A2": {
139
+ "Type": "AWS::Logs::LogGroup",
140
+ "UpdateReplacePolicy": "Retain",
141
+ "DeletionPolicy": "Retain",
142
+ "Metadata": {
143
+ "cfn_nag": {
144
+ "rules_to_suppress": [
145
+ {
146
+ "id": "W86",
147
+ "reason": "Retention period for CloudWatchLogs LogGroups are set to 'Never Expire' to preserve customer data indefinitely"
148
+ },
149
+ {
150
+ "id": "W84",
151
+ "reason": "By default CloudWatchLogs LogGroups data is encrypted using the CloudWatch server-side encryption keys (AWS Managed Keys)"
152
+ }
153
+ ]
154
+ }
155
+ }
156
+ },
157
+ "testapigatewaylambdaLambdaRestApiE957E944": {
158
+ "Type": "AWS::ApiGateway::RestApi",
159
+ "Properties": {
160
+ "EndpointConfiguration": {
161
+ "Types": [
162
+ "EDGE"
163
+ ]
164
+ },
165
+ "Name": "LambdaRestApi"
166
+ }
167
+ },
168
+ "testapigatewaylambdaLambdaRestApiDeployment85334BB3a1765c45928980e423727978265730d1": {
169
+ "Type": "AWS::ApiGateway::Deployment",
170
+ "Properties": {
171
+ "Description": "Automatically created by the RestApi construct",
172
+ "RestApiId": {
173
+ "Ref": "testapigatewaylambdaLambdaRestApiE957E944"
174
+ }
175
+ },
176
+ "DependsOn": [
177
+ "testapigatewaylambdaLambdaRestApiproxyANYF6150927",
178
+ "testapigatewaylambdaLambdaRestApiproxy2C2C544E",
179
+ "testapigatewaylambdaLambdaRestApiANY1FACA749"
180
+ ],
181
+ "Metadata": {
182
+ "cfn_nag": {
183
+ "rules_to_suppress": [
184
+ {
185
+ "id": "W45",
186
+ "reason": "ApiGateway has AccessLogging enabled in AWS::ApiGateway::Stage resource, but cfn_nag checks for it in AWS::ApiGateway::Deployment resource"
187
+ }
188
+ ]
189
+ }
190
+ }
191
+ },
192
+ "testapigatewaylambdaLambdaRestApiDeploymentStageprod4EBF7247": {
193
+ "Type": "AWS::ApiGateway::Stage",
194
+ "Properties": {
195
+ "AccessLogSetting": {
196
+ "DestinationArn": {
197
+ "Fn::GetAtt": [
198
+ "testapigatewaylambdaApiAccessLogGroupEB3253A2",
199
+ "Arn"
200
+ ]
201
+ },
202
+ "Format": "{\"requestId\":\"$context.requestId\",\"ip\":\"$context.identity.sourceIp\",\"user\":\"$context.identity.user\",\"caller\":\"$context.identity.caller\",\"requestTime\":\"$context.requestTime\",\"httpMethod\":\"$context.httpMethod\",\"resourcePath\":\"$context.resourcePath\",\"status\":\"$context.status\",\"protocol\":\"$context.protocol\",\"responseLength\":\"$context.responseLength\"}"
203
+ },
204
+ "DeploymentId": {
205
+ "Ref": "testapigatewaylambdaLambdaRestApiDeployment85334BB3a1765c45928980e423727978265730d1"
206
+ },
207
+ "MethodSettings": [
208
+ {
209
+ "DataTraceEnabled": false,
210
+ "HttpMethod": "*",
211
+ "LoggingLevel": "INFO",
212
+ "ResourcePath": "/*"
213
+ }
214
+ ],
215
+ "RestApiId": {
216
+ "Ref": "testapigatewaylambdaLambdaRestApiE957E944"
217
+ },
218
+ "StageName": "prod",
219
+ "TracingEnabled": true
220
+ },
221
+ "Metadata": {
222
+ "guard": {
223
+ "SuppressedRules": [
224
+ "API_GW_CACHE_ENABLED_AND_ENCRYPTED"
225
+ ]
226
+ }
227
+ }
228
+ },
229
+ "testapigatewaylambdaLambdaRestApiproxy2C2C544E": {
230
+ "Type": "AWS::ApiGateway::Resource",
231
+ "Properties": {
232
+ "ParentId": {
233
+ "Fn::GetAtt": [
234
+ "testapigatewaylambdaLambdaRestApiE957E944",
235
+ "RootResourceId"
236
+ ]
237
+ },
238
+ "PathPart": "{proxy+}",
239
+ "RestApiId": {
240
+ "Ref": "testapigatewaylambdaLambdaRestApiE957E944"
241
+ }
242
+ }
243
+ },
244
+ "testapigatewaylambdaLambdaRestApiproxyANYApiPermissionapilamnousageplantestapigatewaylambdaLambdaRestApi37AE5E45ANYproxy7C37E473": {
245
+ "Type": "AWS::Lambda::Permission",
246
+ "Properties": {
247
+ "Action": "lambda:InvokeFunction",
248
+ "FunctionName": {
249
+ "Fn::GetAtt": [
250
+ "testapigatewaylambdaLambdaFunction18FF222F",
251
+ "Arn"
252
+ ]
253
+ },
254
+ "Principal": "apigateway.amazonaws.com",
255
+ "SourceArn": {
256
+ "Fn::Join": [
257
+ "",
258
+ [
259
+ "arn:",
260
+ {
261
+ "Ref": "AWS::Partition"
262
+ },
263
+ ":execute-api:",
264
+ {
265
+ "Ref": "AWS::Region"
266
+ },
267
+ ":",
268
+ {
269
+ "Ref": "AWS::AccountId"
270
+ },
271
+ ":",
272
+ {
273
+ "Ref": "testapigatewaylambdaLambdaRestApiE957E944"
274
+ },
275
+ "/",
276
+ {
277
+ "Ref": "testapigatewaylambdaLambdaRestApiDeploymentStageprod4EBF7247"
278
+ },
279
+ "/*/*"
280
+ ]
281
+ ]
282
+ }
283
+ }
284
+ },
285
+ "testapigatewaylambdaLambdaRestApiproxyANYApiPermissionTestapilamnousageplantestapigatewaylambdaLambdaRestApi37AE5E45ANYproxyB8D448C2": {
286
+ "Type": "AWS::Lambda::Permission",
287
+ "Properties": {
288
+ "Action": "lambda:InvokeFunction",
289
+ "FunctionName": {
290
+ "Fn::GetAtt": [
291
+ "testapigatewaylambdaLambdaFunction18FF222F",
292
+ "Arn"
293
+ ]
294
+ },
295
+ "Principal": "apigateway.amazonaws.com",
296
+ "SourceArn": {
297
+ "Fn::Join": [
298
+ "",
299
+ [
300
+ "arn:",
301
+ {
302
+ "Ref": "AWS::Partition"
303
+ },
304
+ ":execute-api:",
305
+ {
306
+ "Ref": "AWS::Region"
307
+ },
308
+ ":",
309
+ {
310
+ "Ref": "AWS::AccountId"
311
+ },
312
+ ":",
313
+ {
314
+ "Ref": "testapigatewaylambdaLambdaRestApiE957E944"
315
+ },
316
+ "/test-invoke-stage/*/*"
317
+ ]
318
+ ]
319
+ }
320
+ }
321
+ },
322
+ "testapigatewaylambdaLambdaRestApiproxyANYF6150927": {
323
+ "Type": "AWS::ApiGateway::Method",
324
+ "Properties": {
325
+ "AuthorizationType": "AWS_IAM",
326
+ "HttpMethod": "ANY",
327
+ "Integration": {
328
+ "IntegrationHttpMethod": "POST",
329
+ "Type": "AWS_PROXY",
330
+ "Uri": {
331
+ "Fn::Join": [
332
+ "",
333
+ [
334
+ "arn:",
335
+ {
336
+ "Ref": "AWS::Partition"
337
+ },
338
+ ":apigateway:",
339
+ {
340
+ "Ref": "AWS::Region"
341
+ },
342
+ ":lambda:path/2015-03-31/functions/",
343
+ {
344
+ "Fn::GetAtt": [
345
+ "testapigatewaylambdaLambdaFunction18FF222F",
346
+ "Arn"
347
+ ]
348
+ },
349
+ "/invocations"
350
+ ]
351
+ ]
352
+ }
353
+ },
354
+ "ResourceId": {
355
+ "Ref": "testapigatewaylambdaLambdaRestApiproxy2C2C544E"
356
+ },
357
+ "RestApiId": {
358
+ "Ref": "testapigatewaylambdaLambdaRestApiE957E944"
359
+ }
360
+ }
361
+ },
362
+ "testapigatewaylambdaLambdaRestApiANYApiPermissionapilamnousageplantestapigatewaylambdaLambdaRestApi37AE5E45ANY0C9BD547": {
363
+ "Type": "AWS::Lambda::Permission",
364
+ "Properties": {
365
+ "Action": "lambda:InvokeFunction",
366
+ "FunctionName": {
367
+ "Fn::GetAtt": [
368
+ "testapigatewaylambdaLambdaFunction18FF222F",
369
+ "Arn"
370
+ ]
371
+ },
372
+ "Principal": "apigateway.amazonaws.com",
373
+ "SourceArn": {
374
+ "Fn::Join": [
375
+ "",
376
+ [
377
+ "arn:",
378
+ {
379
+ "Ref": "AWS::Partition"
380
+ },
381
+ ":execute-api:",
382
+ {
383
+ "Ref": "AWS::Region"
384
+ },
385
+ ":",
386
+ {
387
+ "Ref": "AWS::AccountId"
388
+ },
389
+ ":",
390
+ {
391
+ "Ref": "testapigatewaylambdaLambdaRestApiE957E944"
392
+ },
393
+ "/",
394
+ {
395
+ "Ref": "testapigatewaylambdaLambdaRestApiDeploymentStageprod4EBF7247"
396
+ },
397
+ "/*/"
398
+ ]
399
+ ]
400
+ }
401
+ }
402
+ },
403
+ "testapigatewaylambdaLambdaRestApiANYApiPermissionTestapilamnousageplantestapigatewaylambdaLambdaRestApi37AE5E45ANY7510A235": {
404
+ "Type": "AWS::Lambda::Permission",
405
+ "Properties": {
406
+ "Action": "lambda:InvokeFunction",
407
+ "FunctionName": {
408
+ "Fn::GetAtt": [
409
+ "testapigatewaylambdaLambdaFunction18FF222F",
410
+ "Arn"
411
+ ]
412
+ },
413
+ "Principal": "apigateway.amazonaws.com",
414
+ "SourceArn": {
415
+ "Fn::Join": [
416
+ "",
417
+ [
418
+ "arn:",
419
+ {
420
+ "Ref": "AWS::Partition"
421
+ },
422
+ ":execute-api:",
423
+ {
424
+ "Ref": "AWS::Region"
425
+ },
426
+ ":",
427
+ {
428
+ "Ref": "AWS::AccountId"
429
+ },
430
+ ":",
431
+ {
432
+ "Ref": "testapigatewaylambdaLambdaRestApiE957E944"
433
+ },
434
+ "/test-invoke-stage/*/"
435
+ ]
436
+ ]
437
+ }
438
+ }
439
+ },
440
+ "testapigatewaylambdaLambdaRestApiANY1FACA749": {
441
+ "Type": "AWS::ApiGateway::Method",
442
+ "Properties": {
443
+ "AuthorizationType": "AWS_IAM",
444
+ "HttpMethod": "ANY",
445
+ "Integration": {
446
+ "IntegrationHttpMethod": "POST",
447
+ "Type": "AWS_PROXY",
448
+ "Uri": {
449
+ "Fn::Join": [
450
+ "",
451
+ [
452
+ "arn:",
453
+ {
454
+ "Ref": "AWS::Partition"
455
+ },
456
+ ":apigateway:",
457
+ {
458
+ "Ref": "AWS::Region"
459
+ },
460
+ ":lambda:path/2015-03-31/functions/",
461
+ {
462
+ "Fn::GetAtt": [
463
+ "testapigatewaylambdaLambdaFunction18FF222F",
464
+ "Arn"
465
+ ]
466
+ },
467
+ "/invocations"
468
+ ]
469
+ ]
470
+ }
471
+ },
472
+ "ResourceId": {
473
+ "Fn::GetAtt": [
474
+ "testapigatewaylambdaLambdaRestApiE957E944",
475
+ "RootResourceId"
476
+ ]
477
+ },
478
+ "RestApiId": {
479
+ "Ref": "testapigatewaylambdaLambdaRestApiE957E944"
480
+ }
481
+ }
482
+ },
483
+ "testapigatewaylambdaLambdaRestApiCloudWatchRole6D45E039": {
484
+ "Type": "AWS::IAM::Role",
485
+ "Properties": {
486
+ "AssumeRolePolicyDocument": {
487
+ "Statement": [
488
+ {
489
+ "Action": "sts:AssumeRole",
490
+ "Effect": "Allow",
491
+ "Principal": {
492
+ "Service": "apigateway.amazonaws.com"
493
+ }
494
+ }
495
+ ],
496
+ "Version": "2012-10-17"
497
+ },
498
+ "Policies": [
499
+ {
500
+ "PolicyDocument": {
501
+ "Statement": [
502
+ {
503
+ "Action": [
504
+ "logs:CreateLogGroup",
505
+ "logs:CreateLogStream",
506
+ "logs:DescribeLogGroups",
507
+ "logs:DescribeLogStreams",
508
+ "logs:FilterLogEvents",
509
+ "logs:GetLogEvents",
510
+ "logs:PutLogEvents"
511
+ ],
512
+ "Effect": "Allow",
513
+ "Resource": {
514
+ "Fn::Join": [
515
+ "",
516
+ [
517
+ "arn:",
518
+ {
519
+ "Ref": "AWS::Partition"
520
+ },
521
+ ":logs:",
522
+ {
523
+ "Ref": "AWS::Region"
524
+ },
525
+ ":",
526
+ {
527
+ "Ref": "AWS::AccountId"
528
+ },
529
+ ":*"
530
+ ]
531
+ ]
532
+ }
533
+ }
534
+ ],
535
+ "Version": "2012-10-17"
536
+ },
537
+ "PolicyName": "LambdaRestApiCloudWatchRolePolicy"
538
+ }
539
+ ]
540
+ },
541
+ "Metadata": {
542
+ "guard": {
543
+ "SuppressedRules": [
544
+ "IAM_NO_INLINE_POLICY_CHECK"
545
+ ]
546
+ }
547
+ }
548
+ },
549
+ "testapigatewaylambdaLambdaRestApiAccount0D88B6B8": {
550
+ "Type": "AWS::ApiGateway::Account",
551
+ "Properties": {
552
+ "CloudWatchRoleArn": {
553
+ "Fn::GetAtt": [
554
+ "testapigatewaylambdaLambdaRestApiCloudWatchRole6D45E039",
555
+ "Arn"
556
+ ]
557
+ }
558
+ },
559
+ "DependsOn": [
560
+ "testapigatewaylambdaLambdaRestApiE957E944"
561
+ ]
562
+ }
563
+ },
564
+ "Outputs": {
565
+ "testapigatewaylambdaLambdaRestApiEndpoint2EF0B753": {
566
+ "Value": {
567
+ "Fn::Join": [
568
+ "",
569
+ [
570
+ "https://",
571
+ {
572
+ "Ref": "testapigatewaylambdaLambdaRestApiE957E944"
573
+ },
574
+ ".execute-api.",
575
+ {
576
+ "Ref": "AWS::Region"
577
+ },
578
+ ".",
579
+ {
580
+ "Ref": "AWS::URLSuffix"
581
+ },
582
+ "/",
583
+ {
584
+ "Ref": "testapigatewaylambdaLambdaRestApiDeploymentStageprod4EBF7247"
585
+ },
586
+ "/"
587
+ ]
588
+ ]
589
+ }
590
+ }
591
+ },
592
+ "Parameters": {
593
+ "BootstrapVersion": {
594
+ "Type": "AWS::SSM::Parameter::Value<String>",
595
+ "Default": "/cdk-bootstrap/hnb659fds/version",
596
+ "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]"
597
+ }
598
+ },
599
+ "Rules": {
600
+ "CheckBootstrapVersion": {
601
+ "Assertions": [
602
+ {
603
+ "Assert": {
604
+ "Fn::Not": [
605
+ {
606
+ "Fn::Contains": [
607
+ [
608
+ "1",
609
+ "2",
610
+ "3",
611
+ "4",
612
+ "5"
613
+ ],
614
+ {
615
+ "Ref": "BootstrapVersion"
616
+ }
617
+ ]
618
+ }
619
+ ]
620
+ },
621
+ "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI."
622
+ }
623
+ ]
624
+ }
625
+ }
626
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "version": "40.0.0",
3
+ "files": {
4
+ "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": {
5
+ "source": {
6
+ "path": "apilamnousageplanIntegDefaultTestDeployAssertFA088EA5.template.json",
7
+ "packaging": "file"
8
+ },
9
+ "destinations": {
10
+ "current_account-current_region": {
11
+ "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
12
+ "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json",
13
+ "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
14
+ }
15
+ }
16
+ }
17
+ },
18
+ "dockerImages": {}
19
+ }
@@ -0,0 +1,36 @@
1
+ {
2
+ "Parameters": {
3
+ "BootstrapVersion": {
4
+ "Type": "AWS::SSM::Parameter::Value<String>",
5
+ "Default": "/cdk-bootstrap/hnb659fds/version",
6
+ "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]"
7
+ }
8
+ },
9
+ "Rules": {
10
+ "CheckBootstrapVersion": {
11
+ "Assertions": [
12
+ {
13
+ "Assert": {
14
+ "Fn::Not": [
15
+ {
16
+ "Fn::Contains": [
17
+ [
18
+ "1",
19
+ "2",
20
+ "3",
21
+ "4",
22
+ "5"
23
+ ],
24
+ {
25
+ "Ref": "BootstrapVersion"
26
+ }
27
+ ]
28
+ }
29
+ ]
30
+ },
31
+ "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI."
32
+ }
33
+ ]
34
+ }
35
+ }
36
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
5
+ * with the License. A copy of the License is located at
6
+ *
7
+ * http://www.apache.org/licenses/LICENSE-2.0
8
+ *
9
+ * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES
10
+ * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
11
+ * and limitations under the License.
12
+ */
13
+
14
+ exports.handler = async (event, context) => {
15
+ console.log('Received event:', JSON.stringify(event, null, 2));
16
+     return {
17
+       statusCode: 200,
18
+       headers: { 'Content-Type': 'text/plain' },
19
+       body: `Hello from Project Vesper! You've hit ${event.path}\n`
20
+     };
21
+ };
@@ -0,0 +1 @@
1
+ {"version":"40.0.0"}