@aws-solutions-constructs/aws-lambda-elasticachememcached 2.94.0 → 2.95.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/.jsii +31 -5
  2. package/lib/index.js +1 -1
  3. package/package.json +6 -6
  4. package/test/integ.lammem-existingResources.js.snapshot/asset.69e370dcce5ccdf0f2e726ecb0826d434cccdb06e0814e8b0d907129183e5d36/index.js +21 -0
  5. package/test/integ.lammem-existingResources.js.snapshot/asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200/__entrypoint__.js +1 -0
  6. package/test/integ.lammem-existingResources.js.snapshot/asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200/index.js +1 -0
  7. package/test/integ.lammem-existingResources.js.snapshot/cdk.out +1 -1
  8. package/test/integ.lammem-existingResources.js.snapshot/integ.json +2 -2
  9. package/test/integ.lammem-existingResources.js.snapshot/lammem-existingResources.assets.json +4 -4
  10. package/test/integ.lammem-existingResources.js.snapshot/lammem-existingResources.template.json +0 -10
  11. package/test/integ.lammem-existingResources.js.snapshot/lammemexistingResourcesIntegDefaultTestDeployAssertD269DF67.assets.json +1 -1
  12. package/test/integ.lammem-existingResources.js.snapshot/manifest.json +65 -57
  13. package/test/integ.lammem-existingResources.js.snapshot/tree.json +1 -1
  14. package/test/integ.lammem-newResources.js.snapshot/asset.69e370dcce5ccdf0f2e726ecb0826d434cccdb06e0814e8b0d907129183e5d36/index.js +21 -0
  15. package/test/integ.lammem-newResources.js.snapshot/asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200/__entrypoint__.js +1 -0
  16. package/test/integ.lammem-newResources.js.snapshot/asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200/index.js +1 -0
  17. package/test/integ.lammem-newResources.js.snapshot/cdk.out +1 -1
  18. package/test/integ.lammem-newResources.js.snapshot/integ.json +2 -2
  19. package/test/integ.lammem-newResources.js.snapshot/lammem-newResources.assets.json +4 -4
  20. package/test/integ.lammem-newResources.js.snapshot/lammem-newResources.template.json +0 -10
  21. package/test/integ.lammem-newResources.js.snapshot/lammemnewResourcesIntegDefaultTestDeployAssert30C906BF.assets.json +1 -1
  22. package/test/integ.lammem-newResources.js.snapshot/manifest.json +65 -57
  23. package/test/integ.lammem-newResources.js.snapshot/tree.json +1 -1
  24. package/test/integ.lammem-withClientProps.js.snapshot/asset.69e370dcce5ccdf0f2e726ecb0826d434cccdb06e0814e8b0d907129183e5d36/index.js +21 -0
  25. package/test/integ.lammem-withClientProps.js.snapshot/asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200/__entrypoint__.js +1 -0
  26. package/test/integ.lammem-withClientProps.js.snapshot/asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200/index.js +1 -0
  27. package/test/integ.lammem-withClientProps.js.snapshot/cdk.out +1 -1
  28. package/test/integ.lammem-withClientProps.js.snapshot/integ.json +2 -2
  29. package/test/integ.lammem-withClientProps.js.snapshot/lammem-withClientProps.assets.json +4 -4
  30. package/test/integ.lammem-withClientProps.js.snapshot/lammem-withClientProps.template.json +0 -10
  31. package/test/integ.lammem-withClientProps.js.snapshot/lammemwithClientPropsIntegDefaultTestDeployAssertDB086BD1.assets.json +1 -1
  32. package/test/integ.lammem-withClientProps.js.snapshot/manifest.json +65 -57
  33. package/test/integ.lammem-withClientProps.js.snapshot/tree.json +1 -1
package/.jsii CHANGED
@@ -8,8 +8,8 @@
8
8
  "url": "https://aws.amazon.com"
9
9
  },
10
10
  "dependencies": {
11
- "@aws-solutions-constructs/core": "2.94.0",
12
- "aws-cdk-lib": "^2.219.0",
11
+ "@aws-solutions-constructs/core": "2.95.0",
12
+ "aws-cdk-lib": "^2.223.0",
13
13
  "constructs": "^10.0.0"
14
14
  },
15
15
  "dependencyClosure": {
@@ -3242,6 +3242,19 @@
3242
3242
  }
3243
3243
  }
3244
3244
  },
3245
+ "aws-cdk-lib.aws_rtbfabric": {
3246
+ "targets": {
3247
+ "dotnet": {
3248
+ "package": "Amazon.CDK.AWS.RTBFabric"
3249
+ },
3250
+ "java": {
3251
+ "package": "software.amazon.awscdk.services.rtbfabric"
3252
+ },
3253
+ "python": {
3254
+ "module": "aws_cdk.aws_rtbfabric"
3255
+ }
3256
+ }
3257
+ },
3245
3258
  "aws-cdk-lib.aws_rum": {
3246
3259
  "targets": {
3247
3260
  "dotnet": {
@@ -3359,6 +3372,19 @@
3359
3372
  }
3360
3373
  }
3361
3374
  },
3375
+ "aws-cdk-lib.aws_s3vectors": {
3376
+ "targets": {
3377
+ "dotnet": {
3378
+ "package": "Amazon.CDK.AWS.S3Vectors"
3379
+ },
3380
+ "java": {
3381
+ "package": "software.amazon.awscdk.services.s3vectors"
3382
+ },
3383
+ "python": {
3384
+ "module": "aws_cdk.aws_s3vectors"
3385
+ }
3386
+ }
3387
+ },
3362
3388
  "aws-cdk-lib.aws_sagemaker": {
3363
3389
  "targets": {
3364
3390
  "dotnet": {
@@ -4104,7 +4130,7 @@
4104
4130
  },
4105
4131
  "description": "CDK constructs for defining an interaction between an AWS Lambda function and an Amazon Elasticache memcached cache.",
4106
4132
  "homepage": "https://github.com/awslabs/aws-solutions-constructs.git",
4107
- "jsiiVersion": "5.7.22 (build 1cfeabd)",
4133
+ "jsiiVersion": "5.9.8 (build 3d2e131)",
4108
4134
  "keywords": [
4109
4135
  "aws",
4110
4136
  "cdk",
@@ -4387,6 +4413,6 @@
4387
4413
  "symbolId": "lib/index:LambdaToElasticachememcachedProps"
4388
4414
  }
4389
4415
  },
4390
- "version": "2.94.0",
4391
- "fingerprint": "YjuiKphFXctXVyakq8KN6XfJs9fkIAZCnPBSXWsfJ4I="
4416
+ "version": "2.95.0",
4417
+ "fingerprint": "VxWhqICydvG+yrmwiHw+dkcAkDK32ggL/7xw/9pzdq8="
4392
4418
  }
package/lib/index.js CHANGED
@@ -60,7 +60,7 @@ class LambdaToElasticachememcached extends constructs_1.Construct {
60
60
  }
61
61
  exports.LambdaToElasticachememcached = LambdaToElasticachememcached;
62
62
  _a = JSII_RTTI_SYMBOL_1;
63
- LambdaToElasticachememcached[_a] = { fqn: "@aws-solutions-constructs/aws-lambda-elasticachememcached.LambdaToElasticachememcached", version: "2.94.0" };
63
+ LambdaToElasticachememcached[_a] = { fqn: "@aws-solutions-constructs/aws-lambda-elasticachememcached.LambdaToElasticachememcached", version: "2.95.0" };
64
64
  function AddLambdaEnvironmentVariable(targetFunction, value, defaultName, clientName) {
65
65
  const variableName = clientName || defaultName;
66
66
  targetFunction.addEnvironment(variableName, value);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-solutions-constructs/aws-lambda-elasticachememcached",
3
- "version": "2.94.0",
3
+ "version": "2.95.0",
4
4
  "description": "CDK constructs for defining an interaction between an AWS Lambda function and an Amazon Elasticache memcached cache.",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -55,14 +55,14 @@
55
55
  }
56
56
  },
57
57
  "dependencies": {
58
- "@aws-solutions-constructs/core": "2.94.0",
58
+ "@aws-solutions-constructs/core": "2.95.0",
59
59
  "constructs": "^10.0.0"
60
60
  },
61
61
  "devDependencies": {
62
- "@aws-cdk/integ-tests-alpha": "2.219.0-alpha.0",
62
+ "@aws-cdk/integ-tests-alpha": "2.223.0-alpha.0",
63
63
  "@types/node": "^10.3.0",
64
64
  "constructs": "^10.0.0",
65
- "aws-cdk-lib": "2.219.0"
65
+ "aws-cdk-lib": "2.223.0"
66
66
  },
67
67
  "jest": {
68
68
  "moduleFileExtensions": [
@@ -79,9 +79,9 @@
79
79
  ]
80
80
  },
81
81
  "peerDependencies": {
82
- "@aws-solutions-constructs/core": "2.94.0",
82
+ "@aws-solutions-constructs/core": "2.95.0",
83
83
  "constructs": "^10.0.0",
84
- "aws-cdk-lib": "^2.219.0"
84
+ "aws-cdk-lib": "^2.223.0"
85
85
  },
86
86
  "keywords": [
87
87
  "aws",
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
5
+ * with the License. A copy of the License is located at
6
+ *
7
+ * http://www.apache.org/licenses/LICENSE-2.0
8
+ *
9
+ * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES
10
+ * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
11
+ * and limitations under the License.
12
+ */
13
+
14
+ exports.handler = async function (event) {
15
+ console.log(`request:${JSON.stringify(event, undefined, 2)}`);
16
+ return {
17
+ statusCode: 200,
18
+ headers: { "Content-Type": "text/plain" },
19
+ body: `Hello, AWS Solutions Constructs! You've hit ${event.path}`,
20
+ };
21
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.external=void 0,exports.handler=handler,exports.withRetries=withRetries;const https=require("https"),url=require("url");exports.external={sendHttpRequest:defaultSendHttpRequest,log:defaultLog,includeStackTraces:!0,userHandlerIndex:"./index"};const CREATE_FAILED_PHYSICAL_ID_MARKER="AWSCDK::CustomResourceProviderFramework::CREATE_FAILED",MISSING_PHYSICAL_ID_MARKER="AWSCDK::CustomResourceProviderFramework::MISSING_PHYSICAL_ID";async function handler(event,context){const sanitizedEvent={...event,ResponseURL:"..."};if(exports.external.log(JSON.stringify(sanitizedEvent,void 0,2)),event.RequestType==="Delete"&&event.PhysicalResourceId===CREATE_FAILED_PHYSICAL_ID_MARKER){exports.external.log("ignoring DELETE event caused by a failed CREATE event"),await submitResponse("SUCCESS",event);return}try{const userHandler=require(exports.external.userHandlerIndex).handler,result=await userHandler(sanitizedEvent,context),responseEvent=renderResponse(event,result);await submitResponse("SUCCESS",responseEvent)}catch(e){const resp={...event,Reason:exports.external.includeStackTraces?e.stack:e.message};resp.PhysicalResourceId||(event.RequestType==="Create"?(exports.external.log("CREATE failed, responding with a marker physical resource id so that the subsequent DELETE will be ignored"),resp.PhysicalResourceId=CREATE_FAILED_PHYSICAL_ID_MARKER):exports.external.log(`ERROR: Malformed event. "PhysicalResourceId" is required: ${JSON.stringify(event)}`)),await submitResponse("FAILED",resp)}}function renderResponse(cfnRequest,handlerResponse={}){const physicalResourceId=handlerResponse.PhysicalResourceId??cfnRequest.PhysicalResourceId??cfnRequest.RequestId;if(cfnRequest.RequestType==="Delete"&&physicalResourceId!==cfnRequest.PhysicalResourceId)throw new Error(`DELETE: cannot change the physical resource ID from "${cfnRequest.PhysicalResourceId}" to "${handlerResponse.PhysicalResourceId}" during deletion`);return{...cfnRequest,...handlerResponse,PhysicalResourceId:physicalResourceId}}async function submitResponse(status,event){const json={Status:status,Reason:event.Reason??status,StackId:event.StackId,RequestId:event.RequestId,PhysicalResourceId:event.PhysicalResourceId||MISSING_PHYSICAL_ID_MARKER,LogicalResourceId:event.LogicalResourceId,NoEcho:event.NoEcho,Data:event.Data},parsedUrl=url.parse(event.ResponseURL),loggingSafeUrl=`${parsedUrl.protocol}//${parsedUrl.hostname}/${parsedUrl.pathname}?***`;exports.external.log("submit response to cloudformation",loggingSafeUrl,json);const responseBody=JSON.stringify(json),req={hostname:parsedUrl.hostname,path:parsedUrl.path,method:"PUT",headers:{"content-type":"","content-length":Buffer.byteLength(responseBody,"utf8")}};await withRetries({attempts:5,sleep:1e3},exports.external.sendHttpRequest)(req,responseBody)}async function defaultSendHttpRequest(options,requestBody){return new Promise((resolve,reject)=>{try{const request=https.request(options,response=>{response.resume(),!response.statusCode||response.statusCode>=400?reject(new Error(`Unsuccessful HTTP response: ${response.statusCode}`)):resolve()});request.on("error",reject),request.write(requestBody),request.end()}catch(e){reject(e)}})}function defaultLog(fmt,...params){console.log(fmt,...params)}function withRetries(options,fn){return async(...xs)=>{let attempts=options.attempts,ms=options.sleep;for(;;)try{return await fn(...xs)}catch(e){if(attempts--<=0)throw e;await sleep(Math.floor(Math.random()*ms)),ms*=2}}}async function sleep(ms){return new Promise(ok=>setTimeout(ok,ms))}
@@ -0,0 +1 @@
1
+ "use strict";var I=Object.create,t=Object.defineProperty,y=Object.getOwnPropertyDescriptor,P=Object.getOwnPropertyNames,g=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty,G=(r,e)=>{for(var o in e)t(r,o,{get:e[o],enumerable:!0})},n=(r,e,o,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of P(e))!l.call(r,s)&&s!==o&&t(r,s,{get:()=>e[s],enumerable:!(i=y(e,s))||i.enumerable});return r},R=(r,e,o)=>(o=r!=null?I(g(r)):{},n(e||!r||!r.__esModule?t(o,"default",{value:r,enumerable:!0}):o,r)),S=r=>n(t({},"__esModule",{value:!0}),r),k={};G(k,{handler:()=>f}),module.exports=S(k);var a=R(require("@aws-sdk/client-ec2")),u=new a.EC2({});function c(r,e){return{GroupId:r,IpPermissions:[{UserIdGroupPairs:[{GroupId:r,UserId:e}],IpProtocol:"-1"}]}}function d(r){return{GroupId:r,IpPermissions:[{IpRanges:[{CidrIp:"0.0.0.0/0"}],IpProtocol:"-1"}]}}async function f(r){let e=r.ResourceProperties.DefaultSecurityGroupId,o=r.ResourceProperties.Account;switch(r.RequestType){case"Create":return p(e,o);case"Update":return h(r);case"Delete":return m(e,o)}}async function h(r){let e=r.OldResourceProperties.DefaultSecurityGroupId,o=r.ResourceProperties.DefaultSecurityGroupId;e!==o&&(await m(e,r.ResourceProperties.Account),await p(o,r.ResourceProperties.Account))}async function p(r,e){try{await u.revokeSecurityGroupEgress(d(r))}catch(o){if(o.name!=="InvalidPermission.NotFound")throw o}try{await u.revokeSecurityGroupIngress(c(r,e))}catch(o){if(o.name!=="InvalidPermission.NotFound")throw o}}async function m(r,e){await u.authorizeSecurityGroupIngress(c(r,e)),await u.authorizeSecurityGroupEgress(d(r))}
@@ -1 +1 @@
1
- {"version":"45.0.0"}
1
+ {"version":"48.0.0"}
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "45.0.0",
2
+ "version": "48.0.0",
3
3
  "testCases": {
4
4
  "lammem-existingResources/Integ/DefaultTest": {
5
5
  "stacks": [
@@ -9,5 +9,5 @@
9
9
  "assertionStackName": "lammemexistingResourcesIntegDefaultTestDeployAssertD269DF67"
10
10
  }
11
11
  },
12
- "minimumCliVersion": "2.1020.2"
12
+ "minimumCliVersion": "2.1029.2"
13
13
  }
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "45.0.0",
2
+ "version": "48.0.0",
3
3
  "files": {
4
4
  "7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200": {
5
5
  "displayName": "lammem-existingResources/Custom::VpcRestrictDefaultSGCustomResourceProvider Code",
@@ -29,16 +29,16 @@
29
29
  }
30
30
  }
31
31
  },
32
- "ba5fa7caf186c00976eb60fdf0c3fb50f7bfc7d6d7607e4e70eeb1f773e28499": {
32
+ "3c2ada6f9ddf26106985837ba0abb0a73b0cbb573b823d965da9d91cfca2cd3b": {
33
33
  "displayName": "lammem-existingResources Template",
34
34
  "source": {
35
35
  "path": "lammem-existingResources.template.json",
36
36
  "packaging": "file"
37
37
  },
38
38
  "destinations": {
39
- "current_account-current_region-9ad7d892": {
39
+ "current_account-current_region-9391d9ef": {
40
40
  "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
41
- "objectKey": "ba5fa7caf186c00976eb60fdf0c3fb50f7bfc7d6d7607e4e70eeb1f773e28499.json",
41
+ "objectKey": "3c2ada6f9ddf26106985837ba0abb0a73b0cbb573b823d965da9d91cfca2cd3b.json",
42
42
  "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
43
43
  }
44
44
  }
@@ -193,16 +193,6 @@
193
193
  "Arn"
194
194
  ]
195
195
  }
196
- },
197
- {
198
- "Action": "iam:PassRole",
199
- "Effect": "Allow",
200
- "Resource": {
201
- "Fn::GetAtt": [
202
- "VpcFlowLogIAMRole6A475D41",
203
- "Arn"
204
- ]
205
- }
206
196
  }
207
197
  ],
208
198
  "Version": "2012-10-17"
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "45.0.0",
2
+ "version": "48.0.0",
3
3
  "files": {
4
4
  "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": {
5
5
  "displayName": "lammemexistingResourcesIntegDefaultTestDeployAssertD269DF67 Template",
@@ -66,7 +66,7 @@
66
66
  "validateOnSynth": false,
67
67
  "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}",
68
68
  "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}",
69
- "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/ba5fa7caf186c00976eb60fdf0c3fb50f7bfc7d6d7607e4e70eeb1f773e28499.json",
69
+ "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/3c2ada6f9ddf26106985837ba0abb0a73b0cbb573b823d965da9d91cfca2cd3b.json",
70
70
  "requiresBootstrapStackVersion": 6,
71
71
  "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version",
72
72
  "additionalDependencies": [
@@ -244,14 +244,6 @@
244
244
  "*"
245
245
  ]
246
246
  }
247
- },
248
- {
249
- "type": "aws:cdk:analytics:method",
250
- "data": {
251
- "addToPrincipalPolicy": [
252
- {}
253
- ]
254
- }
255
247
  }
256
248
  ],
257
249
  "/lammem-existingResources/Vpc/FlowLog/IAMRole/ImportIAMRole": [
@@ -287,14 +279,6 @@
287
279
  ]
288
280
  }
289
281
  },
290
- {
291
- "type": "aws:cdk:analytics:method",
292
- "data": {
293
- "addStatements": [
294
- {}
295
- ]
296
- }
297
- },
298
282
  {
299
283
  "type": "aws:cdk:analytics:method",
300
284
  "data": {
@@ -494,57 +478,48 @@
494
478
  "properties": {
495
479
  "module": "aws-cdk-lib",
496
480
  "flags": {
497
- "@aws-cdk/core:enableStackNameDuplicates": {
498
- "recommendedValue": true,
499
- "explanation": "Allow multiple stacks with the same name"
500
- },
501
- "aws-cdk:enableDiffNoFail": {
481
+ "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": {
502
482
  "recommendedValue": true,
503
- "explanation": "Make `cdk diff` not fail when there are differences"
483
+ "explanation": "Pass signingProfileName to CfnSigningProfile"
504
484
  },
505
485
  "@aws-cdk/core:newStyleStackSynthesis": {
506
486
  "recommendedValue": true,
507
- "explanation": "Switch to new stack synthesis method which enables CI/CD"
487
+ "explanation": "Switch to new stack synthesis method which enables CI/CD",
488
+ "unconfiguredBehavesLike": {
489
+ "v2": true
490
+ }
508
491
  },
509
492
  "@aws-cdk/core:stackRelativeExports": {
510
493
  "recommendedValue": true,
511
- "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path"
512
- },
513
- "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": {
514
- "recommendedValue": true,
515
- "explanation": "DockerImageAsset properly supports `.dockerignore` files by default"
516
- },
517
- "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": {
518
- "recommendedValue": true,
519
- "explanation": "Fix the referencing of SecretsManager names from ARNs"
520
- },
521
- "@aws-cdk/aws-kms:defaultKeyPolicies": {
522
- "recommendedValue": true,
523
- "explanation": "Tighten default KMS key policies"
524
- },
525
- "@aws-cdk/aws-s3:grantWriteWithoutAcl": {
526
- "recommendedValue": true,
527
- "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite"
494
+ "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path",
495
+ "unconfiguredBehavesLike": {
496
+ "v2": true
497
+ }
528
498
  },
529
- "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": {
499
+ "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": {
530
500
  "recommendedValue": true,
531
- "explanation": "Do not specify a default DesiredCount for ECS services"
501
+ "explanation": "Disable implicit openListener when custom security groups are provided"
532
502
  },
533
503
  "@aws-cdk/aws-rds:lowercaseDbIdentifier": {
534
504
  "recommendedValue": true,
535
- "explanation": "Force lowercasing of RDS Cluster names in CDK"
505
+ "explanation": "Force lowercasing of RDS Cluster names in CDK",
506
+ "unconfiguredBehavesLike": {
507
+ "v2": true
508
+ }
536
509
  },
537
510
  "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": {
538
511
  "recommendedValue": true,
539
- "explanation": "Allow adding/removing multiple UsagePlanKeys independently"
540
- },
541
- "@aws-cdk/aws-efs:defaultEncryptionAtRest": {
542
- "recommendedValue": true,
543
- "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default."
512
+ "explanation": "Allow adding/removing multiple UsagePlanKeys independently",
513
+ "unconfiguredBehavesLike": {
514
+ "v2": true
515
+ }
544
516
  },
545
517
  "@aws-cdk/aws-lambda:recognizeVersionProps": {
546
518
  "recommendedValue": true,
547
- "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`."
519
+ "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.",
520
+ "unconfiguredBehavesLike": {
521
+ "v2": true
522
+ }
548
523
  },
549
524
  "@aws-cdk/aws-lambda:recognizeLayerVersion": {
550
525
  "userValue": true,
@@ -553,7 +528,10 @@
553
528
  },
554
529
  "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": {
555
530
  "recommendedValue": true,
556
- "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default."
531
+ "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.",
532
+ "unconfiguredBehavesLike": {
533
+ "v2": true
534
+ }
557
535
  },
558
536
  "@aws-cdk/core:checkSecretUsage": {
559
537
  "userValue": true,
@@ -630,7 +608,7 @@
630
608
  "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": {
631
609
  "userValue": true,
632
610
  "recommendedValue": true,
633
- "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in."
611
+ "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in."
634
612
  },
635
613
  "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": {
636
614
  "userValue": true,
@@ -774,7 +752,10 @@
774
752
  },
775
753
  "@aws-cdk/pipelines:reduceAssetRoleTrustScope": {
776
754
  "recommendedValue": true,
777
- "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy"
755
+ "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy",
756
+ "unconfiguredBehavesLike": {
757
+ "v2": true
758
+ }
778
759
  },
779
760
  "@aws-cdk/aws-eks:nodegroupNameAttribute": {
780
761
  "userValue": true,
@@ -803,7 +784,10 @@
803
784
  },
804
785
  "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": {
805
786
  "recommendedValue": true,
806
- "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model."
787
+ "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.",
788
+ "unconfiguredBehavesLike": {
789
+ "v2": true
790
+ }
807
791
  },
808
792
  "@aws-cdk/core:explicitStackTags": {
809
793
  "userValue": true,
@@ -867,7 +851,10 @@
867
851
  },
868
852
  "@aws-cdk/core:aspectStabilization": {
869
853
  "recommendedValue": true,
870
- "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis."
854
+ "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.",
855
+ "unconfiguredBehavesLike": {
856
+ "v2": true
857
+ }
871
858
  },
872
859
  "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": {
873
860
  "userValue": true,
@@ -901,7 +888,10 @@
901
888
  },
902
889
  "@aws-cdk/pipelines:reduceStageRoleTrustScope": {
903
890
  "recommendedValue": true,
904
- "explanation": "Remove the root account principal from Stage addActions trust policy"
891
+ "explanation": "Remove the root account principal from Stage addActions trust policy",
892
+ "unconfiguredBehavesLike": {
893
+ "v2": true
894
+ }
905
895
  },
906
896
  "@aws-cdk/aws-events:requireEventBusPolicySid": {
907
897
  "userValue": true,
@@ -924,7 +914,10 @@
924
914
  },
925
915
  "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": {
926
916
  "recommendedValue": true,
927
- "explanation": "When enabled, scopes down the trust policy for the cross-account action role"
917
+ "explanation": "When enabled, scopes down the trust policy for the cross-account action role",
918
+ "unconfiguredBehavesLike": {
919
+ "v2": true
920
+ }
928
921
  },
929
922
  "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": {
930
923
  "userValue": true,
@@ -954,6 +947,21 @@
954
947
  "userValue": true,
955
948
  "recommendedValue": true,
956
949
  "explanation": "When enabled, CDK creates and manages loggroup for the lambda function"
950
+ },
951
+ "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": {
952
+ "recommendedValue": true,
953
+ "explanation": "When enabled, Network Load Balancer will be created with a security group by default."
954
+ },
955
+ "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": {
956
+ "recommendedValue": true,
957
+ "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.",
958
+ "unconfiguredBehavesLike": {
959
+ "v2": true
960
+ }
961
+ },
962
+ "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": {
963
+ "recommendedValue": true,
964
+ "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement"
957
965
  }
958
966
  }
959
967
  }
@@ -1 +1 @@
1
- {"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.206.0"},"children":{"lammem-existingResources":{"id":"lammem-existingResources","path":"lammem-existingResources","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"Vpc":{"id":"Vpc","path":"lammem-existingResources/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.206.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"enableDnsHostnames":true,"enableDnsSupport":true,"ipAddresses":"*"}]},"children":{"Resource":{"id":"Resource","path":"lammem-existingResources/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"172.168.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lammem-existingResources/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lammem-existingResources/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.206.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lammem-existingResources/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lammem-existingResources/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lammem-existingResources/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lammem-existingResources/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lammem-existingResources/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lammem-existingResources/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lammem-existingResources/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.206.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lammem-existingResources/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lammem-existingResources/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lammem-existingResources/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lammem-existingResources/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lammem-existingResources/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lammem-existingResources/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lammem-existingResources/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.206.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lammem-existingResources/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}},"FlowLog":{"id":"FlowLog","path":"lammem-existingResources/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.206.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lammem-existingResources/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]},{"addToPrincipalPolicy":[{}]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lammem-existingResources/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lammem-existingResources/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lammem-existingResources/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lammem-existingResources/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.206.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lammem-existingResources/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}},{"Action":"iam:PassRole","Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lammem-existingResources/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.206.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lammem-existingResources/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lammem-existingResources/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lammem-existingResources/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lammem-existingResources/Vpc/FlowLog"}],"trafficType":"ALL"}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lammem-existingResources/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.206.0"},"children":{"Staging":{"id":"Staging","path":"lammem-existingResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"Role":{"id":"Role","path":"lammem-existingResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}},"Handler":{"id":"Handler","path":"lammem-existingResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.206.0"}}}},"test-sg-security-group":{"id":"test-sg-security-group","path":"lammem-existingResources/test-sg-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.206.0","metadata":[{"vpc":"*"}]},"children":{"Resource":{"id":"Resource","path":"lammem-existingResources/test-sg-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lammem-existingResources/test-sg-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"test-function":{"id":"test-function","path":"lammem-existingResources/test-function","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.206.0","metadata":[{"runtime":"*","handler":"*","code":"*","vpc":"*","securityGroups":["*"]},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"lammem-existingResources/test-function/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.206.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"lammem-existingResources/test-function/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.206.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lammem-existingResources/test-function/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"lammem-existingResources/test-function/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.206.0"},"children":{"Stage":{"id":"Stage","path":"lammem-existingResources/test-function/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.206.0"}},"AssetBucket":{"id":"AssetBucket","path":"lammem-existingResources/test-function/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.206.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lammem-existingResources/test-function/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"69e370dcce5ccdf0f2e726ecb0826d434cccdb06e0814e8b0d907129183e5d36.zip"},"environment":{"variables":{"CACHE_ENDPOINT":{"Fn::Join":["",[{"Fn::GetAtt":["testcachecluster","ConfigurationEndpoint.Address"]},":",{"Fn::GetAtt":["testcachecluster","ConfigurationEndpoint.Port"]}]]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testfunctionServiceRoleFB85AD63","Arn"]},"runtime":"nodejs20.x","vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testsgsecuritygroup89DCF621","GroupId"]}]}}}}}},"ec-subnetgroup-test-cache":{"id":"ec-subnetgroup-test-cache","path":"lammem-existingResources/ec-subnetgroup-test-cache","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticache.CfnSubnetGroup","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElastiCache::SubnetGroup","aws:cdk:cloudformation:props":{"cacheSubnetGroupName":"test-cache-subnet-group","description":"Solutions Constructs generated Cache Subnet Group","subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}]}}},"test-cache-cachesg":{"id":"test-cache-cachesg","path":"lammem-existingResources/test-cache-cachesg","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.206.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lammem-existingResources/test-cache-cachesg/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lammem-existingResources/test-cache-cachesg","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"test-cache-cluster":{"id":"test-cache-cluster","path":"lammem-existingResources/test-cache-cluster","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticache.CfnCacheCluster","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElastiCache::CacheCluster","aws:cdk:cloudformation:props":{"azMode":"cross-az","cacheNodeType":"cache.t3.medium","cacheSubnetGroupName":"test-cache-subnet-group","clusterName":"test-cache-cdk-cluster","engine":"memcached","numCacheNodes":2,"port":11222,"vpcSecurityGroupIds":[{"Fn::GetAtt":["testcachecachesg7265880E","GroupId"]},{"Fn::GetAtt":["lammemexistingResourceslammemexistingResourcescachesg832A8E40","GroupId"]}]}}},"lammem-existingResources":{"id":"lammem-existingResources","path":"lammem-existingResources/lammem-existingResources","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-elasticachememcached.LambdaToElasticachememcached","version":"2.86.0"},"children":{"lammem-existingResources-cachesg":{"id":"lammem-existingResources-cachesg","path":"lammem-existingResources/lammem-existingResources/lammem-existingResources-cachesg","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.206.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lammem-existingResources/lammem-existingResources/lammem-existingResources-cachesg/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lammem-existingResources/lammem-existingResources/lammem-existingResources-cachesg","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"lammem-existingResources-ingress":{"id":"lammem-existingResources-ingress","path":"lammem-existingResources/lammem-existingResources/lammem-existingResources-ingress","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"2.206.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"Self referencing rule to control access to Elasticache memcached cluster","fromPort":{"Fn::GetAtt":["testcachecluster","ConfigurationEndpoint.Port"]},"groupId":{"Fn::GetAtt":["lammemexistingResourceslammemexistingResourcescachesg832A8E40","GroupId"]},"ipProtocol":"TCP","sourceSecurityGroupId":{"Fn::GetAtt":["lammemexistingResourceslammemexistingResourcescachesg832A8E40","GroupId"]},"toPort":{"Fn::GetAtt":["testcachecluster","ConfigurationEndpoint.Port"]}}}}}},"Integ":{"id":"Integ","path":"lammem-existingResources/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.206.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lammem-existingResources/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.206.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lammem-existingResources/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lammem-existingResources/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.206.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lammem-existingResources/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lammem-existingResources/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lammem-existingResources/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.206.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lammem-existingResources/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.206.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}}
1
+ {"version":"tree-0.1","tree":{"id":"App","path":"","constructInfo":{"fqn":"aws-cdk-lib.App","version":"2.223.0"},"children":{"lammem-existingResources":{"id":"lammem-existingResources","path":"lammem-existingResources","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"Vpc":{"id":"Vpc","path":"lammem-existingResources/Vpc","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.Vpc","version":"2.223.0","metadata":[{"natGateways":"*","subnetConfiguration":[{"cidrMask":"*","name":"*","subnetType":"Isolated"}],"enableDnsHostnames":true,"enableDnsSupport":true,"ipAddresses":"*"}]},"children":{"Resource":{"id":"Resource","path":"lammem-existingResources/Vpc/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnVPC","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::VPC","aws:cdk:cloudformation:props":{"cidrBlock":"172.168.0.0/16","enableDnsHostnames":true,"enableDnsSupport":true,"instanceTenancy":"default","tags":[{"key":"Name","value":"lammem-existingResources/Vpc"}]}}},"isolatedSubnet1":{"id":"isolatedSubnet1","path":"lammem-existingResources/Vpc/isolatedSubnet1","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lammem-existingResources/Vpc/isolatedSubnet1/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[0,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.0.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lammem-existingResources/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lammem-existingResources/Vpc/isolatedSubnet1/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lammem-existingResources/Vpc/isolatedSubnet1/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lammem-existingResources/Vpc/isolatedSubnet1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lammem-existingResources/Vpc/isolatedSubnet1/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet1RouteTableE442650B"},"subnetId":{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"}}}}}},"isolatedSubnet2":{"id":"isolatedSubnet2","path":"lammem-existingResources/Vpc/isolatedSubnet2","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.PrivateSubnet","version":"2.223.0","metadata":[{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"},{"availabilityZone":"*","vpcId":"*","cidrBlock":"*","mapPublicIpOnLaunch":false,"ipv6CidrBlock":"*","assignIpv6AddressOnCreation":"*"}]},"children":{"Subnet":{"id":"Subnet","path":"lammem-existingResources/Vpc/isolatedSubnet2/Subnet","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnet","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::Subnet","aws:cdk:cloudformation:props":{"availabilityZone":{"Fn::Select":[1,{"Fn::GetAZs":""}]},"cidrBlock":"172.168.64.0/18","mapPublicIpOnLaunch":false,"tags":[{"key":"aws-cdk:subnet-name","value":"isolated"},{"key":"aws-cdk:subnet-type","value":"Isolated"},{"key":"Name","value":"lammem-existingResources/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"Acl":{"id":"Acl","path":"lammem-existingResources/Vpc/isolatedSubnet2/Acl","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":[]}},"RouteTable":{"id":"RouteTable","path":"lammem-existingResources/Vpc/isolatedSubnet2/RouteTable","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnRouteTable","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::RouteTable","aws:cdk:cloudformation:props":{"tags":[{"key":"Name","value":"lammem-existingResources/Vpc/isolatedSubnet2"}],"vpcId":{"Ref":"Vpc8378EB38"}}}},"RouteTableAssociation":{"id":"RouteTableAssociation","path":"lammem-existingResources/Vpc/isolatedSubnet2/RouteTableAssociation","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SubnetRouteTableAssociation","aws:cdk:cloudformation:props":{"routeTableId":{"Ref":"VpcisolatedSubnet2RouteTable334F9764"},"subnetId":{"Ref":"VpcisolatedSubnet2Subnet39217055"}}}}}},"RestrictDefaultSecurityGroupCustomResource":{"id":"RestrictDefaultSecurityGroupCustomResource","path":"lammem-existingResources/Vpc/RestrictDefaultSecurityGroupCustomResource","constructInfo":{"fqn":"aws-cdk-lib.CustomResource","version":"2.223.0","metadata":["*"]},"children":{"Default":{"id":"Default","path":"lammem-existingResources/Vpc/RestrictDefaultSecurityGroupCustomResource/Default","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"FlowLog":{"id":"FlowLog","path":"lammem-existingResources/Vpc/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.FlowLog","version":"2.223.0","metadata":[{"resourceType":"*"}]},"children":{"IAMRole":{"id":"IAMRole","path":"lammem-existingResources/Vpc/FlowLog/IAMRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"roleName":"*","assumedBy":{"principalAccount":"*","assumeRoleAction":"*"}},{"addToPrincipalPolicy":[{}]},{"attachInlinePolicy":["*"]},{"attachInlinePolicy":["*"]}]},"children":{"ImportIAMRole":{"id":"ImportIAMRole","path":"lammem-existingResources/Vpc/FlowLog/IAMRole/ImportIAMRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lammem-existingResources/Vpc/FlowLog/IAMRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"vpc-flow-logs.amazonaws.com"}}],"Version":"2012-10-17"},"tags":[{"key":"Name","value":"lammem-existingResources/Vpc/FlowLog"}]}}},"DefaultPolicy":{"id":"DefaultPolicy","path":"lammem-existingResources/Vpc/FlowLog/IAMRole/DefaultPolicy","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Policy","version":"2.223.0","metadata":["*",{"attachToRole":["*"]},{"attachToRole":["*"]},{"addStatements":[{}]}]},"children":{"Resource":{"id":"Resource","path":"lammem-existingResources/Vpc/FlowLog/IAMRole/DefaultPolicy/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnPolicy","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Policy","aws:cdk:cloudformation:props":{"policyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["VpcFlowLogLogGroup7B5C56B9","Arn"]}}],"Version":"2012-10-17"},"policyName":"VpcFlowLogIAMRoleDefaultPolicy406FB995","roles":[{"Ref":"VpcFlowLogIAMRole6A475D41"}]}}}}}}},"LogGroup":{"id":"LogGroup","path":"lammem-existingResources/Vpc/FlowLog/LogGroup","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.LogGroup","version":"2.223.0","metadata":["*"]},"children":{"Resource":{"id":"Resource","path":"lammem-existingResources/Vpc/FlowLog/LogGroup/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_logs.CfnLogGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Logs::LogGroup","aws:cdk:cloudformation:props":{"retentionInDays":731,"tags":[{"key":"Name","value":"lammem-existingResources/Vpc/FlowLog"}]}}}}},"FlowLog":{"id":"FlowLog","path":"lammem-existingResources/Vpc/FlowLog/FlowLog","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnFlowLog","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::FlowLog","aws:cdk:cloudformation:props":{"deliverLogsPermissionArn":{"Fn::GetAtt":["VpcFlowLogIAMRole6A475D41","Arn"]},"logDestinationType":"cloud-watch-logs","logGroupName":{"Ref":"VpcFlowLogLogGroup7B5C56B9"},"resourceId":{"Ref":"Vpc8378EB38"},"resourceType":"VPC","tags":[{"key":"Name","value":"lammem-existingResources/Vpc/FlowLog"}],"trafficType":"ALL"}}}}}}},"Custom::VpcRestrictDefaultSGCustomResourceProvider":{"id":"Custom::VpcRestrictDefaultSGCustomResourceProvider","path":"lammem-existingResources/Custom::VpcRestrictDefaultSGCustomResourceProvider","constructInfo":{"fqn":"aws-cdk-lib.CustomResourceProviderBase","version":"2.223.0"},"children":{"Staging":{"id":"Staging","path":"lammem-existingResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Staging","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"Role":{"id":"Role","path":"lammem-existingResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}},"Handler":{"id":"Handler","path":"lammem-existingResources/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler","constructInfo":{"fqn":"aws-cdk-lib.CfnResource","version":"2.223.0"}}}},"test-sg-security-group":{"id":"test-sg-security-group","path":"lammem-existingResources/test-sg-security-group","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*"}]},"children":{"Resource":{"id":"Resource","path":"lammem-existingResources/test-sg-security-group/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lammem-existingResources/test-sg-security-group","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"test-function":{"id":"test-function","path":"lammem-existingResources/test-function","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.Function","version":"2.223.0","metadata":[{"runtime":"*","handler":"*","code":"*","vpc":"*","securityGroups":["*"]},{"addEnvironment":["*","*"]}]},"children":{"ServiceRole":{"id":"ServiceRole","path":"lammem-existingResources/test-function/ServiceRole","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.Role","version":"2.223.0","metadata":[{"assumedBy":{"principalAccount":"*","assumeRoleAction":"*"},"managedPolicies":[{"managedPolicyArn":"*"},{"managedPolicyArn":"*"}]}]},"children":{"ImportServiceRole":{"id":"ImportServiceRole","path":"lammem-existingResources/test-function/ServiceRole/ImportServiceRole","constructInfo":{"fqn":"aws-cdk-lib.Resource","version":"2.223.0","metadata":["*"]}},"Resource":{"id":"Resource","path":"lammem-existingResources/test-function/ServiceRole/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_iam.CfnRole","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::IAM::Role","aws:cdk:cloudformation:props":{"assumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"managedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"]]}]}}}}},"Code":{"id":"Code","path":"lammem-existingResources/test-function/Code","constructInfo":{"fqn":"aws-cdk-lib.aws_s3_assets.Asset","version":"2.223.0"},"children":{"Stage":{"id":"Stage","path":"lammem-existingResources/test-function/Code/Stage","constructInfo":{"fqn":"aws-cdk-lib.AssetStaging","version":"2.223.0"}},"AssetBucket":{"id":"AssetBucket","path":"lammem-existingResources/test-function/Code/AssetBucket","constructInfo":{"fqn":"aws-cdk-lib.aws_s3.BucketBase","version":"2.223.0","metadata":[]}}}},"Resource":{"id":"Resource","path":"lammem-existingResources/test-function/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_lambda.CfnFunction","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::Lambda::Function","aws:cdk:cloudformation:props":{"code":{"s3Bucket":{"Fn::Sub":"cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"},"s3Key":"69e370dcce5ccdf0f2e726ecb0826d434cccdb06e0814e8b0d907129183e5d36.zip"},"environment":{"variables":{"CACHE_ENDPOINT":{"Fn::Join":["",[{"Fn::GetAtt":["testcachecluster","ConfigurationEndpoint.Address"]},":",{"Fn::GetAtt":["testcachecluster","ConfigurationEndpoint.Port"]}]]}}},"handler":"index.handler","role":{"Fn::GetAtt":["testfunctionServiceRoleFB85AD63","Arn"]},"runtime":"nodejs20.x","vpcConfig":{"subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}],"securityGroupIds":[{"Fn::GetAtt":["testsgsecuritygroup89DCF621","GroupId"]}]}}}}}},"ec-subnetgroup-test-cache":{"id":"ec-subnetgroup-test-cache","path":"lammem-existingResources/ec-subnetgroup-test-cache","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticache.CfnSubnetGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElastiCache::SubnetGroup","aws:cdk:cloudformation:props":{"cacheSubnetGroupName":"test-cache-subnet-group","description":"Solutions Constructs generated Cache Subnet Group","subnetIds":[{"Ref":"VpcisolatedSubnet1SubnetE62B1B9B"},{"Ref":"VpcisolatedSubnet2Subnet39217055"}]}}},"test-cache-cachesg":{"id":"test-cache-cachesg","path":"lammem-existingResources/test-cache-cachesg","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lammem-existingResources/test-cache-cachesg/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lammem-existingResources/test-cache-cachesg","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"test-cache-cluster":{"id":"test-cache-cluster","path":"lammem-existingResources/test-cache-cluster","constructInfo":{"fqn":"aws-cdk-lib.aws_elasticache.CfnCacheCluster","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::ElastiCache::CacheCluster","aws:cdk:cloudformation:props":{"azMode":"cross-az","cacheNodeType":"cache.t3.medium","cacheSubnetGroupName":"test-cache-subnet-group","clusterName":"test-cache-cdk-cluster","engine":"memcached","numCacheNodes":2,"port":11222,"vpcSecurityGroupIds":[{"Fn::GetAtt":["testcachecachesg7265880E","GroupId"]},{"Fn::GetAtt":["lammemexistingResourceslammemexistingResourcescachesg832A8E40","GroupId"]}]}}},"lammem-existingResources":{"id":"lammem-existingResources","path":"lammem-existingResources/lammem-existingResources","constructInfo":{"fqn":"@aws-solutions-constructs/aws-lambda-elasticachememcached.LambdaToElasticachememcached","version":"2.94.0"},"children":{"lammem-existingResources-cachesg":{"id":"lammem-existingResources-cachesg","path":"lammem-existingResources/lammem-existingResources/lammem-existingResources-cachesg","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.SecurityGroup","version":"2.223.0","metadata":[{"vpc":"*","allowAllOutbound":true}]},"children":{"Resource":{"id":"Resource","path":"lammem-existingResources/lammem-existingResources/lammem-existingResources-cachesg/Resource","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroup","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroup","aws:cdk:cloudformation:props":{"groupDescription":"lammem-existingResources/lammem-existingResources/lammem-existingResources-cachesg","securityGroupEgress":[{"cidrIp":"0.0.0.0/0","description":"Allow all outbound traffic by default","ipProtocol":"-1"}],"vpcId":{"Ref":"Vpc8378EB38"}}}}}},"lammem-existingResources-ingress":{"id":"lammem-existingResources-ingress","path":"lammem-existingResources/lammem-existingResources/lammem-existingResources-ingress","constructInfo":{"fqn":"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress","version":"2.223.0"},"attributes":{"aws:cdk:cloudformation:type":"AWS::EC2::SecurityGroupIngress","aws:cdk:cloudformation:props":{"description":"Self referencing rule to control access to Elasticache memcached cluster","fromPort":{"Fn::GetAtt":["testcachecluster","ConfigurationEndpoint.Port"]},"groupId":{"Fn::GetAtt":["lammemexistingResourceslammemexistingResourcescachesg832A8E40","GroupId"]},"ipProtocol":"TCP","sourceSecurityGroupId":{"Fn::GetAtt":["lammemexistingResourceslammemexistingResourcescachesg832A8E40","GroupId"]},"toPort":{"Fn::GetAtt":["testcachecluster","ConfigurationEndpoint.Port"]}}}}}},"Integ":{"id":"Integ","path":"lammem-existingResources/Integ","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTest","version":"2.223.0-alpha.0"},"children":{"DefaultTest":{"id":"DefaultTest","path":"lammem-existingResources/Integ/DefaultTest","constructInfo":{"fqn":"@aws-cdk/integ-tests-alpha.IntegTestCase","version":"2.223.0-alpha.0"},"children":{"Default":{"id":"Default","path":"lammem-existingResources/Integ/DefaultTest/Default","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}},"DeployAssert":{"id":"DeployAssert","path":"lammem-existingResources/Integ/DefaultTest/DeployAssert","constructInfo":{"fqn":"aws-cdk-lib.Stack","version":"2.223.0"},"children":{"BootstrapVersion":{"id":"BootstrapVersion","path":"lammem-existingResources/Integ/DefaultTest/DeployAssert/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lammem-existingResources/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}}}}}},"BootstrapVersion":{"id":"BootstrapVersion","path":"lammem-existingResources/BootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnParameter","version":"2.223.0"}},"CheckBootstrapVersion":{"id":"CheckBootstrapVersion","path":"lammem-existingResources/CheckBootstrapVersion","constructInfo":{"fqn":"aws-cdk-lib.CfnRule","version":"2.223.0"}}}},"Tree":{"id":"Tree","path":"Tree","constructInfo":{"fqn":"constructs.Construct","version":"10.4.2"}}}}}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
5
+ * with the License. A copy of the License is located at
6
+ *
7
+ * http://www.apache.org/licenses/LICENSE-2.0
8
+ *
9
+ * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES
10
+ * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
11
+ * and limitations under the License.
12
+ */
13
+
14
+ exports.handler = async function (event) {
15
+ console.log(`request:${JSON.stringify(event, undefined, 2)}`);
16
+ return {
17
+ statusCode: 200,
18
+ headers: { "Content-Type": "text/plain" },
19
+ body: `Hello, AWS Solutions Constructs! You've hit ${event.path}`,
20
+ };
21
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.external=void 0,exports.handler=handler,exports.withRetries=withRetries;const https=require("https"),url=require("url");exports.external={sendHttpRequest:defaultSendHttpRequest,log:defaultLog,includeStackTraces:!0,userHandlerIndex:"./index"};const CREATE_FAILED_PHYSICAL_ID_MARKER="AWSCDK::CustomResourceProviderFramework::CREATE_FAILED",MISSING_PHYSICAL_ID_MARKER="AWSCDK::CustomResourceProviderFramework::MISSING_PHYSICAL_ID";async function handler(event,context){const sanitizedEvent={...event,ResponseURL:"..."};if(exports.external.log(JSON.stringify(sanitizedEvent,void 0,2)),event.RequestType==="Delete"&&event.PhysicalResourceId===CREATE_FAILED_PHYSICAL_ID_MARKER){exports.external.log("ignoring DELETE event caused by a failed CREATE event"),await submitResponse("SUCCESS",event);return}try{const userHandler=require(exports.external.userHandlerIndex).handler,result=await userHandler(sanitizedEvent,context),responseEvent=renderResponse(event,result);await submitResponse("SUCCESS",responseEvent)}catch(e){const resp={...event,Reason:exports.external.includeStackTraces?e.stack:e.message};resp.PhysicalResourceId||(event.RequestType==="Create"?(exports.external.log("CREATE failed, responding with a marker physical resource id so that the subsequent DELETE will be ignored"),resp.PhysicalResourceId=CREATE_FAILED_PHYSICAL_ID_MARKER):exports.external.log(`ERROR: Malformed event. "PhysicalResourceId" is required: ${JSON.stringify(event)}`)),await submitResponse("FAILED",resp)}}function renderResponse(cfnRequest,handlerResponse={}){const physicalResourceId=handlerResponse.PhysicalResourceId??cfnRequest.PhysicalResourceId??cfnRequest.RequestId;if(cfnRequest.RequestType==="Delete"&&physicalResourceId!==cfnRequest.PhysicalResourceId)throw new Error(`DELETE: cannot change the physical resource ID from "${cfnRequest.PhysicalResourceId}" to "${handlerResponse.PhysicalResourceId}" during deletion`);return{...cfnRequest,...handlerResponse,PhysicalResourceId:physicalResourceId}}async function submitResponse(status,event){const json={Status:status,Reason:event.Reason??status,StackId:event.StackId,RequestId:event.RequestId,PhysicalResourceId:event.PhysicalResourceId||MISSING_PHYSICAL_ID_MARKER,LogicalResourceId:event.LogicalResourceId,NoEcho:event.NoEcho,Data:event.Data},parsedUrl=url.parse(event.ResponseURL),loggingSafeUrl=`${parsedUrl.protocol}//${parsedUrl.hostname}/${parsedUrl.pathname}?***`;exports.external.log("submit response to cloudformation",loggingSafeUrl,json);const responseBody=JSON.stringify(json),req={hostname:parsedUrl.hostname,path:parsedUrl.path,method:"PUT",headers:{"content-type":"","content-length":Buffer.byteLength(responseBody,"utf8")}};await withRetries({attempts:5,sleep:1e3},exports.external.sendHttpRequest)(req,responseBody)}async function defaultSendHttpRequest(options,requestBody){return new Promise((resolve,reject)=>{try{const request=https.request(options,response=>{response.resume(),!response.statusCode||response.statusCode>=400?reject(new Error(`Unsuccessful HTTP response: ${response.statusCode}`)):resolve()});request.on("error",reject),request.write(requestBody),request.end()}catch(e){reject(e)}})}function defaultLog(fmt,...params){console.log(fmt,...params)}function withRetries(options,fn){return async(...xs)=>{let attempts=options.attempts,ms=options.sleep;for(;;)try{return await fn(...xs)}catch(e){if(attempts--<=0)throw e;await sleep(Math.floor(Math.random()*ms)),ms*=2}}}async function sleep(ms){return new Promise(ok=>setTimeout(ok,ms))}
@@ -0,0 +1 @@
1
+ "use strict";var I=Object.create,t=Object.defineProperty,y=Object.getOwnPropertyDescriptor,P=Object.getOwnPropertyNames,g=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty,G=(r,e)=>{for(var o in e)t(r,o,{get:e[o],enumerable:!0})},n=(r,e,o,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of P(e))!l.call(r,s)&&s!==o&&t(r,s,{get:()=>e[s],enumerable:!(i=y(e,s))||i.enumerable});return r},R=(r,e,o)=>(o=r!=null?I(g(r)):{},n(e||!r||!r.__esModule?t(o,"default",{value:r,enumerable:!0}):o,r)),S=r=>n(t({},"__esModule",{value:!0}),r),k={};G(k,{handler:()=>f}),module.exports=S(k);var a=R(require("@aws-sdk/client-ec2")),u=new a.EC2({});function c(r,e){return{GroupId:r,IpPermissions:[{UserIdGroupPairs:[{GroupId:r,UserId:e}],IpProtocol:"-1"}]}}function d(r){return{GroupId:r,IpPermissions:[{IpRanges:[{CidrIp:"0.0.0.0/0"}],IpProtocol:"-1"}]}}async function f(r){let e=r.ResourceProperties.DefaultSecurityGroupId,o=r.ResourceProperties.Account;switch(r.RequestType){case"Create":return p(e,o);case"Update":return h(r);case"Delete":return m(e,o)}}async function h(r){let e=r.OldResourceProperties.DefaultSecurityGroupId,o=r.ResourceProperties.DefaultSecurityGroupId;e!==o&&(await m(e,r.ResourceProperties.Account),await p(o,r.ResourceProperties.Account))}async function p(r,e){try{await u.revokeSecurityGroupEgress(d(r))}catch(o){if(o.name!=="InvalidPermission.NotFound")throw o}try{await u.revokeSecurityGroupIngress(c(r,e))}catch(o){if(o.name!=="InvalidPermission.NotFound")throw o}}async function m(r,e){await u.authorizeSecurityGroupIngress(c(r,e)),await u.authorizeSecurityGroupEgress(d(r))}