From 74048f10e1387efc648c95120d6aef1af9a1bde3 Mon Sep 17 00:00:00 2001 From: AWS Solutions Constructs Automation Date: Sun, 28 Nov 2021 00:53:35 +0000 Subject: [PATCH 01/67] chore(release): 1.127.0 --- CHANGELOG.md | 16 ++++++++++++++++ source/lerna.json | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bc761a236..0c4f0baa4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,22 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [1.127.0](https://github.com/awslabs/aws-solutions-constructs/compare/v2.0.0-rc.2...v1.127.0) (2021-11-28) + + +### Features + +* **aws-cloudfront-s3:** added logS3AccessLogs prop ([#506](https://github.com/awslabs/aws-solutions-constructs/issues/506)) ([6d3c7c9](https://github.com/awslabs/aws-solutions-constructs/commit/6d3c7c94dbe1398fc2eef16a7862704bb15a8bb9)) +* **aws-events-rule-kinesisfirehose-s3:** added logS3AccessLogs and loggingBucketProps ([#492](https://github.com/awslabs/aws-solutions-constructs/issues/492)) ([0af95f5](https://github.com/awslabs/aws-solutions-constructs/commit/0af95f58c395f766d29d1ece791d0307621f63e6)) +* **aws-iot-kinesisfirehose-s3:** added custom loggingBucketProps ([#480](https://github.com/awslabs/aws-solutions-constructs/issues/480)) ([76c0aa9](https://github.com/awslabs/aws-solutions-constructs/commit/76c0aa9ed4be859319a830d29be1a397b3322a43)) +* **aws-kinesisfirehose-s3-and-kinesisanalytics:** added logS3AccessLogs and loggingBucketProps ([#490](https://github.com/awslabs/aws-solutions-constructs/issues/490)) ([3d8fec6](https://github.com/awslabs/aws-solutions-constructs/commit/3d8fec6632c76711ee26c323893ca5a7a58d917f)) +* **aws-kinesisfirehose-s3:** added custom logging bucket props to kinesisfirehose-s3 ([#478](https://github.com/awslabs/aws-solutions-constructs/issues/478)) ([6fab3e5](https://github.com/awslabs/aws-solutions-constructs/commit/6fab3e50de4ef73d2e9f2dbde358d9d6f14e9831)) +* **aws-kinesisstreams-gluejob:** encrypted bucket in existing job integ test ([#504](https://github.com/awslabs/aws-solutions-constructs/issues/504)) ([04d0642](https://github.com/awslabs/aws-solutions-constructs/commit/04d06424663b3f7cb5cc4ef6a9995f5eedce1721)) +* **aws-kinesisstreams-kinesisfirehose-s3:** added loggingBucketProps and logS3AccessLogs ([#493](https://github.com/awslabs/aws-solutions-constructs/issues/493)) ([85b5f7a](https://github.com/awslabs/aws-solutions-constructs/commit/85b5f7ada3e197dcc83a1ad1bd9e23efedf9f63e)) +* **aws-lambda-s3:** added logS3AccessLogs and updated tests ([#496](https://github.com/awslabs/aws-solutions-constructs/issues/496)) ([9922938](https://github.com/awslabs/aws-solutions-constructs/commit/992293810b92b3272e08e6b408c868243007049e)) +* **aws-s3-sqs:** added logS3AccessLogs and S3BucketInterface ([#499](https://github.com/awslabs/aws-solutions-constructs/issues/499)) ([c8320bd](https://github.com/awslabs/aws-solutions-constructs/commit/c8320bdd9cc47e519556a40b2a2e7f163922edc7)) +* **aws-s3-stepfunctions:** added logS3AccessLogs and S3BucketInterface ([#500](https://github.com/awslabs/aws-solutions-constructs/issues/500)) ([d7d10f6](https://github.com/awslabs/aws-solutions-constructs/commit/d7d10f683e74276e1f737db8fbac434e0b48cd5e)) + ## [1.126.0](https://github.com/awslabs/aws-solutions-constructs/compare/v2.0.0-rc.1...v1.126.0) (2021-10-25) * Upgraded all patterns to CDK v1.126.0 diff --git a/source/lerna.json b/source/lerna.json index 4c2c41632..a881197a8 100644 --- a/source/lerna.json +++ b/source/lerna.json @@ -6,5 +6,5 @@ "./patterns/@aws-solutions-constructs/*" ], "rejectCycles": "true", - "version": "1.126.0" + "version": "1.127.0" } From 5ae2e079682d950f0bed3f448c12f5e0a7d39bf2 Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Sat, 27 Nov 2021 19:55:57 -0500 Subject: [PATCH 02/67] chore(changelog): Updated CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0c4f0baa4..caf5efafc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ All notable changes to this project will be documented in this file. See [standa ## [1.127.0](https://github.com/awslabs/aws-solutions-constructs/compare/v2.0.0-rc.2...v1.127.0) (2021-11-28) +* Upgraded all patterns to CDK v1.127.0 ### Features From 3a5806976116a2a17196ed7ac40243c018ea1269 Mon Sep 17 00:00:00 2001 From: AWS Solutions Constructs Automation Date: Sun, 28 Nov 2021 01:59:15 +0000 Subject: [PATCH 03/67] chore(release): 1.128.0 --- CHANGELOG.md | 2 ++ source/lerna.json | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index caf5efafc..bc1508afa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [1.128.0](https://github.com/awslabs/aws-solutions-constructs/compare/v1.127.0...v1.128.0) (2021-11-28) + ## [1.127.0](https://github.com/awslabs/aws-solutions-constructs/compare/v2.0.0-rc.2...v1.127.0) (2021-11-28) * Upgraded all patterns to CDK v1.127.0 diff --git a/source/lerna.json b/source/lerna.json index a881197a8..5f01e634a 100644 --- a/source/lerna.json +++ b/source/lerna.json @@ -6,5 +6,5 @@ "./patterns/@aws-solutions-constructs/*" ], "rejectCycles": "true", - "version": "1.127.0" + "version": "1.128.0" } From 89815776743eef6b307de8c5aacdbde3868b4be9 Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Sat, 27 Nov 2021 21:00:51 -0500 Subject: [PATCH 04/67] chore(changelog): Updated CHANGELOG.md --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index bc1508afa..526d0dfe6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ All notable changes to this project will be documented in this file. See [standa ## [1.128.0](https://github.com/awslabs/aws-solutions-constructs/compare/v1.127.0...v1.128.0) (2021-11-28) +* Upgraded all patterns to CDK v1.128.0 + ## [1.127.0](https://github.com/awslabs/aws-solutions-constructs/compare/v2.0.0-rc.2...v1.127.0) (2021-11-28) * Upgraded all patterns to CDK v1.127.0 From fb85eda2a3c75690dc8f61c6d313c4e68d6aae80 Mon Sep 17 00:00:00 2001 From: AWS Solutions Constructs Automation Date: Sun, 28 Nov 2021 02:56:51 +0000 Subject: [PATCH 05/67] chore(release): 1.129.0 --- CHANGELOG.md | 2 ++ source/lerna.json | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 526d0dfe6..1d69bb211 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [1.129.0](https://github.com/awslabs/aws-solutions-constructs/compare/v1.128.0...v1.129.0) (2021-11-28) + ## [1.128.0](https://github.com/awslabs/aws-solutions-constructs/compare/v1.127.0...v1.128.0) (2021-11-28) * Upgraded all patterns to CDK v1.128.0 diff --git a/source/lerna.json b/source/lerna.json index 5f01e634a..8571a50a6 100644 --- a/source/lerna.json +++ b/source/lerna.json @@ -6,5 +6,5 @@ "./patterns/@aws-solutions-constructs/*" ], "rejectCycles": "true", - "version": "1.128.0" + "version": "1.129.0" } From 3ad029c13e2370ab707c6a6fb5dd46d71b475fbc Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Sat, 27 Nov 2021 21:59:30 -0500 Subject: [PATCH 06/67] chore(changelog): Updated CHANGELOG.md --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1d69bb211..414c61712 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ All notable changes to this project will be documented in this file. See [standa ## [1.129.0](https://github.com/awslabs/aws-solutions-constructs/compare/v1.128.0...v1.129.0) (2021-11-28) +* Upgraded all patterns to CDK v1.129.0 + ## [1.128.0](https://github.com/awslabs/aws-solutions-constructs/compare/v1.127.0...v1.128.0) (2021-11-28) * Upgraded all patterns to CDK v1.128.0 From 21121e32ecef65fc55f8da360942cf426f76341d Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Sat, 27 Nov 2021 22:13:33 -0500 Subject: [PATCH 07/67] Update eventbridge unit test to match CDK changs --- .../core/test/eventbridge-helper.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/patterns/@aws-solutions-constructs/core/test/eventbridge-helper.test.ts b/source/patterns/@aws-solutions-constructs/core/test/eventbridge-helper.test.ts index d0f9aa686..4579f7cf7 100644 --- a/source/patterns/@aws-solutions-constructs/core/test/eventbridge-helper.test.ts +++ b/source/patterns/@aws-solutions-constructs/core/test/eventbridge-helper.test.ts @@ -39,7 +39,7 @@ test('Test deployment with existing EventBus', () => { existingEventBusInterface: new events.EventBus(stack, `existing-event-bus`, {}) }); - expect(stack).toHaveResource('AWS::Events::EventBus', {}); + expect(stack).toHaveResource('AWS::Events::EventBus'); }); // -------------------------------------------------------------- From fcbecd71b1e2b38bf02575c3d215214a6323a3df Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Sat, 27 Nov 2021 22:26:58 -0500 Subject: [PATCH 08/67] add event_bus_name for CDK 1.129.0 --- .../core/test/eventbridge-helper.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/patterns/@aws-solutions-constructs/core/test/eventbridge-helper.test.ts b/source/patterns/@aws-solutions-constructs/core/test/eventbridge-helper.test.ts index 4579f7cf7..3a6e0e390 100644 --- a/source/patterns/@aws-solutions-constructs/core/test/eventbridge-helper.test.ts +++ b/source/patterns/@aws-solutions-constructs/core/test/eventbridge-helper.test.ts @@ -36,7 +36,7 @@ test('Test deployment with existing EventBus', () => { const stack = new Stack(); // Helper declaration defaults.buildEventBus(stack, { - existingEventBusInterface: new events.EventBus(stack, `existing-event-bus`, {}) + existingEventBusInterface: new events.EventBus(stack, `existing-event-bus`, { event_bus_name: 'test-bus'}) }); expect(stack).toHaveResource('AWS::Events::EventBus'); From 6f66fcca4dcb1bcc0ae3dbda9d3ce2350a0b1356 Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Sat, 27 Nov 2021 22:32:24 -0500 Subject: [PATCH 09/67] add eventBuName for CDK 1.129.0 --- .../core/test/eventbridge-helper.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/patterns/@aws-solutions-constructs/core/test/eventbridge-helper.test.ts b/source/patterns/@aws-solutions-constructs/core/test/eventbridge-helper.test.ts index 3a6e0e390..322607908 100644 --- a/source/patterns/@aws-solutions-constructs/core/test/eventbridge-helper.test.ts +++ b/source/patterns/@aws-solutions-constructs/core/test/eventbridge-helper.test.ts @@ -36,7 +36,7 @@ test('Test deployment with existing EventBus', () => { const stack = new Stack(); // Helper declaration defaults.buildEventBus(stack, { - existingEventBusInterface: new events.EventBus(stack, `existing-event-bus`, { event_bus_name: 'test-bus'}) + existingEventBusInterface: new events.EventBus(stack, `existing-event-bus`, { eventBusName: 'test-bus'}) }); expect(stack).toHaveResource('AWS::Events::EventBus'); From 91344fd7311b42ec1ab1939c9681a1231b5f293a Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Sat, 27 Nov 2021 22:44:35 -0500 Subject: [PATCH 10/67] add eventBuName for CDK 1.129.0 --- .../core/test/eventbridge-helper.test.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/source/patterns/@aws-solutions-constructs/core/test/eventbridge-helper.test.ts b/source/patterns/@aws-solutions-constructs/core/test/eventbridge-helper.test.ts index 322607908..489e6b86b 100644 --- a/source/patterns/@aws-solutions-constructs/core/test/eventbridge-helper.test.ts +++ b/source/patterns/@aws-solutions-constructs/core/test/eventbridge-helper.test.ts @@ -23,7 +23,11 @@ test('Test deployment with no properties', () => { // Stack const stack = new Stack(); // Helper declaration - defaults.buildEventBus(stack, {}); + defaults.buildEventBus(stack, { + eventBusProps: { + eventBusName: 'testneweventbus' + } + }); expect(stack).not.toHaveResource("AWS::EventBridge::EventBus"); }); @@ -36,7 +40,7 @@ test('Test deployment with existing EventBus', () => { const stack = new Stack(); // Helper declaration defaults.buildEventBus(stack, { - existingEventBusInterface: new events.EventBus(stack, `existing-event-bus`, { eventBusName: 'test-bus'}) + existingEventBusInterface: new events.EventBus(stack, `existing-event-bus`, { eventBusName: 'test-bus' }) }); expect(stack).toHaveResource('AWS::Events::EventBus'); From e41194ff10bad672fb1c58d022dd29253f4c726b Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Sat, 27 Nov 2021 22:55:47 -0500 Subject: [PATCH 11/67] add eventBuName for CDK 1.129.0 --- .../test/eventbridge-kinesisfirehose-s3.test.ts | 2 +- .../integ.eventbridge-kinesisfirehose-s3-existing-eventbus.ts | 2 +- .../test/eventbridge-kinesisstreams.test.ts | 2 +- .../test/integ.eventbridge-kinesisstreams-existing-eventbus.ts | 2 +- .../aws-eventbridge-lambda/test/eventbridge-lambda.test.ts | 2 +- .../test/integ.eventbridge-existing-eventbus.ts | 2 +- .../aws-eventbridge-sns/test/eventbridge-sns-topic.test.ts | 2 +- .../aws-eventbridge-sns/test/integ.exist-bus.ts | 2 +- .../aws-eventbridge-sqs/test/eventbridge-sqs-queue.test.ts | 2 +- .../aws-eventbridge-sqs/test/integ.exist-bus.ts | 2 +- .../test/eventbridge-stepfunctions.test.ts | 2 +- .../test/events-rule-kinesisfirehose-s3.test.ts | 2 +- .../integ.events-rule-kinesisfirehose-s3-existing-eventbus.ts | 2 +- .../test/events-rule-kinesisstreams.test.ts | 2 +- .../test/integ.events-rule-kinesisstreams-existing-eventbus.ts | 2 +- .../aws-events-rule-lambda/test/events-rule-lambda.test.ts | 2 +- .../test/integ.eventsrule-existing-eventbus.ts | 2 +- .../aws-events-rule-sns/test/events-rule-sns-topic.test.ts | 2 +- .../aws-events-rule-sns/test/integ.exist-bus.ts | 2 +- .../aws-events-rule-sqs/test/events-rule-sqs-queue.test.ts | 2 +- .../aws-events-rule-sqs/test/integ.exist-bus.ts | 2 +- .../test/events-rule-step-function.test.ts | 2 +- .../aws-lambda-eventbridge/test/aws-lambda-eventbridge.test.ts | 2 +- .../aws-lambda-eventbridge/test/integ.existingEventBus.ts | 2 +- 24 files changed, 24 insertions(+), 24 deletions(-) diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/eventbridge-kinesisfirehose-s3.test.ts b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/eventbridge-kinesisfirehose-s3.test.ts index 9410560b5..9b53ce588 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/eventbridge-kinesisfirehose-s3.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/eventbridge-kinesisfirehose-s3.test.ts @@ -178,7 +178,7 @@ test('check exception while passing existingEventBus & eventBusProps', () => { } }, eventBusProps: {}, - existingEventBusInterface: new events.EventBus(stack, `test-existing-eventbus`, {}) + existingEventBusInterface: new events.EventBus(stack, `test-existing-eventbus`, { eventBusName: 'test' }) }; const app = () => { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.eventbridge-kinesisfirehose-s3-existing-eventbus.ts b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.eventbridge-kinesisfirehose-s3-existing-eventbus.ts index 7ef117844..f4bca90be 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.eventbridge-kinesisfirehose-s3-existing-eventbus.ts +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.eventbridge-kinesisfirehose-s3-existing-eventbus.ts @@ -21,7 +21,7 @@ import * as s3 from "@aws-cdk/aws-s3"; const app = new App(); const stack = new Stack(app, generateIntegStackName(__filename)); stack.templateOptions.description = 'Integration Test for aws-eventbridge-kinesisfirehose-s3'; -const existingEventBus = new events.EventBus(stack, `test-existing-eventbus`, {}); +const existingEventBus = new events.EventBus(stack, `test-existing-eventbus`, { eventBusName: 'test' }); const props: EventbridgeToKinesisFirehoseToS3Props = { eventRuleProps: { eventPattern: { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/eventbridge-kinesisstreams.test.ts b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/eventbridge-kinesisstreams.test.ts index 0913ed91f..04eaafe7c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/eventbridge-kinesisstreams.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/eventbridge-kinesisstreams.test.ts @@ -119,7 +119,7 @@ test('check exception while passing existingEventBus & eventBusProps', () => { } }, eventBusProps: {}, - existingEventBusInterface: new events.EventBus(stack, `test-existing-eventbus`, {}) + existingEventBusInterface: new events.EventBus(stack, `test-existing-eventbus`, { eventBusName: 'test' }) }; const app = () => { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/integ.eventbridge-kinesisstreams-existing-eventbus.ts b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/integ.eventbridge-kinesisstreams-existing-eventbus.ts index e385d2018..ab3833195 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/integ.eventbridge-kinesisstreams-existing-eventbus.ts +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/integ.eventbridge-kinesisstreams-existing-eventbus.ts @@ -26,7 +26,7 @@ const stream = new kinesis.Stream(stack, 'test-stream', { encryption: kinesis.StreamEncryption.MANAGED }); -const existingEventBus = new events.EventBus(stack, `existing-event-bus`, {}); +const existingEventBus = new events.EventBus(stack, `existing-event-bus`, { eventBusName: 'test' }); const props: EventbridgeToKinesisStreamsProps = { eventRuleProps: { eventPattern: { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/eventbridge-lambda.test.ts b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/eventbridge-lambda.test.ts index 14660b1d5..a9ea0bd77 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/eventbridge-lambda.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/eventbridge-lambda.test.ts @@ -227,7 +227,7 @@ test('check exception while passing existingEventBus & eventBusProps', () => { } }, eventBusProps: {}, - existingEventBusInterface: new events.EventBus(stack, `test-existing-eventbus`, {}) + existingEventBusInterface: new events.EventBus(stack, `test-existing-eventbus`, { eventBusName: 'test' }) }; const app = () => { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-existing-eventbus.ts b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-existing-eventbus.ts index 9d0ad037b..1bcc347f9 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-existing-eventbus.ts +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-existing-eventbus.ts @@ -21,7 +21,7 @@ import { generateIntegStackName } from '@aws-solutions-constructs/core'; const app = new App(); const stack = new Stack(app, generateIntegStackName(__filename)); -const existingEventBus = new events.EventBus(stack, `existing-event-bus`); +const existingEventBus = new events.EventBus(stack, `existing-event-bus`, { eventBusName: 'test' }); const props: EventbridgeToLambdaProps = { lambdaFunctionProps: { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/test/eventbridge-sns-topic.test.ts b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/test/eventbridge-sns-topic.test.ts index af1d799bc..fc66de33d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/test/eventbridge-sns-topic.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/test/eventbridge-sns-topic.test.ts @@ -235,7 +235,7 @@ test('check exception while passing existingEventBus & eventBusProps', () => { } }, eventBusProps: {}, - existingEventBusInterface: new events.EventBus(stack, `test-existing-new-eventbus`, {}) + existingEventBusInterface: new events.EventBus(stack, `test-existing-new-eventbus`, { eventBusName: 'test' }) }; const app = () => { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/test/integ.exist-bus.ts b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/test/integ.exist-bus.ts index 489bb48bf..56c0f85ba 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/test/integ.exist-bus.ts +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/test/integ.exist-bus.ts @@ -19,7 +19,7 @@ import { generateIntegStackName } from '@aws-solutions-constructs/core'; const app = new App(); const stack = new Stack(app, generateIntegStackName(__filename)); // Create existing custom EventBus -const existingEventBus = new events.EventBus(stack, `existing-event-bus`, {}); +const existingEventBus = new events.EventBus(stack, `existing-event-bus`, { eventBusName: 'test' }); const props: EventbridgeToSnsProps = { eventRuleProps: { eventPattern: { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/test/eventbridge-sqs-queue.test.ts b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/test/eventbridge-sqs-queue.test.ts index abdec3e61..75d95be43 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/test/eventbridge-sqs-queue.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/test/eventbridge-sqs-queue.test.ts @@ -296,7 +296,7 @@ test('check exception while passing existingEventBus & eventBusProps', () => { } }, eventBusProps: {}, - existingEventBusInterface: new events.EventBus(stack, `test-existing-new-eventbus`, {}) + existingEventBusInterface: new events.EventBus(stack, `test-existing-new-eventbus`, { eventBusName: 'test' }) }; const app = () => { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/test/integ.exist-bus.ts b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/test/integ.exist-bus.ts index fad5c0807..e4c5e1563 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/test/integ.exist-bus.ts +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/test/integ.exist-bus.ts @@ -28,7 +28,7 @@ const existingQueueObj = new sqs.Queue(stack, 'MyQueue', { }), }); -const existingEventBus = new events.EventBus(stack, 'existing-event-bus', {}); +const existingEventBus = new events.EventBus(stack, 'existing-event-bus', { eventBusName: 'test' }); const props: EventbridgeToSqsProps = { eventRuleProps: { eventPattern: { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/eventbridge-stepfunctions.test.ts b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/eventbridge-stepfunctions.test.ts index 4aaf6bde6..c2d401bfd 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/eventbridge-stepfunctions.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/eventbridge-stepfunctions.test.ts @@ -161,7 +161,7 @@ test('check exception while passing existingEventBus & eventBusProps', () => { } }, eventBusProps: {}, - existingEventBusInterface: new events.EventBus(stack, `test-existing-new-eventbus`, {}) + existingEventBusInterface: new events.EventBus(stack, `test-existing-new-eventbus`, { eventBusName: 'test' }) }; const app = () => { diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/events-rule-kinesisfirehose-s3.test.ts b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/events-rule-kinesisfirehose-s3.test.ts index 2f35063ed..3f7f6dd13 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/events-rule-kinesisfirehose-s3.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/events-rule-kinesisfirehose-s3.test.ts @@ -178,7 +178,7 @@ test('check exception while passing existingEventBus & eventBusProps', () => { } }, eventBusProps: {}, - existingEventBusInterface: new events.EventBus(stack, `test-existing-eventbus`, {}) + existingEventBusInterface: new events.EventBus(stack, `test-existing-eventbus`, { eventBusName: 'test' }) }; const app = () => { diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.events-rule-kinesisfirehose-s3-existing-eventbus.ts b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.events-rule-kinesisfirehose-s3-existing-eventbus.ts index ad39f29bc..55f66f94a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.events-rule-kinesisfirehose-s3-existing-eventbus.ts +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.events-rule-kinesisfirehose-s3-existing-eventbus.ts @@ -21,7 +21,7 @@ import * as s3 from "@aws-cdk/aws-s3"; const app = new App(); const stack = new Stack(app, generateIntegStackName(__filename)); stack.templateOptions.description = 'Integration Test for aws-eventsrule-kinesisfirehose-s3'; -const existingEventBus = new events.EventBus(stack, `test-existing-eventbus`, {}); +const existingEventBus = new events.EventBus(stack, `test-existing-eventbus`, { eventBusName: 'test' }); const props: EventsRuleToKinesisFirehoseToS3Props = { eventRuleProps: { eventPattern: { diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/test/events-rule-kinesisstreams.test.ts b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/test/events-rule-kinesisstreams.test.ts index 6a5c3b17f..c0c804049 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/test/events-rule-kinesisstreams.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/test/events-rule-kinesisstreams.test.ts @@ -120,7 +120,7 @@ test('check exception while passing existingEventBus & eventBusProps', () => { } }, eventBusProps: {}, - existingEventBusInterface: new events.EventBus(stack, `test-existing-eventbus`, {}) + existingEventBusInterface: new events.EventBus(stack, `test-existing-eventbus`, { eventBusName: 'test' }) }; const app = () => { diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/test/integ.events-rule-kinesisstreams-existing-eventbus.ts b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/test/integ.events-rule-kinesisstreams-existing-eventbus.ts index 580eb5ac8..3d399b542 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/test/integ.events-rule-kinesisstreams-existing-eventbus.ts +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/test/integ.events-rule-kinesisstreams-existing-eventbus.ts @@ -26,7 +26,7 @@ const stream = new kinesis.Stream(stack, 'test-stream', { encryption: kinesis.StreamEncryption.MANAGED }); -const existingEventBus = new events.EventBus(stack, `existing-event-bus`, {}); +const existingEventBus = new events.EventBus(stack, `existing-event-bus`, { eventBusName: 'test' }); const props: EventsRuleToKinesisStreamsProps = { eventRuleProps: { eventPattern: { diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/events-rule-lambda.test.ts b/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/events-rule-lambda.test.ts index 94a73744f..b466fd943 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/events-rule-lambda.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/events-rule-lambda.test.ts @@ -228,7 +228,7 @@ test('check exception while passing existingEventBus & eventBusProps', () => { } }, eventBusProps: {}, - existingEventBusInterface: new events.EventBus(stack, `test-existing-eventbus`, {}) + existingEventBusInterface: new events.EventBus(stack, `test-existing-eventbus`, { eventBusName: 'test' }) }; const app = () => { diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.eventsrule-existing-eventbus.ts b/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.eventsrule-existing-eventbus.ts index 8b09f5dbc..c331e9b0d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.eventsrule-existing-eventbus.ts +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.eventsrule-existing-eventbus.ts @@ -21,7 +21,7 @@ import { generateIntegStackName } from '@aws-solutions-constructs/core'; const app = new App(); const stack = new Stack(app, generateIntegStackName(__filename)); -const existingEventBus = new events.EventBus(stack, `existing-event-bus`); +const existingEventBus = new events.EventBus(stack, `existing-event-bus`, { eventBusName: 'test' }); const props: EventsRuleToLambdaProps = { lambdaFunctionProps: { diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/test/events-rule-sns-topic.test.ts b/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/test/events-rule-sns-topic.test.ts index 4de80ea44..43f294c76 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/test/events-rule-sns-topic.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/test/events-rule-sns-topic.test.ts @@ -235,7 +235,7 @@ test('check exception while passing existingEventBus & eventBusProps', () => { } }, eventBusProps: {}, - existingEventBusInterface: new events.EventBus(stack, `test-existing-new-eventbus`, {}) + existingEventBusInterface: new events.EventBus(stack, `test-existing-new-eventbus`, { eventBusName: 'test' }) }; const app = () => { diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/test/integ.exist-bus.ts b/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/test/integ.exist-bus.ts index f5df62c0f..06b68991d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/test/integ.exist-bus.ts +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/test/integ.exist-bus.ts @@ -19,7 +19,7 @@ import { generateIntegStackName } from '@aws-solutions-constructs/core'; const app = new App(); const stack = new Stack(app, generateIntegStackName(__filename)); // Create existing custom EventBus -const existingEventBus = new events.EventBus(stack, `event-bus`, {}); +const existingEventBus = new events.EventBus(stack, `event-bus`, { eventBusName: 'test' }); const props: EventsRuleToSnsProps = { eventRuleProps: { eventPattern: { diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/test/events-rule-sqs-queue.test.ts b/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/test/events-rule-sqs-queue.test.ts index 29477b2d3..62ee785fa 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/test/events-rule-sqs-queue.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/test/events-rule-sqs-queue.test.ts @@ -296,7 +296,7 @@ test('check exception while passing existingEventBus & eventBusProps', () => { } }, eventBusProps: {}, - existingEventBusInterface: new events.EventBus(stack, `test-existing-new-eventbus`, {}) + existingEventBusInterface: new events.EventBus(stack, `test-existing-new-eventbus`, { eventBusName: 'test' }) }; const app = () => { diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/test/integ.exist-bus.ts b/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/test/integ.exist-bus.ts index 764aee469..f10303661 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/test/integ.exist-bus.ts +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/test/integ.exist-bus.ts @@ -28,7 +28,7 @@ const existingQueueObj = new sqs.Queue(stack, 'MyQueue', { }), }); -const existingEventBus = new events.EventBus(stack, 'existing-event-bus', {}); +const existingEventBus = new events.EventBus(stack, 'existing-event-bus', { eventBusName: 'test' }); const props: EventsRuleToSqsProps = { eventRuleProps: { eventPattern: { diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/events-rule-step-function.test.ts b/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/events-rule-step-function.test.ts index a431efc6a..23f2d9cf1 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/events-rule-step-function.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/events-rule-step-function.test.ts @@ -161,7 +161,7 @@ test('check exception while passing existingEventBus & eventBusProps', () => { } }, eventBusProps: {}, - existingEventBusInterface: new events.EventBus(stack, `test-existing-new-eventbus`, {}) + existingEventBusInterface: new events.EventBus(stack, `test-existing-new-eventbus`, { eventBusName: 'test' }) }; const app = () => { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/aws-lambda-eventbridge.test.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/aws-lambda-eventbridge.test.ts index 913827ae9..c914dadd0 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/aws-lambda-eventbridge.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/aws-lambda-eventbridge.test.ts @@ -161,7 +161,7 @@ test("Test bad call with existingVpc and deployVpc", () => { code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, eventBusProps: {}, - existingEventBusInterface: new events.EventBus(stack, `new-event-bus`, {}) + existingEventBusInterface: new events.EventBus(stack, `new-event-bus`, { eventBusName: 'test' }) }); }; // Assertion diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingEventBus.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingEventBus.ts index 5b5bec384..86af1a7f8 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingEventBus.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingEventBus.ts @@ -32,7 +32,7 @@ const lambdaFunctionProps = { }; const existingFunction = defaults.deployLambdaFunction(stack, lambdaFunctionProps); -const existingEventBus = new events.EventBus(stack, 'existing-event-bus', {}); +const existingEventBus = new events.EventBus(stack, 'existing-event-bus', { eventBusName: 'test' }); const props: LambdaToEventbridgeProps = { existingLambdaObj: existingFunction, From 6ad01c8ff766927733048f3fa3d68797efb91216 Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Sat, 27 Nov 2021 23:03:01 -0500 Subject: [PATCH 12/67] add eventBuName for CDK 1.129.0 --- .../test/eventbridge-kinesisstreams.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/eventbridge-kinesisstreams.test.ts b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/eventbridge-kinesisstreams.test.ts index 04eaafe7c..87669af95 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/eventbridge-kinesisstreams.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/eventbridge-kinesisstreams.test.ts @@ -118,7 +118,7 @@ test('check exception while passing existingEventBus & eventBusProps', () => { source: ['solutionsconstructs'] } }, - eventBusProps: {}, + eventBusProps: { eventBusName: 'test' }, existingEventBusInterface: new events.EventBus(stack, `test-existing-eventbus`, { eventBusName: 'test' }) }; From 136c88024f2c5144226d5129c93e4e418cff4b05 Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Sun, 28 Nov 2021 16:29:18 -0500 Subject: [PATCH 13/67] CDK driven event bus changes --- .../test/eventbridge-kinesisfirehose-s3.test.ts | 4 ++-- ...-kinesisfirehose-s3-existing-eventbus.expected.json | 2 +- ...ridge-kinesisfirehose-s3-new-eventbus.expected.json | 6 +++--- ...nteg.eventbridge-kinesisfirehose-s3-new-eventbus.ts | 2 +- .../test/eventbridge-kinesisstreams.test.ts | 2 +- ...idge-kinesisstreams-existing-eventbus.expected.json | 2 +- ...entbridge-kinesisstreams-new-eventbus.expected.json | 6 +++--- .../integ.eventbridge-kinesisstreams-new-eventbus.ts | 2 +- .../test/eventbridge-lambda.test.ts | 4 ++-- .../integ.eventbridge-existing-eventbus.expected.json | 2 +- .../test/integ.eventbridge-new-eventbus.expected.json | 6 +++--- .../test/integ.eventbridge-new-eventbus.ts | 2 +- .../test/eventbridge-sns-topic.test.ts | 2 +- .../test/integ.exist-bus.expected.json | 2 +- .../test/integ.new-bus.expected.json | 6 +++--- .../aws-eventbridge-sns/test/integ.new-bus.ts | 2 +- .../test/eventbridge-sqs-queue.test.ts | 4 ++-- .../test/integ.exist-bus.expected.json | 2 +- .../test/integ.new-bus.expected.json | 6 +++--- .../aws-eventbridge-sqs/test/integ.new-bus.ts | 2 +- .../test/eventbridge-stepfunctions.test.ts | 4 ++-- ...ridge-stepfunctions-existing-eventbus.expected.json | 2 +- ...nteg.eventbridge-stepfunctions-existing-eventbus.ts | 2 +- ...ventbridge-stepfunctions-new-eventbus.expected.json | 6 +++--- .../integ.eventbridge-stepfunctions-new-eventbus.ts | 2 +- .../test/events-rule-kinesisfirehose-s3.test.ts | 4 ++-- ...-kinesisfirehose-s3-existing-eventbus.expected.json | 2 +- ...-rule-kinesisfirehose-s3-new-eventbus.expected.json | 6 +++--- ...nteg.events-rule-kinesisfirehose-s3-new-eventbus.ts | 2 +- .../test/events-rule-kinesisstreams.test.ts | 4 ++-- ...rule-kinesisstreams-existing-eventbus.expected.json | 2 +- ...ents-rule-kinesisstreams-new-eventbus.expected.json | 6 +++--- .../integ.events-rule-kinesisstreams-new-eventbus.ts | 2 +- .../test/events-rule-lambda.test.ts | 4 ++-- .../integ.eventsrule-existing-eventbus.expected.json | 2 +- .../test/integ.eventsrule-new-eventbus.expected.json | 6 +++--- .../test/integ.eventsrule-new-eventbus.ts | 2 +- .../test/events-rule-sns-topic.test.ts | 4 ++-- .../test/integ.exist-bus.expected.json | 2 +- .../test/integ.new-bus.expected.json | 6 +++--- .../aws-events-rule-sns/test/integ.new-bus.ts | 2 +- .../test/events-rule-sqs-queue.test.ts | 4 ++-- .../test/integ.exist-bus.expected.json | 2 +- .../test/integ.new-bus.expected.json | 6 +++--- .../aws-events-rule-sqs/test/integ.new-bus.ts | 2 +- .../test/events-rule-step-function.test.ts | 4 ++-- ...-rule-stepfunctions-existing-eventbus.expected.json | 2 +- ...nteg.events-rule-stepfunctions-existing-eventbus.ts | 2 +- ...vents-rule-stepfunctions-new-eventbus.expected.json | 6 +++--- .../integ.events-rule-stepfunctions-new-eventbus.ts | 2 +- .../test/aws-lambda-eventbridge.test.ts | 10 +++++----- .../integ.deployFunctionWithNewEventBus.expected.json | 8 ++++---- .../test/integ.deployFunctionWithNewEventBus.ts | 2 +- .../test/integ.existingEventBus.expected.json | 2 +- 54 files changed, 95 insertions(+), 95 deletions(-) diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/eventbridge-kinesisfirehose-s3.test.ts b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/eventbridge-kinesisfirehose-s3.test.ts index 9b53ce588..e100be6ae 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/eventbridge-kinesisfirehose-s3.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/eventbridge-kinesisfirehose-s3.test.ts @@ -152,7 +152,7 @@ test('check eventbus property, snapshot & eventbus exists', () => { source: ['solutionsconstructs'] } }, - eventBusProps: {} + eventBusProps: { eventBusName: 'test' } }; const construct = new EventbridgeToKinesisFirehoseToS3(stack, 'test-eventbridge-kinesis-firehose-default-parameters', props); @@ -177,7 +177,7 @@ test('check exception while passing existingEventBus & eventBusProps', () => { source: ['solutionsconstructs'] } }, - eventBusProps: {}, + eventBusProps: { eventBusName: 'test' }, existingEventBusInterface: new events.EventBus(stack, `test-existing-eventbus`, { eventBusName: 'test' }) }; diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.eventbridge-kinesisfirehose-s3-existing-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.eventbridge-kinesisfirehose-s3-existing-eventbus.expected.json index e248febfa..970f927f4 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.eventbridge-kinesisfirehose-s3-existing-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.eventbridge-kinesisfirehose-s3-existing-eventbus.expected.json @@ -4,7 +4,7 @@ "testexistingeventbusC6E4A2D0": { "Type": "AWS::Events::EventBus", "Properties": { - "Name": "eventbridgekinesisfirehoses3existingeventbustestexistingeventbus435085E6" + "Name": "test" } }, "testeventbridgekinesisfirehoses3KinesisFirehoseToS3S3BucketF3A3F845": { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.eventbridge-kinesisfirehose-s3-new-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.eventbridge-kinesisfirehose-s3-new-eventbus.expected.json index 2c4239278..928c57f69 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.eventbridge-kinesisfirehose-s3-new-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.eventbridge-kinesisfirehose-s3-new-eventbus.expected.json @@ -330,17 +330,17 @@ ] } }, - "testeventbridgekinesisfirehoses3CustomEventBusE21F8525": { + "testeventbridgekinesisfirehoses3testF99202BA": { "Type": "AWS::Events::EventBus", "Properties": { - "Name": "eventbridgekinesisfirehoses3neweventbustesteventbridgekinesisfirehoses3CustomEventBus9704AA81" + "Name": "test" } }, "testeventbridgekinesisfirehoses3EventsRule9641436B": { "Type": "AWS::Events::Rule", "Properties": { "EventBusName": { - "Ref": "testeventbridgekinesisfirehoses3CustomEventBusE21F8525" + "Ref": "testeventbridgekinesisfirehoses3testF99202BA" }, "EventPattern": { "source": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.eventbridge-kinesisfirehose-s3-new-eventbus.ts b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.eventbridge-kinesisfirehose-s3-new-eventbus.ts index 20cc214e6..7635e78b2 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.eventbridge-kinesisfirehose-s3-new-eventbus.ts +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.eventbridge-kinesisfirehose-s3-new-eventbus.ts @@ -27,7 +27,7 @@ const props: EventbridgeToKinesisFirehoseToS3Props = { source: ['solutionsconstructs'] } }, - eventBusProps: {}, + eventBusProps: { eventBusName: 'test' }, bucketProps: { removalPolicy: RemovalPolicy.DESTROY }, diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/eventbridge-kinesisstreams.test.ts b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/eventbridge-kinesisstreams.test.ts index 87669af95..4d045a339 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/eventbridge-kinesisstreams.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/eventbridge-kinesisstreams.test.ts @@ -97,7 +97,7 @@ test('check eventbus property, snapshot & eventbus exists', () => { source: ['solutionsconstructs'] } }, - eventBusProps: {} + eventBusProps: { eventBusName: 'test' } }; const construct = new EventbridgeToKinesisStreams(stack, 'test-eventbridge-kinesis-streams-default-parameters', props); diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/integ.eventbridge-kinesisstreams-existing-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/integ.eventbridge-kinesisstreams-existing-eventbus.expected.json index 04f24dce5..3b425ed84 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/integ.eventbridge-kinesisstreams-existing-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/integ.eventbridge-kinesisstreams-existing-eventbus.expected.json @@ -15,7 +15,7 @@ "existingeventbusA5B80487": { "Type": "AWS::Events::EventBus", "Properties": { - "Name": "eventbridgekinesisstreamsexistingeventbusexistingeventbus16C79224" + "Name": "test" } }, "testeventbridgekinesisstreamexistingeventsRoleDFC1450E": { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/integ.eventbridge-kinesisstreams-new-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/integ.eventbridge-kinesisstreams-new-eventbus.expected.json index feab67d79..44711a73f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/integ.eventbridge-kinesisstreams-new-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/integ.eventbridge-kinesisstreams-new-eventbus.expected.json @@ -60,17 +60,17 @@ ] } }, - "testeventbridgekinesisstreamCustomEventBus591309EC": { + "testeventbridgekinesisstreamtestDC87749D": { "Type": "AWS::Events::EventBus", "Properties": { - "Name": "eventbridgekinesisstreamsneweventbustesteventbridgekinesisstreamCustomEventBus825386CE" + "Name": "test" } }, "testeventbridgekinesisstreamEventsRuleC4E74981": { "Type": "AWS::Events::Rule", "Properties": { "EventBusName": { - "Ref": "testeventbridgekinesisstreamCustomEventBus591309EC" + "Ref": "testeventbridgekinesisstreamtestDC87749D" }, "EventPattern": { "source": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/integ.eventbridge-kinesisstreams-new-eventbus.ts b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/integ.eventbridge-kinesisstreams-new-eventbus.ts index 3a394dff5..5e439705b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/integ.eventbridge-kinesisstreams-new-eventbus.ts +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/integ.eventbridge-kinesisstreams-new-eventbus.ts @@ -25,7 +25,7 @@ const props: EventbridgeToKinesisStreamsProps = { source: ['solutionsconstructs'] } }, - eventBusProps: {} + eventBusProps: { eventBusName: 'test' } }; new EventbridgeToKinesisStreams(stack, 'test-eventbridge-kinesis-stream', props); diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/eventbridge-lambda.test.ts b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/eventbridge-lambda.test.ts index a9ea0bd77..d2f44dafe 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/eventbridge-lambda.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/eventbridge-lambda.test.ts @@ -39,7 +39,7 @@ function deployNewEventBus(stack: cdk.Stack) { runtime: lambda.Runtime.NODEJS_12_X, handler: 'index.handler' }, - eventBusProps: {}, + eventBusProps: { eventBusName: 'test' }, eventRuleProps: { eventPattern: { source: ['solutionsconstructs'] @@ -226,7 +226,7 @@ test('check exception while passing existingEventBus & eventBusProps', () => { source: ['solutionsconstructs'] } }, - eventBusProps: {}, + eventBusProps: { eventBusName: 'test' }, existingEventBusInterface: new events.EventBus(stack, `test-existing-eventbus`, { eventBusName: 'test' }) }; diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-existing-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-existing-eventbus.expected.json index 12319c016..efb15173d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-existing-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-existing-eventbus.expected.json @@ -3,7 +3,7 @@ "existingeventbusA5B80487": { "Type": "AWS::Events::EventBus", "Properties": { - "Name": "eventbridgeexistingeventbusexistingeventbus41AE8F43" + "Name": "test" } }, "testeventbridgelambdaLambdaFunctionServiceRole6D02CEEE": { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-new-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-new-eventbus.expected.json index d0338d9de..76f1cd437 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-new-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-new-eventbus.expected.json @@ -157,17 +157,17 @@ } } }, - "testeventbridgelambdaCustomEventBus9E4CA5AF": { + "testeventbridgelambdatest2F604440": { "Type": "AWS::Events::EventBus", "Properties": { - "Name": "eventbridgeneweventbustesteventbridgelambdaCustomEventBus9A92CCF0" + "Name": "test" } }, "testeventbridgelambdaEventsRule7DB0954D": { "Type": "AWS::Events::Rule", "Properties": { "EventBusName": { - "Ref": "testeventbridgelambdaCustomEventBus9E4CA5AF" + "Ref": "testeventbridgelambdatest2F604440" }, "EventPattern": { "source": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-new-eventbus.ts b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-new-eventbus.ts index 4bb790b9f..2247a9cf4 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-new-eventbus.ts +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-new-eventbus.ts @@ -26,7 +26,7 @@ const props: EventbridgeToLambdaProps = { runtime: lambda.Runtime.NODEJS_12_X, handler: 'index.handler' }, - eventBusProps: {}, + eventBusProps: { eventBusName: 'test' }, eventRuleProps: { eventPattern: { source: ['solutionsconstructs'] diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/test/eventbridge-sns-topic.test.ts b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/test/eventbridge-sns-topic.test.ts index fc66de33d..574cc5c18 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/test/eventbridge-sns-topic.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/test/eventbridge-sns-topic.test.ts @@ -33,7 +33,7 @@ function deployStackWithNewEventBus(stack: cdk.Stack) { source: ['solutionsconstructs'] } }, - eventBusProps: {} + eventBusProps: { eventBusName: 'test' } }; return new EventbridgeToSns(stack, 'test-neweventbus', props); } diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/test/integ.exist-bus.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/test/integ.exist-bus.expected.json index dd2d0fa67..5912865c5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/test/integ.exist-bus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/test/integ.exist-bus.expected.json @@ -3,7 +3,7 @@ "existingeventbusA5B80487": { "Type": "AWS::Events::EventBus", "Properties": { - "Name": "existbusexistingeventbus2F3AAC82" + "Name": "test" } }, "testconstructEncryptionKey6153B053": { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/test/integ.new-bus.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/test/integ.new-bus.expected.json index 2e03a11c5..ae88f913a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/test/integ.new-bus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/test/integ.new-bus.expected.json @@ -155,17 +155,17 @@ ] } }, - "testconstructCustomEventBusFBDE2130": { + "testconstructtest167F6979": { "Type": "AWS::Events::EventBus", "Properties": { - "Name": "newbustestconstructCustomEventBus62B63ED1" + "Name": "test" } }, "testconstructEventsRule145DBA20": { "Type": "AWS::Events::Rule", "Properties": { "EventBusName": { - "Ref": "testconstructCustomEventBusFBDE2130" + "Ref": "testconstructtest167F6979" }, "EventPattern": { "source": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/test/integ.new-bus.ts b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/test/integ.new-bus.ts index b938f1e34..0a2ec57d4 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/test/integ.new-bus.ts +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/test/integ.new-bus.ts @@ -24,7 +24,7 @@ const props: EventbridgeToSnsProps = { source: ['solutionsconstructs'] } }, - eventBusProps: {} // Pass props to create new custom EventBus + eventBusProps: { eventBusName: 'test' } // Pass props to create new custom EventBus }; new EventbridgeToSns(stack, 'test-construct', props); diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/test/eventbridge-sqs-queue.test.ts b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/test/eventbridge-sqs-queue.test.ts index 75d95be43..685c4d2b5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/test/eventbridge-sqs-queue.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/test/eventbridge-sqs-queue.test.ts @@ -33,7 +33,7 @@ function deployStackWithNewEventBus(stack: cdk.Stack) { source: ['solutionsconstructs'] } }, - eventBusProps: {} + eventBusProps: { eventBusName: 'test' } }; return new EventbridgeToSqs(stack, 'test-eventbridge-sqs-new-bus', props); } @@ -295,7 +295,7 @@ test('check exception while passing existingEventBus & eventBusProps', () => { source: ['solutionsconstructs'] } }, - eventBusProps: {}, + eventBusProps: { eventBusName: 'test' }, existingEventBusInterface: new events.EventBus(stack, `test-existing-new-eventbus`, { eventBusName: 'test' }) }; diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/test/integ.exist-bus.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/test/integ.exist-bus.expected.json index bebc8e2a5..3be5fc9ad 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/test/integ.exist-bus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/test/integ.exist-bus.expected.json @@ -97,7 +97,7 @@ "existingeventbusA5B80487": { "Type": "AWS::Events::EventBus", "Properties": { - "Name": "existbusexistingeventbus2F3AAC82" + "Name": "test" } }, "constructEventsRule43880ADB": { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/test/integ.new-bus.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/test/integ.new-bus.expected.json index b32e17be7..2e963eb6e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/test/integ.new-bus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/test/integ.new-bus.expected.json @@ -238,17 +238,17 @@ ] } }, - "constructCustomEventBusA674C94A": { + "constructtestD7FE2822": { "Type": "AWS::Events::EventBus", "Properties": { - "Name": "newbusconstructCustomEventBus7B12A72E" + "Name": "test" } }, "constructEventsRule43880ADB": { "Type": "AWS::Events::Rule", "Properties": { "EventBusName": { - "Ref": "constructCustomEventBusA674C94A" + "Ref": "constructtestD7FE2822" }, "EventPattern": { "source": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/test/integ.new-bus.ts b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/test/integ.new-bus.ts index 998f247a1..a7aee1aaa 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/test/integ.new-bus.ts +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/test/integ.new-bus.ts @@ -24,7 +24,7 @@ const props: EventbridgeToSqsProps = { source: ['solutionsconstructs'] } }, - eventBusProps: {} + eventBusProps: { eventBusName: 'test' } }; new EventbridgeToSqs(stack, 'construct', props); diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/eventbridge-stepfunctions.test.ts b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/eventbridge-stepfunctions.test.ts index c2d401bfd..ba8e5fd40 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/eventbridge-stepfunctions.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/eventbridge-stepfunctions.test.ts @@ -47,7 +47,7 @@ function deployNewStateMachineAndEventBus(stack: cdk.Stack) { source: ['solutionsconstructs'] } }, - eventBusProps: {} + eventBusProps: { eventBusName: 'test' } }; return new EventbridgeToStepfunctions(stack, 'test-eventbridge-stepfunctions-eventbus', props); @@ -160,7 +160,7 @@ test('check exception while passing existingEventBus & eventBusProps', () => { source: ['solutionsconstructs'] } }, - eventBusProps: {}, + eventBusProps: { eventBusName: 'test' }, existingEventBusInterface: new events.EventBus(stack, `test-existing-new-eventbus`, { eventBusName: 'test' }) }; diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-existing-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-existing-eventbus.expected.json index a17b65023..3370eeee0 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-existing-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-existing-eventbus.expected.json @@ -141,7 +141,7 @@ "existingeventbusA5B80487": { "Type": "AWS::Events::EventBus", "Properties": { - "Name": "eventbridgestepfunctionsexistingeventbusexistingeventbusDB14A441" + "Name": "test" } }, "testeventbridgestepfunctionsneweventbusconstructStateMachineLogGroup6DC6AD59": { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-existing-eventbus.ts b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-existing-eventbus.ts index 00c0f626b..6f9e0159e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-existing-eventbus.ts +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-existing-eventbus.ts @@ -37,7 +37,7 @@ const submitJob = new tasks.LambdaInvoke(stack, 'LambdaTask', { const startState = new stepfunctions.Pass(stack, 'StartState'); startState.next(submitJob); -const existingEventBus = new EventBus(stack, `existing-event-bus`, {}); +const existingEventBus = new EventBus(stack, `existing-event-bus`, { eventBusName: 'test'}); const props: EventbridgeToStepfunctionsProps = { stateMachineProps: { definition: startState, diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-new-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-new-eventbus.expected.json index 4f1046269..a40d60107 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-new-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-new-eventbus.expected.json @@ -352,17 +352,17 @@ ] } }, - "testeventbridgestepfunctionsneweventbusconstructCustomEventBusB298D5B4": { + "testeventbridgestepfunctionsneweventbusconstructtestE4F3554B": { "Type": "AWS::Events::EventBus", "Properties": { - "Name": "eventbridgestepfunctionsneweventbustesteventbridgestepfunctionsneweventbusconstructCustomEventBus19132B7D" + "Name": "test" } }, "testeventbridgestepfunctionsneweventbusconstructEventsRule471B9F20": { "Type": "AWS::Events::Rule", "Properties": { "EventBusName": { - "Ref": "testeventbridgestepfunctionsneweventbusconstructCustomEventBusB298D5B4" + "Ref": "testeventbridgestepfunctionsneweventbusconstructtestE4F3554B" }, "EventPattern": { "source": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-new-eventbus.ts b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-new-eventbus.ts index dddbc179c..f361c0ae8 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-new-eventbus.ts +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-new-eventbus.ts @@ -46,7 +46,7 @@ const props: EventbridgeToStepfunctionsProps = { source: ['solutionsconstructs'] } }, - eventBusProps: {}, + eventBusProps: { eventBusName: 'test' }, logGroupProps: { removalPolicy: RemovalPolicy.DESTROY }, diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/events-rule-kinesisfirehose-s3.test.ts b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/events-rule-kinesisfirehose-s3.test.ts index 3f7f6dd13..fc76cd671 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/events-rule-kinesisfirehose-s3.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/events-rule-kinesisfirehose-s3.test.ts @@ -152,7 +152,7 @@ test('check eventbus property, snapshot & eventbus exists', () => { source: ['solutionsconstructs'] } }, - eventBusProps: {} + eventBusProps: { eventBusName: 'test' } }; const construct = new EventsRuleToKinesisFirehoseToS3(stack, 'test-eventsrule-kinesis-firehose-default-parameters', props); @@ -177,7 +177,7 @@ test('check exception while passing existingEventBus & eventBusProps', () => { source: ['solutionsconstructs'] } }, - eventBusProps: {}, + eventBusProps: { eventBusName: 'test' }, existingEventBusInterface: new events.EventBus(stack, `test-existing-eventbus`, { eventBusName: 'test' }) }; diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.events-rule-kinesisfirehose-s3-existing-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.events-rule-kinesisfirehose-s3-existing-eventbus.expected.json index 375e81099..1fcff10c1 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.events-rule-kinesisfirehose-s3-existing-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.events-rule-kinesisfirehose-s3-existing-eventbus.expected.json @@ -4,7 +4,7 @@ "testexistingeventbusC6E4A2D0": { "Type": "AWS::Events::EventBus", "Properties": { - "Name": "eventsrulekinesisfirehoses3existingeventbustestexistingeventbus60C95343" + "Name": "test" } }, "testeventsrulekinesisfirehoses3testeventsrulekinesisfirehoses3WKinesisFirehoseToS3S3Bucket099FD6EC": { diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.events-rule-kinesisfirehose-s3-new-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.events-rule-kinesisfirehose-s3-new-eventbus.expected.json index 85ef330a8..c7fe70c9f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.events-rule-kinesisfirehose-s3-new-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.events-rule-kinesisfirehose-s3-new-eventbus.expected.json @@ -419,17 +419,17 @@ ] } }, - "testeventsrulekinesisfirehoses3testeventsrulekinesisfirehoses3WCustomEventBusB74FE76C": { + "testeventsrulekinesisfirehoses3testeventsrulekinesisfirehoses3WtestE0A7E7BD": { "Type": "AWS::Events::EventBus", "Properties": { - "Name": "eventsrulekinesisfirehoses3neweventbustesteventsrulekinesisfirehoses3testeventsrulekinesisfirehoses3WCustomEventBusAAD2F943" + "Name": "test" } }, "testeventsrulekinesisfirehoses3testeventsrulekinesisfirehoses3WEventsRule5A650994": { "Type": "AWS::Events::Rule", "Properties": { "EventBusName": { - "Ref": "testeventsrulekinesisfirehoses3testeventsrulekinesisfirehoses3WCustomEventBusB74FE76C" + "Ref": "testeventsrulekinesisfirehoses3testeventsrulekinesisfirehoses3WtestE0A7E7BD" }, "EventPattern": { "source": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.events-rule-kinesisfirehose-s3-new-eventbus.ts b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.events-rule-kinesisfirehose-s3-new-eventbus.ts index 338415e85..2b604b798 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.events-rule-kinesisfirehose-s3-new-eventbus.ts +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.events-rule-kinesisfirehose-s3-new-eventbus.ts @@ -27,7 +27,7 @@ const props: EventsRuleToKinesisFirehoseToS3Props = { source: ['solutionsconstructs'] } }, - eventBusProps: {}, + eventBusProps: { eventBusName: 'test' }, bucketProps: { removalPolicy: RemovalPolicy.DESTROY }, diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/test/events-rule-kinesisstreams.test.ts b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/test/events-rule-kinesisstreams.test.ts index c0c804049..ebec20aae 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/test/events-rule-kinesisstreams.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/test/events-rule-kinesisstreams.test.ts @@ -98,7 +98,7 @@ test('check eventbus property, snapshot & eventbus exists', () => { source: ['solutionsconstructs'] } }, - eventBusProps: {} + eventBusProps: { eventBusName: 'test' } }; const construct = new EventsRuleToKinesisStreams(stack, 'test-events-rule-kinesis-streams-default-parameters', props); @@ -119,7 +119,7 @@ test('check exception while passing existingEventBus & eventBusProps', () => { source: ['solutionsconstructs'] } }, - eventBusProps: {}, + eventBusProps: { eventBusName: 'test' }, existingEventBusInterface: new events.EventBus(stack, `test-existing-eventbus`, { eventBusName: 'test' }) }; diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/test/integ.events-rule-kinesisstreams-existing-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/test/integ.events-rule-kinesisstreams-existing-eventbus.expected.json index 13b1084b0..c00cedd12 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/test/integ.events-rule-kinesisstreams-existing-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/test/integ.events-rule-kinesisstreams-existing-eventbus.expected.json @@ -15,7 +15,7 @@ "existingeventbusA5B80487": { "Type": "AWS::Events::EventBus", "Properties": { - "Name": "eventsrulekinesisstreamsexistingeventbusexistingeventbus213FA4D6" + "Name": "test" } }, "testeventsrulekinesisstreamexistingtesteventsrulekinesisstreamexistingWeventsRole95F9546E": { diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/test/integ.events-rule-kinesisstreams-new-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/test/integ.events-rule-kinesisstreams-new-eventbus.expected.json index eff36c40e..b1f32e827 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/test/integ.events-rule-kinesisstreams-new-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/test/integ.events-rule-kinesisstreams-new-eventbus.expected.json @@ -60,17 +60,17 @@ ] } }, - "testeventsrulekinesisstreamtesteventsrulekinesisstreamWCustomEventBusAF7D2D89": { + "testeventsrulekinesisstreamtesteventsrulekinesisstreamWtestFD85A614": { "Type": "AWS::Events::EventBus", "Properties": { - "Name": "eventsrulekinesisstreamsneweventbustesteventsrulekinesisstreamtesteventsrulekinesisstreamWCustomEventBusB7D74ACD" + "Name": "test" } }, "testeventsrulekinesisstreamtesteventsrulekinesisstreamWEventsRuleC03ABB43": { "Type": "AWS::Events::Rule", "Properties": { "EventBusName": { - "Ref": "testeventsrulekinesisstreamtesteventsrulekinesisstreamWCustomEventBusAF7D2D89" + "Ref": "testeventsrulekinesisstreamtesteventsrulekinesisstreamWtestFD85A614" }, "EventPattern": { "source": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/test/integ.events-rule-kinesisstreams-new-eventbus.ts b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/test/integ.events-rule-kinesisstreams-new-eventbus.ts index e8efdb83a..c8ed2e9c6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/test/integ.events-rule-kinesisstreams-new-eventbus.ts +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/test/integ.events-rule-kinesisstreams-new-eventbus.ts @@ -25,7 +25,7 @@ const props: EventsRuleToKinesisStreamsProps = { source: ['solutionsconstructs'] } }, - eventBusProps: {} + eventBusProps: { eventBusName: 'test'} }; new EventsRuleToKinesisStreams(stack, 'test-eventsrule-kinesis-stream', props); diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/events-rule-lambda.test.ts b/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/events-rule-lambda.test.ts index b466fd943..a18715051 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/events-rule-lambda.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/events-rule-lambda.test.ts @@ -39,7 +39,7 @@ function deployNewEventBus(stack: cdk.Stack) { runtime: lambda.Runtime.NODEJS_12_X, handler: 'index.handler' }, - eventBusProps: {}, + eventBusProps: { eventBusName: 'test' }, eventRuleProps: { eventPattern: { source: ['solutionsconstructs'] @@ -227,7 +227,7 @@ test('check exception while passing existingEventBus & eventBusProps', () => { source: ['solutionsconstructs'] } }, - eventBusProps: {}, + eventBusProps: { eventBusName: 'test' }, existingEventBusInterface: new events.EventBus(stack, `test-existing-eventbus`, { eventBusName: 'test' }) }; diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.eventsrule-existing-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.eventsrule-existing-eventbus.expected.json index a1ca89d65..757363939 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.eventsrule-existing-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.eventsrule-existing-eventbus.expected.json @@ -3,7 +3,7 @@ "existingeventbusA5B80487": { "Type": "AWS::Events::EventBus", "Properties": { - "Name": "eventsruleexistingeventbusexistingeventbusD8C5305D" + "Name": "test" } }, "testeventsrulelambdatesteventsrulelambdaWLambdaFunctionServiceRole9CD42F77": { diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.eventsrule-new-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.eventsrule-new-eventbus.expected.json index c84674663..0ea3ceaa6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.eventsrule-new-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.eventsrule-new-eventbus.expected.json @@ -157,17 +157,17 @@ } } }, - "testeventsrulelambdatesteventsrulelambdaWCustomEventBusB98BC01F": { + "testeventsrulelambdatesteventsrulelambdaWtest4B1132ED": { "Type": "AWS::Events::EventBus", "Properties": { - "Name": "eventsruleneweventbustesteventsrulelambdatesteventsrulelambdaWCustomEventBusDD753DF4" + "Name": "test" } }, "testeventsrulelambdatesteventsrulelambdaWEventsRule08BAF3CA": { "Type": "AWS::Events::Rule", "Properties": { "EventBusName": { - "Ref": "testeventsrulelambdatesteventsrulelambdaWCustomEventBusB98BC01F" + "Ref": "testeventsrulelambdatesteventsrulelambdaWtest4B1132ED" }, "EventPattern": { "source": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.eventsrule-new-eventbus.ts b/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.eventsrule-new-eventbus.ts index 32b516615..b4c48a68d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.eventsrule-new-eventbus.ts +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.eventsrule-new-eventbus.ts @@ -26,7 +26,7 @@ const props: EventsRuleToLambdaProps = { runtime: lambda.Runtime.NODEJS_12_X, handler: 'index.handler' }, - eventBusProps: {}, + eventBusProps: { eventBusName: 'test' }, eventRuleProps: { eventPattern: { source: ['solutionsconstructs'] diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/test/events-rule-sns-topic.test.ts b/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/test/events-rule-sns-topic.test.ts index 43f294c76..297afd7cd 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/test/events-rule-sns-topic.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/test/events-rule-sns-topic.test.ts @@ -33,7 +33,7 @@ function deployStackWithNewEventBus(stack: cdk.Stack) { source: ['solutionsconstructs'] } }, - eventBusProps: {} + eventBusProps: { eventBusName: 'test' } }; return new EventsRuleToSns(stack, 'test-neweventbus', props); } @@ -234,7 +234,7 @@ test('check exception while passing existingEventBus & eventBusProps', () => { source: ['solutionsconstructs'] } }, - eventBusProps: {}, + eventBusProps: { eventBusName: 'test' }, existingEventBusInterface: new events.EventBus(stack, `test-existing-new-eventbus`, { eventBusName: 'test' }) }; diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/test/integ.exist-bus.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/test/integ.exist-bus.expected.json index 288a2e913..df2df167d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/test/integ.exist-bus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/test/integ.exist-bus.expected.json @@ -3,7 +3,7 @@ "eventbus7CF8FDD5": { "Type": "AWS::Events::EventBus", "Properties": { - "Name": "existbuseventbus683F9152" + "Name": "test" } }, "testtestWEncryptionKeyC6B126B6": { diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/test/integ.new-bus.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/test/integ.new-bus.expected.json index 2ddc98a5c..d095259c8 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/test/integ.new-bus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/test/integ.new-bus.expected.json @@ -155,17 +155,17 @@ ] } }, - "testtestWCustomEventBus372F1AD4": { + "testtestWtest35497CE7": { "Type": "AWS::Events::EventBus", "Properties": { - "Name": "newbustesttestWCustomEventBusB6F6BBD3" + "Name": "test" } }, "testtestWEventsRuleDF9938A8": { "Type": "AWS::Events::Rule", "Properties": { "EventBusName": { - "Ref": "testtestWCustomEventBus372F1AD4" + "Ref": "testtestWtest35497CE7" }, "EventPattern": { "source": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/test/integ.new-bus.ts b/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/test/integ.new-bus.ts index 3d3d2fe40..b90d53b2b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/test/integ.new-bus.ts +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/test/integ.new-bus.ts @@ -24,7 +24,7 @@ const props: EventsRuleToSnsProps = { source: ['solutionsconstructs'] } }, - eventBusProps: {} // Pass props to create new custom EventBus + eventBusProps: { eventBusName: 'test' } // Pass props to create new custom EventBus }; new EventsRuleToSns(stack, 'test', props); diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/test/events-rule-sqs-queue.test.ts b/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/test/events-rule-sqs-queue.test.ts index 62ee785fa..ad02910c4 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/test/events-rule-sqs-queue.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/test/events-rule-sqs-queue.test.ts @@ -33,7 +33,7 @@ function deployStackWithNewEventBus(stack: cdk.Stack) { source: ['solutionsconstructs'] } }, - eventBusProps: {} + eventBusProps: { eventBusName: 'test' } }; return new EventsRuleToSqs(stack, 'test-eventsrule-sqs-new-bus', props); } @@ -295,7 +295,7 @@ test('check exception while passing existingEventBus & eventBusProps', () => { source: ['solutionsconstructs'] } }, - eventBusProps: {}, + eventBusProps: { eventBusName: 'test' }, existingEventBusInterface: new events.EventBus(stack, `test-existing-new-eventbus`, { eventBusName: 'test' }) }; diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/test/integ.exist-bus.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/test/integ.exist-bus.expected.json index 87e6d5923..f9f30e760 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/test/integ.exist-bus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/test/integ.exist-bus.expected.json @@ -97,7 +97,7 @@ "existingeventbusA5B80487": { "Type": "AWS::Events::EventBus", "Properties": { - "Name": "existbusexistingeventbus2F3AAC82" + "Name": "test" } }, "constructconstructWEventsRule8EB974AE": { diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/test/integ.new-bus.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/test/integ.new-bus.expected.json index 3284fc7ad..c32b32230 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/test/integ.new-bus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/test/integ.new-bus.expected.json @@ -238,17 +238,17 @@ ] } }, - "ersqsersqsWCustomEventBus3249194C": { + "ersqsersqsWtest4DB8C602": { "Type": "AWS::Events::EventBus", "Properties": { - "Name": "newbusersqsersqsWCustomEventBusADE03031" + "Name": "test" } }, "ersqsersqsWEventsRule017C5D22": { "Type": "AWS::Events::Rule", "Properties": { "EventBusName": { - "Ref": "ersqsersqsWCustomEventBus3249194C" + "Ref": "ersqsersqsWtest4DB8C602" }, "EventPattern": { "source": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/test/integ.new-bus.ts b/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/test/integ.new-bus.ts index 113ac1a97..f1f1fd111 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/test/integ.new-bus.ts +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/test/integ.new-bus.ts @@ -24,7 +24,7 @@ const props: EventsRuleToSqsProps = { source: ['solutionsconstructs'] } }, - eventBusProps: {} + eventBusProps: { eventBusName: 'test' } }; new EventsRuleToSqs(stack, 'ersqs', props); diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/events-rule-step-function.test.ts b/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/events-rule-step-function.test.ts index 23f2d9cf1..a4c932851 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/events-rule-step-function.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/events-rule-step-function.test.ts @@ -47,7 +47,7 @@ function deployNewStateMachineAndEventBus(stack: cdk.Stack) { source: ['solutionsconstructs'] } }, - eventBusProps: {} + eventBusProps: { eventBusName: 'test' } }; return new EventsRuleToStepFunction(stack, 'test-eventrules-stepfunctions-eventbus', props); @@ -160,7 +160,7 @@ test('check exception while passing existingEventBus & eventBusProps', () => { source: ['solutionsconstructs'] } }, - eventBusProps: {}, + eventBusProps: { eventBusName: 'test' }, existingEventBusInterface: new events.EventBus(stack, `test-existing-new-eventbus`, { eventBusName: 'test' }) }; diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-stepfunctions-existing-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-stepfunctions-existing-eventbus.expected.json index 453f70571..444438189 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-stepfunctions-existing-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-stepfunctions-existing-eventbus.expected.json @@ -141,7 +141,7 @@ "existingeventbusA5B80487": { "Type": "AWS::Events::EventBus", "Properties": { - "Name": "eventsrulestepfunctionsexistingeventbusexistingeventbus1ED36585" + "Name": "test" } }, "testeventsrulestepfunctionsneweventbusconstructtesteventsrulestepfunctionsneweventbusconstructWStateMachineLogGroupCB5738F2": { diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-stepfunctions-existing-eventbus.ts b/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-stepfunctions-existing-eventbus.ts index e7a33f33c..e42286533 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-stepfunctions-existing-eventbus.ts +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-stepfunctions-existing-eventbus.ts @@ -37,7 +37,7 @@ const submitJob = new tasks.LambdaInvoke(stack, 'LambdaTask', { const startState = new stepfunctions.Pass(stack, 'StartState'); startState.next(submitJob); -const existingEventBus = new EventBus(stack, `existing-event-bus`, {}); +const existingEventBus = new EventBus(stack, `existing-event-bus`, { eventBusName: 'test' }); const props: EventsRuleToStepFunctionProps = { stateMachineProps: { definition: startState, diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-stepfunctions-new-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-stepfunctions-new-eventbus.expected.json index b690fb064..c0c04ed34 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-stepfunctions-new-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-stepfunctions-new-eventbus.expected.json @@ -352,17 +352,17 @@ ] } }, - "testeventsrulestepfunctionsneweventbusconstructtesteventsrulestepfunctionsneweventbusconstructWCustomEventBusCEDEBDA4": { + "testeventsrulestepfunctionsneweventbusconstructtesteventsrulestepfunctionsneweventbusconstructWtestF5C66BC1": { "Type": "AWS::Events::EventBus", "Properties": { - "Name": "eventsrulestepfunctionsneweventbustesteventsrulestepfunctionsneweventbusconstructtesteventsrulestepfunctionsneweventbusconstructWCustomEventBus7D1AA353" + "Name": "test" } }, "testeventsrulestepfunctionsneweventbusconstructtesteventsrulestepfunctionsneweventbusconstructWEventsRule2EC401DF": { "Type": "AWS::Events::Rule", "Properties": { "EventBusName": { - "Ref": "testeventsrulestepfunctionsneweventbusconstructtesteventsrulestepfunctionsneweventbusconstructWCustomEventBusCEDEBDA4" + "Ref": "testeventsrulestepfunctionsneweventbusconstructtesteventsrulestepfunctionsneweventbusconstructWtestF5C66BC1" }, "EventPattern": { "source": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-stepfunctions-new-eventbus.ts b/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-stepfunctions-new-eventbus.ts index b4ecf72d5..73cc202db 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-stepfunctions-new-eventbus.ts +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-stepfunctions-new-eventbus.ts @@ -46,7 +46,7 @@ const props: EventsRuleToStepFunctionProps = { source: ['solutionsconstructs'] } }, - eventBusProps: {}, + eventBusProps: { eventBusName: 'test' }, logGroupProps: { removalPolicy: RemovalPolicy.DESTROY }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/aws-lambda-eventbridge.test.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/aws-lambda-eventbridge.test.ts index c914dadd0..8fdba61d3 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/aws-lambda-eventbridge.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/aws-lambda-eventbridge.test.ts @@ -160,7 +160,7 @@ test("Test bad call with existingVpc and deployVpc", () => { handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, - eventBusProps: {}, + eventBusProps: { eventBusName: 'test' }, existingEventBusInterface: new events.EventBus(stack, `new-event-bus`, { eventBusName: 'test' }) }); }; @@ -442,7 +442,7 @@ test('check multiple constructs in a single stack', () => { runtime: lambda.Runtime.NODEJS_12_X, handler: 'index.handler' }, - eventBusProps: {} + eventBusProps: { eventBusName: 'test' } }; new LambdaToEventbridge(stack, 'test-new-lambda-eventbridge1', props); new LambdaToEventbridge(stack, 'test-new-lambda-eventbridge2', props); @@ -458,7 +458,7 @@ test('check multiple lambda functions publishing to single event bus', () => { runtime: lambda.Runtime.NODEJS_12_X, handler: 'index.handler' }, - eventBusProps: {} + eventBusProps: { eventBusName: 'test' } }; const construct = new LambdaToEventbridge(stack, 'test-new-lambda-eventbridge1', props1); @@ -488,7 +488,7 @@ test('check multiple lambda functions publishing to single event bus', () => { Effect: "Allow", Resource: { "Fn::GetAtt": [ - "testnewlambdaeventbridge1CustomEventBusA089F10A", + "testnewlambdaeventbridge1test13E0B622", "Arn" ] } @@ -505,7 +505,7 @@ test('check multiple lambda functions publishing to single event bus', () => { Variables: { AWS_NODEJS_CONNECTION_REUSE_ENABLED: '1', EVENTBUS_NAME: { - Ref: "testnewlambdaeventbridge1CustomEventBusA089F10A" + Ref: "testnewlambdaeventbridge1test13E0B622" } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithNewEventBus.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithNewEventBus.expected.json index 2c8475487..0aaa124fe 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithNewEventBus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithNewEventBus.expected.json @@ -85,7 +85,7 @@ "Effect": "Allow", "Resource": { "Fn::GetAtt": [ - "testlambdaeventbridgeCustomEventBus5F110E81", + "testlambdaeventbridgetest01C41A39", "Arn" ] } @@ -160,7 +160,7 @@ "Variables": { "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1", "EVENTBUS_NAME": { - "Ref": "testlambdaeventbridgeCustomEventBus5F110E81" + "Ref": "testlambdaeventbridgetest01C41A39" } } }, @@ -214,10 +214,10 @@ } } }, - "testlambdaeventbridgeCustomEventBus5F110E81": { + "testlambdaeventbridgetest01C41A39": { "Type": "AWS::Events::EventBus", "Properties": { - "Name": "deployFunctionWithNewEventBustestlambdaeventbridgeCustomEventBusF8520BFF" + "Name": "test" } }, "Vpc8378EB38": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithNewEventBus.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithNewEventBus.ts index 670b11223..8d8226323 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithNewEventBus.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithNewEventBus.ts @@ -30,7 +30,7 @@ const props: LambdaToEventbridgeProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, deployVpc: true, - eventBusProps: {} + eventBusProps: { eventBusName: 'test' } }; new LambdaToEventbridge(stack, "test-lambda-eventbridge", props); diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingEventBus.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingEventBus.expected.json index 2296a7c2d..adb03ddbc 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingEventBus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingEventBus.expected.json @@ -155,7 +155,7 @@ "existingeventbusA5B80487": { "Type": "AWS::Events::EventBus", "Properties": { - "Name": "existingEventBusexistingeventbus3651CF44" + "Name": "test" } } }, From ce9532b4c0e7345578faa68cf476b34709287f51 Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Tue, 30 Nov 2021 08:53:47 -0500 Subject: [PATCH 14/67] chore(alb-helper.ts refactor): Change alb-helper structure to accomodate Fargate targets (#510) * Refactored ALB handling * Remove commented out old tests --- .../aws-alb-lambda/lib/index.ts | 66 ++- ....privateApiExistingResources.expected.json | 42 +- ...integ.privateApiNewResources.expected.json | 42 +- ...g.publicApiExistingResources.expected.json | 42 +- .../integ.publicApiNewResources.expected.json | 42 +- .../test/integ.twoTargets.expected.json | 42 +- .../core/lib/alb-helper.ts | 60 ++- .../core/test/alb-helper.test.ts | 407 +++++++++--------- 8 files changed, 368 insertions(+), 375 deletions(-) diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/lib/index.ts b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/lib/index.ts index 2e489a782..d2d989086 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/lib/index.ts +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/lib/index.ts @@ -18,6 +18,7 @@ import * as lambda from "@aws-cdk/aws-lambda"; import { Construct } from "@aws-cdk/core"; import * as defaults from "@aws-solutions-constructs/core"; import { CfnListener, CfnTargetGroup } from "@aws-cdk/aws-elasticloadbalancingv2"; +import { GetActiveListener } from "@aws-solutions-constructs/core"; export interface AlbToLambdaProps { /** @@ -199,56 +200,41 @@ export class AlbToLambda extends Construct { vpc: this.vpc, }); + let newListener: boolean; if (this.loadBalancer.listeners.length === 0) { - // This is a new listener, we need to create it along with the default target - const newTargetGroup = defaults.CreateLambdaTargetGroup(this, - `tg${this.loadBalancer.listeners.length + 1}`, - this.lambdaFunction, - props.targetProps); + newListener = true; + } else { + newListener = false; + } + + // If there's no listener, then we add one here + if (newListener) { this.listener = defaults.AddListener( this, this.loadBalancer, - newTargetGroup, props.listenerProps ); - // Testing occasionally caused a TargetGroup not found error, this - // code ensures the Group will be complete before the Listener tries - // to access it. - const newListener = this.listener.node.defaultChild as CfnListener; - const cfnTargetGroup = newTargetGroup.node.defaultChild as CfnTargetGroup; - newListener.addDependsOn(cfnTargetGroup); } else { - // We're adding a target to an existing listener. If this.loadBalancer.listeners.length - // is >0, then this.loadBalancer was set from existingLoadBalancer this.listener = GetActiveListener(this.loadBalancer.listeners); - defaults.AddTarget( - this, - defaults.CreateLambdaTargetGroup( - this, - `tg${this.loadBalancer.listeners.length + 1}`, - this.lambdaFunction, - props.targetProps - ), - this.listener, - props.ruleProps - ); } - } -} - -function GetActiveListener(listeners: elb.ApplicationListener[]): elb.ApplicationListener { - let listener: elb.ApplicationListener; - if (listeners.length === 1 ) { - listener = listeners[0]; - } else { - const correctListener = listeners.find(i => (i.node.children[0] as elb.CfnListener).protocol === "HTTPS"); - if (correctListener) { - listener = correctListener; - } else { - // This line should be unreachable - throw new Error(`Two listeners in the ALB, but neither are HTTPS`); + const newTargetGroup = defaults.AddLambdaTarget( + this, + `tg${this.loadBalancer.listeners.length + 1}`, + this.listener, + this.lambdaFunction, + props.ruleProps, + props.targetProps); + + // this.listener needs to be set on the construct. + // could be above: else { defaults.GetActiveListener } + // do we then move that funcionality back into the construct (not the function). If so do + // we leave it in AddNewTarget or just do it here and pass the listener? + if (newListener && this.listener) { + const levelOneListener = this.listener.node.defaultChild as CfnListener; + const cfnTargetGroup = newTargetGroup.node.defaultChild as CfnTargetGroup; + levelOneListener.addDependsOn(cfnTargetGroup); } + } - return listener; } diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiExistingResources.expected.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiExistingResources.expected.json index abfa11540..334a6000d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiExistingResources.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiExistingResources.expected.json @@ -1084,32 +1084,13 @@ } } }, - "testonetg1tgDC5C1350": { - "Type": "AWS::ElasticLoadBalancingV2::TargetGroup", - "Properties": { - "Targets": [ - { - "Id": { - "Fn::GetAtt": [ - "LambdaFunctionBF21E41F", - "Arn" - ] - } - } - ], - "TargetType": "lambda" - }, - "DependsOn": [ - "LambdaFunctionInvokeServicePrincipalelasticloadbalancingamazonawscom842E1595" - ] - }, "testonelistener5EBC4D40": { "Type": "AWS::ElasticLoadBalancingV2::Listener", "Properties": { "DefaultActions": [ { "TargetGroupArn": { - "Ref": "testonetg1tgDC5C1350" + "Ref": "testonetg2tg6459EC7C" }, "Type": "forward" } @@ -1121,7 +1102,7 @@ "Protocol": "HTTP" }, "DependsOn": [ - "testonetg1tgDC5C1350" + "testonetg2tg6459EC7C" ], "Metadata": { "cfn_nag": { @@ -1133,6 +1114,25 @@ ] } } + }, + "testonetg2tg6459EC7C": { + "Type": "AWS::ElasticLoadBalancingV2::TargetGroup", + "Properties": { + "Targets": [ + { + "Id": { + "Fn::GetAtt": [ + "LambdaFunctionBF21E41F", + "Arn" + ] + } + } + ], + "TargetType": "lambda" + }, + "DependsOn": [ + "LambdaFunctionInvokeServicePrincipalelasticloadbalancingamazonawscom842E1595" + ] } }, "Parameters": { diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiNewResources.expected.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiNewResources.expected.json index aa0ccb4b9..c2e721023 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiNewResources.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiNewResources.expected.json @@ -435,32 +435,13 @@ "Principal": "elasticloadbalancing.amazonaws.com" } }, - "testonetg1tgDC5C1350": { - "Type": "AWS::ElasticLoadBalancingV2::TargetGroup", - "Properties": { - "Targets": [ - { - "Id": { - "Fn::GetAtt": [ - "testoneLambdaFunctionCC9B03E1", - "Arn" - ] - } - } - ], - "TargetType": "lambda" - }, - "DependsOn": [ - "testoneLambdaFunctionInvokeServicePrincipalelasticloadbalancingamazonawscom776E5E70" - ] - }, "testonelistener5EBC4D40": { "Type": "AWS::ElasticLoadBalancingV2::Listener", "Properties": { "DefaultActions": [ { "TargetGroupArn": { - "Ref": "testonetg1tgDC5C1350" + "Ref": "testonetg2tg6459EC7C" }, "Type": "forward" } @@ -472,7 +453,7 @@ "Protocol": "HTTP" }, "DependsOn": [ - "testonetg1tgDC5C1350" + "testonetg2tg6459EC7C" ], "Metadata": { "cfn_nag": { @@ -485,6 +466,25 @@ } } }, + "testonetg2tg6459EC7C": { + "Type": "AWS::ElasticLoadBalancingV2::TargetGroup", + "Properties": { + "Targets": [ + { + "Id": { + "Fn::GetAtt": [ + "testoneLambdaFunctionCC9B03E1", + "Arn" + ] + } + } + ], + "TargetType": "lambda" + }, + "DependsOn": [ + "testoneLambdaFunctionInvokeServicePrincipalelasticloadbalancingamazonawscom776E5E70" + ] + }, "Vpc8378EB38": { "Type": "AWS::EC2::VPC", "Properties": { diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiExistingResources.expected.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiExistingResources.expected.json index f8912801d..d2a79bb35 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiExistingResources.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiExistingResources.expected.json @@ -1084,32 +1084,13 @@ } } }, - "testonetg1tgDC5C1350": { - "Type": "AWS::ElasticLoadBalancingV2::TargetGroup", - "Properties": { - "Targets": [ - { - "Id": { - "Fn::GetAtt": [ - "LambdaFunctionBF21E41F", - "Arn" - ] - } - } - ], - "TargetType": "lambda" - }, - "DependsOn": [ - "LambdaFunctionInvokeServicePrincipalelasticloadbalancingamazonawscom842E1595" - ] - }, "testonelistener5EBC4D40": { "Type": "AWS::ElasticLoadBalancingV2::Listener", "Properties": { "DefaultActions": [ { "TargetGroupArn": { - "Ref": "testonetg1tgDC5C1350" + "Ref": "testonetg2tg6459EC7C" }, "Type": "forward" } @@ -1121,7 +1102,7 @@ "Protocol": "HTTP" }, "DependsOn": [ - "testonetg1tgDC5C1350" + "testonetg2tg6459EC7C" ], "Metadata": { "cfn_nag": { @@ -1133,6 +1114,25 @@ ] } } + }, + "testonetg2tg6459EC7C": { + "Type": "AWS::ElasticLoadBalancingV2::TargetGroup", + "Properties": { + "Targets": [ + { + "Id": { + "Fn::GetAtt": [ + "LambdaFunctionBF21E41F", + "Arn" + ] + } + } + ], + "TargetType": "lambda" + }, + "DependsOn": [ + "LambdaFunctionInvokeServicePrincipalelasticloadbalancingamazonawscom842E1595" + ] } }, "Parameters": { diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiNewResources.expected.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiNewResources.expected.json index 4d8a45b3b..af91bcc3f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiNewResources.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiNewResources.expected.json @@ -438,32 +438,13 @@ "Principal": "elasticloadbalancing.amazonaws.com" } }, - "testonetg1tgDC5C1350": { - "Type": "AWS::ElasticLoadBalancingV2::TargetGroup", - "Properties": { - "Targets": [ - { - "Id": { - "Fn::GetAtt": [ - "testoneLambdaFunctionCC9B03E1", - "Arn" - ] - } - } - ], - "TargetType": "lambda" - }, - "DependsOn": [ - "testoneLambdaFunctionInvokeServicePrincipalelasticloadbalancingamazonawscom776E5E70" - ] - }, "testonelistener5EBC4D40": { "Type": "AWS::ElasticLoadBalancingV2::Listener", "Properties": { "DefaultActions": [ { "TargetGroupArn": { - "Ref": "testonetg1tgDC5C1350" + "Ref": "testonetg2tg6459EC7C" }, "Type": "forward" } @@ -475,7 +456,7 @@ "Protocol": "HTTP" }, "DependsOn": [ - "testonetg1tgDC5C1350" + "testonetg2tg6459EC7C" ], "Metadata": { "cfn_nag": { @@ -488,6 +469,25 @@ } } }, + "testonetg2tg6459EC7C": { + "Type": "AWS::ElasticLoadBalancingV2::TargetGroup", + "Properties": { + "Targets": [ + { + "Id": { + "Fn::GetAtt": [ + "testoneLambdaFunctionCC9B03E1", + "Arn" + ] + } + } + ], + "TargetType": "lambda" + }, + "DependsOn": [ + "testoneLambdaFunctionInvokeServicePrincipalelasticloadbalancingamazonawscom776E5E70" + ] + }, "Vpc8378EB38": { "Type": "AWS::EC2::VPC", "Properties": { diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.twoTargets.expected.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.twoTargets.expected.json index 1d79a584d..ea96c15d9 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.twoTargets.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.twoTargets.expected.json @@ -438,32 +438,13 @@ "Principal": "elasticloadbalancing.amazonaws.com" } }, - "testonetg1tgDC5C1350": { - "Type": "AWS::ElasticLoadBalancingV2::TargetGroup", - "Properties": { - "Targets": [ - { - "Id": { - "Fn::GetAtt": [ - "testoneLambdaFunctionCC9B03E1", - "Arn" - ] - } - } - ], - "TargetType": "lambda" - }, - "DependsOn": [ - "testoneLambdaFunctionInvokeServicePrincipalelasticloadbalancingamazonawscom776E5E70" - ] - }, "testonelistener5EBC4D40": { "Type": "AWS::ElasticLoadBalancingV2::Listener", "Properties": { "DefaultActions": [ { "TargetGroupArn": { - "Ref": "testonetg1tgDC5C1350" + "Ref": "testonetg2tg6459EC7C" }, "Type": "forward" } @@ -475,7 +456,7 @@ "Protocol": "HTTP" }, "DependsOn": [ - "testonetg1tgDC5C1350" + "testonetg2tg6459EC7C" ], "Metadata": { "cfn_nag": { @@ -515,6 +496,25 @@ "Priority": 10 } }, + "testonetg2tg6459EC7C": { + "Type": "AWS::ElasticLoadBalancingV2::TargetGroup", + "Properties": { + "Targets": [ + { + "Id": { + "Fn::GetAtt": [ + "testoneLambdaFunctionCC9B03E1", + "Arn" + ] + } + } + ], + "TargetType": "lambda" + }, + "DependsOn": [ + "testoneLambdaFunctionInvokeServicePrincipalelasticloadbalancingamazonawscom776E5E70" + ] + }, "Vpc8378EB38": { "Type": "AWS::EC2::VPC", "Properties": { diff --git a/source/patterns/@aws-solutions-constructs/core/lib/alb-helper.ts b/source/patterns/@aws-solutions-constructs/core/lib/alb-helper.ts index 7034fbfba..d75fddfa2 100644 --- a/source/patterns/@aws-solutions-constructs/core/lib/alb-helper.ts +++ b/source/patterns/@aws-solutions-constructs/core/lib/alb-helper.ts @@ -30,15 +30,15 @@ export function ObtainAlb( id: string, vpc: ec2.IVpc, publicApi: boolean, - existingLoadBalancerInterface?: elb.ApplicationLoadBalancer, + existingLoadBalancerObj?: elb.ApplicationLoadBalancer, loadBalancerProps?: elb.ApplicationLoadBalancerProps | any, logAccessLogs?: boolean, loggingBucketProps?: s3.BucketProps ): elb.ApplicationLoadBalancer { let loadBalancer: elb.ApplicationLoadBalancer; - if (existingLoadBalancerInterface) { - loadBalancer = existingLoadBalancerInterface; + if (existingLoadBalancerObj) { + loadBalancer = existingLoadBalancerObj; } else { const consolidatedProps = loadBalancerProps ? overrideProps(loadBalancerProps, { vpc, internetFacing: publicApi }) @@ -62,7 +62,6 @@ export function ObtainAlb( export function AddListener( scope: Construct, loadBalancer: elb.ApplicationLoadBalancer, - targetGroup: elb.ApplicationTargetGroup, listenerProps: elb.ApplicationListenerProps | any ): elb.ApplicationListener { let consolidatedListenerProps: elb.ApplicationListenerProps; @@ -114,39 +113,58 @@ export function AddListener( loadBalancer.listeners.push(httpListener); } - AddTarget(scope, targetGroup, listener); return listener; } -export function CreateLambdaTargetGroup( +// Creates a Target Group for Lambda functions and adds the +// provided functions as a target to that group. Then adds +// the new Target Group to the provided Listener. The expectaion +// is that Lambda specific code is included here, and next we will +// add AddFargateTarget(), with Fargate specific code isolated in that +// function. +export function AddLambdaTarget( scope: Construct, id: string, + currentListener: elb.ApplicationListener, lambdaFunction: lambda.IFunction, - targetProps?: elb.ApplicationTargetGroupProps -): elb.ApplicationTargetGroup { + ruleProps?: elb.AddRuleProps, + targetProps?: elb.ApplicationTargetGroupProps, +): elb.ApplicationTargetGroup { + + // Create the target and assign it to a new target group const lambdaTarget = new elbt.LambdaTarget(lambdaFunction); - return new elb.ApplicationTargetGroup(scope, `${id}-tg`, { + const newTargetGroup = new elb.ApplicationTargetGroup(scope, `${id}-tg`, { targets: [lambdaTarget], targetGroupName: targetProps ? targetProps.targetGroupName : undefined, healthCheck: targetProps ? targetProps.healthCheck : undefined }); -} -export function AddTarget( - scope: Construct, - targetGroup: elb.ApplicationTargetGroup, - listener: elb.ApplicationListener, - ruleProps?: elb.AddRuleProps -) { // AddRuleProps includes conditions and priority, combine that with targetGroups and // we can assemble AddApplicationTargetGroupProps if (ruleProps) { - const consolidatedTargetProps = overrideProps(ruleProps, { targetGroups: [targetGroup] }); - listener.addTargetGroups(`${scope.node.id}-targets`, consolidatedTargetProps); + const consolidatedTargetProps = overrideProps(ruleProps, { targetGroups: [newTargetGroup] }); + currentListener.addTargetGroups(`${scope.node.id}-targets`, consolidatedTargetProps); } else { - listener.addTargetGroups("targets", { - targetGroups: [targetGroup], + currentListener.addTargetGroups("targets", { + targetGroups: [newTargetGroup], }); } - return; + return newTargetGroup; +} + +// Looks for the listener associated with Target Groups +// If there is a single listener, this returns it whether it is HTTP or HTTPS +// If there are 2 listeners, it finds the HTTPS listener (we assume the HTTP listener redirects to HTTPS) +export function GetActiveListener(listeners: elb.ApplicationListener[]): elb.ApplicationListener { + let listener: elb.ApplicationListener; + + if (listeners.length === 0 ) { + throw new Error(`There are no listeners in the ALB`); + } + if (listeners.length === 1 ) { + listener = listeners[0]; + } else { + listener = listeners.find(i => (i.node.children[0] as elb.CfnListener).protocol === "HTTPS") as elb.ApplicationListener; + } + return listener; } diff --git a/source/patterns/@aws-solutions-constructs/core/test/alb-helper.test.ts b/source/patterns/@aws-solutions-constructs/core/test/alb-helper.test.ts index 8e8a504cc..4a1c288ca 100644 --- a/source/patterns/@aws-solutions-constructs/core/test/alb-helper.test.ts +++ b/source/patterns/@aws-solutions-constructs/core/test/alb-helper.test.ts @@ -16,6 +16,7 @@ import * as elb from "@aws-cdk/aws-elasticloadbalancingv2"; import * as acm from "@aws-cdk/aws-certificatemanager"; import * as lambda from "@aws-cdk/aws-lambda"; import * as defaults from '../index'; +import * as ec2 from '@aws-cdk/aws-ec2'; import '@aws-cdk/assert/jest'; test('Test ObtainAlb with existing ALB', () => { @@ -72,179 +73,195 @@ test('Test ObtainAlb for new ALB with default props', () => { }); }); -test('Test ObtainAlb for new ALB with default props', () => { - const stack = new Stack(); - - const testFunction = new lambda.Function(stack, 'test-function', { - code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, - handler: "index.handler", +test('Test with custom logging bucket props', () => { + // Creating ALB logging requires a region and account (but + // these can be fake in unit tests) + const stack = new Stack(undefined, undefined, { + env: { account: "123456789012", region: 'us-east-1' }, + }); + // Build VPC + const vpc = defaults.buildVpc(stack, { + defaultVpcProps: defaults.DefaultPublicPrivateVpcProps(), }); - defaults.CreateLambdaTargetGroup(stack, 'test-target', testFunction); + const testName = 'test-name'; - expect(stack).toHaveResourceLike('AWS::ElasticLoadBalancingV2::TargetGroup', { - TargetType: "lambda" + defaults.ObtainAlb(stack, 'test', vpc, false, undefined, undefined, true, { bucketName: testName }); + expect(stack).toHaveResourceLike('AWS::S3::Bucket', { + BucketName: testName }); }); -test('Test ObtainAlb for new ALB with custom props', () => { +test('Test with no logging', () => { const stack = new Stack(); - - const testFunction = new lambda.Function(stack, 'test-function', { - code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, - handler: "index.handler", + // Build VPC + const vpc = defaults.buildVpc(stack, { + defaultVpcProps: defaults.DefaultPublicPrivateVpcProps(), }); - defaults.CreateLambdaTargetGroup(stack, 'test-target', testFunction, { - targetGroupName: 'test-target-group' + defaults.ObtainAlb(stack, 'test', vpc, false, undefined, undefined, false); + expect(stack).not.toHaveResourceLike('AWS::S3::Bucket', {}); +}); + +function CreateTestVpc(stack: Stack) { + return defaults.buildVpc(stack, { + defaultVpcProps: defaults.DefaultPublicPrivateVpcProps(), }); +} - expect(stack).toHaveResourceLike('AWS::ElasticLoadBalancingV2::TargetGroup', { - TargetType: "lambda", - Name: 'test-target-group' +function CreateTestLoadBalancer(stack: Stack, vpc: ec2.IVpc): elb.ApplicationLoadBalancer { + return new elb.ApplicationLoadBalancer(stack, 'load-balancer', { + vpc, + internetFacing: true, + loadBalancerName: 'unique-name' }); -}); +} -test('Test Add Target without ruleProps', () => { - const stack = new Stack(); +function GetCert(stack: Stack): acm.ICertificate { + return acm.Certificate.fromCertificateArn( + stack, + 'not-really-a-cert', + "arn:aws:acm:us-east-1:123456789012:certificate/85c52dc8-1b37-4afd-a7aa-f03aac2db0cc" + ); +} - const testFunction = new lambda.Function(stack, 'test-function', { +function CreateTestFunction(stack: Stack, id: string): lambda.Function { + return new lambda.Function(stack, id, { code: lambda.Code.fromAsset(`${__dirname}/lambda`), runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", }); +} - const targetGroup = defaults.CreateLambdaTargetGroup(stack, 'test-target', testFunction, { - targetGroupName: 'test-target-group' - }); - - // Build VPC - const vpc = defaults.buildVpc(stack, { - defaultVpcProps: defaults.DefaultPublicPrivateVpcProps(), +function CreateTestListener(stack: Stack, id: string, alb: elb.ApplicationLoadBalancer) { + return new elb.ApplicationListener(stack, id, { + loadBalancer: alb, + protocol: elb.ApplicationProtocol.HTTP }); +} - const existingLoadBalancer = new elb.ApplicationLoadBalancer(stack, 'load-balancer', { - vpc, - internetFacing: true, - loadBalancerName: 'unique-name' - }); +test('Test add single lambda target group with no customization', () => { + const stack = new Stack(); - const testListener = new elb.ApplicationListener(stack, 'test-listener', { - loadBalancer: existingLoadBalancer, - protocol: elb.ApplicationProtocol.HTTP - }); + // Set up test framework independent of our code for unit testing + const testFunction = CreateTestFunction(stack, 'test-function'); + const testVpc = CreateTestVpc(stack); + const testAlb = CreateTestLoadBalancer(stack, testVpc); + const testListener = CreateTestListener(stack, 'test-listener', testAlb); - defaults.AddTarget(stack, targetGroup, testListener); + // This is the code we're testing + defaults.AddLambdaTarget( + stack, + 'test-lambda-target', + testListener, + testFunction, + ); expect(stack).toHaveResourceLike('AWS::ElasticLoadBalancingV2::Listener', { DefaultActions: [ { TargetGroupArn: { - Ref: "testtargettgB2EE41CA" + Ref: "testlambdatargettg7E5C32F4" }, Type: "forward" } ], }); + expect(stack).toHaveResourceLike('AWS::ElasticLoadBalancingV2::TargetGroup', { + TargetType: "lambda", + }); + }); -test('Test Add Target with ruleProps', () => { +test('Test add single lambda target group with target group props', () => { const stack = new Stack(); - const testFunction = new lambda.Function(stack, 'test-function', { - code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, - handler: "index.handler", - }); + // Set up test framework independent of our code for unit testing + const testFunction = CreateTestFunction(stack, 'test-function'); + const testVpc = CreateTestVpc(stack); + const testAlb = CreateTestLoadBalancer(stack, testVpc); + const testListener = CreateTestListener(stack, 'test-listener', testAlb); + const targetGroupName = 'test-group'; - const targetGroup = defaults.CreateLambdaTargetGroup(stack, 'test-target', testFunction, { - targetGroupName: 'test-target-group' - }); + // This is the code we're testing + defaults.AddLambdaTarget( + stack, + 'test-lambda-target', + testListener, + testFunction, + undefined, + { targetGroupName }, + ); - const secondTargetGroup = defaults.CreateLambdaTargetGroup(stack, 'second-target', testFunction, { - targetGroupName: 'second-target-group' + expect(stack).toHaveResourceLike('AWS::ElasticLoadBalancingV2::TargetGroup', { + TargetType: "lambda", + Name: targetGroupName, }); - // Build VPC - const vpc = defaults.buildVpc(stack, { - defaultVpcProps: defaults.DefaultPublicPrivateVpcProps(), - }); +}); - const existingLoadBalancer = new elb.ApplicationLoadBalancer(stack, 'load-balancer', { - vpc, - internetFacing: true, - loadBalancerName: 'unique-name' - }); +test('Test add rule props for second lambda target group', () => { + const stack = new Stack(); - const testListener = new elb.ApplicationListener(stack, 'test-listener', { - loadBalancer: existingLoadBalancer, - protocol: elb.ApplicationProtocol.HTTP - }); + // Set up test framework independent of our code for unit testing + const testFunction = CreateTestFunction(stack, 'test-function'); + const testVpc = CreateTestVpc(stack); + const testAlb = CreateTestLoadBalancer(stack, testVpc); + const testListener = CreateTestListener(stack, 'test-listener', testAlb); + const targetGroupName = 'test-group'; + const pathPattern = '*admin*'; - // The first target is default and can't have rules, so - // we need to add 2 targets - defaults.AddTarget(stack, targetGroup, testListener); - defaults.AddTarget(stack, secondTargetGroup, testListener, { - conditions: [elb.ListenerCondition.pathPatterns(["*admin*"])], + defaults.AddLambdaTarget( + stack, + 'test-lambda-target', + testListener, + testFunction, + undefined, + { targetGroupName }, + ); + + // This is the code we're testing + const ruleProps = { + conditions: [elb.ListenerCondition.pathPatterns([pathPattern])], priority: 10 - }); + }; + defaults.AddLambdaTarget( + stack, + 'test-second-lambda-target', + testListener, + testFunction, + ruleProps, + { targetGroupName }, + ); + expect(stack).toCountResources('AWS::ElasticLoadBalancingV2::TargetGroup', 2); expect(stack).toHaveResourceLike('AWS::ElasticLoadBalancingV2::ListenerRule', { - Actions: [ - { - TargetGroupArn: { - Ref: "secondtargettg0CE37E1F" - }, - Type: "forward" - } - ], Conditions: [ { Field: "path-pattern", PathPatternConfig: { Values: [ - "*admin*" + pathPattern ] } } ] }); + }); -test('Test AddListener with defaults', () => { +test('Test adding a listener with defaults', () => { const stack = new Stack(); - const testFunction = new lambda.Function(stack, 'test-function', { - code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, - handler: "index.handler", - }); - const targetGroup = defaults.CreateLambdaTargetGroup(stack, 'test-target', testFunction, { - targetGroupName: 'test-target-group' - }); + // Set up test framework independent of our code for unit testing + const testVpc = CreateTestVpc(stack); + const testAlb = CreateTestLoadBalancer(stack, testVpc); + const testCert = GetCert(stack); - // Build VPC - const vpc = defaults.buildVpc(stack, { - defaultVpcProps: defaults.DefaultPublicPrivateVpcProps(), - }); + const listener = defaults.AddListener(stack, testAlb, { certificates: [ testCert ] }); - const existingLoadBalancer = new elb.ApplicationLoadBalancer(stack, 'load-balancer', { - vpc, - internetFacing: true, - loadBalancerName: 'unique-name' - }); - - const cert = acm.Certificate.fromCertificateArn( - stack, - 'not-really-a-cert', - "arn:aws:acm:us-east-1:123456789012:certificate/85c52dc8-1b37-4afd-a7aa-f03aac2db0cc" - ); - - defaults.AddListener(stack, existingLoadBalancer, targetGroup, { - certificates: [ cert ], - }); + // Need to add a target because a listener is not allowed to exist without a target or action + defaults.AddLambdaTarget(stack, 'dummy-target', listener, CreateTestFunction(stack, 'dummy-function')); // This should create 2 listeners, HTTPS plus redirect of HTTP expect(stack).toHaveResourceLike('AWS::ElasticLoadBalancingV2::Listener', { @@ -256,135 +273,107 @@ test('Test AddListener with defaults', () => { }); }); -test('Test AddListener with no cert for an HTTPS listener', () => { +test('Test adding an HTTPS listener with no cert (error)', () => { const stack = new Stack(); - const testFunction = new lambda.Function(stack, 'test-function', { - code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, - handler: "index.handler", - }); - const targetGroup = defaults.CreateLambdaTargetGroup(stack, 'test-target', testFunction, { - targetGroupName: 'test-target-group' - }); + // Set up test framework independent of our code for unit testing + const testVpc = CreateTestVpc(stack); + const testAlb = CreateTestLoadBalancer(stack, testVpc); - // Build VPC - const vpc = defaults.buildVpc(stack, { - defaultVpcProps: defaults.DefaultPublicPrivateVpcProps(), - }); + const app = () => { + defaults.AddListener(stack, testAlb, { }); + }; - const existingLoadBalancer = new elb.ApplicationLoadBalancer(stack, 'load-balancer', { - vpc, - internetFacing: true, - loadBalancerName: 'unique-name' - }); + expect(app).toThrowError('A listener using HTTPS protocol requires a certificate'); +}); + +test('Test adding an HTTP listener with a cert (error)', () => { + const stack = new Stack(); + + // Set up test framework independent of our code for unit testing + const testVpc = CreateTestVpc(stack); + const testAlb = CreateTestLoadBalancer(stack, testVpc); + const testCert = GetCert(stack); const app = () => { - defaults.AddListener(stack, existingLoadBalancer, targetGroup, {}); + defaults.AddListener(stack, testAlb, { protocol: 'HTTP', certificates: [ testCert ] }); }; - expect(app).toThrowError(); + + expect(app).toThrowError('HTTP listeners cannot use a certificate'); }); -test('Test AddListener error for HTTP with a cert', () => { +test('Test adding a HTTP listener', () => { const stack = new Stack(); - const testFunction = new lambda.Function(stack, 'test-function', { - code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, - handler: "index.handler", - }); - const targetGroup = defaults.CreateLambdaTargetGroup(stack, 'test-target', testFunction, { - targetGroupName: 'test-target-group' - }); + // Set up test framework independent of our code for unit testing + const testVpc = CreateTestVpc(stack); + const testAlb = CreateTestLoadBalancer(stack, testVpc); - // Build VPC - const vpc = defaults.buildVpc(stack, { - defaultVpcProps: defaults.DefaultPublicPrivateVpcProps(), - }); + const listener = defaults.AddListener(stack, testAlb, { protocol: 'HTTP' }); - const existingLoadBalancer = new elb.ApplicationLoadBalancer(stack, 'load-balancer', { - vpc, - internetFacing: true, - loadBalancerName: 'unique-name' + // Need to add a target because a listener is not allowed to exist without a target or action + defaults.AddLambdaTarget(stack, 'dummy-target', listener, CreateTestFunction(stack, 'dummy-function')); + + expect(stack).toHaveResourceLike('AWS::ElasticLoadBalancingV2::Listener', { + Protocol: 'HTTP', }); + expect(stack).toCountResources('AWS::ElasticLoadBalancingV2::Listener', 1); +}); - const cert = acm.Certificate.fromCertificateArn( - stack, - 'not-really-a-cert', - "arn:aws:acm:us-east-1:123456789012:certificate/85c52dc8-1b37-4afd-a7aa-f03aac2db0cc" - ); +test('Test sending custom logging bucket props', () => { + const stack = new Stack(); - const app = () => { - defaults.AddListener(stack, existingLoadBalancer, targetGroup, { - certificates: [ cert ], - protocol: elb.ApplicationProtocol.HTTP, - }); - }; - expect(app).toThrowError(); + // Set up test framework independent of our code for unit testing + const testVpc = CreateTestVpc(stack); + const testAlb = CreateTestLoadBalancer(stack, testVpc); + + const listener = defaults.AddListener(stack, testAlb, { protocol: 'HTTP' }); + + // Need to add a target because a listener is not allowed to exist without a target or action + defaults.AddLambdaTarget(stack, 'dummy-target', listener, CreateTestFunction(stack, 'dummy-function')); }); -test('Test AddListener for HTTP Listener', () => { +test('Test GetActiveListener with 0 listeners', () => { const stack = new Stack(); - const testFunction = new lambda.Function(stack, 'test-function', { - code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, - handler: "index.handler", - }); - const targetGroup = defaults.CreateLambdaTargetGroup(stack, 'test-target', testFunction, { - targetGroupName: 'test-target-group' - }); + // Set up test framework independent of our code for unit testing + const testVpc = CreateTestVpc(stack); + const testAlb = CreateTestLoadBalancer(stack, testVpc); - // Build VPC - const vpc = defaults.buildVpc(stack, { - defaultVpcProps: defaults.DefaultPublicPrivateVpcProps(), - }); - - const existingLoadBalancer = new elb.ApplicationLoadBalancer(stack, 'load-balancer', { - vpc, - internetFacing: true, - loadBalancerName: 'unique-name' - }); + const app = () => { + defaults.GetActiveListener(testAlb.listeners); + }; - defaults.AddListener(stack, existingLoadBalancer, targetGroup, { - protocol: elb.ApplicationProtocol.HTTP, - }); + expect(app).toThrowError('There are no listeners in the ALB'); - expect(stack).toHaveResourceLike('AWS::ElasticLoadBalancingV2::Listener', { - Protocol: 'HTTP', - }); - expect(stack).not.toHaveResourceLike('AWS::ElasticLoadBalancingV2::Listener', { - Protocol: 'HTTPS', - }); }); -test('Test with custom logging bucket props', () => { - // Creating ALB logging requires a region and account (but - // these can be fake in unit tests) - const stack = new Stack(undefined, undefined, { - env: { account: "123456789012", region: 'us-east-1' }, - }); - // Build VPC - const vpc = defaults.buildVpc(stack, { - defaultVpcProps: defaults.DefaultPublicPrivateVpcProps(), - }); +test('Test GetActiveListener with 1 listener', () => { + const stack = new Stack(); - const testName = 'test-name'; + // Set up test framework independent of our code for unit testing + const testVpc = CreateTestVpc(stack); + const testAlb = CreateTestLoadBalancer(stack, testVpc); + + defaults.AddListener(stack, testAlb, { protocol: 'HTTP' }); + const listener = defaults.GetActiveListener(testAlb.listeners); + + expect((listener.node.defaultChild as elb.CfnListener).protocol).toBe('HTTP'); - defaults.ObtainAlb(stack, 'test', vpc, false, undefined, undefined, true, { bucketName: testName }); - expect(stack).toHaveResourceLike('AWS::S3::Bucket', { - BucketName: testName - }); }); -test('Test with no logging', () => { +test('Test GetActiveListener with 2 listeners', () => { const stack = new Stack(); - // Build VPC - const vpc = defaults.buildVpc(stack, { - defaultVpcProps: defaults.DefaultPublicPrivateVpcProps(), - }); - defaults.ObtainAlb(stack, 'test', vpc, false, undefined, undefined, false); - expect(stack).not.toHaveResourceLike('AWS::S3::Bucket', {}); + // Set up test framework independent of our code for unit testing + const testVpc = CreateTestVpc(stack); + const testAlb = CreateTestLoadBalancer(stack, testVpc); + const testCert = GetCert(stack); + + defaults.AddListener(stack, testAlb, { certificates: [ testCert ] }); + const listener = defaults.GetActiveListener(testAlb.listeners); + + expect((listener.node.defaultChild as elb.CfnListener).protocol).toBe('HTTPS'); + }); From 0c030e82a83ffffd61b0ede90b379e7903008ab8 Mon Sep 17 00:00:00 2001 From: Connor Uhlman <3484188+Conrad2134@users.noreply.github.com> Date: Wed, 1 Dec 2021 14:24:12 -0600 Subject: [PATCH 15/67] fix(Update reference from existingBucketInterface to existingBucketObj): Update Documentation #520 --- .../@aws-solutions-constructs/aws-cloudfront-s3/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/README.md b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/README.md index 2876a9f54..df32a0149 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/README.md @@ -62,7 +62,7 @@ _Parameters_ |cloudFrontFunction?|[`cloudfront.Function`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudfront.Function.html)|Returns an instance of the Cloudfront function created by the pattern.| |cloudFrontLoggingBucket|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/aws-s3-readme.html)|Returns an instance of the logging bucket for CloudFront WebDistribution.| |s3BucketInterface|[`s3.IBucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.IBucket.html)|Returns an instance of s3.IBucket created by the construct| -|s3Bucket?|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)|Returns an instance of s3.Bucket created by the construct. IMPORTANT: If existingBucketInterface was provided in Pattern Construct Props, this property will be `undefined`| +|s3Bucket?|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)|Returns an instance of s3.Bucket created by the construct. IMPORTANT: If existingBucketObj was provided in Pattern Construct Props, this property will be `undefined`| |s3LoggingBucket?|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)|Returns an instance of s3.Bucket created by the construct as the logging bucket for the primary bucket.| ## Default settings @@ -72,7 +72,7 @@ Out of the box implementation of the Construct without any override will set the ### Amazon CloudFront * Configure Access logging for CloudFront WebDistribution * Enable automatic injection of best practice HTTP security headers in all responses from CloudFront WebDistribution -* CloudFront originPath set to `'/'` +* CloudFront originPath set to `'/'` ### Amazon S3 Bucket * Configure Access logging for S3 Bucket From f163c0e5ae4f879d48f636bef989657d837f4473 Mon Sep 17 00:00:00 2001 From: AWS Solutions Constructs Automation Date: Thu, 2 Dec 2021 13:51:24 +0000 Subject: [PATCH 16/67] chore(release): 2.0.0 --- CHANGELOG.v2.md | 21 +++++++++++++++++++++ source/lerna.v2.json | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.v2.md b/CHANGELOG.v2.md index 90fb03708..d61444247 100644 --- a/CHANGELOG.v2.md +++ b/CHANGELOG.v2.md @@ -2,6 +2,27 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [2.0.0](https://github.com/awslabs/aws-solutions-constructs/compare/v2.0.0-rc.2...v2.0.0) (2021-12-02) + + +### Features + +* **aws-cloudfront-s3:** added logS3AccessLogs prop ([#506](https://github.com/awslabs/aws-solutions-constructs/issues/506)) ([6d3c7c9](https://github.com/awslabs/aws-solutions-constructs/commit/6d3c7c94dbe1398fc2eef16a7862704bb15a8bb9)) +* **aws-events-rule-kinesisfirehose-s3:** added logS3AccessLogs and loggingBucketProps ([#492](https://github.com/awslabs/aws-solutions-constructs/issues/492)) ([0af95f5](https://github.com/awslabs/aws-solutions-constructs/commit/0af95f58c395f766d29d1ece791d0307621f63e6)) +* **aws-iot-kinesisfirehose-s3:** added custom loggingBucketProps ([#480](https://github.com/awslabs/aws-solutions-constructs/issues/480)) ([76c0aa9](https://github.com/awslabs/aws-solutions-constructs/commit/76c0aa9ed4be859319a830d29be1a397b3322a43)) +* **aws-kinesisfirehose-s3-and-kinesisanalytics:** added logS3AccessLogs and loggingBucketProps ([#490](https://github.com/awslabs/aws-solutions-constructs/issues/490)) ([3d8fec6](https://github.com/awslabs/aws-solutions-constructs/commit/3d8fec6632c76711ee26c323893ca5a7a58d917f)) +* **aws-kinesisfirehose-s3:** added custom logging bucket props to kinesisfirehose-s3 ([#478](https://github.com/awslabs/aws-solutions-constructs/issues/478)) ([6fab3e5](https://github.com/awslabs/aws-solutions-constructs/commit/6fab3e50de4ef73d2e9f2dbde358d9d6f14e9831)) +* **aws-kinesisstreams-gluejob:** encrypted bucket in existing job integ test ([#504](https://github.com/awslabs/aws-solutions-constructs/issues/504)) ([04d0642](https://github.com/awslabs/aws-solutions-constructs/commit/04d06424663b3f7cb5cc4ef6a9995f5eedce1721)) +* **aws-kinesisstreams-kinesisfirehose-s3:** added loggingBucketProps and logS3AccessLogs ([#493](https://github.com/awslabs/aws-solutions-constructs/issues/493)) ([85b5f7a](https://github.com/awslabs/aws-solutions-constructs/commit/85b5f7ada3e197dcc83a1ad1bd9e23efedf9f63e)) +* **aws-lambda-s3:** added logS3AccessLogs and updated tests ([#496](https://github.com/awslabs/aws-solutions-constructs/issues/496)) ([9922938](https://github.com/awslabs/aws-solutions-constructs/commit/992293810b92b3272e08e6b408c868243007049e)) +* **aws-s3-sqs:** added logS3AccessLogs and S3BucketInterface ([#499](https://github.com/awslabs/aws-solutions-constructs/issues/499)) ([c8320bd](https://github.com/awslabs/aws-solutions-constructs/commit/c8320bdd9cc47e519556a40b2a2e7f163922edc7)) +* **aws-s3-stepfunctions:** added logS3AccessLogs and S3BucketInterface ([#500](https://github.com/awslabs/aws-solutions-constructs/issues/500)) ([d7d10f6](https://github.com/awslabs/aws-solutions-constructs/commit/d7d10f683e74276e1f737db8fbac434e0b48cd5e)) + + +### Bug Fixes + +* **Update reference from existingBucketInterface to existingBucketObj:** Update Documentation [#520](https://github.com/awslabs/aws-solutions-constructs/issues/520) ([0c030e8](https://github.com/awslabs/aws-solutions-constructs/commit/0c030e82a83ffffd61b0ede90b379e7903008ab8)) + ## [2.0.0-rc.2](https://github.com/awslabs/aws-solutions-constructs/compare/v2.0.0-rc.1...v2.0.0-rc.2) (2021-11-02) ### Features diff --git a/source/lerna.v2.json b/source/lerna.v2.json index b06df425b..de1c96ef5 100644 --- a/source/lerna.v2.json +++ b/source/lerna.v2.json @@ -6,5 +6,5 @@ "./patterns/@aws-solutions-constructs/*" ], "rejectCycles": "true", - "version": "2.0.0-rc.2" + "version": "2.0.0" } From 260c149e80c6c56f776c249757f8ebcb6a4a0eb8 Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Thu, 2 Dec 2021 08:54:38 -0500 Subject: [PATCH 17/67] chore(changelog): Updated CHANGELOG.v2.md --- CHANGELOG.v2.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.v2.md b/CHANGELOG.v2.md index d61444247..42a290789 100644 --- a/CHANGELOG.v2.md +++ b/CHANGELOG.v2.md @@ -4,6 +4,7 @@ All notable changes to this project will be documented in this file. See [standa ## [2.0.0](https://github.com/awslabs/aws-solutions-constructs/compare/v2.0.0-rc.2...v2.0.0) (2021-12-02) +* Includes all funcionality of V1.129.0 ### Features From 7dd9b9d3eaace246d89769dd3c4fefe5b6e9462f Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Mon, 13 Dec 2021 10:55:05 -0500 Subject: [PATCH 18/67] Update align-version.js --- deployment/v2/align-version.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployment/v2/align-version.js b/deployment/v2/align-version.js index 9a9a3fa78..9907b9dea 100755 --- a/deployment/v2/align-version.js +++ b/deployment/v2/align-version.js @@ -10,7 +10,7 @@ const findVersion = process.argv[2]; const replaceVersion = process.argv[3]; // these versions need to be sourced from a config file -const awsCdkLibVersion = '2.0.0-rc.23'; +const awsCdkLibVersion = '2.0.0-rc.28'; const constructsVersion = '10.0.0'; const MODULE_EXEMPTIONS = new Set([ '@aws-cdk/cloudformation-diff', From 085471a1cdf00532f31db46e82d8257a4f872c08 Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Mon, 13 Dec 2021 11:46:32 -0500 Subject: [PATCH 19/67] Update align-version.js --- deployment/v2/align-version.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployment/v2/align-version.js b/deployment/v2/align-version.js index 9907b9dea..30556f90e 100755 --- a/deployment/v2/align-version.js +++ b/deployment/v2/align-version.js @@ -10,7 +10,7 @@ const findVersion = process.argv[2]; const replaceVersion = process.argv[3]; // these versions need to be sourced from a config file -const awsCdkLibVersion = '2.0.0-rc.28'; +const awsCdkLibVersion = '2.0.0'; const constructsVersion = '10.0.0'; const MODULE_EXEMPTIONS = new Set([ '@aws-cdk/cloudformation-diff', From 9993eea5ee1474e43631ef18c7e4dff6c06b816c Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Tue, 14 Dec 2021 09:15:15 -0500 Subject: [PATCH 20/67] Update align-version.js --- deployment/v2/align-version.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployment/v2/align-version.js b/deployment/v2/align-version.js index 30556f90e..9a9a3fa78 100755 --- a/deployment/v2/align-version.js +++ b/deployment/v2/align-version.js @@ -10,7 +10,7 @@ const findVersion = process.argv[2]; const replaceVersion = process.argv[3]; // these versions need to be sourced from a config file -const awsCdkLibVersion = '2.0.0'; +const awsCdkLibVersion = '2.0.0-rc.23'; const constructsVersion = '10.0.0'; const MODULE_EXEMPTIONS = new Set([ '@aws-cdk/cloudformation-diff', From 5b2fe7e173039615a07aac0006a55a877f4a188c Mon Sep 17 00:00:00 2001 From: Hitendra Nishar Date: Tue, 14 Dec 2021 11:43:41 -0500 Subject: [PATCH 21/67] fix(v1 build fix move @types/.. from dependencies to devDependencies in core/package.json --- source/patterns/@aws-solutions-constructs/core/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/patterns/@aws-solutions-constructs/core/package.json b/source/patterns/@aws-solutions-constructs/core/package.json index a65fab13b..c69f7bffb 100644 --- a/source/patterns/@aws-solutions-constructs/core/package.json +++ b/source/patterns/@aws-solutions-constructs/core/package.json @@ -86,13 +86,13 @@ "@aws-cdk/aws-secretsmanager": "0.0.0", "@aws-cdk/aws-ssm": "0.0.0", "@aws-cdk/aws-wafv2": "0.0.0", - "@types/deep-diff": "^1.0.0", - "@types/npmlog": "^4.1.2", "deep-diff": "^1.0.2", "deepmerge": "^4.0.0", "npmlog": "^4.1.2" }, "devDependencies": { + "@types/deep-diff": "^1.0.0", + "@types/npmlog": "^4.1.2", "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" From 8d9ecb7848613351ee0bbaa4b3758fdd1c2e0bcf Mon Sep 17 00:00:00 2001 From: Hitendra Nishar Date: Tue, 14 Dec 2021 12:40:46 -0500 Subject: [PATCH 22/67] fix(v1 build fix move @types/.. from dependencies to devDependencies in core/package.json) --- source/patterns/@aws-solutions-constructs/core/package.json | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/source/patterns/@aws-solutions-constructs/core/package.json b/source/patterns/@aws-solutions-constructs/core/package.json index c69f7bffb..a8cbe8524 100644 --- a/source/patterns/@aws-solutions-constructs/core/package.json +++ b/source/patterns/@aws-solutions-constructs/core/package.json @@ -114,9 +114,7 @@ "bundledDependencies": [ "deepmerge", "npmlog", - "@types/npmlog", - "deep-diff", - "@types/deep-diff" + "deep-diff" ], "peerDependencies": { "@aws-cdk/aws-cloudfront": "0.0.0", From ad15c16226642b58654bd53a6e7f2584bc5a9ef6 Mon Sep 17 00:00:00 2001 From: Hitendra Nishar Date: Tue, 14 Dec 2021 18:20:26 -0500 Subject: [PATCH 23/67] fix(v2 build issues by pinning JSII to 1.47.0) --- source/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/package.json b/source/package.json index b7305fb91..62feab62a 100644 --- a/source/package.json +++ b/source/package.json @@ -23,8 +23,8 @@ "eslint-plugin-license-header": "^0.2.0", "fs-extra": "^8.1.0", "jest": "^26.6.0", - "jsii": "^1.11.0", - "jsii-pacmak": "^1.11.0", + "jsii": "1.47.0", + "jsii-pacmak": "1.47.0", "tslint": "^5.20.1", "typescript": "~3.9.7" }, From 5ecc20ebf55dd727ff5d33df309c633ce7469b38 Mon Sep 17 00:00:00 2001 From: AWS Solutions Constructs Automation Date: Wed, 15 Dec 2021 12:21:26 +0000 Subject: [PATCH 24/67] chore(release): 1.130.0 --- CHANGELOG.md | 2 ++ source/lerna.json | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 414c61712..e5a3e50ad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [1.130.0](https://github.com/awslabs/aws-solutions-constructs/compare/v2.0.0...v1.130.0) (2021-12-15) + ## [1.129.0](https://github.com/awslabs/aws-solutions-constructs/compare/v1.128.0...v1.129.0) (2021-11-28) * Upgraded all patterns to CDK v1.129.0 diff --git a/source/lerna.json b/source/lerna.json index 8571a50a6..17f06c303 100644 --- a/source/lerna.json +++ b/source/lerna.json @@ -6,5 +6,5 @@ "./patterns/@aws-solutions-constructs/*" ], "rejectCycles": "true", - "version": "1.129.0" + "version": "1.130.0" } From c38f56f5088a0aa3e65cc9ec0c6439673dae2a79 Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Wed, 15 Dec 2021 07:24:57 -0500 Subject: [PATCH 25/67] chore(changelog): Updated CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e5a3e50ad..da1d7a1b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,9 @@ All notable changes to this project will be documented in this file. See [standa ## [1.130.0](https://github.com/awslabs/aws-solutions-constructs/compare/v2.0.0...v1.130.0) (2021-12-15) +* Upgraded all patterns to CDK v1.130.0 +* Changed underlying CDK 2.0 release to R26 + ## [1.129.0](https://github.com/awslabs/aws-solutions-constructs/compare/v1.128.0...v1.129.0) (2021-11-28) * Upgraded all patterns to CDK v1.129.0 From 6d7bed79508d16670d7546a8121b666cda4ab0b6 Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Wed, 15 Dec 2021 12:49:55 -0500 Subject: [PATCH 26/67] V2RC26, sticky session bug, cdk:init issue --- deployment/v2/align-version.js | 2 +- .../test/integ.privateApiExistingResources.expected.json | 2 +- .../test/integ.privateApiNewResources.expected.json | 2 +- .../test/integ.publicApiExistingResources.expected.json | 2 +- .../test/integ.publicApiNewResources.expected.json | 2 +- .../aws-alb-lambda/test/integ.twoTargets.expected.json | 2 +- .../test/integ.apigateway-dynamodb-CRUD.expected.json | 2 +- .../test/integ.apigateway-dynamodb-existing-table.expected.json | 2 +- .../test/integ.no-arguments.expected.json | 2 +- .../aws-apigateway-iot/test/integ.defaultParams.expected.json | 2 +- .../aws-apigateway-iot/test/integ.overrideParams.expected.json | 2 +- .../test/integ.override_auth_api_keys.expected.json | 2 +- .../test/integ.apigateway-kinesis-overwrite.expected.json | 2 +- .../test/integ.no-arguments.expected.json | 2 +- .../test/integ.deployFunction.expected.json | 2 +- .../test/integ.existingFunction.expected.json | 2 +- .../integ.apigateway-sagemakerendpoint-overwrite.expected.json | 2 +- .../test/integ.no-overwrite.expected.json | 2 +- .../test/integ.apigateway-sqs-crud.expected.json | 2 +- .../aws-apigateway-sqs/test/integ.no-arguments.expected.json | 2 +- .../test/integ.customCloudfrontLoggingBucket.expected.json | 2 +- .../test/integ.no-arguments.expected.json | 2 +- .../test/integ.override-behavior.expected.json | 2 +- .../test/integ.customCloudfrontLoggingBucket.expected.json | 2 +- .../test/integ.no-arguments.expected.json | 2 +- .../test/integ.customCloudFrontLoggingBucket.expected.json | 2 +- .../aws-cloudfront-mediastore/test/integ.default.expected.json | 2 +- .../test/integ.existingContainer.expected.json | 2 +- .../test/integ.overrideProperties.expected.json | 2 +- .../test/integ.withoutHttpSecurityHeaders.expected.json | 2 +- .../test/integ.custom-originPath.expected.json | 2 +- .../test/integ.custom-security-headers.expected.json | 2 +- .../test/integ.customCloudFrontLoggingBucket.expected.json | 2 +- .../test/integ.customLoggingBucket.expected.json | 2 +- .../aws-cloudfront-s3/test/integ.existing-bucket.expected.json | 2 +- .../aws-cloudfront-s3/test/integ.no-arguments.expected.json | 2 +- .../test/integ.no-security-headers.expected.json | 2 +- .../test/integ.no-arguments.expected.json | 2 +- .../test/integ.no-arguments.expected.json | 2 +- .../test/integ.existing-table.expected.json | 2 +- .../test/integ.no-arguments.expected.json | 2 +- .../test/integ.no-arguments.expected.json | 2 +- .../test/integ.existing-table.expected.json | 2 +- .../test/integ.no-arguments.expected.json | 2 +- .../test/integ.customLoggingBucket.expected.json | 2 +- ...entbridge-kinesisfirehose-s3-existing-eventbus.expected.json | 2 +- ...eg.eventbridge-kinesisfirehose-s3-new-eventbus.expected.json | 2 +- ...eg.eventbridge-kinesisfirehose-s3-no-arguments.expected.json | 2 +- ...g.eventbridge-kinesisstreams-existing-eventbus.expected.json | 2 +- .../integ.eventbridge-kinesisstreams-existing.expected.json | 2 +- .../integ.eventbridge-kinesisstreams-new-eventbus.expected.json | 2 +- .../integ.eventbridge-kinesisstreams-no-arguments.expected.json | 2 +- .../test/integ.eventbridge-existing-eventbus.expected.json | 2 +- .../test/integ.eventbridge-new-eventbus.expected.json | 2 +- .../test/integ.eventbridge-no-argument.expected.json | 2 +- .../aws-eventbridge-sns/test/integ.exist-bus.expected.json | 2 +- .../aws-eventbridge-sns/test/integ.new-bus.expected.json | 2 +- .../aws-eventbridge-sns/test/integ.no-arg.expected.json | 2 +- .../aws-eventbridge-sqs/test/integ.exist-bus.expected.json | 2 +- .../aws-eventbridge-sqs/test/integ.exist-queue.expected.json | 2 +- .../aws-eventbridge-sqs/test/integ.new-bus.expected.json | 2 +- .../aws-eventbridge-sqs/test/integ.no-arg.expected.json | 2 +- ...eg.eventbridge-stepfunctions-existing-eventbus.expected.json | 2 +- .../integ.eventbridge-stepfunctions-new-eventbus.expected.json | 2 +- .../integ.eventbridge-stepfunctions-no-argument.expected.json | 2 +- .../integ.eventbridge-stepfunctions-with-lambda.expected.json | 2 +- .../test/integ.customLoggingBucket.expected.json | 2 +- ...ents-rule-kinesisfirehose-s3-existing-eventbus.expected.json | 2 +- ...eg.events-rule-kinesisfirehose-s3-new-eventbus.expected.json | 2 +- ...eg.events-rule-kinesisfirehose-s3-no-arguments.expected.json | 2 +- ...g.events-rule-kinesisstreams-existing-eventbus.expected.json | 2 +- .../integ.events-rule-kinesisstreams-existing.expected.json | 2 +- .../integ.events-rule-kinesisstreams-new-eventbus.expected.json | 2 +- .../integ.events-rule-kinesisstreams-no-arguments.expected.json | 2 +- .../test/integ.events-rule-no-argument.expected.json | 2 +- .../test/integ.eventsrule-existing-eventbus.expected.json | 2 +- .../test/integ.eventsrule-new-eventbus.expected.json | 2 +- .../aws-events-rule-sns/test/integ.exist-bus.expected.json | 2 +- .../aws-events-rule-sns/test/integ.new-bus.expected.json | 2 +- .../aws-events-rule-sns/test/integ.no-arg.expected.json | 2 +- .../aws-events-rule-sqs/test/integ.exist-bus.expected.json | 2 +- .../aws-events-rule-sqs/test/integ.exist-queue.expected.json | 2 +- .../aws-events-rule-sqs/test/integ.new-bus.expected.json | 2 +- .../aws-events-rule-sqs/test/integ.no-arg.expected.json | 2 +- .../integ.events-rule-step-function-no-argument.expected.json | 2 +- .../integ.events-rule-step-function-with-lambda.expected.json | 2 +- ...eg.events-rule-stepfunctions-existing-eventbus.expected.json | 2 +- .../integ.events-rule-stepfunctions-new-eventbus.expected.json | 2 +- .../test/integ.customLoggingBucket.expected.json | 2 +- .../test/integ.no-arguments.expected.json | 2 +- .../test/integ.noLoggingBucket.expected.json | 2 +- .../test/integ.existing-kinesisstream.expected.json | 2 +- .../test/integ.new-kinesisstream.expected.json | 2 +- .../test/integ.no-arguments.expected.json | 2 +- .../test/integ.iot-lambda-dynamodb.expected.json | 2 +- .../aws-iot-lambda/test/integ.iot-lambda-new-func.expected.json | 2 +- .../test/integ.iot-lambda-use-existing-func.expected.json | 2 +- .../test/integ.custom-max-receive-count.expected.json | 2 +- .../aws-iot-sqs/test/integ.dead-letter-queue-off.expected.json | 2 +- .../aws-iot-sqs/test/integ.default-arguments.expected.json | 2 +- .../aws-iot-sqs/test/integ.existing-queue.expected.json | 2 +- .../aws-iot-sqs/test/integ.use-kms-key-props.expected.json | 2 +- .../aws-iot-sqs/test/integ.use-queue-props.expected.json | 2 +- .../aws-iot-sqs/test/integ.with-existing-key.expected.json | 2 +- .../aws-iot-sqs/test/integ.without-create-kms-key.expected.json | 2 +- .../test/integ.customLoggingBucket.expected.json | 2 +- .../test/integ.no-arguments.expected.json | 2 +- .../test/integ.noLoggingBucket.expected.json | 2 +- .../test/integ.customLoggingBucket.expected.json | 2 +- .../test/integ.no-arguments.expected.json | 2 +- .../test/integ.noLoggingBucket.expected.json | 2 +- .../test/integ.pre-existing-bucket.expected.json | 2 +- .../test/integ.pre-existing-logging-bucket.expected.json | 2 +- .../test/integ.existing-job.expected.json | 2 +- .../test/integ.no-arguments.expected.json | 2 +- .../test/integ.customLoggingBucket.expected.json | 2 +- .../test/integ.existing-bucket.expected.json | 2 +- .../test/integ.existing-logging-bucket.expected.json | 2 +- .../test/integ.existingStreamObj.expected.json | 2 +- .../test/integ.no-arguments.expected.json | 2 +- .../aws-kinesisstreams-lambda/test/integ.existing.expected.json | 2 +- .../test/integ.no-arguments.expected.json | 2 +- .../test/integ.add-secondary-index.expected.json | 2 +- .../test/integ.deployFunctionWithExistingVpc.expected.json | 2 +- .../test/integ.deployFunctionWithVpc.expected.json | 2 +- .../aws-lambda-dynamodb/test/integ.no-arguments.expected.json | 2 +- .../test/integ.set-billing-mode.expected.json | 2 +- .../test/integ.use-existing-func.expected.json | 2 +- .../test/integ.domain-arguments.expected.json | 2 +- .../test/integ.no-arguments.expected.json | 2 +- .../test/integ.deployFunction.expected.json | 2 +- .../test/integ.deployFunctionWithNewEventBus.expected.json | 2 +- .../test/integ.deployFunctionWithVpc.expected.json | 2 +- .../test/integ.existingEventBus.expected.json | 2 +- .../test/integ.existingFunction.expected.json | 2 +- .../aws-lambda-s3/test/integ.customLoggingBucket.expected.json | 2 +- .../aws-lambda-s3/test/integ.deployFunction.expected.json | 2 +- .../test/integ.deployFunctionWithVpc.expected.json | 2 +- .../aws-lambda-s3/test/integ.existingFunction.expected.json | 2 +- .../aws-lambda-s3/test/integ.pre-existing-bucket.expected.json | 2 +- .../test/integ.deployFunction.expected.json | 2 +- .../test/integ.existingFunction.expected.json | 2 +- .../test/integ.existingSageMakerEndpoint.expected.json | 2 +- .../test/integ.deployFunction.expected.json | 2 +- .../test/integ.deployFunctionWithExistingVpc.expected.json | 2 +- .../test/integ.deployFunctionWithVpc.expected.json | 2 +- .../test/integ.existingFunction.expected.json | 2 +- .../aws-lambda-sns/test/integ.deployFunction.expected.json | 2 +- .../test/integ.deployFunctionWithVpc.expected.json | 2 +- .../aws-lambda-sns/test/integ.existingFunction.expected.json | 2 +- .../test/integ.defaultDeployment.expected.json | 2 +- .../test/integ.deployProducerFunctionWithVpc.expected.json | 2 +- .../test/integ.existingConsumerFunction.expected.json | 2 +- .../test/integ.existingProducerFunction.expected.json | 2 +- .../test/integ.existingQueue.expected.json | 2 +- .../aws-lambda-sqs/test/integ.deployFunction.expected.json | 2 +- .../test/integ.deployFunctionWithVpc.expected.json | 2 +- .../aws-lambda-sqs/test/integ.existingFunction.expected.json | 2 +- .../test/integ.deployFunction.expected.json | 2 +- .../test/integ.deployFunctionWithExistingVpc.expected.json | 2 +- .../test/integ.deployFunctionWithVpc.expected.json | 2 +- .../test/integ.existingFunction.expected.json | 2 +- .../test/integ.existingStringParameter.expected.json | 2 +- .../test/integ.deploy-lambda.expected.json | 2 +- .../test/integ.deployFunctionWithVpc.expected.json | 2 +- .../test/integ.existing-function.expected.json | 2 +- .../test/integ.deploy-lambda.expected.json | 2 +- .../test/integ.deployFunctionWithVpc.expected.json | 2 +- .../test/integ.existing-function.expected.json | 2 +- .../aws-route53-alb/test/integ.deployPrivateApi.expected.json | 2 +- .../test/integ.deployPrivateApiExistingZone.expected.json | 2 +- .../test/integ.deployPublicApiExistingAlb.expected.json | 2 +- .../test/integ.deployPublicApiNewAlb.expected.json | 2 +- .../test/integ.deployWithoutLogging.expected.json | 2 +- .../aws-s3-lambda/test/integ.existing-s3-bucket.expected.json | 2 +- .../aws-s3-lambda/test/integ.no-arguments.expected.json | 2 +- .../aws-s3-sqs/test/integ.creatingNewQueue.expected.json | 2 +- .../aws-s3-sqs/test/integ.customLoggingBucket.expected.json | 2 +- .../aws-s3-sqs/test/integ.existingQueue.expected.json | 2 +- .../aws-s3-sqs/test/integ.existingS3Bucket.expected.json | 2 +- .../aws-s3-sqs/test/integ.noArguments.expected.json | 2 +- .../test/integ.customLoggingBucket.expected.json | 2 +- .../test/integ.pre-existing-bucket.expected.json | 2 +- .../test/integ.s3-step-function-no-argument.expected.json | 2 +- .../test/integ.customLoggingBucket.expected.json | 2 +- .../test/integ.pre-existing-bucket.expected.json | 2 +- .../test/integ.s3-stepfunctions-no-argument.expected.json | 2 +- .../aws-sns-lambda/test/integ.no-arguments.expected.json | 2 +- .../aws-sns-sqs/test/integ.deployFIFOQueue.expected.json | 2 +- .../aws-sns-sqs/test/integ.deployStandardQueue.expected.json | 2 +- .../aws-sns-sqs/test/integ.existing-kms-key.expected.json | 2 +- .../aws-sns-sqs/test/integ.no-arguments.expected.json | 2 +- .../aws-sns-sqs/test/integ.sns-managed-kms-key.expected.json | 2 +- .../aws-sqs-lambda/test/integ.deployFifoQueue.expected.json | 2 +- .../aws-sqs-lambda/test/integ.deployFunction.expected.json | 2 +- .../aws-sqs-lambda/test/integ.existingFunction.expected.json | 2 +- .../aws-wafwebacl-alb/test/integ.no-arguments.expected.json | 2 +- .../test/integ.existing-waf-to-multiple-gateways.expected.json | 2 +- .../test/integ.no-arguments.expected.json | 2 +- .../test/integ.wafwebacl-apigateway-dynamodb.expected.json | 2 +- .../test/integ.wafwebacl-apigateway-iot.expected.json | 2 +- .../integ.wafwebacl-apigateway-kinesisstreams.expected.json | 2 +- .../integ.wafwebacl-apigateway-sagemakerendpoint.expected.json | 2 +- .../test/integ.wafwebacl-apigateway-sqs.expected.json | 2 +- .../integ.existing-waf-to-multiple-cloudfront.expected.json | 2 +- .../test/integ.no-arguments.expected.json | 2 +- .../integ.wafwebacl-cloudfront-apigateway-lambda.expected.json | 2 +- .../test/integ.wafwebacl-cloudfront-mediastore.expected.json | 2 +- .../patterns/@aws-solutions-constructs/core/lib/alb-helper.ts | 1 + 209 files changed, 209 insertions(+), 208 deletions(-) diff --git a/deployment/v2/align-version.js b/deployment/v2/align-version.js index 9a9a3fa78..20b4f13f0 100755 --- a/deployment/v2/align-version.js +++ b/deployment/v2/align-version.js @@ -10,7 +10,7 @@ const findVersion = process.argv[2]; const replaceVersion = process.argv[3]; // these versions need to be sourced from a config file -const awsCdkLibVersion = '2.0.0-rc.23'; +const awsCdkLibVersion = '2.0.0-rc.26'; const constructsVersion = '10.0.0'; const MODULE_EXEMPTIONS = new Set([ '@aws-cdk/cloudformation-diff', diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiExistingResources.expected.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiExistingResources.expected.json index 334a6000d..97da2b5ca 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiExistingResources.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiExistingResources.expected.json @@ -1139,7 +1139,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiNewResources.expected.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiNewResources.expected.json index c2e721023..9516a1935 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiNewResources.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiNewResources.expected.json @@ -762,7 +762,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiExistingResources.expected.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiExistingResources.expected.json index d2a79bb35..4b1bf802e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiExistingResources.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiExistingResources.expected.json @@ -1139,7 +1139,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiNewResources.expected.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiNewResources.expected.json index af91bcc3f..d2ad51fb3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiNewResources.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiNewResources.expected.json @@ -1144,7 +1144,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.twoTargets.expected.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.twoTargets.expected.json index ea96c15d9..9986312dc 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.twoTargets.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.twoTargets.expected.json @@ -1403,7 +1403,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-dynamodb/test/integ.apigateway-dynamodb-CRUD.expected.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-dynamodb/test/integ.apigateway-dynamodb-CRUD.expected.json index f59a93aca..daaaa1812 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-dynamodb/test/integ.apigateway-dynamodb-CRUD.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-dynamodb/test/integ.apigateway-dynamodb-CRUD.expected.json @@ -658,7 +658,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-dynamodb/test/integ.apigateway-dynamodb-existing-table.expected.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-dynamodb/test/integ.apigateway-dynamodb-existing-table.expected.json index 75ec39368..3dbfbe88b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-dynamodb/test/integ.apigateway-dynamodb-existing-table.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-dynamodb/test/integ.apigateway-dynamodb-existing-table.expected.json @@ -373,7 +373,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-dynamodb/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-dynamodb/test/integ.no-arguments.expected.json index 31f212c9b..521cd4b5a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-dynamodb/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-dynamodb/test/integ.no-arguments.expected.json @@ -373,7 +373,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/test/integ.defaultParams.expected.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/test/integ.defaultParams.expected.json index cfbb0f547..6426152bc 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/test/integ.defaultParams.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/test/integ.defaultParams.expected.json @@ -1262,7 +1262,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/test/integ.overrideParams.expected.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/test/integ.overrideParams.expected.json index 573827e65..a68d9a1f7 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/test/integ.overrideParams.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/test/integ.overrideParams.expected.json @@ -1391,7 +1391,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/test/integ.override_auth_api_keys.expected.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/test/integ.override_auth_api_keys.expected.json index 61645728a..51cdd7eeb 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/test/integ.override_auth_api_keys.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/test/integ.override_auth_api_keys.expected.json @@ -1389,7 +1389,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-kinesisstreams/test/integ.apigateway-kinesis-overwrite.expected.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-kinesisstreams/test/integ.apigateway-kinesis-overwrite.expected.json index e75364695..32fb1b4ec 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-kinesisstreams/test/integ.apigateway-kinesis-overwrite.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-kinesisstreams/test/integ.apigateway-kinesis-overwrite.expected.json @@ -547,7 +547,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-kinesisstreams/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-kinesisstreams/test/integ.no-arguments.expected.json index 5c694bc8e..2084f85e5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-kinesisstreams/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-kinesisstreams/test/integ.no-arguments.expected.json @@ -584,7 +584,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.deployFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.deployFunction.expected.json index 2dc40a071..11cc2570c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.deployFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.deployFunction.expected.json @@ -599,7 +599,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.existingFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.existingFunction.expected.json index 89b9f5ca4..be533a285 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.existingFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.existingFunction.expected.json @@ -599,7 +599,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-sagemakerendpoint/test/integ.apigateway-sagemakerendpoint-overwrite.expected.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-sagemakerendpoint/test/integ.apigateway-sagemakerendpoint-overwrite.expected.json index 5a5ae01db..ff698689f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-sagemakerendpoint/test/integ.apigateway-sagemakerendpoint-overwrite.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-sagemakerendpoint/test/integ.apigateway-sagemakerendpoint-overwrite.expected.json @@ -373,7 +373,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-sagemakerendpoint/test/integ.no-overwrite.expected.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-sagemakerendpoint/test/integ.no-overwrite.expected.json index 5be68a28b..818f748dc 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-sagemakerendpoint/test/integ.no-overwrite.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-sagemakerendpoint/test/integ.no-overwrite.expected.json @@ -362,7 +362,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-sqs/test/integ.apigateway-sqs-crud.expected.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-sqs/test/integ.apigateway-sqs-crud.expected.json index 5945b2496..41bd2c1ca 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-sqs/test/integ.apigateway-sqs-crud.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-sqs/test/integ.apigateway-sqs-crud.expected.json @@ -705,7 +705,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-sqs/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-sqs/test/integ.no-arguments.expected.json index fc4c958d5..e800a3522 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-sqs/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-sqs/test/integ.no-arguments.expected.json @@ -516,7 +516,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.customCloudfrontLoggingBucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.customCloudfrontLoggingBucket.expected.json index a19ef02d9..14526a495 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.customCloudfrontLoggingBucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.customCloudfrontLoggingBucket.expected.json @@ -826,7 +826,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.no-arguments.expected.json index 6968ec988..a56c66520 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.no-arguments.expected.json @@ -826,7 +826,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.override-behavior.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.override-behavior.expected.json index 96ac3279c..a2296d155 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.override-behavior.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.override-behavior.expected.json @@ -865,7 +865,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.customCloudfrontLoggingBucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.customCloudfrontLoggingBucket.expected.json index 6ab4f740f..938250853 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.customCloudfrontLoggingBucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.customCloudfrontLoggingBucket.expected.json @@ -826,7 +826,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.no-arguments.expected.json index 44706993a..92d2af10a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.no-arguments.expected.json @@ -826,7 +826,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/test/integ.customCloudFrontLoggingBucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/test/integ.customCloudFrontLoggingBucket.expected.json index 9a6902050..8d52a17e1 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/test/integ.customCloudFrontLoggingBucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/test/integ.customCloudFrontLoggingBucket.expected.json @@ -324,7 +324,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/test/integ.default.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/test/integ.default.expected.json index 49dbec18b..b6b8466b8 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/test/integ.default.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/test/integ.default.expected.json @@ -324,7 +324,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/test/integ.existingContainer.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/test/integ.existingContainer.expected.json index 9de6e0a3f..fbfaa3c95 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/test/integ.existingContainer.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/test/integ.existingContainer.expected.json @@ -241,7 +241,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/test/integ.overrideProperties.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/test/integ.overrideProperties.expected.json index f9d7d4176..c46fd31f2 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/test/integ.overrideProperties.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/test/integ.overrideProperties.expected.json @@ -283,7 +283,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/test/integ.withoutHttpSecurityHeaders.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/test/integ.withoutHttpSecurityHeaders.expected.json index 5a7292a2a..8aa18d953 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/test/integ.withoutHttpSecurityHeaders.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/test/integ.withoutHttpSecurityHeaders.expected.json @@ -301,7 +301,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.custom-originPath.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.custom-originPath.expected.json index e5446fc9a..db8094d0f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.custom-originPath.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.custom-originPath.expected.json @@ -392,7 +392,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.custom-security-headers.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.custom-security-headers.expected.json index 49d811b42..784fb40e6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.custom-security-headers.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.custom-security-headers.expected.json @@ -423,7 +423,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.customCloudFrontLoggingBucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.customCloudFrontLoggingBucket.expected.json index adf440209..302ba2dcb 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.customCloudFrontLoggingBucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.customCloudFrontLoggingBucket.expected.json @@ -391,7 +391,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.customLoggingBucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.customLoggingBucket.expected.json index ca7ed7316..f78bb60f8 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.customLoggingBucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.customLoggingBucket.expected.json @@ -391,7 +391,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.existing-bucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.existing-bucket.expected.json index ec00c9f41..d672d7984 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.existing-bucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.existing-bucket.expected.json @@ -356,7 +356,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.no-arguments.expected.json index 2edc30660..402a314ef 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.no-arguments.expected.json @@ -312,7 +312,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.no-security-headers.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.no-security-headers.expected.json index 668776e0d..6b8d6e96f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.no-security-headers.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.no-security-headers.expected.json @@ -368,7 +368,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.no-arguments.expected.json index 95deba605..9d89302b2 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.no-arguments.expected.json @@ -683,7 +683,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda-elasticsearch-kibana/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda-elasticsearch-kibana/test/integ.no-arguments.expected.json index 4aa4588ee..d8dc15d28 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda-elasticsearch-kibana/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda-elasticsearch-kibana/test/integ.no-arguments.expected.json @@ -812,7 +812,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/test/integ.existing-table.expected.json b/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/test/integ.existing-table.expected.json index 16efff305..004c7a985 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/test/integ.existing-table.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/test/integ.existing-table.expected.json @@ -313,7 +313,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/test/integ.no-arguments.expected.json index 0b1e5f838..b770fc38d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/test/integ.no-arguments.expected.json @@ -313,7 +313,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.no-arguments.expected.json index 13d610817..c6e65786e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.no-arguments.expected.json @@ -812,7 +812,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.existing-table.expected.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.existing-table.expected.json index 93a6626a8..f3e1ec550 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.existing-table.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.existing-table.expected.json @@ -313,7 +313,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.no-arguments.expected.json index 3b4ecfb68..46bbdde55 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.no-arguments.expected.json @@ -313,7 +313,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.customLoggingBucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.customLoggingBucket.expected.json index 348f3d2b5..5af988e26 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.customLoggingBucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.customLoggingBucket.expected.json @@ -438,7 +438,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.eventbridge-kinesisfirehose-s3-existing-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.eventbridge-kinesisfirehose-s3-existing-eventbus.expected.json index 970f927f4..ea20e51e2 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.eventbridge-kinesisfirehose-s3-existing-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.eventbridge-kinesisfirehose-s3-existing-eventbus.expected.json @@ -372,7 +372,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.eventbridge-kinesisfirehose-s3-new-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.eventbridge-kinesisfirehose-s3-new-eventbus.expected.json index 928c57f69..812e0e7e4 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.eventbridge-kinesisfirehose-s3-new-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.eventbridge-kinesisfirehose-s3-new-eventbus.expected.json @@ -372,7 +372,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.eventbridge-kinesisfirehose-s3-no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.eventbridge-kinesisfirehose-s3-no-arguments.expected.json index 5e792492e..6a47b62d6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.eventbridge-kinesisfirehose-s3-no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.eventbridge-kinesisfirehose-s3-no-arguments.expected.json @@ -438,7 +438,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/integ.eventbridge-kinesisstreams-existing-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/integ.eventbridge-kinesisstreams-existing-eventbus.expected.json index 3b425ed84..df8bc0ef0 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/integ.eventbridge-kinesisstreams-existing-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/integ.eventbridge-kinesisstreams-existing-eventbus.expected.json @@ -128,7 +128,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/integ.eventbridge-kinesisstreams-existing.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/integ.eventbridge-kinesisstreams-existing.expected.json index 528ab17dd..08bd8744e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/integ.eventbridge-kinesisstreams-existing.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/integ.eventbridge-kinesisstreams-existing.expected.json @@ -115,7 +115,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/integ.eventbridge-kinesisstreams-new-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/integ.eventbridge-kinesisstreams-new-eventbus.expected.json index 44711a73f..b75e2dd0b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/integ.eventbridge-kinesisstreams-new-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/integ.eventbridge-kinesisstreams-new-eventbus.expected.json @@ -128,7 +128,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/integ.eventbridge-kinesisstreams-no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/integ.eventbridge-kinesisstreams-no-arguments.expected.json index b3c8fe2ee..c82ed0194 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/integ.eventbridge-kinesisstreams-no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/test/integ.eventbridge-kinesisstreams-no-arguments.expected.json @@ -115,7 +115,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-existing-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-existing-eventbus.expected.json index efb15173d..f9d6504f8 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-existing-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-existing-eventbus.expected.json @@ -193,7 +193,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-new-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-new-eventbus.expected.json index 76f1cd437..88aa31896 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-new-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-new-eventbus.expected.json @@ -193,7 +193,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-no-argument.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-no-argument.expected.json index c70eb2530..6f2ee3670 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-no-argument.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-no-argument.expected.json @@ -180,7 +180,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/test/integ.exist-bus.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/test/integ.exist-bus.expected.json index 5912865c5..99754ff5c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/test/integ.exist-bus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/test/integ.exist-bus.expected.json @@ -193,7 +193,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/test/integ.new-bus.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/test/integ.new-bus.expected.json index ae88f913a..a009ae1f9 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/test/integ.new-bus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/test/integ.new-bus.expected.json @@ -193,7 +193,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/test/integ.no-arg.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/test/integ.no-arg.expected.json index efe364857..1b036dafb 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/test/integ.no-arg.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/test/integ.no-arg.expected.json @@ -180,7 +180,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/test/integ.exist-bus.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/test/integ.exist-bus.expected.json index 3be5fc9ad..ed59bf5c3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/test/integ.exist-bus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/test/integ.exist-bus.expected.json @@ -135,7 +135,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/test/integ.exist-queue.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/test/integ.exist-queue.expected.json index afcc2e863..b888ac1b9 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/test/integ.exist-queue.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/test/integ.exist-queue.expected.json @@ -122,7 +122,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/test/integ.new-bus.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/test/integ.new-bus.expected.json index 2e963eb6e..3b3c5a47e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/test/integ.new-bus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/test/integ.new-bus.expected.json @@ -279,7 +279,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/test/integ.no-arg.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/test/integ.no-arg.expected.json index 3f31a6a7c..47c71c258 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/test/integ.no-arg.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/test/integ.no-arg.expected.json @@ -266,7 +266,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-existing-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-existing-eventbus.expected.json index 3370eeee0..cf8d4fac0 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-existing-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-existing-eventbus.expected.json @@ -454,7 +454,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-new-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-new-eventbus.expected.json index a40d60107..db924a88d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-new-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-new-eventbus.expected.json @@ -454,7 +454,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-no-argument.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-no-argument.expected.json index 63fe67c06..942a2faa6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-no-argument.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-no-argument.expected.json @@ -275,7 +275,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-with-lambda.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-with-lambda.expected.json index f21c73fde..2d78caa87 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-with-lambda.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-with-lambda.expected.json @@ -441,7 +441,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.customLoggingBucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.customLoggingBucket.expected.json index 500e89c51..9681f7a21 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.customLoggingBucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.customLoggingBucket.expected.json @@ -438,7 +438,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.events-rule-kinesisfirehose-s3-existing-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.events-rule-kinesisfirehose-s3-existing-eventbus.expected.json index 1fcff10c1..7613a5a16 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.events-rule-kinesisfirehose-s3-existing-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.events-rule-kinesisfirehose-s3-existing-eventbus.expected.json @@ -372,7 +372,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.events-rule-kinesisfirehose-s3-new-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.events-rule-kinesisfirehose-s3-new-eventbus.expected.json index c7fe70c9f..23fa30863 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.events-rule-kinesisfirehose-s3-new-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.events-rule-kinesisfirehose-s3-new-eventbus.expected.json @@ -461,7 +461,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.events-rule-kinesisfirehose-s3-no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.events-rule-kinesisfirehose-s3-no-arguments.expected.json index 847df6498..879991656 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.events-rule-kinesisfirehose-s3-no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.events-rule-kinesisfirehose-s3-no-arguments.expected.json @@ -438,7 +438,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/test/integ.events-rule-kinesisstreams-existing-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/test/integ.events-rule-kinesisstreams-existing-eventbus.expected.json index c00cedd12..4b40f5f6d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/test/integ.events-rule-kinesisstreams-existing-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/test/integ.events-rule-kinesisstreams-existing-eventbus.expected.json @@ -128,7 +128,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/test/integ.events-rule-kinesisstreams-existing.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/test/integ.events-rule-kinesisstreams-existing.expected.json index 3d6d371cc..e72e3d4f2 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/test/integ.events-rule-kinesisstreams-existing.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/test/integ.events-rule-kinesisstreams-existing.expected.json @@ -115,7 +115,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/test/integ.events-rule-kinesisstreams-new-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/test/integ.events-rule-kinesisstreams-new-eventbus.expected.json index b1f32e827..495133ec3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/test/integ.events-rule-kinesisstreams-new-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/test/integ.events-rule-kinesisstreams-new-eventbus.expected.json @@ -128,7 +128,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/test/integ.events-rule-kinesisstreams-no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/test/integ.events-rule-kinesisstreams-no-arguments.expected.json index 01bc136e7..7f935308b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/test/integ.events-rule-kinesisstreams-no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/test/integ.events-rule-kinesisstreams-no-arguments.expected.json @@ -115,7 +115,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.events-rule-no-argument.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.events-rule-no-argument.expected.json index 13e8f1c0f..e7f857813 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.events-rule-no-argument.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.events-rule-no-argument.expected.json @@ -180,7 +180,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.eventsrule-existing-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.eventsrule-existing-eventbus.expected.json index 757363939..1072df38b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.eventsrule-existing-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.eventsrule-existing-eventbus.expected.json @@ -193,7 +193,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.eventsrule-new-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.eventsrule-new-eventbus.expected.json index 0ea3ceaa6..dc068a66a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.eventsrule-new-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.eventsrule-new-eventbus.expected.json @@ -193,7 +193,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/test/integ.exist-bus.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/test/integ.exist-bus.expected.json index df2df167d..0ad388b31 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/test/integ.exist-bus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/test/integ.exist-bus.expected.json @@ -193,7 +193,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/test/integ.new-bus.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/test/integ.new-bus.expected.json index d095259c8..171919ca8 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/test/integ.new-bus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/test/integ.new-bus.expected.json @@ -193,7 +193,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/test/integ.no-arg.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/test/integ.no-arg.expected.json index 747395b6f..e0b09417b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/test/integ.no-arg.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/test/integ.no-arg.expected.json @@ -180,7 +180,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/test/integ.exist-bus.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/test/integ.exist-bus.expected.json index f9f30e760..f46a6dcad 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/test/integ.exist-bus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/test/integ.exist-bus.expected.json @@ -135,7 +135,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/test/integ.exist-queue.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/test/integ.exist-queue.expected.json index 81f62fba3..ffe3417b7 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/test/integ.exist-queue.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/test/integ.exist-queue.expected.json @@ -122,7 +122,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/test/integ.new-bus.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/test/integ.new-bus.expected.json index c32b32230..e845dfe1a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/test/integ.new-bus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/test/integ.new-bus.expected.json @@ -279,7 +279,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/test/integ.no-arg.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/test/integ.no-arg.expected.json index b610ee485..5ac0dee2e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/test/integ.no-arg.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/test/integ.no-arg.expected.json @@ -266,7 +266,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-step-function-no-argument.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-step-function-no-argument.expected.json index 4d85357eb..a81cb87f1 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-step-function-no-argument.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-step-function-no-argument.expected.json @@ -275,7 +275,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-step-function-with-lambda.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-step-function-with-lambda.expected.json index 4b3e2ddd6..a349371c2 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-step-function-with-lambda.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-step-function-with-lambda.expected.json @@ -441,7 +441,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-stepfunctions-existing-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-stepfunctions-existing-eventbus.expected.json index 444438189..92d3f373a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-stepfunctions-existing-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-stepfunctions-existing-eventbus.expected.json @@ -454,7 +454,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-stepfunctions-new-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-stepfunctions-new-eventbus.expected.json index c0c04ed34..2f82a4b2e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-stepfunctions-new-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-stepfunctions-new-eventbus.expected.json @@ -454,7 +454,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/test/integ.customLoggingBucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/test/integ.customLoggingBucket.expected.json index fd285b691..2b51c2c79 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/test/integ.customLoggingBucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/test/integ.customLoggingBucket.expected.json @@ -435,7 +435,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/test/integ.no-arguments.expected.json index 844faa21a..32114513f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/test/integ.no-arguments.expected.json @@ -435,7 +435,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/test/integ.noLoggingBucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/test/integ.noLoggingBucket.expected.json index 85c1b5272..daf5619ff 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/test/integ.noLoggingBucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/test/integ.noLoggingBucket.expected.json @@ -355,7 +355,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-kinesisstreams/test/integ.existing-kinesisstream.expected.json b/source/patterns/@aws-solutions-constructs/aws-iot-kinesisstreams/test/integ.existing-kinesisstream.expected.json index 917a333cd..50be5cdd6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-kinesisstreams/test/integ.existing-kinesisstream.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-kinesisstreams/test/integ.existing-kinesisstream.expected.json @@ -111,7 +111,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-kinesisstreams/test/integ.new-kinesisstream.expected.json b/source/patterns/@aws-solutions-constructs/aws-iot-kinesisstreams/test/integ.new-kinesisstream.expected.json index c74fd497a..ed4bcd2c3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-kinesisstreams/test/integ.new-kinesisstream.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-kinesisstreams/test/integ.new-kinesisstream.expected.json @@ -111,7 +111,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-kinesisstreams/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-iot-kinesisstreams/test/integ.no-arguments.expected.json index cade6735c..416b5ad96 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-kinesisstreams/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-kinesisstreams/test/integ.no-arguments.expected.json @@ -111,7 +111,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iot-lambda-dynamodb.expected.json b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iot-lambda-dynamodb.expected.json index 8b864a245..febd5e379 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iot-lambda-dynamodb.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iot-lambda-dynamodb.expected.json @@ -240,7 +240,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iot-lambda-new-func.expected.json b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iot-lambda-new-func.expected.json index 27b14f88b..ac2c0c54e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iot-lambda-new-func.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iot-lambda-new-func.expected.json @@ -184,7 +184,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iot-lambda-use-existing-func.expected.json b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iot-lambda-use-existing-func.expected.json index 39a0933b1..53dc8d301 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iot-lambda-use-existing-func.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iot-lambda-use-existing-func.expected.json @@ -184,7 +184,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-sqs/test/integ.custom-max-receive-count.expected.json b/source/patterns/@aws-solutions-constructs/aws-iot-sqs/test/integ.custom-max-receive-count.expected.json index 8aac856d7..2b7d9b0de 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-sqs/test/integ.custom-max-receive-count.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-sqs/test/integ.custom-max-receive-count.expected.json @@ -343,7 +343,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-sqs/test/integ.dead-letter-queue-off.expected.json b/source/patterns/@aws-solutions-constructs/aws-iot-sqs/test/integ.dead-letter-queue-off.expected.json index b1698aefc..c4721aa34 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-sqs/test/integ.dead-letter-queue-off.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-sqs/test/integ.dead-letter-queue-off.expected.json @@ -254,7 +254,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-sqs/test/integ.default-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-iot-sqs/test/integ.default-arguments.expected.json index 1d0940630..dbd77e6aa 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-sqs/test/integ.default-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-sqs/test/integ.default-arguments.expected.json @@ -341,7 +341,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-sqs/test/integ.existing-queue.expected.json b/source/patterns/@aws-solutions-constructs/aws-iot-sqs/test/integ.existing-queue.expected.json index 51d749db8..95a02fea5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-sqs/test/integ.existing-queue.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-sqs/test/integ.existing-queue.expected.json @@ -87,7 +87,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-sqs/test/integ.use-kms-key-props.expected.json b/source/patterns/@aws-solutions-constructs/aws-iot-sqs/test/integ.use-kms-key-props.expected.json index 4fa9cb791..e50357dbf 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-sqs/test/integ.use-kms-key-props.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-sqs/test/integ.use-kms-key-props.expected.json @@ -353,7 +353,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-sqs/test/integ.use-queue-props.expected.json b/source/patterns/@aws-solutions-constructs/aws-iot-sqs/test/integ.use-queue-props.expected.json index ba8c87c37..d05377618 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-sqs/test/integ.use-queue-props.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-sqs/test/integ.use-queue-props.expected.json @@ -343,7 +343,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-sqs/test/integ.with-existing-key.expected.json b/source/patterns/@aws-solutions-constructs/aws-iot-sqs/test/integ.with-existing-key.expected.json index 73fe58368..0c20c7a16 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-sqs/test/integ.with-existing-key.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-sqs/test/integ.with-existing-key.expected.json @@ -353,7 +353,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-sqs/test/integ.without-create-kms-key.expected.json b/source/patterns/@aws-solutions-constructs/aws-iot-sqs/test/integ.without-create-kms-key.expected.json index dfac4d2ce..dbfc5202a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-sqs/test/integ.without-create-kms-key.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-sqs/test/integ.without-create-kms-key.expected.json @@ -245,7 +245,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/test/integ.customLoggingBucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/test/integ.customLoggingBucket.expected.json index 95b0c21f2..1209165dd 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/test/integ.customLoggingBucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/test/integ.customLoggingBucket.expected.json @@ -468,7 +468,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/test/integ.no-arguments.expected.json index a6d3ed408..e290a5129 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/test/integ.no-arguments.expected.json @@ -467,7 +467,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/test/integ.noLoggingBucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/test/integ.noLoggingBucket.expected.json index a0ed5887c..315a8bb6f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/test/integ.noLoggingBucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/test/integ.noLoggingBucket.expected.json @@ -388,7 +388,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.customLoggingBucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.customLoggingBucket.expected.json index 2cc28d71c..7ba2db9f4 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.customLoggingBucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.customLoggingBucket.expected.json @@ -367,7 +367,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.no-arguments.expected.json index 4684de7a6..fa65e9355 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.no-arguments.expected.json @@ -367,7 +367,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.noLoggingBucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.noLoggingBucket.expected.json index 5c24633bb..109e76171 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.noLoggingBucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.noLoggingBucket.expected.json @@ -287,7 +287,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.pre-existing-bucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.pre-existing-bucket.expected.json index 37970ce3a..42b22efd1 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.pre-existing-bucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.pre-existing-bucket.expected.json @@ -249,7 +249,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.pre-existing-logging-bucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.pre-existing-logging-bucket.expected.json index 367f1b582..0cffcc486 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.pre-existing-logging-bucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.pre-existing-logging-bucket.expected.json @@ -321,7 +321,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-gluejob/test/integ.existing-job.expected.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-gluejob/test/integ.existing-job.expected.json index c5f74c45f..591142707 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-gluejob/test/integ.existing-job.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-gluejob/test/integ.existing-job.expected.json @@ -393,7 +393,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-gluejob/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-gluejob/test/integ.no-arguments.expected.json index 3b5a82583..611e3ffd2 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-gluejob/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-gluejob/test/integ.no-arguments.expected.json @@ -688,7 +688,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.customLoggingBucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.customLoggingBucket.expected.json index c12681a62..d1dcfab67 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.customLoggingBucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.customLoggingBucket.expected.json @@ -458,7 +458,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.existing-bucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.existing-bucket.expected.json index 7b6fb9f6e..84ae3909c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.existing-bucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.existing-bucket.expected.json @@ -340,7 +340,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.existing-logging-bucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.existing-logging-bucket.expected.json index d212a478d..12298137d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.existing-logging-bucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.existing-logging-bucket.expected.json @@ -412,7 +412,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.existingStreamObj.expected.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.existingStreamObj.expected.json index 3a268b07a..3bdc6e486 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.existingStreamObj.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.existingStreamObj.expected.json @@ -665,7 +665,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.no-arguments.expected.json index 77fd6fa25..bf2b0df09 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.no-arguments.expected.json @@ -458,7 +458,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.existing.expected.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.existing.expected.json index dce2d44db..a5a82d8b1 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.existing.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.existing.expected.json @@ -299,7 +299,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.no-arguments.expected.json index 1939d5f4b..892b614d2 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.no-arguments.expected.json @@ -329,7 +329,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.add-secondary-index.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.add-secondary-index.expected.json index d16ed6519..7f6eeadf7 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.add-secondary-index.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.add-secondary-index.expected.json @@ -228,7 +228,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.deployFunctionWithExistingVpc.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.deployFunctionWithExistingVpc.expected.json index 244480f3e..831b4ca74 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.deployFunctionWithExistingVpc.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.deployFunctionWithExistingVpc.expected.json @@ -954,7 +954,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.deployFunctionWithVpc.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.deployFunctionWithVpc.expected.json index 225d5ae15..0a7e622e1 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.deployFunctionWithVpc.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.deployFunctionWithVpc.expected.json @@ -566,7 +566,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.no-arguments.expected.json index f0f4275f3..d2a728935 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.no-arguments.expected.json @@ -199,7 +199,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.set-billing-mode.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.set-billing-mode.expected.json index 7a912e7fa..a99d9a27e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.set-billing-mode.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.set-billing-mode.expected.json @@ -212,7 +212,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.use-existing-func.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.use-existing-func.expected.json index d2398dc20..719b4866f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.use-existing-func.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.use-existing-func.expected.json @@ -199,7 +199,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.domain-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.domain-arguments.expected.json index b1048b8cd..6ffc4dc66 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.domain-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.domain-arguments.expected.json @@ -659,7 +659,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.no-arguments.expected.json index 670d1f257..e89d7f704 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.no-arguments.expected.json @@ -642,7 +642,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunction.expected.json index f47d486c3..9842e162c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunction.expected.json @@ -169,7 +169,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithNewEventBus.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithNewEventBus.expected.json index 0aaa124fe..6319e3222 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithNewEventBus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithNewEventBus.expected.json @@ -596,7 +596,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithVpc.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithVpc.expected.json index bb40b857b..71ffc594f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithVpc.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithVpc.expected.json @@ -602,7 +602,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingEventBus.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingEventBus.expected.json index adb03ddbc..493b19921 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingEventBus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingEventBus.expected.json @@ -163,7 +163,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingFunction.expected.json index a33abce67..044816035 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingFunction.expected.json @@ -169,7 +169,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.customLoggingBucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.customLoggingBucket.expected.json index f69110df6..6e61f7cd6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.customLoggingBucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.customLoggingBucket.expected.json @@ -355,7 +355,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.deployFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.deployFunction.expected.json index 0daa8c41c..0a7e25c90 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.deployFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.deployFunction.expected.json @@ -276,7 +276,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.deployFunctionWithVpc.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.deployFunctionWithVpc.expected.json index 931cb330d..9acb2bead 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.deployFunctionWithVpc.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.deployFunctionWithVpc.expected.json @@ -642,7 +642,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.existingFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.existingFunction.expected.json index 99f43e96e..bc2c7fe37 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.existingFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.existingFunction.expected.json @@ -355,7 +355,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.pre-existing-bucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.pre-existing-bucket.expected.json index 2c7c73c9d..f1969a47a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.pre-existing-bucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.pre-existing-bucket.expected.json @@ -228,7 +228,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sagemakerendpoint/test/integ.deployFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sagemakerendpoint/test/integ.deployFunction.expected.json index b3d77a3b0..eb40642ed 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sagemakerendpoint/test/integ.deployFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sagemakerendpoint/test/integ.deployFunction.expected.json @@ -565,7 +565,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sagemakerendpoint/test/integ.existingFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sagemakerendpoint/test/integ.existingFunction.expected.json index c35a01eba..e0e998e75 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sagemakerendpoint/test/integ.existingFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sagemakerendpoint/test/integ.existingFunction.expected.json @@ -565,7 +565,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sagemakerendpoint/test/integ.existingSageMakerEndpoint.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sagemakerendpoint/test/integ.existingSageMakerEndpoint.expected.json index e4d553755..78d3e1f8f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sagemakerendpoint/test/integ.existingSageMakerEndpoint.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sagemakerendpoint/test/integ.existingSageMakerEndpoint.expected.json @@ -565,7 +565,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunction.expected.json index 0342d4eb2..cdc6e4182 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunction.expected.json @@ -175,7 +175,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunctionWithExistingVpc.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunctionWithExistingVpc.expected.json index 5f06a9af0..349bf772a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunctionWithExistingVpc.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunctionWithExistingVpc.expected.json @@ -987,7 +987,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunctionWithVpc.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunctionWithVpc.expected.json index 59673e4d2..5f1c71297 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunctionWithVpc.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunctionWithVpc.expected.json @@ -608,7 +608,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.existingFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.existingFunction.expected.json index db3b288a7..8439309aa 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.existingFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.existingFunction.expected.json @@ -175,7 +175,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.deployFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.deployFunction.expected.json index 3889ea63b..b4d1ec208 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.deployFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.deployFunction.expected.json @@ -269,7 +269,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.deployFunctionWithVpc.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.deployFunctionWithVpc.expected.json index ad8cd0524..95e1595a8 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.deployFunctionWithVpc.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.deployFunctionWithVpc.expected.json @@ -702,7 +702,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.existingFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.existingFunction.expected.json index 9501c3265..a13839c13 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.existingFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.existingFunction.expected.json @@ -269,7 +269,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.defaultDeployment.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.defaultDeployment.expected.json index 9856ccb80..466c644c4 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.defaultDeployment.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.defaultDeployment.expected.json @@ -496,7 +496,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.deployProducerFunctionWithVpc.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.deployProducerFunctionWithVpc.expected.json index 18ff7e5e4..974242097 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.deployProducerFunctionWithVpc.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.deployProducerFunctionWithVpc.expected.json @@ -929,7 +929,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingConsumerFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingConsumerFunction.expected.json index 35127469b..9ff5b3eb8 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingConsumerFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingConsumerFunction.expected.json @@ -496,7 +496,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingProducerFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingProducerFunction.expected.json index a1307acbf..c824dec76 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingProducerFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingProducerFunction.expected.json @@ -496,7 +496,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingQueue.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingQueue.expected.json index 76fb3c1f9..10058b863 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingQueue.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingQueue.expected.json @@ -408,7 +408,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.deployFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.deployFunction.expected.json index cd3c04634..d956276e1 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.deployFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.deployFunction.expected.json @@ -328,7 +328,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.deployFunctionWithVpc.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.deployFunctionWithVpc.expected.json index 8fa5c0c48..56ed3ba59 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.deployFunctionWithVpc.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.deployFunctionWithVpc.expected.json @@ -761,7 +761,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.existingFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.existingFunction.expected.json index ebf97b68d..5d2d88c36 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.existingFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.existingFunction.expected.json @@ -328,7 +328,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunction.expected.json index c8b6f6149..ab86d570f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunction.expected.json @@ -186,7 +186,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunctionWithExistingVpc.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunctionWithExistingVpc.expected.json index ccf4fbdad..1f0f0ed1e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunctionWithExistingVpc.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunctionWithExistingVpc.expected.json @@ -998,7 +998,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunctionWithVpc.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunctionWithVpc.expected.json index 9bb2e45b0..9da83b529 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunctionWithVpc.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunctionWithVpc.expected.json @@ -619,7 +619,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.existingFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.existingFunction.expected.json index 56c45aa9c..6ce793386 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.existingFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.existingFunction.expected.json @@ -186,7 +186,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.existingStringParameter.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.existingStringParameter.expected.json index 4da5173a1..9b26da42e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.existingStringParameter.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.existingStringParameter.expected.json @@ -186,7 +186,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/test/integ.deploy-lambda.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/test/integ.deploy-lambda.expected.json index 4240f910e..c0d0c9fea 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/test/integ.deploy-lambda.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/test/integ.deploy-lambda.expected.json @@ -362,7 +362,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/test/integ.deployFunctionWithVpc.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/test/integ.deployFunctionWithVpc.expected.json index 4c15d8193..232dffc75 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/test/integ.deployFunctionWithVpc.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/test/integ.deployFunctionWithVpc.expected.json @@ -796,7 +796,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/test/integ.existing-function.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/test/integ.existing-function.expected.json index a2bf0d702..521ab0f05 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/test/integ.existing-function.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/test/integ.existing-function.expected.json @@ -362,7 +362,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.deploy-lambda.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.deploy-lambda.expected.json index b98191437..da139eef5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.deploy-lambda.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.deploy-lambda.expected.json @@ -362,7 +362,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.deployFunctionWithVpc.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.deployFunctionWithVpc.expected.json index a6df5386f..e82afac54 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.deployFunctionWithVpc.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.deployFunctionWithVpc.expected.json @@ -796,7 +796,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.existing-function.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.existing-function.expected.json index 4ffc9aee0..03ede751d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.existing-function.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.existing-function.expected.json @@ -362,7 +362,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPrivateApi.expected.json b/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPrivateApi.expected.json index c636b74f1..d15e268ff 100644 --- a/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPrivateApi.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPrivateApi.expected.json @@ -528,7 +528,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPrivateApiExistingZone.expected.json b/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPrivateApiExistingZone.expected.json index 66affb07f..d6a6380e9 100644 --- a/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPrivateApiExistingZone.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPrivateApiExistingZone.expected.json @@ -907,7 +907,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPublicApiExistingAlb.expected.json b/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPublicApiExistingAlb.expected.json index b6c97fb8b..97572764a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPublicApiExistingAlb.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPublicApiExistingAlb.expected.json @@ -765,7 +765,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPublicApiNewAlb.expected.json b/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPublicApiNewAlb.expected.json index 095a9fa5b..5b24b25cd 100644 --- a/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPublicApiNewAlb.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPublicApiNewAlb.expected.json @@ -902,7 +902,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployWithoutLogging.expected.json b/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployWithoutLogging.expected.json index ff6a4e693..761c4e7e4 100644 --- a/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployWithoutLogging.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployWithoutLogging.expected.json @@ -394,7 +394,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.existing-s3-bucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.existing-s3-bucket.expected.json index 44bd60d49..769876a58 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.existing-s3-bucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.existing-s3-bucket.expected.json @@ -337,7 +337,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.no-arguments.expected.json index 162cd4550..33b958da4 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.no-arguments.expected.json @@ -396,7 +396,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-sqs/test/integ.creatingNewQueue.expected.json b/source/patterns/@aws-solutions-constructs/aws-s3-sqs/test/integ.creatingNewQueue.expected.json index 552ef573d..cb7b2cab6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-sqs/test/integ.creatingNewQueue.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-sqs/test/integ.creatingNewQueue.expected.json @@ -559,7 +559,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-sqs/test/integ.customLoggingBucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-s3-sqs/test/integ.customLoggingBucket.expected.json index c9848ecc9..8a19aafa5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-sqs/test/integ.customLoggingBucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-sqs/test/integ.customLoggingBucket.expected.json @@ -586,7 +586,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-sqs/test/integ.existingQueue.expected.json b/source/patterns/@aws-solutions-constructs/aws-s3-sqs/test/integ.existingQueue.expected.json index a0cc64961..510b610f3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-sqs/test/integ.existingQueue.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-sqs/test/integ.existingQueue.expected.json @@ -418,7 +418,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-sqs/test/integ.existingS3Bucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-s3-sqs/test/integ.existingS3Bucket.expected.json index 39716e0e6..c26dcd5c1 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-sqs/test/integ.existingS3Bucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-sqs/test/integ.existingS3Bucket.expected.json @@ -585,7 +585,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-sqs/test/integ.noArguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-s3-sqs/test/integ.noArguments.expected.json index 3111f2f3a..a65cdb852 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-sqs/test/integ.noArguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-sqs/test/integ.noArguments.expected.json @@ -585,7 +585,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.customLoggingBucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.customLoggingBucket.expected.json index a089ce26c..3858faa7b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.customLoggingBucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.customLoggingBucket.expected.json @@ -475,7 +475,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.pre-existing-bucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.pre-existing-bucket.expected.json index 196b20070..504f5d3db 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.pre-existing-bucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.pre-existing-bucket.expected.json @@ -336,7 +336,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.s3-step-function-no-argument.expected.json b/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.s3-step-function-no-argument.expected.json index 9f0b44ec5..6440009cc 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.s3-step-function-no-argument.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.s3-step-function-no-argument.expected.json @@ -395,7 +395,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.customLoggingBucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.customLoggingBucket.expected.json index 062c119ed..c4e8d45c3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.customLoggingBucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.customLoggingBucket.expected.json @@ -475,7 +475,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.pre-existing-bucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.pre-existing-bucket.expected.json index f0e083e0f..e9cd8a167 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.pre-existing-bucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.pre-existing-bucket.expected.json @@ -336,7 +336,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3-stepfunctions-no-argument.expected.json b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3-stepfunctions-no-argument.expected.json index c01685134..242ff1ce9 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3-stepfunctions-no-argument.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3-stepfunctions-no-argument.expected.json @@ -395,7 +395,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.no-arguments.expected.json index e99deb35c..5bbd925ef 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.no-arguments.expected.json @@ -284,7 +284,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-sns-sqs/test/integ.deployFIFOQueue.expected.json b/source/patterns/@aws-solutions-constructs/aws-sns-sqs/test/integ.deployFIFOQueue.expected.json index 07373f9e1..f02ed8dc7 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sns-sqs/test/integ.deployFIFOQueue.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-sns-sqs/test/integ.deployFIFOQueue.expected.json @@ -343,7 +343,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-sns-sqs/test/integ.deployStandardQueue.expected.json b/source/patterns/@aws-solutions-constructs/aws-sns-sqs/test/integ.deployStandardQueue.expected.json index 4f4027cf9..b90152369 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sns-sqs/test/integ.deployStandardQueue.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-sns-sqs/test/integ.deployStandardQueue.expected.json @@ -340,7 +340,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-sns-sqs/test/integ.existing-kms-key.expected.json b/source/patterns/@aws-solutions-constructs/aws-sns-sqs/test/integ.existing-kms-key.expected.json index 0d2e153a4..e7533ee75 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sns-sqs/test/integ.existing-kms-key.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-sns-sqs/test/integ.existing-kms-key.expected.json @@ -366,7 +366,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-sns-sqs/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-sns-sqs/test/integ.no-arguments.expected.json index 203951af0..f8a2caea9 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sns-sqs/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-sns-sqs/test/integ.no-arguments.expected.json @@ -392,7 +392,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-sns-sqs/test/integ.sns-managed-kms-key.expected.json b/source/patterns/@aws-solutions-constructs/aws-sns-sqs/test/integ.sns-managed-kms-key.expected.json index 8fa9a207b..af9b8a6e7 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sns-sqs/test/integ.sns-managed-kms-key.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-sns-sqs/test/integ.sns-managed-kms-key.expected.json @@ -380,7 +380,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.deployFifoQueue.expected.json b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.deployFifoQueue.expected.json index ba42e8cdc..03b377062 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.deployFifoQueue.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.deployFifoQueue.expected.json @@ -345,7 +345,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.deployFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.deployFunction.expected.json index 849b33bb8..14c8cf253 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.deployFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.deployFunction.expected.json @@ -341,7 +341,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.existingFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.existingFunction.expected.json index 484e2f6d0..809f8a1d7 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.existingFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.existingFunction.expected.json @@ -341,7 +341,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-alb/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-alb/test/integ.no-arguments.expected.json index fb2c3e0ed..7806f3d90 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-alb/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-alb/test/integ.no-arguments.expected.json @@ -882,7 +882,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.existing-waf-to-multiple-gateways.expected.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.existing-waf-to-multiple-gateways.expected.json index a9183834e..8c15a991e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.existing-waf-to-multiple-gateways.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.existing-waf-to-multiple-gateways.expected.json @@ -1391,7 +1391,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.no-arguments.expected.json index 79f018b34..1519e75ce 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.no-arguments.expected.json @@ -770,7 +770,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafwebacl-apigateway-dynamodb.expected.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafwebacl-apigateway-dynamodb.expected.json index 2188f2c63..d380f94eb 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafwebacl-apigateway-dynamodb.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafwebacl-apigateway-dynamodb.expected.json @@ -544,7 +544,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafwebacl-apigateway-iot.expected.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafwebacl-apigateway-iot.expected.json index 7ce2e48c5..2d5f297f6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafwebacl-apigateway-iot.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafwebacl-apigateway-iot.expected.json @@ -1433,7 +1433,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafwebacl-apigateway-kinesisstreams.expected.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafwebacl-apigateway-kinesisstreams.expected.json index 8effacb8b..9672e6859 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafwebacl-apigateway-kinesisstreams.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafwebacl-apigateway-kinesisstreams.expected.json @@ -755,7 +755,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafwebacl-apigateway-sagemakerendpoint.expected.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafwebacl-apigateway-sagemakerendpoint.expected.json index e2e342167..9d80c0630 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafwebacl-apigateway-sagemakerendpoint.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafwebacl-apigateway-sagemakerendpoint.expected.json @@ -533,7 +533,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafwebacl-apigateway-sqs.expected.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafwebacl-apigateway-sqs.expected.json index 2fa85fe40..052c2577c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafwebacl-apigateway-sqs.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.wafwebacl-apigateway-sqs.expected.json @@ -687,7 +687,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.existing-waf-to-multiple-cloudfront.expected.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.existing-waf-to-multiple-cloudfront.expected.json index 751054fb0..2fdd74498 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.existing-waf-to-multiple-cloudfront.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.existing-waf-to-multiple-cloudfront.expected.json @@ -929,7 +929,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.no-arguments.expected.json index 77c9de48a..e86e701c2 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.no-arguments.expected.json @@ -538,7 +538,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.wafwebacl-cloudfront-apigateway-lambda.expected.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.wafwebacl-cloudfront-apigateway-lambda.expected.json index 06b5bb562..2bb56c37c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.wafwebacl-cloudfront-apigateway-lambda.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.wafwebacl-cloudfront-apigateway-lambda.expected.json @@ -974,7 +974,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.wafwebacl-cloudfront-mediastore.expected.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.wafwebacl-cloudfront-mediastore.expected.json index 0b8bcdd95..cb677af8c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.wafwebacl-cloudfront-mediastore.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.wafwebacl-cloudfront-mediastore.expected.json @@ -472,7 +472,7 @@ "BootstrapVersion": { "Type": "AWS::SSM::Parameter::Value", "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store." + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" } }, "Rules": { diff --git a/source/patterns/@aws-solutions-constructs/core/lib/alb-helper.ts b/source/patterns/@aws-solutions-constructs/core/lib/alb-helper.ts index d75fddfa2..863df6002 100644 --- a/source/patterns/@aws-solutions-constructs/core/lib/alb-helper.ts +++ b/source/patterns/@aws-solutions-constructs/core/lib/alb-helper.ts @@ -149,6 +149,7 @@ export function AddLambdaTarget( targetGroups: [newTargetGroup], }); } + newTargetGroup.setAttribute('stickiness.enabled', undefined); return newTargetGroup; } From 2bd459951709609b0f32bc733c80b98c261c1d67 Mon Sep 17 00:00:00 2001 From: AWS Solutions Constructs Automation Date: Wed, 15 Dec 2021 19:18:04 +0000 Subject: [PATCH 27/67] chore(release): 1.131.0 --- CHANGELOG.md | 2 ++ source/lerna.json | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index da1d7a1b5..3ce1d9e25 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [1.131.0](https://github.com/awslabs/aws-solutions-constructs/compare/v1.130.0...v1.131.0) (2021-12-15) + ## [1.130.0](https://github.com/awslabs/aws-solutions-constructs/compare/v2.0.0...v1.130.0) (2021-12-15) * Upgraded all patterns to CDK v1.130.0 diff --git a/source/lerna.json b/source/lerna.json index 17f06c303..a038dad2c 100644 --- a/source/lerna.json +++ b/source/lerna.json @@ -6,5 +6,5 @@ "./patterns/@aws-solutions-constructs/*" ], "rejectCycles": "true", - "version": "1.130.0" + "version": "1.131.0" } From edeb305229d6b1d9a3d713debd96b7346fdee0d2 Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Wed, 15 Dec 2021 14:21:10 -0500 Subject: [PATCH 28/67] chore(changelog): Updated CHANGELOG.md --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3ce1d9e25..7910ad9aa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ All notable changes to this project will be documented in this file. See [standa ## [1.131.0](https://github.com/awslabs/aws-solutions-constructs/compare/v1.130.0...v1.131.0) (2021-12-15) +* Upgraded all patterns to CDK v1.131.0 + ## [1.130.0](https://github.com/awslabs/aws-solutions-constructs/compare/v2.0.0...v1.130.0) (2021-12-15) * Upgraded all patterns to CDK v1.130.0 From 59fee69a0c21441148b62f62cf05bc700539cc55 Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Wed, 15 Dec 2021 14:52:01 -0500 Subject: [PATCH 29/67] Fix non-compliant fake bucket names --- .../core/test/glue-job-helper.test.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/source/patterns/@aws-solutions-constructs/core/test/glue-job-helper.test.ts b/source/patterns/@aws-solutions-constructs/core/test/glue-job-helper.test.ts index 5b0629469..46cf06387 100644 --- a/source/patterns/@aws-solutions-constructs/core/test/glue-job-helper.test.ts +++ b/source/patterns/@aws-solutions-constructs/core/test/glue-job-helper.test.ts @@ -86,7 +86,7 @@ test('Create a Glue Job outside the construct', () => { command: { name: 'pythonshell', pythonVersion: '2', - scriptLocation: 's3://existingFakeLocation/existingScript' + scriptLocation: 's3://existingfakelocation/existingScript' }, role: new Role(stack, 'ExistingJobRole', { assumedBy: new ServicePrincipal('glue.amazon.com'), @@ -122,7 +122,7 @@ test('Create a Glue Job outside the construct', () => { Command: { Name: "pythonshell", PythonVersion: "2", - ScriptLocation: "s3://existingFakeLocation/existingScript", + ScriptLocation: "s3://existingfakelocation/existingScript", }, GlueVersion: "1", MaxCapacity: 4, @@ -150,7 +150,7 @@ test('Test custom deployment properties', () => { command: { name: _commandName, pythonVersion: '3', - scriptLocation: 's3://existingFakeLocation/existingScript' + scriptLocation: 's3://existingfakelocation/existingScript' }, role: new Role(stack, 'ExistingJobRole', { assumedBy: new ServicePrincipal('glue.amazon.com'), @@ -182,7 +182,7 @@ test('Test custom deployment properties', () => { Command: { Name: "glueetl", PythonVersion: "3", - ScriptLocation: "s3://existingFakeLocation/existingScript", + ScriptLocation: "s3://existingfakelocation/existingScript", }, GlueVersion: "1", NumberOfWorkers: 2, From aa0b9a753a6b00a340a1c5714777fb745c72ce44 Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Wed, 15 Dec 2021 20:53:22 -0500 Subject: [PATCH 30/67] Asset Issue --- .../aws-kinesisstreams-gluejob/test/integ.no-arguments.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-gluejob/test/integ.no-arguments.ts b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-gluejob/test/integ.no-arguments.ts index 5467ea951..e58a02896 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-gluejob/test/integ.no-arguments.ts +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-gluejob/test/integ.no-arguments.ts @@ -48,7 +48,7 @@ new KinesisstreamsToGluejob(stack, 'test-kinesisstreams-lambda', { pythonVersion: '3', scriptLocation: new Asset(stack, 'ScriptLocation', { path: `${__dirname}/transform.py` - }).assetPath + }).s3ObjectUrl } }, fieldSchema From 966d723cfe2bac3559566c26c9c3c113000183d6 Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Thu, 16 Dec 2021 13:17:39 -0500 Subject: [PATCH 31/67] Circumvent bad bucket name error --- .../test/integ.no-arguments.expected.json | 6 +++--- .../test/integ.no-arguments.ts | 11 +++++++---- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-gluejob/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-gluejob/test/integ.no-arguments.expected.json index 611e3ffd2..4a535153c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-gluejob/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-gluejob/test/integ.no-arguments.expected.json @@ -164,7 +164,7 @@ { "Ref": "AWS::Partition" }, - ":s3:::.4d6b6e64d28273dfb8ab06e43c8c5d13e10c44ea56a2996de4b2f693adbe2b95.py" + ":s3:::fakelocation/fakefile.py" ] ] }, @@ -176,7 +176,7 @@ { "Ref": "AWS::Partition" }, - ":s3:::.4d6b6e64d28273dfb8ab06e43c8c5d13e10c44ea56a2996de4b2f693adbe2b95.py/*" + ":s3:::fakelocation/fakefile.py/*" ] ] } @@ -374,7 +374,7 @@ "Command": { "Name": "gluestreaming", "PythonVersion": "3", - "ScriptLocation": "asset.4d6b6e64d28273dfb8ab06e43c8c5d13e10c44ea56a2996de4b2f693adbe2b95.py" + "ScriptLocation": "s3://fakelocation/fakefile.py" }, "Role": { "Fn::GetAtt": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-gluejob/test/integ.no-arguments.ts b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-gluejob/test/integ.no-arguments.ts index e58a02896..71fc566d1 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-gluejob/test/integ.no-arguments.ts +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-gluejob/test/integ.no-arguments.ts @@ -16,7 +16,7 @@ import { CfnTable } from '@aws-cdk/aws-glue'; import { App, Stack } from '@aws-cdk/core'; import { KinesisstreamsToGluejob } from '../lib'; import { generateIntegStackName } from '@aws-solutions-constructs/core'; -import { Asset } from '@aws-cdk/aws-s3-assets'; +// import { Asset } from '@aws-cdk/aws-s3-assets'; // Setup const app = new App(); @@ -46,9 +46,12 @@ new KinesisstreamsToGluejob(stack, 'test-kinesisstreams-lambda', { command: { name: 'gluestreaming', pythonVersion: '3', - scriptLocation: new Asset(stack, 'ScriptLocation', { - path: `${__dirname}/transform.py` - }).s3ObjectUrl + scriptLocation: 's3://fakelocation/fakefile.py' + // Our version of cdk-integ crashes when misinterpreting the bucket name + // After we refresh cdk-integ we should try this code again + // scriptLocation: new Asset(stack, 'ScriptLocation', { + // path: `${__dirname}/transform.py` + // }).assetPath } }, fieldSchema From 6134ec6e3b94a34c3656c4264220e14338f5fd66 Mon Sep 17 00:00:00 2001 From: AWS Solutions Constructs Automation Date: Thu, 16 Dec 2021 19:33:34 +0000 Subject: [PATCH 32/67] chore(release): 1.132.0 --- CHANGELOG.md | 2 ++ source/lerna.json | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7910ad9aa..0d3dfba51 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [1.132.0](https://github.com/awslabs/aws-solutions-constructs/compare/v1.131.0...v1.132.0) (2021-12-16) + ## [1.131.0](https://github.com/awslabs/aws-solutions-constructs/compare/v1.130.0...v1.131.0) (2021-12-15) * Upgraded all patterns to CDK v1.131.0 diff --git a/source/lerna.json b/source/lerna.json index a038dad2c..5d989add8 100644 --- a/source/lerna.json +++ b/source/lerna.json @@ -6,5 +6,5 @@ "./patterns/@aws-solutions-constructs/*" ], "rejectCycles": "true", - "version": "1.131.0" + "version": "1.132.0" } From 220ba542f7c0395ea2563248f9e291e98fa7b77a Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Thu, 16 Dec 2021 14:36:12 -0500 Subject: [PATCH 33/67] chore(changelog): Updated CHANGELOG.md --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0d3dfba51..c23725197 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ All notable changes to this project will be documented in this file. See [standa ## [1.132.0](https://github.com/awslabs/aws-solutions-constructs/compare/v1.131.0...v1.132.0) (2021-12-16) +* Upgraded all patterns to CDK v1.132.0 + ## [1.131.0](https://github.com/awslabs/aws-solutions-constructs/compare/v1.130.0...v1.131.0) (2021-12-15) * Upgraded all patterns to CDK v1.131.0 From 69bc8205b0bcb19fea2f713295d0999dd7d74566 Mon Sep 17 00:00:00 2001 From: AWS Solutions Constructs Automation Date: Thu, 16 Dec 2021 21:22:23 +0000 Subject: [PATCH 34/67] chore(release): 1.133.0 --- CHANGELOG.md | 2 ++ source/lerna.json | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c23725197..85a165253 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [1.133.0](https://github.com/awslabs/aws-solutions-constructs/compare/v1.132.0...v1.133.0) (2021-12-16) + ## [1.132.0](https://github.com/awslabs/aws-solutions-constructs/compare/v1.131.0...v1.132.0) (2021-12-16) * Upgraded all patterns to CDK v1.132.0 diff --git a/source/lerna.json b/source/lerna.json index 5d989add8..e48804f6c 100644 --- a/source/lerna.json +++ b/source/lerna.json @@ -6,5 +6,5 @@ "./patterns/@aws-solutions-constructs/*" ], "rejectCycles": "true", - "version": "1.132.0" + "version": "1.133.0" } From f6c3941ae9ed0d21423a5f843db8ab11d625f0ba Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Thu, 16 Dec 2021 16:23:35 -0500 Subject: [PATCH 35/67] chore(changelog): Updated CHANGELOG.md --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 85a165253..5c85d23a8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ All notable changes to this project will be documented in this file. See [standa ## [1.133.0](https://github.com/awslabs/aws-solutions-constructs/compare/v1.132.0...v1.133.0) (2021-12-16) +* Upgraded all patterns to CDK v1.133.0 + ## [1.132.0](https://github.com/awslabs/aws-solutions-constructs/compare/v1.131.0...v1.132.0) (2021-12-16) * Upgraded all patterns to CDK v1.132.0 From 639f47396f868846a81d0f81b6eb8160c61c6ae3 Mon Sep 17 00:00:00 2001 From: mickychetta <45010053+mickychetta@users.noreply.github.com> Date: Thu, 16 Dec 2021 15:00:17 -0800 Subject: [PATCH 36/67] feat(s3-stepfunctions): removed CloudTrail dependency after new S3 feature (#529) * enabled eventbridge in bucket creation * updated README * empty commit * updated README and readded deploy CloudTrail * fixed eslint errors * updated README doc by removing properties and improvinng notes * updated README and enabled eventbridge in bucket test * enabled eventbridge in bucket for pre-existing tests * updated pre-existing-bucket test --- .../aws-s3-step-function/README.md | 26 +++++---- .../aws-s3-step-function/architecture.png | Bin 65426 -> 212224 bytes .../aws-s3-step-function/lib/index.ts | 7 --- .../integ.customLoggingBucket.expected.json | 19 +++--- .../test/integ.customLoggingBucket.ts | 3 +- .../integ.pre-existing-bucket.expected.json | 19 +++--- .../test/integ.pre-existing-bucket.ts | 8 +-- ...s3-step-function-no-argument.expected.json | 19 +++--- .../integ.s3-step-function-no-argument.ts | 3 +- .../test/s3-step-function.test.ts | 52 +++-------------- .../aws-s3-stepfunctions/README.md | 23 +++++--- .../aws-s3-stepfunctions/architecture.png | Bin 65426 -> 212224 bytes .../aws-s3-stepfunctions/lib/index.ts | 49 +++++----------- .../integ.customLoggingBucket.expected.json | 19 +++--- .../test/integ.customLoggingBucket.ts | 3 +- .../integ.pre-existing-bucket.expected.json | 19 +++--- .../test/integ.pre-existing-bucket.ts | 8 +-- ...s3-stepfunctions-no-argument.expected.json | 19 +++--- .../integ.s3-stepfunctions-no-argument.ts | 3 +- .../test/s3-stepfunctions.test.ts | 55 ++++-------------- 20 files changed, 123 insertions(+), 231 deletions(-) diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-step-function/README.md b/source/patterns/@aws-solutions-constructs/aws-s3-step-function/README.md index c4dd29eec..76eb2fa4e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-step-function/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-s3-step-function/README.md @@ -22,7 +22,9 @@ This AWS Solutions Construct implements an Amazon S3 bucket connected to an AWS Step Function. -*Note - This construct uses Amazon EventBridge (Amazon CloudWatch Events) to trigger AWS Step Functions. EventBridge is more flexible, but triggering Step Functions with S3 Event Notifications has less latency and is more cost effective. If cost and/or latency is an issue, you should consider deploy aws-s3-lambda and aws-lambda-stepfunctions in place of this construct.* +*Note - This constructs sends S3 Event Notification to EventBridge, then triggers AWS Step Functions State Machine executions from EventBridge.* + +*An alternative architecture can be built that triggers a Lambda function from S3 Event notifications using aws-s3-lambda and aws-lambda-stepfunctions. Channelling the S3 events through Lambda is less flexible than EventBridge, but is more cost effective and has lower latency.* Here is a minimal deployable pattern definition in Typescript: @@ -55,12 +57,12 @@ _Parameters_ | **Name** | **Type** | **Description** | |:-------------|:----------------|-----------------| -|existingBucketObj?|[`s3.IBucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.IBucket.html)|Existing instance of S3 Bucket object. If this is provided, then also providing bucketProps is an error. | +|existingBucketObj?|[`s3.IBucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.IBucket.html)|Existing instance of S3 Bucket object. The existing bucket must have [EventBridge enabled](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-event-notifications-eventbridge.html) for this to work. If this is provided, then also providing bucketProps is an error. | |bucketProps?|[`s3.BucketProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.BucketProps.html)|Optional user provided props to override the default props for the S3 Bucket.| |stateMachineProps|[`sfn.StateMachineProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-stepfunctions.StateMachineProps.html)|User provided props to override the default props for sfn.StateMachine| |eventRuleProps?|[`events.RuleProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-events.RuleProps.html)|Optional user provided eventRuleProps to override the defaults| -|deployCloudTrail?|`boolean`|Whether to deploy a Trail in AWS CloudTrail to log API events in Amazon S3. Defaults to `true`.| -|createCloudWatchAlarms|`boolean`|Whether to create recommended CloudWatch alarms| +|deployCloudTrail?|`boolean`|Whether to deploy a Trail in AWS CloudTrail to log API events in Amazon S3. Defaults to `true`. **This is now deprecated and ignored because the construct no longer needs CloudTrail since it uses S3 Event Notifications**.| +|createCloudWatchAlarms|`boolean`|Whether to create recommended CloudWatch alarms.| |logGroupProps?|[`logs.LogGroupProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroupProps.html)|User provided props to override the default props for for the CloudWatchLogs LogGroup.| |loggingBucketProps?|[`s3.BucketProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.BucketProps.html)|Optional user provided props to override the default props for the S3 Logging Bucket.| |logS3AccessLogs?| boolean|Whether to turn on Access Logging for the S3 bucket. Creates an S3 bucket with associated storage costs for the logs. Enabling Access Logging is a best practice. default - true| @@ -71,18 +73,22 @@ _Parameters_ |:-------------|:----------------|-----------------| |stateMachine|[`sfn.StateMachine`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-stepfunctions.StateMachine.html)|Returns an instance of sfn.StateMachine created by the construct| |stateMachineLogGroup|[`logs.ILogGroup`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.ILogGroup.html)|Returns an instance of the ILogGroup created by the construct for StateMachine| -|cloudwatchAlarms?|[`cloudwatch.Alarm[]`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudwatch.Alarm.html)|Returns a list of cloudwatch.Alarm created by the construct| +|cloudwatchAlarms?|[`cloudwatch.Alarm[]`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudwatch.Alarm.html)|Returns a list of cloudwatch.Alarm created by the construct.| |s3Bucket?|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)|Returns an instance of the s3.Bucket created by the construct| |s3LoggingBucket?|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)|Returns an instance of s3.Bucket created by the construct as the logging bucket for the primary bucket.| -|cloudtrail|[`cloudtrail.Trail`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudtrail.Trail.html)|Returns an instance of the cloudtrail.Trail created by the construct| -|cloudtrailBucket|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)|Returns an instance of the s3.Bucket created by the construct for CloudTrail| -|cloudtrailLoggingBucket|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)|Returns an instance of s3.Bucket created by the construct as the logging bucket for the primary CloudTrail bucket.| |s3BucketInterface|[`s3.IBucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.IBucket.html)|Returns an instance of s3.IBucket created by the construct.| + +*Note - with the release of Enable EventBridge for Amazon S3, AWS CloudTrail is no longer required to implement this construct. Because of this, the following properties have been removed:* +- cloudtrail +- cloudtrailBucket +- cloudtrailLoggingBucket + ## Default settings Out of the box implementation of the Construct without any override will set the following defaults: ### Amazon S3 Bucket +* Enable EventBridge to send events from the S3 Bucket * Configure Access logging for S3 Bucket * Enable server-side encryption for S3 Bucket using AWS managed KMS Key * Enforce encryption of data in transit @@ -91,8 +97,8 @@ Out of the box implementation of the Construct without any override will set the * Retain the S3 Bucket when deleting the CloudFormation stack * Applies Lifecycle rule to move noncurrent object versions to Glacier storage after 90 days -### AWS CloudTrail -* Configure a Trail in AWS CloudTrail to log API events in Amazon S3 related to the Bucket created by the Construct +### AWS S3 Event Notification +* Enable S3 to send events to EventBridge when an object is created. ### Amazon CloudWatch Events Rule * Grant least privilege permissions to CloudWatch Events to trigger the Lambda Function diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-step-function/architecture.png b/source/patterns/@aws-solutions-constructs/aws-s3-step-function/architecture.png index da37b98d66c1814220e3ccf84f94f3eafc25ae30..fe0d7dc86e3f7755a92a330fd00ddde82d28817d 100644 GIT binary patch literal 212224 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�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 z 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 literal 65426 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 F`Y-Zk-}(Rm diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-step-function/lib/index.ts b/source/patterns/@aws-solutions-constructs/aws-s3-step-function/lib/index.ts index 00167ab9b..ae2d9c599 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-step-function/lib/index.ts +++ b/source/patterns/@aws-solutions-constructs/aws-s3-step-function/lib/index.ts @@ -17,7 +17,6 @@ import { S3ToStepfunctions } from '@aws-solutions-constructs/aws-s3-stepfunction // Note: To ensure CDKv2 compatibility, keep the import statement for Construct separate import { Construct } from '@aws-cdk/core'; import * as cloudwatch from '@aws-cdk/aws-cloudwatch'; -import * as cloudtrail from '@aws-cdk/aws-cloudtrail'; import * as events from '@aws-cdk/aws-events'; import * as logs from '@aws-cdk/aws-logs'; @@ -88,9 +87,6 @@ export class S3ToStepFunction extends Construct { public readonly s3Bucket?: s3.Bucket; public readonly s3LoggingBucket?: s3.Bucket; public readonly cloudwatchAlarms?: cloudwatch.Alarm[]; - public readonly cloudtrail?: cloudtrail.Trail; - public readonly cloudtrailBucket?: s3.Bucket; - public readonly cloudtrailLoggingBucket?: s3.Bucket; public readonly s3BucketInterface: s3.IBucket; /** @@ -115,9 +111,6 @@ export class S3ToStepFunction extends Construct { this.s3Bucket = wrappedConstruct.s3Bucket; this.s3LoggingBucket = wrappedConstruct.s3LoggingBucket; this.cloudwatchAlarms = wrappedConstruct.cloudwatchAlarms; - this.cloudtrail = wrappedConstruct.cloudtrail; - this.cloudtrailBucket = wrappedConstruct.cloudtrailBucket; - this.cloudtrailLoggingBucket = wrappedConstruct.cloudtrailLoggingBucket; this.s3BucketInterface = wrappedConstruct.s3BucketInterface; } } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.customLoggingBucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.customLoggingBucket.expected.json index 3858faa7b..2d123e176 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.customLoggingBucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.customLoggingBucket.expected.json @@ -115,6 +115,11 @@ "Ref": "tests3stepfunctiontests3stepfunctionWS3LoggingBucketB716417C" } }, + "NotificationConfiguration": { + "EventBridgeConfiguration": { + "EventBridgeEnabled": true + } + }, "PublicAccessBlockConfiguration": { "BlockPublicAcls": true, "BlockPublicPolicy": true, @@ -370,19 +375,11 @@ "aws.s3" ], "detail-type": [ - "AWS API Call via CloudTrail" + "Object Created" ], "detail": { - "eventSource": [ - "s3.amazonaws.com" - ], - "eventName": [ - "PutObject", - "CopyObject", - "CompleteMultipartUpload" - ], - "requestParameters": { - "bucketName": [ + "bucket": { + "name": [ { "Ref": "tests3stepfunctiontests3stepfunctionWS3Bucket9BE64924" } diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.customLoggingBucket.ts b/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.customLoggingBucket.ts index ea2e52654..a7b4d8879 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.customLoggingBucket.ts +++ b/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.customLoggingBucket.ts @@ -40,7 +40,6 @@ new S3ToStepFunction(stack, 'test-s3-step-function', { }, logGroupProps: { removalPolicy: RemovalPolicy.DESTROY - }, - deployCloudTrail: false + } }); app.synth(); diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.pre-existing-bucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.pre-existing-bucket.expected.json index 504f5d3db..5f0ad3531 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.pre-existing-bucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.pre-existing-bucket.expected.json @@ -12,6 +12,11 @@ } ] }, + "NotificationConfiguration": { + "EventBridgeConfiguration": { + "EventBridgeEnabled": true + } + }, "VersioningConfiguration": { "Status": "Enabled" } @@ -231,19 +236,11 @@ "aws.s3" ], "detail-type": [ - "AWS API Call via CloudTrail" + "Object Created" ], "detail": { - "eventSource": [ - "s3.amazonaws.com" - ], - "eventName": [ - "PutObject", - "CopyObject", - "CompleteMultipartUpload" - ], - "requestParameters": { - "bucketName": [ + "bucket": { + "name": [ { "Ref": "existingScriptLocation845F3C51" } diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.pre-existing-bucket.ts b/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.pre-existing-bucket.ts index df9ba8e5e..6fab5f041 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.pre-existing-bucket.ts +++ b/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.pre-existing-bucket.ts @@ -23,19 +23,19 @@ const app = new App(); const stack = new Stack(app, generateIntegStackName(__filename)); const existingBucket = CreateScrapBucket(stack, {}); +const cfnBucket = existingBucket.node.defaultChild as s3.CfnBucket; +cfnBucket.addPropertyOverride('NotificationConfiguration.EventBridgeConfiguration.EventBridgeEnabled', true); -const mybucket: s3.IBucket = s3.Bucket.fromBucketName(stack, 'mybucket', existingBucket.bucketName); const startState = new stepfunctions.Pass(stack, 'StartState'); const props: S3ToStepFunctionProps = { - existingBucketObj: mybucket, + existingBucketObj: existingBucket, stateMachineProps: { definition: startState }, logGroupProps: { removalPolicy: RemovalPolicy.DESTROY - }, - deployCloudTrail: false + } }; new S3ToStepFunction(stack, 'test-s3-step-function-pre-existing-bucket-construct', props); diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.s3-step-function-no-argument.expected.json b/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.s3-step-function-no-argument.expected.json index 6440009cc..66919993c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.s3-step-function-no-argument.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.s3-step-function-no-argument.expected.json @@ -25,6 +25,11 @@ } ] }, + "NotificationConfiguration": { + "EventBridgeConfiguration": { + "EventBridgeEnabled": true + } + }, "PublicAccessBlockConfiguration": { "BlockPublicAcls": true, "BlockPublicPolicy": true, @@ -290,19 +295,11 @@ "aws.s3" ], "detail-type": [ - "AWS API Call via CloudTrail" + "Object Created" ], "detail": { - "eventSource": [ - "s3.amazonaws.com" - ], - "eventName": [ - "PutObject", - "CopyObject", - "CompleteMultipartUpload" - ], - "requestParameters": { - "bucketName": [ + "bucket": { + "name": [ { "Ref": "tests3stepfunctionconstructtests3stepfunctionconstructWS3Bucket474FE3A1" } diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.s3-step-function-no-argument.ts b/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.s3-step-function-no-argument.ts index 4d9313f99..3602b68a1 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.s3-step-function-no-argument.ts +++ b/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.s3-step-function-no-argument.ts @@ -34,8 +34,7 @@ const props: S3ToStepFunctionProps = { logGroupProps: { removalPolicy: RemovalPolicy.DESTROY }, - logS3AccessLogs: false, - deployCloudTrail: false + logS3AccessLogs: false }; const construct = new S3ToStepFunction(stack, 'test-s3-step-function-construct', props); diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/s3-step-function.test.ts b/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/s3-step-function.test.ts index d43027768..4fdf16de4 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/s3-step-function.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/s3-step-function.test.ts @@ -30,23 +30,6 @@ function deployNewStateMachine(stack: cdk.Stack) { return new S3ToStepFunction(stack, 'test-s3-step-function', props); } -test('check deployCloudTrail = false', () => { - const stack = new cdk.Stack(); - - const startState = new sfn.Pass(stack, 'StartState'); - - const props: S3ToStepFunctionProps = { - stateMachineProps: { - definition: startState - }, - deployCloudTrail: false - }; - - const construct = new S3ToStepFunction(stack, 'test-s3-step-function', props); - - expect(construct.cloudtrail === undefined); -}); - test('override eventRuleProps', () => { const stack = new cdk.Stack(); @@ -61,18 +44,10 @@ test('override eventRuleProps', () => { eventRuleProps: { eventPattern: { source: ['aws.s3'], - detailType: ['AWS API Call via CloudTrail'], + detailType: ['Object Created'], detail: { - eventSource: [ - "s3.amazonaws.com" - ], - eventName: [ - "GetObject" - ], - requestParameters: { - bucketName: [ - mybucket.bucketName - ] + bucket: { + name: [mybucket.bucketName] } } } @@ -87,20 +62,13 @@ test('override eventRuleProps', () => { "aws.s3" ], "detail-type": [ - "AWS API Call via CloudTrail" + "Object Created" ], "detail": { - eventSource: [ - "s3.amazonaws.com" - ], - eventName: [ - "GetObject" - ], - requestParameters: { - bucketName: [ - { - Ref: "mybucket160F8132" - } + bucket: { + name: [{ + Ref: "mybucket160F8132" + } ] } } @@ -128,15 +96,11 @@ test('check properties', () => { const construct: S3ToStepFunction = deployNewStateMachine(stack); - expect(construct.cloudtrail !== null); expect(construct.stateMachine !== null); expect(construct.s3Bucket !== null); expect(construct.cloudwatchAlarms !== null); expect(construct.stateMachineLogGroup !== null); expect(construct.s3LoggingBucket !== null); - expect(construct.cloudtrail !== null); - expect(construct.cloudtrailBucket !== null); - expect(construct.cloudtrailLoggingBucket !== null); }); // -------------------------------------------------------------- diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/README.md b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/README.md index 0d2a21619..54fcbf4b4 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/README.md @@ -24,7 +24,9 @@ This AWS Solutions Construct implements an Amazon S3 bucket connected to an AWS Step Functions. -*Note - This construct uses Amazon EventBridge (Amazon CloudWatch Events) to trigger AWS Step Functions State Machine executions. EventBridge is more flexible, but triggering executions with S3 Event Notifications has less latency and is more cost effective. If cost and/or latency is an issue, you should consider deploying aws-s3-lambda and aws-lambda-stepfunctions in place of this construct.* +*Note - This constructs sends S3 Event Notification to EventBridge, then triggers AWS Step Functions State Machine executions from EventBridge.* + +*An alternative architecture can be built that triggers a Lambda function from S3 Event notifications using aws-s3-lambda and aws-lambda-stepfunctions. Channelling the S3 events through Lambda is less flexible than EventBridge, but is more cost effective and has lower latency.* Here is a minimal deployable pattern definition in Typescript: @@ -57,11 +59,11 @@ _Parameters_ | **Name** | **Type** | **Description** | |:-------------|:----------------|-----------------| -|existingBucketObj?|[`s3.IBucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.IBucket.html)|Existing instance of S3 Bucket object. If this is provided, then also providing bucketProps is an error. | +|existingBucketObj?|[`s3.IBucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.IBucket.html)|Existing instance of S3 Bucket object. The existing bucket must have [EventBridge enabled](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-event-notifications-eventbridge.html) for this to work. If this is provided, then also providing bucketProps is an error.| |bucketProps?|[`s3.BucketProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.BucketProps.html)|Optional user provided props to override the default props for the S3 Bucket.| |stateMachineProps|[`sfn.StateMachineProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-stepfunctions.StateMachineProps.html)|User provided props to override the default props for sfn.StateMachine.| |eventRuleProps?|[`events.RuleProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-events.RuleProps.html)|Optional user provided eventRuleProps to override the defaults.| -|deployCloudTrail?|`boolean`|Whether to deploy a Trail in AWS CloudTrail to log API events in Amazon S3. Defaults to `true`.| +|deployCloudTrail?|`boolean`|Whether to deploy a Trail in AWS CloudTrail to log API events in Amazon S3. Defaults to `true`. **This is now deprecated and ignored because the construct no longer needs CloudTrail since it uses S3 Event Notifications**.| |createCloudWatchAlarms|`boolean`|Whether to create recommended CloudWatch alarms.| |logGroupProps?|[`logs.LogGroupProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroupProps.html)|Optional user provided props to override the default props for for the CloudWatchLogs LogGroup.| |loggingBucketProps?|[`s3.BucketProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.BucketProps.html)|Optional user provided props to override the default props for the S3 Logging Bucket.| @@ -76,26 +78,29 @@ _Parameters_ |cloudwatchAlarms?|[`cloudwatch.Alarm[]`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudwatch.Alarm.html)|Returns a list of cloudwatch.Alarm created by the construct.| |s3Bucket?|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)|Returns an instance of the s3.Bucket created by the construct.| |s3LoggingBucket?|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)|Returns an instance of s3.Bucket created by the construct as the logging bucket for the primary bucket.| -|cloudtrail|[`cloudtrail.Trail`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudtrail.Trail.html)|Returns an instance of the cloudtrail.Trail created by the construct.| -|cloudtrailBucket|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)|Returns an instance of the s3.Bucket created by the construct for CloudTrail.| -|cloudtrailLoggingBucket|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)|Returns an instance of s3.Bucket created by the construct as the logging bucket for the primary CloudTrail bucket.| |s3BucketInterface|[`s3.IBucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.IBucket.html)|Returns an instance of s3.IBucket created by the construct.| +*Note - with the release of Enable EventBridge for Amazon S3, AWS CloudTrail is no longer required to implement this construct. Because of this, the following properties have been removed:* +- cloudtrail +- cloudtrailBucket +- cloudtrailLoggingBucket + ## Default settings Out of the box implementation of the Construct without any override will set the following defaults: ### Amazon S3 Bucket +* Enable EventBridge to send events from the S3 Bucket * Configure Access logging for S3 Bucket * Enable server-side encryption for S3 Bucket using AWS managed KMS Key * Enforce encryption of data in transit * Turn on the versioning for S3 Bucket * Don't allow public access for S3 Bucket * Retain the S3 Bucket when deleting the CloudFormation stack -* Applies Lifecycle rule to move noncurrent object versions to Glacier storage after 90 days +* Applies Lifecycle Rule to move noncurrent object versions to Glacier storage after 90 days -### AWS CloudTrail -* Configure a Trail in AWS CloudTrail to log API events in Amazon S3 related to the Bucket created by the Construct +### AWS S3 Event Notification +* Enable S3 to send events to EventBridge when an object is created. ### Amazon CloudWatch Events Rule * Grant least privilege permissions to CloudWatch Events to trigger the Lambda Function diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/architecture.png b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/architecture.png index da37b98d66c1814220e3ccf84f94f3eafc25ae30..fe0d7dc86e3f7755a92a330fd00ddde82d28817d 100644 GIT binary patch literal 212224 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�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 z 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 literal 65426 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 F`Y-Zk-}(Rm diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/lib/index.ts b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/lib/index.ts index 484930cfb..22cd9e5d2 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/lib/index.ts +++ b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/lib/index.ts @@ -18,7 +18,6 @@ import { EventbridgeToStepfunctions } from '@aws-solutions-constructs/aws-eventb // Note: To ensure CDKv2 compatibility, keep the import statement for Construct separate import { Construct } from '@aws-cdk/core'; import * as cloudwatch from '@aws-cdk/aws-cloudwatch'; -import * as cloudtrail from '@aws-cdk/aws-cloudtrail'; import * as events from '@aws-cdk/aws-events'; import * as logs from '@aws-cdk/aws-logs'; @@ -73,7 +72,7 @@ export interface S3ToStepfunctionsProps { * * @default - Default props are used */ - readonly loggingBucketProps?: s3.BucketProps, + readonly loggingBucketProps?: s3.BucketProps, /** * Whether to turn on Access Logs for the S3 bucket with the associated storage costs. * Enabling Access Logging is a best practice. @@ -89,9 +88,6 @@ export class S3ToStepfunctions extends Construct { public readonly s3Bucket?: s3.Bucket; public readonly s3LoggingBucket?: s3.Bucket; public readonly cloudwatchAlarms?: cloudwatch.Alarm[]; - public readonly cloudtrail?: cloudtrail.Trail; - public readonly cloudtrailBucket?: s3.Bucket; - public readonly cloudtrailLoggingBucket?: s3.Bucket; public readonly s3BucketInterface: s3.IBucket; /** @@ -107,6 +103,11 @@ export class S3ToStepfunctions extends Construct { let bucket: s3.IBucket; + if (props.deployCloudTrail !== undefined) { + defaults.printWarning("The deployCloudTrail prop has been deprecated since this construct no longer requires \ + AWS CloudTrail to implement its functionality. This construct no longer creates a CloudTrail in your account."); + } + if (!props.existingBucketObj) { [this.s3Bucket, this.s3LoggingBucket] = defaults.buildS3Bucket(this, { bucketProps: props.bucketProps, @@ -114,49 +115,29 @@ export class S3ToStepfunctions extends Construct { logS3AccessLogs: props.logS3AccessLogs }); bucket = this.s3Bucket; + + const cfnBucket = bucket.node.defaultChild as s3.CfnBucket; + cfnBucket.addPropertyOverride('NotificationConfiguration.EventBridgeConfiguration.EventBridgeEnabled', true); + } else { bucket = props.existingBucketObj; } this.s3BucketInterface = bucket; - if (props.deployCloudTrail === undefined || props.deployCloudTrail) { - [this.cloudtrailBucket, this.cloudtrailLoggingBucket] = defaults.buildS3Bucket(this, {}, 'CloudTrail'); - - this.cloudtrail = new cloudtrail.Trail(this, 'S3EventsTrail', { - bucket: this.cloudtrailBucket - }); - - this.cloudtrail.addS3EventSelector([{ - bucket - }], { - readWriteType: cloudtrail.ReadWriteType.ALL, - includeManagementEvents: false - }); - } - let _eventRuleProps = {}; if (props.eventRuleProps) { _eventRuleProps = props.eventRuleProps; } else { - // By default the CW Events Rule will filter any 's3:PutObject' events for the S3 Bucket + // By default the EventBridge Rule will filter any PutObject, POST Object, CopyObject, + // or CompleteMultipartUpload events for the S3 Bucket _eventRuleProps = { eventPattern: { source: ['aws.s3'], - detailType: ['AWS API Call via CloudTrail'], + detailType: ["Object Created"], detail: { - eventSource: [ - "s3.amazonaws.com" - ], - eventName: [ - "PutObject", - "CopyObject", - "CompleteMultipartUpload" - ], - requestParameters: { - bucketName: [ - bucket.bucketName - ] + bucket: { + name: [bucket.bucketName] } } } diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.customLoggingBucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.customLoggingBucket.expected.json index c4e8d45c3..fb569d26c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.customLoggingBucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.customLoggingBucket.expected.json @@ -115,6 +115,11 @@ "Ref": "tests3stepfunctionsS3LoggingBucketF7586A92" } }, + "NotificationConfiguration": { + "EventBridgeConfiguration": { + "EventBridgeEnabled": true + } + }, "PublicAccessBlockConfiguration": { "BlockPublicAcls": true, "BlockPublicPolicy": true, @@ -370,19 +375,11 @@ "aws.s3" ], "detail-type": [ - "AWS API Call via CloudTrail" + "Object Created" ], "detail": { - "eventSource": [ - "s3.amazonaws.com" - ], - "eventName": [ - "PutObject", - "CopyObject", - "CompleteMultipartUpload" - ], - "requestParameters": { - "bucketName": [ + "bucket": { + "name": [ { "Ref": "tests3stepfunctionsS3Bucket2B08AD28" } diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.customLoggingBucket.ts b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.customLoggingBucket.ts index 72bed7010..9c2829f52 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.customLoggingBucket.ts +++ b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.customLoggingBucket.ts @@ -40,7 +40,6 @@ new S3ToStepfunctions(stack, 'test-s3-stepfunctions', { }, logGroupProps: { removalPolicy: RemovalPolicy.DESTROY - }, - deployCloudTrail: false + } }); app.synth(); diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.pre-existing-bucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.pre-existing-bucket.expected.json index e9cd8a167..d7dac8a05 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.pre-existing-bucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.pre-existing-bucket.expected.json @@ -12,6 +12,11 @@ } ] }, + "NotificationConfiguration": { + "EventBridgeConfiguration": { + "EventBridgeEnabled": true + } + }, "VersioningConfiguration": { "Status": "Enabled" } @@ -231,19 +236,11 @@ "aws.s3" ], "detail-type": [ - "AWS API Call via CloudTrail" + "Object Created" ], "detail": { - "eventSource": [ - "s3.amazonaws.com" - ], - "eventName": [ - "PutObject", - "CopyObject", - "CompleteMultipartUpload" - ], - "requestParameters": { - "bucketName": [ + "bucket": { + "name": [ { "Ref": "existingScriptLocation845F3C51" } diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.pre-existing-bucket.ts b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.pre-existing-bucket.ts index 2423f215f..337d95257 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.pre-existing-bucket.ts +++ b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.pre-existing-bucket.ts @@ -23,20 +23,20 @@ const app = new App(); const stack = new Stack(app, generateIntegStackName(__filename)); const existingBucket = CreateScrapBucket(stack, {}); +const cfnBucket = existingBucket.node.defaultChild as s3.CfnBucket; +cfnBucket.addPropertyOverride('NotificationConfiguration.EventBridgeConfiguration.EventBridgeEnabled', true); -const mybucket: s3.IBucket = s3.Bucket.fromBucketName(stack, 'mybucket', existingBucket.bucketName); const startState = new stepfunctions.Pass(stack, 'StartState'); const props: S3ToStepfunctionsProps = { - existingBucketObj: mybucket, + existingBucketObj: existingBucket, stateMachineProps: { definition: startState }, logGroupProps: { removalPolicy: RemovalPolicy.DESTROY }, - logS3AccessLogs: false, - deployCloudTrail: false + logS3AccessLogs: false }; new S3ToStepfunctions(stack, 'test-s3-stepfunctions-pre-existing-bucket-construct', props); diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3-stepfunctions-no-argument.expected.json b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3-stepfunctions-no-argument.expected.json index 242ff1ce9..68bfd5365 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3-stepfunctions-no-argument.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3-stepfunctions-no-argument.expected.json @@ -25,6 +25,11 @@ } ] }, + "NotificationConfiguration": { + "EventBridgeConfiguration": { + "EventBridgeEnabled": true + } + }, "PublicAccessBlockConfiguration": { "BlockPublicAcls": true, "BlockPublicPolicy": true, @@ -290,19 +295,11 @@ "aws.s3" ], "detail-type": [ - "AWS API Call via CloudTrail" + "Object Created" ], "detail": { - "eventSource": [ - "s3.amazonaws.com" - ], - "eventName": [ - "PutObject", - "CopyObject", - "CompleteMultipartUpload" - ], - "requestParameters": { - "bucketName": [ + "bucket": { + "name": [ { "Ref": "tests3stepfunctionsconstructS3Bucket78CA0724" } diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3-stepfunctions-no-argument.ts b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3-stepfunctions-no-argument.ts index 51f5e6350..57eac4f36 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3-stepfunctions-no-argument.ts +++ b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3-stepfunctions-no-argument.ts @@ -34,8 +34,7 @@ const props: S3ToStepfunctionsProps = { logGroupProps: { removalPolicy: RemovalPolicy.DESTROY }, - logS3AccessLogs: false, - deployCloudTrail: false + logS3AccessLogs: false }; const construct = new S3ToStepfunctions(stack, 'test-s3-stepfunctions-construct', props); diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/s3-stepfunctions.test.ts b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/s3-stepfunctions.test.ts index 7632dd420..52319531e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/s3-stepfunctions.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/s3-stepfunctions.test.ts @@ -30,23 +30,6 @@ function deployNewStateMachine(stack: cdk.Stack) { return new S3ToStepfunctions(stack, 'test-s3-stepfunctions', props); } -test('check deployCloudTrail = false', () => { - const stack = new cdk.Stack(); - - const startState = new sfn.Pass(stack, 'StartState'); - - const props: S3ToStepfunctionsProps = { - stateMachineProps: { - definition: startState - }, - deployCloudTrail: false - }; - - const construct = new S3ToStepfunctions(stack, 'test-s3-stepfunctions', props); - - expect(construct.cloudtrail === undefined); -}); - test('override eventRuleProps', () => { const stack = new cdk.Stack(); @@ -61,22 +44,15 @@ test('override eventRuleProps', () => { eventRuleProps: { eventPattern: { source: ['aws.s3'], - detailType: ['AWS API Call via CloudTrail'], + detailType: ['Object Created'], detail: { - eventSource: [ - "s3.amazonaws.com" - ], - eventName: [ - "GetObject" - ], - requestParameters: { - bucketName: [ - mybucket.bucketName - ] + bucket: { + name: [mybucket.bucketName] } } } - } + }, + deployCloudTrail: false // Testing warning }; new S3ToStepfunctions(stack, 'test-s3-stepfunctions', props); @@ -87,20 +63,13 @@ test('override eventRuleProps', () => { "aws.s3" ], "detail-type": [ - "AWS API Call via CloudTrail" + "Object Created" ], "detail": { - eventSource: [ - "s3.amazonaws.com" - ], - eventName: [ - "GetObject" - ], - requestParameters: { - bucketName: [ - { - Ref: "mybucket160F8132" - } + bucket: { + name: [{ + Ref: "mybucket160F8132" + } ] } } @@ -128,15 +97,11 @@ test('check properties', () => { const construct: S3ToStepfunctions = deployNewStateMachine(stack); - expect(construct.cloudtrail !== null); expect(construct.stateMachine !== null); expect(construct.s3Bucket !== null); expect(construct.cloudwatchAlarms !== null); expect(construct.stateMachineLogGroup !== null); expect(construct.s3LoggingBucket !== null); - expect(construct.cloudtrail !== null); - expect(construct.cloudtrailBucket !== null); - expect(construct.cloudtrailLoggingBucket !== null); }); // -------------------------------------------------------------- From e04c84b31d18cc8cfd9dca5d5550936b733edb4d Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Fri, 17 Dec 2021 10:53:24 -0500 Subject: [PATCH 37/67] Accomdate CDK Changes --- ....privateApiExistingResources.expected.json | 8 ++++- ...integ.privateApiNewResources.expected.json | 8 ++++- ...g.publicApiExistingResources.expected.json | 8 ++++- .../integ.publicApiNewResources.expected.json | 8 ++++- .../test/integ.twoTargets.expected.json | 8 ++++- .../integ.existingStreamObj.expected.json | 4 ++- .../test/integ.existing.expected.json | 6 ++-- .../test/integ.existing.ts | 2 +- .../test/integ.no-arguments.expected.json | 6 ++-- .../test/integ.no-arguments.ts | 2 +- .../integ.add-secondary-index.expected.json | 2 +- .../test/integ.add-secondary-index.ts | 2 +- ...eployFunctionWithExistingVpc.expected.json | 10 +++++-- .../integ.deployFunctionWithExistingVpc.ts | 2 +- .../integ.deployFunctionWithVpc.expected.json | 10 +++++-- .../test/integ.deployFunctionWithVpc.ts | 2 +- .../test/integ.no-arguments.expected.json | 2 +- .../test/integ.no-arguments.ts | 2 +- .../test/integ.set-billing-mode.expected.json | 2 +- .../test/integ.set-billing-mode.ts | 2 +- .../integ.use-existing-func.expected.json | 2 +- .../test/integ.use-existing-func.ts | 2 +- ...eployFunctionWithNewEventBus.expected.json | 8 ++++- .../integ.deployFunctionWithVpc.expected.json | 8 ++++- .../integ.deployFunctionWithVpc.expected.json | 8 ++++- .../test/integ.deployFunction.expected.json | 2 +- .../test/integ.deployFunction.ts | 2 +- ...eployFunctionWithExistingVpc.expected.json | 10 +++++-- .../integ.deployFunctionWithExistingVpc.ts | 2 +- .../integ.deployFunctionWithVpc.expected.json | 10 +++++-- .../test/integ.deployFunctionWithVpc.ts | 2 +- .../test/integ.existingFunction.expected.json | 2 +- .../test/integ.existingFunction.ts | 2 +- .../test/integ.deployFunction.expected.json | 2 +- .../test/integ.deployFunction.ts | 2 +- .../integ.deployFunctionWithVpc.expected.json | 10 +++++-- .../test/integ.deployFunctionWithVpc.ts | 2 +- .../test/integ.existingFunction.expected.json | 2 +- .../test/integ.existingFunction.ts | 2 +- .../integ.defaultDeployment.expected.json | 4 +-- .../test/integ.defaultDeployment.ts | 4 +-- ...eployProducerFunctionWithVpc.expected.json | 12 ++++++-- .../integ.deployProducerFunctionWithVpc.ts | 4 +-- ...teg.existingConsumerFunction.expected.json | 4 +-- .../test/integ.existingConsumerFunction.ts | 4 +-- ...teg.existingProducerFunction.expected.json | 4 +-- .../test/integ.existingProducerFunction.ts | 4 +-- .../test/integ.existingQueue.expected.json | 4 +-- .../test/integ.existingQueue.ts | 4 +-- .../test/integ.deployFunction.expected.json | 2 +- .../test/integ.deployFunction.ts | 2 +- .../integ.deployFunctionWithVpc.expected.json | 10 +++++-- .../test/integ.deployFunctionWithVpc.ts | 2 +- .../test/integ.existingFunction.expected.json | 2 +- .../test/integ.existingFunction.ts | 2 +- .../test/integ.deployFunction.expected.json | 2 +- .../test/integ.deployFunction.ts | 2 +- ...eployFunctionWithExistingVpc.expected.json | 10 +++++-- .../integ.deployFunctionWithExistingVpc.ts | 2 +- .../integ.deployFunctionWithVpc.expected.json | 10 +++++-- .../test/integ.deployFunctionWithVpc.ts | 2 +- .../test/integ.existingFunction.expected.json | 2 +- .../test/integ.existingFunction.ts | 2 +- ...nteg.existingStringParameter.expected.json | 2 +- .../test/integ.existingStringParameter.ts | 2 +- .../test/integ.deploy-lambda.expected.json | 2 +- .../test/integ.deploy-lambda.ts | 2 +- .../integ.deployFunctionWithVpc.expected.json | 10 +++++-- .../test/integ.deployFunctionWithVpc.ts | 2 +- .../integ.existing-function.expected.json | 2 +- .../test/integ.existing-function.ts | 2 +- .../test/integ.deployPrivateApi.expected.json | 8 ++++- ...deployPrivateApiExistingZone.expected.json | 8 ++++- ...g.deployPublicApiExistingAlb.expected.json | 8 ++++- .../integ.deployPublicApiNewAlb.expected.json | 8 ++++- .../integ.deployWithoutLogging.expected.json | 8 ++++- .../test/integ.no-arguments.expected.json | 8 ++++- update-tests.sh | 30 ------------------- 78 files changed, 249 insertions(+), 129 deletions(-) delete mode 100755 update-tests.sh diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiExistingResources.expected.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiExistingResources.expected.json index 97da2b5ca..515e1b95a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiExistingResources.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiExistingResources.expected.json @@ -611,7 +611,13 @@ "VpcFlowLogLogGroup7B5C56B9": { "Type": "AWS::Logs::LogGroup", "Properties": { - "RetentionInDays": 731 + "RetentionInDays": 731, + "Tags": [ + { + "Key": "Name", + "Value": "privateApiExistingResources/Vpc" + } + ] }, "UpdateReplacePolicy": "Retain", "DeletionPolicy": "Retain", diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiNewResources.expected.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiNewResources.expected.json index 9516a1935..c1d3730a3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiNewResources.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiNewResources.expected.json @@ -716,7 +716,13 @@ "VpcFlowLogLogGroup7B5C56B9": { "Type": "AWS::Logs::LogGroup", "Properties": { - "RetentionInDays": 731 + "RetentionInDays": 731, + "Tags": [ + { + "Key": "Name", + "Value": "privateApiNewResources/Vpc" + } + ] }, "UpdateReplacePolicy": "Retain", "DeletionPolicy": "Retain", diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiExistingResources.expected.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiExistingResources.expected.json index 4b1bf802e..fde6dfbd6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiExistingResources.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiExistingResources.expected.json @@ -611,7 +611,13 @@ "VpcFlowLogLogGroup7B5C56B9": { "Type": "AWS::Logs::LogGroup", "Properties": { - "RetentionInDays": 731 + "RetentionInDays": 731, + "Tags": [ + { + "Key": "Name", + "Value": "publicApiExistingResources/Vpc" + } + ] }, "UpdateReplacePolicy": "Retain", "DeletionPolicy": "Retain", diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiNewResources.expected.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiNewResources.expected.json index d2ad51fb3..450af8a18 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiNewResources.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiNewResources.expected.json @@ -1098,7 +1098,13 @@ "VpcFlowLogLogGroup7B5C56B9": { "Type": "AWS::Logs::LogGroup", "Properties": { - "RetentionInDays": 731 + "RetentionInDays": 731, + "Tags": [ + { + "Key": "Name", + "Value": "publicApiNewResources/Vpc" + } + ] }, "UpdateReplacePolicy": "Retain", "DeletionPolicy": "Retain", diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.twoTargets.expected.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.twoTargets.expected.json index 9986312dc..2c98fe99a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.twoTargets.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.twoTargets.expected.json @@ -1125,7 +1125,13 @@ "VpcFlowLogLogGroup7B5C56B9": { "Type": "AWS::Logs::LogGroup", "Properties": { - "RetentionInDays": 731 + "RetentionInDays": 731, + "Tags": [ + { + "Key": "Name", + "Value": "twoTargets/Vpc" + } + ] }, "UpdateReplacePolicy": "Retain", "DeletionPolicy": "Retain", diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.existingStreamObj.expected.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.existingStreamObj.expected.json index 3bdc6e486..bcfe419ee 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.existingStreamObj.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.existingStreamObj.expected.json @@ -86,7 +86,9 @@ "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", - "kinesis:SubscribeToShard" + "kinesis:SubscribeToShard", + "kinesis:DescribeStream", + "kinesis:ListStreams" ], "Effect": "Allow", "Resource": { diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.existing.expected.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.existing.expected.json index a5a82d8b1..df1857abd 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.existing.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.existing.expected.json @@ -67,7 +67,9 @@ "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", - "kinesis:SubscribeToShard" + "kinesis:SubscribeToShard", + "kinesis:DescribeStream", + "kinesis:ListStreams" ], "Effect": "Allow", "Resource": { @@ -128,7 +130,7 @@ ] }, "Handler": "index.handler", - "Runtime": "nodejs10.x" + "Runtime": "nodejs14.x" }, "DependsOn": [ "testroleDefaultPolicy884631E2", diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.existing.ts b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.existing.ts index 7dbfbf961..eccc320b1 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.existing.ts +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.existing.ts @@ -41,7 +41,7 @@ const lambdaRole = new iam.Role(stack, 'test-role', { }); const lambdaFn = new lambda.Function(stack, 'test-fn', { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), role: lambdaRole, diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.no-arguments.expected.json index 892b614d2..f99b5fca0 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.no-arguments.expected.json @@ -86,7 +86,9 @@ "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", - "kinesis:SubscribeToShard" + "kinesis:SubscribeToShard", + "kinesis:DescribeStream", + "kinesis:ListStreams" ], "Effect": "Allow", "Resource": { @@ -162,7 +164,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.no-arguments.ts b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.no-arguments.ts index 138ca43cb..82fe2cf5a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.no-arguments.ts +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.no-arguments.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = 'Integration Test for aws-kinesisstreams-lam // Definitions const props: KinesisStreamsToLambdaProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.add-secondary-index.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.add-secondary-index.expected.json index 7f6eeadf7..de782e8e4 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.add-secondary-index.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.add-secondary-index.expected.json @@ -151,7 +151,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.add-secondary-index.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.add-secondary-index.ts index 7ca7f225c..92c2841ba 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.add-secondary-index.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.add-secondary-index.ts @@ -26,7 +26,7 @@ const stack = new Stack(app, generateIntegStackName(__filename)); const construct: LambdaToDynamoDB = new LambdaToDynamoDB(stack, 'test-lambda-dynamodb-stack', { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, }); diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.deployFunctionWithExistingVpc.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.deployFunctionWithExistingVpc.expected.json index 831b4ca74..24ba46e42 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.deployFunctionWithExistingVpc.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.deployFunctionWithExistingVpc.expected.json @@ -611,7 +611,13 @@ "VpcFlowLogLogGroup7B5C56B9": { "Type": "AWS::Logs::LogGroup", "Properties": { - "RetentionInDays": 731 + "RetentionInDays": 731, + "Tags": [ + { + "Key": "Name", + "Value": "deployFunctionWithExistingVpc/Vpc" + } + ] }, "UpdateReplacePolicy": "Retain", "DeletionPolicy": "Retain", @@ -874,7 +880,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.deployFunctionWithExistingVpc.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.deployFunctionWithExistingVpc.ts index 4374f4dd3..305f140d3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.deployFunctionWithExistingVpc.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.deployFunctionWithExistingVpc.ts @@ -36,7 +36,7 @@ defaults.AddAwsServiceEndpoint(stack, vpc, defaults.ServiceEndpointTypes.DYNAMOD // Definitions const props: LambdaToDynamoDBProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.deployFunctionWithVpc.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.deployFunctionWithVpc.expected.json index 0a7e622e1..4eb751dfd 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.deployFunctionWithVpc.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.deployFunctionWithVpc.expected.json @@ -182,7 +182,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" }, @@ -488,7 +488,13 @@ "VpcFlowLogLogGroup7B5C56B9": { "Type": "AWS::Logs::LogGroup", "Properties": { - "RetentionInDays": 731 + "RetentionInDays": 731, + "Tags": [ + { + "Key": "Name", + "Value": "deployFunctionWithVpc/Vpc" + } + ] }, "UpdateReplacePolicy": "Retain", "DeletionPolicy": "Retain", diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.deployFunctionWithVpc.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.deployFunctionWithVpc.ts index 3da3f7566..ef74db2bc 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.deployFunctionWithVpc.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.deployFunctionWithVpc.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = "Integration Test for aws-lambda-dynamodb"; // Definitions const props: LambdaToDynamoDBProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.no-arguments.expected.json index d2a728935..02da484ee 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.no-arguments.expected.json @@ -140,7 +140,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.no-arguments.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.no-arguments.ts index 3c20d8711..af47aab8c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.no-arguments.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.no-arguments.ts @@ -25,7 +25,7 @@ const stack = new Stack(app, generateIntegStackName(__filename)); const props: LambdaToDynamoDBProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, }; diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.set-billing-mode.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.set-billing-mode.expected.json index a99d9a27e..27635a788 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.set-billing-mode.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.set-billing-mode.expected.json @@ -140,7 +140,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.set-billing-mode.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.set-billing-mode.ts index e7bd6136c..d78cb62cd 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.set-billing-mode.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.set-billing-mode.ts @@ -35,7 +35,7 @@ new LambdaToDynamoDB(stack, 'test-lambda-dynamodb-stack', { }, lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' } }); diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.use-existing-func.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.use-existing-func.expected.json index 719b4866f..a0b51fa9b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.use-existing-func.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.use-existing-func.expected.json @@ -140,7 +140,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.use-existing-func.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.use-existing-func.ts index 439d0dae8..3a238b90a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.use-existing-func.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.use-existing-func.ts @@ -21,7 +21,7 @@ import { generateIntegStackName } from '@aws-solutions-constructs/core'; const app = new App(); const stack = new Stack(app, generateIntegStackName(__filename)); const lambdaFunctionProps = { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithNewEventBus.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithNewEventBus.expected.json index 6319e3222..5e012208d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithNewEventBus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithNewEventBus.expected.json @@ -451,7 +451,13 @@ "VpcFlowLogLogGroup7B5C56B9": { "Type": "AWS::Logs::LogGroup", "Properties": { - "RetentionInDays": 731 + "RetentionInDays": 731, + "Tags": [ + { + "Key": "Name", + "Value": "deployFunctionWithNewEventBus/Vpc" + } + ] }, "UpdateReplacePolicy": "Retain", "DeletionPolicy": "Retain", diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithVpc.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithVpc.expected.json index 71ffc594f..0b5689b9c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithVpc.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithVpc.expected.json @@ -457,7 +457,13 @@ "VpcFlowLogLogGroup7B5C56B9": { "Type": "AWS::Logs::LogGroup", "Properties": { - "RetentionInDays": 731 + "RetentionInDays": 731, + "Tags": [ + { + "Key": "Name", + "Value": "deployFunctionWithVpc/Vpc" + } + ] }, "UpdateReplacePolicy": "Retain", "DeletionPolicy": "Retain", diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.deployFunctionWithVpc.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.deployFunctionWithVpc.expected.json index 9acb2bead..38d0e1b08 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.deployFunctionWithVpc.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.deployFunctionWithVpc.expected.json @@ -564,7 +564,13 @@ "VpcFlowLogLogGroup7B5C56B9": { "Type": "AWS::Logs::LogGroup", "Properties": { - "RetentionInDays": 731 + "RetentionInDays": 731, + "Tags": [ + { + "Key": "Name", + "Value": "deployFunctionWithVpc/Vpc" + } + ] }, "UpdateReplacePolicy": "Retain", "DeletionPolicy": "Retain", diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunction.expected.json index cdc6e4182..c5ba55a2f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunction.expected.json @@ -124,7 +124,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunction.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunction.ts index ce7929460..d33e02369 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunction.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunction.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = 'Integration Test for aws-lambda-secretsmana // Definitions const props: LambdaToSecretsmanagerProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunctionWithExistingVpc.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunctionWithExistingVpc.expected.json index 349bf772a..8c814b293 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunctionWithExistingVpc.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunctionWithExistingVpc.expected.json @@ -611,7 +611,13 @@ "VpcFlowLogLogGroup7B5C56B9": { "Type": "AWS::Logs::LogGroup", "Properties": { - "RetentionInDays": 731 + "RetentionInDays": 731, + "Tags": [ + { + "Key": "Name", + "Value": "deployFunctionWithExistingVpc/Vpc" + } + ] }, "UpdateReplacePolicy": "Retain", "DeletionPolicy": "Retain", @@ -857,7 +863,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunctionWithExistingVpc.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunctionWithExistingVpc.ts index 583f6c83f..222e23b18 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunctionWithExistingVpc.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunctionWithExistingVpc.ts @@ -35,7 +35,7 @@ const vpc = defaults.buildVpc(stack, { // Definitions const props: LambdaToSecretsmanagerProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunctionWithVpc.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunctionWithVpc.expected.json index 5f1c71297..b06eed7c3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunctionWithVpc.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunctionWithVpc.expected.json @@ -165,7 +165,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" }, @@ -463,7 +463,13 @@ "VpcFlowLogLogGroup7B5C56B9": { "Type": "AWS::Logs::LogGroup", "Properties": { - "RetentionInDays": 731 + "RetentionInDays": 731, + "Tags": [ + { + "Key": "Name", + "Value": "deployFunctionWithVpc/Vpc" + } + ] }, "UpdateReplacePolicy": "Retain", "DeletionPolicy": "Retain", diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunctionWithVpc.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunctionWithVpc.ts index 21a4efd15..907bc58ec 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunctionWithVpc.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunctionWithVpc.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = "Integration Test for aws-lambda-secretsmana // Definitions const props: LambdaToSecretsmanagerProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.existingFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.existingFunction.expected.json index 8439309aa..65fbc438b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.existingFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.existingFunction.expected.json @@ -124,7 +124,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.existingFunction.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.existingFunction.ts index 5f8953868..fed2c2983 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.existingFunction.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.existingFunction.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = 'Integration Test for aws-lambda-secretsmana // Definitions const lambdaFunctionProps = { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.deployFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.deployFunction.expected.json index b4d1ec208..afddb738a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.deployFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.deployFunction.expected.json @@ -127,7 +127,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.deployFunction.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.deployFunction.ts index a3f37414a..9a43c933d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.deployFunction.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.deployFunction.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = 'Integration Test for aws-lambda-sns'; // Definitions const props: LambdaToSnsProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.deployFunctionWithVpc.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.deployFunctionWithVpc.expected.json index 95e1595a8..1de51f42b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.deployFunctionWithVpc.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.deployFunctionWithVpc.expected.json @@ -168,7 +168,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" }, @@ -557,7 +557,13 @@ "VpcFlowLogLogGroup7B5C56B9": { "Type": "AWS::Logs::LogGroup", "Properties": { - "RetentionInDays": 731 + "RetentionInDays": 731, + "Tags": [ + { + "Key": "Name", + "Value": "deployFunctionWithVpc/Vpc" + } + ] }, "UpdateReplacePolicy": "Retain", "DeletionPolicy": "Retain", diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.deployFunctionWithVpc.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.deployFunctionWithVpc.ts index 51b8c7f4d..15bdac6ee 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.deployFunctionWithVpc.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.deployFunctionWithVpc.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = "Integration Test for aws-lambda-sns"; // Definitions const props: LambdaToSnsProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.existingFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.existingFunction.expected.json index a13839c13..e547303c3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.existingFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.existingFunction.expected.json @@ -127,7 +127,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.existingFunction.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.existingFunction.ts index aac0bbfe0..a375cdaf5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.existingFunction.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.existingFunction.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = 'Integration Test for aws-lambda-sns'; // Definitions const lambdaFunctionProps = { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.defaultDeployment.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.defaultDeployment.expected.json index 466c644c4..a3ca1b2de 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.defaultDeployment.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.defaultDeployment.expected.json @@ -128,7 +128,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } @@ -449,7 +449,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.defaultDeployment.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.defaultDeployment.ts index 8ec8e6651..42e528ec9 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.defaultDeployment.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.defaultDeployment.ts @@ -25,12 +25,12 @@ stack.templateOptions.description = 'Integration Test for aws-lambda-sqs-lambda' // Definitions const props: LambdaToSqsToLambdaProps = { producerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/producer-function`) }, consumerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/consumer-function`) } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.deployProducerFunctionWithVpc.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.deployProducerFunctionWithVpc.expected.json index 974242097..364394c01 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.deployProducerFunctionWithVpc.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.deployProducerFunctionWithVpc.expected.json @@ -169,7 +169,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" }, @@ -616,7 +616,13 @@ "testlambdasqsVpcFlowLogLogGroup5E27ADE6": { "Type": "AWS::Logs::LogGroup", "Properties": { - "RetentionInDays": 731 + "RetentionInDays": 731, + "Tags": [ + { + "Key": "Name", + "Value": "deployProducerFunctionWithVpc/test-lambda-sqs/Vpc" + } + ] }, "UpdateReplacePolicy": "Retain", "DeletionPolicy": "Retain", @@ -882,7 +888,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.deployProducerFunctionWithVpc.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.deployProducerFunctionWithVpc.ts index 50d63340f..6f8962157 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.deployProducerFunctionWithVpc.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.deployProducerFunctionWithVpc.ts @@ -25,12 +25,12 @@ stack.templateOptions.description = "Integration Test for aws-lambda-sqs-lambda" // Definitions const props: LambdaToSqsToLambdaProps = { producerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/producer-function`) }, consumerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/consumer-function`) }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingConsumerFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingConsumerFunction.expected.json index 9ff5b3eb8..865e5a556 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingConsumerFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingConsumerFunction.expected.json @@ -127,7 +127,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } @@ -296,7 +296,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingConsumerFunction.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingConsumerFunction.ts index db2c05404..5c8dceecd 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingConsumerFunction.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingConsumerFunction.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = 'Integration Test for aws-lambda-sqs-lambda' // Definitions const lambdaFunctionProps: lambda.FunctionProps = { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/consumer-function`) }; @@ -34,7 +34,7 @@ const existingConsumerFn = defaults.deployLambdaFunction(stack, lambdaFunctionPr const props: LambdaToSqsToLambdaProps = { producerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/producer-function`) }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingProducerFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingProducerFunction.expected.json index c824dec76..c414bbbd7 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingProducerFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingProducerFunction.expected.json @@ -128,7 +128,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } @@ -449,7 +449,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingProducerFunction.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingProducerFunction.ts index 4ff700411..acb06d881 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingProducerFunction.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingProducerFunction.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = 'Integration Test for aws-lambda-sqs-lambda' // Definitions const lambdaFunctionProps: lambda.FunctionProps = { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/producer-function`) }; @@ -35,7 +35,7 @@ const existingProducerFn = defaults.deployLambdaFunction(stack, lambdaFunctionPr const props: LambdaToSqsToLambdaProps = { existingProducerLambdaObj: existingProducerFn, consumerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/consumer-function`) } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingQueue.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingQueue.expected.json index 10058b863..8f33a8eb3 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingQueue.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingQueue.expected.json @@ -207,7 +207,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } @@ -361,7 +361,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingQueue.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingQueue.ts index 0aa802e1a..23b56c3cf 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingQueue.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingQueue.ts @@ -28,13 +28,13 @@ const [existingQueue] = defaults.buildQueue(stack, 'existing-sqs-queue', {}); const props: LambdaToSqsToLambdaProps = { producerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/producer-function`) }, existingQueueObj: existingQueue, consumerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/consumer-function`) } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.deployFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.deployFunction.expected.json index d956276e1..4a10f1aa5 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.deployFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.deployFunction.expected.json @@ -128,7 +128,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.deployFunction.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.deployFunction.ts index cedc7253e..b66ae30e6 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.deployFunction.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.deployFunction.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = 'Integration Test for aws-lambda-sqs'; // Definitions const props: LambdaToSqsProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.deployFunctionWithVpc.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.deployFunctionWithVpc.expected.json index 56ed3ba59..ebc05065e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.deployFunctionWithVpc.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.deployFunctionWithVpc.expected.json @@ -169,7 +169,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" }, @@ -616,7 +616,13 @@ "VpcFlowLogLogGroup7B5C56B9": { "Type": "AWS::Logs::LogGroup", "Properties": { - "RetentionInDays": 731 + "RetentionInDays": 731, + "Tags": [ + { + "Key": "Name", + "Value": "deployFunctionWithVpc/Vpc" + } + ] }, "UpdateReplacePolicy": "Retain", "DeletionPolicy": "Retain", diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.deployFunctionWithVpc.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.deployFunctionWithVpc.ts index 1718b4725..da74d3550 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.deployFunctionWithVpc.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.deployFunctionWithVpc.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = "Integration Test for aws-lambda-sqs"; // Definitions const props: LambdaToSqsProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.existingFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.existingFunction.expected.json index 5d2d88c36..8ab727f7c 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.existingFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.existingFunction.expected.json @@ -128,7 +128,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.existingFunction.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.existingFunction.ts index bec517976..db6706fcc 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.existingFunction.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.existingFunction.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = 'Integration Test for aws-lambda-sqs'; // Definitions const lambdaFunctionProps = { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunction.expected.json index ab86d570f..436a30b8b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunction.expected.json @@ -146,7 +146,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunction.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunction.ts index 3146b933d..da3e8854b 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunction.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunction.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = 'Integration Test for aws-lambda-ssmstringpa // Definitions const props: LambdaToSsmstringparameterProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunctionWithExistingVpc.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunctionWithExistingVpc.expected.json index 1f0f0ed1e..7c935528d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunctionWithExistingVpc.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunctionWithExistingVpc.expected.json @@ -611,7 +611,13 @@ "VpcFlowLogLogGroup7B5C56B9": { "Type": "AWS::Logs::LogGroup", "Properties": { - "RetentionInDays": 731 + "RetentionInDays": 731, + "Tags": [ + { + "Key": "Name", + "Value": "deployFunctionWithExistingVpc/Vpc" + } + ] }, "UpdateReplacePolicy": "Retain", "DeletionPolicy": "Retain", @@ -879,7 +885,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunctionWithExistingVpc.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunctionWithExistingVpc.ts index 149b77a1d..8a5095857 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunctionWithExistingVpc.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunctionWithExistingVpc.ts @@ -35,7 +35,7 @@ const vpc = defaults.buildVpc(stack, { // Definitions const props: LambdaToSsmstringparameterProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunctionWithVpc.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunctionWithVpc.expected.json index 9da83b529..ae3faa556 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunctionWithVpc.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunctionWithVpc.expected.json @@ -187,7 +187,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" }, @@ -474,7 +474,13 @@ "VpcFlowLogLogGroup7B5C56B9": { "Type": "AWS::Logs::LogGroup", "Properties": { - "RetentionInDays": 731 + "RetentionInDays": 731, + "Tags": [ + { + "Key": "Name", + "Value": "deployFunctionWithVpc/Vpc" + } + ] }, "UpdateReplacePolicy": "Retain", "DeletionPolicy": "Retain", diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunctionWithVpc.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunctionWithVpc.ts index 923199fdc..f0a0f77a3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunctionWithVpc.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunctionWithVpc.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = "Integration Test for aws-lambda-ssmstringpa // Definitions const props: LambdaToSsmstringparameterProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.existingFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.existingFunction.expected.json index 6ce793386..9abdc6797 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.existingFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.existingFunction.expected.json @@ -146,7 +146,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.existingFunction.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.existingFunction.ts index b42c375e7..96fdef819 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.existingFunction.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.existingFunction.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = 'Integration Test for aws-lambda-ssmstringpa // Definitions const lambdaFunctionProps = { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.existingStringParameter.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.existingStringParameter.expected.json index 9b26da42e..97a664bf8 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.existingStringParameter.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.existingStringParameter.expected.json @@ -153,7 +153,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.existingStringParameter.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.existingStringParameter.ts index ffe886dd3..9b2846ff4 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.existingStringParameter.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.existingStringParameter.ts @@ -27,7 +27,7 @@ const existingStringParam = new StringParameter(stack, 'myNewStringParameter', { // Definitions const props: LambdaToSsmstringparameterProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.deploy-lambda.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.deploy-lambda.expected.json index da139eef5..1db127fa4 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.deploy-lambda.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.deploy-lambda.expected.json @@ -266,7 +266,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.deploy-lambda.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.deploy-lambda.ts index 55fdc7782..73365073d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.deploy-lambda.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.deploy-lambda.ts @@ -28,7 +28,7 @@ const startState = new stepfunctions.Pass(stack, 'StartState'); // Setup the pattern props const props: LambdaToStepfunctionsProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.deployFunctionWithVpc.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.deployFunctionWithVpc.expected.json index e82afac54..7ddef8c12 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.deployFunctionWithVpc.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.deployFunctionWithVpc.expected.json @@ -308,7 +308,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" }, @@ -651,7 +651,13 @@ "VpcFlowLogLogGroup7B5C56B9": { "Type": "AWS::Logs::LogGroup", "Properties": { - "RetentionInDays": 731 + "RetentionInDays": 731, + "Tags": [ + { + "Key": "Name", + "Value": "deployFunctionWithVpc/Vpc" + } + ] }, "UpdateReplacePolicy": "Retain", "DeletionPolicy": "Retain", diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.deployFunctionWithVpc.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.deployFunctionWithVpc.ts index 71418fbf2..20208be9f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.deployFunctionWithVpc.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.deployFunctionWithVpc.ts @@ -29,7 +29,7 @@ const startState = new stepfunctions.Pass(stack, 'StartState'); // Definitions const props: LambdaToStepfunctionsProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.existing-function.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.existing-function.expected.json index 03ede751d..fdf8e9d45 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.existing-function.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.existing-function.expected.json @@ -120,7 +120,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.existing-function.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.existing-function.ts index a8a8e545f..c8b4b9a13 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.existing-function.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.existing-function.ts @@ -28,7 +28,7 @@ const startState = new stepfunctions.Pass(stack, 'StartState'); // Setup the "existing" Lambda function props const lambdaFunctionProps = { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; diff --git a/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPrivateApi.expected.json b/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPrivateApi.expected.json index d15e268ff..90b404685 100644 --- a/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPrivateApi.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPrivateApi.expected.json @@ -482,7 +482,13 @@ "VpcFlowLogLogGroup7B5C56B9": { "Type": "AWS::Logs::LogGroup", "Properties": { - "RetentionInDays": 731 + "RetentionInDays": 731, + "Tags": [ + { + "Key": "Name", + "Value": "deployPrivateApi/Vpc" + } + ] }, "UpdateReplacePolicy": "Retain", "DeletionPolicy": "Retain", diff --git a/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPrivateApiExistingZone.expected.json b/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPrivateApiExistingZone.expected.json index d6a6380e9..c806e0945 100644 --- a/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPrivateApiExistingZone.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPrivateApiExistingZone.expected.json @@ -611,7 +611,13 @@ "VpcFlowLogLogGroup7B5C56B9": { "Type": "AWS::Logs::LogGroup", "Properties": { - "RetentionInDays": 731 + "RetentionInDays": 731, + "Tags": [ + { + "Key": "Name", + "Value": "deployPrivateApiExistingZone/Vpc" + } + ] }, "UpdateReplacePolicy": "Retain", "DeletionPolicy": "Retain", diff --git a/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPublicApiExistingAlb.expected.json b/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPublicApiExistingAlb.expected.json index 97572764a..883a87a5d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPublicApiExistingAlb.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPublicApiExistingAlb.expected.json @@ -611,7 +611,13 @@ "VpcFlowLogLogGroup7B5C56B9": { "Type": "AWS::Logs::LogGroup", "Properties": { - "RetentionInDays": 731 + "RetentionInDays": 731, + "Tags": [ + { + "Key": "Name", + "Value": "deployPublicApiExistingAlb/Vpc" + } + ] }, "UpdateReplacePolicy": "Retain", "DeletionPolicy": "Retain", diff --git a/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPublicApiNewAlb.expected.json b/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPublicApiNewAlb.expected.json index 5b24b25cd..129c1e31f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPublicApiNewAlb.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPublicApiNewAlb.expected.json @@ -856,7 +856,13 @@ "VpcFlowLogLogGroup7B5C56B9": { "Type": "AWS::Logs::LogGroup", "Properties": { - "RetentionInDays": 731 + "RetentionInDays": 731, + "Tags": [ + { + "Key": "Name", + "Value": "deployPublicApiNewAlb/Vpc" + } + ] }, "UpdateReplacePolicy": "Retain", "DeletionPolicy": "Retain", diff --git a/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployWithoutLogging.expected.json b/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployWithoutLogging.expected.json index 761c4e7e4..01f706d9e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployWithoutLogging.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployWithoutLogging.expected.json @@ -348,7 +348,13 @@ "VpcFlowLogLogGroup7B5C56B9": { "Type": "AWS::Logs::LogGroup", "Properties": { - "RetentionInDays": 731 + "RetentionInDays": 731, + "Tags": [ + { + "Key": "Name", + "Value": "deployWithoutLogging/Vpc" + } + ] }, "UpdateReplacePolicy": "Retain", "DeletionPolicy": "Retain", diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-alb/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-alb/test/integ.no-arguments.expected.json index 7806f3d90..7b1deb413 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-alb/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-alb/test/integ.no-arguments.expected.json @@ -610,7 +610,13 @@ "VpcFlowLogLogGroup7B5C56B9": { "Type": "AWS::Logs::LogGroup", "Properties": { - "RetentionInDays": 731 + "RetentionInDays": 731, + "Tags": [ + { + "Key": "Name", + "Value": "no-arguments/Vpc" + } + ] }, "UpdateReplacePolicy": "Retain", "DeletionPolicy": "Retain", diff --git a/update-tests.sh b/update-tests.sh deleted file mode 100755 index c7164d4cd..000000000 --- a/update-tests.sh +++ /dev/null @@ -1,30 +0,0 @@ -export constructs=" -aws-eventbridge-stepfunctions -aws-events-rule-step-function -aws-kinesisfirehose-s3 -aws-kinesisfirehose-s3-and-kinesisanalytics -aws-kinesisstreams-gluejob -aws-kinesisstreams-kinesisfirehose-s3 -aws-kinesisstreams-lambda -aws-lambda-dynamodb -aws-lambda-elasticsearch-kibana -aws-lambda-stepfunctions -aws-lambda-step-function -aws-s3-stepfunctions -aws-s3-step-function -aws-sqs-lambda -" - -deployment_dir=$(cd $(dirname $0) && pwd) -source_dir="$deployment_dir/source" - -./deployment/align-version.sh -cd source -export PATH=$(npm bin):$PATH - -for construct in $constructs; do - cd $deployment_dir/source/patterns/@aws-solutions-constructs/$construct - npm run jsii && npm run build - cdk-integ - npm run snapshot-update -done From 01c7e07b935fe045494d0750287d608609030e28 Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Fri, 17 Dec 2021 11:03:49 -0500 Subject: [PATCH 38/67] Update for shifted lines --- .viperlightignore | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.viperlightignore b/.viperlightignore index e4d87009c..1e9a7e585 100644 --- a/.viperlightignore +++ b/.viperlightignore @@ -146,10 +146,10 @@ source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/alb-lambda.test.ts source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/alb-lambda.test.ts:680 # These are references to the us-east-1 ELBV2 account (publicly known) source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPrivateApi.expected.json:193 -source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPrivateApiExistingZone.expected.json:844 +source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPrivateApiExistingZone.expected.json:860 source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPublicApiNewAlb.expected.json:188 source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiNewResources.expected.json:196 source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiNewResources.expected.json:199 source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.twoTargets.expected.json:199 -source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiExistingResources.expected.json:1058 -source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiExistingResources.expected.json:1058 +source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiExistingResources.expected.json:1064 +source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiExistingResources.expected.json:1064 From 4038300c343c93a6e605f1b1c15fa7a57f1cff20 Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Fri, 17 Dec 2021 11:15:19 -0500 Subject: [PATCH 39/67] CDK created line shifts --- .viperlightignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.viperlightignore b/.viperlightignore index 1e9a7e585..af5c3eb5b 100644 --- a/.viperlightignore +++ b/.viperlightignore @@ -146,7 +146,7 @@ source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/alb-lambda.test.ts source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/alb-lambda.test.ts:680 # These are references to the us-east-1 ELBV2 account (publicly known) source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPrivateApi.expected.json:193 -source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPrivateApiExistingZone.expected.json:860 +source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPrivateApiExistingZone.expected.json:850 source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPublicApiNewAlb.expected.json:188 source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiNewResources.expected.json:196 source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiNewResources.expected.json:199 From 04e2e60554b13d0cd8246e4ec1c426b600752a2b Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Fri, 17 Dec 2021 11:51:13 -0500 Subject: [PATCH 40/67] CDK Adjustment and Node 14 --- source/package.json | 2 +- .../aws-alb-lambda/package.json | 46 +++--- .../aws-apigateway-dynamodb/package.json | 28 ++-- .../aws-apigateway-iot/package.json | 24 ++-- .../package.json | 32 ++--- .../aws-apigateway-lambda/package.json | 28 ++-- .../package.json | 24 ++-- .../aws-apigateway-sqs/package.json | 32 ++--- .../package.json | 44 +++--- .../aws-cloudfront-apigateway/package.json | 32 ++--- .../aws-cloudfront-mediastore/package.json | 28 ++-- .../aws-cloudfront-s3/package.json | 32 ++--- .../package.json | 32 ++--- .../package.json | 48 +++---- .../aws-dynamodb-stream-lambda/package.json | 36 ++--- .../package.json | 52 +++---- .../aws-dynamodbstreams-lambda/package.json | 32 ++--- .../package.json | 36 ++--- .../package.json | 28 ++-- .../aws-eventbridge-lambda/package.json | 24 ++-- .../aws-eventbridge-sns/package.json | 28 ++-- .../aws-eventbridge-sqs/package.json | 28 ++-- .../package.json | 40 +++--- .../package.json | 36 ++--- .../package.json | 32 ++--- .../aws-events-rule-lambda/package.json | 28 ++-- .../aws-events-rule-sns/package.json | 32 ++--- .../aws-events-rule-sqs/package.json | 32 ++--- .../package.json | 44 +++--- .../aws-iot-kinesisfirehose-s3/package.json | 36 ++--- .../aws-iot-kinesisstreams/package.json | 28 ++-- .../aws-iot-lambda-dynamodb/package.json | 32 ++--- .../aws-iot-lambda/package.json | 24 ++-- .../aws-iot-sqs/package.json | 28 ++-- .../package.json | 40 +++--- .../aws-kinesisfirehose-s3/package.json | 32 ++--- .../aws-kinesisstreams-gluejob/package.json | 40 +++--- .../package.json | 48 +++---- .../aws-kinesisstreams-lambda/package.json | 40 +++--- .../aws-lambda-dynamodb/package.json | 24 ++-- .../package.json | 32 ++--- .../aws-lambda-eventbridge/package.json | 24 ++-- .../aws-lambda-s3/package.json | 24 ++-- .../aws-lambda-sagemakerendpoint/package.json | 36 ++--- .../aws-lambda-secretsmanager/package.json | 24 ++-- .../aws-lambda-sns/package.json | 28 ++-- .../aws-lambda-sqs-lambda/package.json | 36 ++--- .../aws-lambda-sqs/package.json | 24 ++-- .../package.json | 24 ++-- .../aws-lambda-step-function/package.json | 36 ++--- .../integ.deployFunctionWithVpc.expected.json | 10 +- .../test/integ.deployFunctionWithVpc.ts | 2 +- .../aws-lambda-stepfunctions/package.json | 32 ++--- .../aws-route53-alb/package.json | 44 +++--- .../aws-s3-lambda/package.json | 32 ++--- .../aws-s3-sqs/package.json | 36 ++--- .../aws-s3-step-function/package.json | 56 ++++---- .../aws-s3-stepfunctions/package.json | 52 +++---- .../aws-sns-lambda/package.json | 32 ++--- .../aws-sns-sqs/package.json | 32 ++--- .../aws-sqs-lambda/package.json | 28 ++-- .../aws-wafwebacl-alb/package.json | 32 ++--- .../aws-wafwebacl-apigateway/package.json | 60 ++++---- .../aws-wafwebacl-cloudfront/package.json | 44 +++--- .../core/package.json | 136 +++++++++--------- source/tools/aws-cdk-migration/package.json | 2 +- source/tools/cdk-integ-tools/package.json | 10 +- .../aws-custom-glue-etl/package.json | 20 +-- .../service-staff/create-order/package.json | 2 +- .../package.json | 38 ++--- .../aws-s3-static-website/package.json | 22 +-- .../lib/lambda/image-handler/package.json | 2 +- .../aws-serverless-image-handler/package.json | 40 +++--- .../aws-serverless-web-app/package.json | 32 ++--- 74 files changed, 1201 insertions(+), 1195 deletions(-) diff --git a/source/package.json b/source/package.json index 62feab62a..d7d0915b2 100644 --- a/source/package.json +++ b/source/package.json @@ -1,6 +1,6 @@ { "name": "aws-solutions-constructs", - "version": "0.0.0", + "version": "1.133.0", "description": "AWS Solutions Constructs Library", "repository": { "type": "git", diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/package.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/package.json index 9f9607b1e..d3d022d95 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-alb-lambda", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK Constructs for Application Load Balancer to AWS Lambda integration", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,25 +53,25 @@ } }, "dependencies": { - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-ec2": "0.0.0", - "@aws-cdk/aws-s3": "0.0.0", - "@aws-cdk/aws-certificatemanager": "0.0.0", - "@aws-cdk/aws-elasticloadbalancingv2": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-ec2": "1.133.0", + "@aws-cdk/aws-s3": "1.133.0", + "@aws-cdk/aws-certificatemanager": "1.133.0", + "@aws-cdk/aws-elasticloadbalancingv2": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", - "@aws-cdk/aws-ec2": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-elasticloadbalancingv2": "0.0.0", - "@aws-cdk/aws-lambda-event-sources": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/core": "0.0.0", + "@aws-cdk/assert": "1.133.0", + "@aws-cdk/aws-ec2": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-elasticloadbalancingv2": "1.133.0", + "@aws-cdk/aws-lambda-event-sources": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/core": "1.133.0", "@types/jest": "^26.0.22", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-solutions-constructs/core": "1.133.0", "@types/node": "^10.3.0", "constructs": "3.2.0" }, @@ -90,13 +90,13 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-elasticloadbalancingv2": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-ec2": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-cdk/aws-lambda-event-sources": "0.0.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-elasticloadbalancingv2": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-ec2": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-lambda-event-sources": "1.133.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-dynamodb/package.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-dynamodb/package.json index 2021dab28..8c6818bb7 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-dynamodb/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-dynamodb/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-apigateway-dynamodb", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK Constructs for AWS API Gateway and Amazon DynamoDB integration.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,16 +53,16 @@ } }, "dependencies": { - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-apigateway": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-dynamodb": "0.0.0", - "@aws-cdk/aws-logs": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-apigateway": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-dynamodb": "1.133.0", + "@aws-cdk/aws-logs": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -81,13 +81,13 @@ ] }, "peerDependencies": { - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-apigateway": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-dynamodb": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-apigateway": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-dynamodb": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0", - "@aws-cdk/aws-logs": "0.0.0" + "@aws-cdk/aws-logs": "1.133.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/package.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/package.json index 662fb1e27..5662e90dc 100755 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-apigateway-iot", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK constructs to proxy communication to IotCore using a APIGateway(REST).", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,15 +53,15 @@ } }, "dependencies": { - "@aws-cdk/aws-apigateway": "0.0.0", - "@aws-cdk/aws-logs": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-apigateway": "1.133.0", + "@aws-cdk/aws-logs": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -80,12 +80,12 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-apigateway": "0.0.0", - "@aws-cdk/aws-logs": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-apigateway": "1.133.0", + "@aws-cdk/aws-logs": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0", - "@aws-cdk/aws-iam": "0.0.0" + "@aws-cdk/aws-iam": "1.133.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-kinesisstreams/package.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-kinesisstreams/package.json index f37ae72b8..af96fad6d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-kinesisstreams/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-kinesisstreams/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-apigateway-kinesisstreams", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK Constructs for AWS API Gateway and Amazon Kinesis Data Streams integration.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,17 +53,17 @@ } }, "dependencies": { - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-apigateway": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-kinesis": "0.0.0", - "@aws-cdk/aws-logs": "0.0.0", - "@aws-cdk/aws-cloudwatch": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-apigateway": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-kinesis": "1.133.0", + "@aws-cdk/aws-logs": "1.133.0", + "@aws-cdk/aws-cloudwatch": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -82,14 +82,14 @@ ] }, "peerDependencies": { - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-apigateway": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-kinesis": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-apigateway": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-kinesis": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0", - "@aws-cdk/aws-logs": "0.0.0", - "@aws-cdk/aws-cloudwatch": "0.0.0" + "@aws-cdk/aws-logs": "1.133.0", + "@aws-cdk/aws-cloudwatch": "1.133.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/package.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/package.json index 3d714cfc7..fad7ce902 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-apigateway-lambda", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK constructs for defining an interaction between an API Gateway and a Lambda function.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,16 +53,16 @@ } }, "dependencies": { - "@aws-cdk/aws-apigateway": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-logs": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-apigateway": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-logs": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -81,13 +81,13 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-apigateway": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-logs": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-apigateway": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-logs": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0", - "@aws-cdk/aws-iam": "0.0.0" + "@aws-cdk/aws-iam": "1.133.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-sagemakerendpoint/package.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-sagemakerendpoint/package.json index 7a4681cb6..5bff2aef5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-sagemakerendpoint/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-sagemakerendpoint/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-apigateway-sagemakerendpoint", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK Constructs for AWS API Gateway and Amazon SageMaker Endpoint integration.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,15 +53,15 @@ } }, "dependencies": { - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-apigateway": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-logs": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-apigateway": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-logs": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -80,12 +80,12 @@ ] }, "peerDependencies": { - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-apigateway": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-apigateway": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0", - "@aws-cdk/aws-logs": "0.0.0" + "@aws-cdk/aws-logs": "1.133.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-sqs/package.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-sqs/package.json index d5a88ac8f..1de23ef4a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-sqs/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-sqs/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-apigateway-sqs", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK constructs for defining an interaction between an AWS Lambda function and an Amazon S3 bucket.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,17 +53,17 @@ } }, "dependencies": { - "@aws-cdk/aws-apigateway": "0.0.0", - "@aws-cdk/aws-sqs": "0.0.0", - "@aws-cdk/aws-kms": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-logs": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-apigateway": "1.133.0", + "@aws-cdk/aws-sqs": "1.133.0", + "@aws-cdk/aws-kms": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-logs": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -82,14 +82,14 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-apigateway": "0.0.0", - "@aws-cdk/aws-sqs": "0.0.0", - "@aws-cdk/aws-kms": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-apigateway": "1.133.0", + "@aws-cdk/aws-sqs": "1.133.0", + "@aws-cdk/aws-kms": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0", - "@aws-cdk/aws-logs": "0.0.0" + "@aws-cdk/aws-logs": "1.133.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/package.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/package.json index 44ee586ac..7693c6758 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-cloudfront-apigateway-lambda", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK Constructs for AWS Cloudfront to AWS API Gateway to AWS Lambda integration.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,20 +53,20 @@ } }, "dependencies": { - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-cloudfront": "0.0.0", - "@aws-cdk/aws-apigateway": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-logs": "0.0.0", - "@aws-cdk/aws-s3": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-solutions-constructs/aws-cloudfront-apigateway": "0.0.0", - "@aws-cdk/aws-cloudfront-origins": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-cloudfront": "1.133.0", + "@aws-cdk/aws-apigateway": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-logs": "1.133.0", + "@aws-cdk/aws-s3": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-solutions-constructs/aws-cloudfront-apigateway": "1.133.0", + "@aws-cdk/aws-cloudfront-origins": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -85,17 +85,17 @@ ] }, "peerDependencies": { - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-cloudfront": "0.0.0", - "@aws-cdk/aws-apigateway": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-logs": "0.0.0", - "@aws-solutions-constructs/aws-cloudfront-apigateway": "0.0.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-cloudfront": "1.133.0", + "@aws-cdk/aws-apigateway": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-logs": "1.133.0", + "@aws-solutions-constructs/aws-cloudfront-apigateway": "1.133.0", "constructs": "^3.2.0", - "@aws-cdk/aws-s3": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-cloudfront-origins": "0.0.0" + "@aws-cdk/aws-s3": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-cloudfront-origins": "1.133.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/package.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/package.json index 165fddc1c..0e67dacbd 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-cloudfront-apigateway", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK Constructs for AWS Cloudfront to AWS API Gateway integration.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,17 +53,17 @@ } }, "dependencies": { - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-cloudfront": "0.0.0", - "@aws-cdk/aws-apigateway": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-logs": "0.0.0", - "@aws-cdk/aws-s3": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-cloudfront": "1.133.0", + "@aws-cdk/aws-apigateway": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-logs": "1.133.0", + "@aws-cdk/aws-s3": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -82,14 +82,14 @@ ] }, "peerDependencies": { - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-cloudfront": "0.0.0", - "@aws-cdk/aws-apigateway": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-logs": "0.0.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-cloudfront": "1.133.0", + "@aws-cdk/aws-apigateway": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-logs": "1.133.0", "constructs": "^3.2.0", - "@aws-cdk/aws-s3": "0.0.0" + "@aws-cdk/aws-s3": "1.133.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/package.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/package.json index e4f176e73..1a60f6e46 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-cloudfront-mediastore", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK Constructs for Amazon CloudFront to AWS Elemental MediaStore integration.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,16 +53,16 @@ } }, "dependencies": { - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-cloudfront": "0.0.0", - "@aws-cdk/aws-mediastore": "0.0.0", - "@aws-cdk/aws-s3": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-cloudfront": "1.133.0", + "@aws-cdk/aws-mediastore": "1.133.0", + "@aws-cdk/aws-s3": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.27" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -81,12 +81,12 @@ ] }, "peerDependencies": { - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-cloudfront": "0.0.0", - "@aws-cdk/aws-mediastore": "0.0.0", - "@aws-cdk/aws-s3": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-cloudfront": "1.133.0", + "@aws-cdk/aws-mediastore": "1.133.0", + "@aws-cdk/aws-s3": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.27" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/package.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/package.json index f0d70ac7e..6ac17caeb 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-cloudfront-s3", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK Constructs for AWS Cloudfront to AWS S3 integration.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,17 +53,17 @@ } }, "dependencies": { - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-cloudfront": "0.0.0", - "@aws-cdk/aws-s3": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-cdk/aws-certificatemanager": "0.0.0", - "@aws-cdk/aws-cloudfront-origins": "0.0.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-cloudfront": "1.133.0", + "@aws-cdk/aws-s3": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-certificatemanager": "1.133.0", + "@aws-cdk/aws-cloudfront-origins": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -82,14 +82,14 @@ ] }, "peerDependencies": { - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-cloudfront": "0.0.0", - "@aws-cdk/aws-s3": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-cloudfront": "1.133.0", + "@aws-cdk/aws-s3": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-certificatemanager": "0.0.0", - "@aws-cdk/aws-cloudfront-origins": "0.0.0" + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-certificatemanager": "1.133.0", + "@aws-cdk/aws-cloudfront-origins": "1.133.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/package.json b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/package.json index ff35018ac..7a3f5c3ba 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-cognito-apigateway-lambda", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK Constructs for AWS Cognito to AWS API Gateway to AWS Lambda integration", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,17 +53,17 @@ } }, "dependencies": { - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-cognito": "0.0.0", - "@aws-cdk/aws-apigateway": "0.0.0", - "@aws-cdk/aws-logs": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-cognito": "1.133.0", + "@aws-cdk/aws-apigateway": "1.133.0", + "@aws-cdk/aws-logs": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -82,14 +82,14 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-cognito": "0.0.0", - "@aws-cdk/aws-apigateway": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-cognito": "1.133.0", + "@aws-cdk/aws-apigateway": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0", - "@aws-cdk/aws-logs": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0" + "@aws-cdk/aws-logs": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda-elasticsearch-kibana/package.json b/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda-elasticsearch-kibana/package.json index 0138f8d1a..5ab05f13e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda-elasticsearch-kibana/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda-elasticsearch-kibana/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-dynamodb-stream-lambda-elasticsearch-kibana", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK Constructs for Amazon Dynamodb stream to AWS Lambda to AWS Elasticsearch with Kibana integration", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,21 +53,21 @@ } }, "dependencies": { - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-lambda-event-sources": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-cognito": "0.0.0", - "@aws-cdk/aws-elasticsearch": "0.0.0", - "@aws-cdk/aws-dynamodb": "0.0.0", - "@aws-cdk/aws-cloudwatch": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-sqs": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana": "0.0.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-lambda-event-sources": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-cognito": "1.133.0", + "@aws-cdk/aws-elasticsearch": "1.133.0", + "@aws-cdk/aws-dynamodb": "1.133.0", + "@aws-cdk/aws-cloudwatch": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-sqs": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -86,18 +86,18 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-cognito": "0.0.0", - "@aws-cdk/aws-elasticsearch": "0.0.0", - "@aws-cdk/aws-dynamodb": "0.0.0", - "@aws-cdk/aws-cloudwatch": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana": "0.0.0", - "@aws-cdk/aws-lambda-event-sources": "0.0.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-cognito": "1.133.0", + "@aws-cdk/aws-elasticsearch": "1.133.0", + "@aws-cdk/aws-dynamodb": "1.133.0", + "@aws-cdk/aws-cloudwatch": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana": "1.133.0", + "@aws-cdk/aws-lambda-event-sources": "1.133.0", "constructs": "^3.2.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-sqs": "0.0.0" + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-sqs": "1.133.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/package.json b/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/package.json index d26d9ddc0..441fd489d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-dynamodb-stream-lambda", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK Constructs for AWS DynamoDB Stream to AWS Lambda integration.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,18 +53,18 @@ } }, "dependencies": { - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-lambda-event-sources": "0.0.0", - "@aws-cdk/aws-dynamodb": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-sqs": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-solutions-constructs/aws-dynamodbstreams-lambda": "0.0.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-lambda-event-sources": "1.133.0", + "@aws-cdk/aws-dynamodb": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-sqs": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-solutions-constructs/aws-dynamodbstreams-lambda": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -83,15 +83,15 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-dynamodb": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-solutions-constructs/aws-dynamodbstreams-lambda": "0.0.0", - "@aws-cdk/aws-lambda-event-sources": "0.0.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-dynamodb": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-solutions-constructs/aws-dynamodbstreams-lambda": "1.133.0", + "@aws-cdk/aws-lambda-event-sources": "1.133.0", "constructs": "^3.2.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-sqs": "0.0.0" + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-sqs": "1.133.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/package.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/package.json index aaa8d70d5..80eae939e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK Constructs for Amazon Dynamodb streams to AWS Lambda to AWS Elasticsearch with Kibana integration", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,22 +53,22 @@ } }, "dependencies": { - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-lambda-event-sources": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-cognito": "0.0.0", - "@aws-cdk/aws-elasticsearch": "0.0.0", - "@aws-cdk/aws-dynamodb": "0.0.0", - "@aws-cdk/aws-cloudwatch": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-sqs": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-solutions-constructs/aws-dynamodbstreams-lambda": "0.0.0", - "@aws-solutions-constructs/aws-lambda-elasticsearch-kibana": "0.0.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-lambda-event-sources": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-cognito": "1.133.0", + "@aws-cdk/aws-elasticsearch": "1.133.0", + "@aws-cdk/aws-dynamodb": "1.133.0", + "@aws-cdk/aws-cloudwatch": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-sqs": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-solutions-constructs/aws-dynamodbstreams-lambda": "1.133.0", + "@aws-solutions-constructs/aws-lambda-elasticsearch-kibana": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -87,19 +87,19 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-cognito": "0.0.0", - "@aws-cdk/aws-elasticsearch": "0.0.0", - "@aws-cdk/aws-dynamodb": "0.0.0", - "@aws-cdk/aws-cloudwatch": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-solutions-constructs/aws-dynamodbstreams-lambda": "0.0.0", - "@aws-solutions-constructs/aws-lambda-elasticsearch-kibana": "0.0.0", - "@aws-cdk/aws-lambda-event-sources": "0.0.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-cognito": "1.133.0", + "@aws-cdk/aws-elasticsearch": "1.133.0", + "@aws-cdk/aws-dynamodb": "1.133.0", + "@aws-cdk/aws-cloudwatch": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-solutions-constructs/aws-dynamodbstreams-lambda": "1.133.0", + "@aws-solutions-constructs/aws-lambda-elasticsearch-kibana": "1.133.0", + "@aws-cdk/aws-lambda-event-sources": "1.133.0", "constructs": "^3.2.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-sqs": "0.0.0" + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-sqs": "1.133.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/package.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/package.json index a5d7049e1..d9bca2398 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-dynamodbstreams-lambda", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK Constructs for AWS DynamoDB Streams to AWS Lambda integration.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,17 +53,17 @@ } }, "dependencies": { - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-lambda-event-sources": "0.0.0", - "@aws-cdk/aws-dynamodb": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-sqs": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-lambda-event-sources": "1.133.0", + "@aws-cdk/aws-dynamodb": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-sqs": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -82,14 +82,14 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-dynamodb": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-cdk/aws-lambda-event-sources": "0.0.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-dynamodb": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-lambda-event-sources": "1.133.0", "constructs": "^3.2.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-sqs": "0.0.0" + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-sqs": "1.133.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/package.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/package.json index c0a1cc6b0..05684d785 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK Constructs for Amazon CloudWatch Events Rule to Amazon Kinesis Firehose to Amazon S3 integration.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,18 +53,18 @@ } }, "dependencies": { - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-kinesisfirehose": "0.0.0", - "@aws-cdk/aws-events": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-s3": "0.0.0", - "@aws-cdk/aws-logs": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-solutions-constructs/aws-kinesisfirehose-s3": "0.0.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-kinesisfirehose": "1.133.0", + "@aws-cdk/aws-events": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-s3": "1.133.0", + "@aws-cdk/aws-logs": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-solutions-constructs/aws-kinesisfirehose-s3": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -83,15 +83,15 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-kinesisfirehose": "0.0.0", - "@aws-cdk/aws-events": "0.0.0", - "@aws-cdk/aws-s3": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-solutions-constructs/aws-kinesisfirehose-s3": "0.0.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-kinesisfirehose": "1.133.0", + "@aws-cdk/aws-events": "1.133.0", + "@aws-cdk/aws-s3": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-solutions-constructs/aws-kinesisfirehose-s3": "1.133.0", "constructs": "^3.2.0", - "@aws-cdk/aws-logs": "0.0.0" + "@aws-cdk/aws-logs": "1.133.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/package.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/package.json index 4102e4d78..c676a75dd 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-eventbridge-kinesisstreams", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK Constructs for deploying Amazon CloudWatch Events Rule that invokes Amazon Kinesis Data Stream", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,16 +53,16 @@ } }, "dependencies": { - "@aws-cdk/aws-events": "0.0.0", - "@aws-cdk/aws-kinesis": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-cloudwatch": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-events": "1.133.0", + "@aws-cdk/aws-kinesis": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-cloudwatch": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -81,12 +81,12 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-events": "0.0.0", - "@aws-cdk/aws-kinesis": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-cloudwatch": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-events": "1.133.0", + "@aws-cdk/aws-kinesis": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-cloudwatch": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/package.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/package.json index 2545a60f9..918c182cf 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-eventbridge-lambda", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK Constructs for deploying AWS Events Rule that inveokes AWS Lambda", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,15 +53,15 @@ } }, "dependencies": { - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-events": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-events": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -80,11 +80,11 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-events": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-events": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/package.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/package.json index ccf42b6ac..d3c699549 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-eventbridge-sns", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK Constructs for deploying AWS Events Rule that invokes AWS SNS", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,16 +53,16 @@ } }, "dependencies": { - "@aws-cdk/aws-events": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-sns": "0.0.0", - "@aws-cdk/aws-kms": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-events": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-sns": "1.133.0", + "@aws-cdk/aws-kms": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -81,12 +81,12 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-sns": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-events": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-kms": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-sns": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-events": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-kms": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/package.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/package.json index 91a7a8fbd..9eaddff79 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-eventbridge-sqs", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK Constructs for deploying AWS Eventbridge that invokes AWS SQS", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,16 +53,16 @@ } }, "dependencies": { - "@aws-cdk/aws-events": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-sqs": "0.0.0", - "@aws-cdk/aws-kms": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-events": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-sqs": "1.133.0", + "@aws-cdk/aws-kms": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -81,12 +81,12 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-sqs": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-events": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-kms": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-sqs": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-events": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-kms": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/package.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/package.json index 20daf894f..6876bf465 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-eventbridge-stepfunctions", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK Constructs for deploying AWS Events Rule that invokes AWS Step Functions", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,19 +53,19 @@ } }, "dependencies": { - "@aws-cdk/aws-stepfunctions": "0.0.0", - "@aws-cdk/aws-stepfunctions-tasks": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-events": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-logs": "0.0.0", - "@aws-cdk/aws-cloudwatch": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-stepfunctions": "1.133.0", + "@aws-cdk/aws-stepfunctions-tasks": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-events": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-logs": "1.133.0", + "@aws-cdk/aws-cloudwatch": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -84,16 +84,16 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-stepfunctions": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-events": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-stepfunctions": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-events": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-cloudwatch": "0.0.0", - "@aws-cdk/aws-stepfunctions-tasks": "0.0.0", - "@aws-cdk/aws-logs": "0.0.0" + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-cloudwatch": "1.133.0", + "@aws-cdk/aws-stepfunctions-tasks": "1.133.0", + "@aws-cdk/aws-logs": "1.133.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/package.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/package.json index 9771a9460..7b7240964 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK Constructs for Amazon CloudWatch Events Rule to Amazon Kinesis Firehose to Amazon S3 integration.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,18 +53,18 @@ } }, "dependencies": { - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-kinesisfirehose": "0.0.0", - "@aws-cdk/aws-events": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-s3": "0.0.0", - "@aws-cdk/aws-logs": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3": "0.0.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-kinesisfirehose": "1.133.0", + "@aws-cdk/aws-events": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-s3": "1.133.0", + "@aws-cdk/aws-logs": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -83,15 +83,15 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-kinesisfirehose": "0.0.0", - "@aws-cdk/aws-events": "0.0.0", - "@aws-cdk/aws-s3": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3": "0.0.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-kinesisfirehose": "1.133.0", + "@aws-cdk/aws-events": "1.133.0", + "@aws-cdk/aws-s3": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3": "1.133.0", "constructs": "^3.2.0", - "@aws-cdk/aws-logs": "0.0.0" + "@aws-cdk/aws-logs": "1.133.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/package.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/package.json index 73403aff2..03cf63f40 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-events-rule-kinesisstreams", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK Constructs for deploying Amazon CloudWatch Events Rule that invokes Amazon Kinesis Data Stream", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,17 +53,17 @@ } }, "dependencies": { - "@aws-cdk/aws-events": "0.0.0", - "@aws-cdk/aws-kinesis": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-cloudwatch": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-solutions-constructs/aws-eventbridge-kinesisstreams": "0.0.0", + "@aws-cdk/aws-events": "1.133.0", + "@aws-cdk/aws-kinesis": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-cloudwatch": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-solutions-constructs/aws-eventbridge-kinesisstreams": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -82,13 +82,13 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-events": "0.0.0", - "@aws-cdk/aws-kinesis": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-cloudwatch": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-solutions-constructs/aws-eventbridge-kinesisstreams": "0.0.0", + "@aws-cdk/aws-events": "1.133.0", + "@aws-cdk/aws-kinesis": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-cloudwatch": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-solutions-constructs/aws-eventbridge-kinesisstreams": "1.133.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/package.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/package.json index 7df3d90d8..96f48e565 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-events-rule-lambda", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK Constructs for deploying AWS Events Rule that inveokes AWS Lambda", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,16 +53,16 @@ } }, "dependencies": { - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-events": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-solutions-constructs/aws-eventbridge-lambda": "0.0.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-events": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-solutions-constructs/aws-eventbridge-lambda": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -81,12 +81,12 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-events": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-solutions-constructs/aws-eventbridge-lambda": "0.0.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-events": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-solutions-constructs/aws-eventbridge-lambda": "1.133.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/package.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/package.json index de23fae32..2ada7a498 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-events-rule-sns", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK Constructs for deploying AWS Events Rule that invokes AWS SNS", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,17 +53,17 @@ } }, "dependencies": { - "@aws-cdk/aws-events": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-sns": "0.0.0", - "@aws-cdk/aws-kms": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-solutions-constructs/aws-eventbridge-sns": "0.0.0", + "@aws-cdk/aws-events": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-sns": "1.133.0", + "@aws-cdk/aws-kms": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-solutions-constructs/aws-eventbridge-sns": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -82,13 +82,13 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-sns": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-events": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-kms": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-solutions-constructs/aws-eventbridge-sns": "0.0.0", + "@aws-cdk/aws-sns": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-events": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-kms": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-solutions-constructs/aws-eventbridge-sns": "1.133.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/package.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/package.json index 3ebdb1efe..0ab33dbaa 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-events-rule-sqs", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK Constructs for deploying AWS Events Rule that invokes AWS SQS", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,17 +53,17 @@ } }, "dependencies": { - "@aws-cdk/aws-events": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-sqs": "0.0.0", - "@aws-cdk/aws-kms": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-solutions-constructs/aws-eventbridge-sqs": "0.0.0", + "@aws-cdk/aws-events": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-sqs": "1.133.0", + "@aws-cdk/aws-kms": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-solutions-constructs/aws-eventbridge-sqs": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -82,13 +82,13 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-sqs": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-events": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-kms": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-solutions-constructs/aws-eventbridge-sqs": "0.0.0", + "@aws-cdk/aws-sqs": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-events": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-kms": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-solutions-constructs/aws-eventbridge-sqs": "1.133.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/package.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/package.json index e12d2594f..2e8eb9aad 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-events-rule-step-function", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK Constructs for deploying AWS Events Rule that invokes AWS Step Function", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,20 +53,20 @@ } }, "dependencies": { - "@aws-cdk/aws-stepfunctions": "0.0.0", - "@aws-cdk/aws-stepfunctions-tasks": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-events": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-logs": "0.0.0", - "@aws-cdk/aws-cloudwatch": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-solutions-constructs/aws-eventbridge-stepfunctions": "0.0.0", + "@aws-cdk/aws-stepfunctions": "1.133.0", + "@aws-cdk/aws-stepfunctions-tasks": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-events": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-logs": "1.133.0", + "@aws-cdk/aws-cloudwatch": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-solutions-constructs/aws-eventbridge-stepfunctions": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -85,17 +85,17 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-stepfunctions": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-events": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-stepfunctions": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-events": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-cloudwatch": "0.0.0", - "@aws-cdk/aws-stepfunctions-tasks": "0.0.0", - "@aws-cdk/aws-logs": "0.0.0", - "@aws-solutions-constructs/aws-eventbridge-stepfunctions": "0.0.0" + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-cloudwatch": "1.133.0", + "@aws-cdk/aws-stepfunctions-tasks": "1.133.0", + "@aws-cdk/aws-logs": "1.133.0", + "@aws-solutions-constructs/aws-eventbridge-stepfunctions": "1.133.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/package.json b/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/package.json index 74a7f34b6..7b89c509b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-iot-kinesisfirehose-s3", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK Constructs for AWS IoT to AWS Kinesis Firehose to AWS S3 integration.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,18 +53,18 @@ } }, "dependencies": { - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-kinesisfirehose": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-iot": "0.0.0", - "@aws-cdk/aws-s3": "0.0.0", - "@aws-cdk/aws-logs": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-solutions-constructs/aws-kinesisfirehose-s3": "0.0.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-kinesisfirehose": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-iot": "1.133.0", + "@aws-cdk/aws-s3": "1.133.0", + "@aws-cdk/aws-logs": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-solutions-constructs/aws-kinesisfirehose-s3": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -83,15 +83,15 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-kinesisfirehose": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-iot": "0.0.0", - "@aws-cdk/aws-s3": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-solutions-constructs/aws-kinesisfirehose-s3": "0.0.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-kinesisfirehose": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-iot": "1.133.0", + "@aws-cdk/aws-s3": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-solutions-constructs/aws-kinesisfirehose-s3": "1.133.0", "constructs": "^3.2.0", - "@aws-cdk/aws-logs": "0.0.0" + "@aws-cdk/aws-logs": "1.133.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-kinesisstreams/package.json b/source/patterns/@aws-solutions-constructs/aws-iot-kinesisstreams/package.json index 5b1e434a8..548d23381 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-kinesisstreams/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-kinesisstreams/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-iot-kinesisstreams", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK Constructs for AWS IoT to AWS Kinesis Data Stream.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,16 +53,16 @@ } }, "dependencies": { - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-kinesis": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-iot": "0.0.0", - "@aws-cdk/aws-cloudwatch": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-kinesis": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-iot": "1.133.0", + "@aws-cdk/aws-cloudwatch": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -81,12 +81,12 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-kinesis": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-iot": "0.0.0", - "@aws-cdk/aws-cloudwatch": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-kinesis": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-iot": "1.133.0", + "@aws-cdk/aws-cloudwatch": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/package.json b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/package.json index 4a66b032b..d6881cef1 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-iot-lambda-dynamodb", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK Constructs for AWS IoT to AWS Lambda to AWS DyanmoDB integration.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,17 +53,17 @@ } }, "dependencies": { - "@aws-cdk/aws-dynamodb": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-iot": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-solutions-constructs/aws-iot-lambda": "0.0.0", - "@aws-solutions-constructs/aws-lambda-dynamodb": "0.0.0", + "@aws-cdk/aws-dynamodb": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-iot": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-solutions-constructs/aws-iot-lambda": "1.133.0", + "@aws-solutions-constructs/aws-lambda-dynamodb": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -82,13 +82,13 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-dynamodb": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-iot": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-solutions-constructs/aws-iot-lambda": "0.0.0", - "@aws-solutions-constructs/aws-lambda-dynamodb": "0.0.0", + "@aws-cdk/aws-dynamodb": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-iot": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-solutions-constructs/aws-iot-lambda": "1.133.0", + "@aws-solutions-constructs/aws-lambda-dynamodb": "1.133.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/package.json b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/package.json index 927277d86..60ed7bb46 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-iot-lambda", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK Constructs for AWS IoT to AWS Lambda integration", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,15 +53,15 @@ } }, "dependencies": { - "@aws-cdk/aws-iot": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-iot": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -80,11 +80,11 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-iot": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-iot": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-sqs/package.json b/source/patterns/@aws-solutions-constructs/aws-iot-sqs/package.json index 55057a1c7..d04e70c12 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-sqs/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-sqs/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-iot-sqs", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK Constructs for AWS IoT to AWS SQS integration", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,16 +53,16 @@ } }, "dependencies": { - "@aws-cdk/aws-iot": "0.0.0", - "@aws-cdk/aws-sqs": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-kms": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-iot": "1.133.0", + "@aws-cdk/aws-sqs": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-kms": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -81,12 +81,12 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-iot": "0.0.0", - "@aws-cdk/aws-sqs": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-kms": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-iot": "1.133.0", + "@aws-cdk/aws-sqs": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-kms": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" } } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/package.json b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/package.json index ea68718da..b60e103ef 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK constructs for defining an interaction between an Amazon Kinesis Data Firehose delivery stream and (1) an Amazon S3 bucket, and (2) an Amazon Kinesis Data Analytics application.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,19 +53,19 @@ } }, "dependencies": { - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-kinesis": "0.0.0", - "@aws-cdk/aws-kinesisanalytics": "0.0.0", - "@aws-cdk/aws-kinesisfirehose": "0.0.0", - "@aws-cdk/aws-s3": "0.0.0", - "@aws-cdk/aws-logs": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-solutions-constructs/aws-kinesisfirehose-s3": "0.0.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-kinesis": "1.133.0", + "@aws-cdk/aws-kinesisanalytics": "1.133.0", + "@aws-cdk/aws-kinesisfirehose": "1.133.0", + "@aws-cdk/aws-s3": "1.133.0", + "@aws-cdk/aws-logs": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-solutions-constructs/aws-kinesisfirehose-s3": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -84,16 +84,16 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-kinesis": "0.0.0", - "@aws-cdk/aws-kinesisanalytics": "0.0.0", - "@aws-cdk/aws-kinesisfirehose": "0.0.0", - "@aws-cdk/aws-s3": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-solutions-constructs/aws-kinesisfirehose-s3": "0.0.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-kinesis": "1.133.0", + "@aws-cdk/aws-kinesisanalytics": "1.133.0", + "@aws-cdk/aws-kinesisfirehose": "1.133.0", + "@aws-cdk/aws-s3": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-solutions-constructs/aws-kinesisfirehose-s3": "1.133.0", "constructs": "^3.2.0", - "@aws-cdk/aws-logs": "0.0.0" + "@aws-cdk/aws-logs": "1.133.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/package.json b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/package.json index a5548b2b4..ff5cd63c6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-kinesisfirehose-s3", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK constructs for defining an interaction between an Amazon Kinesis Data Firehose delivery stream and an Amazon S3 bucket.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,17 +53,17 @@ } }, "dependencies": { - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-kinesisfirehose": "0.0.0", - "@aws-cdk/aws-s3": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-logs": "0.0.0", - "@aws-cdk/aws-kms": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-kinesisfirehose": "1.133.0", + "@aws-cdk/aws-s3": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-logs": "1.133.0", + "@aws-cdk/aws-kms": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -82,14 +82,14 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-kinesisfirehose": "0.0.0", - "@aws-cdk/aws-s3": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-logs": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-kinesisfirehose": "1.133.0", + "@aws-cdk/aws-s3": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-logs": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0", - "@aws-cdk/aws-kms": "0.0.0" + "@aws-cdk/aws-kms": "1.133.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-gluejob/package.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-gluejob/package.json index 021270c08..687e98663 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-gluejob/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-gluejob/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-kinesisstreams-gluejob", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK Constructs for streaming data from AWS Kinesis Data Stream for Glue ETL custom Job processing", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,19 +53,19 @@ } }, "dependencies": { - "@aws-cdk/aws-glue": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-kinesis": "0.0.0", - "@aws-cdk/aws-s3": "0.0.0", - "@aws-cdk/aws-s3-assets": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-logs": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-glue": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-kinesis": "1.133.0", + "@aws-cdk/aws-s3": "1.133.0", + "@aws-cdk/aws-s3-assets": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-logs": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-cloudwatch": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -84,16 +84,16 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-glue": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-kinesis": "0.0.0", - "@aws-cdk/aws-s3": "0.0.0", - "@aws-cdk/aws-s3-assets": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-glue": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-kinesis": "1.133.0", + "@aws-cdk/aws-s3": "1.133.0", + "@aws-cdk/aws-s3-assets": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-cloudwatch": "1.133.0", "constructs": "^3.2.0", - "@aws-cdk/aws-logs": "0.0.0" + "@aws-cdk/aws-logs": "1.133.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/package.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/package.json index 80e9ead5e..f0a85ed48 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK constructs for defining an interaction between an Amazon Kinesis Data Stream (KDS), Amazon Kinesis Data Firehose (KDF) delivery stream and an Amazon S3 bucket.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,21 +53,21 @@ } }, "dependencies": { - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-kinesis": "0.0.0", - "@aws-cdk/aws-kinesisfirehose": "0.0.0", - "@aws-cdk/aws-s3": "0.0.0", - "@aws-cdk/aws-cloudwatch": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-logs": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-solutions-constructs/aws-kinesisfirehose-s3": "0.0.0", - "@aws-solutions-constructs/aws-kinesisstreams-lambda": "0.0.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-kinesis": "1.133.0", + "@aws-cdk/aws-kinesisfirehose": "1.133.0", + "@aws-cdk/aws-s3": "1.133.0", + "@aws-cdk/aws-cloudwatch": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-logs": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-solutions-constructs/aws-kinesisfirehose-s3": "1.133.0", + "@aws-solutions-constructs/aws-kinesisstreams-lambda": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -86,18 +86,18 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-kinesisfirehose": "0.0.0", - "@aws-cdk/aws-s3": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-logs": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-kinesisfirehose": "1.133.0", + "@aws-cdk/aws-s3": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-logs": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0", - "@aws-cdk/aws-kinesis": "0.0.0", - "@aws-cdk/aws-cloudwatch": "0.0.0", - "@aws-solutions-constructs/aws-kinesisfirehose-s3": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-solutions-constructs/aws-kinesisstreams-lambda": "0.0.0" + "@aws-cdk/aws-kinesis": "1.133.0", + "@aws-cdk/aws-cloudwatch": "1.133.0", + "@aws-solutions-constructs/aws-kinesisfirehose-s3": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-solutions-constructs/aws-kinesisstreams-lambda": "1.133.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/package.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/package.json index 5336bc451..056b64c31 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-kinesisstreams-lambda", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK constructs for defining an interaction between an Amazon Kinesis Data Stream and an AWS Lambda function.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,19 +53,19 @@ } }, "dependencies": { - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-kinesis": "0.0.0", - "@aws-cdk/aws-kms": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-sqs": "0.0.0", - "@aws-cdk/aws-lambda-event-sources": "0.0.0", - "@aws-cdk/aws-cloudwatch": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-kinesis": "1.133.0", + "@aws-cdk/aws-kms": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-sqs": "1.133.0", + "@aws-cdk/aws-lambda-event-sources": "1.133.0", + "@aws-cdk/aws-cloudwatch": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -84,16 +84,16 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-kinesis": "0.0.0", - "@aws-cdk/aws-kms": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-lambda-event-sources": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-kinesis": "1.133.0", + "@aws-cdk/aws-kms": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-lambda-event-sources": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0", - "@aws-cdk/aws-sqs": "0.0.0", - "@aws-cdk/aws-cloudwatch": "0.0.0" + "@aws-cdk/aws-sqs": "1.133.0", + "@aws-cdk/aws-cloudwatch": "1.133.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/package.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/package.json index 24cfe6a00..e255bea7b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-lambda-dynamodb", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK Constructs for AWS Lambda to AWS DynamoDB integration.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,15 +53,15 @@ } }, "dependencies": { - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-dynamodb": "0.0.0", - "@aws-cdk/aws-ec2": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-dynamodb": "1.133.0", + "@aws-cdk/aws-ec2": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -80,11 +80,11 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-dynamodb": "0.0.0", - "@aws-cdk/aws-ec2": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-dynamodb": "1.133.0", + "@aws-cdk/aws-ec2": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/package.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/package.json index a137c7aca..aba4d1595 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-lambda-elasticsearch-kibana", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK Constructs for AWS Lambda to AWS Elasticsearch with Kibana integration", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,17 +53,17 @@ } }, "dependencies": { - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-cognito": "0.0.0", - "@aws-cdk/aws-elasticsearch": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-cloudwatch": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-cognito": "1.133.0", + "@aws-cdk/aws-elasticsearch": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-cloudwatch": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -82,13 +82,13 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-cognito": "0.0.0", - "@aws-cdk/aws-elasticsearch": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-cognito": "1.133.0", + "@aws-cdk/aws-elasticsearch": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-cloudwatch": "1.133.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/package.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/package.json index d72053d5e..d27fd8d50 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-lambda-eventbridge", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK constructs for defining an interaction between an AWS Lambda function and an Amazon EventBridge.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,15 +53,15 @@ } }, "dependencies": { - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-events": "0.0.0", - "@aws-cdk/aws-ec2": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-events": "1.133.0", + "@aws-cdk/aws-ec2": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -80,12 +80,12 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0", - "@aws-cdk/aws-ec2": "0.0.0", - "@aws-cdk/aws-events": "0.0.0" + "@aws-cdk/aws-ec2": "1.133.0", + "@aws-cdk/aws-events": "1.133.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/package.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/package.json index 158769d1a..2504eb37f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-lambda-s3", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK constructs for defining an interaction between an AWS Lambda function and an Amazon S3 bucket.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,15 +53,15 @@ } }, "dependencies": { - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-s3": "0.0.0", - "@aws-cdk/aws-ec2": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-s3": "1.133.0", + "@aws-cdk/aws-ec2": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -80,12 +80,12 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-s3": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-s3": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0", - "@aws-cdk/aws-ec2": "0.0.0" + "@aws-cdk/aws-ec2": "1.133.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sagemakerendpoint/package.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sagemakerendpoint/package.json index 201505319..e86a0e949 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sagemakerendpoint/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sagemakerendpoint/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-lambda-sagemakerendpoint", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK constructs for defining an interaction between an AWS Lambda function and an Amazon SageMaker inference endpoint.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,18 +53,18 @@ } }, "dependencies": { - "@aws-cdk/aws-ec2": "0.0.0", - "@aws-cdk/aws-s3": "0.0.0", - "@aws-cdk/aws-s3-assets": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-sagemaker": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-ec2": "1.133.0", + "@aws-cdk/aws-s3": "1.133.0", + "@aws-cdk/aws-s3-assets": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-sagemaker": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -83,14 +83,14 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-ec2": "0.0.0", - "@aws-cdk/aws-s3": "0.0.0", - "@aws-cdk/aws-s3-assets": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-sagemaker": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-ec2": "1.133.0", + "@aws-cdk/aws-s3": "1.133.0", + "@aws-cdk/aws-s3-assets": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-sagemaker": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/package.json b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/package.json index 5f0d058fe..e66af8a01 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-lambda-secretsmanager", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK constructs for defining an interaction between an AWS Lambda function and AWS Secrets Manager.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,15 +53,15 @@ } }, "dependencies": { - "@aws-cdk/aws-ec2": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-secretsmanager": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-ec2": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-secretsmanager": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^24.0.23", "@types/node": "^10.3.0" }, @@ -71,11 +71,11 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-ec2": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-secretsmanager": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-ec2": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-secretsmanager": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/package.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/package.json index e8d4f1561..47fb006a5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-lambda-sns", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK constructs for defining an interaction between an AWS Lambda function and an Amazon SNS topic.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,16 +53,16 @@ } }, "dependencies": { - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-sns": "0.0.0", - "@aws-cdk/aws-kms": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-ec2": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-sns": "1.133.0", + "@aws-cdk/aws-kms": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-ec2": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -81,12 +81,12 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-sns": "0.0.0", - "@aws-cdk/aws-kms": "0.0.0", - "@aws-cdk/aws-ec2": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-sns": "1.133.0", + "@aws-cdk/aws-kms": "1.133.0", + "@aws-cdk/aws-ec2": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/package.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/package.json index 2782e0b13..efe2e3ba0 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-lambda-sqs-lambda", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK construct that provisions (1) an AWS Lambda function that is configured to send messages to a queue; (2) an Amazon SQS queue; and (3) an AWS Lambda function configured to consume messages from the queue.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,18 +53,18 @@ } }, "dependencies": { - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-sqs": "0.0.0", - "@aws-cdk/aws-ec2": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-lambda-event-sources": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-solutions-constructs/aws-lambda-sqs": "0.0.0", - "@aws-solutions-constructs/aws-sqs-lambda": "0.0.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-sqs": "1.133.0", + "@aws-cdk/aws-ec2": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-lambda-event-sources": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-solutions-constructs/aws-lambda-sqs": "1.133.0", + "@aws-solutions-constructs/aws-sqs-lambda": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -83,14 +83,14 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-sqs": "0.0.0", - "@aws-cdk/aws-ec2": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-lambda-event-sources": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-solutions-constructs/aws-lambda-sqs": "0.0.0", - "@aws-solutions-constructs/aws-sqs-lambda": "0.0.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-sqs": "1.133.0", + "@aws-cdk/aws-ec2": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-lambda-event-sources": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-solutions-constructs/aws-lambda-sqs": "1.133.0", + "@aws-solutions-constructs/aws-sqs-lambda": "1.133.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/package.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/package.json index e7ffb2b2d..dd8c92534 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-lambda-sqs", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK constructs for defining an interaction between an AWS Lambda function and an Amazon SQS queue.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,15 +53,15 @@ } }, "dependencies": { - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-sqs": "0.0.0", - "@aws-cdk/aws-ec2": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-sqs": "1.133.0", + "@aws-cdk/aws-ec2": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -80,12 +80,12 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-sqs": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-sqs": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0", - "@aws-cdk/aws-ec2": "0.0.0" + "@aws-cdk/aws-ec2": "1.133.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/package.json b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/package.json index 1a43288b1..053b955bc 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-lambda-ssmstringparameter", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK constructs for defining an interaction between an AWS Lambda function and AWS Systems Manager Parameter Store String parameter", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,15 +53,15 @@ } }, "dependencies": { - "@aws-cdk/aws-ec2": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-ssm": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-ec2": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-ssm": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^24.0.23", "@types/node": "^10.3.0" }, @@ -71,11 +71,11 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-ec2": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-ssm": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-ec2": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-ssm": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/package.json b/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/package.json index b722eb28b..989e7b94a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-lambda-step-function", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK constructs for defining an interaction between an AWS Lambda function and an AWS Step Function.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,18 +53,18 @@ } }, "dependencies": { - "@aws-cdk/aws-cloudwatch": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-stepfunctions": "0.0.0", - "@aws-cdk/aws-logs": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-ec2": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-solutions-constructs/aws-lambda-stepfunctions": "0.0.0", + "@aws-cdk/aws-cloudwatch": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-stepfunctions": "1.133.0", + "@aws-cdk/aws-logs": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-ec2": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-solutions-constructs/aws-lambda-stepfunctions": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0", "eslint-plugin-import": "^2.22.0" @@ -84,15 +84,15 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-cloudwatch": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-stepfunctions": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-ec2": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-solutions-constructs/aws-lambda-stepfunctions": "0.0.0", + "@aws-cdk/aws-cloudwatch": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-stepfunctions": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-ec2": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-solutions-constructs/aws-lambda-stepfunctions": "1.133.0", "constructs": "^3.2.0", - "@aws-cdk/aws-logs": "0.0.0" + "@aws-cdk/aws-logs": "1.133.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/test/integ.deployFunctionWithVpc.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/test/integ.deployFunctionWithVpc.expected.json index 232dffc75..93f62f22c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/test/integ.deployFunctionWithVpc.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/test/integ.deployFunctionWithVpc.expected.json @@ -308,7 +308,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" }, @@ -651,7 +651,13 @@ "testlambdastepfunctionsVpcFlowLogLogGroup4C235420": { "Type": "AWS::Logs::LogGroup", "Properties": { - "RetentionInDays": 731 + "RetentionInDays": 731, + "Tags": [ + { + "Key": "Name", + "Value": "deployFunctionWithVpc/test-lambda-stepfunctions/Vpc" + } + ] }, "UpdateReplacePolicy": "Retain", "DeletionPolicy": "Retain", diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/test/integ.deployFunctionWithVpc.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/test/integ.deployFunctionWithVpc.ts index a97188698..83cccd79f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/test/integ.deployFunctionWithVpc.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/test/integ.deployFunctionWithVpc.ts @@ -29,7 +29,7 @@ const startState = new stepfunctions.Pass(stack, 'StartState'); // Definitions const props: LambdaToStepFunctionProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/package.json b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/package.json index 15630c4ad..09499b5d3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-lambda-stepfunctions", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK constructs for defining an interaction between an AWS Lambda function and an AWS Step Function.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,17 +53,17 @@ } }, "dependencies": { - "@aws-cdk/aws-cloudwatch": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-stepfunctions": "0.0.0", - "@aws-cdk/aws-logs": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-ec2": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-cloudwatch": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-stepfunctions": "1.133.0", + "@aws-cdk/aws-logs": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-ec2": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0", "eslint-plugin-import": "^2.22.0" @@ -83,13 +83,13 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-cloudwatch": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-stepfunctions": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-ec2": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-cloudwatch": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-stepfunctions": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-ec2": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0", - "@aws-cdk/aws-logs": "0.0.0" + "@aws-cdk/aws-logs": "1.133.0" } } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-route53-alb/package.json b/source/patterns/@aws-solutions-constructs/aws-route53-alb/package.json index b8eb2c59e..099329b1e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-route53-alb/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-route53-alb/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-route53-alb", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK constructs for defining an interaction between an Amazon Route53 domain and an Application Load Balancer.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,25 +53,25 @@ } }, "dependencies": { - "@aws-cdk/aws-ec2": "0.0.0", - "@aws-cdk/aws-elasticloadbalancingv2": "0.0.0", - "@aws-cdk/aws-route53": "0.0.0", - "@aws-cdk/aws-route53-targets": "0.0.0", - "@aws-cdk/aws-s3": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-ec2": "1.133.0", + "@aws-cdk/aws-elasticloadbalancingv2": "1.133.0", + "@aws-cdk/aws-route53": "1.133.0", + "@aws-cdk/aws-route53-targets": "1.133.0", + "@aws-cdk/aws-s3": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", - "@aws-cdk/aws-ec2": "0.0.0", - "@aws-cdk/aws-elasticloadbalancingv2": "0.0.0", - "@aws-cdk/aws-route53": "0.0.0", - "@aws-cdk/aws-route53-targets": "0.0.0", - "@aws-cdk/aws-s3": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-ec2": "1.133.0", + "@aws-cdk/aws-elasticloadbalancingv2": "1.133.0", + "@aws-cdk/aws-route53": "1.133.0", + "@aws-cdk/aws-route53-targets": "1.133.0", + "@aws-cdk/aws-s3": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "3.2.0", "@types/node": "^10.3.0" }, @@ -90,12 +90,12 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-ec2": "0.0.0", - "@aws-cdk/aws-elasticloadbalancingv2": "0.0.0", - "@aws-cdk/aws-route53": "0.0.0", - "@aws-cdk/aws-route53-targets": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-ec2": "1.133.0", + "@aws-cdk/aws-elasticloadbalancingv2": "1.133.0", + "@aws-cdk/aws-route53": "1.133.0", + "@aws-cdk/aws-route53-targets": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/package.json b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/package.json index 480dcb484..c7418ed97 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-s3-lambda", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK Constructs for AWS S3 to AWS Lambda integration", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,17 +53,17 @@ } }, "dependencies": { - "@aws-cdk/aws-s3": "0.0.0", - "@aws-cdk/aws-s3-notifications": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-lambda-event-sources": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-s3": "1.133.0", + "@aws-cdk/aws-s3-notifications": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-lambda-event-sources": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -82,13 +82,13 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-s3": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-cdk/aws-lambda-event-sources": "0.0.0", - "@aws-cdk/aws-s3-notifications": "0.0.0", + "@aws-cdk/aws-s3": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-lambda-event-sources": "1.133.0", + "@aws-cdk/aws-s3-notifications": "1.133.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-sqs/package.json b/source/patterns/@aws-solutions-constructs/aws-s3-sqs/package.json index 70f57f3d7..2307b8dae 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-sqs/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-sqs/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-s3-sqs", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK constructs for defining an interaction between an Amazon S3 bucket and an Amazon SQS queue.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,18 +53,18 @@ } }, "dependencies": { - "@aws-cdk/aws-s3": "0.0.0", - "@aws-cdk/aws-s3-notifications": "0.0.0", - "@aws-cdk/aws-sqs": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-kms": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-s3": "1.133.0", + "@aws-cdk/aws-s3-notifications": "1.133.0", + "@aws-cdk/aws-sqs": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-kms": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -83,14 +83,14 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-s3": "0.0.0", - "@aws-cdk/aws-s3-notifications": "0.0.0", - "@aws-cdk/aws-sqs": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-kms": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-s3": "1.133.0", + "@aws-cdk/aws-s3-notifications": "1.133.0", + "@aws-cdk/aws-sqs": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-kms": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-step-function/package.json b/source/patterns/@aws-solutions-constructs/aws-s3-step-function/package.json index 656735e43..223d86b6e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-step-function/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-step-function/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-s3-step-function", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK Constructs for AWS S3 to AWS Step Function integration", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,23 +53,23 @@ } }, "dependencies": { - "@aws-cdk/aws-stepfunctions": "0.0.0", - "@aws-cdk/aws-stepfunctions-tasks": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-s3": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-cloudwatch": "0.0.0", - "@aws-cdk/aws-cloudtrail": "0.0.0", - "@aws-cdk/aws-events": "0.0.0", - "@aws-cdk/aws-logs": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-solutions-constructs/aws-events-rule-step-function": "0.0.0", - "@aws-solutions-constructs/aws-s3-stepfunctions": "0.0.0", + "@aws-cdk/aws-stepfunctions": "1.133.0", + "@aws-cdk/aws-stepfunctions-tasks": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-s3": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-cloudwatch": "1.133.0", + "@aws-cdk/aws-cloudtrail": "1.133.0", + "@aws-cdk/aws-events": "1.133.0", + "@aws-cdk/aws-logs": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-solutions-constructs/aws-events-rule-step-function": "1.133.0", + "@aws-solutions-constructs/aws-s3-stepfunctions": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -88,20 +88,20 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-stepfunctions": "0.0.0", - "@aws-cdk/aws-stepfunctions-tasks": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-s3": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-cloudwatch": "0.0.0", - "@aws-cdk/aws-cloudtrail": "0.0.0", - "@aws-cdk/aws-events": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-solutions-constructs/aws-events-rule-step-function": "0.0.0", - "@aws-solutions-constructs/aws-s3-stepfunctions": "0.0.0", + "@aws-cdk/aws-stepfunctions": "1.133.0", + "@aws-cdk/aws-stepfunctions-tasks": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-s3": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-cloudwatch": "1.133.0", + "@aws-cdk/aws-cloudtrail": "1.133.0", + "@aws-cdk/aws-events": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-solutions-constructs/aws-events-rule-step-function": "1.133.0", + "@aws-solutions-constructs/aws-s3-stepfunctions": "1.133.0", "constructs": "^3.2.0", - "@aws-cdk/aws-logs": "0.0.0" + "@aws-cdk/aws-logs": "1.133.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/package.json b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/package.json index 9eedf5a3e..fedd204f7 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-s3-stepfunctions", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK Constructs for AWS S3 to AWS Step Functions integration", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,22 +53,22 @@ } }, "dependencies": { - "@aws-cdk/aws-stepfunctions": "0.0.0", - "@aws-cdk/aws-stepfunctions-tasks": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-s3": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-cloudwatch": "0.0.0", - "@aws-cdk/aws-cloudtrail": "0.0.0", - "@aws-cdk/aws-events": "0.0.0", - "@aws-cdk/aws-logs": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-solutions-constructs/aws-eventbridge-stepfunctions": "0.0.0", + "@aws-cdk/aws-stepfunctions": "1.133.0", + "@aws-cdk/aws-stepfunctions-tasks": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-s3": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-cloudwatch": "1.133.0", + "@aws-cdk/aws-cloudtrail": "1.133.0", + "@aws-cdk/aws-events": "1.133.0", + "@aws-cdk/aws-logs": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-solutions-constructs/aws-eventbridge-stepfunctions": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -87,19 +87,19 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-stepfunctions": "0.0.0", - "@aws-cdk/aws-stepfunctions-tasks": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-s3": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-cloudwatch": "0.0.0", - "@aws-cdk/aws-cloudtrail": "0.0.0", - "@aws-cdk/aws-events": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-solutions-constructs/aws-eventbridge-stepfunctions": "0.0.0", + "@aws-cdk/aws-stepfunctions": "1.133.0", + "@aws-cdk/aws-stepfunctions-tasks": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-s3": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-cloudwatch": "1.133.0", + "@aws-cdk/aws-cloudtrail": "1.133.0", + "@aws-cdk/aws-events": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-solutions-constructs/aws-eventbridge-stepfunctions": "1.133.0", "constructs": "^3.2.0", - "@aws-cdk/aws-logs": "0.0.0" + "@aws-cdk/aws-logs": "1.133.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-sns-lambda/package.json b/source/patterns/@aws-solutions-constructs/aws-sns-lambda/package.json index d6f90e869..4b2ea1f08 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sns-lambda/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-sns-lambda/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-sns-lambda", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK Constructs for AWS SNS to AWS Lambda integration", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,17 +53,17 @@ } }, "dependencies": { - "@aws-cdk/aws-sns": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-lambda-event-sources": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-kms": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-sns": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-lambda-event-sources": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-kms": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -82,13 +82,13 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-sns": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-lambda-event-sources": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/aws-sns": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-lambda-event-sources": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-kms": "1.133.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-sns-sqs/package.json b/source/patterns/@aws-solutions-constructs/aws-sns-sqs/package.json index badacbc09..931ddd013 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sns-sqs/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-sns-sqs/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-sns-sqs", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK constructs for defining an interaction between an Amazon SNS topic and an Amazon SQS queue.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,17 +53,17 @@ } }, "dependencies": { - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-sns": "0.0.0", - "@aws-cdk/aws-sqs": "0.0.0", - "@aws-cdk/aws-sns-subscriptions": "0.0.0", - "@aws-cdk/aws-kms": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-sns": "1.133.0", + "@aws-cdk/aws-sqs": "1.133.0", + "@aws-cdk/aws-sns-subscriptions": "1.133.0", + "@aws-cdk/aws-kms": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -82,13 +82,13 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-sns": "0.0.0", - "@aws-cdk/aws-sqs": "0.0.0", - "@aws-cdk/aws-sns-subscriptions": "0.0.0", - "@aws-cdk/aws-kms": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-sns": "1.133.0", + "@aws-cdk/aws-sqs": "1.133.0", + "@aws-cdk/aws-sns-subscriptions": "1.133.0", + "@aws-cdk/aws-kms": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/package.json b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/package.json index 85f830aa7..7fec6f690 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-sqs-lambda", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK constructs for defining an interaction between an Amazon SQS queue and an AWS Lambda function.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,16 +53,16 @@ } }, "dependencies": { - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-lambda-event-sources": "0.0.0", - "@aws-cdk/aws-sqs": "0.0.0", - "@aws-cdk/aws-kms": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-lambda-event-sources": "1.133.0", + "@aws-cdk/aws-sqs": "1.133.0", + "@aws-cdk/aws-kms": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -81,12 +81,12 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-lambda-event-sources": "0.0.0", - "@aws-cdk/aws-sqs": "0.0.0", - "@aws-cdk/aws-kms": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-lambda-event-sources": "1.133.0", + "@aws-cdk/aws-sqs": "1.133.0", + "@aws-cdk/aws-kms": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-alb/package.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-alb/package.json index 5ec1d243b..ab257a209 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-alb/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-alb/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-wafwebacl-alb", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK constructs for defining an AWS web WAF connected to an Application Load Balancer.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,17 +53,17 @@ } }, "dependencies": { - "@aws-cdk/aws-autoscaling": "0.0.0", - "@aws-cdk/aws-ec2": "0.0.0", - "@aws-cdk/aws-elasticloadbalancingv2": "0.0.0", - "@aws-cdk/aws-wafv2": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-solutions-constructs/aws-route53-alb": "0.0.0", + "@aws-cdk/aws-autoscaling": "1.133.0", + "@aws-cdk/aws-ec2": "1.133.0", + "@aws-cdk/aws-elasticloadbalancingv2": "1.133.0", + "@aws-cdk/aws-wafv2": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-solutions-constructs/aws-route53-alb": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -82,13 +82,13 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-autoscaling": "0.0.0", - "@aws-cdk/aws-ec2": "0.0.0", - "@aws-cdk/aws-elasticloadbalancingv2": "0.0.0", - "@aws-cdk/aws-wafv2": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-solutions-constructs/aws-route53-alb": "0.0.0", + "@aws-cdk/aws-autoscaling": "1.133.0", + "@aws-cdk/aws-ec2": "1.133.0", + "@aws-cdk/aws-elasticloadbalancingv2": "1.133.0", + "@aws-cdk/aws-wafv2": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-solutions-constructs/aws-route53-alb": "1.133.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/package.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/package.json index 97e94b6b9..71997133c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-wafwebacl-apigateway", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK constructs for defining an AWS web WAF connected to Amazon API Gateway REST API.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,24 +53,24 @@ } }, "dependencies": { - "@aws-cdk/aws-apigateway": "0.0.0", - "@aws-cdk/aws-autoscaling": "0.0.0", - "@aws-cdk/aws-ec2": "0.0.0", - "@aws-cdk/aws-elasticloadbalancingv2": "0.0.0", - "@aws-cdk/aws-wafv2": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-solutions-constructs/aws-apigateway-lambda": "0.0.0", - "@aws-solutions-constructs/aws-apigateway-dynamodb": "0.0.0", - "@aws-solutions-constructs/aws-apigateway-iot": "0.0.0", - "@aws-solutions-constructs/aws-apigateway-kinesisstreams": "0.0.0", - "@aws-solutions-constructs/aws-apigateway-sagemakerendpoint": "0.0.0", - "@aws-solutions-constructs/aws-apigateway-sqs": "0.0.0", + "@aws-cdk/aws-apigateway": "1.133.0", + "@aws-cdk/aws-autoscaling": "1.133.0", + "@aws-cdk/aws-ec2": "1.133.0", + "@aws-cdk/aws-elasticloadbalancingv2": "1.133.0", + "@aws-cdk/aws-wafv2": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-solutions-constructs/aws-apigateway-lambda": "1.133.0", + "@aws-solutions-constructs/aws-apigateway-dynamodb": "1.133.0", + "@aws-solutions-constructs/aws-apigateway-iot": "1.133.0", + "@aws-solutions-constructs/aws-apigateway-kinesisstreams": "1.133.0", + "@aws-solutions-constructs/aws-apigateway-sagemakerendpoint": "1.133.0", + "@aws-solutions-constructs/aws-apigateway-sqs": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -89,20 +89,20 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-apigateway": "0.0.0", - "@aws-cdk/aws-autoscaling": "0.0.0", - "@aws-cdk/aws-ec2": "0.0.0", - "@aws-cdk/aws-elasticloadbalancingv2": "0.0.0", - "@aws-cdk/aws-wafv2": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-solutions-constructs/aws-apigateway-lambda": "0.0.0", - "@aws-solutions-constructs/aws-apigateway-dynamodb": "0.0.0", - "@aws-solutions-constructs/aws-apigateway-iot": "0.0.0", - "@aws-solutions-constructs/aws-apigateway-kinesisstreams": "0.0.0", - "@aws-solutions-constructs/aws-apigateway-sagemakerendpoint": "0.0.0", - "@aws-solutions-constructs/aws-apigateway-sqs": "0.0.0", + "@aws-cdk/aws-apigateway": "1.133.0", + "@aws-cdk/aws-autoscaling": "1.133.0", + "@aws-cdk/aws-ec2": "1.133.0", + "@aws-cdk/aws-elasticloadbalancingv2": "1.133.0", + "@aws-cdk/aws-wafv2": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-solutions-constructs/aws-apigateway-lambda": "1.133.0", + "@aws-solutions-constructs/aws-apigateway-dynamodb": "1.133.0", + "@aws-solutions-constructs/aws-apigateway-iot": "1.133.0", + "@aws-solutions-constructs/aws-apigateway-kinesisstreams": "1.133.0", + "@aws-solutions-constructs/aws-apigateway-sagemakerendpoint": "1.133.0", + "@aws-solutions-constructs/aws-apigateway-sqs": "1.133.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/package.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/package.json index 16c3365e7..cf2b1ef59 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-wafwebacl-cloudfront", - "version": "0.0.0", + "version": "1.133.0", "description": "CDK constructs for defining an AWS web WAF connected to Amazon CloudFront.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,20 +53,20 @@ } }, "dependencies": { - "@aws-cdk/aws-cloudfront": "0.0.0", - "@aws-cdk/aws-cloudfront-origins": "0.0.0", - "@aws-cdk/aws-s3": "0.0.0", - "@aws-cdk/aws-wafv2": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-solutions-constructs/aws-cloudfront-apigateway-lambda": "0.0.0", - "@aws-solutions-constructs/aws-cloudfront-s3": "0.0.0", - "@aws-solutions-constructs/aws-cloudfront-mediastore": "0.0.0", + "@aws-cdk/aws-cloudfront": "1.133.0", + "@aws-cdk/aws-cloudfront-origins": "1.133.0", + "@aws-cdk/aws-s3": "1.133.0", + "@aws-cdk/aws-wafv2": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-solutions-constructs/aws-cloudfront-apigateway-lambda": "1.133.0", + "@aws-solutions-constructs/aws-cloudfront-s3": "1.133.0", + "@aws-solutions-constructs/aws-cloudfront-mediastore": "1.133.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -85,16 +85,16 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-cloudfront": "0.0.0", - "@aws-cdk/aws-cloudfront-origins": "0.0.0", - "@aws-cdk/aws-s3": "0.0.0", - "@aws-cdk/aws-wafv2": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-solutions-constructs/aws-cloudfront-apigateway-lambda": "0.0.0", - "@aws-solutions-constructs/aws-cloudfront-s3": "0.0.0", - "@aws-solutions-constructs/aws-cloudfront-mediastore": "0.0.0", + "@aws-cdk/aws-cloudfront": "1.133.0", + "@aws-cdk/aws-cloudfront-origins": "1.133.0", + "@aws-cdk/aws-s3": "1.133.0", + "@aws-cdk/aws-wafv2": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-solutions-constructs/aws-cloudfront-apigateway-lambda": "1.133.0", + "@aws-solutions-constructs/aws-cloudfront-s3": "1.133.0", + "@aws-solutions-constructs/aws-cloudfront-mediastore": "1.133.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/core/package.json b/source/patterns/@aws-solutions-constructs/core/package.json index a8cbe8524..2a3320c37 100644 --- a/source/patterns/@aws-solutions-constructs/core/package.json +++ b/source/patterns/@aws-solutions-constructs/core/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/core", - "version": "0.0.0", + "version": "1.133.0", "description": "Core CDK Construct for patterns library", "main": "index.js", "types": "index.ts", @@ -52,40 +52,40 @@ } }, "dependencies": { - "@aws-cdk/aws-cloudfront": "0.0.0", - "@aws-cdk/aws-cloudfront-origins": "0.0.0", - "@aws-cdk/aws-dynamodb": "0.0.0", - "@aws-cdk/aws-elasticloadbalancingv2": "0.0.0", - "@aws-cdk/aws-elasticloadbalancingv2-targets": "0.0.0", - "@aws-cdk/aws-glue": "0.0.0", - "@aws-cdk/aws-iot": "0.0.0", - "@aws-cdk/aws-kinesis": "0.0.0", - "@aws-cdk/aws-kinesisanalytics": "0.0.0", - "@aws-cdk/aws-kinesisfirehose": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-lambda-event-sources": "0.0.0", - "@aws-cdk/aws-logs": "0.0.0", - "@aws-cdk/aws-s3": "0.0.0", - "@aws-cdk/aws-s3-notifications": "0.0.0", - "@aws-cdk/aws-sns": "0.0.0", - "@aws-cdk/aws-sqs": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-apigateway": "0.0.0", - "@aws-cdk/aws-kms": "0.0.0", - "@aws-cdk/aws-events": "0.0.0", - "@aws-cdk/aws-cognito": "0.0.0", - "@aws-cdk/aws-elasticsearch": "0.0.0", - "@aws-cdk/aws-cloudwatch": "0.0.0", - "@aws-cdk/aws-stepfunctions": "0.0.0", - "@aws-cdk/aws-certificatemanager": "0.0.0", - "@aws-cdk/aws-sagemaker": "0.0.0", - "@aws-cdk/aws-ec2": "0.0.0", - "@aws-cdk/aws-mediastore": "0.0.0", - "@aws-cdk/aws-s3-assets": "0.0.0", - "@aws-cdk/aws-secretsmanager": "0.0.0", - "@aws-cdk/aws-ssm": "0.0.0", - "@aws-cdk/aws-wafv2": "0.0.0", + "@aws-cdk/aws-cloudfront": "1.133.0", + "@aws-cdk/aws-cloudfront-origins": "1.133.0", + "@aws-cdk/aws-dynamodb": "1.133.0", + "@aws-cdk/aws-elasticloadbalancingv2": "1.133.0", + "@aws-cdk/aws-elasticloadbalancingv2-targets": "1.133.0", + "@aws-cdk/aws-glue": "1.133.0", + "@aws-cdk/aws-iot": "1.133.0", + "@aws-cdk/aws-kinesis": "1.133.0", + "@aws-cdk/aws-kinesisanalytics": "1.133.0", + "@aws-cdk/aws-kinesisfirehose": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-lambda-event-sources": "1.133.0", + "@aws-cdk/aws-logs": "1.133.0", + "@aws-cdk/aws-s3": "1.133.0", + "@aws-cdk/aws-s3-notifications": "1.133.0", + "@aws-cdk/aws-sns": "1.133.0", + "@aws-cdk/aws-sqs": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-apigateway": "1.133.0", + "@aws-cdk/aws-kms": "1.133.0", + "@aws-cdk/aws-events": "1.133.0", + "@aws-cdk/aws-cognito": "1.133.0", + "@aws-cdk/aws-elasticsearch": "1.133.0", + "@aws-cdk/aws-cloudwatch": "1.133.0", + "@aws-cdk/aws-stepfunctions": "1.133.0", + "@aws-cdk/aws-certificatemanager": "1.133.0", + "@aws-cdk/aws-sagemaker": "1.133.0", + "@aws-cdk/aws-ec2": "1.133.0", + "@aws-cdk/aws-mediastore": "1.133.0", + "@aws-cdk/aws-s3-assets": "1.133.0", + "@aws-cdk/aws-secretsmanager": "1.133.0", + "@aws-cdk/aws-ssm": "1.133.0", + "@aws-cdk/aws-wafv2": "1.133.0", "deep-diff": "^1.0.2", "deepmerge": "^4.0.0", "npmlog": "^4.1.2" @@ -93,7 +93,7 @@ "devDependencies": { "@types/deep-diff": "^1.0.0", "@types/npmlog": "^4.1.2", - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -117,37 +117,37 @@ "deep-diff" ], "peerDependencies": { - "@aws-cdk/aws-cloudfront": "0.0.0", - "@aws-cdk/aws-dynamodb": "0.0.0", - "@aws-cdk/aws-iot": "0.0.0", - "@aws-cdk/aws-kinesis": "0.0.0", - "@aws-cdk/aws-kinesisanalytics": "0.0.0", - "@aws-cdk/aws-kinesisfirehose": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-lambda-event-sources": "0.0.0", - "@aws-cdk/aws-logs": "0.0.0", - "@aws-cdk/aws-s3": "0.0.0", - "@aws-cdk/aws-s3-notifications": "0.0.0", - "@aws-cdk/aws-sns": "0.0.0", - "@aws-cdk/aws-sqs": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-apigateway": "0.0.0", - "@aws-cdk/aws-kms": "0.0.0", - "@aws-cdk/aws-events": "0.0.0", - "@aws-cdk/aws-cognito": "0.0.0", - "@aws-cdk/aws-elasticsearch": "0.0.0", - "@aws-cdk/aws-cloudwatch": "0.0.0", - "@aws-cdk/aws-stepfunctions": "0.0.0", - "@aws-cdk/aws-cloudfront-origins": "0.0.0", - "@aws-cdk/aws-certificatemanager": "0.0.0", - "@aws-cdk/aws-sagemaker": "0.0.0", - "@aws-cdk/aws-ec2": "0.0.0", - "@aws-cdk/aws-mediastore": "0.0.0", - "@aws-cdk/aws-glue": "0.0.0", - "@aws-cdk/aws-s3-assets": "0.0.0", - "@aws-cdk/aws-secretsmanager": "0.0.0", - "@aws-cdk/aws-ssm": "0.0.0", - "@aws-cdk/aws-wafv2": "0.0.0" + "@aws-cdk/aws-cloudfront": "1.133.0", + "@aws-cdk/aws-dynamodb": "1.133.0", + "@aws-cdk/aws-iot": "1.133.0", + "@aws-cdk/aws-kinesis": "1.133.0", + "@aws-cdk/aws-kinesisanalytics": "1.133.0", + "@aws-cdk/aws-kinesisfirehose": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-lambda-event-sources": "1.133.0", + "@aws-cdk/aws-logs": "1.133.0", + "@aws-cdk/aws-s3": "1.133.0", + "@aws-cdk/aws-s3-notifications": "1.133.0", + "@aws-cdk/aws-sns": "1.133.0", + "@aws-cdk/aws-sqs": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-apigateway": "1.133.0", + "@aws-cdk/aws-kms": "1.133.0", + "@aws-cdk/aws-events": "1.133.0", + "@aws-cdk/aws-cognito": "1.133.0", + "@aws-cdk/aws-elasticsearch": "1.133.0", + "@aws-cdk/aws-cloudwatch": "1.133.0", + "@aws-cdk/aws-stepfunctions": "1.133.0", + "@aws-cdk/aws-cloudfront-origins": "1.133.0", + "@aws-cdk/aws-certificatemanager": "1.133.0", + "@aws-cdk/aws-sagemaker": "1.133.0", + "@aws-cdk/aws-ec2": "1.133.0", + "@aws-cdk/aws-mediastore": "1.133.0", + "@aws-cdk/aws-glue": "1.133.0", + "@aws-cdk/aws-s3-assets": "1.133.0", + "@aws-cdk/aws-secretsmanager": "1.133.0", + "@aws-cdk/aws-ssm": "1.133.0", + "@aws-cdk/aws-wafv2": "1.133.0" } } \ No newline at end of file diff --git a/source/tools/aws-cdk-migration/package.json b/source/tools/aws-cdk-migration/package.json index 551905520..5663fc042 100644 --- a/source/tools/aws-cdk-migration/package.json +++ b/source/tools/aws-cdk-migration/package.json @@ -1,7 +1,7 @@ { "name": "aws-cdk-migration", "private": true, - "version": "0.0.0", + "version": "1.133.0", "description": "Rewrites typescript 'import' statements from @aws-cdk/xxx to aws-cdk-lib", "bin": { "rewrite-imports-v2": "bin/rewrite-imports-v2" diff --git a/source/tools/cdk-integ-tools/package.json b/source/tools/cdk-integ-tools/package.json index 4b9e5f322..464a663e6 100644 --- a/source/tools/cdk-integ-tools/package.json +++ b/source/tools/cdk-integ-tools/package.json @@ -1,7 +1,7 @@ { "name": "cdk-integ-tools", "private": true, - "version": "0.0.0", + "version": "1.133.0", "description": "Package with integration test scripts for CDK packages", "main": "index.js", "repository": { @@ -32,10 +32,10 @@ "typescript": "~3.9.7" }, "dependencies": { - "@aws-cdk/cloudformation-diff": "0.0.0", - "@aws-cdk/cx-api": "0.0.0", - "@aws-cdk/assert": "0.0.0", - "aws-cdk": "0.0.0", + "@aws-cdk/cloudformation-diff": "1.133.0", + "@aws-cdk/cx-api": "1.133.0", + "@aws-cdk/assert": "1.133.0", + "aws-cdk": "1.133.0", "fs-extra": "^9.0.1", "yargs": "^16.1.1", "deepmerge": "^4.0.0" diff --git a/source/use_cases/aws-custom-glue-etl/package.json b/source/use_cases/aws-custom-glue-etl/package.json index 42351536d..daa96a6c4 100644 --- a/source/use_cases/aws-custom-glue-etl/package.json +++ b/source/use_cases/aws-custom-glue-etl/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-cust0m-glue-etl", - "version": "0.0.0", + "version": "1.133.0", "description": "Use case pattern for creating a custom ETL job in AWS Glue.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -28,18 +28,18 @@ "build+lint+test": "npm run build && npm run lint && npm test && npm run integ-assert" }, "dependencies": { - "@aws-cdk/aws-kinesis": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/aws-kinesisstreams-gluejob": "0.0.0", - "@aws-cdk/aws-logs": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-cdk/aws-glue": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-s3-assets": "0.0.0", + "@aws-cdk/aws-kinesis": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/aws-kinesisstreams-gluejob": "1.133.0", + "@aws-cdk/aws-logs": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-glue": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-s3-assets": "1.133.0", "source-map-support": "^0.5.16" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^24.9.1", "@types/node": "^10.3.0" }, diff --git a/source/use_cases/aws-restaurant-management-demo/lib/lambda/service-staff/create-order/package.json b/source/use_cases/aws-restaurant-management-demo/lib/lambda/service-staff/create-order/package.json index 1327859b7..02a6279b4 100644 --- a/source/use_cases/aws-restaurant-management-demo/lib/lambda/service-staff/create-order/package.json +++ b/source/use_cases/aws-restaurant-management-demo/lib/lambda/service-staff/create-order/package.json @@ -1,6 +1,6 @@ { "name": "create-order", - "version": "0.0.0", + "version": "1.133.0", "description": "", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" diff --git a/source/use_cases/aws-restaurant-management-demo/package.json b/source/use_cases/aws-restaurant-management-demo/package.json index bc88c525e..21f6e0653 100644 --- a/source/use_cases/aws-restaurant-management-demo/package.json +++ b/source/use_cases/aws-restaurant-management-demo/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-restaurant-management-demo", - "version": "0.0.0", + "version": "1.133.0", "description": "Use case pattern for deploying a complex business system and reference architecture.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -29,7 +29,7 @@ "build+lint+test": "npm run build && npm run lint && npm test && npm run integ-assert" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -39,23 +39,23 @@ ] }, "dependencies": { - "@aws-cdk/aws-apigateway": "0.0.0", - "@aws-cdk/aws-dynamodb": "0.0.0", - "@aws-cdk/aws-ec2": "0.0.0", - "@aws-cdk/aws-events": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-ssm": "0.0.0", - "@aws-cdk/aws-redshift": "0.0.0", - "@aws-cdk/aws-stepfunctions": "0.0.0", - "@aws-cdk/aws-stepfunctions-tasks": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/aws-cognito-apigateway-lambda": "0.0.0", - "@aws-solutions-constructs/aws-events-rule-lambda": "0.0.0", - "@aws-solutions-constructs/aws-lambda-dynamodb": "0.0.0", - "@aws-solutions-constructs/aws-lambda-s3": "0.0.0", - "@aws-solutions-constructs/aws-lambda-sns": "0.0.0", - "@aws-solutions-constructs/aws-lambda-step-function": "0.0.0", + "@aws-cdk/aws-apigateway": "1.133.0", + "@aws-cdk/aws-dynamodb": "1.133.0", + "@aws-cdk/aws-ec2": "1.133.0", + "@aws-cdk/aws-events": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-ssm": "1.133.0", + "@aws-cdk/aws-redshift": "1.133.0", + "@aws-cdk/aws-stepfunctions": "1.133.0", + "@aws-cdk/aws-stepfunctions-tasks": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/aws-cognito-apigateway-lambda": "1.133.0", + "@aws-solutions-constructs/aws-events-rule-lambda": "1.133.0", + "@aws-solutions-constructs/aws-lambda-dynamodb": "1.133.0", + "@aws-solutions-constructs/aws-lambda-s3": "1.133.0", + "@aws-solutions-constructs/aws-lambda-sns": "1.133.0", + "@aws-solutions-constructs/aws-lambda-step-function": "1.133.0", "source-map-support": "^0.5.16", "typescript": "^4.2.4" } diff --git a/source/use_cases/aws-s3-static-website/package.json b/source/use_cases/aws-s3-static-website/package.json index 1deb95476..7250bbb17 100644 --- a/source/use_cases/aws-s3-static-website/package.json +++ b/source/use_cases/aws-s3-static-website/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-s3-static-website", - "version": "0.0.0", + "version": "1.133.0", "description": "Use case pattern for deploying a S3 static website.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -28,19 +28,19 @@ "build+lint+test": "npm run build && npm run lint && npm test && npm run integ-assert" }, "dependencies": { - "@aws-solutions-constructs/aws-cloudfront-s3": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-cloudfront": "0.0.0", - "@aws-cdk/aws-s3": "0.0.0", - "@aws-cdk/custom-resources": "0.0.0", - "@aws-cdk/aws-cloudformation": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-solutions-constructs/aws-cloudfront-s3": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-cloudfront": "1.133.0", + "@aws-cdk/aws-s3": "1.133.0", + "@aws-cdk/custom-resources": "1.133.0", + "@aws-cdk/aws-cloudformation": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "source-map-support": "^0.5.16" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, diff --git a/source/use_cases/aws-serverless-image-handler/lib/lambda/image-handler/package.json b/source/use_cases/aws-serverless-image-handler/lib/lambda/image-handler/package.json index ff443f48d..7fba45c2f 100755 --- a/source/use_cases/aws-serverless-image-handler/lib/lambda/image-handler/package.json +++ b/source/use_cases/aws-serverless-image-handler/lib/lambda/image-handler/package.json @@ -5,7 +5,7 @@ "author": { "name": "aws-solutions-builder" }, - "version": "0.0.0", + "version": "1.133.0", "private": true, "dependencies": { "sharp": "^0.23.4", diff --git a/source/use_cases/aws-serverless-image-handler/package.json b/source/use_cases/aws-serverless-image-handler/package.json index 6eab656cf..e8814e291 100644 --- a/source/use_cases/aws-serverless-image-handler/package.json +++ b/source/use_cases/aws-serverless-image-handler/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-serverless-image-handler", - "version": "0.0.0", + "version": "1.133.0", "description": "Use case pattern for deploying a serverless image handler API.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,18 +53,18 @@ } }, "dependencies": { - "@aws-cdk/aws-apigateway": "0.0.0", - "@aws-cdk/aws-cloudfront": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-s3": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-solutions-constructs/aws-cloudfront-apigateway-lambda": "0.0.0", - "@aws-solutions-constructs/aws-lambda-s3": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0" + "@aws-cdk/aws-apigateway": "1.133.0", + "@aws-cdk/aws-cloudfront": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-s3": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-solutions-constructs/aws-cloudfront-apigateway-lambda": "1.133.0", + "@aws-solutions-constructs/aws-lambda-s3": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -83,14 +83,14 @@ ] }, "peerDependencies": { - "@aws-solutions-constructs/aws-cloudfront-apigateway-lambda": "0.0.0", - "@aws-solutions-constructs/aws-lambda-s3": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-apigateway": "0.0.0", - "@aws-cdk/aws-cloudfront": "0.0.0", - "@aws-cdk/aws-s3": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0" + "@aws-solutions-constructs/aws-cloudfront-apigateway-lambda": "1.133.0", + "@aws-solutions-constructs/aws-lambda-s3": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-apigateway": "1.133.0", + "@aws-cdk/aws-cloudfront": "1.133.0", + "@aws-cdk/aws-s3": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0" } } \ No newline at end of file diff --git a/source/use_cases/aws-serverless-web-app/package.json b/source/use_cases/aws-serverless-web-app/package.json index 762b59361..4b6e31068 100644 --- a/source/use_cases/aws-serverless-web-app/package.json +++ b/source/use_cases/aws-serverless-web-app/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-serverless-web-app", - "version": "0.0.0", + "version": "1.133.0", "description": "Use case pattern for deploying a serverless web app.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -28,24 +28,24 @@ "build+lint+test": "npm run build && npm run lint && npm test && npm run integ-assert" }, "dependencies": { - "@aws-solutions-constructs/aws-cloudfront-s3": "0.0.0", - "@aws-solutions-constructs/aws-cognito-apigateway-lambda": "0.0.0", - "@aws-solutions-constructs/aws-lambda-dynamodb": "0.0.0", - "@aws-cdk/core": "0.0.0", - "@aws-cdk/aws-lambda": "0.0.0", - "@aws-cdk/aws-cloudfront": "0.0.0", - "@aws-cdk/aws-s3": "0.0.0", - "@aws-cdk/custom-resources": "0.0.0", - "@aws-cdk/aws-cloudformation": "0.0.0", - "@aws-cdk/aws-iam": "0.0.0", - "@aws-cdk/aws-cognito": "0.0.0", - "@aws-cdk/aws-apigateway": "0.0.0", - "@aws-cdk/aws-dynamodb": "0.0.0", - "@aws-solutions-constructs/core": "0.0.0", + "@aws-solutions-constructs/aws-cloudfront-s3": "1.133.0", + "@aws-solutions-constructs/aws-cognito-apigateway-lambda": "1.133.0", + "@aws-solutions-constructs/aws-lambda-dynamodb": "1.133.0", + "@aws-cdk/core": "1.133.0", + "@aws-cdk/aws-lambda": "1.133.0", + "@aws-cdk/aws-cloudfront": "1.133.0", + "@aws-cdk/aws-s3": "1.133.0", + "@aws-cdk/custom-resources": "1.133.0", + "@aws-cdk/aws-cloudformation": "1.133.0", + "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-cognito": "1.133.0", + "@aws-cdk/aws-apigateway": "1.133.0", + "@aws-cdk/aws-dynamodb": "1.133.0", + "@aws-solutions-constructs/core": "1.133.0", "source-map-support": "^0.5.16" }, "devDependencies": { - "@aws-cdk/assert": "0.0.0", + "@aws-cdk/assert": "1.133.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, From 24e2761c0584cc0179fcdab92e076357d2c02ee1 Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Fri, 17 Dec 2021 12:08:41 -0500 Subject: [PATCH 41/67] Reset version to 0.0.0 --- source/package.json | 2 +- .../aws-alb-lambda/package.json | 46 +++--- .../aws-apigateway-dynamodb/package.json | 28 ++-- .../aws-apigateway-iot/package.json | 24 ++-- .../package.json | 32 ++--- .../aws-apigateway-lambda/package.json | 28 ++-- .../package.json | 24 ++-- .../aws-apigateway-sqs/package.json | 32 ++--- .../package.json | 44 +++--- .../aws-cloudfront-apigateway/package.json | 32 ++--- .../aws-cloudfront-mediastore/package.json | 28 ++-- .../aws-cloudfront-s3/package.json | 32 ++--- .../package.json | 32 ++--- .../package.json | 48 +++---- .../aws-dynamodb-stream-lambda/package.json | 36 ++--- .../package.json | 52 +++---- .../aws-dynamodbstreams-lambda/package.json | 32 ++--- .../package.json | 36 ++--- .../package.json | 28 ++-- .../aws-eventbridge-lambda/package.json | 24 ++-- .../aws-eventbridge-sns/package.json | 28 ++-- .../aws-eventbridge-sqs/package.json | 28 ++-- .../package.json | 40 +++--- .../package.json | 36 ++--- .../package.json | 32 ++--- .../aws-events-rule-lambda/package.json | 28 ++-- .../aws-events-rule-sns/package.json | 32 ++--- .../aws-events-rule-sqs/package.json | 32 ++--- .../package.json | 44 +++--- .../aws-iot-kinesisfirehose-s3/package.json | 36 ++--- .../aws-iot-kinesisstreams/package.json | 28 ++-- .../aws-iot-lambda-dynamodb/package.json | 32 ++--- .../aws-iot-lambda/package.json | 24 ++-- .../aws-iot-sqs/package.json | 28 ++-- .../package.json | 40 +++--- .../aws-kinesisfirehose-s3/package.json | 32 ++--- .../aws-kinesisstreams-gluejob/package.json | 40 +++--- .../package.json | 48 +++---- .../aws-kinesisstreams-lambda/package.json | 40 +++--- .../aws-lambda-dynamodb/package.json | 24 ++-- .../package.json | 32 ++--- .../aws-lambda-eventbridge/package.json | 24 ++-- .../aws-lambda-s3/package.json | 24 ++-- .../aws-lambda-sagemakerendpoint/package.json | 36 ++--- .../aws-lambda-secretsmanager/package.json | 24 ++-- .../aws-lambda-sns/package.json | 28 ++-- .../aws-lambda-sqs-lambda/package.json | 36 ++--- .../aws-lambda-sqs/package.json | 24 ++-- .../package.json | 24 ++-- .../aws-lambda-step-function/package.json | 36 ++--- .../aws-lambda-stepfunctions/package.json | 32 ++--- .../aws-route53-alb/package.json | 44 +++--- .../aws-s3-lambda/package.json | 32 ++--- .../aws-s3-sqs/package.json | 36 ++--- .../aws-s3-step-function/package.json | 56 ++++---- .../aws-s3-stepfunctions/package.json | 52 +++---- .../aws-sns-lambda/package.json | 32 ++--- .../aws-sns-sqs/package.json | 32 ++--- .../aws-sqs-lambda/package.json | 28 ++-- .../aws-wafwebacl-alb/package.json | 32 ++--- .../aws-wafwebacl-apigateway/package.json | 60 ++++---- .../aws-wafwebacl-cloudfront/package.json | 44 +++--- .../core/package.json | 136 +++++++++--------- source/tools/aws-cdk-migration/package.json | 2 +- source/tools/cdk-integ-tools/package.json | 10 +- .../aws-custom-glue-etl/package.json | 20 +-- .../service-staff/create-order/package.json | 2 +- .../package.json | 38 ++--- .../aws-s3-static-website/package.json | 22 +-- .../lib/lambda/image-handler/package.json | 2 +- .../aws-serverless-image-handler/package.json | 40 +++--- .../aws-serverless-web-app/package.json | 32 ++--- 72 files changed, 1192 insertions(+), 1192 deletions(-) diff --git a/source/package.json b/source/package.json index d7d0915b2..62feab62a 100644 --- a/source/package.json +++ b/source/package.json @@ -1,6 +1,6 @@ { "name": "aws-solutions-constructs", - "version": "1.133.0", + "version": "0.0.0", "description": "AWS Solutions Constructs Library", "repository": { "type": "git", diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/package.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/package.json index d3d022d95..9f9607b1e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-alb-lambda", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK Constructs for Application Load Balancer to AWS Lambda integration", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,25 +53,25 @@ } }, "dependencies": { - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-ec2": "1.133.0", - "@aws-cdk/aws-s3": "1.133.0", - "@aws-cdk/aws-certificatemanager": "1.133.0", - "@aws-cdk/aws-elasticloadbalancingv2": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-certificatemanager": "0.0.0", + "@aws-cdk/aws-elasticloadbalancingv2": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", - "@aws-cdk/aws-ec2": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-elasticloadbalancingv2": "1.133.0", - "@aws-cdk/aws-lambda-event-sources": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/core": "1.133.0", + "@aws-cdk/assert": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-elasticloadbalancingv2": "0.0.0", + "@aws-cdk/aws-lambda-event-sources": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/core": "0.0.0", "@types/jest": "^26.0.22", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-solutions-constructs/core": "0.0.0", "@types/node": "^10.3.0", "constructs": "3.2.0" }, @@ -90,13 +90,13 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-elasticloadbalancingv2": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-ec2": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-cdk/aws-lambda-event-sources": "1.133.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-elasticloadbalancingv2": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-lambda-event-sources": "0.0.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-dynamodb/package.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-dynamodb/package.json index 8c6818bb7..2021dab28 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-dynamodb/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-dynamodb/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-apigateway-dynamodb", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK Constructs for AWS API Gateway and Amazon DynamoDB integration.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,16 +53,16 @@ } }, "dependencies": { - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-apigateway": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-dynamodb": "1.133.0", - "@aws-cdk/aws-logs": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-apigateway": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-dynamodb": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -81,13 +81,13 @@ ] }, "peerDependencies": { - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-apigateway": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-dynamodb": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-apigateway": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-dynamodb": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0", - "@aws-cdk/aws-logs": "1.133.0" + "@aws-cdk/aws-logs": "0.0.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/package.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/package.json index 5662e90dc..662fb1e27 100755 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-apigateway-iot", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK constructs to proxy communication to IotCore using a APIGateway(REST).", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,15 +53,15 @@ } }, "dependencies": { - "@aws-cdk/aws-apigateway": "1.133.0", - "@aws-cdk/aws-logs": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-apigateway": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -80,12 +80,12 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-apigateway": "1.133.0", - "@aws-cdk/aws-logs": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-apigateway": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0", - "@aws-cdk/aws-iam": "1.133.0" + "@aws-cdk/aws-iam": "0.0.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-kinesisstreams/package.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-kinesisstreams/package.json index af96fad6d..f37ae72b8 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-kinesisstreams/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-kinesisstreams/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-apigateway-kinesisstreams", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK Constructs for AWS API Gateway and Amazon Kinesis Data Streams integration.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,17 +53,17 @@ } }, "dependencies": { - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-apigateway": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-kinesis": "1.133.0", - "@aws-cdk/aws-logs": "1.133.0", - "@aws-cdk/aws-cloudwatch": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-apigateway": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kinesis": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -82,14 +82,14 @@ ] }, "peerDependencies": { - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-apigateway": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-kinesis": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-apigateway": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kinesis": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0", - "@aws-cdk/aws-logs": "1.133.0", - "@aws-cdk/aws-cloudwatch": "1.133.0" + "@aws-cdk/aws-logs": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/package.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/package.json index fad7ce902..3d714cfc7 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-apigateway-lambda", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK constructs for defining an interaction between an API Gateway and a Lambda function.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,16 +53,16 @@ } }, "dependencies": { - "@aws-cdk/aws-apigateway": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-logs": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-apigateway": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -81,13 +81,13 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-apigateway": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-logs": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-apigateway": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0", - "@aws-cdk/aws-iam": "1.133.0" + "@aws-cdk/aws-iam": "0.0.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-sagemakerendpoint/package.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-sagemakerendpoint/package.json index 5bff2aef5..7a4681cb6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-sagemakerendpoint/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-sagemakerendpoint/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-apigateway-sagemakerendpoint", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK Constructs for AWS API Gateway and Amazon SageMaker Endpoint integration.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,15 +53,15 @@ } }, "dependencies": { - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-apigateway": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-logs": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-apigateway": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -80,12 +80,12 @@ ] }, "peerDependencies": { - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-apigateway": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-apigateway": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0", - "@aws-cdk/aws-logs": "1.133.0" + "@aws-cdk/aws-logs": "0.0.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-sqs/package.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-sqs/package.json index 1de23ef4a..d5a88ac8f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-sqs/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-sqs/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-apigateway-sqs", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK constructs for defining an interaction between an AWS Lambda function and an Amazon S3 bucket.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,17 +53,17 @@ } }, "dependencies": { - "@aws-cdk/aws-apigateway": "1.133.0", - "@aws-cdk/aws-sqs": "1.133.0", - "@aws-cdk/aws-kms": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-logs": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-apigateway": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -82,14 +82,14 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-apigateway": "1.133.0", - "@aws-cdk/aws-sqs": "1.133.0", - "@aws-cdk/aws-kms": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-apigateway": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0", - "@aws-cdk/aws-logs": "1.133.0" + "@aws-cdk/aws-logs": "0.0.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/package.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/package.json index 7693c6758..44ee586ac 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-cloudfront-apigateway-lambda", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK Constructs for AWS Cloudfront to AWS API Gateway to AWS Lambda integration.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,20 +53,20 @@ } }, "dependencies": { - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-cloudfront": "1.133.0", - "@aws-cdk/aws-apigateway": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-logs": "1.133.0", - "@aws-cdk/aws-s3": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-solutions-constructs/aws-cloudfront-apigateway": "1.133.0", - "@aws-cdk/aws-cloudfront-origins": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-cloudfront": "0.0.0", + "@aws-cdk/aws-apigateway": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-solutions-constructs/aws-cloudfront-apigateway": "0.0.0", + "@aws-cdk/aws-cloudfront-origins": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -85,17 +85,17 @@ ] }, "peerDependencies": { - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-cloudfront": "1.133.0", - "@aws-cdk/aws-apigateway": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-logs": "1.133.0", - "@aws-solutions-constructs/aws-cloudfront-apigateway": "1.133.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-cloudfront": "0.0.0", + "@aws-cdk/aws-apigateway": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-solutions-constructs/aws-cloudfront-apigateway": "0.0.0", "constructs": "^3.2.0", - "@aws-cdk/aws-s3": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-cloudfront-origins": "1.133.0" + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-cloudfront-origins": "0.0.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/package.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/package.json index 0e67dacbd..165fddc1c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-cloudfront-apigateway", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK Constructs for AWS Cloudfront to AWS API Gateway integration.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,17 +53,17 @@ } }, "dependencies": { - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-cloudfront": "1.133.0", - "@aws-cdk/aws-apigateway": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-logs": "1.133.0", - "@aws-cdk/aws-s3": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-cloudfront": "0.0.0", + "@aws-cdk/aws-apigateway": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -82,14 +82,14 @@ ] }, "peerDependencies": { - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-cloudfront": "1.133.0", - "@aws-cdk/aws-apigateway": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-logs": "1.133.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-cloudfront": "0.0.0", + "@aws-cdk/aws-apigateway": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", "constructs": "^3.2.0", - "@aws-cdk/aws-s3": "1.133.0" + "@aws-cdk/aws-s3": "0.0.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/package.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/package.json index 1a60f6e46..e4f176e73 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-cloudfront-mediastore", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK Constructs for Amazon CloudFront to AWS Elemental MediaStore integration.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,16 +53,16 @@ } }, "dependencies": { - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-cloudfront": "1.133.0", - "@aws-cdk/aws-mediastore": "1.133.0", - "@aws-cdk/aws-s3": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-cloudfront": "0.0.0", + "@aws-cdk/aws-mediastore": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.27" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -81,12 +81,12 @@ ] }, "peerDependencies": { - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-cloudfront": "1.133.0", - "@aws-cdk/aws-mediastore": "1.133.0", - "@aws-cdk/aws-s3": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-cloudfront": "0.0.0", + "@aws-cdk/aws-mediastore": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.27" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/package.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/package.json index 6ac17caeb..f0d70ac7e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-cloudfront-s3", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK Constructs for AWS Cloudfront to AWS S3 integration.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,17 +53,17 @@ } }, "dependencies": { - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-cloudfront": "1.133.0", - "@aws-cdk/aws-s3": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-cdk/aws-certificatemanager": "1.133.0", - "@aws-cdk/aws-cloudfront-origins": "1.133.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-cloudfront": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-certificatemanager": "0.0.0", + "@aws-cdk/aws-cloudfront-origins": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -82,14 +82,14 @@ ] }, "peerDependencies": { - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-cloudfront": "1.133.0", - "@aws-cdk/aws-s3": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-cloudfront": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-certificatemanager": "1.133.0", - "@aws-cdk/aws-cloudfront-origins": "1.133.0" + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-certificatemanager": "0.0.0", + "@aws-cdk/aws-cloudfront-origins": "0.0.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/package.json b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/package.json index 7a3f5c3ba..ff35018ac 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-cognito-apigateway-lambda", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK Constructs for AWS Cognito to AWS API Gateway to AWS Lambda integration", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,17 +53,17 @@ } }, "dependencies": { - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-cognito": "1.133.0", - "@aws-cdk/aws-apigateway": "1.133.0", - "@aws-cdk/aws-logs": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-cognito": "0.0.0", + "@aws-cdk/aws-apigateway": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -82,14 +82,14 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-cognito": "1.133.0", - "@aws-cdk/aws-apigateway": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-cognito": "0.0.0", + "@aws-cdk/aws-apigateway": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0", - "@aws-cdk/aws-logs": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0" + "@aws-cdk/aws-logs": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda-elasticsearch-kibana/package.json b/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda-elasticsearch-kibana/package.json index 5ab05f13e..0138f8d1a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda-elasticsearch-kibana/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda-elasticsearch-kibana/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-dynamodb-stream-lambda-elasticsearch-kibana", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK Constructs for Amazon Dynamodb stream to AWS Lambda to AWS Elasticsearch with Kibana integration", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,21 +53,21 @@ } }, "dependencies": { - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-lambda-event-sources": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-cognito": "1.133.0", - "@aws-cdk/aws-elasticsearch": "1.133.0", - "@aws-cdk/aws-dynamodb": "1.133.0", - "@aws-cdk/aws-cloudwatch": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-sqs": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana": "1.133.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-lambda-event-sources": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-cognito": "0.0.0", + "@aws-cdk/aws-elasticsearch": "0.0.0", + "@aws-cdk/aws-dynamodb": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -86,18 +86,18 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-cognito": "1.133.0", - "@aws-cdk/aws-elasticsearch": "1.133.0", - "@aws-cdk/aws-dynamodb": "1.133.0", - "@aws-cdk/aws-cloudwatch": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana": "1.133.0", - "@aws-cdk/aws-lambda-event-sources": "1.133.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-cognito": "0.0.0", + "@aws-cdk/aws-elasticsearch": "0.0.0", + "@aws-cdk/aws-dynamodb": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana": "0.0.0", + "@aws-cdk/aws-lambda-event-sources": "0.0.0", "constructs": "^3.2.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-sqs": "1.133.0" + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/package.json b/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/package.json index 441fd489d..d26d9ddc0 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-dynamodb-stream-lambda", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK Constructs for AWS DynamoDB Stream to AWS Lambda integration.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,18 +53,18 @@ } }, "dependencies": { - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-lambda-event-sources": "1.133.0", - "@aws-cdk/aws-dynamodb": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-sqs": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-solutions-constructs/aws-dynamodbstreams-lambda": "1.133.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-lambda-event-sources": "0.0.0", + "@aws-cdk/aws-dynamodb": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-solutions-constructs/aws-dynamodbstreams-lambda": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -83,15 +83,15 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-dynamodb": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-solutions-constructs/aws-dynamodbstreams-lambda": "1.133.0", - "@aws-cdk/aws-lambda-event-sources": "1.133.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-dynamodb": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-solutions-constructs/aws-dynamodbstreams-lambda": "0.0.0", + "@aws-cdk/aws-lambda-event-sources": "0.0.0", "constructs": "^3.2.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-sqs": "1.133.0" + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/package.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/package.json index 80eae939e..aaa8d70d5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK Constructs for Amazon Dynamodb streams to AWS Lambda to AWS Elasticsearch with Kibana integration", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,22 +53,22 @@ } }, "dependencies": { - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-lambda-event-sources": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-cognito": "1.133.0", - "@aws-cdk/aws-elasticsearch": "1.133.0", - "@aws-cdk/aws-dynamodb": "1.133.0", - "@aws-cdk/aws-cloudwatch": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-sqs": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-solutions-constructs/aws-dynamodbstreams-lambda": "1.133.0", - "@aws-solutions-constructs/aws-lambda-elasticsearch-kibana": "1.133.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-lambda-event-sources": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-cognito": "0.0.0", + "@aws-cdk/aws-elasticsearch": "0.0.0", + "@aws-cdk/aws-dynamodb": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-solutions-constructs/aws-dynamodbstreams-lambda": "0.0.0", + "@aws-solutions-constructs/aws-lambda-elasticsearch-kibana": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -87,19 +87,19 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-cognito": "1.133.0", - "@aws-cdk/aws-elasticsearch": "1.133.0", - "@aws-cdk/aws-dynamodb": "1.133.0", - "@aws-cdk/aws-cloudwatch": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-solutions-constructs/aws-dynamodbstreams-lambda": "1.133.0", - "@aws-solutions-constructs/aws-lambda-elasticsearch-kibana": "1.133.0", - "@aws-cdk/aws-lambda-event-sources": "1.133.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-cognito": "0.0.0", + "@aws-cdk/aws-elasticsearch": "0.0.0", + "@aws-cdk/aws-dynamodb": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-solutions-constructs/aws-dynamodbstreams-lambda": "0.0.0", + "@aws-solutions-constructs/aws-lambda-elasticsearch-kibana": "0.0.0", + "@aws-cdk/aws-lambda-event-sources": "0.0.0", "constructs": "^3.2.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-sqs": "1.133.0" + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/package.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/package.json index d9bca2398..a5d7049e1 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-dynamodbstreams-lambda", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK Constructs for AWS DynamoDB Streams to AWS Lambda integration.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,17 +53,17 @@ } }, "dependencies": { - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-lambda-event-sources": "1.133.0", - "@aws-cdk/aws-dynamodb": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-sqs": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-lambda-event-sources": "0.0.0", + "@aws-cdk/aws-dynamodb": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -82,14 +82,14 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-dynamodb": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-cdk/aws-lambda-event-sources": "1.133.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-dynamodb": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-lambda-event-sources": "0.0.0", "constructs": "^3.2.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-sqs": "1.133.0" + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/package.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/package.json index 05684d785..c0a1cc6b0 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK Constructs for Amazon CloudWatch Events Rule to Amazon Kinesis Firehose to Amazon S3 integration.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,18 +53,18 @@ } }, "dependencies": { - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-kinesisfirehose": "1.133.0", - "@aws-cdk/aws-events": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-s3": "1.133.0", - "@aws-cdk/aws-logs": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-solutions-constructs/aws-kinesisfirehose-s3": "1.133.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kinesisfirehose": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-solutions-constructs/aws-kinesisfirehose-s3": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -83,15 +83,15 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-kinesisfirehose": "1.133.0", - "@aws-cdk/aws-events": "1.133.0", - "@aws-cdk/aws-s3": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-solutions-constructs/aws-kinesisfirehose-s3": "1.133.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kinesisfirehose": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-solutions-constructs/aws-kinesisfirehose-s3": "0.0.0", "constructs": "^3.2.0", - "@aws-cdk/aws-logs": "1.133.0" + "@aws-cdk/aws-logs": "0.0.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/package.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/package.json index c676a75dd..4102e4d78 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisstreams/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-eventbridge-kinesisstreams", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK Constructs for deploying Amazon CloudWatch Events Rule that invokes Amazon Kinesis Data Stream", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,16 +53,16 @@ } }, "dependencies": { - "@aws-cdk/aws-events": "1.133.0", - "@aws-cdk/aws-kinesis": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-cloudwatch": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-kinesis": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -81,12 +81,12 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-events": "1.133.0", - "@aws-cdk/aws-kinesis": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-cloudwatch": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-kinesis": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/package.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/package.json index 918c182cf..2545a60f9 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-eventbridge-lambda", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK Constructs for deploying AWS Events Rule that inveokes AWS Lambda", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,15 +53,15 @@ } }, "dependencies": { - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-events": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -80,11 +80,11 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-events": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/package.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/package.json index d3c699549..ccf42b6ac 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sns/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-eventbridge-sns", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK Constructs for deploying AWS Events Rule that invokes AWS SNS", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,16 +53,16 @@ } }, "dependencies": { - "@aws-cdk/aws-events": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-sns": "1.133.0", - "@aws-cdk/aws-kms": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -81,12 +81,12 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-sns": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-events": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-kms": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/package.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/package.json index 9eaddff79..91a7a8fbd 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-eventbridge-sqs", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK Constructs for deploying AWS Eventbridge that invokes AWS SQS", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,16 +53,16 @@ } }, "dependencies": { - "@aws-cdk/aws-events": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-sqs": "1.133.0", - "@aws-cdk/aws-kms": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -81,12 +81,12 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-sqs": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-events": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-kms": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/package.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/package.json index 6876bf465..20daf894f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-eventbridge-stepfunctions", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK Constructs for deploying AWS Events Rule that invokes AWS Step Functions", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,19 +53,19 @@ } }, "dependencies": { - "@aws-cdk/aws-stepfunctions": "1.133.0", - "@aws-cdk/aws-stepfunctions-tasks": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-events": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-logs": "1.133.0", - "@aws-cdk/aws-cloudwatch": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-stepfunctions": "0.0.0", + "@aws-cdk/aws-stepfunctions-tasks": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -84,16 +84,16 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-stepfunctions": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-events": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-stepfunctions": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-cloudwatch": "1.133.0", - "@aws-cdk/aws-stepfunctions-tasks": "1.133.0", - "@aws-cdk/aws-logs": "1.133.0" + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-stepfunctions-tasks": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/package.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/package.json index 7b7240964..9771a9460 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK Constructs for Amazon CloudWatch Events Rule to Amazon Kinesis Firehose to Amazon S3 integration.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,18 +53,18 @@ } }, "dependencies": { - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-kinesisfirehose": "1.133.0", - "@aws-cdk/aws-events": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-s3": "1.133.0", - "@aws-cdk/aws-logs": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3": "1.133.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kinesisfirehose": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -83,15 +83,15 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-kinesisfirehose": "1.133.0", - "@aws-cdk/aws-events": "1.133.0", - "@aws-cdk/aws-s3": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3": "1.133.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kinesisfirehose": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3": "0.0.0", "constructs": "^3.2.0", - "@aws-cdk/aws-logs": "1.133.0" + "@aws-cdk/aws-logs": "0.0.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/package.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/package.json index 03cf63f40..73403aff2 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisstreams/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-events-rule-kinesisstreams", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK Constructs for deploying Amazon CloudWatch Events Rule that invokes Amazon Kinesis Data Stream", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,17 +53,17 @@ } }, "dependencies": { - "@aws-cdk/aws-events": "1.133.0", - "@aws-cdk/aws-kinesis": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-cloudwatch": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-solutions-constructs/aws-eventbridge-kinesisstreams": "1.133.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-kinesis": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-solutions-constructs/aws-eventbridge-kinesisstreams": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -82,13 +82,13 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-events": "1.133.0", - "@aws-cdk/aws-kinesis": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-cloudwatch": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-solutions-constructs/aws-eventbridge-kinesisstreams": "1.133.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-kinesis": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-solutions-constructs/aws-eventbridge-kinesisstreams": "0.0.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/package.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/package.json index 96f48e565..7df3d90d8 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-events-rule-lambda", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK Constructs for deploying AWS Events Rule that inveokes AWS Lambda", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,16 +53,16 @@ } }, "dependencies": { - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-events": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-solutions-constructs/aws-eventbridge-lambda": "1.133.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-solutions-constructs/aws-eventbridge-lambda": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -81,12 +81,12 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-events": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-solutions-constructs/aws-eventbridge-lambda": "1.133.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-solutions-constructs/aws-eventbridge-lambda": "0.0.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/package.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/package.json index 2ada7a498..de23fae32 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-sns/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-events-rule-sns", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK Constructs for deploying AWS Events Rule that invokes AWS SNS", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,17 +53,17 @@ } }, "dependencies": { - "@aws-cdk/aws-events": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-sns": "1.133.0", - "@aws-cdk/aws-kms": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-solutions-constructs/aws-eventbridge-sns": "1.133.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-solutions-constructs/aws-eventbridge-sns": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -82,13 +82,13 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-sns": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-events": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-kms": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-solutions-constructs/aws-eventbridge-sns": "1.133.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-solutions-constructs/aws-eventbridge-sns": "0.0.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/package.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/package.json index 0ab33dbaa..3ebdb1efe 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-sqs/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-events-rule-sqs", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK Constructs for deploying AWS Events Rule that invokes AWS SQS", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,17 +53,17 @@ } }, "dependencies": { - "@aws-cdk/aws-events": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-sqs": "1.133.0", - "@aws-cdk/aws-kms": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-solutions-constructs/aws-eventbridge-sqs": "1.133.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-solutions-constructs/aws-eventbridge-sqs": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -82,13 +82,13 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-sqs": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-events": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-kms": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-solutions-constructs/aws-eventbridge-sqs": "1.133.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-solutions-constructs/aws-eventbridge-sqs": "0.0.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/package.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/package.json index 2e8eb9aad..e12d2594f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-events-rule-step-function", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK Constructs for deploying AWS Events Rule that invokes AWS Step Function", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,20 +53,20 @@ } }, "dependencies": { - "@aws-cdk/aws-stepfunctions": "1.133.0", - "@aws-cdk/aws-stepfunctions-tasks": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-events": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-logs": "1.133.0", - "@aws-cdk/aws-cloudwatch": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-solutions-constructs/aws-eventbridge-stepfunctions": "1.133.0", + "@aws-cdk/aws-stepfunctions": "0.0.0", + "@aws-cdk/aws-stepfunctions-tasks": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-solutions-constructs/aws-eventbridge-stepfunctions": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -85,17 +85,17 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-stepfunctions": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-events": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-stepfunctions": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-cloudwatch": "1.133.0", - "@aws-cdk/aws-stepfunctions-tasks": "1.133.0", - "@aws-cdk/aws-logs": "1.133.0", - "@aws-solutions-constructs/aws-eventbridge-stepfunctions": "1.133.0" + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-stepfunctions-tasks": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-solutions-constructs/aws-eventbridge-stepfunctions": "0.0.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/package.json b/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/package.json index 7b89c509b..74a7f34b6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-iot-kinesisfirehose-s3", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK Constructs for AWS IoT to AWS Kinesis Firehose to AWS S3 integration.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,18 +53,18 @@ } }, "dependencies": { - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-kinesisfirehose": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-iot": "1.133.0", - "@aws-cdk/aws-s3": "1.133.0", - "@aws-cdk/aws-logs": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-solutions-constructs/aws-kinesisfirehose-s3": "1.133.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kinesisfirehose": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-iot": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-solutions-constructs/aws-kinesisfirehose-s3": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -83,15 +83,15 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-kinesisfirehose": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-iot": "1.133.0", - "@aws-cdk/aws-s3": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-solutions-constructs/aws-kinesisfirehose-s3": "1.133.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kinesisfirehose": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-iot": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-solutions-constructs/aws-kinesisfirehose-s3": "0.0.0", "constructs": "^3.2.0", - "@aws-cdk/aws-logs": "1.133.0" + "@aws-cdk/aws-logs": "0.0.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-kinesisstreams/package.json b/source/patterns/@aws-solutions-constructs/aws-iot-kinesisstreams/package.json index 548d23381..5b1e434a8 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-kinesisstreams/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-kinesisstreams/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-iot-kinesisstreams", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK Constructs for AWS IoT to AWS Kinesis Data Stream.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,16 +53,16 @@ } }, "dependencies": { - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-kinesis": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-iot": "1.133.0", - "@aws-cdk/aws-cloudwatch": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kinesis": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-iot": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -81,12 +81,12 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-kinesis": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-iot": "1.133.0", - "@aws-cdk/aws-cloudwatch": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kinesis": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-iot": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/package.json b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/package.json index d6881cef1..4a66b032b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-iot-lambda-dynamodb", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK Constructs for AWS IoT to AWS Lambda to AWS DyanmoDB integration.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,17 +53,17 @@ } }, "dependencies": { - "@aws-cdk/aws-dynamodb": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-iot": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-solutions-constructs/aws-iot-lambda": "1.133.0", - "@aws-solutions-constructs/aws-lambda-dynamodb": "1.133.0", + "@aws-cdk/aws-dynamodb": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-iot": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-solutions-constructs/aws-iot-lambda": "0.0.0", + "@aws-solutions-constructs/aws-lambda-dynamodb": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -82,13 +82,13 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-dynamodb": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-iot": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-solutions-constructs/aws-iot-lambda": "1.133.0", - "@aws-solutions-constructs/aws-lambda-dynamodb": "1.133.0", + "@aws-cdk/aws-dynamodb": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-iot": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-solutions-constructs/aws-iot-lambda": "0.0.0", + "@aws-solutions-constructs/aws-lambda-dynamodb": "0.0.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/package.json b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/package.json index 60ed7bb46..927277d86 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-iot-lambda", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK Constructs for AWS IoT to AWS Lambda integration", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,15 +53,15 @@ } }, "dependencies": { - "@aws-cdk/aws-iot": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-iot": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -80,11 +80,11 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-iot": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", + "@aws-cdk/aws-iot": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-sqs/package.json b/source/patterns/@aws-solutions-constructs/aws-iot-sqs/package.json index d04e70c12..55057a1c7 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-sqs/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-sqs/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-iot-sqs", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK Constructs for AWS IoT to AWS SQS integration", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,16 +53,16 @@ } }, "dependencies": { - "@aws-cdk/aws-iot": "1.133.0", - "@aws-cdk/aws-sqs": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-kms": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-iot": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -81,12 +81,12 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-iot": "1.133.0", - "@aws-cdk/aws-sqs": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-kms": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-iot": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" } } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/package.json b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/package.json index b60e103ef..ea68718da 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK constructs for defining an interaction between an Amazon Kinesis Data Firehose delivery stream and (1) an Amazon S3 bucket, and (2) an Amazon Kinesis Data Analytics application.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,19 +53,19 @@ } }, "dependencies": { - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-kinesis": "1.133.0", - "@aws-cdk/aws-kinesisanalytics": "1.133.0", - "@aws-cdk/aws-kinesisfirehose": "1.133.0", - "@aws-cdk/aws-s3": "1.133.0", - "@aws-cdk/aws-logs": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-solutions-constructs/aws-kinesisfirehose-s3": "1.133.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kinesis": "0.0.0", + "@aws-cdk/aws-kinesisanalytics": "0.0.0", + "@aws-cdk/aws-kinesisfirehose": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-solutions-constructs/aws-kinesisfirehose-s3": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -84,16 +84,16 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-kinesis": "1.133.0", - "@aws-cdk/aws-kinesisanalytics": "1.133.0", - "@aws-cdk/aws-kinesisfirehose": "1.133.0", - "@aws-cdk/aws-s3": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-solutions-constructs/aws-kinesisfirehose-s3": "1.133.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kinesis": "0.0.0", + "@aws-cdk/aws-kinesisanalytics": "0.0.0", + "@aws-cdk/aws-kinesisfirehose": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-solutions-constructs/aws-kinesisfirehose-s3": "0.0.0", "constructs": "^3.2.0", - "@aws-cdk/aws-logs": "1.133.0" + "@aws-cdk/aws-logs": "0.0.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/package.json b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/package.json index ff5cd63c6..a5548b2b4 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-kinesisfirehose-s3", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK constructs for defining an interaction between an Amazon Kinesis Data Firehose delivery stream and an Amazon S3 bucket.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,17 +53,17 @@ } }, "dependencies": { - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-kinesisfirehose": "1.133.0", - "@aws-cdk/aws-s3": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-logs": "1.133.0", - "@aws-cdk/aws-kms": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kinesisfirehose": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -82,14 +82,14 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-kinesisfirehose": "1.133.0", - "@aws-cdk/aws-s3": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-logs": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kinesisfirehose": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0", - "@aws-cdk/aws-kms": "1.133.0" + "@aws-cdk/aws-kms": "0.0.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-gluejob/package.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-gluejob/package.json index 687e98663..021270c08 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-gluejob/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-gluejob/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-kinesisstreams-gluejob", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK Constructs for streaming data from AWS Kinesis Data Stream for Glue ETL custom Job processing", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,19 +53,19 @@ } }, "dependencies": { - "@aws-cdk/aws-glue": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-kinesis": "1.133.0", - "@aws-cdk/aws-s3": "1.133.0", - "@aws-cdk/aws-s3-assets": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-logs": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-cdk/aws-cloudwatch": "1.133.0", + "@aws-cdk/aws-glue": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kinesis": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-s3-assets": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -84,16 +84,16 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-glue": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-kinesis": "1.133.0", - "@aws-cdk/aws-s3": "1.133.0", - "@aws-cdk/aws-s3-assets": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-cdk/aws-cloudwatch": "1.133.0", + "@aws-cdk/aws-glue": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kinesis": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-s3-assets": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", "constructs": "^3.2.0", - "@aws-cdk/aws-logs": "1.133.0" + "@aws-cdk/aws-logs": "0.0.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/package.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/package.json index f0a85ed48..80e9ead5e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK constructs for defining an interaction between an Amazon Kinesis Data Stream (KDS), Amazon Kinesis Data Firehose (KDF) delivery stream and an Amazon S3 bucket.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,21 +53,21 @@ } }, "dependencies": { - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-kinesis": "1.133.0", - "@aws-cdk/aws-kinesisfirehose": "1.133.0", - "@aws-cdk/aws-s3": "1.133.0", - "@aws-cdk/aws-cloudwatch": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-logs": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-solutions-constructs/aws-kinesisfirehose-s3": "1.133.0", - "@aws-solutions-constructs/aws-kinesisstreams-lambda": "1.133.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kinesis": "0.0.0", + "@aws-cdk/aws-kinesisfirehose": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-solutions-constructs/aws-kinesisfirehose-s3": "0.0.0", + "@aws-solutions-constructs/aws-kinesisstreams-lambda": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -86,18 +86,18 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-kinesisfirehose": "1.133.0", - "@aws-cdk/aws-s3": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-logs": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kinesisfirehose": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0", - "@aws-cdk/aws-kinesis": "1.133.0", - "@aws-cdk/aws-cloudwatch": "1.133.0", - "@aws-solutions-constructs/aws-kinesisfirehose-s3": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-solutions-constructs/aws-kinesisstreams-lambda": "1.133.0" + "@aws-cdk/aws-kinesis": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-solutions-constructs/aws-kinesisfirehose-s3": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-solutions-constructs/aws-kinesisstreams-lambda": "0.0.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/package.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/package.json index 056b64c31..5336bc451 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-kinesisstreams-lambda", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK constructs for defining an interaction between an Amazon Kinesis Data Stream and an AWS Lambda function.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,19 +53,19 @@ } }, "dependencies": { - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-kinesis": "1.133.0", - "@aws-cdk/aws-kms": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-sqs": "1.133.0", - "@aws-cdk/aws-lambda-event-sources": "1.133.0", - "@aws-cdk/aws-cloudwatch": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kinesis": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/aws-lambda-event-sources": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -84,16 +84,16 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-kinesis": "1.133.0", - "@aws-cdk/aws-kms": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-lambda-event-sources": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kinesis": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-lambda-event-sources": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0", - "@aws-cdk/aws-sqs": "1.133.0", - "@aws-cdk/aws-cloudwatch": "1.133.0" + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/package.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/package.json index e255bea7b..24cfe6a00 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-lambda-dynamodb", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK Constructs for AWS Lambda to AWS DynamoDB integration.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,15 +53,15 @@ } }, "dependencies": { - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-dynamodb": "1.133.0", - "@aws-cdk/aws-ec2": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-dynamodb": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -80,11 +80,11 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-dynamodb": "1.133.0", - "@aws-cdk/aws-ec2": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-dynamodb": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/package.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/package.json index aba4d1595..a137c7aca 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-lambda-elasticsearch-kibana", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK Constructs for AWS Lambda to AWS Elasticsearch with Kibana integration", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,17 +53,17 @@ } }, "dependencies": { - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-cognito": "1.133.0", - "@aws-cdk/aws-elasticsearch": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-cloudwatch": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-cognito": "0.0.0", + "@aws-cdk/aws-elasticsearch": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -82,13 +82,13 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-cognito": "1.133.0", - "@aws-cdk/aws-elasticsearch": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-cloudwatch": "1.133.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-cognito": "0.0.0", + "@aws-cdk/aws-elasticsearch": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/package.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/package.json index d27fd8d50..d72053d5e 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-lambda-eventbridge", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK constructs for defining an interaction between an AWS Lambda function and an Amazon EventBridge.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,15 +53,15 @@ } }, "dependencies": { - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-events": "1.133.0", - "@aws-cdk/aws-ec2": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -80,12 +80,12 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0", - "@aws-cdk/aws-ec2": "1.133.0", - "@aws-cdk/aws-events": "1.133.0" + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-events": "0.0.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/package.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/package.json index 2504eb37f..158769d1a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-lambda-s3", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK constructs for defining an interaction between an AWS Lambda function and an Amazon S3 bucket.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,15 +53,15 @@ } }, "dependencies": { - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-s3": "1.133.0", - "@aws-cdk/aws-ec2": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -80,12 +80,12 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-s3": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0", - "@aws-cdk/aws-ec2": "1.133.0" + "@aws-cdk/aws-ec2": "0.0.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sagemakerendpoint/package.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sagemakerendpoint/package.json index e86a0e949..201505319 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sagemakerendpoint/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sagemakerendpoint/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-lambda-sagemakerendpoint", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK constructs for defining an interaction between an AWS Lambda function and an Amazon SageMaker inference endpoint.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,18 +53,18 @@ } }, "dependencies": { - "@aws-cdk/aws-ec2": "1.133.0", - "@aws-cdk/aws-s3": "1.133.0", - "@aws-cdk/aws-s3-assets": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-sagemaker": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-s3-assets": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-sagemaker": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -83,14 +83,14 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-ec2": "1.133.0", - "@aws-cdk/aws-s3": "1.133.0", - "@aws-cdk/aws-s3-assets": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-sagemaker": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-s3-assets": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-sagemaker": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/package.json b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/package.json index e66af8a01..5f0d058fe 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-lambda-secretsmanager", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK constructs for defining an interaction between an AWS Lambda function and AWS Secrets Manager.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,15 +53,15 @@ } }, "dependencies": { - "@aws-cdk/aws-ec2": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-secretsmanager": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-secretsmanager": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^24.0.23", "@types/node": "^10.3.0" }, @@ -71,11 +71,11 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-ec2": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-secretsmanager": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-secretsmanager": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/package.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/package.json index 47fb006a5..e8d4f1561 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-lambda-sns", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK constructs for defining an interaction between an AWS Lambda function and an Amazon SNS topic.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,16 +53,16 @@ } }, "dependencies": { - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-sns": "1.133.0", - "@aws-cdk/aws-kms": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-ec2": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -81,12 +81,12 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-sns": "1.133.0", - "@aws-cdk/aws-kms": "1.133.0", - "@aws-cdk/aws-ec2": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/package.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/package.json index efe2e3ba0..2782e0b13 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-lambda-sqs-lambda", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK construct that provisions (1) an AWS Lambda function that is configured to send messages to a queue; (2) an Amazon SQS queue; and (3) an AWS Lambda function configured to consume messages from the queue.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,18 +53,18 @@ } }, "dependencies": { - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-sqs": "1.133.0", - "@aws-cdk/aws-ec2": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-lambda-event-sources": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-solutions-constructs/aws-lambda-sqs": "1.133.0", - "@aws-solutions-constructs/aws-sqs-lambda": "1.133.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-lambda-event-sources": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-solutions-constructs/aws-lambda-sqs": "0.0.0", + "@aws-solutions-constructs/aws-sqs-lambda": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -83,14 +83,14 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-sqs": "1.133.0", - "@aws-cdk/aws-ec2": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-lambda-event-sources": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-solutions-constructs/aws-lambda-sqs": "1.133.0", - "@aws-solutions-constructs/aws-sqs-lambda": "1.133.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-lambda-event-sources": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-solutions-constructs/aws-lambda-sqs": "0.0.0", + "@aws-solutions-constructs/aws-sqs-lambda": "0.0.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/package.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/package.json index dd8c92534..e7ffb2b2d 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-lambda-sqs", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK constructs for defining an interaction between an AWS Lambda function and an Amazon SQS queue.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,15 +53,15 @@ } }, "dependencies": { - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-sqs": "1.133.0", - "@aws-cdk/aws-ec2": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -80,12 +80,12 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-sqs": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0", - "@aws-cdk/aws-ec2": "1.133.0" + "@aws-cdk/aws-ec2": "0.0.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/package.json b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/package.json index 053b955bc..1a43288b1 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-lambda-ssmstringparameter", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK constructs for defining an interaction between an AWS Lambda function and AWS Systems Manager Parameter Store String parameter", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,15 +53,15 @@ } }, "dependencies": { - "@aws-cdk/aws-ec2": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-ssm": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-ssm": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^24.0.23", "@types/node": "^10.3.0" }, @@ -71,11 +71,11 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-ec2": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-ssm": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-ssm": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/package.json b/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/package.json index 989e7b94a..b722eb28b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-lambda-step-function", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK constructs for defining an interaction between an AWS Lambda function and an AWS Step Function.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,18 +53,18 @@ } }, "dependencies": { - "@aws-cdk/aws-cloudwatch": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-stepfunctions": "1.133.0", - "@aws-cdk/aws-logs": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-ec2": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-solutions-constructs/aws-lambda-stepfunctions": "1.133.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-stepfunctions": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-solutions-constructs/aws-lambda-stepfunctions": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0", "eslint-plugin-import": "^2.22.0" @@ -84,15 +84,15 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-cloudwatch": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-stepfunctions": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-ec2": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-solutions-constructs/aws-lambda-stepfunctions": "1.133.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-stepfunctions": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-solutions-constructs/aws-lambda-stepfunctions": "0.0.0", "constructs": "^3.2.0", - "@aws-cdk/aws-logs": "1.133.0" + "@aws-cdk/aws-logs": "0.0.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/package.json b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/package.json index 09499b5d3..15630c4ad 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-lambda-stepfunctions", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK constructs for defining an interaction between an AWS Lambda function and an AWS Step Function.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,17 +53,17 @@ } }, "dependencies": { - "@aws-cdk/aws-cloudwatch": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-stepfunctions": "1.133.0", - "@aws-cdk/aws-logs": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-ec2": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-stepfunctions": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0", "eslint-plugin-import": "^2.22.0" @@ -83,13 +83,13 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-cloudwatch": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-stepfunctions": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-ec2": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-stepfunctions": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0", - "@aws-cdk/aws-logs": "1.133.0" + "@aws-cdk/aws-logs": "0.0.0" } } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-route53-alb/package.json b/source/patterns/@aws-solutions-constructs/aws-route53-alb/package.json index 099329b1e..b8eb2c59e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-route53-alb/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-route53-alb/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-route53-alb", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK constructs for defining an interaction between an Amazon Route53 domain and an Application Load Balancer.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,25 +53,25 @@ } }, "dependencies": { - "@aws-cdk/aws-ec2": "1.133.0", - "@aws-cdk/aws-elasticloadbalancingv2": "1.133.0", - "@aws-cdk/aws-route53": "1.133.0", - "@aws-cdk/aws-route53-targets": "1.133.0", - "@aws-cdk/aws-s3": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-elasticloadbalancingv2": "0.0.0", + "@aws-cdk/aws-route53": "0.0.0", + "@aws-cdk/aws-route53-targets": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", - "@aws-cdk/aws-ec2": "1.133.0", - "@aws-cdk/aws-elasticloadbalancingv2": "1.133.0", - "@aws-cdk/aws-route53": "1.133.0", - "@aws-cdk/aws-route53-targets": "1.133.0", - "@aws-cdk/aws-s3": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-elasticloadbalancingv2": "0.0.0", + "@aws-cdk/aws-route53": "0.0.0", + "@aws-cdk/aws-route53-targets": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "3.2.0", "@types/node": "^10.3.0" }, @@ -90,12 +90,12 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-ec2": "1.133.0", - "@aws-cdk/aws-elasticloadbalancingv2": "1.133.0", - "@aws-cdk/aws-route53": "1.133.0", - "@aws-cdk/aws-route53-targets": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-elasticloadbalancingv2": "0.0.0", + "@aws-cdk/aws-route53": "0.0.0", + "@aws-cdk/aws-route53-targets": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/package.json b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/package.json index c7418ed97..480dcb484 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-s3-lambda", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK Constructs for AWS S3 to AWS Lambda integration", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,17 +53,17 @@ } }, "dependencies": { - "@aws-cdk/aws-s3": "1.133.0", - "@aws-cdk/aws-s3-notifications": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-lambda-event-sources": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-s3-notifications": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-lambda-event-sources": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -82,13 +82,13 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-s3": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-cdk/aws-lambda-event-sources": "1.133.0", - "@aws-cdk/aws-s3-notifications": "1.133.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-lambda-event-sources": "0.0.0", + "@aws-cdk/aws-s3-notifications": "0.0.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-sqs/package.json b/source/patterns/@aws-solutions-constructs/aws-s3-sqs/package.json index 2307b8dae..70f57f3d7 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-sqs/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-sqs/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-s3-sqs", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK constructs for defining an interaction between an Amazon S3 bucket and an Amazon SQS queue.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,18 +53,18 @@ } }, "dependencies": { - "@aws-cdk/aws-s3": "1.133.0", - "@aws-cdk/aws-s3-notifications": "1.133.0", - "@aws-cdk/aws-sqs": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-kms": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-s3-notifications": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -83,14 +83,14 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-s3": "1.133.0", - "@aws-cdk/aws-s3-notifications": "1.133.0", - "@aws-cdk/aws-sqs": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-kms": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-s3-notifications": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-step-function/package.json b/source/patterns/@aws-solutions-constructs/aws-s3-step-function/package.json index 223d86b6e..656735e43 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-step-function/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-step-function/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-s3-step-function", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK Constructs for AWS S3 to AWS Step Function integration", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,23 +53,23 @@ } }, "dependencies": { - "@aws-cdk/aws-stepfunctions": "1.133.0", - "@aws-cdk/aws-stepfunctions-tasks": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-s3": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-cloudwatch": "1.133.0", - "@aws-cdk/aws-cloudtrail": "1.133.0", - "@aws-cdk/aws-events": "1.133.0", - "@aws-cdk/aws-logs": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-solutions-constructs/aws-events-rule-step-function": "1.133.0", - "@aws-solutions-constructs/aws-s3-stepfunctions": "1.133.0", + "@aws-cdk/aws-stepfunctions": "0.0.0", + "@aws-cdk/aws-stepfunctions-tasks": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-cloudtrail": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-solutions-constructs/aws-events-rule-step-function": "0.0.0", + "@aws-solutions-constructs/aws-s3-stepfunctions": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -88,20 +88,20 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-stepfunctions": "1.133.0", - "@aws-cdk/aws-stepfunctions-tasks": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-s3": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-cloudwatch": "1.133.0", - "@aws-cdk/aws-cloudtrail": "1.133.0", - "@aws-cdk/aws-events": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-solutions-constructs/aws-events-rule-step-function": "1.133.0", - "@aws-solutions-constructs/aws-s3-stepfunctions": "1.133.0", + "@aws-cdk/aws-stepfunctions": "0.0.0", + "@aws-cdk/aws-stepfunctions-tasks": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-cloudtrail": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-solutions-constructs/aws-events-rule-step-function": "0.0.0", + "@aws-solutions-constructs/aws-s3-stepfunctions": "0.0.0", "constructs": "^3.2.0", - "@aws-cdk/aws-logs": "1.133.0" + "@aws-cdk/aws-logs": "0.0.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/package.json b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/package.json index fedd204f7..9eedf5a3e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-s3-stepfunctions", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK Constructs for AWS S3 to AWS Step Functions integration", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,22 +53,22 @@ } }, "dependencies": { - "@aws-cdk/aws-stepfunctions": "1.133.0", - "@aws-cdk/aws-stepfunctions-tasks": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-s3": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-cloudwatch": "1.133.0", - "@aws-cdk/aws-cloudtrail": "1.133.0", - "@aws-cdk/aws-events": "1.133.0", - "@aws-cdk/aws-logs": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-solutions-constructs/aws-eventbridge-stepfunctions": "1.133.0", + "@aws-cdk/aws-stepfunctions": "0.0.0", + "@aws-cdk/aws-stepfunctions-tasks": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-cloudtrail": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-solutions-constructs/aws-eventbridge-stepfunctions": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -87,19 +87,19 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-stepfunctions": "1.133.0", - "@aws-cdk/aws-stepfunctions-tasks": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-s3": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-cloudwatch": "1.133.0", - "@aws-cdk/aws-cloudtrail": "1.133.0", - "@aws-cdk/aws-events": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-solutions-constructs/aws-eventbridge-stepfunctions": "1.133.0", + "@aws-cdk/aws-stepfunctions": "0.0.0", + "@aws-cdk/aws-stepfunctions-tasks": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-cloudtrail": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-solutions-constructs/aws-eventbridge-stepfunctions": "0.0.0", "constructs": "^3.2.0", - "@aws-cdk/aws-logs": "1.133.0" + "@aws-cdk/aws-logs": "0.0.0" }, "keywords": [ "aws", diff --git a/source/patterns/@aws-solutions-constructs/aws-sns-lambda/package.json b/source/patterns/@aws-solutions-constructs/aws-sns-lambda/package.json index 4b2ea1f08..d6f90e869 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sns-lambda/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-sns-lambda/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-sns-lambda", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK Constructs for AWS SNS to AWS Lambda integration", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,17 +53,17 @@ } }, "dependencies": { - "@aws-cdk/aws-sns": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-lambda-event-sources": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-kms": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-lambda-event-sources": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -82,13 +82,13 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-sns": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-lambda-event-sources": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-cdk/aws-kms": "1.133.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-lambda-event-sources": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-sns-sqs/package.json b/source/patterns/@aws-solutions-constructs/aws-sns-sqs/package.json index 931ddd013..badacbc09 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sns-sqs/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-sns-sqs/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-sns-sqs", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK constructs for defining an interaction between an Amazon SNS topic and an Amazon SQS queue.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,17 +53,17 @@ } }, "dependencies": { - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-sns": "1.133.0", - "@aws-cdk/aws-sqs": "1.133.0", - "@aws-cdk/aws-sns-subscriptions": "1.133.0", - "@aws-cdk/aws-kms": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/aws-sns-subscriptions": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -82,13 +82,13 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-sns": "1.133.0", - "@aws-cdk/aws-sqs": "1.133.0", - "@aws-cdk/aws-sns-subscriptions": "1.133.0", - "@aws-cdk/aws-kms": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/aws-sns-subscriptions": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/package.json b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/package.json index 7fec6f690..85f830aa7 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-sqs-lambda", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK constructs for defining an interaction between an Amazon SQS queue and an AWS Lambda function.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,16 +53,16 @@ } }, "dependencies": { - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-lambda-event-sources": "1.133.0", - "@aws-cdk/aws-sqs": "1.133.0", - "@aws-cdk/aws-kms": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-lambda-event-sources": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -81,12 +81,12 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-lambda-event-sources": "1.133.0", - "@aws-cdk/aws-sqs": "1.133.0", - "@aws-cdk/aws-kms": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-lambda-event-sources": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-alb/package.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-alb/package.json index ab257a209..5ec1d243b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-alb/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-alb/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-wafwebacl-alb", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK constructs for defining an AWS web WAF connected to an Application Load Balancer.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,17 +53,17 @@ } }, "dependencies": { - "@aws-cdk/aws-autoscaling": "1.133.0", - "@aws-cdk/aws-ec2": "1.133.0", - "@aws-cdk/aws-elasticloadbalancingv2": "1.133.0", - "@aws-cdk/aws-wafv2": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-solutions-constructs/aws-route53-alb": "1.133.0", + "@aws-cdk/aws-autoscaling": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-elasticloadbalancingv2": "0.0.0", + "@aws-cdk/aws-wafv2": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-solutions-constructs/aws-route53-alb": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -82,13 +82,13 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-autoscaling": "1.133.0", - "@aws-cdk/aws-ec2": "1.133.0", - "@aws-cdk/aws-elasticloadbalancingv2": "1.133.0", - "@aws-cdk/aws-wafv2": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-solutions-constructs/aws-route53-alb": "1.133.0", + "@aws-cdk/aws-autoscaling": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-elasticloadbalancingv2": "0.0.0", + "@aws-cdk/aws-wafv2": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-solutions-constructs/aws-route53-alb": "0.0.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/package.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/package.json index 71997133c..97e94b6b9 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-wafwebacl-apigateway", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK constructs for defining an AWS web WAF connected to Amazon API Gateway REST API.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,24 +53,24 @@ } }, "dependencies": { - "@aws-cdk/aws-apigateway": "1.133.0", - "@aws-cdk/aws-autoscaling": "1.133.0", - "@aws-cdk/aws-ec2": "1.133.0", - "@aws-cdk/aws-elasticloadbalancingv2": "1.133.0", - "@aws-cdk/aws-wafv2": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-solutions-constructs/aws-apigateway-lambda": "1.133.0", - "@aws-solutions-constructs/aws-apigateway-dynamodb": "1.133.0", - "@aws-solutions-constructs/aws-apigateway-iot": "1.133.0", - "@aws-solutions-constructs/aws-apigateway-kinesisstreams": "1.133.0", - "@aws-solutions-constructs/aws-apigateway-sagemakerendpoint": "1.133.0", - "@aws-solutions-constructs/aws-apigateway-sqs": "1.133.0", + "@aws-cdk/aws-apigateway": "0.0.0", + "@aws-cdk/aws-autoscaling": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-elasticloadbalancingv2": "0.0.0", + "@aws-cdk/aws-wafv2": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-solutions-constructs/aws-apigateway-lambda": "0.0.0", + "@aws-solutions-constructs/aws-apigateway-dynamodb": "0.0.0", + "@aws-solutions-constructs/aws-apigateway-iot": "0.0.0", + "@aws-solutions-constructs/aws-apigateway-kinesisstreams": "0.0.0", + "@aws-solutions-constructs/aws-apigateway-sagemakerendpoint": "0.0.0", + "@aws-solutions-constructs/aws-apigateway-sqs": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -89,20 +89,20 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-apigateway": "1.133.0", - "@aws-cdk/aws-autoscaling": "1.133.0", - "@aws-cdk/aws-ec2": "1.133.0", - "@aws-cdk/aws-elasticloadbalancingv2": "1.133.0", - "@aws-cdk/aws-wafv2": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-solutions-constructs/aws-apigateway-lambda": "1.133.0", - "@aws-solutions-constructs/aws-apigateway-dynamodb": "1.133.0", - "@aws-solutions-constructs/aws-apigateway-iot": "1.133.0", - "@aws-solutions-constructs/aws-apigateway-kinesisstreams": "1.133.0", - "@aws-solutions-constructs/aws-apigateway-sagemakerendpoint": "1.133.0", - "@aws-solutions-constructs/aws-apigateway-sqs": "1.133.0", + "@aws-cdk/aws-apigateway": "0.0.0", + "@aws-cdk/aws-autoscaling": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-elasticloadbalancingv2": "0.0.0", + "@aws-cdk/aws-wafv2": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-solutions-constructs/aws-apigateway-lambda": "0.0.0", + "@aws-solutions-constructs/aws-apigateway-dynamodb": "0.0.0", + "@aws-solutions-constructs/aws-apigateway-iot": "0.0.0", + "@aws-solutions-constructs/aws-apigateway-kinesisstreams": "0.0.0", + "@aws-solutions-constructs/aws-apigateway-sagemakerendpoint": "0.0.0", + "@aws-solutions-constructs/aws-apigateway-sqs": "0.0.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/package.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/package.json index cf2b1ef59..16c3365e7 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-wafwebacl-cloudfront", - "version": "1.133.0", + "version": "0.0.0", "description": "CDK constructs for defining an AWS web WAF connected to Amazon CloudFront.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,20 +53,20 @@ } }, "dependencies": { - "@aws-cdk/aws-cloudfront": "1.133.0", - "@aws-cdk/aws-cloudfront-origins": "1.133.0", - "@aws-cdk/aws-s3": "1.133.0", - "@aws-cdk/aws-wafv2": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-solutions-constructs/aws-cloudfront-apigateway-lambda": "1.133.0", - "@aws-solutions-constructs/aws-cloudfront-s3": "1.133.0", - "@aws-solutions-constructs/aws-cloudfront-mediastore": "1.133.0", + "@aws-cdk/aws-cloudfront": "0.0.0", + "@aws-cdk/aws-cloudfront-origins": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-wafv2": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-solutions-constructs/aws-cloudfront-apigateway-lambda": "0.0.0", + "@aws-solutions-constructs/aws-cloudfront-s3": "0.0.0", + "@aws-solutions-constructs/aws-cloudfront-mediastore": "0.0.0", "constructs": "^3.2.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -85,16 +85,16 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-cloudfront": "1.133.0", - "@aws-cdk/aws-cloudfront-origins": "1.133.0", - "@aws-cdk/aws-s3": "1.133.0", - "@aws-cdk/aws-wafv2": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-solutions-constructs/aws-cloudfront-apigateway-lambda": "1.133.0", - "@aws-solutions-constructs/aws-cloudfront-s3": "1.133.0", - "@aws-solutions-constructs/aws-cloudfront-mediastore": "1.133.0", + "@aws-cdk/aws-cloudfront": "0.0.0", + "@aws-cdk/aws-cloudfront-origins": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-wafv2": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-solutions-constructs/aws-cloudfront-apigateway-lambda": "0.0.0", + "@aws-solutions-constructs/aws-cloudfront-s3": "0.0.0", + "@aws-solutions-constructs/aws-cloudfront-mediastore": "0.0.0", "constructs": "^3.2.0" }, "keywords": [ diff --git a/source/patterns/@aws-solutions-constructs/core/package.json b/source/patterns/@aws-solutions-constructs/core/package.json index 2a3320c37..a8cbe8524 100644 --- a/source/patterns/@aws-solutions-constructs/core/package.json +++ b/source/patterns/@aws-solutions-constructs/core/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/core", - "version": "1.133.0", + "version": "0.0.0", "description": "Core CDK Construct for patterns library", "main": "index.js", "types": "index.ts", @@ -52,40 +52,40 @@ } }, "dependencies": { - "@aws-cdk/aws-cloudfront": "1.133.0", - "@aws-cdk/aws-cloudfront-origins": "1.133.0", - "@aws-cdk/aws-dynamodb": "1.133.0", - "@aws-cdk/aws-elasticloadbalancingv2": "1.133.0", - "@aws-cdk/aws-elasticloadbalancingv2-targets": "1.133.0", - "@aws-cdk/aws-glue": "1.133.0", - "@aws-cdk/aws-iot": "1.133.0", - "@aws-cdk/aws-kinesis": "1.133.0", - "@aws-cdk/aws-kinesisanalytics": "1.133.0", - "@aws-cdk/aws-kinesisfirehose": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-lambda-event-sources": "1.133.0", - "@aws-cdk/aws-logs": "1.133.0", - "@aws-cdk/aws-s3": "1.133.0", - "@aws-cdk/aws-s3-notifications": "1.133.0", - "@aws-cdk/aws-sns": "1.133.0", - "@aws-cdk/aws-sqs": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-apigateway": "1.133.0", - "@aws-cdk/aws-kms": "1.133.0", - "@aws-cdk/aws-events": "1.133.0", - "@aws-cdk/aws-cognito": "1.133.0", - "@aws-cdk/aws-elasticsearch": "1.133.0", - "@aws-cdk/aws-cloudwatch": "1.133.0", - "@aws-cdk/aws-stepfunctions": "1.133.0", - "@aws-cdk/aws-certificatemanager": "1.133.0", - "@aws-cdk/aws-sagemaker": "1.133.0", - "@aws-cdk/aws-ec2": "1.133.0", - "@aws-cdk/aws-mediastore": "1.133.0", - "@aws-cdk/aws-s3-assets": "1.133.0", - "@aws-cdk/aws-secretsmanager": "1.133.0", - "@aws-cdk/aws-ssm": "1.133.0", - "@aws-cdk/aws-wafv2": "1.133.0", + "@aws-cdk/aws-cloudfront": "0.0.0", + "@aws-cdk/aws-cloudfront-origins": "0.0.0", + "@aws-cdk/aws-dynamodb": "0.0.0", + "@aws-cdk/aws-elasticloadbalancingv2": "0.0.0", + "@aws-cdk/aws-elasticloadbalancingv2-targets": "0.0.0", + "@aws-cdk/aws-glue": "0.0.0", + "@aws-cdk/aws-iot": "0.0.0", + "@aws-cdk/aws-kinesis": "0.0.0", + "@aws-cdk/aws-kinesisanalytics": "0.0.0", + "@aws-cdk/aws-kinesisfirehose": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-lambda-event-sources": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-s3-notifications": "0.0.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-apigateway": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-cognito": "0.0.0", + "@aws-cdk/aws-elasticsearch": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-stepfunctions": "0.0.0", + "@aws-cdk/aws-certificatemanager": "0.0.0", + "@aws-cdk/aws-sagemaker": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-mediastore": "0.0.0", + "@aws-cdk/aws-s3-assets": "0.0.0", + "@aws-cdk/aws-secretsmanager": "0.0.0", + "@aws-cdk/aws-ssm": "0.0.0", + "@aws-cdk/aws-wafv2": "0.0.0", "deep-diff": "^1.0.2", "deepmerge": "^4.0.0", "npmlog": "^4.1.2" @@ -93,7 +93,7 @@ "devDependencies": { "@types/deep-diff": "^1.0.0", "@types/npmlog": "^4.1.2", - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -117,37 +117,37 @@ "deep-diff" ], "peerDependencies": { - "@aws-cdk/aws-cloudfront": "1.133.0", - "@aws-cdk/aws-dynamodb": "1.133.0", - "@aws-cdk/aws-iot": "1.133.0", - "@aws-cdk/aws-kinesis": "1.133.0", - "@aws-cdk/aws-kinesisanalytics": "1.133.0", - "@aws-cdk/aws-kinesisfirehose": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-lambda-event-sources": "1.133.0", - "@aws-cdk/aws-logs": "1.133.0", - "@aws-cdk/aws-s3": "1.133.0", - "@aws-cdk/aws-s3-notifications": "1.133.0", - "@aws-cdk/aws-sns": "1.133.0", - "@aws-cdk/aws-sqs": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-apigateway": "1.133.0", - "@aws-cdk/aws-kms": "1.133.0", - "@aws-cdk/aws-events": "1.133.0", - "@aws-cdk/aws-cognito": "1.133.0", - "@aws-cdk/aws-elasticsearch": "1.133.0", - "@aws-cdk/aws-cloudwatch": "1.133.0", - "@aws-cdk/aws-stepfunctions": "1.133.0", - "@aws-cdk/aws-cloudfront-origins": "1.133.0", - "@aws-cdk/aws-certificatemanager": "1.133.0", - "@aws-cdk/aws-sagemaker": "1.133.0", - "@aws-cdk/aws-ec2": "1.133.0", - "@aws-cdk/aws-mediastore": "1.133.0", - "@aws-cdk/aws-glue": "1.133.0", - "@aws-cdk/aws-s3-assets": "1.133.0", - "@aws-cdk/aws-secretsmanager": "1.133.0", - "@aws-cdk/aws-ssm": "1.133.0", - "@aws-cdk/aws-wafv2": "1.133.0" + "@aws-cdk/aws-cloudfront": "0.0.0", + "@aws-cdk/aws-dynamodb": "0.0.0", + "@aws-cdk/aws-iot": "0.0.0", + "@aws-cdk/aws-kinesis": "0.0.0", + "@aws-cdk/aws-kinesisanalytics": "0.0.0", + "@aws-cdk/aws-kinesisfirehose": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-lambda-event-sources": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/aws-s3-notifications": "0.0.0", + "@aws-cdk/aws-sns": "0.0.0", + "@aws-cdk/aws-sqs": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-apigateway": "0.0.0", + "@aws-cdk/aws-kms": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-cognito": "0.0.0", + "@aws-cdk/aws-elasticsearch": "0.0.0", + "@aws-cdk/aws-cloudwatch": "0.0.0", + "@aws-cdk/aws-stepfunctions": "0.0.0", + "@aws-cdk/aws-cloudfront-origins": "0.0.0", + "@aws-cdk/aws-certificatemanager": "0.0.0", + "@aws-cdk/aws-sagemaker": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-mediastore": "0.0.0", + "@aws-cdk/aws-glue": "0.0.0", + "@aws-cdk/aws-s3-assets": "0.0.0", + "@aws-cdk/aws-secretsmanager": "0.0.0", + "@aws-cdk/aws-ssm": "0.0.0", + "@aws-cdk/aws-wafv2": "0.0.0" } } \ No newline at end of file diff --git a/source/tools/aws-cdk-migration/package.json b/source/tools/aws-cdk-migration/package.json index 5663fc042..551905520 100644 --- a/source/tools/aws-cdk-migration/package.json +++ b/source/tools/aws-cdk-migration/package.json @@ -1,7 +1,7 @@ { "name": "aws-cdk-migration", "private": true, - "version": "1.133.0", + "version": "0.0.0", "description": "Rewrites typescript 'import' statements from @aws-cdk/xxx to aws-cdk-lib", "bin": { "rewrite-imports-v2": "bin/rewrite-imports-v2" diff --git a/source/tools/cdk-integ-tools/package.json b/source/tools/cdk-integ-tools/package.json index 464a663e6..4b9e5f322 100644 --- a/source/tools/cdk-integ-tools/package.json +++ b/source/tools/cdk-integ-tools/package.json @@ -1,7 +1,7 @@ { "name": "cdk-integ-tools", "private": true, - "version": "1.133.0", + "version": "0.0.0", "description": "Package with integration test scripts for CDK packages", "main": "index.js", "repository": { @@ -32,10 +32,10 @@ "typescript": "~3.9.7" }, "dependencies": { - "@aws-cdk/cloudformation-diff": "1.133.0", - "@aws-cdk/cx-api": "1.133.0", - "@aws-cdk/assert": "1.133.0", - "aws-cdk": "1.133.0", + "@aws-cdk/cloudformation-diff": "0.0.0", + "@aws-cdk/cx-api": "0.0.0", + "@aws-cdk/assert": "0.0.0", + "aws-cdk": "0.0.0", "fs-extra": "^9.0.1", "yargs": "^16.1.1", "deepmerge": "^4.0.0" diff --git a/source/use_cases/aws-custom-glue-etl/package.json b/source/use_cases/aws-custom-glue-etl/package.json index daa96a6c4..42351536d 100644 --- a/source/use_cases/aws-custom-glue-etl/package.json +++ b/source/use_cases/aws-custom-glue-etl/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-cust0m-glue-etl", - "version": "1.133.0", + "version": "0.0.0", "description": "Use case pattern for creating a custom ETL job in AWS Glue.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -28,18 +28,18 @@ "build+lint+test": "npm run build && npm run lint && npm test && npm run integ-assert" }, "dependencies": { - "@aws-cdk/aws-kinesis": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/aws-kinesisstreams-gluejob": "1.133.0", - "@aws-cdk/aws-logs": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-cdk/aws-glue": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-s3-assets": "1.133.0", + "@aws-cdk/aws-kinesis": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/aws-kinesisstreams-gluejob": "0.0.0", + "@aws-cdk/aws-logs": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-glue": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-s3-assets": "0.0.0", "source-map-support": "^0.5.16" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^24.9.1", "@types/node": "^10.3.0" }, diff --git a/source/use_cases/aws-restaurant-management-demo/lib/lambda/service-staff/create-order/package.json b/source/use_cases/aws-restaurant-management-demo/lib/lambda/service-staff/create-order/package.json index 02a6279b4..1327859b7 100644 --- a/source/use_cases/aws-restaurant-management-demo/lib/lambda/service-staff/create-order/package.json +++ b/source/use_cases/aws-restaurant-management-demo/lib/lambda/service-staff/create-order/package.json @@ -1,6 +1,6 @@ { "name": "create-order", - "version": "1.133.0", + "version": "0.0.0", "description": "", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" diff --git a/source/use_cases/aws-restaurant-management-demo/package.json b/source/use_cases/aws-restaurant-management-demo/package.json index 21f6e0653..bc88c525e 100644 --- a/source/use_cases/aws-restaurant-management-demo/package.json +++ b/source/use_cases/aws-restaurant-management-demo/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-restaurant-management-demo", - "version": "1.133.0", + "version": "0.0.0", "description": "Use case pattern for deploying a complex business system and reference architecture.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -29,7 +29,7 @@ "build+lint+test": "npm run build && npm run lint && npm test && npm run integ-assert" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -39,23 +39,23 @@ ] }, "dependencies": { - "@aws-cdk/aws-apigateway": "1.133.0", - "@aws-cdk/aws-dynamodb": "1.133.0", - "@aws-cdk/aws-ec2": "1.133.0", - "@aws-cdk/aws-events": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-ssm": "1.133.0", - "@aws-cdk/aws-redshift": "1.133.0", - "@aws-cdk/aws-stepfunctions": "1.133.0", - "@aws-cdk/aws-stepfunctions-tasks": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/aws-cognito-apigateway-lambda": "1.133.0", - "@aws-solutions-constructs/aws-events-rule-lambda": "1.133.0", - "@aws-solutions-constructs/aws-lambda-dynamodb": "1.133.0", - "@aws-solutions-constructs/aws-lambda-s3": "1.133.0", - "@aws-solutions-constructs/aws-lambda-sns": "1.133.0", - "@aws-solutions-constructs/aws-lambda-step-function": "1.133.0", + "@aws-cdk/aws-apigateway": "0.0.0", + "@aws-cdk/aws-dynamodb": "0.0.0", + "@aws-cdk/aws-ec2": "0.0.0", + "@aws-cdk/aws-events": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-ssm": "0.0.0", + "@aws-cdk/aws-redshift": "0.0.0", + "@aws-cdk/aws-stepfunctions": "0.0.0", + "@aws-cdk/aws-stepfunctions-tasks": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/aws-cognito-apigateway-lambda": "0.0.0", + "@aws-solutions-constructs/aws-events-rule-lambda": "0.0.0", + "@aws-solutions-constructs/aws-lambda-dynamodb": "0.0.0", + "@aws-solutions-constructs/aws-lambda-s3": "0.0.0", + "@aws-solutions-constructs/aws-lambda-sns": "0.0.0", + "@aws-solutions-constructs/aws-lambda-step-function": "0.0.0", "source-map-support": "^0.5.16", "typescript": "^4.2.4" } diff --git a/source/use_cases/aws-s3-static-website/package.json b/source/use_cases/aws-s3-static-website/package.json index 7250bbb17..1deb95476 100644 --- a/source/use_cases/aws-s3-static-website/package.json +++ b/source/use_cases/aws-s3-static-website/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-s3-static-website", - "version": "1.133.0", + "version": "0.0.0", "description": "Use case pattern for deploying a S3 static website.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -28,19 +28,19 @@ "build+lint+test": "npm run build && npm run lint && npm test && npm run integ-assert" }, "dependencies": { - "@aws-solutions-constructs/aws-cloudfront-s3": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-cloudfront": "1.133.0", - "@aws-cdk/aws-s3": "1.133.0", - "@aws-cdk/custom-resources": "1.133.0", - "@aws-cdk/aws-cloudformation": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-solutions-constructs/aws-cloudfront-s3": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-cloudfront": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/custom-resources": "0.0.0", + "@aws-cdk/aws-cloudformation": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "source-map-support": "^0.5.16" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, diff --git a/source/use_cases/aws-serverless-image-handler/lib/lambda/image-handler/package.json b/source/use_cases/aws-serverless-image-handler/lib/lambda/image-handler/package.json index 7fba45c2f..ff443f48d 100755 --- a/source/use_cases/aws-serverless-image-handler/lib/lambda/image-handler/package.json +++ b/source/use_cases/aws-serverless-image-handler/lib/lambda/image-handler/package.json @@ -5,7 +5,7 @@ "author": { "name": "aws-solutions-builder" }, - "version": "1.133.0", + "version": "0.0.0", "private": true, "dependencies": { "sharp": "^0.23.4", diff --git a/source/use_cases/aws-serverless-image-handler/package.json b/source/use_cases/aws-serverless-image-handler/package.json index e8814e291..6eab656cf 100644 --- a/source/use_cases/aws-serverless-image-handler/package.json +++ b/source/use_cases/aws-serverless-image-handler/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-serverless-image-handler", - "version": "1.133.0", + "version": "0.0.0", "description": "Use case pattern for deploying a serverless image handler API.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,18 +53,18 @@ } }, "dependencies": { - "@aws-cdk/aws-apigateway": "1.133.0", - "@aws-cdk/aws-cloudfront": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-s3": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-solutions-constructs/aws-cloudfront-apigateway-lambda": "1.133.0", - "@aws-solutions-constructs/aws-lambda-s3": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0" + "@aws-cdk/aws-apigateway": "0.0.0", + "@aws-cdk/aws-cloudfront": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-solutions-constructs/aws-cloudfront-apigateway-lambda": "0.0.0", + "@aws-solutions-constructs/aws-lambda-s3": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, @@ -83,14 +83,14 @@ ] }, "peerDependencies": { - "@aws-solutions-constructs/aws-cloudfront-apigateway-lambda": "1.133.0", - "@aws-solutions-constructs/aws-lambda-s3": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-apigateway": "1.133.0", - "@aws-cdk/aws-cloudfront": "1.133.0", - "@aws-cdk/aws-s3": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0" + "@aws-solutions-constructs/aws-cloudfront-apigateway-lambda": "0.0.0", + "@aws-solutions-constructs/aws-lambda-s3": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-apigateway": "0.0.0", + "@aws-cdk/aws-cloudfront": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0" } } \ No newline at end of file diff --git a/source/use_cases/aws-serverless-web-app/package.json b/source/use_cases/aws-serverless-web-app/package.json index 4b6e31068..762b59361 100644 --- a/source/use_cases/aws-serverless-web-app/package.json +++ b/source/use_cases/aws-serverless-web-app/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-serverless-web-app", - "version": "1.133.0", + "version": "0.0.0", "description": "Use case pattern for deploying a serverless web app.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -28,24 +28,24 @@ "build+lint+test": "npm run build && npm run lint && npm test && npm run integ-assert" }, "dependencies": { - "@aws-solutions-constructs/aws-cloudfront-s3": "1.133.0", - "@aws-solutions-constructs/aws-cognito-apigateway-lambda": "1.133.0", - "@aws-solutions-constructs/aws-lambda-dynamodb": "1.133.0", - "@aws-cdk/core": "1.133.0", - "@aws-cdk/aws-lambda": "1.133.0", - "@aws-cdk/aws-cloudfront": "1.133.0", - "@aws-cdk/aws-s3": "1.133.0", - "@aws-cdk/custom-resources": "1.133.0", - "@aws-cdk/aws-cloudformation": "1.133.0", - "@aws-cdk/aws-iam": "1.133.0", - "@aws-cdk/aws-cognito": "1.133.0", - "@aws-cdk/aws-apigateway": "1.133.0", - "@aws-cdk/aws-dynamodb": "1.133.0", - "@aws-solutions-constructs/core": "1.133.0", + "@aws-solutions-constructs/aws-cloudfront-s3": "0.0.0", + "@aws-solutions-constructs/aws-cognito-apigateway-lambda": "0.0.0", + "@aws-solutions-constructs/aws-lambda-dynamodb": "0.0.0", + "@aws-cdk/core": "0.0.0", + "@aws-cdk/aws-lambda": "0.0.0", + "@aws-cdk/aws-cloudfront": "0.0.0", + "@aws-cdk/aws-s3": "0.0.0", + "@aws-cdk/custom-resources": "0.0.0", + "@aws-cdk/aws-cloudformation": "0.0.0", + "@aws-cdk/aws-iam": "0.0.0", + "@aws-cdk/aws-cognito": "0.0.0", + "@aws-cdk/aws-apigateway": "0.0.0", + "@aws-cdk/aws-dynamodb": "0.0.0", + "@aws-solutions-constructs/core": "0.0.0", "source-map-support": "^0.5.16" }, "devDependencies": { - "@aws-cdk/assert": "1.133.0", + "@aws-cdk/assert": "0.0.0", "@types/jest": "^26.0.22", "@types/node": "^10.3.0" }, From ea1a70e6344fb5b85d24330c39f933384cf321a8 Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Fri, 17 Dec 2021 12:45:51 -0500 Subject: [PATCH 42/67] Sync V2 and V1 --- deployment/v2/align-version.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployment/v2/align-version.js b/deployment/v2/align-version.js index 20b4f13f0..9907b9dea 100755 --- a/deployment/v2/align-version.js +++ b/deployment/v2/align-version.js @@ -10,7 +10,7 @@ const findVersion = process.argv[2]; const replaceVersion = process.argv[3]; // these versions need to be sourced from a config file -const awsCdkLibVersion = '2.0.0-rc.26'; +const awsCdkLibVersion = '2.0.0-rc.28'; const constructsVersion = '10.0.0'; const MODULE_EXEMPTIONS = new Set([ '@aws-cdk/cloudformation-diff', From a6020b301f62928f45fac349098047542dc42a44 Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Fri, 17 Dec 2021 12:57:02 -0500 Subject: [PATCH 43/67] Sync V1 and V2 --- deployment/v2/align-version.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployment/v2/align-version.js b/deployment/v2/align-version.js index 9907b9dea..62edf0322 100755 --- a/deployment/v2/align-version.js +++ b/deployment/v2/align-version.js @@ -10,7 +10,7 @@ const findVersion = process.argv[2]; const replaceVersion = process.argv[3]; // these versions need to be sourced from a config file -const awsCdkLibVersion = '2.0.0-rc.28'; +const awsCdkLibVersion = '2.0.0-rc.29'; const constructsVersion = '10.0.0'; const MODULE_EXEMPTIONS = new Set([ '@aws-cdk/cloudformation-diff', From 4c1ece42a94770f21a64184e0cf2e198df2e7e50 Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Fri, 17 Dec 2021 13:04:00 -0500 Subject: [PATCH 44/67] Sync V1 and V2 --- deployment/v2/align-version.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployment/v2/align-version.js b/deployment/v2/align-version.js index 62edf0322..d58cf72a1 100755 --- a/deployment/v2/align-version.js +++ b/deployment/v2/align-version.js @@ -10,7 +10,7 @@ const findVersion = process.argv[2]; const replaceVersion = process.argv[3]; // these versions need to be sourced from a config file -const awsCdkLibVersion = '2.0.0-rc.29'; +const awsCdkLibVersion = '2.0.0-rc.30'; const constructsVersion = '10.0.0'; const MODULE_EXEMPTIONS = new Set([ '@aws-cdk/cloudformation-diff', From 08123181ba55a3b01ac85c2dcda1a5e66e446c47 Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Fri, 17 Dec 2021 13:09:30 -0500 Subject: [PATCH 45/67] Sync V1 and V2 --- deployment/v2/align-version.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployment/v2/align-version.js b/deployment/v2/align-version.js index d58cf72a1..e03738075 100755 --- a/deployment/v2/align-version.js +++ b/deployment/v2/align-version.js @@ -10,7 +10,7 @@ const findVersion = process.argv[2]; const replaceVersion = process.argv[3]; // these versions need to be sourced from a config file -const awsCdkLibVersion = '2.0.0-rc.30'; +const awsCdkLibVersion = '2.0.0-rc.31'; const constructsVersion = '10.0.0'; const MODULE_EXEMPTIONS = new Set([ '@aws-cdk/cloudformation-diff', From c2b76b06811919b743e49c830236231045e08ca5 Mon Sep 17 00:00:00 2001 From: AWS Solutions Constructs Automation Date: Fri, 17 Dec 2021 20:48:08 +0000 Subject: [PATCH 46/67] chore(release): 1.134.0 --- CHANGELOG.md | 7 +++++++ source/lerna.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5c85d23a8..fa8592cc1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [1.134.0](https://github.com/awslabs/aws-solutions-constructs/compare/v1.133.0...v1.134.0) (2021-12-17) + + +### Features + +* **s3-stepfunctions:** removed CloudTrail dependency after new S3 feature ([#529](https://github.com/awslabs/aws-solutions-constructs/issues/529)) ([639f473](https://github.com/awslabs/aws-solutions-constructs/commit/639f47396f868846a81d0f81b6eb8160c61c6ae3)) + ## [1.133.0](https://github.com/awslabs/aws-solutions-constructs/compare/v1.132.0...v1.133.0) (2021-12-16) * Upgraded all patterns to CDK v1.133.0 diff --git a/source/lerna.json b/source/lerna.json index e48804f6c..613e75222 100644 --- a/source/lerna.json +++ b/source/lerna.json @@ -6,5 +6,5 @@ "./patterns/@aws-solutions-constructs/*" ], "rejectCycles": "true", - "version": "1.133.0" + "version": "1.134.0" } From 4f51a37f49f254c4ee29a07dad4abfd12d20bceb Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Fri, 17 Dec 2021 15:49:49 -0500 Subject: [PATCH 47/67] chore(changelog): Updated CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index fa8592cc1..a8e807359 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ All notable changes to this project will be documented in this file. See [standa ## [1.134.0](https://github.com/awslabs/aws-solutions-constructs/compare/v1.133.0...v1.134.0) (2021-12-17) +* Upgraded all patterns to CDK v1.134.0 ### Features From c375afc920455aa7bf1a038f7c4a3871f16e1d84 Mon Sep 17 00:00:00 2001 From: AWS Solutions Constructs Automation Date: Fri, 17 Dec 2021 21:41:39 +0000 Subject: [PATCH 48/67] chore(release): 1.135.0 --- CHANGELOG.md | 2 ++ source/lerna.json | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a8e807359..9fb366dfd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [1.135.0](https://github.com/awslabs/aws-solutions-constructs/compare/v1.134.0...v1.135.0) (2021-12-17) + ## [1.134.0](https://github.com/awslabs/aws-solutions-constructs/compare/v1.133.0...v1.134.0) (2021-12-17) * Upgraded all patterns to CDK v1.134.0 diff --git a/source/lerna.json b/source/lerna.json index 613e75222..8c9586f21 100644 --- a/source/lerna.json +++ b/source/lerna.json @@ -6,5 +6,5 @@ "./patterns/@aws-solutions-constructs/*" ], "rejectCycles": "true", - "version": "1.134.0" + "version": "1.135.0" } From fc259da79e87a11cc434234e717dd513401765e3 Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Fri, 17 Dec 2021 16:43:15 -0500 Subject: [PATCH 49/67] chore(changelog): Updated CHANGELOG.md --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9fb366dfd..0a72ffce9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ All notable changes to this project will be documented in this file. See [standa ## [1.135.0](https://github.com/awslabs/aws-solutions-constructs/compare/v1.134.0...v1.135.0) (2021-12-17) +* Upgraded all patterns to CDK v1.135.0 + ## [1.134.0](https://github.com/awslabs/aws-solutions-constructs/compare/v1.133.0...v1.134.0) (2021-12-17) * Upgraded all patterns to CDK v1.134.0 From 96b6b559545e76ab8709b0a53c9aa176c9e300dd Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Fri, 17 Dec 2021 20:17:10 -0500 Subject: [PATCH 50/67] Adjust to CDK Changes --- .../test/integ.apigateway-kinesis-overwrite.expected.json | 1 + .../test/integ.deployFunction.expected.json | 2 +- .../aws-apigateway-lambda/test/integ.deployFunction.ts | 2 +- .../test/integ.existingFunction.expected.json | 2 +- .../aws-apigateway-lambda/test/integ.existingFunction.ts | 2 +- .../aws-apigateway-lambda/test/test.apigateway-lambda.test.ts | 4 ++-- .../test/integ.customCloudfrontLoggingBucket.expected.json | 2 +- .../test/integ.customCloudfrontLoggingBucket.ts | 2 +- .../test/integ.no-arguments.expected.json | 2 +- .../test/integ.no-arguments.ts | 2 +- .../test/integ.override-behavior.expected.json | 2 +- .../test/integ.override-behavior.ts | 2 +- .../test/integ.customCloudfrontLoggingBucket.expected.json | 2 +- .../test/integ.customCloudfrontLoggingBucket.ts | 2 +- .../test/integ.no-arguments.expected.json | 2 +- .../aws-cloudfront-apigateway/test/integ.no-arguments.ts | 2 +- .../test/integ.no-arguments.expected.json | 2 +- .../test/integ.wafwebacl-cloudfront-apigateway-lambda.ts | 2 +- 18 files changed, 19 insertions(+), 18 deletions(-) diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-kinesisstreams/test/integ.apigateway-kinesis-overwrite.expected.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-kinesisstreams/test/integ.apigateway-kinesis-overwrite.expected.json index 32fb1b4ec..3f976f000 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-kinesisstreams/test/integ.apigateway-kinesis-overwrite.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-kinesisstreams/test/integ.apigateway-kinesis-overwrite.expected.json @@ -85,6 +85,7 @@ "ResourcePath": "/*" }, { + "DataTraceEnabled": false, "HttpMethod": "*", "ResourcePath": "/*", "ThrottlingBurstLimit": 25, diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.deployFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.deployFunction.expected.json index 11cc2570c..fa6e9ab9f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.deployFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.deployFunction.expected.json @@ -111,7 +111,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.deployFunction.ts b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.deployFunction.ts index 4b15a1664..5f07f0e49 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.deployFunction.ts +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.deployFunction.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = 'Integration Test for aws-apigateway-lambda' // Definitions const props: ApiGatewayToLambdaProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) } diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.existingFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.existingFunction.expected.json index be533a285..782acb20b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.existingFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.existingFunction.expected.json @@ -111,7 +111,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.existingFunction.ts b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.existingFunction.ts index a5512efc6..fd7fb176c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.existingFunction.ts +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.existingFunction.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = 'Integration Test for aws-apigateway-lambda' // Lambda function setup const lambdaFunctionProps = { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/test.apigateway-lambda.test.ts b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/test.apigateway-lambda.test.ts index c6c70bc2f..68d348a51 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/test.apigateway-lambda.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/test.apigateway-lambda.test.ts @@ -41,7 +41,7 @@ test('Test with lambdaFunctionProps', () => { const stack = new Stack(); const props: ApiGatewayToLambdaProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), environment: { @@ -139,7 +139,7 @@ test('Test deployment ApiGateway override cloudWatchRole = false', () => { cloudWatchRole: false }, lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) } diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.customCloudfrontLoggingBucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.customCloudfrontLoggingBucket.expected.json index 14526a495..454bbc76a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.customCloudfrontLoggingBucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.customCloudfrontLoggingBucket.expected.json @@ -111,7 +111,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.customCloudfrontLoggingBucket.ts b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.customCloudfrontLoggingBucket.ts index 33379a1be..462415c11 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.customCloudfrontLoggingBucket.ts +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.customCloudfrontLoggingBucket.ts @@ -26,7 +26,7 @@ stack.templateOptions.description = 'Integration Test for aws-cloudfront-apigate new CloudFrontToApiGatewayToLambda(stack, 'cf-apigw-lambda', { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, cloudFrontLoggingBucketProps: { diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.no-arguments.expected.json index a56c66520..2b7c565dc 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.no-arguments.expected.json @@ -111,7 +111,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.no-arguments.ts b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.no-arguments.ts index f5a6051ef..34b9f6eaf 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.no-arguments.ts +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.no-arguments.ts @@ -24,7 +24,7 @@ stack.templateOptions.description = 'Integration Test for aws-cloudfront-apigate const lambdaProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }; diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.override-behavior.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.override-behavior.expected.json index a2296d155..ea04aa326 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.override-behavior.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.override-behavior.expected.json @@ -159,7 +159,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.override-behavior.ts b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.override-behavior.ts index 3ca08778d..968c02078 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.override-behavior.ts +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.override-behavior.ts @@ -29,7 +29,7 @@ stack.templateOptions.description = 'Integration Test for aws-cloudfront-apigate const lambdaProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }; diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.customCloudfrontLoggingBucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.customCloudfrontLoggingBucket.expected.json index 938250853..6bd0eaf62 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.customCloudfrontLoggingBucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.customCloudfrontLoggingBucket.expected.json @@ -111,7 +111,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.customCloudfrontLoggingBucket.ts b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.customCloudfrontLoggingBucket.ts index 7c39bda19..b15f7dbbc 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.customCloudfrontLoggingBucket.ts +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.customCloudfrontLoggingBucket.ts @@ -27,7 +27,7 @@ stack.templateOptions.description = 'Integration Test for aws-cloudfront-apigate const inProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }; diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.no-arguments.expected.json index 92d2af10a..eb26d485e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.no-arguments.expected.json @@ -111,7 +111,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.no-arguments.ts b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.no-arguments.ts index 48a81d3d4..e44a9197c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.no-arguments.ts +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.no-arguments.ts @@ -26,7 +26,7 @@ stack.templateOptions.description = 'Integration Test for aws-cloudfront-apigate const inProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }; diff --git a/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.no-arguments.expected.json index 9d89302b2..ac9fec935 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.no-arguments.expected.json @@ -634,12 +634,12 @@ "testcognitoapigatewaylambdaCognitoAuthorizer170CACC9": { "Type": "AWS::ApiGateway::Authorizer", "Properties": { + "Name": "authorizer", "RestApiId": { "Ref": "testcognitoapigatewaylambdaLambdaRestApi2E272431" }, "Type": "COGNITO_USER_POOLS", "IdentitySource": "method.request.header.Authorization", - "Name": "authorizer", "ProviderARNs": [ { "Fn::GetAtt": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.wafwebacl-cloudfront-apigateway-lambda.ts b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.wafwebacl-cloudfront-apigateway-lambda.ts index e6bac8543..72dcdb130 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.wafwebacl-cloudfront-apigateway-lambda.ts +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.wafwebacl-cloudfront-apigateway-lambda.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = 'Integration Test for aws-wafwebacl-cloudfro const lambdaProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }; From 9d9ba69f609d45b9e8ffe6ab73d8d586045839aa Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Fri, 17 Dec 2021 21:26:46 -0500 Subject: [PATCH 51/67] Align V2 and V1 --- deployment/v2/align-version.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployment/v2/align-version.js b/deployment/v2/align-version.js index e03738075..4304f83ca 100755 --- a/deployment/v2/align-version.js +++ b/deployment/v2/align-version.js @@ -10,7 +10,7 @@ const findVersion = process.argv[2]; const replaceVersion = process.argv[3]; // these versions need to be sourced from a config file -const awsCdkLibVersion = '2.0.0-rc.31'; +const awsCdkLibVersion = '2.0.0-rc.32'; const constructsVersion = '10.0.0'; const MODULE_EXEMPTIONS = new Set([ '@aws-cdk/cloudformation-diff', From f55a8c419a55f3e9b14372641143de0c79f075c7 Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Fri, 17 Dec 2021 21:46:31 -0500 Subject: [PATCH 52/67] Fix NODEJS_10_X --- .../integ.wafwebacl-cloudfront-apigateway-lambda.expected.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.wafwebacl-cloudfront-apigateway-lambda.expected.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.wafwebacl-cloudfront-apigateway-lambda.expected.json index 2bb56c37c..45f987361 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.wafwebacl-cloudfront-apigateway-lambda.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.wafwebacl-cloudfront-apigateway-lambda.expected.json @@ -111,7 +111,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } From eee59bfc2558ad17441eebd2a388422a466add95 Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Fri, 17 Dec 2021 21:58:20 -0500 Subject: [PATCH 53/67] Align V2 and V1 --- deployment/v2/align-version.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployment/v2/align-version.js b/deployment/v2/align-version.js index 4304f83ca..6ce1b3fd6 100755 --- a/deployment/v2/align-version.js +++ b/deployment/v2/align-version.js @@ -10,7 +10,7 @@ const findVersion = process.argv[2]; const replaceVersion = process.argv[3]; // these versions need to be sourced from a config file -const awsCdkLibVersion = '2.0.0-rc.32'; +const awsCdkLibVersion = '2.0.0-rc.33'; const constructsVersion = '10.0.0'; const MODULE_EXEMPTIONS = new Set([ '@aws-cdk/cloudformation-diff', From fe2a9b7e86ddfd6c695a211200a2067d1e369f06 Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Fri, 17 Dec 2021 22:14:02 -0500 Subject: [PATCH 54/67] Sync V1 and V2 --- deployment/v2/align-version.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployment/v2/align-version.js b/deployment/v2/align-version.js index 6ce1b3fd6..30556f90e 100755 --- a/deployment/v2/align-version.js +++ b/deployment/v2/align-version.js @@ -10,7 +10,7 @@ const findVersion = process.argv[2]; const replaceVersion = process.argv[3]; // these versions need to be sourced from a config file -const awsCdkLibVersion = '2.0.0-rc.33'; +const awsCdkLibVersion = '2.0.0'; const constructsVersion = '10.0.0'; const MODULE_EXEMPTIONS = new Set([ '@aws-cdk/cloudformation-diff', From c64308d4049408cd8423e3efb0bb1979c06546cf Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Fri, 17 Dec 2021 22:21:33 -0500 Subject: [PATCH 55/67] Sync V1 and V2 --- deployment/v2/align-version.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployment/v2/align-version.js b/deployment/v2/align-version.js index 30556f90e..da9b38e4b 100755 --- a/deployment/v2/align-version.js +++ b/deployment/v2/align-version.js @@ -10,7 +10,7 @@ const findVersion = process.argv[2]; const replaceVersion = process.argv[3]; // these versions need to be sourced from a config file -const awsCdkLibVersion = '2.0.0'; +const awsCdkLibVersion = '2.1.0'; const constructsVersion = '10.0.0'; const MODULE_EXEMPTIONS = new Set([ '@aws-cdk/cloudformation-diff', From a772f32518b63afd392f56acebb9070d69f486af Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Sun, 19 Dec 2021 20:44:40 -0500 Subject: [PATCH 56/67] Align V1 and V2 --- deployment/v2/align-version.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployment/v2/align-version.js b/deployment/v2/align-version.js index da9b38e4b..85f91a953 100755 --- a/deployment/v2/align-version.js +++ b/deployment/v2/align-version.js @@ -10,7 +10,7 @@ const findVersion = process.argv[2]; const replaceVersion = process.argv[3]; // these versions need to be sourced from a config file -const awsCdkLibVersion = '2.1.0'; +const awsCdkLibVersion = '2.2.0'; const constructsVersion = '10.0.0'; const MODULE_EXEMPTIONS = new Set([ '@aws-cdk/cloudformation-diff', From 1f605c478f051076f90c9ee741be731fe9b171a3 Mon Sep 17 00:00:00 2001 From: AWS Solutions Constructs Automation Date: Mon, 20 Dec 2021 02:40:35 +0000 Subject: [PATCH 57/67] chore(release): 1.136.0 --- CHANGELOG.md | 2 ++ source/lerna.json | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0a72ffce9..d20689e49 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [1.136.0](https://github.com/awslabs/aws-solutions-constructs/compare/v1.135.0...v1.136.0) (2021-12-20) + ## [1.135.0](https://github.com/awslabs/aws-solutions-constructs/compare/v1.134.0...v1.135.0) (2021-12-17) * Upgraded all patterns to CDK v1.135.0 diff --git a/source/lerna.json b/source/lerna.json index 8c9586f21..fea0abd9a 100644 --- a/source/lerna.json +++ b/source/lerna.json @@ -6,5 +6,5 @@ "./patterns/@aws-solutions-constructs/*" ], "rejectCycles": "true", - "version": "1.135.0" + "version": "1.136.0" } From 3ca8d81d5ff9bc60af4ee1afd852602e243e816a Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Sun, 19 Dec 2021 21:43:47 -0500 Subject: [PATCH 58/67] chore(changelog): Updated CHANGELOG.md --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d20689e49..cc33727d6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ All notable changes to this project will be documented in this file. See [standa ## [1.136.0](https://github.com/awslabs/aws-solutions-constructs/compare/v1.135.0...v1.136.0) (2021-12-20) +* Upgraded all patterns to CDK v1.136.0 + ## [1.135.0](https://github.com/awslabs/aws-solutions-constructs/compare/v1.134.0...v1.135.0) (2021-12-17) * Upgraded all patterns to CDK v1.135.0 From ee42cf034d87bccef844c10917a726792b493c86 Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Mon, 20 Dec 2021 10:19:22 -0500 Subject: [PATCH 59/67] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index cc33727d6..fb4a8ff4a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ All notable changes to this project will be documented in this file. See [standa ## [1.136.0](https://github.com/awslabs/aws-solutions-constructs/compare/v1.135.0...v1.136.0) (2021-12-20) * Upgraded all patterns to CDK v1.136.0 +* Set underlying CDK library to 2.2.0 ## [1.135.0](https://github.com/awslabs/aws-solutions-constructs/compare/v1.134.0...v1.135.0) (2021-12-17) From 5ac43abf45671d79536c772a9b4a1287262eba65 Mon Sep 17 00:00:00 2001 From: Hitendra Nishar Date: Mon, 20 Dec 2021 10:31:04 -0500 Subject: [PATCH 60/67] fix(remove custom code for aws-cdk-migration) (#541) * fix(remove custom code for aws-cdk-migration) * fix(remove custom code for aws-cdk-migration) Co-authored-by: biffgaut <78155736+biffgaut@users.noreply.github.com> --- deployment/v2/build-patterns.sh | 21 +- deployment/v2/rewrite-imports.sh | 12 - source/package.json | 3 +- source/tools/aws-cdk-migration/.gitignore | 12 - source/tools/aws-cdk-migration/.npmignore | 9 - source/tools/aws-cdk-migration/LICENSE | 201 ------------ source/tools/aws-cdk-migration/NOTICE | 2 - source/tools/aws-cdk-migration/README.md | 11 - .../aws-cdk-migration/bin/rewrite-imports-v2 | 2 - .../bin/rewrite-imports-v2.ts | 37 --- source/tools/aws-cdk-migration/lib/rewrite.ts | 294 ------------------ source/tools/aws-cdk-migration/package.json | 50 --- source/tools/aws-cdk-migration/tsconfig.json | 20 -- 13 files changed, 13 insertions(+), 661 deletions(-) delete mode 100644 source/tools/aws-cdk-migration/.gitignore delete mode 100644 source/tools/aws-cdk-migration/.npmignore delete mode 100644 source/tools/aws-cdk-migration/LICENSE delete mode 100644 source/tools/aws-cdk-migration/NOTICE delete mode 100644 source/tools/aws-cdk-migration/README.md delete mode 100755 source/tools/aws-cdk-migration/bin/rewrite-imports-v2 delete mode 100644 source/tools/aws-cdk-migration/bin/rewrite-imports-v2.ts delete mode 100644 source/tools/aws-cdk-migration/lib/rewrite.ts delete mode 100644 source/tools/aws-cdk-migration/package.json delete mode 100644 source/tools/aws-cdk-migration/tsconfig.json diff --git a/deployment/v2/build-patterns.sh b/deployment/v2/build-patterns.sh index 37d9fd3be..d4db4ff8c 100755 --- a/deployment/v2/build-patterns.sh +++ b/deployment/v2/build-patterns.sh @@ -8,6 +8,17 @@ echo "========================================================================== echo "aligning versions and updating package.json for CDK v2..." /bin/bash $deployment_dir/align-version.sh +bail="--bail" +runtarget="build+lint+test" +cd $source_dir/ + +export PATH=$(npm bin):$PATH +export NODE_OPTIONS="--max-old-space-size=4096 ${NODE_OPTIONS:-}" + +echo "=============================================================================================" +echo "installing..." +yarn install --frozen-lockfile + echo "=============================================================================================" echo "updating Import statements for CDK v2..." /bin/bash $deployment_dir/rewrite-imports.sh @@ -18,18 +29,8 @@ cd $source_dir/tools/cdk-integ-tools npm install npm run build npm link - -bail="--bail" -runtarget="build+lint+test" cd $source_dir/ -export PATH=$(npm bin):$PATH -export NODE_OPTIONS="--max-old-space-size=4096 ${NODE_OPTIONS:-}" - -echo "=============================================================================================" -echo "installing..." -yarn install --frozen-lockfile - echo "=============================================================================================" echo "building..." time lerna run $bail --stream $runtarget || fail diff --git a/deployment/v2/rewrite-imports.sh b/deployment/v2/rewrite-imports.sh index b2090b858..ae79d63a8 100755 --- a/deployment/v2/rewrite-imports.sh +++ b/deployment/v2/rewrite-imports.sh @@ -4,18 +4,6 @@ set -euo pipefail deployment_dir=$(cd $(dirname $0) && pwd) source_dir="$deployment_dir/../../source" -if [ ! -d $source_dir/tools/aws-cdk-migration/node_modules ]; then - echo "=============================================================================================" - echo "building aws-cdk-migration..." - cd $source_dir/tools/aws-cdk-migration - npm install - npm run build - npm link -else - cd $source_dir/tools/aws-cdk-migration - npm link -fi - cd $source_dir/ if [ $# -eq 0 ]; then diff --git a/source/package.json b/source/package.json index 62feab62a..b1cfbb1e7 100644 --- a/source/package.json +++ b/source/package.json @@ -26,7 +26,8 @@ "jsii": "1.47.0", "jsii-pacmak": "1.47.0", "tslint": "^5.20.1", - "typescript": "~3.9.7" + "typescript": "~3.9.7", + "aws-cdk-migration": "^1.136.0" }, "devDependencies": { "lerna": "^3.22.1" diff --git a/source/tools/aws-cdk-migration/.gitignore b/source/tools/aws-cdk-migration/.gitignore deleted file mode 100644 index fdfdd65c4..000000000 --- a/source/tools/aws-cdk-migration/.gitignore +++ /dev/null @@ -1,12 +0,0 @@ -*.js -*.js.map -*.d.ts -dist - -.LAST_BUILD -*.snk -.nyc_output -coverage -nyc.config.js -node_modules/ -package-lock.json \ No newline at end of file diff --git a/source/tools/aws-cdk-migration/.npmignore b/source/tools/aws-cdk-migration/.npmignore deleted file mode 100644 index 89a519f1e..000000000 --- a/source/tools/aws-cdk-migration/.npmignore +++ /dev/null @@ -1,9 +0,0 @@ -# Don't include original .ts files when doing `npm pack` -*.ts -!*.d.ts -coverage -.nyc_output -*.tgz - -.LAST_BUILD -*.snk \ No newline at end of file diff --git a/source/tools/aws-cdk-migration/LICENSE b/source/tools/aws-cdk-migration/LICENSE deleted file mode 100644 index 28e4bdcec..000000000 --- a/source/tools/aws-cdk-migration/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2018-2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/source/tools/aws-cdk-migration/NOTICE b/source/tools/aws-cdk-migration/NOTICE deleted file mode 100644 index 5fc382692..000000000 --- a/source/tools/aws-cdk-migration/NOTICE +++ /dev/null @@ -1,2 +0,0 @@ -AWS Cloud Development Kit (AWS CDK) -Copyright 2018-2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. diff --git a/source/tools/aws-cdk-migration/README.md b/source/tools/aws-cdk-migration/README.md deleted file mode 100644 index 7fd8b2ff7..000000000 --- a/source/tools/aws-cdk-migration/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# aws-cdk-migration - -Migrate TypeScript `import` statements from modular CDK (i.e. `@aws-cdk/aws-s3`) to aws-cdk-lib (i.e. `aws-cdk-lib`), as well as imports of `Construct` from `@aws-cdk/core` to `constructs`. - -Usage: - -```shell -$ npx -p aws-cdk-migration rewrite-imports-v2 lib/**/*.ts -``` - -NOTE: `node_modules` and `*.d.ts` files are ignored. \ No newline at end of file diff --git a/source/tools/aws-cdk-migration/bin/rewrite-imports-v2 b/source/tools/aws-cdk-migration/bin/rewrite-imports-v2 deleted file mode 100755 index ddc257a65..000000000 --- a/source/tools/aws-cdk-migration/bin/rewrite-imports-v2 +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env node -require('./rewrite-imports-v2.js'); \ No newline at end of file diff --git a/source/tools/aws-cdk-migration/bin/rewrite-imports-v2.ts b/source/tools/aws-cdk-migration/bin/rewrite-imports-v2.ts deleted file mode 100644 index 5dd7973a9..000000000 --- a/source/tools/aws-cdk-migration/bin/rewrite-imports-v2.ts +++ /dev/null @@ -1,37 +0,0 @@ -/* eslint-disable no-console */ -import * as fs from 'fs'; -import { promisify } from 'util'; -import * as _glob from 'glob'; - -import { rewriteImports } from '../lib/rewrite'; - -const glob = promisify(_glob); - -async function main() { - if (!process.argv[2]) { - console.error('usage: rewrite-imports **/*.ts'); - return; - } - - const ignore = [ - '**/*.d.ts', - 'node_modules/**', - ]; - - const args = process.argv.slice(2); - for (const arg of args) { - const files = await glob(arg, { ignore, matchBase: true }); - for (const file of files) { - const input = await fs.promises.readFile(file, { encoding: 'utf8' }); - const output = rewriteImports(input, file); - if (output.trim() !== input.trim()) { - await fs.promises.writeFile(file, output); - } - } - } -} - -main().catch(e => { - console.error(e.stack); - process.exit(1); -}); \ No newline at end of file diff --git a/source/tools/aws-cdk-migration/lib/rewrite.ts b/source/tools/aws-cdk-migration/lib/rewrite.ts deleted file mode 100644 index 0ee2ece35..000000000 --- a/source/tools/aws-cdk-migration/lib/rewrite.ts +++ /dev/null @@ -1,294 +0,0 @@ -import * as ts from 'typescript'; - -interface Import { - location: ts.StringLiteral; - value?: ts.Identifier | ts.NodeArray; -} - -interface Replacement { - original: ts.Node; - updated: string; -} - -/** - * Re-writes "hyper-modular" CDK imports (most packages in `@aws-cdk/*`) to the - * relevant "mono" CDK import path. The re-writing will only modify the imported - * library path, preserving the existing quote style, etc... - * - * Syntax errors in the source file being processed may cause some import - * statements to not be re-written. - * - * Supported import statement forms are: - * - `import * as lib from '@aws-cdk/lib';` - * - `import { Type } from '@aws-cdk/lib';` - * - `import '@aws-cdk/lib';` - * - `import lib = require('@aws-cdk/lib');` - * - `require('@aws-cdk/lib'); - * - * @param sourceText the source code where imports should be re-written. - * @param fileName a customized file name to provide the TypeScript processor. - * - * @returns the updated source code. - */ -export function rewriteImports(sourceText: string, fileName: string = 'index.ts'): string { - const sourceFile = ts.createSourceFile(fileName, sourceText, ts.ScriptTarget.ES2018); - - const replacements = new Array(); - - let lookForConstruct: { - searchName: string, - replacementName: string, - } | undefined; - - const visitor = (node: T): ts.VisitResult => { - const { location: moduleSpecifier, value: importedValue } = getModuleSpecifier(node) ?? {}; - if (moduleSpecifier) { - lookForConstruct = extractConstructImport(moduleSpecifier, importedValue, node, sourceFile, replacements); - replaceModuleLocation(moduleSpecifier, sourceFile, replacements); - } - - if (lookForConstruct) { - replaceConstruct(lookForConstruct, node, sourceFile, replacements); - } - - node.forEachChild(visitor); - - return undefined; - }; - - sourceFile.forEachChild(visitor); - - return executeReplacements(sourceFile, replacements); -} - -function getModuleSpecifier(node: ts.Node): Import | undefined { - if (ts.isImportDeclaration(node) && ts.isStringLiteral(node.moduleSpecifier)) { - // import { Type } from 'location'; - // import * as name from 'location'; - const location = node.moduleSpecifier; - if (node.importClause && node.importClause.namedBindings) { - if (ts.isNamespaceImport(node.importClause.namedBindings)) { - return { - location: location, - value: node.importClause.namedBindings.name, - }; - } else if (ts.isNamedImports(node.importClause.namedBindings)) { - return { - location: location, - value: node.importClause.namedBindings.elements, - }; - } - } else { - return { - location: location, - }; - } - } else if ( - ts.isImportEqualsDeclaration(node) - && ts.isExternalModuleReference(node.moduleReference) - && ts.isStringLiteral(node.moduleReference.expression) - ) { - // import name = require('location'); - return { - location: node.moduleReference.expression, - value: node.name, - }; - } else if ( - (ts.isCallExpression(node)) - && ts.isIdentifier(node.expression) - && node.expression.escapedText === 'require' - && node.arguments.length === 1 - ) { - // require('location'); - const argument = node.arguments[0]; - if (ts.isStringLiteral(argument)) { - return { - location: argument, - }; - } - } - return undefined; -} - -function extractConstructImport( - moduleSpecifier: ts.StringLiteral, - importedValue: ts.Identifier | ts.NodeArray | undefined, - node: ts.Node, - sourceFile: ts.SourceFile, - replacements: Replacement[], -): { searchName: string, replacementName: string } | undefined { - if (moduleSpecifier.text === '@aws-cdk/core' && importedValue) { - let constructImport: { searchName: string, replacementName: string, newImport: string } | undefined; - if (Array.isArray(importedValue)) { - // import { ..., Construct, ... } from '@aws-cdk/core'; - constructImport = extractBarrelConstructImport(importedValue, sourceFile, replacements); - } else if (ts.isIdentifier(importedValue as ts.Node)) { - // import * as cdk from '@aws-cdk/core'; - constructImport = extractNamespaceConstructImport(importedValue as ts.Identifier, node); - } - if (constructImport) { - addNewConstructImport(constructImport.newImport, node, sourceFile, replacements); - return { - searchName: constructImport.searchName, - replacementName: constructImport.replacementName, - }; - } - } - return undefined; -} - -function extractBarrelConstructImport( - importedNames: ts.NodeArray, - sourceFile: ts.SourceFile, - replacements: Replacement[], -): { searchName: string, replacementName: string, newImport: string } | undefined { - // if the imported name is an alias (`{ Construct as CoreConstruct }`), then `name` holds the alias and `propertyName` holds the original name - // if the imported name is not an alias (`{ Construct }`), then `name` holds the original name and `propertyName` is `undefined` - const constructName = importedNames.find((name) => (name.propertyName ?? name.name).text === 'Construct' || (name.propertyName ?? name.name).text === 'IConstruct'); - if (constructName) { - // remove the old import to avoid a name conflict - const constructIndex = importedNames.indexOf(constructName); - let importSpecifierStart = constructName.getStart(sourceFile); - let importSpecifierEnd = constructName.getEnd(); - // remove a leading or trailing comma, if they exist - if (constructIndex > 0) { - importSpecifierStart = importedNames[constructIndex - 1].getEnd(); - } else if (constructIndex < importedNames.length - 1) { - importSpecifierEnd = importedNames[constructIndex + 1].getStart(sourceFile); - } - replacements.push({ - original: { - getStart() { - return importSpecifierStart; - }, - getEnd() { - return importSpecifierEnd; - }, - } as ts.Node, - updated: '', - }); - - const aliasStatement = constructName.propertyName ? ` as ${constructName.name.text}` : ''; - - if (constructName.name.text === 'Construct') { - return { - searchName: constructName.name.text, - replacementName: constructName.name.text, - newImport: `import { Construct${aliasStatement} } from 'constructs';`, - }; - } else { - return { - searchName: constructName.name.text, - replacementName: constructName.name.text, - newImport: `import { IConstruct${aliasStatement} } from 'constructs';`, - }; - } - } - return undefined; -} - -function extractNamespaceConstructImport( - constructNamespace: ts.Identifier, - node: ts.Node, -): { searchName: string, replacementName: string, newImport: string } | undefined { - - // HACK - return undefined; - // HACK - - const searchName = `${(constructNamespace as ts.Identifier).text}.Construct`; - const replacementName = 'constructs.Construct'; - if (ts.isImportDeclaration(node)) { - return { - searchName, - replacementName, - newImport: 'import * as constructs from \'constructs\';', - }; - } else if (ts.isImportEqualsDeclaration(node)) { - return { - searchName, - replacementName, - newImport: 'import constructs = require(\'constructs\');', - }; - } else { - return undefined; - } -} - -function addNewConstructImport(newImport: string, node: ts.Node, sourceFile: ts.SourceFile, replacements: Replacement[]) { - // insert a new line and indent - const beginningLinePos = Array.from(sourceFile.getLineStarts()) - .reverse() - .find((start) => start <= node.getStart(sourceFile)) - ?? node.getStart(sourceFile); - const leadingSpaces = node.getStart(sourceFile) - beginningLinePos; - const newImportPrefix = `\n${' '.repeat(leadingSpaces)}`; - - replacements.push({ - original: { - getStart() { - return node.getEnd(); - }, - getEnd() { - return node.getEnd(); - }, - } as ts.Node, - updated: `${newImportPrefix}${newImport}`, - }); -} - -function replaceModuleLocation(moduleSpecifier: ts.StringLiteral, sourceFile: ts.SourceFile, replacements: Replacement[]) { - const newModuleLocation = updatedLocationOf(moduleSpecifier.text); - if (newModuleLocation) { - replacements.push({ - // keep the original quotation marks - original: { - getStart() { - return moduleSpecifier.getStart(sourceFile) + 1; - }, - getEnd() { - return moduleSpecifier.getEnd() - 1; - }, - } as ts.Node, - updated: newModuleLocation, - }); - } -} - -const MODULE_EXEMPTIONS = new Set([ - '@aws-cdk/cloudformation-diff', - '@aws-cdk/assert', - '@aws-cdk/assert/jest', -]); - -function updatedLocationOf(modulePath: string): string | undefined { - if (!modulePath.startsWith('@aws-cdk/') || MODULE_EXEMPTIONS.has(modulePath)) { - return undefined; - } else if (modulePath === '@aws-cdk/core') { - return 'aws-cdk-lib'; - } else { - return `aws-cdk-lib/${modulePath.substring(9)}`; - } -} - -function replaceConstruct( - { searchName, replacementName }: { searchName: string, replacementName: string }, - node: ts.Node, - sourceFile: ts.SourceFile, - replacements: Replacement[], -) { - if ((ts.isTypeReferenceNode(node) || ts.isPropertyAccessExpression(node)) && node.getText(sourceFile) === searchName) { - replacements.push({ original: node, updated: replacementName }); - } -} - -function executeReplacements(sourceFile: ts.SourceFile, replacements: Replacement[]): string { - let updatedSourceText = sourceFile.getFullText(); - // Applying replacements in reverse order, so node positions remain valid. - for (const replacement of replacements.sort(({ original: l }, { original: r }) => r.getStart(sourceFile) - l.getStart(sourceFile))) { - const prefix = updatedSourceText.substring(0, replacement.original.getStart(sourceFile)); - const suffix = updatedSourceText.substring(replacement.original.getEnd()); - updatedSourceText = prefix + replacement.updated + suffix; - } - return updatedSourceText; -} diff --git a/source/tools/aws-cdk-migration/package.json b/source/tools/aws-cdk-migration/package.json deleted file mode 100644 index 551905520..000000000 --- a/source/tools/aws-cdk-migration/package.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "name": "aws-cdk-migration", - "private": true, - "version": "0.0.0", - "description": "Rewrites typescript 'import' statements from @aws-cdk/xxx to aws-cdk-lib", - "bin": { - "rewrite-imports-v2": "bin/rewrite-imports-v2" - }, - "main": "lib/rewrite.js", - "types": "lib/rewrite.d.ts", - "repository": { - "type": "git", - "url": "https://github.com/aws/aws-cdk.git", - "directory": "tools/aws-cdk-migration" - }, - "scripts": { - "build": "tsc -b .", - "watch": "tsc -b -w", - "lint": "tslint --project ." - }, - "author": { - "name": "Amazon Web Services", - "url": "https://aws.amazon.com", - "organization": true - }, - "license": "Apache-2.0", - "devDependencies": { - "@types/glob": "^7.1.3", - "@types/jest": "^26.0.23", - "@types/node": "^10.17.60", - "aws-cdk-lib": "2.0.0-rc.16", - "constructs": "^10.0.0" - }, - "dependencies": { - "glob": "^7.1.7", - "typescript": "~3.9.9" - }, - "keywords": [ - "aws", - "cdk" - ], - "homepage": "https://github.com/aws/aws-cdk", - "engines": { - "node": ">= 10.13.0 <13 || >=13.7.0" - }, - "peerDependencies": { - "aws-cdk-lib": "^2.0.0-rc.16", - "constructs": "^10.0.0" - } -} \ No newline at end of file diff --git a/source/tools/aws-cdk-migration/tsconfig.json b/source/tools/aws-cdk-migration/tsconfig.json deleted file mode 100644 index 14499cd2a..000000000 --- a/source/tools/aws-cdk-migration/tsconfig.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "compilerOptions": { - "target": "ES2018", - "module": "commonjs", - "lib": ["es2018"], - "strict": true, - "alwaysStrict": true, - "declaration": true, - "inlineSourceMap": true, - "inlineSources": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noImplicitReturns": true, - "noFallthroughCasesInSwitch": true, - "resolveJsonModule": true, - "composite": true, - "incremental": true - }, - "include": ["**/*.ts"] -} From 4bce1583b7fe418f50039227241711e19df5844f Mon Sep 17 00:00:00 2001 From: mickychetta <45010053+mickychetta@users.noreply.github.com> Date: Mon, 20 Dec 2021 09:59:00 -0800 Subject: [PATCH 61/67] updated README for iot-sqs and kinesisstreams-gluejob (#553) --- .../aws-iot-sqs/README.md | 7 ++++--- .../aws-iot-sqs/lib/index.ts | 14 ++++++-------- .../aws-kinesisstreams-gluejob/README.md | 18 ++++++++++-------- 3 files changed, 20 insertions(+), 19 deletions(-) diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-sqs/README.md b/source/patterns/@aws-solutions-constructs/aws-iot-sqs/README.md index 004242173..5ebccb509 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-sqs/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-iot-sqs/README.md @@ -59,6 +59,7 @@ _Parameters_ | **Name** | **Type** | **Description** | |:-------------|:----------------|-----------------| +|iotTopicRuleProps|[`iot.CfnTopicRuleProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iot.CfnTopicRuleProps.html)|User provided CfnTopicRuleProps to override the defaults| |existingQueueObj?|[`sqs.Queue`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html)|Existing instance of SQS queue object, providing both this and `queueProps` will cause an error.| |queueProps?|[`sqs.QueueProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.QueueProps.html)|User provided props to override the default props for the SQS queue.| |deadLetterQueueProps?|[`sqs.QueueProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.QueueProps.html)|Optional user provided properties for the dead letter queue.| @@ -67,7 +68,7 @@ _Parameters_ |enableEncryptionWithCustomerManagedKey?|`boolean`|Use a KMS Key, either managed by this CDK app, or imported. If importing an encryption key, it must be specified in the `encryptionKey` property for this construct.| |encryptionKey?|[`kms.Key`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kms.Key.html)|An optional, imported encryption key to encrypt the SQS queue.| |encryptionKeyProps?|[`kms.KeyProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kms.KeyProps.html)|Optional user-provided props to override the default props for the encryption key.| -|iotTopicRuleProps?|[`iot.CfnTopicRuleProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iot.CfnTopicRuleProps.html)|User provided CfnTopicRuleProps to override the defaults| + ## Pattern Properties @@ -90,9 +91,9 @@ Out of the box implementation of the Construct without any override will set the * Configure least privilege access IAM role for Amazon IoT to be able to publish messages to the SQS Queue ### Amazon SQS Queue -* Deploy a dead-letter queue for the source queue. +* Deploy a dead-letter queue for the source queue. * Enable server-side encryption for the source queue using a customer-managed AWS KMS key. -* Enforce encryption of data in transit. +* Enforce encryption of data in transit. ## Architecture ![Architecture Diagram](architecture.png) diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-sqs/lib/index.ts b/source/patterns/@aws-solutions-constructs/aws-iot-sqs/lib/index.ts index c7779ac02..a39aad845 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-sqs/lib/index.ts +++ b/source/patterns/@aws-solutions-constructs/aws-iot-sqs/lib/index.ts @@ -23,13 +23,18 @@ import { Construct } from '@aws-cdk/core'; * @summary The properties for the IotToSqs class. */ export interface IotToSqsProps { + /** + * User provided CfnTopicRuleProps to override the defaults + * + * @default - None + */ + readonly iotTopicRuleProps: iot.CfnTopicRuleProps; /** * Existing instance of SQS queue object, providing both this and queueProps will cause an error. * * @default - None */ readonly existingQueueObj?: sqs.Queue; - /** * User provided props to override the default props for the SQS queue. * @@ -79,13 +84,6 @@ export interface IotToSqsProps { * @default - Default props are used. */ readonly encryptionKeyProps?: kms.KeyProps; - - /** - * User provided CfnTopicRuleProps to override the defaults - * - * @default - None - */ - readonly iotTopicRuleProps: iot.CfnTopicRuleProps; } export class IotToSqs extends Construct { diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-gluejob/README.md b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-gluejob/README.md index c82c339d3..56228636b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-gluejob/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-gluejob/README.md @@ -87,15 +87,15 @@ _Parameters_ | **Name** | **Type** | **Description** | | :------------------ | :---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | -| kinesisStreamProps? | [`kinesis.StreamProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesis.StreamProps.html) | Optional user-provided props to override the default props for the Kinesis stream. | | existingStreamObj? | [`kinesis.Stream`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesis.Stream.html) | Existing instance of Kinesis Stream, providing both this and `kinesisStreamProps` will cause an error. | +| kinesisStreamProps? | [`kinesis.StreamProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesis.StreamProps.html) | Optional user-provided props to override the default props for the Kinesis stream. | | glueJobProps? | [`cfnJob.CfnJobProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-glue.CfnJobProps.html) | User provided props to override the default props for the AWS Glue Job. | | existingGlueJob? | [`cfnJob.CfnJob`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-glue.CfnJob.html) | Existing instance of AWS Glue Job, providing both this and `glueJobProps` will cause an error. | -| existingDatabase? | [`CfnDatabase`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-glue.CfnDatabase.html) | Existing instance of AWS Glue Database. If this is set, then databaseProps is ignored. | -| databaseProps? | [`CfnDatabaseProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-glue.CfnDatabaseProps.html) | User provided Glue Database Props to override the default props used to create the Glue Database. | +| fieldSchema? | [`CfnTable.ColumnProperty[]`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-glue.CfnTable.ColumnProperty.html) | User provided schema structure to create an AWS Glue Table. | | existingTable? | [`CfnTable`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-glue.CfnTable.html) | Existing instance of AWS Glue Table. If this is set, tableProps and fieldSchema are ignored. | | tableProps? | [`CfnTableProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-glue.TableProps.html) | User provided AWS Glue Table props to override default props used to create a Glue Table. | -| fieldSchema? | [`CfnTable.ColumnProperty[]`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-glue.CfnTable.ColumnProperty.html) | User provided schema structure to create an AWS Glue Table. | +| existingDatabase? | [`CfnDatabase`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-glue.CfnDatabase.html) | Existing instance of AWS Glue Database. If this is set, then databaseProps is ignored. | +| databaseProps? | [`CfnDatabaseProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-glue.CfnDatabaseProps.html) | User provided Glue Database Props to override the default props used to create the Glue Database. | | outputDataStore? | [`SinkDataStoreProps`](#sinkdatastoreprops) | User provided properties for S3 bucket that stores Glue Job output. Current datastore types suported is only S3. | |createCloudWatchAlarms?|`boolean`|Whether to create recommended CloudWatch alarms for Kinesis Data Stream. Default value is set to `true`.| @@ -119,11 +119,13 @@ Enumeration of data store types that could include S3, DynamoDB, DocumentDB, RDS | **Name** | **Type** | **Description** | |:-------------|:----------------|-----------------| -|cloudwatchAlarms?|[`cloudwatch.Alarm[]`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudwatch.Alarm.html)|Returns an array of recommended CloudWatch Alarms created by the construct for Kinesis Data stream| -|glueJob|[`CfnJob`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-glue.CfnJob.html)|Returns an instance of AWS Glue Job created by the construct| -|glueJobRole|[`iam.Role`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html)|Returns an instance of the IAM Role created by the construct for the Glue Job| -|database|[`CfnDatabase`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-glue.CfnDatabase.html)|Returns an instance of AWS Glue Database created by the construct| +|kinesisStream|[`kinesis.Stream`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesis.Stream.html)|Returns an instance of the Kinesis stream created or used by the pattern.| +|glueJob|[`CfnJob`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-glue.CfnJob.html)|Returns an instance of AWS Glue Job created by the construct.| +|glueJobRole|[`iam.Role`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html)|Returns an instance of the IAM Role created by the construct for the Glue Job.| +|database|[`CfnDatabase`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-glue.CfnDatabase.html)|Returns an instance of AWS Glue Database created by the construct.| |table|[`CfnTable`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-glue.CfnTable.html)|Returns an instance of the AWS Glue Table created by the construct| +|outputBucket?|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/aws-s3-readme.html)|Returns an instance of the output bucket created by the construct for the AWS Glue Job.| +|cloudwatchAlarms?|[`cloudwatch.Alarm[]`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudwatch.Alarm.html)|Returns an array of recommended CloudWatch Alarms created by the construct for Kinesis Data stream.| ## Default settings From 902652086fd3b7551b6e781112ad77422ba37e67 Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Mon, 20 Dec 2021 19:52:10 -0500 Subject: [PATCH 62/67] Update lerna.v2.json --- source/lerna.v2.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/lerna.v2.json b/source/lerna.v2.json index de1c96ef5..72525247a 100644 --- a/source/lerna.v2.json +++ b/source/lerna.v2.json @@ -6,5 +6,5 @@ "./patterns/@aws-solutions-constructs/*" ], "rejectCycles": "true", - "version": "2.0.0" + "version": "2.2.0" } From bf4582930e79e04fda46ea7fa574a944eeccb4ec Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Mon, 20 Dec 2021 20:35:54 -0500 Subject: [PATCH 63/67] chore(Upgrade NodeJS versions): Change all references to NodeJS 14 (#556) * Replaced NODEJS_14_X * update NODE 12 to NODE 14 * Fix inadverent changes to V2 issues --- source/package.json | 2 +- .../aws-alb-lambda/README.md | 2 +- .../aws-alb-lambda/test/alb-lambda.test.ts | 54 +++++++++--------- ....privateApiExistingResources.expected.json | 2 +- .../test/integ.privateApiExistingResources.ts | 2 +- ...integ.privateApiNewResources.expected.json | 2 +- .../test/integ.privateApiNewResources.ts | 2 +- ...g.publicApiExistingResources.expected.json | 2 +- .../test/integ.publicApiExistingResources.ts | 2 +- .../integ.publicApiNewResources.expected.json | 2 +- .../test/integ.publicApiNewResources.ts | 2 +- .../test/integ.twoTargets.expected.json | 4 +- .../aws-alb-lambda/test/integ.twoTargets.ts | 4 +- .../aws-apigateway-lambda/README.md | 2 +- .../test/test.apigateway-lambda.test.ts | 4 +- .../README.md | 2 +- .../test.cloudfront-apigateway-lambda.test.ts | 14 ++--- .../aws-cloudfront-apigateway/README.md | 2 +- .../test/test.cloudfront-apigateway.test.ts | 6 +- .../aws-cognito-apigateway-lambda/README.md | 4 +- .../test/integ.no-arguments.expected.json | 2 +- .../test/integ.no-arguments.ts | 2 +- .../test.cognito-apigateway-lambda.test.ts | 20 +++---- .../README.md | 2 +- ...stream-lambda-elasticsearch-kibana.test.ts | 2 +- .../test/integ.no-arguments.expected.json | 2 +- .../test/integ.no-arguments.ts | 2 +- .../aws-dynamodb-stream-lambda/README.md | 2 +- .../test/dynamodb-stream-lambda.test.ts | 10 ++-- .../test/integ.existing-table.expected.json | 2 +- .../test/integ.existing-table.ts | 2 +- .../test/integ.no-arguments.expected.json | 2 +- .../test/integ.no-arguments.ts | 2 +- .../README.md | 2 +- ...treams-lambda-elasticsearch-kibana.test.ts | 2 +- .../test/integ.no-arguments.expected.json | 2 +- .../test/integ.no-arguments.ts | 2 +- .../aws-dynamodbstreams-lambda/README.md | 2 +- .../test/dynamodbstreams-lambda.test.ts | 10 ++-- .../test/integ.existing-table.expected.json | 2 +- .../test/integ.existing-table.ts | 2 +- .../test/integ.no-arguments.expected.json | 2 +- .../test/integ.no-arguments.ts | 2 +- .../aws-eventbridge-lambda/README.md | 2 +- .../test/eventbridge-lambda.test.ts | 10 ++-- ...ventbridge-existing-eventbus.expected.json | 2 +- .../integ.eventbridge-existing-eventbus.ts | 2 +- ...teg.eventbridge-new-eventbus.expected.json | 2 +- .../test/integ.eventbridge-new-eventbus.ts | 2 +- ...nteg.eventbridge-no-argument.expected.json | 2 +- .../test/integ.eventbridge-no-argument.ts | 2 +- ...pfunctions-existing-eventbus.expected.json | 2 +- ...tbridge-stepfunctions-existing-eventbus.ts | 2 +- ...e-stepfunctions-new-eventbus.expected.json | 2 +- ....eventbridge-stepfunctions-new-eventbus.ts | 2 +- ...ge-stepfunctions-with-lambda.expected.json | 2 +- ...g.eventbridge-stepfunctions-with-lambda.ts | 2 +- .../aws-events-rule-lambda/README.md | 2 +- .../test/events-rule-lambda.test.ts | 10 ++-- ...nteg.events-rule-no-argument.expected.json | 2 +- .../test/integ.events-rule-no-argument.ts | 2 +- ...eventsrule-existing-eventbus.expected.json | 2 +- .../integ.eventsrule-existing-eventbus.ts | 2 +- ...nteg.eventsrule-new-eventbus.expected.json | 2 +- .../test/integ.eventsrule-new-eventbus.ts | 2 +- ...le-step-function-with-lambda.expected.json | 2 +- ...g.events-rule-step-function-with-lambda.ts | 2 +- ...pfunctions-existing-eventbus.expected.json | 2 +- ...ts-rule-stepfunctions-existing-eventbus.ts | 2 +- ...e-stepfunctions-new-eventbus.expected.json | 2 +- ....events-rule-stepfunctions-new-eventbus.ts | 2 +- .../aws-iot-lambda-dynamodb/README.md | 2 +- .../integ.iot-lambda-dynamodb.expected.json | 2 +- .../test/integ.iot-lambda-dynamodb.ts | 2 +- .../test/iot-lambda-dynamodb.test.ts | 4 +- .../aws-iot-lambda/README.md | 2 +- .../integ.iot-lambda-new-func.expected.json | 2 +- .../test/integ.iot-lambda-new-func.ts | 2 +- ...iot-lambda-use-existing-func.expected.json | 2 +- .../integ.iot-lambda-use-existing-func.ts | 2 +- .../aws-iot-lambda/test/iot-lambda.test.ts | 4 +- .../aws-kinesisstreams-lambda/README.md | 2 +- .../test/test.kinesisstreams-lambda.test.ts | 10 ++-- .../aws-lambda-dynamodb/README.md | 2 +- .../test/lambda-dynamodb.test.ts | 26 ++++----- .../aws-lambda-elasticsearch-kibana/README.md | 2 +- .../test/integ.domain-arguments.expected.json | 2 +- .../test/integ.domain-arguments.ts | 2 +- .../test/integ.no-arguments.expected.json | 2 +- .../test/integ.no-arguments.ts | 2 +- .../test/lambda-elasticsearch-kibana.test.ts | 4 +- .../aws-lambda-eventbridge/README.md | 2 +- .../test/aws-lambda-eventbridge.test.ts | 28 +++++----- .../test/integ.deployFunction.expected.json | 2 +- .../test/integ.deployFunction.ts | 2 +- ...eployFunctionWithNewEventBus.expected.json | 2 +- .../integ.deployFunctionWithNewEventBus.ts | 2 +- .../test/integ.existingEventBus.expected.json | 2 +- .../test/integ.existingEventBus.ts | 2 +- .../test/integ.existingFunction.expected.json | 2 +- .../test/integ.existingFunction.ts | 2 +- .../aws-lambda-s3/README.md | 2 +- .../aws-lambda-s3/test/lambda-s3.test.ts | 22 ++++---- .../test/lambda-secretsmanager.test.ts | 18 +++--- .../aws-lambda-sns/README.md | 2 +- .../aws-lambda-sns/test/lambda-sns.test.ts | 18 +++--- .../aws-lambda-sqs-lambda/README.md | 4 +- .../test/lambda-sqs-lambda.test.ts | 56 +++++++++---------- .../aws-lambda-sqs/README.md | 2 +- .../aws-lambda-sqs/test/lambda-sqs.test.ts | 12 ++-- .../aws-lambda-step-function/README.md | 2 +- .../test/integ.deploy-lambda.expected.json | 2 +- .../test/integ.deploy-lambda.ts | 2 +- .../integ.existing-function.expected.json | 2 +- .../test/integ.existing-function.ts | 2 +- .../test/lambda-step-function.test.ts | 20 +++---- .../aws-lambda-stepfunctions/README.md | 2 +- .../test/lambda-stepfunctions.test.ts | 20 +++---- .../aws-s3-lambda/README.md | 2 +- .../integ.existing-s3-bucket.expected.json | 2 +- .../test/integ.existing-s3-bucket.ts | 2 +- .../test/integ.no-arguments.expected.json | 2 +- .../aws-s3-lambda/test/integ.no-arguments.ts | 2 +- .../aws-s3-lambda/test/s3-lambda.test.ts | 8 +-- .../aws-sns-lambda/README.md | 2 +- .../test/integ.no-arguments.expected.json | 2 +- .../aws-sns-lambda/test/integ.no-arguments.ts | 2 +- .../aws-sns-lambda/test/sns-lambda.test.ts | 6 +- .../aws-sqs-lambda/README.md | 2 +- .../test/integ.deployFifoQueue.expected.json | 2 +- .../test/integ.deployFifoQueue.ts | 2 +- .../test/integ.deployFunction.expected.json | 2 +- .../test/integ.deployFunction.ts | 2 +- .../test/integ.existingFunction.expected.json | 2 +- .../test/integ.existingFunction.ts | 2 +- .../test/test.sqs-lambda.test.ts | 6 +- ...ing-waf-to-multiple-gateways.expected.json | 4 +- ...integ.existing-waf-to-multiple-gateways.ts | 2 +- .../test/integ.no-arguments.expected.json | 2 +- .../test/integ.no-arguments.ts | 2 +- .../core/lib/lambda-helper.ts | 4 +- .../core/test/apigateway-helper.test.ts | 14 ++--- ...nt-distribution-api-gateway-helper.test.ts | 6 +- .../cloudfront-distribution-s3-helper.test.ts | 2 +- .../core/test/lambda-helper.test.ts | 26 ++++----- .../test/integ.basic-deployment.expected.json | 4 +- .../s3-static-site-stack.test.js.snap | 4 +- .../test/integ.basic-deployment.expected.json | 4 +- .../aws-serverless-image-handler/README.md | 2 +- .../aws-serverless-image-handler/lib/index.ts | 2 +- ...test.serverless-image-handler.test.js.snap | 4 +- .../test/integ.basic-deployment.expected.json | 4 +- .../lib/serverless-backend-stack.ts | 2 +- .../s3-static-site-stack.test.js.snap | 4 +- .../serverless-backend-stack.test.js.snap | 4 +- ...s3-static-website-deployment.expected.json | 4 +- ...integ.002-backend-deployment.expected.json | 4 +- 157 files changed, 367 insertions(+), 367 deletions(-) diff --git a/source/package.json b/source/package.json index b1cfbb1e7..2507a08e4 100644 --- a/source/package.json +++ b/source/package.json @@ -27,7 +27,7 @@ "jsii-pacmak": "1.47.0", "tslint": "^5.20.1", "typescript": "~3.9.7", - "aws-cdk-migration": "^1.136.0" + "aws-cdk-migration": "^1.135.0" }, "devDependencies": { "lerna": "^3.22.1" diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/README.md b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/README.md index 0f683bd01..5fba17024 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/README.md @@ -37,7 +37,7 @@ Here is a minimal deployable pattern definition in Typescript: const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, listenerProps: { diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/alb-lambda.test.ts b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/alb-lambda.test.ts index 6579ab95c..b51fb6123 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/alb-lambda.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/alb-lambda.test.ts @@ -47,7 +47,7 @@ test('Test new load balancer and new lambda function', () => { const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, listenerProps: { @@ -106,7 +106,7 @@ test('Test new load balancer and new lambda function for HTTP api', () => { const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, listenerProps: { @@ -154,7 +154,7 @@ test('Test existing load balancer and new lambda function', () => { const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, listenerProps: { @@ -198,7 +198,7 @@ test('Test new load balancer and existing lambda function', () => { const lambdaFunction = new lambda.Function(stack, 'existing-function', { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', functionName: testFunctionName, vpc: testExistingVpc @@ -254,7 +254,7 @@ test("Test existing load balancer and existing lambda function", () => { const lambdaFunction = new lambda.Function(stack, "existing-function", { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", functionName: testFunctionName, vpc: testExistingVpc, @@ -307,7 +307,7 @@ test('Test new load balancer and new lambda function', () => { const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', functionName: testFunctionName, }, @@ -353,7 +353,7 @@ test('Test HTTPS adding 2 lambda targets, second with rules', () => { const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, listenerProps: { @@ -366,7 +366,7 @@ test('Test HTTPS adding 2 lambda targets, second with rules', () => { const secondProps: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, ruleProps: { @@ -422,7 +422,7 @@ test('Test HTTP adding 2 lambda targets, second with rules', () => { const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, listenerProps: { @@ -435,7 +435,7 @@ test('Test HTTP adding 2 lambda targets, second with rules', () => { const secondProps: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, ruleProps: { @@ -491,7 +491,7 @@ test('Test new load balancer and new lambda function', () => { const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, listenerProps: { @@ -533,7 +533,7 @@ test('Test logging turned off', () => { const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, listenerProps: { @@ -559,7 +559,7 @@ test('Check Properties', () => { const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, listenerProps: { @@ -584,7 +584,7 @@ test('Test custom ALB properties', () => { const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, listenerProps: { @@ -627,7 +627,7 @@ test('Test custom logging bucket', () => { const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, listenerProps: { @@ -673,7 +673,7 @@ test('Test providing certificateArns is an error', () => { const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, listenerProps: { @@ -701,7 +701,7 @@ test('Test logging off with logBucketProperties provided is an error', () => { const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, listenerProps: { @@ -730,7 +730,7 @@ test('Test certificate with HTTP is an error', () => { const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, listenerProps: { @@ -753,7 +753,7 @@ test('Test new ALB with no listenerProps is an error', () => { const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, publicApi: true @@ -781,7 +781,7 @@ test('Test existing ALB with no listener with no listenerProps is an error', () const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, existingLoadBalancerObj: existingAlb, @@ -803,7 +803,7 @@ test('Test existing ALB with a listener with listenerProps is an error', () => { const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, listenerProps: { @@ -816,7 +816,7 @@ test('Test existing ALB with a listener with listenerProps is an error', () => { const secondProps: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, ruleProps: { @@ -846,7 +846,7 @@ test('Test second target with no rules is an error', () => { const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, listenerProps: { @@ -859,7 +859,7 @@ test('Test second target with no rules is an error', () => { const secondProps: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, existingVpc: firstConstruct.vpc, @@ -881,7 +881,7 @@ test('Test no cert for an HTTPS listener is an error', () => { const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, listenerProps: { @@ -910,7 +910,7 @@ test('Test existingLoadBalancerObj and loadBalancerProps is an error', () => { const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, listenerProps: { @@ -945,7 +945,7 @@ test('Test existingLoadBalancerObj and no existingVpc is an error', () => { const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, listenerProps: { diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiExistingResources.expected.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiExistingResources.expected.json index 515e1b95a..3e91712f2 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiExistingResources.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiExistingResources.expected.json @@ -807,7 +807,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiExistingResources.ts b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiExistingResources.ts index b53739aa8..f2b1efb7e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiExistingResources.ts +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiExistingResources.ts @@ -44,7 +44,7 @@ const testSg = new SecurityGroup(stack, 'lambda-sg', { vpc: myVpc, allowAllOutbo const lambdaFunction = defaults.buildLambdaFunction(stack, { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', vpc: myVpc, securityGroups: [ testSg ] diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiNewResources.expected.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiNewResources.expected.json index c1d3730a3..c1e82e767 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiNewResources.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiNewResources.expected.json @@ -373,7 +373,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiNewResources.ts b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiNewResources.ts index 88161e7a7..28ccb2992 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiNewResources.ts +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiNewResources.ts @@ -33,7 +33,7 @@ stack.templateOptions.description = 'Integration Test for HTTP API with a new fu const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, listenerProps: { diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiExistingResources.expected.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiExistingResources.expected.json index fde6dfbd6..1faf9a970 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiExistingResources.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiExistingResources.expected.json @@ -807,7 +807,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiExistingResources.ts b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiExistingResources.ts index 26c69465c..6317a32fe 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiExistingResources.ts +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiExistingResources.ts @@ -44,7 +44,7 @@ const testSg = new SecurityGroup(stack, 'lambda-sg', { vpc: myVpc, allowAllOutbo const lambdaFunction = defaults.buildLambdaFunction(stack, { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', vpc: myVpc, securityGroups: [ testSg ] diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiNewResources.expected.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiNewResources.expected.json index 450af8a18..3d88d4375 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiNewResources.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiNewResources.expected.json @@ -376,7 +376,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiNewResources.ts b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiNewResources.ts index bf28c6de7..dcc46da12 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiNewResources.ts +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiNewResources.ts @@ -33,7 +33,7 @@ stack.templateOptions.description = 'Integration Test for public HTTP API with a const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, listenerProps: { diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.twoTargets.expected.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.twoTargets.expected.json index 2c98fe99a..e0052d754 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.twoTargets.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.twoTargets.expected.json @@ -376,7 +376,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" }, @@ -1323,7 +1323,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.twoTargets.ts b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.twoTargets.ts index 7b9d9e5da..302c0186b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.twoTargets.ts +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.twoTargets.ts @@ -34,7 +34,7 @@ stack.templateOptions.description = 'Integration test for alb with 2 Lambda targ const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, listenerProps: { @@ -47,7 +47,7 @@ const firstConstruct = new AlbToLambda(stack, 'test-one', props); const secondProps: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, ruleProps: { diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/README.md b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/README.md index 80182026b..de9a77233 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/README.md @@ -29,7 +29,7 @@ import { ApiGatewayToLambda } from '@aws-solutions-constructs/aws-apigateway-lam new ApiGatewayToLambda(this, 'ApiGatewayToLambdaPattern', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) } diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/test.apigateway-lambda.test.ts b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/test.apigateway-lambda.test.ts index 68d348a51..7c8e18ea0 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/test.apigateway-lambda.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/test.apigateway-lambda.test.ts @@ -72,7 +72,7 @@ test('Test properties', () => { const stack = new Stack(); const props: ApiGatewayToLambdaProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) } @@ -115,7 +115,7 @@ test('Test deployment ApiGateway AuthorizationType override', () => { } }, lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) } diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/README.md b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/README.md index 28b782cc9..ee9640d3e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/README.md @@ -28,7 +28,7 @@ import { CloudFrontToApiGatewayToLambda } from '@aws-solutions-constructs/aws-cl new CloudFrontToApiGatewayToLambda(this, 'test-cloudfront-apigateway-lambda', { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' } }); diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/test.cloudfront-apigateway-lambda.test.ts b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/test.cloudfront-apigateway-lambda.test.ts index 3588f48b3..736e25af3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/test.cloudfront-apigateway-lambda.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/test.cloudfront-apigateway-lambda.test.ts @@ -21,7 +21,7 @@ import '@aws-cdk/assert/jest'; function deployNewFunc(stack: cdk.Stack) { const lambdaFunctionProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }; @@ -32,7 +32,7 @@ function deployNewFunc(stack: cdk.Stack) { function useExistingFunc(stack: cdk.Stack) { const lambdaFunctionProps: lambda.FunctionProps = { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; @@ -69,7 +69,7 @@ test('check lambda function properties for deploy: true', () => { "Arn" ] }, - Runtime: "nodejs10.x", + Runtime: "nodejs14.x", Environment: { Variables: { AWS_NODEJS_CONNECTION_REUSE_ENABLED: "1" @@ -144,7 +144,7 @@ test('override api gateway properties with existingLambdaObj', () => { const lambdaFunctionProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }; @@ -177,7 +177,7 @@ test('override api gateway properties without existingLambdaObj', () => { new CloudFrontToApiGatewayToLambda(stack, 'test-cloudfront-apigateway-lambda', { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, apiGatewayProps: { @@ -211,7 +211,7 @@ test('Cloudfront logging bucket with destroy removal policy and auto delete obje new CloudFrontToApiGatewayToLambda(stack, 'test-cloudfront-apigateway-lambda', { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, apiGatewayProps: { @@ -252,7 +252,7 @@ test('Cloudfront logging bucket error when providing existing log bucket and log const app = () => { new CloudFrontToApiGatewayToLambda(stack, 'cloudfront-s3', { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, apiGatewayProps: { diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/README.md b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/README.md index 520a12b62..a16d7678c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/README.md @@ -29,7 +29,7 @@ import { CloudFrontToApiGateway } from '@aws-solutions-constructs/aws-cloudfront const lambdaProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }; diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/test.cloudfront-apigateway.test.ts b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/test.cloudfront-apigateway.test.ts index 28b89b96c..5fbf332db 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/test.cloudfront-apigateway.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/test.cloudfront-apigateway.test.ts @@ -22,7 +22,7 @@ import '@aws-cdk/assert/jest'; function deploy(stack: cdk.Stack) { const inProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }; @@ -168,7 +168,7 @@ test('Cloudfront logging bucket with destroy removal policy and auto delete obje const inProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }; @@ -209,7 +209,7 @@ test('Cloudfront logging bucket error when providing existing log bucket and log const inProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }; diff --git a/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/README.md b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/README.md index 928c253ad..e72d3931b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/README.md @@ -32,7 +32,7 @@ import { CognitoToApiGatewayToLambda } from '@aws-solutions-constructs/aws-cogni new CognitoToApiGatewayToLambda(this, 'test-cognito-apigateway-lambda', { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' } }); @@ -46,7 +46,7 @@ import { CognitoToApiGatewayToLambda } from '@aws-solutions-constructs/aws-cogni const construct = new CognitoToApiGatewayToLambda(this, 'test-cognito-apigateway-lambda', { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, apiGatewayProps: { diff --git a/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.no-arguments.expected.json index ac9fec935..c5cd10081 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.no-arguments.expected.json @@ -110,7 +110,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.no-arguments.ts b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.no-arguments.ts index d753542b2..4f595c83a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.no-arguments.ts +++ b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.no-arguments.ts @@ -24,7 +24,7 @@ const stack = new Stack(app, generateIntegStackName(__filename)); const lambdaProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }; diff --git a/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/test.cognito-apigateway-lambda.test.ts b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/test.cognito-apigateway-lambda.test.ts index 6f2f5a97b..671929ccf 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/test.cognito-apigateway-lambda.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/test.cognito-apigateway-lambda.test.ts @@ -21,7 +21,7 @@ import '@aws-cdk/assert/jest'; function deployNewFunc(stack: cdk.Stack) { const lambdaFunctionProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }; @@ -35,7 +35,7 @@ test('override cognito properties', () => { const lambdaFunctionProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }; @@ -102,7 +102,7 @@ test('override cognito cognitoUserPoolClientProps', () => { const lambdaFunctionProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }; @@ -130,7 +130,7 @@ test('Check for default Cognito Auth Type', () => { const lambdaFunctionProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }; @@ -168,7 +168,7 @@ test('override Auth Type to COGNITO', () => { const lambdaFunctionProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }; @@ -211,7 +211,7 @@ test('Try to override Auth Type to NONE', () => { const lambdaFunctionProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }; @@ -254,7 +254,7 @@ test('Override apiGatewayProps', () => { const lambdaFunctionProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }; @@ -299,7 +299,7 @@ test('Override apiGatewayProps to support CORS', () => { const lambdaFunctionProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }; @@ -364,7 +364,7 @@ test('Override apiGatewayProps with proxy = false and add POST method', () => { const lambdaFunctionProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }; @@ -402,7 +402,7 @@ test('Override apiGatewayProps with proxy = false and add OPTIONS method', () => const lambdaFunctionProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }; diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda-elasticsearch-kibana/README.md b/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda-elasticsearch-kibana/README.md index 2b71dbacf..751f159e9 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda-elasticsearch-kibana/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda-elasticsearch-kibana/README.md @@ -31,7 +31,7 @@ import { Aws } from "@aws-cdk/core"; const props: DynamoDBStreamToLambdaToElasticSearchAndKibanaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, domainName: 'test-domain', diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda-elasticsearch-kibana/test/dynamodb-stream-lambda-elasticsearch-kibana.test.ts b/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda-elasticsearch-kibana/test/dynamodb-stream-lambda-elasticsearch-kibana.test.ts index b642b01ff..d9c7c5c9b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda-elasticsearch-kibana/test/dynamodb-stream-lambda-elasticsearch-kibana.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda-elasticsearch-kibana/test/dynamodb-stream-lambda-elasticsearch-kibana.test.ts @@ -20,7 +20,7 @@ function deployNewFunc(stack: cdk.Stack) { const props: DynamoDBStreamToLambdaToElasticSearchAndKibanaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, domainName: 'test-domain' diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda-elasticsearch-kibana/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda-elasticsearch-kibana/test/integ.no-arguments.expected.json index d8dc15d28..3f752752d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda-elasticsearch-kibana/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda-elasticsearch-kibana/test/integ.no-arguments.expected.json @@ -149,7 +149,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda-elasticsearch-kibana/test/integ.no-arguments.ts b/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda-elasticsearch-kibana/test/integ.no-arguments.ts index b6bcf7106..006db267e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda-elasticsearch-kibana/test/integ.no-arguments.ts +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda-elasticsearch-kibana/test/integ.no-arguments.ts @@ -25,7 +25,7 @@ const stack = new Stack(app, generateIntegStackName(__filename)); const props: DynamoDBStreamToLambdaToElasticSearchAndKibanaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, domainName: 'testdomainconstructs' diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/README.md b/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/README.md index af4f0f2a0..8c78eaf78 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/README.md @@ -29,7 +29,7 @@ import { DynamoDBStreamToLambdaProps, DynamoDBStreamToLambda} from '@aws-soluti new DynamoDBStreamToLambda(this, 'test-dynamodb-stream-lambda', { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, }); diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/test/dynamodb-stream-lambda.test.ts b/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/test/dynamodb-stream-lambda.test.ts index c07cfa2cd..8f5f9708a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/test/dynamodb-stream-lambda.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/test/dynamodb-stream-lambda.test.ts @@ -21,7 +21,7 @@ function deployNewFunc(stack: cdk.Stack) { const props: DynamoDBStreamToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, }; @@ -56,7 +56,7 @@ test('check DynamoEventSourceProps override', () => { const props: DynamoDBStreamToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, dynamoEventSourceProps: { @@ -141,7 +141,7 @@ test('check dynamodb table stream override', () => { const props: DynamoDBStreamToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, dynamoTableProps: { @@ -202,7 +202,7 @@ test('check getter methods with existingTableInterface', () => { }), lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, }); @@ -233,7 +233,7 @@ test('check dynamodb table stream override with ITable', () => { const props: DynamoDBStreamToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, existingTableInterface diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/test/integ.existing-table.expected.json b/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/test/integ.existing-table.expected.json index 004c7a985..f65e42fd2 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/test/integ.existing-table.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/test/integ.existing-table.expected.json @@ -172,7 +172,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/test/integ.existing-table.ts b/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/test/integ.existing-table.ts index 4643c7eb2..feefc2a6e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/test/integ.existing-table.ts +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/test/integ.existing-table.ts @@ -36,7 +36,7 @@ const table = new dynamodb.Table(stack, 'mytable', { const props: DynamoDBStreamToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, existingTableInterface: table diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/test/integ.no-arguments.expected.json index b770fc38d..46db63033 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/test/integ.no-arguments.expected.json @@ -143,7 +143,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/test/integ.no-arguments.ts b/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/test/integ.no-arguments.ts index 70a9f33e3..d640edebf 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/test/integ.no-arguments.ts +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/test/integ.no-arguments.ts @@ -25,7 +25,7 @@ const stack = new Stack(app, generateIntegStackName(__filename)); const props: DynamoDBStreamToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, dynamoEventSourceProps: { diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/README.md b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/README.md index 5257ff6f3..82bc85882 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/README.md @@ -33,7 +33,7 @@ import { Aws } from "@aws-cdk/core"; const props: DynamoDBStreamsToLambdaToElasticSearchAndKibanaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, domainName: 'test-domain', diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/dynamodbstreams-lambda-elasticsearch-kibana.test.ts b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/dynamodbstreams-lambda-elasticsearch-kibana.test.ts index a152a6161..c8afc5551 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/dynamodbstreams-lambda-elasticsearch-kibana.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/dynamodbstreams-lambda-elasticsearch-kibana.test.ts @@ -20,7 +20,7 @@ function deployNewFunc(stack: cdk.Stack) { const props: DynamoDBStreamsToLambdaToElasticSearchAndKibanaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, domainName: 'test-domain' diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.no-arguments.expected.json index c6e65786e..56b30e213 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.no-arguments.expected.json @@ -149,7 +149,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.no-arguments.ts b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.no-arguments.ts index 7edb4456d..8665697d3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.no-arguments.ts +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.no-arguments.ts @@ -25,7 +25,7 @@ const stack = new Stack(app, generateIntegStackName(__filename)); const props: DynamoDBStreamsToLambdaToElasticSearchAndKibanaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, domainName: 'domaintest', diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/README.md b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/README.md index 136dcdf11..19ffad291 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/README.md @@ -32,7 +32,7 @@ import { DynamoDBStreamsToLambdaProps, DynamoDBStreamsToLambda} from '@aws-solu new DynamoDBStreamsToLambda(this, 'test-dynamodbstreams-lambda', { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, }); diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/dynamodbstreams-lambda.test.ts b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/dynamodbstreams-lambda.test.ts index aad7d6be3..e588e1027 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/dynamodbstreams-lambda.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/dynamodbstreams-lambda.test.ts @@ -21,7 +21,7 @@ function deployNewFunc(stack: cdk.Stack) { const props: DynamoDBStreamsToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, }; @@ -56,7 +56,7 @@ test('check DynamoEventSourceProps override', () => { const props: DynamoDBStreamsToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, dynamoEventSourceProps: { @@ -141,7 +141,7 @@ test('check dynamodb table stream override', () => { const props: DynamoDBStreamsToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, dynamoTableProps: { @@ -202,7 +202,7 @@ test('check getter methods with existingTableInterface', () => { }), lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, }); @@ -233,7 +233,7 @@ test('check dynamodb table stream override with ITable', () => { const props: DynamoDBStreamsToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, existingTableInterface diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.existing-table.expected.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.existing-table.expected.json index f3e1ec550..93af8872f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.existing-table.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.existing-table.expected.json @@ -172,7 +172,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.existing-table.ts b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.existing-table.ts index 001205864..d909ba9c0 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.existing-table.ts +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.existing-table.ts @@ -36,7 +36,7 @@ const table = new dynamodb.Table(stack, 'mytable', { const props: DynamoDBStreamsToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, existingTableInterface: table diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.no-arguments.expected.json index 46bbdde55..78943da4e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.no-arguments.expected.json @@ -143,7 +143,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.no-arguments.ts b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.no-arguments.ts index e50434102..931144239 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.no-arguments.ts +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.no-arguments.ts @@ -25,7 +25,7 @@ const stack = new Stack(app, generateIntegStackName(__filename)); const props: DynamoDBStreamsToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, dynamoEventSourceProps: { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/README.md b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/README.md index d3178f267..a642d2499 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/README.md @@ -28,7 +28,7 @@ const { EventbridgeToLambdaProps, EventbridgeToLambda } from '@aws-solutions-con const props: EventbridgeToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, eventRuleProps: { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/eventbridge-lambda.test.ts b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/eventbridge-lambda.test.ts index d2f44dafe..092bdeb62 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/eventbridge-lambda.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/eventbridge-lambda.test.ts @@ -21,7 +21,7 @@ function deployNewFunc(stack: cdk.Stack) { const props: EventbridgeToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, eventRuleProps: { @@ -36,7 +36,7 @@ function deployNewEventBus(stack: cdk.Stack) { const props: EventbridgeToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, eventBusProps: { eventBusName: 'test' }, @@ -62,7 +62,7 @@ test('check lambda function properties for deploy: true', () => { "Arn" ] }, - Runtime: "nodejs12.x", + Runtime: "nodejs14.x", Environment: { Variables: { AWS_NODEJS_CONNECTION_REUSE_ENABLED: "1" @@ -218,7 +218,7 @@ test('check exception while passing existingEventBus & eventBusProps', () => { const props: EventbridgeToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, eventRuleProps: { @@ -242,7 +242,7 @@ test('check custom event bus resource with props when deploy:true', () => { const props: EventbridgeToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, eventBusProps: { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-existing-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-existing-eventbus.expected.json index f9d6504f8..c3e762fdb 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-existing-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-existing-eventbus.expected.json @@ -116,7 +116,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-existing-eventbus.ts b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-existing-eventbus.ts index 1bcc347f9..2ff4e3a36 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-existing-eventbus.ts +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-existing-eventbus.ts @@ -26,7 +26,7 @@ const existingEventBus = new events.EventBus(stack, `existing-event-bus`, { eve const props: EventbridgeToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, existingEventBusInterface: existingEventBus, diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-new-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-new-eventbus.expected.json index 88aa31896..6a9a6027b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-new-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-new-eventbus.expected.json @@ -110,7 +110,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-new-eventbus.ts b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-new-eventbus.ts index 2247a9cf4..daf3b45c2 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-new-eventbus.ts +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-new-eventbus.ts @@ -23,7 +23,7 @@ const stack = new Stack(app, generateIntegStackName(__filename)); const props: EventbridgeToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, eventBusProps: { eventBusName: 'test' }, diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-no-argument.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-no-argument.expected.json index 6f2ee3670..0b849607a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-no-argument.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-no-argument.expected.json @@ -110,7 +110,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-no-argument.ts b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-no-argument.ts index 7caf2b674..4e5591e3a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-no-argument.ts +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-no-argument.ts @@ -25,7 +25,7 @@ const stack = new Stack(app, generateIntegStackName(__filename)); const props: EventbridgeToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, eventRuleProps: { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-existing-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-existing-eventbus.expected.json index cf8d4fac0..5383f1496 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-existing-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-existing-eventbus.expected.json @@ -110,7 +110,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-existing-eventbus.ts b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-existing-eventbus.ts index 6f9e0159e..5490052fd 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-existing-eventbus.ts +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-existing-eventbus.ts @@ -26,7 +26,7 @@ const app = new App(); const stack = new Stack(app, generateIntegStackName(__filename)); const submitLambda = deployLambdaFunction(stack, { - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, code: lambda.Code.fromAsset(`${__dirname}/lambda`), handler: 'index.handler' }); diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-new-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-new-eventbus.expected.json index db924a88d..b8f835e74 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-new-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-new-eventbus.expected.json @@ -110,7 +110,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-new-eventbus.ts b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-new-eventbus.ts index f361c0ae8..1080ae8d7 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-new-eventbus.ts +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-new-eventbus.ts @@ -25,7 +25,7 @@ const app = new App(); const stack = new Stack(app, generateIntegStackName(__filename)); const submitLambda = deployLambdaFunction(stack, { - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, code: lambda.Code.fromAsset(`${__dirname}/lambda`), handler: 'index.handler' }); diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-with-lambda.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-with-lambda.expected.json index 2d78caa87..b0f253dec 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-with-lambda.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-with-lambda.expected.json @@ -110,7 +110,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-with-lambda.ts b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-with-lambda.ts index 9d0ece4a9..f9f86fc49 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-with-lambda.ts +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-with-lambda.ts @@ -26,7 +26,7 @@ const app = new App(); const stack = new Stack(app, generateIntegStackName(__filename)); const submitLambda = deployLambdaFunction(stack, { - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, code: lambda.Code.fromAsset(`${__dirname}/lambda`), handler: 'index.handler' }); diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/README.md b/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/README.md index 5cd8b6a26..e63157f03 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/README.md @@ -30,7 +30,7 @@ import { EventsRuleToLambdaProps, EventsRuleToLambda } from '@aws-solutions-cons const props: EventsRuleToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, eventRuleProps: { diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/events-rule-lambda.test.ts b/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/events-rule-lambda.test.ts index a18715051..cb90dfac0 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/events-rule-lambda.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/events-rule-lambda.test.ts @@ -21,7 +21,7 @@ function deployNewFunc(stack: cdk.Stack) { const props: EventsRuleToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, eventRuleProps: { @@ -36,7 +36,7 @@ function deployNewEventBus(stack: cdk.Stack) { const props: EventsRuleToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, eventBusProps: { eventBusName: 'test' }, @@ -62,7 +62,7 @@ test('check lambda function properties for deploy: true', () => { "Arn" ] }, - Runtime: "nodejs12.x", + Runtime: "nodejs14.x", Environment: { Variables: { AWS_NODEJS_CONNECTION_REUSE_ENABLED: "1" @@ -219,7 +219,7 @@ test('check exception while passing existingEventBus & eventBusProps', () => { const props: EventsRuleToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, eventRuleProps: { @@ -243,7 +243,7 @@ test('check custom event bus resource with props when deploy:true', () => { const props: EventsRuleToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, eventBusProps: { diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.events-rule-no-argument.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.events-rule-no-argument.expected.json index e7f857813..5f4a2ed3a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.events-rule-no-argument.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.events-rule-no-argument.expected.json @@ -110,7 +110,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.events-rule-no-argument.ts b/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.events-rule-no-argument.ts index b62b2ce8a..40e0b84db 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.events-rule-no-argument.ts +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.events-rule-no-argument.ts @@ -25,7 +25,7 @@ const stack = new Stack(app, generateIntegStackName(__filename)); const props: EventsRuleToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, eventRuleProps: { diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.eventsrule-existing-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.eventsrule-existing-eventbus.expected.json index 1072df38b..258be2bd8 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.eventsrule-existing-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.eventsrule-existing-eventbus.expected.json @@ -116,7 +116,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.eventsrule-existing-eventbus.ts b/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.eventsrule-existing-eventbus.ts index c331e9b0d..ab1052b50 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.eventsrule-existing-eventbus.ts +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.eventsrule-existing-eventbus.ts @@ -26,7 +26,7 @@ const existingEventBus = new events.EventBus(stack, `existing-event-bus`, { eve const props: EventsRuleToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, existingEventBusInterface: existingEventBus, diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.eventsrule-new-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.eventsrule-new-eventbus.expected.json index dc068a66a..091e347e0 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.eventsrule-new-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.eventsrule-new-eventbus.expected.json @@ -110,7 +110,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.eventsrule-new-eventbus.ts b/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.eventsrule-new-eventbus.ts index b4c48a68d..e9924d876 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.eventsrule-new-eventbus.ts +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/test/integ.eventsrule-new-eventbus.ts @@ -23,7 +23,7 @@ const stack = new Stack(app, generateIntegStackName(__filename)); const props: EventsRuleToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, eventBusProps: { eventBusName: 'test' }, diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-step-function-with-lambda.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-step-function-with-lambda.expected.json index a349371c2..75074665b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-step-function-with-lambda.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-step-function-with-lambda.expected.json @@ -110,7 +110,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-step-function-with-lambda.ts b/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-step-function-with-lambda.ts index bd434ac22..9e0b0981c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-step-function-with-lambda.ts +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-step-function-with-lambda.ts @@ -26,7 +26,7 @@ const app = new App(); const stack = new Stack(app, generateIntegStackName(__filename)); const submitLambda = deployLambdaFunction(stack, { - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, code: lambda.Code.fromAsset(`${__dirname}/lambda`), handler: 'index.handler' }); diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-stepfunctions-existing-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-stepfunctions-existing-eventbus.expected.json index 92d3f373a..1ce660a24 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-stepfunctions-existing-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-stepfunctions-existing-eventbus.expected.json @@ -110,7 +110,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-stepfunctions-existing-eventbus.ts b/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-stepfunctions-existing-eventbus.ts index e42286533..82aed9b7d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-stepfunctions-existing-eventbus.ts +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-stepfunctions-existing-eventbus.ts @@ -26,7 +26,7 @@ const app = new App(); const stack = new Stack(app, generateIntegStackName(__filename)); const submitLambda = deployLambdaFunction(stack, { - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, code: lambda.Code.fromAsset(`${__dirname}/lambda`), handler: 'index.handler' }); diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-stepfunctions-new-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-stepfunctions-new-eventbus.expected.json index 2f82a4b2e..10430cc99 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-stepfunctions-new-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-stepfunctions-new-eventbus.expected.json @@ -110,7 +110,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-stepfunctions-new-eventbus.ts b/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-stepfunctions-new-eventbus.ts index 73cc202db..18212c1e2 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-stepfunctions-new-eventbus.ts +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/test/integ.events-rule-stepfunctions-new-eventbus.ts @@ -25,7 +25,7 @@ const app = new App(); const stack = new Stack(app, generateIntegStackName(__filename)); const submitLambda = deployLambdaFunction(stack, { - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, code: lambda.Code.fromAsset(`${__dirname}/lambda`), handler: 'index.handler' }); diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/README.md b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/README.md index 235b625ab..3b36e462b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/README.md @@ -32,7 +32,7 @@ const { IotToLambdaToDynamoDBProps, IotToLambdaToDynamoDB } from '@aws-solution const props: IotToLambdaToDynamoDBProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, iotTopicRuleProps: { diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iot-lambda-dynamodb.expected.json b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iot-lambda-dynamodb.expected.json index febd5e379..979be3dc3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iot-lambda-dynamodb.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iot-lambda-dynamodb.expected.json @@ -140,7 +140,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iot-lambda-dynamodb.ts b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iot-lambda-dynamodb.ts index 0140c406a..92dff8a10 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iot-lambda-dynamodb.ts +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iot-lambda-dynamodb.ts @@ -23,7 +23,7 @@ const stack = new Stack(app, generateIntegStackName(__filename)); const props: IotToLambdaToDynamoDBProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, iotTopicRuleProps: { diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/iot-lambda-dynamodb.test.ts b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/iot-lambda-dynamodb.test.ts index c9a637390..6a26b0288 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/iot-lambda-dynamodb.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/iot-lambda-dynamodb.test.ts @@ -20,7 +20,7 @@ function deployStack(stack: cdk.Stack) { const props: IotToLambdaToDynamoDBProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, iotTopicRuleProps: { @@ -49,7 +49,7 @@ test('check lambda function properties', () => { "Arn" ] }, - Runtime: "nodejs10.x", + Runtime: "nodejs14.x", Environment: { Variables: { AWS_NODEJS_CONNECTION_REUSE_ENABLED: "1", diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/README.md b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/README.md index eb1d3116f..efb20accf 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/README.md @@ -32,7 +32,7 @@ const { IotToLambdaProps, IotToLambda } from '@aws-solutions-constructs/aws-iot- const props: IotToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, iotTopicRuleProps: { diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iot-lambda-new-func.expected.json b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iot-lambda-new-func.expected.json index ac2c0c54e..78c28c11f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iot-lambda-new-func.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iot-lambda-new-func.expected.json @@ -110,7 +110,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iot-lambda-new-func.ts b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iot-lambda-new-func.ts index 2aafbd234..e96aece5e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iot-lambda-new-func.ts +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iot-lambda-new-func.ts @@ -23,7 +23,7 @@ const stack = new Stack(app, generateIntegStackName(__filename)); const props: IotToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, iotTopicRuleProps: { diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iot-lambda-use-existing-func.expected.json b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iot-lambda-use-existing-func.expected.json index 53dc8d301..a7dc17f2e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iot-lambda-use-existing-func.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iot-lambda-use-existing-func.expected.json @@ -110,7 +110,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iot-lambda-use-existing-func.ts b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iot-lambda-use-existing-func.ts index e7d36c654..e08d8293c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iot-lambda-use-existing-func.ts +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iot-lambda-use-existing-func.ts @@ -23,7 +23,7 @@ const app = new App(); const stack = new Stack(app, generateIntegStackName(__filename)); const lambdaFunctionProps = { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/iot-lambda.test.ts b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/iot-lambda.test.ts index 466d4681a..b2b7eb87c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/iot-lambda.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/iot-lambda.test.ts @@ -20,7 +20,7 @@ function deployNewFunc(stack: cdk.Stack) { const props: IotToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, iotTopicRuleProps: { @@ -72,7 +72,7 @@ test('check lambda function properties for deploy: true', () => { "Arn" ] }, - Runtime: "nodejs10.x" + Runtime: "nodejs14.x" }); }); diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/README.md b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/README.md index 76e2ff3e4..ae6407a81 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/README.md @@ -31,7 +31,7 @@ new KinesisStreamsToLambda(this, 'KinesisToLambdaPattern', { batchSize: 1 }, lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) } diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/test.kinesisstreams-lambda.test.ts b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/test.kinesisstreams-lambda.test.ts index 959d7c7d1..617a72983 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/test.kinesisstreams-lambda.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/test.kinesisstreams-lambda.test.ts @@ -26,7 +26,7 @@ test('Test properties', () => { const stack = new Stack(); const props: KinesisStreamsToLambdaProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) } @@ -48,7 +48,7 @@ test('Test existing resources', () => { const stack = new Stack(); const fn = new lambda.Function(stack, 'test-fn', { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }); @@ -74,7 +74,7 @@ test('Test existing resources', () => { expect(stack).toHaveResource('AWS::Lambda::Function', { Handler: 'index.handler', - Runtime: 'nodejs10.x', + Runtime: 'nodejs14.x', }); }); @@ -85,7 +85,7 @@ test('test sqsDlqQueueProps override', () => { const stack = new Stack(); const props: KinesisStreamsToLambdaProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, @@ -110,7 +110,7 @@ test('Test properties with no CW Alarms', () => { const stack = new Stack(); const props: KinesisStreamsToLambdaProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/README.md b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/README.md index 05f848431..382141c42 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/README.md @@ -28,7 +28,7 @@ const { LambdaToDynamoDBProps, LambdaToDynamoDB } from '@aws-solutions-construc const props: LambdaToDynamoDBProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, }; diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/lambda-dynamodb.test.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/lambda-dynamodb.test.ts index 4b86d95d6..db4dc8282 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/lambda-dynamodb.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/lambda-dynamodb.test.ts @@ -23,7 +23,7 @@ function deployNewFunc(stack: cdk.Stack) { const props: LambdaToDynamoDBProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, }; @@ -67,7 +67,7 @@ test('check lambda function properties for deploy: true', () => { "Arn" ] }, - Runtime: "nodejs10.x", + Runtime: "nodejs14.x", Environment: { Variables: { AWS_NODEJS_CONNECTION_REUSE_ENABLED: "1", @@ -292,7 +292,7 @@ test('check for no prop', () => { const props: LambdaToDynamoDBProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' } }; @@ -306,7 +306,7 @@ test('check for no prop', () => { "Arn" ] }, - Runtime: "nodejs10.x", + Runtime: "nodejs14.x", Environment: { Variables: { AWS_NODEJS_CONNECTION_REUSE_ENABLED: "1", @@ -324,7 +324,7 @@ test('check lambda function policy ReadOnly table permissions', () => { const props: LambdaToDynamoDBProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, tablePermissions: 'Read' @@ -379,7 +379,7 @@ test('check lambda function policy WriteOnly table permissions', () => { const props: LambdaToDynamoDBProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, tablePermissions: 'Write' @@ -431,7 +431,7 @@ test('check lambda function policy ReadWrite table permissions', () => { const props: LambdaToDynamoDBProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, tablePermissions: 'ReadWrite' @@ -490,7 +490,7 @@ test('check lambda function policy All table permissions', () => { const props: LambdaToDynamoDBProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, tablePermissions: 'All' @@ -567,7 +567,7 @@ test("Test minimal deployment that deploys a VPC without vpcProps", () => { // Helper declaration new LambdaToDynamoDB(stack, "lambda-to-dynamodb-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -617,7 +617,7 @@ test("Test minimal deployment that deploys a VPC w/vpcProps", () => { // Helper declaration new LambdaToDynamoDB(stack, "lambda-to-dynamodb-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -676,7 +676,7 @@ test("Test minimal deployment with an existing VPC", () => { // Helper declaration new LambdaToDynamoDB(stack, "lambda-to-dynamodb-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -720,7 +720,7 @@ test("Test minimal deployment with an existing VPC and existing Lambda function const stack = new cdk.Stack(); const testLambdaFunction = new lambda.Function(stack, 'test-lambda', { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }); @@ -754,7 +754,7 @@ test("Test bad call with existingVpc and deployVpc", () => { // Helper declaration new LambdaToDynamoDB(stack, "lambda-to-dynamodb-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/README.md b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/README.md index 3a2c513e8..330af28c2 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/README.md @@ -32,7 +32,7 @@ import { Aws } from "@aws-cdk/core"; const lambdaProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }; diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.domain-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.domain-arguments.expected.json index 6ffc4dc66..5eef2b610 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.domain-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.domain-arguments.expected.json @@ -116,7 +116,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.domain-arguments.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.domain-arguments.ts index b64c66f4f..72d87a009 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.domain-arguments.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.domain-arguments.ts @@ -23,7 +23,7 @@ const stack = new Stack(app, generateIntegStackName(__filename)); const lambdaProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }; diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.no-arguments.expected.json index e89d7f704..274c3e035 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.no-arguments.expected.json @@ -116,7 +116,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.no-arguments.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.no-arguments.ts index 8fc8c3c2a..83e82b5fc 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.no-arguments.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.no-arguments.ts @@ -23,7 +23,7 @@ const stack = new Stack(app, generateIntegStackName(__filename)); const lambdaProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }; diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/lambda-elasticsearch-kibana.test.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/lambda-elasticsearch-kibana.test.ts index 2b5554777..a2a60c046 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/lambda-elasticsearch-kibana.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/lambda-elasticsearch-kibana.test.ts @@ -20,7 +20,7 @@ function deployNewFunc(stack: cdk.Stack) { const props: LambdaToElasticSearchAndKibanaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, domainName: 'test-domain' @@ -80,7 +80,7 @@ test('check properties with no CW Alarms ', () => { const props: LambdaToElasticSearchAndKibanaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, domainName: 'test-domain', diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/README.md b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/README.md index a628dfbeb..acb7d7433 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/README.md @@ -31,7 +31,7 @@ import { LambdaToEventbridge, LambdaToEventbridgeProps } from "@aws-solutions-co new LambdaToEventbridge(this, 'LambdaToEventbridgePattern', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/aws-lambda-eventbridge.test.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/aws-lambda-eventbridge.test.ts index 8fdba61d3..a4386686a 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/aws-lambda-eventbridge.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/aws-lambda-eventbridge.test.ts @@ -82,7 +82,7 @@ test('Test minimal deployment with new Lambda function', () => { // Helper declaration const construct = new LambdaToEventbridge(stack, 'lambda-to-eventbridge-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) } @@ -133,7 +133,7 @@ test("Test bad call with existingVpc and deployVpc", () => { // Helper declaration new LambdaToEventbridge(stack, "lambda-to-eventbridge-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -156,7 +156,7 @@ test("Test bad call with existingVpc and deployVpc", () => { // Helper declaration new LambdaToEventbridge(stack, 'lambda-to-eventbridge-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, @@ -181,7 +181,7 @@ test('Test deployment w/ existing eventbus', () => { new LambdaToEventbridge(stack, 'lambda-to-eventbridge-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, @@ -220,7 +220,7 @@ test("Test minimal deployment that deploys a VPC without vpcProps", () => { // Helper declaration new LambdaToEventbridge(stack, "lambda-to-eventbridge-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -251,7 +251,7 @@ test("Test minimal deployment that deploys a VPC w/vpcProps", () => { // Helper declaration new LambdaToEventbridge(stack, "lambda-to-eventbridge-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -291,7 +291,7 @@ test("Test minimal deployment with an existing VPC", () => { // Helper declaration new LambdaToEventbridge(stack, "lambda-to-eventbridge-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -356,7 +356,7 @@ test("Test minimal deployment with an existing VPC and existing Lambda function const stack = new Stack(); const testLambdaFunction = new lambda.Function(stack, 'test-lamba', { - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }); @@ -387,7 +387,7 @@ test('Test lambda function custom environment variable', () => { // Helper declaration new LambdaToEventbridge(stack, 'lambda-to-eventbridge-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -398,7 +398,7 @@ test('Test lambda function custom environment variable', () => { // Check environment variables expect(stack).toHaveResource('AWS::Lambda::Function', { Handler: 'index.handler', - Runtime: 'nodejs12.x', + Runtime: 'nodejs14.x', Environment: { Variables: { AWS_NODEJS_CONNECTION_REUSE_ENABLED: '1', @@ -439,7 +439,7 @@ test('check multiple constructs in a single stack', () => { const props: LambdaToEventbridgeProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, eventBusProps: { eventBusName: 'test' } @@ -455,7 +455,7 @@ test('check multiple lambda functions publishing to single event bus', () => { const props1: LambdaToEventbridgeProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, eventBusProps: { eventBusName: 'test' } @@ -465,7 +465,7 @@ test('check multiple lambda functions publishing to single event bus', () => { const props2: LambdaToEventbridgeProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, existingEventBusInterface: construct.eventBus @@ -500,7 +500,7 @@ test('check multiple lambda functions publishing to single event bus', () => { // Check environment variables expect(stack).toHaveResource('AWS::Lambda::Function', { Handler: 'index.handler', - Runtime: 'nodejs12.x', + Runtime: 'nodejs14.x', Environment: { Variables: { AWS_NODEJS_CONNECTION_REUSE_ENABLED: '1', diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunction.expected.json index 9842e162c..3e65cb0bb 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunction.expected.json @@ -136,7 +136,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunction.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunction.ts index cb2ea5559..575af1d3e 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunction.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunction.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = 'Integration Test for aws-lambda-eventbridge // Definitions const props: LambdaToEventbridgeProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithNewEventBus.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithNewEventBus.expected.json index 5e012208d..596fa3f5e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithNewEventBus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithNewEventBus.expected.json @@ -165,7 +165,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithNewEventBus.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithNewEventBus.ts index 8d8226323..5c8ed7e6c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithNewEventBus.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithNewEventBus.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = "Integration Test for aws-lambda-eventbridge // Definitions const props: LambdaToEventbridgeProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingEventBus.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingEventBus.expected.json index 493b19921..d0da6bfa2 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingEventBus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingEventBus.expected.json @@ -124,7 +124,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingEventBus.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingEventBus.ts index 86af1a7f8..5667ab6ce 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingEventBus.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingEventBus.ts @@ -26,7 +26,7 @@ stack.templateOptions.description = 'Integration Test for aws-lambda-eventbridge // Definitions const lambdaFunctionProps = { - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingFunction.expected.json index 044816035..de2042268 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingFunction.expected.json @@ -136,7 +136,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingFunction.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingFunction.ts index 7fe43e0e3..f50a07c16 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingFunction.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingFunction.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = 'Integration Test for aws-lambda-eventbridge // Definitions const lambdaFunctionProps = { - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/README.md b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/README.md index fe5fbf35f..d3a83bea7 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/README.md @@ -27,7 +27,7 @@ import { LambdaToS3 } from '@aws-solutions-constructs/aws-lambda-s3'; new LambdaToS3(this, 'LambdaToS3Pattern', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/lambda-s3.test.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/lambda-s3.test.ts index eb328d55e..af342bec8 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/lambda-s3.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/lambda-s3.test.ts @@ -29,7 +29,7 @@ test('Test the properties', () => { // Helper declaration const pattern = new LambdaToS3(stack, 'lambda-to-s3-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, @@ -53,7 +53,7 @@ test('Test the bucketProps override', () => { // Helper declaration new LambdaToS3(stack, 'lambda-to-s3-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, @@ -77,7 +77,7 @@ test("Test minimal deployment that deploys a VPC without vpcProps", () => { // Helper declaration new LambdaToS3(stack, "lambda-to-s3-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -127,7 +127,7 @@ test("Test minimal deployment that deploys a VPC w/vpcProps", () => { // Helper declaration new LambdaToS3(stack, "lambda-to-s3-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -186,7 +186,7 @@ test("Test minimal deployment with an existing VPC", () => { // Helper declaration new LambdaToS3(stack, "lambda-to-s3-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -230,7 +230,7 @@ test("Test minimal deployment with an existing VPC and existing Lambda function const stack = new Stack(); const testLambdaFunction = new lambda.Function(stack, 'test-lamba', { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }); @@ -264,7 +264,7 @@ test("Test bad call with existingVpc and deployVpc", () => { // Helper declaration new LambdaToS3(stack, "lambda-to-s3-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -343,7 +343,7 @@ test('Test that CheckProps() is flagging errors correctly', () => { const stack = new Stack(); const testLambdaFunction = new lambda.Function(stack, 'test-lamba', { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }); @@ -352,7 +352,7 @@ test('Test that CheckProps() is flagging errors correctly', () => { new LambdaToS3(stack, "lambda-to-s3-stack", { existingLambdaObj: testLambdaFunction, lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -375,7 +375,7 @@ test('s3 bucket with bucket, loggingBucket, and auto delete objects', () => { new LambdaToS3(stack, 'lambda-s3', { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, bucketProps: { @@ -413,7 +413,7 @@ test('s3 bucket with one content bucket and no logging bucket', () => { new LambdaToS3(stack, 'lambda-s3', { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, bucketProps: { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/lambda-secretsmanager.test.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/lambda-secretsmanager.test.ts index 07be06279..d86b7a55b 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/lambda-secretsmanager.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/lambda-secretsmanager.test.ts @@ -29,7 +29,7 @@ test('Test the properties', () => { // Helper declaration const pattern = new LambdaToSecretsmanager(stack, 'lambda-to-secretsmanager-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, @@ -53,7 +53,7 @@ test('Test deployment w/ existing secret', () => { const existingSecret = new Secret(stack, 'secret', {}); const pattern = new LambdaToSecretsmanager(stack, 'lambda-to-secretsmanager-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, @@ -75,7 +75,7 @@ test('Test deployment w/ existing function', () => { const stack = new Stack(); // Helper declaration const lambdaFunctionProps = { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; @@ -102,7 +102,7 @@ test('Test minimal deployment write access to Secret', () => { // Helper declaration new LambdaToSecretsmanager(stack, 'lambda-to-secretsmanager-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -125,7 +125,7 @@ test("Test minimal deployment that deploys a VPC without vpcProps", () => { // Helper declaration new LambdaToSecretsmanager(stack, "lambda-to-secretsmanager-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -176,7 +176,7 @@ test("Test minimal deployment that deploys a VPC w/vpcProps", () => { // Helper declaration new LambdaToSecretsmanager(stack, "lambda-to-secretsmanager-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -236,7 +236,7 @@ test("Test minimal deployment with an existing VPC", () => { // Helper declaration new LambdaToSecretsmanager(stack, "lambda-to-secretsmanager-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -281,7 +281,7 @@ test("Test minimal deployment with an existing VPC and existing Lambda function const stack = new Stack(); const testLambdaFunction = new lambda.Function(stack, 'test-lamba', { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }); @@ -316,7 +316,7 @@ test("Test bad call with existingVpc and deployVpc", () => { // Helper declaration new LambdaToSecretsmanager(stack, "lambda-to-secretsmanager-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/README.md b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/README.md index 8c743966d..f82fe30a9 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/README.md @@ -27,7 +27,7 @@ import { LambdaToSns, LambdaToSnsProps } from "@aws-solutions-constructs/aws-lam new LambdaToSns(this, 'test-lambda-sns', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/lambda-sns.test.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/lambda-sns.test.ts index 2f28b2e4e..dd5f8074e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/lambda-sns.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/lambda-sns.test.ts @@ -29,7 +29,7 @@ test('Test deployment with new Lambda function', () => { // Helper declaration new LambdaToSns(stack, 'lambda-to-sns-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), environment: { @@ -92,7 +92,7 @@ test('Test deployment with existing existingTopicObj', () => { // Helper declaration new LambdaToSns(stack, 'lambda-to-sns-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), environment: { @@ -116,7 +116,7 @@ test('override topicProps', () => { const props: LambdaToSnsProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, topicProps: { @@ -140,7 +140,7 @@ test('Test the properties', () => { // Helper declaration const pattern = new LambdaToSns(stack, 'lambda-to-sns-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) } @@ -162,7 +162,7 @@ test("Test minimal deployment that deploys a VPC without vpcProps", () => { // Helper declaration new LambdaToSns(stack, "lambda-to-sns-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -212,7 +212,7 @@ test("Test minimal deployment that deploys a VPC w/vpcProps", () => { // Helper declaration new LambdaToSns(stack, "lambda-to-sns-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -271,7 +271,7 @@ test("Test minimal deployment with an existing VPC", () => { // Helper declaration new LambdaToSns(stack, "lambda-to-sns-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -315,7 +315,7 @@ test("Test minimal deployment with an existing VPC and existing Lambda function const stack = new Stack(); const testLambdaFunction = new lambda.Function(stack, 'test-lamba', { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }); @@ -349,7 +349,7 @@ test("Test bad call with existingVpc and deployVpc", () => { // Helper declaration new LambdaToSns(stack, "lambda-to-sns-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/README.md b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/README.md index 078365826..cf76b3389 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/README.md @@ -31,12 +31,12 @@ import { LambdaToSqsToLambda, LambdaToSqsToLambdaProps } from "@aws-solutions-co new LambdaToSqsToLambda(this, 'LambdaToSqsToLambdaPattern', { producerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/producer-function`) }, consumerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/consumer-function`) } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/lambda-sqs-lambda.test.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/lambda-sqs-lambda.test.ts index 74ea6fc55..e2034e1d0 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/lambda-sqs-lambda.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/lambda-sqs-lambda.test.ts @@ -29,13 +29,13 @@ test('Test minimal deployment', () => { // Helper declaration const props: LambdaToSqsToLambdaProps = { producerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/producer-function`), functionName: 'producer-function' }, consumerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/consumer-function`), functionName: 'consumer-function' @@ -126,7 +126,7 @@ test('Test deployment w/ existing producer function', () => { // Define existing resources const existingProducerFn = defaults.buildLambdaFunction(stack, { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/producer-function`), functionName: 'existing-producer-function' @@ -136,7 +136,7 @@ test('Test deployment w/ existing producer function', () => { const props: LambdaToSqsToLambdaProps = { existingProducerLambdaObj: existingProducerFn, consumerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/consumer-function`), functionName: 'deployed-consumer-function' @@ -163,7 +163,7 @@ test('Test deployment w/ existing consumer function', () => { // Define existing resources const existingConsumerFn = defaults.buildLambdaFunction(stack, { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/consumer-function`), functionName: 'existing-consumer-function' @@ -172,7 +172,7 @@ test('Test deployment w/ existing consumer function', () => { // Helper declaration const props: LambdaToSqsToLambdaProps = { producerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/producer-function`), functionName: 'deployed-producer-function' @@ -206,13 +206,13 @@ test('Test deployment w/ existing queue', () => { // Helper declaration const props: LambdaToSqsToLambdaProps = { producerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/producer-function`), functionName: 'producer-function' }, consumerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/consumer-function`), functionName: 'consumer-function' @@ -236,12 +236,12 @@ test('Test deployment w/ DLQ explicitly disabled', () => { // Helper declaration const props: LambdaToSqsToLambdaProps = { producerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/producer-function`) }, consumerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/consumer-function`) }, @@ -266,12 +266,12 @@ test('Test deployment w/ DLQ explicitly enabled and w/ MRC override', () => { // Helper declaration const props: LambdaToSqsToLambdaProps = { producerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/producer-function`) }, consumerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/consumer-function`) }, @@ -303,13 +303,13 @@ test('Test overrides for producer and consumer functions', () => { // Helper declaration const props: LambdaToSqsToLambdaProps = { producerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/producer-function`), functionName: 'producer-function' }, consumerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/consumer-function`), functionName: 'consumer-function' @@ -319,11 +319,11 @@ test('Test overrides for producer and consumer functions', () => { // Assertion 2: test for updated runtime on producer function expect(stack).toHaveResource('AWS::Lambda::Function', { - Runtime: "nodejs12.x" + Runtime: "nodejs14.x" }); // Assertion 3: test for updated runtime on consumer function expect(stack).toHaveResource('AWS::Lambda::Function', { - Runtime: "nodejs12.x" + Runtime: "nodejs14.x" }); }); @@ -336,13 +336,13 @@ test('Test the public pattern props', () => { // Helper declaration const props: LambdaToSqsToLambdaProps = { producerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/producer-function`), functionName: 'producer-function' }, consumerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/consumer-function`), functionName: 'consumer-function' @@ -405,13 +405,13 @@ test('Pattern deployment w/ batch size', () => { const stack = new Stack(); const props: LambdaToSqsToLambdaProps = { producerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/producer-function`), functionName: 'producer-function' }, consumerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/consumer-function`), functionName: 'consumer-function' @@ -436,13 +436,13 @@ test("Test minimal deployment that deploys a VPC without vpcProps", () => { // Helper declaration new LambdaToSqsToLambda(stack, "lambda-to-sqs-to-lambda-stack", { producerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/producer-function`), functionName: 'producer-function' }, consumerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/consumer-function`), functionName: 'consumer-function' @@ -493,13 +493,13 @@ test("Test minimal deployment that deploys a VPC w/vpcProps", () => { // Helper declaration new LambdaToSqsToLambda(stack, "lambda-to-sqs-to-lambda-stack", { producerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/producer-function`), functionName: 'producer-function' }, consumerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/consumer-function`), functionName: 'consumer-function' @@ -559,13 +559,13 @@ test("Test minimal deployment with an existing VPC", () => { // Helper declaration new LambdaToSqsToLambda(stack, "lambda-to-sqs-to-lambda-stack", { producerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/producer-function`), functionName: 'producer-function' }, consumerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/consumer-function`), functionName: 'consumer-function' @@ -612,13 +612,13 @@ test("Test bad call with existingVpc and deployVpc", () => { // Helper declaration new LambdaToSqsToLambda(stack, "lambda-to-sqs-to-lambda-stack", { producerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/producer-function`), functionName: 'producer-function' }, consumerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/consumer-function`), functionName: 'consumer-function' diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/README.md b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/README.md index e3024566f..34ad9d80d 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/README.md @@ -27,7 +27,7 @@ import { LambdaToSqs, LambdaToSqsProps } from "@aws-solutions-constructs/aws-lam new LambdaToSqs(this, 'LambdaToSqsPattern', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/lambda-sqs.test.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/lambda-sqs.test.ts index 050e64a32..3de331b4c 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/lambda-sqs.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/lambda-sqs.test.ts @@ -27,7 +27,7 @@ test('Test the properties', () => { // Helper declaration const pattern = new LambdaToSqs(stack, 'lambda-to-sqs-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, @@ -52,7 +52,7 @@ test("Test minimal deployment that deploys a VPC without vpcProps", () => { // Helper declaration new LambdaToSqs(stack, "lambda-to-sqs-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -102,7 +102,7 @@ test("Test minimal deployment that deploys a VPC w/vpcProps", () => { // Helper declaration new LambdaToSqs(stack, "lambda-to-sqs-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -161,7 +161,7 @@ test("Test minimal deployment with an existing VPC", () => { // Helper declaration new LambdaToSqs(stack, "lambda-to-sqs-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -205,7 +205,7 @@ test("Test minimal deployment with an existing VPC and existing Lambda function const stack = new Stack(); const testLambdaFunction = new lambda.Function(stack, 'test-lamba', { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }); @@ -239,7 +239,7 @@ test("Test bad call with existingVpc and deployVpc", () => { // Helper declaration new LambdaToSqs(stack, "lambda-to-sqs-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/README.md b/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/README.md index bbe80da74..b200d9839 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/README.md @@ -32,7 +32,7 @@ const startState = new stepfunctions.Pass(stack, 'StartState'); new LambdaToStepFunction(this, 'LambdaToStepFunctionPattern', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/test/integ.deploy-lambda.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/test/integ.deploy-lambda.expected.json index c0d0c9fea..b1f55126d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/test/integ.deploy-lambda.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/test/integ.deploy-lambda.expected.json @@ -266,7 +266,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/test/integ.deploy-lambda.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/test/integ.deploy-lambda.ts index 707424084..9a324a035 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/test/integ.deploy-lambda.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/test/integ.deploy-lambda.ts @@ -28,7 +28,7 @@ const startState = new stepfunctions.Pass(stack, 'StartState'); // Setup the pattern props const props: LambdaToStepFunctionProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/test/integ.existing-function.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/test/integ.existing-function.expected.json index 521ab0f05..e59636396 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/test/integ.existing-function.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/test/integ.existing-function.expected.json @@ -120,7 +120,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/test/integ.existing-function.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/test/integ.existing-function.ts index 571861297..0b0616e8c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/test/integ.existing-function.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/test/integ.existing-function.ts @@ -28,7 +28,7 @@ const startState = new stepfunctions.Pass(stack, 'StartState'); // Setup the "existing" Lambda function props const lambdaFunctionProps = { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/test/lambda-step-function.test.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/test/lambda-step-function.test.ts index d69fb4c85..f26c0d817 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/test/lambda-step-function.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/test/lambda-step-function.test.ts @@ -30,7 +30,7 @@ test('Test deployment with new Lambda function', () => { const startState = new stepfunctions.Pass(stack, 'StartState'); new LambdaToStepFunction(stack, 'lambda-to-step-function-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), environment: { @@ -63,7 +63,7 @@ test('Test deployment with existing Lambda function', () => { // Helper declaration const startState = new stepfunctions.Pass(stack, 'StartState'); const lambdaFunctionProps = { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), environment: { @@ -97,7 +97,7 @@ test('Test invocation permissions', () => { // Helper declaration const startState = new stepfunctions.Pass(stack, 'StartState'); const lambdaFunctionProps = { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), environment: { @@ -147,7 +147,7 @@ test('Test the properties', () => { const startState = new stepfunctions.Pass(stack, 'StartState'); const pattern = new LambdaToStepFunction(stack, 'lambda-to-step-function-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), environment: { @@ -180,7 +180,7 @@ test('Test the properties with no CW Alarms', () => { const startState = new stepfunctions.Pass(stack, 'StartState'); const pattern = new LambdaToStepFunction(stack, 'lambda-to-step-function-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), environment: { @@ -247,7 +247,7 @@ test("Test minimal deployment that deploys a VPC without vpcProps", () => { // Helper declaration new LambdaToStepFunction(stack, "lambda-to-step-function-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, @@ -301,7 +301,7 @@ test("Test minimal deployment that deploys a VPC w/vpcProps", () => { // Helper declaration new LambdaToStepFunction(stack, "lambda-to-step-function-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, @@ -363,7 +363,7 @@ test("Test minimal deployment with an existing VPC", () => { // Helper declaration new LambdaToStepFunction(stack, "lambda-to-step-function-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, @@ -411,7 +411,7 @@ test("Test minimal deployment with an existing VPC and existing Lambda function const startState = new stepfunctions.Pass(stack, 'StartState'); const testLambdaFunction = new lambda.Function(stack, 'test-lamba', { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }); @@ -448,7 +448,7 @@ test("Test bad call with existingVpc and deployVpc", () => { // Helper declaration new LambdaToStepFunction(stack, "lambda-to-step-function-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/README.md b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/README.md index 0583f3a77..cd3b88320 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/README.md @@ -30,7 +30,7 @@ const startState = new stepfunctions.Pass(stack, 'StartState'); new LambdaToStepfunctions(this, 'LambdaToStepfunctionsPattern', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/lambda-stepfunctions.test.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/lambda-stepfunctions.test.ts index 7e4836f0a..011336ee6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/lambda-stepfunctions.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/lambda-stepfunctions.test.ts @@ -30,7 +30,7 @@ test('Test deployment with new Lambda function', () => { const startState = new stepfunctions.Pass(stack, 'StartState'); new LambdaToStepfunctions(stack, 'lambda-to-step-function-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), environment: { @@ -63,7 +63,7 @@ test('Test deployment with existing Lambda function', () => { // Helper declaration const startState = new stepfunctions.Pass(stack, 'StartState'); const lambdaFunctionProps = { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), environment: { @@ -97,7 +97,7 @@ test('Test invocation permissions', () => { // Helper declaration const startState = new stepfunctions.Pass(stack, 'StartState'); const lambdaFunctionProps = { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), environment: { @@ -147,7 +147,7 @@ test('Test the properties', () => { const startState = new stepfunctions.Pass(stack, 'StartState'); const pattern = new LambdaToStepfunctions(stack, 'lambda-to-step-function-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), environment: { @@ -180,7 +180,7 @@ test('Test the properties with no CW Alarms', () => { const startState = new stepfunctions.Pass(stack, 'StartState'); const pattern = new LambdaToStepfunctions(stack, 'lambda-to-step-function-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), environment: { @@ -247,7 +247,7 @@ test("Test minimal deployment that deploys a VPC without vpcProps", () => { // Helper declaration new LambdaToStepfunctions(stack, "lambda-to-stepfunctions-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, @@ -301,7 +301,7 @@ test("Test minimal deployment that deploys a VPC w/vpcProps", () => { // Helper declaration new LambdaToStepfunctions(stack, "lambda-to-stepfunctions-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, @@ -363,7 +363,7 @@ test("Test minimal deployment with an existing VPC", () => { // Helper declaration new LambdaToStepfunctions(stack, "lambda-to-stepfunctions-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, @@ -411,7 +411,7 @@ test("Test minimal deployment with an existing VPC and existing Lambda function const startState = new stepfunctions.Pass(stack, 'StartState'); const testLambdaFunction = new lambda.Function(stack, 'test-lamba', { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }); @@ -448,7 +448,7 @@ test("Test bad call with existingVpc and deployVpc", () => { // Helper declaration new LambdaToStepfunctions(stack, "lambda-to-stepfunctions-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/README.md b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/README.md index c863edcfd..ec7a2ff1f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/README.md @@ -28,7 +28,7 @@ import { S3ToLambdaProps, S3ToLambda } from '@aws-solutions-constructs/aws-s3-la new S3ToLambda(this, 'test-s3-lambda', { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, }); diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.existing-s3-bucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.existing-s3-bucket.expected.json index 769876a58..2852a591f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.existing-s3-bucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.existing-s3-bucket.expected.json @@ -202,7 +202,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.existing-s3-bucket.ts b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.existing-s3-bucket.ts index 77d2fc87c..83aa9a67d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.existing-s3-bucket.ts +++ b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.existing-s3-bucket.ts @@ -28,7 +28,7 @@ const myBucket = CreateScrapBucket(stack, {}); const props: S3ToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, existingBucketObj: myBucket diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.no-arguments.expected.json index 33b958da4..771b72f46 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.no-arguments.expected.json @@ -110,7 +110,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.no-arguments.ts b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.no-arguments.ts index b2447a1b7..d40e7ef51 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.no-arguments.ts +++ b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.no-arguments.ts @@ -27,7 +27,7 @@ const stack = new Stack(app, generateIntegStackName(__filename)); const props: S3ToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, bucketProps: { diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/s3-lambda.test.ts b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/s3-lambda.test.ts index 360461ccf..9aed0f0ad 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/s3-lambda.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/s3-lambda.test.ts @@ -22,7 +22,7 @@ function deployNewFunc(stack: cdk.Stack) { const props: S3ToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, bucketProps: { @@ -74,7 +74,7 @@ test('s3 bucket with bucket, loggingBucket, and auto delete objects', () => { new S3ToLambda(stack, 's3-lambda', { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, bucketProps: { @@ -112,7 +112,7 @@ test('s3 bucket with one content bucket and no logging bucket', () => { new S3ToLambda(stack, 's3-lambda', { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, bucketProps: { @@ -130,7 +130,7 @@ test('check properties with existing S3 bucket', () => { const construct = new S3ToLambda(stack, 's3-lambda', { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, existingBucketObj: existingBucket diff --git a/source/patterns/@aws-solutions-constructs/aws-sns-lambda/README.md b/source/patterns/@aws-solutions-constructs/aws-sns-lambda/README.md index a0a4bc8f9..af3df2c2a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sns-lambda/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-sns-lambda/README.md @@ -27,7 +27,7 @@ import { SnsToLambda, SnsToLambdaProps } from "@aws-solutions-constructs/aws-sns new SnsToLambda(this, 'test-sns-lambda', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) } diff --git a/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.no-arguments.expected.json index 5bbd925ef..1998e9709 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.no-arguments.expected.json @@ -111,7 +111,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.no-arguments.ts b/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.no-arguments.ts index a14b97eeb..f859fe5a6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.no-arguments.ts +++ b/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.no-arguments.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = 'Integration Test for aws-sns-lambda'; // Definitions const props: SnsToLambdaProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) } diff --git a/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/sns-lambda.test.ts b/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/sns-lambda.test.ts index c3024d419..6797367e9 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/sns-lambda.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/sns-lambda.test.ts @@ -22,7 +22,7 @@ function deployNewFunc(stack: cdk.Stack) { const props: SnsToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, }; @@ -45,7 +45,7 @@ test('override topicProps', () => { const props: SnsToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, topicProps: { @@ -70,7 +70,7 @@ test('provide existingTopicObj', () => { const props: SnsToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, existingTopicObj: topic diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/README.md b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/README.md index 46be96ee8..302307776 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/README.md @@ -27,7 +27,7 @@ import { SqsToLambda, SqsToLambdaProps } from "@aws-solutions-constructs/aws-sqs new SqsToLambda(this, 'SqsToLambdaPattern', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) } diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.deployFifoQueue.expected.json b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.deployFifoQueue.expected.json index 03b377062..f10d86bee 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.deployFifoQueue.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.deployFifoQueue.expected.json @@ -127,7 +127,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.deployFifoQueue.ts b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.deployFifoQueue.ts index 3acfbb443..cef073408 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.deployFifoQueue.ts +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.deployFifoQueue.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = 'Integration Test for aws-sqs-lambda with FI // Definitions const props: SqsToLambdaProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.deployFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.deployFunction.expected.json index 14c8cf253..6a98dcf04 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.deployFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.deployFunction.expected.json @@ -127,7 +127,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.deployFunction.ts b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.deployFunction.ts index 0d9fe6242..906d68762 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.deployFunction.ts +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.deployFunction.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = 'Integration Test for aws-sqs-lambda'; // Definitions const props: SqsToLambdaProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.existingFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.existingFunction.expected.json index 809f8a1d7..2830492b0 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.existingFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.existingFunction.expected.json @@ -127,7 +127,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.existingFunction.ts b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.existingFunction.ts index 88e85f2c2..901ea0ddd 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.existingFunction.ts +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.existingFunction.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = 'Integration Test for aws-sqs-lambda'; // Definitions const lambdaFunctionProps = { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/test.sqs-lambda.test.ts b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/test.sqs-lambda.test.ts index 134059711..570281cfe 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/test.sqs-lambda.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/test.sqs-lambda.test.ts @@ -26,7 +26,7 @@ test('Pattern deployment w/ new Lambda function and overridden props', () => { const stack = new Stack(); const props: SqsToLambdaProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), environment: { @@ -61,7 +61,7 @@ test('Test getter methods', () => { const stack = new Stack(); const props: SqsToLambdaProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, @@ -121,7 +121,7 @@ test('Pattern deployment w/ batch size', () => { const stack = new Stack(); const props: SqsToLambdaProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.existing-waf-to-multiple-gateways.expected.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.existing-waf-to-multiple-gateways.expected.json index 8c15a991e..5b048afae 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.existing-waf-to-multiple-gateways.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.existing-waf-to-multiple-gateways.expected.json @@ -110,7 +110,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } @@ -675,7 +675,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.existing-waf-to-multiple-gateways.ts b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.existing-waf-to-multiple-gateways.ts index a55d451e1..00954c727 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.existing-waf-to-multiple-gateways.ts +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.existing-waf-to-multiple-gateways.ts @@ -24,7 +24,7 @@ const stack = new Stack(app, generateIntegStackName(__filename)); const props: ApiGatewayToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, }; diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.no-arguments.expected.json index 1519e75ce..d794a375c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.no-arguments.expected.json @@ -110,7 +110,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.no-arguments.ts b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.no-arguments.ts index 1e267c5ab..43714f661 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.no-arguments.ts +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.no-arguments.ts @@ -26,7 +26,7 @@ const stack = new Stack(app, generateIntegStackName(__filename)); const props: ApiGatewayToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, }; diff --git a/source/patterns/@aws-solutions-constructs/core/lib/lambda-helper.ts b/source/patterns/@aws-solutions-constructs/core/lib/lambda-helper.ts index f420d86b3..7c7a7a575 100644 --- a/source/patterns/@aws-solutions-constructs/core/lib/lambda-helper.ts +++ b/source/patterns/@aws-solutions-constructs/core/lib/lambda-helper.ts @@ -133,8 +133,8 @@ export function deployLambdaFunction(scope: Construct, const lambdafunction = new lambda.Function(scope, _functionId, finalLambdaFunctionProps); - if (lambdaFunctionProps.runtime === lambda.Runtime.NODEJS_10_X || - lambdaFunctionProps.runtime === lambda.Runtime.NODEJS_12_X || + if (lambdaFunctionProps.runtime === lambda.Runtime.NODEJS_14_X || + lambdaFunctionProps.runtime === lambda.Runtime.NODEJS_14_X || lambdaFunctionProps.runtime === lambda.Runtime.NODEJS_14_X) { lambdafunction.addEnvironment('AWS_NODEJS_CONNECTION_REUSE_ENABLED', '1', { removeInEdge: true }); } diff --git a/source/patterns/@aws-solutions-constructs/core/test/apigateway-helper.test.ts b/source/patterns/@aws-solutions-constructs/core/test/apigateway-helper.test.ts index fd172e6b8..7207688d5 100644 --- a/source/patterns/@aws-solutions-constructs/core/test/apigateway-helper.test.ts +++ b/source/patterns/@aws-solutions-constructs/core/test/apigateway-helper.test.ts @@ -21,7 +21,7 @@ import '@aws-cdk/assert/jest'; function deployRegionalApiGateway(stack: Stack) { const lambdaFunctionProps: lambda.FunctionProps = { - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; @@ -91,7 +91,7 @@ test('Test override for RegionalApiGateway', () => { const stack = new Stack(); const lambdaFunctionProps: lambda.FunctionProps = { - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; @@ -121,7 +121,7 @@ test('Test override for GlobalApiGateway', () => { const stack = new Stack(); const lambdaFunctionProps: lambda.FunctionProps = { - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; @@ -149,7 +149,7 @@ test('Test override for GlobalApiGateway', () => { test('Test ApiGateway::Account resource for RegionalApiGateway', () => { const stack = new Stack(); const lambdaFunctionProps: lambda.FunctionProps = { - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; @@ -171,7 +171,7 @@ test('Test ApiGateway::Account resource for RegionalApiGateway', () => { test('Test ApiGateway::Account resource for GlobalApiGateway', () => { const stack = new Stack(); const lambdaFunctionProps: lambda.FunctionProps = { - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; @@ -378,7 +378,7 @@ test('Test for Exception while overriding restApiProps using endPointTypes', () test('Test for Exception while overriding LambdaRestApiProps using endPointTypes', () => { const stack = new Stack(); const lambdaFunctionProps: lambda.FunctionProps = { - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; @@ -626,7 +626,7 @@ test('Test for ApiKey creation using restApiProps', () => { test('Test for ApiKey creation using lambdaApiProps', () => { const stack = new Stack(); const lambdaFunctionProps: lambda.FunctionProps = { - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; diff --git a/source/patterns/@aws-solutions-constructs/core/test/cloudfront-distribution-api-gateway-helper.test.ts b/source/patterns/@aws-solutions-constructs/core/test/cloudfront-distribution-api-gateway-helper.test.ts index 3b98ae6a0..19c2413c3 100644 --- a/source/patterns/@aws-solutions-constructs/core/test/cloudfront-distribution-api-gateway-helper.test.ts +++ b/source/patterns/@aws-solutions-constructs/core/test/cloudfront-distribution-api-gateway-helper.test.ts @@ -260,7 +260,7 @@ test('test override cloudfront add custom cloudfront function', () => { // APIG Lambda function const lambdaFunctionProps: lambda.FunctionProps = { - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; @@ -386,7 +386,7 @@ test('test override cloudfront replace custom lambda@edge', () => { // custom lambda@edg function const handler = new lambda.Function(stack, 'SomeHandler', { functionName: 'SomeHandler', - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), }); @@ -397,7 +397,7 @@ test('test override cloudfront replace custom lambda@edge', () => { // APIG Lambda function const lambdaFunctionProps: lambda.FunctionProps = { - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; diff --git a/source/patterns/@aws-solutions-constructs/core/test/cloudfront-distribution-s3-helper.test.ts b/source/patterns/@aws-solutions-constructs/core/test/cloudfront-distribution-s3-helper.test.ts index cd283dd39..ce907b2d8 100644 --- a/source/patterns/@aws-solutions-constructs/core/test/cloudfront-distribution-s3-helper.test.ts +++ b/source/patterns/@aws-solutions-constructs/core/test/cloudfront-distribution-s3-helper.test.ts @@ -403,7 +403,7 @@ test('test override cloudfront replace custom lambda@edge', () => { // custom lambda@edg function const handler = new lambda.Function(stack, 'SomeHandler', { functionName: 'SomeHandler', - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), }); diff --git a/source/patterns/@aws-solutions-constructs/core/test/lambda-helper.test.ts b/source/patterns/@aws-solutions-constructs/core/test/lambda-helper.test.ts index d62f3ace7..4b9aba18a 100644 --- a/source/patterns/@aws-solutions-constructs/core/test/lambda-helper.test.ts +++ b/source/patterns/@aws-solutions-constructs/core/test/lambda-helper.test.ts @@ -44,7 +44,7 @@ test("test FunctionProps override timeout", () => { const inProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", timeout: Duration.seconds(5), }; @@ -56,7 +56,7 @@ test("test FunctionProps override timeout", () => { Role: { "Fn::GetAtt": ["LambdaFunctionServiceRole0C4CDE0B", "Arn"], }, - Runtime: "nodejs12.x", + Runtime: "nodejs14.x", Timeout: 5, }); }); @@ -66,7 +66,7 @@ test("test FunctionProps for environment variable when runtime = NODEJS", () => const inProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", }; @@ -77,7 +77,7 @@ test("test FunctionProps for environment variable when runtime = NODEJS", () => Role: { "Fn::GetAtt": ["LambdaFunctionServiceRole0C4CDE0B", "Arn"], }, - Runtime: "nodejs10.x", + Runtime: "nodejs14.x", Environment: { Variables: { AWS_NODEJS_CONNECTION_REUSE_ENABLED: "1", @@ -117,7 +117,7 @@ test("test buildLambdaFunction with deploy = true", () => { const inProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda-test`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", }; @@ -130,7 +130,7 @@ test("test buildLambdaFunction with deploy = true", () => { Role: { "Fn::GetAtt": ["LambdaFunctionServiceRole0C4CDE0B", "Arn"], }, - Runtime: "nodejs12.x", + Runtime: "nodejs14.x", }); }); @@ -139,7 +139,7 @@ test("test buildLambdaFunction with existing Lambda function (no VPC)", () => { const inProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda-test`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", }; @@ -210,7 +210,7 @@ test("test buildLambdaFunction when Lambda properties includes a VPC", () => { const fakeVpc = new ec2.Vpc(stack, "vpc", {}); const lambdaFunctionProps: lambda.FunctionProps = { - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), vpc: fakeVpc, @@ -249,7 +249,7 @@ test("Test for error if VPC in arguments AND in Lambda Function properties", () const fakeVpc = new ec2.Vpc(stack, "vpc", {}); const lambdaFunctionProps: lambda.FunctionProps = { - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), vpc: fakeVpc, @@ -267,7 +267,7 @@ test("Test minimal deployment with an existing VPC and existing Lambda function const stack = new Stack(); const testLambdaFunction = new lambda.Function(stack, 'test-lamba', { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }); @@ -294,7 +294,7 @@ test("Test minimal deployment with an existing VPC and existing Lambda function const testVpc = new ec2.Vpc(stack, "test-vpc", {}); const testLambdaFunction = new lambda.Function(stack, 'test-lamba', { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), vpc: testVpc, @@ -316,7 +316,7 @@ test("Test generating synthesized permission IDs", () => { const coreName = "TestInvokePermission"; const testLambdaFunction = new lambda.Function(stack, 'test-lamba', { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }); @@ -345,7 +345,7 @@ test("Test invalid synthesized permission names", () => { const coreName = "TestInvokePermission"; const testLambdaFunction = new lambda.Function(stack, 'test-lamba', { - runtime: lambda.Runtime.NODEJS_10_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }); diff --git a/source/use_cases/aws-restaurant-management-demo/test/integ.basic-deployment.expected.json b/source/use_cases/aws-restaurant-management-demo/test/integ.basic-deployment.expected.json index 03ffeed78..af4358c12 100644 --- a/source/use_cases/aws-restaurant-management-demo/test/integ.basic-deployment.expected.json +++ b/source/use_cases/aws-restaurant-management-demo/test/integ.basic-deployment.expected.json @@ -245,7 +245,7 @@ "Arn" ] }, - "Runtime": "nodejs12.x" + "Runtime": "nodejs14.x" }, "DependsOn": [ "CloudFrontToS3SetHttpSecurityHeadersServiceRole6BABDE10" @@ -655,7 +655,7 @@ "Arn" ] }, - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "Environment": { "Variables": { "USER_ON_EVENT_FUNCTION_ARN": { diff --git a/source/use_cases/aws-s3-static-website/test/__snapshots__/s3-static-site-stack.test.js.snap b/source/use_cases/aws-s3-static-website/test/__snapshots__/s3-static-site-stack.test.js.snap index 20f9f7dcf..f175f7992 100644 --- a/source/use_cases/aws-s3-static-website/test/__snapshots__/s3-static-site-stack.test.js.snap +++ b/source/use_cases/aws-s3-static-website/test/__snapshots__/s3-static-site-stack.test.js.snap @@ -375,7 +375,7 @@ Object { "Arn", ], }, - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", }, "Type": "AWS::Lambda::Function", }, @@ -524,7 +524,7 @@ Object { "Arn", ], }, - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "Timeout": 900, }, "Type": "AWS::Lambda::Function", diff --git a/source/use_cases/aws-s3-static-website/test/integ.basic-deployment.expected.json b/source/use_cases/aws-s3-static-website/test/integ.basic-deployment.expected.json index 03ffeed78..af4358c12 100644 --- a/source/use_cases/aws-s3-static-website/test/integ.basic-deployment.expected.json +++ b/source/use_cases/aws-s3-static-website/test/integ.basic-deployment.expected.json @@ -245,7 +245,7 @@ "Arn" ] }, - "Runtime": "nodejs12.x" + "Runtime": "nodejs14.x" }, "DependsOn": [ "CloudFrontToS3SetHttpSecurityHeadersServiceRole6BABDE10" @@ -655,7 +655,7 @@ "Arn" ] }, - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "Environment": { "Variables": { "USER_ON_EVENT_FUNCTION_ARN": { diff --git a/source/use_cases/aws-serverless-image-handler/README.md b/source/use_cases/aws-serverless-image-handler/README.md index 5fe762c3f..1101f0d0a 100644 --- a/source/use_cases/aws-serverless-image-handler/README.md +++ b/source/use_cases/aws-serverless-image-handler/README.md @@ -34,7 +34,7 @@ You can then use the pattern in your CDK project code as shown below in the mini ```typescript new ServerlessImageHandler(this, 'ServerlessImageHandlerPattern', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) } diff --git a/source/use_cases/aws-serverless-image-handler/lib/index.ts b/source/use_cases/aws-serverless-image-handler/lib/index.ts index 81dab1c19..9c58f3171 100644 --- a/source/use_cases/aws-serverless-image-handler/lib/index.ts +++ b/source/use_cases/aws-serverless-image-handler/lib/index.ts @@ -127,7 +127,7 @@ export class ServerlessImageHandler extends Construct { // Use case specific properties for the Lambda function const useCaseFunctionProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda/image-handler`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler', environment: { AUTO_WEBP: (props.autoWebP) ? 'Yes' : 'No', diff --git a/source/use_cases/aws-serverless-image-handler/test/__snapshots__/test.serverless-image-handler.test.js.snap b/source/use_cases/aws-serverless-image-handler/test/__snapshots__/test.serverless-image-handler.test.js.snap index 49fe98b5b..cd74d7d04 100644 --- a/source/use_cases/aws-serverless-image-handler/test/__snapshots__/test.serverless-image-handler.test.js.snap +++ b/source/use_cases/aws-serverless-image-handler/test/__snapshots__/test.serverless-image-handler.test.js.snap @@ -239,7 +239,7 @@ Object { "Arn", ], }, - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", }, "Type": "AWS::Lambda::Function", }, @@ -396,7 +396,7 @@ Object { "Arn", ], }, - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", }, "Type": "AWS::Lambda::Function", }, diff --git a/source/use_cases/aws-serverless-image-handler/test/integ.basic-deployment.expected.json b/source/use_cases/aws-serverless-image-handler/test/integ.basic-deployment.expected.json index b239a7138..ee3b6ef51 100644 --- a/source/use_cases/aws-serverless-image-handler/test/integ.basic-deployment.expected.json +++ b/source/use_cases/aws-serverless-image-handler/test/integ.basic-deployment.expected.json @@ -149,7 +149,7 @@ "Arn" ] }, - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", "Environment": { "Variables": { "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1", @@ -674,7 +674,7 @@ "Arn" ] }, - "Runtime": "nodejs12.x" + "Runtime": "nodejs14.x" }, "DependsOn": [ "testserverlessimagehandlerCloudFrontApiGatewayLambdaCloudFrontToApiGatewaySetHttpSecurityHeadersServiceRole6A96B325" diff --git a/source/use_cases/aws-serverless-web-app/lib/serverless-backend-stack.ts b/source/use_cases/aws-serverless-web-app/lib/serverless-backend-stack.ts index e464f9fa2..d26cf152e 100644 --- a/source/use_cases/aws-serverless-web-app/lib/serverless-backend-stack.ts +++ b/source/use_cases/aws-serverless-web-app/lib/serverless-backend-stack.ts @@ -30,7 +30,7 @@ export class ServerlessBackendStack extends Stack { const construct = new CognitoToApiGatewayToLambda(this, 'CognitoToApiGatewayToLambda', { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda/business-logic`), - runtime: lambda.Runtime.NODEJS_12_X, + runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.handler' }, cognitoUserPoolProps: { diff --git a/source/use_cases/aws-serverless-web-app/test/__snapshots__/s3-static-site-stack.test.js.snap b/source/use_cases/aws-serverless-web-app/test/__snapshots__/s3-static-site-stack.test.js.snap index 8973e5323..87c900291 100644 --- a/source/use_cases/aws-serverless-web-app/test/__snapshots__/s3-static-site-stack.test.js.snap +++ b/source/use_cases/aws-serverless-web-app/test/__snapshots__/s3-static-site-stack.test.js.snap @@ -383,7 +383,7 @@ Object { "Arn", ], }, - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", }, "Type": "AWS::Lambda::Function", }, @@ -532,7 +532,7 @@ Object { "Arn", ], }, - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "Timeout": 900, }, "Type": "AWS::Lambda::Function", diff --git a/source/use_cases/aws-serverless-web-app/test/__snapshots__/serverless-backend-stack.test.js.snap b/source/use_cases/aws-serverless-web-app/test/__snapshots__/serverless-backend-stack.test.js.snap index 6d8d544dc..986ec2f36 100644 --- a/source/use_cases/aws-serverless-web-app/test/__snapshots__/serverless-backend-stack.test.js.snap +++ b/source/use_cases/aws-serverless-web-app/test/__snapshots__/serverless-backend-stack.test.js.snap @@ -251,7 +251,7 @@ Object { "Arn", ], }, - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", }, "Type": "AWS::Lambda::Function", }, @@ -951,7 +951,7 @@ Object { "Arn", ], }, - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "Timeout": 900, }, "Type": "AWS::Lambda::Function", diff --git a/source/use_cases/aws-serverless-web-app/test/integ.001-s3-static-website-deployment.expected.json b/source/use_cases/aws-serverless-web-app/test/integ.001-s3-static-website-deployment.expected.json index 0b13d1d64..670b0856a 100644 --- a/source/use_cases/aws-serverless-web-app/test/integ.001-s3-static-website-deployment.expected.json +++ b/source/use_cases/aws-serverless-web-app/test/integ.001-s3-static-website-deployment.expected.json @@ -245,7 +245,7 @@ "Arn" ] }, - "Runtime": "nodejs12.x" + "Runtime": "nodejs14.x" }, "DependsOn": [ "CloudFrontToS3SetHttpSecurityHeadersServiceRole6BABDE10" @@ -655,7 +655,7 @@ "Arn" ] }, - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "Environment": { "Variables": { "USER_ON_EVENT_FUNCTION_ARN": { diff --git a/source/use_cases/aws-serverless-web-app/test/integ.002-backend-deployment.expected.json b/source/use_cases/aws-serverless-web-app/test/integ.002-backend-deployment.expected.json index a7e44eca1..3d68e6e39 100644 --- a/source/use_cases/aws-serverless-web-app/test/integ.002-backend-deployment.expected.json +++ b/source/use_cases/aws-serverless-web-app/test/integ.002-backend-deployment.expected.json @@ -142,7 +142,7 @@ "Arn" ] }, - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", "Environment": { "Variables": { "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1", @@ -1000,7 +1000,7 @@ "Arn" ] }, - "Runtime": "nodejs10.x", + "Runtime": "nodejs14.x", "Environment": { "Variables": { "USER_ON_EVENT_FUNCTION_ARN": { From 655c4aff27eff5cc4c82e170d90466fddc1aac04 Mon Sep 17 00:00:00 2001 From: mickychetta <45010053+mickychetta@users.noreply.github.com> Date: Tue, 21 Dec 2021 14:43:10 -0800 Subject: [PATCH 64/67] fix(aws-apigateway-iot and aws-cloudfront-apigateway-lambda): fixed deprecated warnings (#554) * updated README for iot-sqs and kinesisstreams-gluejob * fixed deprecated warnings * empty commit --- .../aws-apigateway-iot/README.md | 2 +- .../test.cloudfront-apigateway-lambda.test.ts | 8 ++--- .../core/lib/apigateway-helper.ts | 29 ++++++++++--------- 3 files changed, 19 insertions(+), 20 deletions(-) diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/README.md b/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/README.md index be5017cab..c28786e40 100755 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/README.md @@ -78,7 +78,7 @@ Out of the box implementation of the Construct without any override will set the ### Amazon API Gateway -* Deploy an edge-optimized API endpoint +* Deploy an edge-optimized API Endpoint * Creates API Resources with `POST` Method to publish messages to IoT Topics * Creates API Resources with `POST` Method to publish messages to ThingShadow & NamedShadows * Enable CloudWatch logging for API Gateway diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/test.cloudfront-apigateway-lambda.test.ts b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/test.cloudfront-apigateway-lambda.test.ts index 736e25af3..7104419ad 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/test.cloudfront-apigateway-lambda.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/test.cloudfront-apigateway-lambda.test.ts @@ -153,9 +153,7 @@ test('override api gateway properties with existingLambdaObj', () => { new CloudFrontToApiGatewayToLambda(stack, 'test-cloudfront-apigateway-lambda', { existingLambdaObj: fn, apiGatewayProps: { - options: { - description: "Override description" - } + description: "Override description" } }); @@ -184,9 +182,7 @@ test('override api gateway properties without existingLambdaObj', () => { endpointConfiguration: { types: [api.EndpointType.PRIVATE], }, - options: { - description: "Override description" - } + description: "Override description" } }); diff --git a/source/patterns/@aws-solutions-constructs/core/lib/apigateway-helper.ts b/source/patterns/@aws-solutions-constructs/core/lib/apigateway-helper.ts index afed0155e..b4dc1d9c6 100644 --- a/source/patterns/@aws-solutions-constructs/core/lib/apigateway-helper.ts +++ b/source/patterns/@aws-solutions-constructs/core/lib/apigateway-helper.ts @@ -101,21 +101,23 @@ function configureLambdaRestApi(scope: Construct, defaultApiGatewayProps: api.La cwRole = configureCloudwatchRoleForApi(scope, _api); } - let usagePlanProps: api.UsagePlanProps = { + // Configure Usage Plan + const usagePlanProps: api.UsagePlanProps = { apiStages: [{ api: _api, stage: _api.deploymentStage }] }; - // If requireApiKey param is set to true, create a api key & associate to Usage Plan + + const plan = _api.addUsagePlan('UsagePlan', usagePlanProps); + + // If requireApiKey param is set to true, create a api key & associate to Usage Plan if (apiGatewayProps?.defaultMethodOptions?.apiKeyRequired === true) { - const extraParams = { apiKey: _api.addApiKey('ApiKey')}; - usagePlanProps = Object.assign(usagePlanProps, extraParams); + // Configure Usage Plan with API Key + const key = _api.addApiKey('ApiKey'); + plan.addApiKey(key); } - // Configure Usage Plan - _api.addUsagePlan('UsagePlan', usagePlanProps); - // Return the API and CW Role return [_api, cwRole]; } @@ -152,22 +154,23 @@ function configureRestApi(scope: Construct, defaultApiGatewayProps: api.RestApiP cwRole = configureCloudwatchRoleForApi(scope, _api); } - let usagePlanProps: api.UsagePlanProps = { + // Configure Usage Plan + const usagePlanProps: api.UsagePlanProps = { apiStages: [{ api: _api, stage: _api.deploymentStage }] }; + const plan = _api.addUsagePlan('UsagePlan', usagePlanProps); + // If requireApiKey param is set to true, create a api key & associate to Usage Plan if (apiGatewayProps?.defaultMethodOptions?.apiKeyRequired === true) { - const extraParams = { apiKey: _api.addApiKey('ApiKey')}; - usagePlanProps = Object.assign(usagePlanProps, extraParams); + // Configure Usage Plan with API Key + const key = _api.addApiKey('ApiKey'); + plan.addApiKey(key); } - // Configure Usage Plan - _api.addUsagePlan('UsagePlan', usagePlanProps); - // Return the API and CW Role return [_api, cwRole]; } From fc4fab88a9cecef65a5dad84c1539daee7862887 Mon Sep 17 00:00:00 2001 From: mickychetta <45010053+mickychetta@users.noreply.github.com> Date: Tue, 28 Dec 2021 12:29:00 -0800 Subject: [PATCH 65/67] fix(aws-s3-cloudfront): Recognize when client specifies enforceSSL: false (#559) * added condition to omit HTTPS only requests * added tests for enforce when bucketProp is empty and when enforceSSL is not set * updated integ tests enforceSSL bucket policy * updated viperlight ignore --- .viperlightignore | 16 +- ....privateApiExistingResources.expected.json | 17 +- ...integ.privateApiNewResources.expected.json | 17 +- ...g.publicApiExistingResources.expected.json | 17 +- .../integ.publicApiNewResources.expected.json | 17 +- .../test/integ.twoTargets.expected.json | 17 +- ...ustomCloudfrontLoggingBucket.expected.json | 17 +- .../test/integ.no-arguments.expected.json | 17 +- .../integ.override-behavior.expected.json | 17 +- ...ustomCloudfrontLoggingBucket.expected.json | 17 +- .../test/integ.no-arguments.expected.json | 17 +- ...ustomCloudFrontLoggingBucket.expected.json | 17 +- .../test/integ.default.expected.json | 17 +- .../integ.existingContainer.expected.json | 17 +- .../integ.overrideProperties.expected.json | 17 +- ...g.withoutHttpSecurityHeaders.expected.json | 17 +- .../integ.custom-originPath.expected.json | 51 ++--- ...nteg.custom-security-headers.expected.json | 51 ++--- ...ustomCloudFrontLoggingBucket.expected.json | 51 ++--- .../integ.customLoggingBucket.expected.json | 51 ++--- .../test/integ.existing-bucket.expected.json | 17 +- .../test/integ.no-arguments.expected.json | 34 ++- .../integ.no-security-headers.expected.json | 51 ++--- .../integ.customLoggingBucket.expected.json | 34 ++- ...irehose-s3-existing-eventbus.expected.json | 17 +- ...esisfirehose-s3-new-eventbus.expected.json | 17 +- ...esisfirehose-s3-no-arguments.expected.json | 34 ++- .../integ.customLoggingBucket.expected.json | 34 ++- ...irehose-s3-existing-eventbus.expected.json | 17 +- ...esisfirehose-s3-new-eventbus.expected.json | 34 ++- ...esisfirehose-s3-no-arguments.expected.json | 34 ++- .../integ.customLoggingBucket.expected.json | 34 ++- .../test/integ.no-arguments.expected.json | 34 ++- .../test/integ.noLoggingBucket.expected.json | 17 +- .../integ.customLoggingBucket.expected.json | 34 ++- .../test/integ.no-arguments.expected.json | 34 ++- .../test/integ.noLoggingBucket.expected.json | 17 +- .../integ.customLoggingBucket.expected.json | 34 ++- .../test/integ.no-arguments.expected.json | 34 ++- .../test/integ.noLoggingBucket.expected.json | 17 +- ....pre-existing-logging-bucket.expected.json | 17 +- .../test/integ.existing-job.expected.json | 2 +- .../test/integ.no-arguments.expected.json | 36 ++- .../integ.customLoggingBucket.expected.json | 36 ++- .../test/integ.existing-bucket.expected.json | 2 +- ...nteg.existing-logging-bucket.expected.json | 19 +- .../integ.existingStreamObj.expected.json | 19 +- .../test/integ.no-arguments.expected.json | 36 ++- .../integ.customLoggingBucket.expected.json | 34 ++- .../test/integ.deployFunction.expected.json | 17 +- .../integ.deployFunctionWithVpc.expected.json | 17 +- .../test/integ.existingFunction.expected.json | 34 ++- .../test/integ.deployPrivateApi.expected.json | 17 +- ...deployPrivateApiExistingZone.expected.json | 17 +- .../integ.deployPublicApiNewAlb.expected.json | 17 +- .../test/integ.no-arguments.expected.json | 17 +- .../test/integ.creatingNewQueue.expected.json | 17 +- .../integ.customLoggingBucket.expected.json | 34 ++- .../test/integ.existingQueue.expected.json | 17 +- .../test/integ.existingS3Bucket.expected.json | 34 ++- .../test/integ.noArguments.expected.json | 34 ++- .../integ.customLoggingBucket.expected.json | 34 ++- ...s3-step-function-no-argument.expected.json | 17 +- .../integ.customLoggingBucket.expected.json | 34 ++- ...s3-stepfunctions-no-argument.expected.json | 17 +- ...g-waf-to-multiple-cloudfront.expected.json | 102 ++++----- .../test/integ.no-arguments.expected.json | 51 ++--- ...cloudfront-apigateway-lambda.expected.json | 17 +- ...webacl-cloudfront-mediastore.expected.json | 17 +- .../core/lib/s3-bucket-defaults.ts | 2 + .../core/lib/s3-bucket-helper.ts | 31 +-- .../cloudfront-distribution-s3-helper.test.ts | 51 ++++- .../core/test/s3-bucket-helper.test.ts | 24 +- .../core/test/s3-bucket.test.ts | 205 ++++++++++++++++++ 74 files changed, 1116 insertions(+), 1012 deletions(-) diff --git a/.viperlightignore b/.viperlightignore index af5c3eb5b..86f6c45f9 100644 --- a/.viperlightignore +++ b/.viperlightignore @@ -145,11 +145,11 @@ source/patterns/@aws-solutions-constructs/aws-alb-lambda/README.md:35 source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/alb-lambda.test.ts:27 source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/alb-lambda.test.ts:680 # These are references to the us-east-1 ELBV2 account (publicly known) -source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPrivateApi.expected.json:193 -source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPrivateApiExistingZone.expected.json:850 -source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPublicApiNewAlb.expected.json:188 -source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiNewResources.expected.json:196 -source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiNewResources.expected.json:199 -source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.twoTargets.expected.json:199 -source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiExistingResources.expected.json:1064 -source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiExistingResources.expected.json:1064 +source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPrivateApi.expected.json:192 +source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPrivateApiExistingZone.expected.json:849 +source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPublicApiNewAlb.expected.json:187 +source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiNewResources.expected.json:195 +source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiNewResources.expected.json:198 +source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.twoTargets.expected.json:198 +source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiExistingResources.expected.json:1063 +source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiExistingResources.expected.json:1063 diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiExistingResources.expected.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiExistingResources.expected.json index 3e91712f2..97882768b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiExistingResources.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiExistingResources.expected.json @@ -1012,7 +1012,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -1023,6 +1023,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "existingalb0F60CC48", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -1036,15 +1042,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "existingalb0F60CC48", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] }, { "Action": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiNewResources.expected.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiNewResources.expected.json index c1e82e767..7c7304eda 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiNewResources.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiNewResources.expected.json @@ -144,7 +144,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -155,6 +155,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testoneE6ACFBB6", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -168,15 +174,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testoneE6ACFBB6", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] }, { "Action": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiExistingResources.expected.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiExistingResources.expected.json index 1faf9a970..5357a59a9 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiExistingResources.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiExistingResources.expected.json @@ -1012,7 +1012,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -1023,6 +1023,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "existingalb0F60CC48", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -1036,15 +1042,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "existingalb0F60CC48", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] }, { "Action": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiNewResources.expected.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiNewResources.expected.json index 3d88d4375..e026c922c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiNewResources.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiNewResources.expected.json @@ -147,7 +147,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -158,6 +158,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testoneE6ACFBB6", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -171,15 +177,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testoneE6ACFBB6", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] }, { "Action": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.twoTargets.expected.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.twoTargets.expected.json index e0052d754..03749e9fb 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.twoTargets.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.twoTargets.expected.json @@ -147,7 +147,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -158,6 +158,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testoneE6ACFBB6", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -171,15 +177,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testoneE6ACFBB6", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] }, { "Action": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.customCloudfrontLoggingBucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.customCloudfrontLoggingBucket.expected.json index 454bbc76a..0f3ff86ae 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.customCloudfrontLoggingBucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.customCloudfrontLoggingBucket.expected.json @@ -643,7 +643,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -654,6 +654,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "cfapigwlambdaCloudFrontToApiGatewayCloudfrontLoggingBucket2E8E3DC2", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -667,15 +673,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "cfapigwlambdaCloudFrontToApiGatewayCloudfrontLoggingBucket2E8E3DC2", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.no-arguments.expected.json index 2b7c565dc..e68f46aab 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.no-arguments.expected.json @@ -643,7 +643,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -654,6 +654,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucket7F467421", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -667,15 +673,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucket7F467421", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.override-behavior.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.override-behavior.expected.json index ea04aa326..aa0f204c2 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.override-behavior.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.override-behavior.expected.json @@ -604,7 +604,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -615,6 +615,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "cfapilambdaoverrideCloudFrontToApiGatewayCloudfrontLoggingBucket3A71B9E0", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -628,15 +634,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "cfapilambdaoverrideCloudFrontToApiGatewayCloudfrontLoggingBucket3A71B9E0", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.customCloudfrontLoggingBucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.customCloudfrontLoggingBucket.expected.json index 6bd0eaf62..a4a7a880d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.customCloudfrontLoggingBucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.customCloudfrontLoggingBucket.expected.json @@ -643,7 +643,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -654,6 +654,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "cfapigwCloudfrontLoggingBucket79FE4195", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -667,15 +673,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "cfapigwCloudfrontLoggingBucket79FE4195", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.no-arguments.expected.json index eb26d485e..6e15f0d10 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.no-arguments.expected.json @@ -643,7 +643,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -654,6 +654,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testcloudfrontapigatewayCloudfrontLoggingBucket9811F6E8", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -667,15 +673,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testcloudfrontapigatewayCloudfrontLoggingBucket9811F6E8", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/test/integ.customCloudFrontLoggingBucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/test/integ.customCloudFrontLoggingBucket.expected.json index 8d52a17e1..f21603283 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/test/integ.customCloudFrontLoggingBucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/test/integ.customCloudFrontLoggingBucket.expected.json @@ -127,7 +127,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -138,6 +138,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "cloudfrontmediastoreCloudfrontLoggingBucketE54A8D50", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -151,15 +157,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "cloudfrontmediastoreCloudfrontLoggingBucketE54A8D50", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/test/integ.default.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/test/integ.default.expected.json index b6b8466b8..2dcfbbb9f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/test/integ.default.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/test/integ.default.expected.json @@ -127,7 +127,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -138,6 +138,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testcloudfrontmediastoreCloudfrontLoggingBucketA3A51E6A", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -151,15 +157,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testcloudfrontmediastoreCloudfrontLoggingBucketA3A51E6A", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/test/integ.existingContainer.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/test/integ.existingContainer.expected.json index fbfaa3c95..bf77e303a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/test/integ.existingContainer.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/test/integ.existingContainer.expected.json @@ -52,7 +52,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -63,6 +63,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testcloudfrontmediastoreCloudfrontLoggingBucketA3A51E6A", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -76,15 +82,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testcloudfrontmediastoreCloudfrontLoggingBucketA3A51E6A", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/test/integ.overrideProperties.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/test/integ.overrideProperties.expected.json index c46fd31f2..3714b943e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/test/integ.overrideProperties.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/test/integ.overrideProperties.expected.json @@ -91,7 +91,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -102,6 +102,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testcloudfrontmediastoreCloudfrontLoggingBucketA3A51E6A", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -115,15 +121,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testcloudfrontmediastoreCloudfrontLoggingBucketA3A51E6A", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/test/integ.withoutHttpSecurityHeaders.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/test/integ.withoutHttpSecurityHeaders.expected.json index 8aa18d953..463e7677c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/test/integ.withoutHttpSecurityHeaders.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-mediastore/test/integ.withoutHttpSecurityHeaders.expected.json @@ -127,7 +127,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -138,6 +138,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testcloudfrontmediastoreCloudfrontLoggingBucketA3A51E6A", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -151,15 +157,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testcloudfrontmediastoreCloudfrontLoggingBucketA3A51E6A", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.custom-originPath.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.custom-originPath.expected.json index db8094d0f..3afc70aa2 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.custom-originPath.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.custom-originPath.expected.json @@ -46,7 +46,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -57,6 +57,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testcloudfronts3S3LoggingBucket90D239DD", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -70,15 +76,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testcloudfronts3S3LoggingBucket90D239DD", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" @@ -137,7 +136,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -148,6 +147,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testcloudfronts3S3BucketE0C5F76E", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -161,15 +166,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testcloudfronts3S3BucketE0C5F76E", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] }, { "Action": "s3:GetObject", @@ -269,7 +267,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -280,6 +278,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testcloudfronts3CloudfrontLoggingBucket985C0FE8", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -293,15 +297,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testcloudfronts3CloudfrontLoggingBucket985C0FE8", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.custom-security-headers.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.custom-security-headers.expected.json index 784fb40e6..9dea28f89 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.custom-security-headers.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.custom-security-headers.expected.json @@ -78,7 +78,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -89,6 +89,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testcloudfronts3S3LoggingBucket90D239DD", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -102,15 +108,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testcloudfronts3S3LoggingBucket90D239DD", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" @@ -169,7 +168,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -180,6 +179,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testcloudfronts3S3BucketE0C5F76E", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -193,15 +198,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testcloudfronts3S3BucketE0C5F76E", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] }, { "Action": "s3:GetObject", @@ -301,7 +299,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -312,6 +310,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testcloudfronts3CloudfrontLoggingBucket985C0FE8", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -325,15 +329,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testcloudfronts3CloudfrontLoggingBucket985C0FE8", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.customCloudFrontLoggingBucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.customCloudFrontLoggingBucket.expected.json index 302ba2dcb..0786ac742 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.customCloudFrontLoggingBucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.customCloudFrontLoggingBucket.expected.json @@ -46,7 +46,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -57,6 +57,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testcloudfronts3S3LoggingBucket90D239DD", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -70,15 +76,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testcloudfronts3S3LoggingBucket90D239DD", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" @@ -137,7 +136,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -148,6 +147,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testcloudfronts3S3BucketE0C5F76E", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -161,15 +166,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testcloudfronts3S3BucketE0C5F76E", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] }, { "Action": "s3:GetObject", @@ -269,7 +267,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -280,6 +278,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testcloudfronts3CloudfrontLoggingBucket985C0FE8", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -293,15 +297,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testcloudfronts3CloudfrontLoggingBucket985C0FE8", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.customLoggingBucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.customLoggingBucket.expected.json index f78bb60f8..384b8bde7 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.customLoggingBucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.customLoggingBucket.expected.json @@ -46,7 +46,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -57,6 +57,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testcloudfronts3S3LoggingBucket90D239DD", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -70,15 +76,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testcloudfronts3S3LoggingBucket90D239DD", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" @@ -137,7 +136,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -148,6 +147,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testcloudfronts3S3BucketE0C5F76E", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -161,15 +166,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testcloudfronts3S3BucketE0C5F76E", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] }, { "Action": "s3:GetObject", @@ -269,7 +267,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -280,6 +278,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testcloudfronts3CloudfrontLoggingBucket985C0FE8", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -293,15 +297,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testcloudfronts3CloudfrontLoggingBucket985C0FE8", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.existing-bucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.existing-bucket.expected.json index d672d7984..7a3409c07 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.existing-bucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.existing-bucket.expected.json @@ -169,7 +169,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -180,6 +180,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testcloudfronts3CloudfrontLoggingBucket985C0FE8", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -193,15 +199,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testcloudfronts3CloudfrontLoggingBucket985C0FE8", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.no-arguments.expected.json index 402a314ef..cc22d0b1c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.no-arguments.expected.json @@ -58,7 +58,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -69,6 +69,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testcloudfronts3S3BucketE0C5F76E", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -82,15 +88,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testcloudfronts3S3BucketE0C5F76E", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] }, { "Action": "s3:GetObject", @@ -190,7 +189,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -201,6 +200,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testcloudfronts3CloudfrontLoggingBucket985C0FE8", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -214,15 +219,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testcloudfronts3CloudfrontLoggingBucket985C0FE8", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.no-security-headers.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.no-security-headers.expected.json index 6b8d6e96f..44de4ac82 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.no-security-headers.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.no-security-headers.expected.json @@ -46,7 +46,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -57,6 +57,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testcloudfronts3nosecurityheadersS3LoggingBucketF644B35F", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -70,15 +76,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testcloudfronts3nosecurityheadersS3LoggingBucketF644B35F", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" @@ -137,7 +136,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -148,6 +147,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testcloudfronts3nosecurityheadersS3Bucket4D06173D", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -161,15 +166,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testcloudfronts3nosecurityheadersS3Bucket4D06173D", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] }, { "Action": "s3:GetObject", @@ -257,7 +255,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -268,6 +266,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testcloudfronts3nosecurityheadersCloudfrontLoggingBucket92A5E2A5", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -281,15 +285,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testcloudfronts3nosecurityheadersCloudfrontLoggingBucket92A5E2A5", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.customLoggingBucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.customLoggingBucket.expected.json index 5af988e26..1e6467cab 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.customLoggingBucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.customLoggingBucket.expected.json @@ -46,7 +46,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -57,6 +57,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testkinesisfirehoses3KinesisFirehoseToS3S3LoggingBucketCF5B8A5C", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -70,15 +76,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testkinesisfirehoses3KinesisFirehoseToS3S3LoggingBucketCF5B8A5C", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" @@ -137,7 +136,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -148,6 +147,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testkinesisfirehoses3KinesisFirehoseToS3S3Bucket303877FF", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -161,15 +166,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testkinesisfirehoses3KinesisFirehoseToS3S3Bucket303877FF", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.eventbridge-kinesisfirehose-s3-existing-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.eventbridge-kinesisfirehose-s3-existing-eventbus.expected.json index ea20e51e2..992df0413 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.eventbridge-kinesisfirehose-s3-existing-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.eventbridge-kinesisfirehose-s3-existing-eventbus.expected.json @@ -64,7 +64,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -75,6 +75,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testeventbridgekinesisfirehoses3KinesisFirehoseToS3S3BucketF3A3F845", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -88,15 +94,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testeventbridgekinesisfirehoses3KinesisFirehoseToS3S3BucketF3A3F845", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.eventbridge-kinesisfirehose-s3-new-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.eventbridge-kinesisfirehose-s3-new-eventbus.expected.json index 812e0e7e4..1fcb52910 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.eventbridge-kinesisfirehose-s3-new-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.eventbridge-kinesisfirehose-s3-new-eventbus.expected.json @@ -58,7 +58,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -69,6 +69,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testeventbridgekinesisfirehoses3KinesisFirehoseToS3S3BucketF3A3F845", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -82,15 +88,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testeventbridgekinesisfirehoses3KinesisFirehoseToS3S3BucketF3A3F845", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.eventbridge-kinesisfirehose-s3-no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.eventbridge-kinesisfirehose-s3-no-arguments.expected.json index 6a47b62d6..2daff43df 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.eventbridge-kinesisfirehose-s3-no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-kinesisfirehose-s3/test/integ.eventbridge-kinesisfirehose-s3-no-arguments.expected.json @@ -46,7 +46,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -57,6 +57,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testeventbridgekinesisfirehoses3KinesisFirehoseToS3S3LoggingBucket703E6C44", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -70,15 +76,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testeventbridgekinesisfirehoses3KinesisFirehoseToS3S3LoggingBucket703E6C44", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" @@ -137,7 +136,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -148,6 +147,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testeventbridgekinesisfirehoses3KinesisFirehoseToS3S3BucketF3A3F845", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -161,15 +166,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testeventbridgekinesisfirehoses3KinesisFirehoseToS3S3BucketF3A3F845", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.customLoggingBucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.customLoggingBucket.expected.json index 9681f7a21..b804f8382 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.customLoggingBucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.customLoggingBucket.expected.json @@ -46,7 +46,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -57,6 +57,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testkinesisfirehoses3testkinesisfirehoses3WKinesisFirehoseToS3S3LoggingBucketD6CEA4BD", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -70,15 +76,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testkinesisfirehoses3testkinesisfirehoses3WKinesisFirehoseToS3S3LoggingBucketD6CEA4BD", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" @@ -137,7 +136,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -148,6 +147,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testkinesisfirehoses3testkinesisfirehoses3WKinesisFirehoseToS3S3BucketABE82A57", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -161,15 +166,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testkinesisfirehoses3testkinesisfirehoses3WKinesisFirehoseToS3S3BucketABE82A57", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.events-rule-kinesisfirehose-s3-existing-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.events-rule-kinesisfirehose-s3-existing-eventbus.expected.json index 7613a5a16..00b8e76ff 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.events-rule-kinesisfirehose-s3-existing-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.events-rule-kinesisfirehose-s3-existing-eventbus.expected.json @@ -64,7 +64,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -75,6 +75,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testeventsrulekinesisfirehoses3testeventsrulekinesisfirehoses3WKinesisFirehoseToS3S3Bucket099FD6EC", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -88,15 +94,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testeventsrulekinesisfirehoses3testeventsrulekinesisfirehoses3WKinesisFirehoseToS3S3Bucket099FD6EC", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.events-rule-kinesisfirehose-s3-new-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.events-rule-kinesisfirehose-s3-new-eventbus.expected.json index 23fa30863..7b422f263 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.events-rule-kinesisfirehose-s3-new-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.events-rule-kinesisfirehose-s3-new-eventbus.expected.json @@ -46,7 +46,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -57,6 +57,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testeventsrulekinesisfirehoses3testeventsrulekinesisfirehoses3WKinesisFirehoseToS3S3LoggingBucketC5C17A3C", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -70,15 +76,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testeventsrulekinesisfirehoses3testeventsrulekinesisfirehoses3WKinesisFirehoseToS3S3LoggingBucketC5C17A3C", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" @@ -147,7 +146,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -158,6 +157,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testeventsrulekinesisfirehoses3testeventsrulekinesisfirehoses3WKinesisFirehoseToS3S3Bucket099FD6EC", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -171,15 +176,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testeventsrulekinesisfirehoses3testeventsrulekinesisfirehoses3WKinesisFirehoseToS3S3Bucket099FD6EC", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.events-rule-kinesisfirehose-s3-no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.events-rule-kinesisfirehose-s3-no-arguments.expected.json index 879991656..7c55e7332 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.events-rule-kinesisfirehose-s3-no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-kinesisfirehose-s3/test/integ.events-rule-kinesisfirehose-s3-no-arguments.expected.json @@ -46,7 +46,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -57,6 +57,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testeventsrulekinesisfirehoses3testeventsrulekinesisfirehoses3WKinesisFirehoseToS3S3LoggingBucketC5C17A3C", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -70,15 +76,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testeventsrulekinesisfirehoses3testeventsrulekinesisfirehoses3WKinesisFirehoseToS3S3LoggingBucketC5C17A3C", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" @@ -137,7 +136,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -148,6 +147,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testeventsrulekinesisfirehoses3testeventsrulekinesisfirehoses3WKinesisFirehoseToS3S3Bucket099FD6EC", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -161,15 +166,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testeventsrulekinesisfirehoses3testeventsrulekinesisfirehoses3WKinesisFirehoseToS3S3Bucket099FD6EC", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/test/integ.customLoggingBucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/test/integ.customLoggingBucket.expected.json index 2b51c2c79..abf3229d3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/test/integ.customLoggingBucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/test/integ.customLoggingBucket.expected.json @@ -46,7 +46,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -57,6 +57,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testiotkinesisfirehoses3KinesisFirehoseToS3S3LoggingBucket03F0BA8E", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -70,15 +76,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testiotkinesisfirehoses3KinesisFirehoseToS3S3LoggingBucket03F0BA8E", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" @@ -137,7 +136,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -148,6 +147,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testiotkinesisfirehoses3KinesisFirehoseToS3S3BucketAEE2D91B", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -161,15 +166,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testiotkinesisfirehoses3KinesisFirehoseToS3S3BucketAEE2D91B", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/test/integ.no-arguments.expected.json index 32114513f..6e8776b61 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/test/integ.no-arguments.expected.json @@ -46,7 +46,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -57,6 +57,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testiotfirehoses3KinesisFirehoseToS3S3LoggingBucketC786B050", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -70,15 +76,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testiotfirehoses3KinesisFirehoseToS3S3LoggingBucketC786B050", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" @@ -137,7 +136,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -148,6 +147,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testiotfirehoses3KinesisFirehoseToS3S3Bucket19C97D09", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -161,15 +166,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testiotfirehoses3KinesisFirehoseToS3S3Bucket19C97D09", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/test/integ.noLoggingBucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/test/integ.noLoggingBucket.expected.json index daf5619ff..c2d42694e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/test/integ.noLoggingBucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/test/integ.noLoggingBucket.expected.json @@ -57,7 +57,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -68,6 +68,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testiotkinesisfirehoses3KinesisFirehoseToS3S3BucketAEE2D91B", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -81,15 +87,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testiotkinesisfirehoses3KinesisFirehoseToS3S3BucketAEE2D91B", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/test/integ.customLoggingBucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/test/integ.customLoggingBucket.expected.json index 1209165dd..c71a37c07 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/test/integ.customLoggingBucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/test/integ.customLoggingBucket.expected.json @@ -46,7 +46,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -57,6 +57,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testkinesisfirehoseanalyticss3KinesisFirehoseToS3S3LoggingBucketE14ECC0A", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -70,15 +76,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testkinesisfirehoseanalyticss3KinesisFirehoseToS3S3LoggingBucketE14ECC0A", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" @@ -137,7 +136,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -148,6 +147,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testkinesisfirehoseanalyticss3KinesisFirehoseToS3S3BucketA83D2E56", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -161,15 +166,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testkinesisfirehoseanalyticss3KinesisFirehoseToS3S3BucketA83D2E56", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/test/integ.no-arguments.expected.json index e290a5129..6e1505b08 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/test/integ.no-arguments.expected.json @@ -45,7 +45,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -56,6 +56,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testfirehoses3andanalyticsstackKinesisFirehoseToS3S3LoggingBucket887A5000", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -69,15 +75,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testfirehoses3andanalyticsstackKinesisFirehoseToS3S3LoggingBucket887A5000", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" @@ -136,7 +135,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -147,6 +146,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testfirehoses3andanalyticsstackKinesisFirehoseToS3S3BucketAE659354", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -160,15 +165,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testfirehoses3andanalyticsstackKinesisFirehoseToS3S3BucketAE659354", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/test/integ.noLoggingBucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/test/integ.noLoggingBucket.expected.json index 315a8bb6f..2969bc8d6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/test/integ.noLoggingBucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/test/integ.noLoggingBucket.expected.json @@ -57,7 +57,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -68,6 +68,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testkinesisfirehoseanalyticss3KinesisFirehoseToS3S3BucketA83D2E56", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -81,15 +87,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testkinesisfirehoseanalyticss3KinesisFirehoseToS3S3BucketA83D2E56", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.customLoggingBucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.customLoggingBucket.expected.json index 7ba2db9f4..b20a82bf0 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.customLoggingBucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.customLoggingBucket.expected.json @@ -46,7 +46,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -57,6 +57,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testkinesisfirehoses3S3LoggingBucketDD0F9F56", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -70,15 +76,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testkinesisfirehoses3S3LoggingBucketDD0F9F56", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" @@ -137,7 +136,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -148,6 +147,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testkinesisfirehoses3S3BucketA8942735", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -161,15 +166,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testkinesisfirehoses3S3BucketA8942735", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.no-arguments.expected.json index fa65e9355..441ab4dac 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.no-arguments.expected.json @@ -46,7 +46,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -57,6 +57,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testfirehoses3S3LoggingBucket31BFDC22", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -70,15 +76,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testfirehoses3S3LoggingBucket31BFDC22", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" @@ -137,7 +136,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -148,6 +147,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testfirehoses3S3Bucket93480488", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -161,15 +166,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testfirehoses3S3Bucket93480488", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.noLoggingBucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.noLoggingBucket.expected.json index 109e76171..b31300484 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.noLoggingBucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.noLoggingBucket.expected.json @@ -57,7 +57,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -68,6 +68,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testkinesisfirehoses3S3BucketA8942735", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -81,15 +87,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testkinesisfirehoses3S3BucketA8942735", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.pre-existing-logging-bucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.pre-existing-logging-bucket.expected.json index 0cffcc486..27b40751b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.pre-existing-logging-bucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.pre-existing-logging-bucket.expected.json @@ -91,7 +91,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -102,6 +102,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testfirehoses3preexistingloggingbucketstackS3BucketD14D0F4F", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -115,15 +121,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testfirehoses3preexistingloggingbucketstackS3BucketD14D0F4F", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-gluejob/test/integ.existing-job.expected.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-gluejob/test/integ.existing-job.expected.json index 591142707..e96de9738 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-gluejob/test/integ.existing-job.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-gluejob/test/integ.existing-job.expected.json @@ -84,8 +84,8 @@ "testkinesisstreamslambdaKinesisStream374D6D56": { "Type": "AWS::Kinesis::Stream", "Properties": { - "ShardCount": 1, "RetentionPeriodHours": 24, + "ShardCount": 1, "StreamEncryption": { "EncryptionType": "KMS", "KeyId": "alias/aws/kinesis" diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-gluejob/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-gluejob/test/integ.no-arguments.expected.json index 4a535153c..01e18d767 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-gluejob/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-gluejob/test/integ.no-arguments.expected.json @@ -4,8 +4,8 @@ "testkinesisstreamslambdaKinesisStream374D6D56": { "Type": "AWS::Kinesis::Stream", "Properties": { - "ShardCount": 1, "RetentionPeriodHours": 24, + "ShardCount": 1, "StreamEncryption": { "EncryptionType": "KMS", "KeyId": "alias/aws/kinesis" @@ -238,7 +238,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -249,6 +249,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testkinesisstreamslambdaS3LoggingBucket48F70267", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -262,15 +268,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testkinesisstreamslambdaS3LoggingBucket48F70267", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" @@ -329,7 +328,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -340,6 +339,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testkinesisstreamslambdaS3Bucket54759F5C", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -353,15 +358,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testkinesisstreamslambdaS3Bucket54759F5C", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.customLoggingBucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.customLoggingBucket.expected.json index d1dcfab67..0d259e57c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.customLoggingBucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.customLoggingBucket.expected.json @@ -3,8 +3,8 @@ "testkinesisfirehoses3KinesisStreamA5D50D48": { "Type": "AWS::Kinesis::Stream", "Properties": { - "ShardCount": 1, "RetentionPeriodHours": 24, + "ShardCount": 1, "StreamEncryption": { "EncryptionType": "KMS", "KeyId": "alias/aws/kinesis" @@ -57,7 +57,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -68,6 +68,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testkinesisfirehoses3KinesisFirehoseToS3S3LoggingBucketCF5B8A5C", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -81,15 +87,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testkinesisfirehoses3KinesisFirehoseToS3S3LoggingBucketCF5B8A5C", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" @@ -148,7 +147,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -159,6 +158,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testkinesisfirehoses3KinesisFirehoseToS3S3Bucket303877FF", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -172,15 +177,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testkinesisfirehoses3KinesisFirehoseToS3S3Bucket303877FF", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.existing-bucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.existing-bucket.expected.json index 84ae3909c..aa938076d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.existing-bucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.existing-bucket.expected.json @@ -41,8 +41,8 @@ "testexistingbucketfirehoses3stackKinesisStreamCA3487EE": { "Type": "AWS::Kinesis::Stream", "Properties": { - "ShardCount": 1, "RetentionPeriodHours": 24, + "ShardCount": 1, "StreamEncryption": { "EncryptionType": "KMS", "KeyId": "alias/aws/kinesis" diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.existing-logging-bucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.existing-logging-bucket.expected.json index 12298137d..5df9e0950 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.existing-logging-bucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.existing-logging-bucket.expected.json @@ -42,8 +42,8 @@ "testexistingloggingbucketstreamsfirehoses3stackKinesisStreamDBBCC46F": { "Type": "AWS::Kinesis::Stream", "Properties": { - "ShardCount": 1, "RetentionPeriodHours": 24, + "ShardCount": 1, "StreamEncryption": { "EncryptionType": "KMS", "KeyId": "alias/aws/kinesis" @@ -102,7 +102,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -113,6 +113,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testexistingloggingbucketstreamsfirehoses3stackKinesisFirehoseToS3S3Bucket292E0692", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -126,15 +132,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testexistingloggingbucketstreamsfirehoses3stackKinesisFirehoseToS3S3Bucket292E0692", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.existingStreamObj.expected.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.existingStreamObj.expected.json index bcfe419ee..8b0150cdc 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.existingStreamObj.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.existingStreamObj.expected.json @@ -4,8 +4,8 @@ "testkinesislambdaKinesisStream00F67958": { "Type": "AWS::Kinesis::Stream", "Properties": { - "ShardCount": 1, "RetentionPeriodHours": 24, + "ShardCount": 1, "StreamEncryption": { "EncryptionType": "KMS", "KeyId": "alias/aws/kinesis" @@ -383,7 +383,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -394,6 +394,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testexistingstreamfirehoses3stackKinesisFirehoseToS3S3BucketF4CE72AB", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -407,15 +413,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testexistingstreamfirehoses3stackKinesisFirehoseToS3S3BucketF4CE72AB", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.no-arguments.expected.json index bf2b0df09..288a7876d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.no-arguments.expected.json @@ -4,8 +4,8 @@ "teststreamfirehoses3KinesisStream3165E68E": { "Type": "AWS::Kinesis::Stream", "Properties": { - "ShardCount": 1, "RetentionPeriodHours": 24, + "ShardCount": 1, "StreamEncryption": { "EncryptionType": "KMS", "KeyId": "alias/aws/kinesis" @@ -57,7 +57,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -68,6 +68,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "teststreamfirehoses3KinesisFirehoseToS3S3LoggingBucketFB87BEBC", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -81,15 +87,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "teststreamfirehoses3KinesisFirehoseToS3S3LoggingBucketFB87BEBC", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" @@ -148,7 +147,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -159,6 +158,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "teststreamfirehoses3KinesisFirehoseToS3S3Bucket315B67A3", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -172,15 +177,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "teststreamfirehoses3KinesisFirehoseToS3S3Bucket315B67A3", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.customLoggingBucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.customLoggingBucket.expected.json index 6e61f7cd6..f0cf28f76 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.customLoggingBucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.customLoggingBucket.expected.json @@ -220,7 +220,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -231,6 +231,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testlambdas3S3LoggingBucketD42FC73D", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -244,15 +250,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testlambdas3S3LoggingBucketD42FC73D", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" @@ -311,7 +310,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -322,6 +321,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testlambdas3S3Bucket179A52E6", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -335,15 +340,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testlambdas3S3Bucket179A52E6", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.deployFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.deployFunction.expected.json index 0a7e25c90..575d1a044 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.deployFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.deployFunction.expected.json @@ -232,7 +232,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -243,6 +243,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testlambdas3S3Bucket179A52E6", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -256,15 +262,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testlambdas3S3Bucket179A52E6", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.deployFunctionWithVpc.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.deployFunctionWithVpc.expected.json index 38d0e1b08..b9e4838f2 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.deployFunctionWithVpc.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.deployFunctionWithVpc.expected.json @@ -294,7 +294,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -305,6 +305,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testlambdas3S3Bucket179A52E6", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -318,15 +324,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testlambdas3S3Bucket179A52E6", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.existingFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.existingFunction.expected.json index bc2c7fe37..ef8b12cfa 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.existingFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.existingFunction.expected.json @@ -220,7 +220,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -231,6 +231,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testlambdas3S3LoggingBucketD42FC73D", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -244,15 +250,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testlambdas3S3LoggingBucketD42FC73D", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" @@ -311,7 +310,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -322,6 +321,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testlambdas3S3Bucket179A52E6", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -335,15 +340,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testlambdas3S3Bucket179A52E6", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPrivateApi.expected.json b/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPrivateApi.expected.json index 90b404685..943613867 100644 --- a/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPrivateApi.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPrivateApi.expected.json @@ -141,7 +141,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -152,6 +152,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "privateapistack09C932BB", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -165,15 +171,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "privateapistack09C932BB", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] }, { "Action": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPrivateApiExistingZone.expected.json b/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPrivateApiExistingZone.expected.json index c806e0945..5578eaef1 100644 --- a/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPrivateApiExistingZone.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPrivateApiExistingZone.expected.json @@ -798,7 +798,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -809,6 +809,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "existingzonestackEFB9F5B3", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -822,15 +828,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "existingzonestackEFB9F5B3", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] }, { "Action": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPublicApiNewAlb.expected.json b/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPublicApiNewAlb.expected.json index 129c1e31f..99b22dc53 100644 --- a/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPublicApiNewAlb.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-route53-alb/test/integ.deployPublicApiNewAlb.expected.json @@ -136,7 +136,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -147,6 +147,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "newalbstackADB02838", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -160,15 +166,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "newalbstackADB02838", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] }, { "Action": [ diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.no-arguments.expected.json index 771b72f46..94b6d1ffe 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.no-arguments.expected.json @@ -228,7 +228,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -239,6 +239,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "tests3lambdaS3BucketBE7C1B8E", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -252,15 +258,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "tests3lambdaS3BucketBE7C1B8E", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-sqs/test/integ.creatingNewQueue.expected.json b/source/patterns/@aws-solutions-constructs/aws-s3-sqs/test/integ.creatingNewQueue.expected.json index cb7b2cab6..0985d6bce 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-sqs/test/integ.creatingNewQueue.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-sqs/test/integ.creatingNewQueue.expected.json @@ -142,7 +142,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -153,6 +153,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "tests3sqsS3BucketFF76CDA6", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -166,15 +172,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "tests3sqsS3BucketFF76CDA6", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-sqs/test/integ.customLoggingBucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-s3-sqs/test/integ.customLoggingBucket.expected.json index 8a19aafa5..2e7b3bb22 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-sqs/test/integ.customLoggingBucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-sqs/test/integ.customLoggingBucket.expected.json @@ -46,7 +46,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -57,6 +57,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "tests3sqsS3LoggingBucket0B0BC86A", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -70,15 +76,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "tests3sqsS3LoggingBucket0B0BC86A", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" @@ -171,7 +170,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -182,6 +181,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "tests3sqsS3BucketFF76CDA6", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -195,15 +200,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "tests3sqsS3BucketFF76CDA6", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-sqs/test/integ.existingQueue.expected.json b/source/patterns/@aws-solutions-constructs/aws-s3-sqs/test/integ.existingQueue.expected.json index 510b610f3..1d55d8ff9 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-sqs/test/integ.existingQueue.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-sqs/test/integ.existingQueue.expected.json @@ -272,7 +272,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -283,6 +283,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "tests3sqsS3BucketFF76CDA6", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -296,15 +302,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "tests3sqsS3BucketFF76CDA6", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-sqs/test/integ.existingS3Bucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-s3-sqs/test/integ.existingS3Bucket.expected.json index c26dcd5c1..c171654d7 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-sqs/test/integ.existingS3Bucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-sqs/test/integ.existingS3Bucket.expected.json @@ -45,7 +45,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -56,6 +56,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "S3LoggingBucket800A2B27", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -69,15 +75,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "S3LoggingBucket800A2B27", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" @@ -170,7 +169,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -181,6 +180,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "S3Bucket07682993", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -194,15 +199,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "S3Bucket07682993", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-sqs/test/integ.noArguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-s3-sqs/test/integ.noArguments.expected.json index a65cdb852..80f9150d4 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-sqs/test/integ.noArguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-sqs/test/integ.noArguments.expected.json @@ -45,7 +45,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -56,6 +56,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "tests3sqsS3LoggingBucket0B0BC86A", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -69,15 +75,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "tests3sqsS3LoggingBucket0B0BC86A", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" @@ -170,7 +169,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -181,6 +180,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "tests3sqsS3BucketFF76CDA6", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -194,15 +199,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "tests3sqsS3BucketFF76CDA6", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.customLoggingBucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.customLoggingBucket.expected.json index 2d123e176..7ad5b828c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.customLoggingBucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.customLoggingBucket.expected.json @@ -46,7 +46,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -57,6 +57,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "tests3stepfunctiontests3stepfunctionWS3LoggingBucketB716417C", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -70,15 +76,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "tests3stepfunctiontests3stepfunctionWS3LoggingBucketB716417C", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" @@ -142,7 +141,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -153,6 +152,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "tests3stepfunctiontests3stepfunctionWS3Bucket9BE64924", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -166,15 +171,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "tests3stepfunctiontests3stepfunctionWS3Bucket9BE64924", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.s3-step-function-no-argument.expected.json b/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.s3-step-function-no-argument.expected.json index 66919993c..1f8dcdb88 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.s3-step-function-no-argument.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.s3-step-function-no-argument.expected.json @@ -62,7 +62,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -73,6 +73,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "tests3stepfunctionconstructtests3stepfunctionconstructWS3Bucket474FE3A1", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -86,15 +92,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "tests3stepfunctionconstructtests3stepfunctionconstructWS3Bucket474FE3A1", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.customLoggingBucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.customLoggingBucket.expected.json index fb569d26c..3938fc47f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.customLoggingBucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.customLoggingBucket.expected.json @@ -46,7 +46,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -57,6 +57,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "tests3stepfunctionsS3LoggingBucketF7586A92", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -70,15 +76,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "tests3stepfunctionsS3LoggingBucketF7586A92", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" @@ -142,7 +141,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -153,6 +152,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "tests3stepfunctionsS3Bucket2B08AD28", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -166,15 +171,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "tests3stepfunctionsS3Bucket2B08AD28", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3-stepfunctions-no-argument.expected.json b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3-stepfunctions-no-argument.expected.json index 68bfd5365..75c32b5df 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3-stepfunctions-no-argument.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-stepfunctions/test/integ.s3-stepfunctions-no-argument.expected.json @@ -62,7 +62,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -73,6 +73,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "tests3stepfunctionsconstructS3Bucket78CA0724", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -86,15 +92,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "tests3stepfunctionsconstructS3Bucket78CA0724", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.existing-waf-to-multiple-cloudfront.expected.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.existing-waf-to-multiple-cloudfront.expected.json index 2fdd74498..62c952646 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.existing-waf-to-multiple-cloudfront.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.existing-waf-to-multiple-cloudfront.expected.json @@ -45,7 +45,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -56,6 +56,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "cloudfrontoneS3LoggingBucket041CDC82", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -69,15 +75,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "cloudfrontoneS3LoggingBucket041CDC82", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" @@ -136,7 +135,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -147,6 +146,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "cloudfrontoneS3BucketC79BB1EE", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -160,15 +165,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "cloudfrontoneS3BucketC79BB1EE", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] }, { "Action": "s3:GetObject", @@ -268,7 +266,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -279,6 +277,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "cloudfrontoneCloudfrontLoggingBucketC123015E", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -292,15 +296,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "cloudfrontoneCloudfrontLoggingBucketC123015E", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" @@ -436,7 +433,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -447,6 +444,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "cloudfronttwoS3LoggingBucketF462FE8C", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -460,15 +463,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "cloudfronttwoS3LoggingBucketF462FE8C", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" @@ -527,7 +523,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -538,6 +534,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "cloudfronttwoS3Bucket09AD9E6D", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -551,15 +553,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "cloudfronttwoS3Bucket09AD9E6D", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] }, { "Action": "s3:GetObject", @@ -659,7 +654,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -670,6 +665,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "cloudfronttwoCloudfrontLoggingBucketE367ED41", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -683,15 +684,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "cloudfronttwoCloudfrontLoggingBucketE367ED41", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.no-arguments.expected.json index e86e701c2..7bb76ddd0 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.no-arguments.expected.json @@ -45,7 +45,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -56,6 +56,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "cloudfronts3S3LoggingBucket52EEB708", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -69,15 +75,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "cloudfronts3S3LoggingBucket52EEB708", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" @@ -136,7 +135,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -147,6 +146,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "cloudfronts3S3BucketF86A1C7E", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -160,15 +165,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "cloudfronts3S3BucketF86A1C7E", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] }, { "Action": "s3:GetObject", @@ -268,7 +266,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -279,6 +277,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "cloudfronts3CloudfrontLoggingBucket5B845143", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -292,15 +296,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "cloudfronts3CloudfrontLoggingBucket5B845143", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.wafwebacl-cloudfront-apigateway-lambda.expected.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.wafwebacl-cloudfront-apigateway-lambda.expected.json index 45f987361..60128215b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.wafwebacl-cloudfront-apigateway-lambda.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.wafwebacl-cloudfront-apigateway-lambda.expected.json @@ -643,7 +643,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -654,6 +654,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucket7F467421", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -667,15 +673,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testcloudfrontapigatewaylambdaCloudFrontToApiGatewayCloudfrontLoggingBucket7F467421", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.wafwebacl-cloudfront-mediastore.expected.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.wafwebacl-cloudfront-mediastore.expected.json index cb677af8c..fd42fdbc1 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.wafwebacl-cloudfront-mediastore.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.wafwebacl-cloudfront-mediastore.expected.json @@ -127,7 +127,7 @@ "PolicyDocument": { "Statement": [ { - "Action": "*", + "Action": "s3:*", "Condition": { "Bool": { "aws:SecureTransport": "false" @@ -138,6 +138,12 @@ "AWS": "*" }, "Resource": [ + { + "Fn::GetAtt": [ + "testcloudfrontmediastoreCloudfrontLoggingBucketA3A51E6A", + "Arn" + ] + }, { "Fn::Join": [ "", @@ -151,15 +157,8 @@ "/*" ] ] - }, - { - "Fn::GetAtt": [ - "testcloudfrontmediastoreCloudfrontLoggingBucketA3A51E6A", - "Arn" - ] } - ], - "Sid": "HttpsOnly" + ] } ], "Version": "2012-10-17" diff --git a/source/patterns/@aws-solutions-constructs/core/lib/s3-bucket-defaults.ts b/source/patterns/@aws-solutions-constructs/core/lib/s3-bucket-defaults.ts index 8a4ef323e..a44d64a0a 100644 --- a/source/patterns/@aws-solutions-constructs/core/lib/s3-bucket-defaults.ts +++ b/source/patterns/@aws-solutions-constructs/core/lib/s3-bucket-defaults.ts @@ -21,6 +21,7 @@ export function DefaultS3Props(loggingBucket?: Bucket, lifecycleRules?: s3.Lifec versioned: true, blockPublicAccess: s3.BlockPublicAccess.BLOCK_ALL, removalPolicy: RemovalPolicy.RETAIN, + enforceSSL: true, ...((lifecycleRules !== undefined) && { lifecycleRules }), ...((loggingBucket !== undefined) && { serverAccessLogsBucket: loggingBucket }) } as BucketProps; @@ -32,6 +33,7 @@ export function DefaultLoggingBucketProps(): s3.BucketProps { versioned: true, blockPublicAccess: s3.BlockPublicAccess.BLOCK_ALL, removalPolicy: RemovalPolicy.RETAIN, + enforceSSL: true, } as BucketProps; } diff --git a/source/patterns/@aws-solutions-constructs/core/lib/s3-bucket-helper.ts b/source/patterns/@aws-solutions-constructs/core/lib/s3-bucket-helper.ts index e20a3d20a..7e1a21ebc 100644 --- a/source/patterns/@aws-solutions-constructs/core/lib/s3-bucket-helper.ts +++ b/source/patterns/@aws-solutions-constructs/core/lib/s3-bucket-helper.ts @@ -17,7 +17,6 @@ import * as s3 from '@aws-cdk/aws-s3'; import * as cdk from '@aws-cdk/core'; import { DefaultS3Props } from './s3-bucket-defaults'; import { overrideProps, addCfnSuppressRules } from './utils'; -import { PolicyStatement, Effect, AnyPrincipal } from '@aws-cdk/aws-iam'; import { StorageClass } from '@aws-cdk/aws-s3'; import { Duration } from '@aws-cdk/core'; // Note: To ensure CDKv2 compatibility, keep the import statement for Construct separate @@ -45,28 +44,6 @@ export interface BuildS3BucketProps { readonly logS3AccessLogs?: boolean; } -export function applySecureBucketPolicy(s3Bucket: s3.Bucket): void { - // Apply bucket policy to enforce encryption of data in transit - s3Bucket.addToResourcePolicy( - new PolicyStatement({ - sid: 'HttpsOnly', - resources: [ - `${s3Bucket.bucketArn}/*`, - `${s3Bucket.bucketArn}` - ], - actions: ['*'], - principals: [new AnyPrincipal()], - effect: Effect.DENY, - conditions: - { - Bool: { - 'aws:SecureTransport': 'false' - } - } - }) - ); -} - export function createLoggingBucket(scope: Construct, bucketId: string, loggingBucketProps: s3.BucketProps): s3.Bucket { @@ -74,8 +51,6 @@ export function createLoggingBucket(scope: Construct, // Create the Logging Bucket const loggingBucket: s3.Bucket = new s3.Bucket(scope, bucketId, loggingBucketProps); - applySecureBucketPolicy(loggingBucket); - // Extract the CfnBucket from the loggingBucket const loggingBucketResource = loggingBucket.node.findChild('Resource') as s3.CfnBucket; @@ -108,8 +83,6 @@ export function createAlbLoggingBucket(scope: Construct, // Create the Logging Bucket const loggingBucket: s3.Bucket = new s3.Bucket(scope, bucketId, loggingBucketProps); - applySecureBucketPolicy(loggingBucket); - // Extract the CfnBucket from the loggingBucket const loggingBucketResource = loggingBucket.node.findChild('Resource') as s3.CfnBucket; @@ -166,9 +139,7 @@ export function buildS3Bucket(scope: Construct, customBucketProps = props.bucketProps ? overrideProps(customBucketProps, props.bucketProps) : customBucketProps; - const s3Bucket: s3.Bucket = new s3.Bucket(scope, _bucketId, customBucketProps); - - applySecureBucketPolicy(s3Bucket); + const s3Bucket: s3.Bucket = new s3.Bucket(scope, _bucketId, customBucketProps ); return [s3Bucket, loggingBucket]; } diff --git a/source/patterns/@aws-solutions-constructs/core/test/cloudfront-distribution-s3-helper.test.ts b/source/patterns/@aws-solutions-constructs/core/test/cloudfront-distribution-s3-helper.test.ts index ce907b2d8..d26d7e10b 100644 --- a/source/patterns/@aws-solutions-constructs/core/test/cloudfront-distribution-s3-helper.test.ts +++ b/source/patterns/@aws-solutions-constructs/core/test/cloudfront-distribution-s3-helper.test.ts @@ -68,7 +68,7 @@ test('test cloudfront check bucket policy', () => { PolicyDocument: { Statement: [ { - Action: "*", + Action: "s3:*", Condition: { Bool: { "aws:SecureTransport": "false" @@ -79,24 +79,53 @@ test('test cloudfront check bucket policy', () => { AWS: "*" }, Resource: [ + { + "Fn::GetAtt": [ + "S3Bucket07682993", + "Arn" + ] + }, { "Fn::Join": [ "", [ { - "Fn::GetAtt": ["S3Bucket07682993", "Arn"], + "Fn::GetAtt": [ + "S3Bucket07682993", + "Arn" + ] }, - "/*", - ], - ], - }, - { - "Fn::GetAtt": [ - "S3Bucket07682993", - "Arn" + "/*" + ] ] } ] + }, + { + Action: "s3:GetObject", + Effect: "Allow", + Principal: { + CanonicalUser: { + "Fn::GetAtt": [ + "CloudFrontDistributionOrigin1S3Origin3D9CA0E9", + "S3CanonicalUserId" + ] + } + }, + Resource: { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "S3Bucket07682993", + "Arn" + ] + }, + "/*" + ] + ] + } } ], Version: "2012-10-17" @@ -234,7 +263,7 @@ test('test cloudfront override properties', () => { const [sourceBucket] = buildS3Bucket(stack, {}); const props: cloudfront.DistributionProps = { defaultBehavior: { - origin: new origins.S3Origin(sourceBucket, {originPath: '/testPath'}), + origin: new origins.S3Origin(sourceBucket, { originPath: '/testPath' }), viewerProtocolPolicy: cloudfront.ViewerProtocolPolicy.REDIRECT_TO_HTTPS, allowedMethods: cloudfront.AllowedMethods.ALLOW_ALL, cachedMethods: cloudfront.CachedMethods.CACHE_GET_HEAD_OPTIONS diff --git a/source/patterns/@aws-solutions-constructs/core/test/s3-bucket-helper.test.ts b/source/patterns/@aws-solutions-constructs/core/test/s3-bucket-helper.test.ts index 45c0baa5c..fe1e22153 100644 --- a/source/patterns/@aws-solutions-constructs/core/test/s3-bucket-helper.test.ts +++ b/source/patterns/@aws-solutions-constructs/core/test/s3-bucket-helper.test.ts @@ -155,8 +155,7 @@ test('Check S3 Bucket policy', () => { PolicyDocument: { Statement: [ { - Sid: "HttpsOnly", - Action: "*", + Action: "s3:*", Condition: { Bool: { "aws:SecureTransport": "false", @@ -167,21 +166,24 @@ test('Check S3 Bucket policy', () => { AWS: "*" }, Resource: [ + { + "Fn::GetAtt": [ + "S3Bucket07682993", + "Arn" + ] + }, { "Fn::Join": [ "", [ { - "Fn::GetAtt": ["S3Bucket07682993", "Arn"], + "Fn::GetAtt": [ + "S3Bucket07682993", + "Arn" + ] }, - "/*", - ], - ], - }, - { - "Fn::GetAtt": [ - "S3Bucket07682993", - "Arn" + "/*" + ] ] } ] diff --git a/source/patterns/@aws-solutions-constructs/core/test/s3-bucket.test.ts b/source/patterns/@aws-solutions-constructs/core/test/s3-bucket.test.ts index 996dc03f3..f3c4fe97d 100644 --- a/source/patterns/@aws-solutions-constructs/core/test/s3-bucket.test.ts +++ b/source/patterns/@aws-solutions-constructs/core/test/s3-bucket.test.ts @@ -154,3 +154,208 @@ test('test createAlbLoggingBucket()', () => { BucketName: 'test-name' }); }); + +test('Test bucket policy that only accepts SSL requests only', () => { + const stack = new Stack(); + + defaults.buildS3Bucket(stack, { + bucketProps: { + enforceSSL: true + } + }, 'test-bucket'); + + expect(stack).toHaveResource("AWS::S3::BucketPolicy", { + PolicyDocument: { + Statement: [ + { + Action: "s3:*", + Condition: { + Bool: { + "aws:SecureTransport": "false" + } + }, + Effect: "Deny", + Principal: { + AWS: "*" + }, + Resource: [ + { + "Fn::GetAtt": [ + "testbucketS3Bucket87F6BFFC", + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "testbucketS3Bucket87F6BFFC", + "Arn" + ] + }, + "/*" + ] + ] + } + ] + } + ], + Version: "2012-10-17" + } + }); +}); + +test('Test bucket policy that accepts any requests', () => { + const stack = new Stack(); + + defaults.buildS3Bucket(stack, { + bucketProps: { + enforceSSL: false + } + }, 'test-bucket'); + + expect(stack).not.toHaveResource("AWS::S3::BucketPolicy", { + PolicyDocument: { + Statement: [ + { + Action: "s3:*", + Condition: { + Bool: { + "aws:SecureTransport": "false" + } + }, + Effect: "Deny", + Principal: { + AWS: "*" + }, + Resource: [ + { + "Fn::GetAtt": [ + "testbucketS3Bucket87F6BFFC", + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "testbucketS3Bucket87F6BFFC", + "Arn" + ] + }, + "/*" + ] + ] + } + ] + } + ], + Version: "2012-10-17" + } + }); +}); + +test('Test enforcing SSL when bucketProps is not provided', () => { + const stack = new Stack(); + + defaults.buildS3Bucket(stack, {}, 'test-bucket'); + + expect(stack).toHaveResource("AWS::S3::BucketPolicy", { + PolicyDocument: { + Statement: [ + { + Action: "s3:*", + Condition: { + Bool: { + "aws:SecureTransport": "false" + } + }, + Effect: "Deny", + Principal: { + AWS: "*" + }, + Resource: [ + { + "Fn::GetAtt": [ + "testbucketS3Bucket87F6BFFC", + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "testbucketS3Bucket87F6BFFC", + "Arn" + ] + }, + "/*" + ] + ] + } + ] + } + ], + Version: "2012-10-17" + } + }); +}); + +test('Test enforcing SSL when bucketProps is provided and enforceSSL is not set', () => { + const stack = new Stack(); + + defaults.buildS3Bucket(stack, { + bucketProps: { + versioned: false, + publicReadAccess: false + } + }, 'test-bucket'); + + expect(stack).toHaveResource("AWS::S3::BucketPolicy", { + PolicyDocument: { + Statement: [ + { + Action: "s3:*", + Condition: { + Bool: { + "aws:SecureTransport": "false" + } + }, + Effect: "Deny", + Principal: { + AWS: "*" + }, + Resource: [ + { + "Fn::GetAtt": [ + "testbucketS3Bucket87F6BFFC", + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "testbucketS3Bucket87F6BFFC", + "Arn" + ] + }, + "/*" + ] + ] + } + ] + } + ], + Version: "2012-10-17" + } + }); +}); \ No newline at end of file From 8ea428f366d5710230df39c3fe3afdd824ce04f4 Mon Sep 17 00:00:00 2001 From: Hitendra Nishar Date: Mon, 3 Jan 2022 10:42:07 -0500 Subject: [PATCH 66/67] fix(remove pinned jsii dependency) (#540) Co-authored-by: biffgaut <78155736+biffgaut@users.noreply.github.com> --- source/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/package.json b/source/package.json index 2507a08e4..505f6ca05 100644 --- a/source/package.json +++ b/source/package.json @@ -23,8 +23,8 @@ "eslint-plugin-license-header": "^0.2.0", "fs-extra": "^8.1.0", "jest": "^26.6.0", - "jsii": "1.47.0", - "jsii-pacmak": "1.47.0", + "jsii": "^1.49.0", + "jsii-pacmak": "^1.49.0", "tslint": "^5.20.1", "typescript": "~3.9.7", "aws-cdk-migration": "^1.135.0" From b8a3d124a57706034cffc875b83991140cf90e13 Mon Sep 17 00:00:00 2001 From: biffgaut <78155736+biffgaut@users.noreply.github.com> Date: Tue, 4 Jan 2022 16:39:47 -0500 Subject: [PATCH 67/67] Update DESIGN_GUIDELINES.md --- DESIGN_GUIDELINES.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/DESIGN_GUIDELINES.md b/DESIGN_GUIDELINES.md index dd96132d9..98307a6a5 100644 --- a/DESIGN_GUIDELINES.md +++ b/DESIGN_GUIDELINES.md @@ -265,7 +265,8 @@ Existing Inconsistencies would not be published, that’s for our internal use | Name | Type | Notes | | --- | --- | --- | -| existingBucketObj? | s3.Bucket | Either this or bucketProps must be provided | +| existingBucketObj? | s3.Bucket | Either this, existingBucketInterface or bucketProps must be provided | +| existingBucketInterface? | s3.IBucket | Either this, existingBucketObject or bucketProps must be provided | | bucketProps? | s3.BucketProps | | | s3EventTypes? | s3.EventType | Only required when construct responds to S3 events | | s3EventFilters? | s3.NotificationKeyFilter |Only required when construct responds to S3 events |