@aws-solutions-constructs/aws-lambda-opensearch 2.93.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 (43) hide show
  1. package/.jsii +57 -5
  2. package/lib/index.js +1 -1
  3. package/package.json +6 -6
  4. package/test/integ.lamopn-cluster-config.js.snapshot/asset.36fdcee3b182bca7e3283fbd947213d1e59968159f93aec9fd62d15935c721b0/index.js +73 -0
  5. package/test/integ.lamopn-cluster-config.js.snapshot/asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200/__entrypoint__.js +1 -0
  6. package/test/integ.lamopn-cluster-config.js.snapshot/asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200/index.js +1 -0
  7. package/test/integ.lamopn-cluster-config.js.snapshot/cdk.out +1 -1
  8. package/test/integ.lamopn-cluster-config.js.snapshot/integ.json +2 -2
  9. package/test/integ.lamopn-cluster-config.js.snapshot/lamopn-cluster-config.assets.json +4 -4
  10. package/test/integ.lamopn-cluster-config.js.snapshot/lamopn-cluster-config.template.json +0 -10
  11. package/test/integ.lamopn-cluster-config.js.snapshot/lamopnclusterconfigIntegDefaultTestDeployAssertD8012D1A.assets.json +1 -1
  12. package/test/integ.lamopn-cluster-config.js.snapshot/manifest.json +83 -66
  13. package/test/integ.lamopn-cluster-config.js.snapshot/tree.json +1 -1
  14. package/test/integ.lamopn-disabled-zone-awareness.js.snapshot/asset.36fdcee3b182bca7e3283fbd947213d1e59968159f93aec9fd62d15935c721b0/index.js +73 -0
  15. package/test/integ.lamopn-disabled-zone-awareness.js.snapshot/asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200/__entrypoint__.js +1 -0
  16. package/test/integ.lamopn-disabled-zone-awareness.js.snapshot/asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200/index.js +1 -0
  17. package/test/integ.lamopn-disabled-zone-awareness.js.snapshot/cdk.out +1 -1
  18. package/test/integ.lamopn-disabled-zone-awareness.js.snapshot/integ.json +2 -2
  19. package/test/integ.lamopn-disabled-zone-awareness.js.snapshot/lamopn-disabled-zone-awareness.assets.json +4 -4
  20. package/test/integ.lamopn-disabled-zone-awareness.js.snapshot/lamopn-disabled-zone-awareness.template.json +0 -10
  21. package/test/integ.lamopn-disabled-zone-awareness.js.snapshot/lamopndisabledzoneawarenessIntegDefaultTestDeployAssert7E083B68.assets.json +1 -1
  22. package/test/integ.lamopn-disabled-zone-awareness.js.snapshot/manifest.json +83 -66
  23. package/test/integ.lamopn-disabled-zone-awareness.js.snapshot/tree.json +1 -1
  24. package/test/integ.lamopn-existing-vpc.js.snapshot/asset.36fdcee3b182bca7e3283fbd947213d1e59968159f93aec9fd62d15935c721b0/index.js +73 -0
  25. package/test/integ.lamopn-existing-vpc.js.snapshot/asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200/__entrypoint__.js +1 -0
  26. package/test/integ.lamopn-existing-vpc.js.snapshot/asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200/index.js +1 -0
  27. package/test/integ.lamopn-existing-vpc.js.snapshot/cdk.out +1 -1
  28. package/test/integ.lamopn-existing-vpc.js.snapshot/integ.json +2 -2
  29. package/test/integ.lamopn-existing-vpc.js.snapshot/lamopn-existing-vpc.assets.json +4 -4
  30. package/test/integ.lamopn-existing-vpc.js.snapshot/lamopn-existing-vpc.template.json +0 -10
  31. package/test/integ.lamopn-existing-vpc.js.snapshot/lamopnexistingvpcIntegDefaultTestDeployAssert4A7EE058.assets.json +1 -1
  32. package/test/integ.lamopn-existing-vpc.js.snapshot/manifest.json +83 -66
  33. package/test/integ.lamopn-existing-vpc.js.snapshot/tree.json +1 -1
  34. package/test/integ.lamopn-vpc-props.js.snapshot/asset.36fdcee3b182bca7e3283fbd947213d1e59968159f93aec9fd62d15935c721b0/index.js +73 -0
  35. package/test/integ.lamopn-vpc-props.js.snapshot/asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200/__entrypoint__.js +1 -0
  36. package/test/integ.lamopn-vpc-props.js.snapshot/asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200/index.js +1 -0
  37. package/test/integ.lamopn-vpc-props.js.snapshot/cdk.out +1 -1
  38. package/test/integ.lamopn-vpc-props.js.snapshot/integ.json +2 -2
  39. package/test/integ.lamopn-vpc-props.js.snapshot/lamopn-vpc-props.assets.json +4 -4
  40. package/test/integ.lamopn-vpc-props.js.snapshot/lamopn-vpc-props.template.json +0 -10
  41. package/test/integ.lamopn-vpc-props.js.snapshot/lamopnvpcpropsIntegDefaultTestDeployAssertC7FD49B0.assets.json +1 -1
  42. package/test/integ.lamopn-vpc-props.js.snapshot/manifest.json +83 -66
  43. package/test/integ.lamopn-vpc-props.js.snapshot/tree.json +1 -1
@@ -0,0 +1,73 @@
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
+ var AWS = require('aws-sdk');
15
+ var path = require('path');
16
+
17
+ console.log('Loading function');
18
+
19
+ var openSearchDomain = {
20
+ endpoint: process.env.DOMAIN_ENDPOINT,
21
+ region: process.env.AWS_REGION,
22
+ index: 'records',
23
+ doctype: 'movie'
24
+ };
25
+
26
+ var creds = new AWS.EnvironmentCredentials('AWS');
27
+ var endpoint = new AWS.Endpoint(openSearchDomain.endpoint);
28
+
29
+ function postDocumentToOpenSearch(doc, context) {
30
+ var req = new AWS.HttpRequest(endpoint);
31
+
32
+ req.method = 'POST';
33
+ req.path = path.join('/', openSearchDomain.index, openSearchDomain.doctype);
34
+ req.region = openSearchDomain.region;
35
+ req.body = doc;
36
+ req.headers['presigned-expires'] = false;
37
+ req.headers['Host'] = openSearchDomain.endpoint;
38
+ req.headers['Content-Type'] = 'application/json';
39
+
40
+ // Sign the request (Sigv4)
41
+ var signer = new AWS.Signers.V4(req, 'es');
42
+ signer.addAuthorization(creds, new Date());
43
+
44
+ // Post document to the OpenSearch Service
45
+ var send = new AWS.NodeHttpClient();
46
+
47
+ send.handleRequest(req, null, (httpResp) => {
48
+ var body = '';
49
+ httpResp.on('data', (chunk) => {
50
+ body += chunk;
51
+ });
52
+ httpResp.on('end', (chunk) => {
53
+ console.log('All movie records added to the OpenSearch Service.');
54
+ context.succeed();
55
+ });
56
+ }, (err) => {
57
+ console.log('Error: ' + err);
58
+ context.fail();
59
+ });
60
+ }
61
+
62
+ exports.handler = (event, context) => {
63
+ console.log('Received event:', JSON.stringify(event, null, 2));
64
+ postDocumentToOpenSearch("{ \"title\": \"Moby Dick\" }", context);
65
+ postDocumentToOpenSearch("{ \"title\": \"A Tale of Two Cities\" }", context);
66
+ postDocumentToOpenSearch("{ \"title\": \"The Phantom of the Opera\" }", context);
67
+
68
+ return {
69
+ statusCode: 200,
70
+ headers: { 'Content-Type': 'text/plain' },
71
+ body: `Hello from AWS Solutions Constructs!\n`
72
+ };
73
+ };
@@ -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
  "lamopn-existing-vpc/Integ/DefaultTest": {
5
5
  "stacks": [
@@ -9,5 +9,5 @@
9
9
  "assertionStackName": "lamopnexistingvpcIntegDefaultTestDeployAssert4A7EE058"
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": "lamopn-existing-vpc/Custom::VpcRestrictDefaultSGCustomResourceProvider Code",
@@ -31,16 +31,16 @@
31
31
  }
32
32
  }
33
33
  },
34
- "4b2909a1a87ad822cfaa7b171fc5fc3ebd789bc58fd71df8f0958388feadaad1": {
34
+ "8f0f5d9b56344a0ace76f1d5f10d97b4700128bfc8348a7ad0dde6566c0ea7a8": {
35
35
  "displayName": "lamopn-existing-vpc Template",
36
36
  "source": {
37
37
  "path": "lamopn-existing-vpc.template.json",
38
38
  "packaging": "file"
39
39
  },
40
40
  "destinations": {
41
- "current_account-us-east-1-c77c00cf": {
41
+ "current_account-us-east-1-88bf100b": {
42
42
  "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1",
43
- "objectKey": "4b2909a1a87ad822cfaa7b171fc5fc3ebd789bc58fd71df8f0958388feadaad1.json",
43
+ "objectKey": "8f0f5d9b56344a0ace76f1d5f10d97b4700128bfc8348a7ad0dde6566c0ea7a8.json",
44
44
  "region": "us-east-1",
45
45
  "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-us-east-1"
46
46
  }
@@ -474,16 +474,6 @@
474
474
  "Arn"
475
475
  ]
476
476
  }
477
- },
478
- {
479
- "Action": "iam:PassRole",
480
- "Effect": "Allow",
481
- "Resource": {
482
- "Fn::GetAtt": [
483
- "VpcFlowLogIAMRole6A475D41",
484
- "Arn"
485
- ]
486
- }
487
477
  }
488
478
  ],
489
479
  "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": "lamopnexistingvpcIntegDefaultTestDeployAssert4A7EE058 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}-us-east-1",
68
68
  "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-us-east-1",
69
- "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1/4b2909a1a87ad822cfaa7b171fc5fc3ebd789bc58fd71df8f0958388feadaad1.json",
69
+ "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1/8f0f5d9b56344a0ace76f1d5f10d97b4700128bfc8348a7ad0dde6566c0ea7a8.json",
70
70
  "requiresBootstrapStackVersion": 6,
71
71
  "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version",
72
72
  "additionalDependencies": [
@@ -412,14 +412,6 @@
412
412
  "*"
413
413
  ]
414
414
  }
415
- },
416
- {
417
- "type": "aws:cdk:analytics:method",
418
- "data": {
419
- "addToPrincipalPolicy": [
420
- {}
421
- ]
422
- }
423
415
  }
424
416
  ],
425
417
  "/lamopn-existing-vpc/Vpc/FlowLog/IAMRole/ImportIAMRole": [
@@ -455,14 +447,6 @@
455
447
  ]
456
448
  }
457
449
  },
458
- {
459
- "type": "aws:cdk:analytics:method",
460
- "data": {
461
- "addStatements": [
462
- {}
463
- ]
464
- }
465
- },
466
450
  {
467
451
  "type": "aws:cdk:analytics:method",
468
452
  "data": {
@@ -874,7 +858,8 @@
874
858
  "type": "aws:cdk:analytics:construct",
875
859
  "data": {
876
860
  "metric": {
877
- "warnings": "*"
861
+ "warnings": "*",
862
+ "warningsV2": "*"
878
863
  },
879
864
  "threshold": "*",
880
865
  "evaluationPeriods": "*",
@@ -894,7 +879,8 @@
894
879
  "type": "aws:cdk:analytics:construct",
895
880
  "data": {
896
881
  "metric": {
897
- "warnings": "*"
882
+ "warnings": "*",
883
+ "warningsV2": "*"
898
884
  },
899
885
  "threshold": "*",
900
886
  "evaluationPeriods": "*",
@@ -914,7 +900,8 @@
914
900
  "type": "aws:cdk:analytics:construct",
915
901
  "data": {
916
902
  "metric": {
917
- "warnings": "*"
903
+ "warnings": "*",
904
+ "warningsV2": "*"
918
905
  },
919
906
  "threshold": "*",
920
907
  "evaluationPeriods": "*",
@@ -934,7 +921,8 @@
934
921
  "type": "aws:cdk:analytics:construct",
935
922
  "data": {
936
923
  "metric": {
937
- "warnings": "*"
924
+ "warnings": "*",
925
+ "warningsV2": "*"
938
926
  },
939
927
  "threshold": "*",
940
928
  "evaluationPeriods": "*",
@@ -954,7 +942,8 @@
954
942
  "type": "aws:cdk:analytics:construct",
955
943
  "data": {
956
944
  "metric": {
957
- "warnings": "*"
945
+ "warnings": "*",
946
+ "warningsV2": "*"
958
947
  },
959
948
  "threshold": "*",
960
949
  "evaluationPeriods": "*",
@@ -974,7 +963,8 @@
974
963
  "type": "aws:cdk:analytics:construct",
975
964
  "data": {
976
965
  "metric": {
977
- "warnings": "*"
966
+ "warnings": "*",
967
+ "warningsV2": "*"
978
968
  },
979
969
  "threshold": "*",
980
970
  "evaluationPeriods": "*",
@@ -994,7 +984,8 @@
994
984
  "type": "aws:cdk:analytics:construct",
995
985
  "data": {
996
986
  "metric": {
997
- "warnings": "*"
987
+ "warnings": "*",
988
+ "warningsV2": "*"
998
989
  },
999
990
  "threshold": "*",
1000
991
  "evaluationPeriods": "*",
@@ -1014,7 +1005,8 @@
1014
1005
  "type": "aws:cdk:analytics:construct",
1015
1006
  "data": {
1016
1007
  "metric": {
1017
- "warnings": "*"
1008
+ "warnings": "*",
1009
+ "warningsV2": "*"
1018
1010
  },
1019
1011
  "threshold": "*",
1020
1012
  "evaluationPeriods": "*",
@@ -1034,7 +1026,8 @@
1034
1026
  "type": "aws:cdk:analytics:construct",
1035
1027
  "data": {
1036
1028
  "metric": {
1037
- "warnings": "*"
1029
+ "warnings": "*",
1030
+ "warningsV2": "*"
1038
1031
  },
1039
1032
  "threshold": "*",
1040
1033
  "evaluationPeriods": "*",
@@ -1075,57 +1068,48 @@
1075
1068
  "properties": {
1076
1069
  "module": "aws-cdk-lib",
1077
1070
  "flags": {
1078
- "@aws-cdk/core:enableStackNameDuplicates": {
1079
- "recommendedValue": true,
1080
- "explanation": "Allow multiple stacks with the same name"
1081
- },
1082
- "aws-cdk:enableDiffNoFail": {
1071
+ "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": {
1083
1072
  "recommendedValue": true,
1084
- "explanation": "Make `cdk diff` not fail when there are differences"
1073
+ "explanation": "Pass signingProfileName to CfnSigningProfile"
1085
1074
  },
1086
1075
  "@aws-cdk/core:newStyleStackSynthesis": {
1087
1076
  "recommendedValue": true,
1088
- "explanation": "Switch to new stack synthesis method which enables CI/CD"
1077
+ "explanation": "Switch to new stack synthesis method which enables CI/CD",
1078
+ "unconfiguredBehavesLike": {
1079
+ "v2": true
1080
+ }
1089
1081
  },
1090
1082
  "@aws-cdk/core:stackRelativeExports": {
1091
1083
  "recommendedValue": true,
1092
- "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path"
1093
- },
1094
- "@aws-cdk/aws-ecr-assets:dockerIgnoreSupport": {
1095
- "recommendedValue": true,
1096
- "explanation": "DockerImageAsset properly supports `.dockerignore` files by default"
1097
- },
1098
- "@aws-cdk/aws-secretsmanager:parseOwnedSecretName": {
1099
- "recommendedValue": true,
1100
- "explanation": "Fix the referencing of SecretsManager names from ARNs"
1101
- },
1102
- "@aws-cdk/aws-kms:defaultKeyPolicies": {
1103
- "recommendedValue": true,
1104
- "explanation": "Tighten default KMS key policies"
1105
- },
1106
- "@aws-cdk/aws-s3:grantWriteWithoutAcl": {
1107
- "recommendedValue": true,
1108
- "explanation": "Remove `PutObjectAcl` from Bucket.grantWrite"
1084
+ "explanation": "Name exports based on the construct paths relative to the stack, rather than the global construct path",
1085
+ "unconfiguredBehavesLike": {
1086
+ "v2": true
1087
+ }
1109
1088
  },
1110
- "@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount": {
1089
+ "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": {
1111
1090
  "recommendedValue": true,
1112
- "explanation": "Do not specify a default DesiredCount for ECS services"
1091
+ "explanation": "Disable implicit openListener when custom security groups are provided"
1113
1092
  },
1114
1093
  "@aws-cdk/aws-rds:lowercaseDbIdentifier": {
1115
1094
  "recommendedValue": true,
1116
- "explanation": "Force lowercasing of RDS Cluster names in CDK"
1095
+ "explanation": "Force lowercasing of RDS Cluster names in CDK",
1096
+ "unconfiguredBehavesLike": {
1097
+ "v2": true
1098
+ }
1117
1099
  },
1118
1100
  "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": {
1119
1101
  "recommendedValue": true,
1120
- "explanation": "Allow adding/removing multiple UsagePlanKeys independently"
1121
- },
1122
- "@aws-cdk/aws-efs:defaultEncryptionAtRest": {
1123
- "recommendedValue": true,
1124
- "explanation": "Enable this feature flag to have elastic file systems encrypted at rest by default."
1102
+ "explanation": "Allow adding/removing multiple UsagePlanKeys independently",
1103
+ "unconfiguredBehavesLike": {
1104
+ "v2": true
1105
+ }
1125
1106
  },
1126
1107
  "@aws-cdk/aws-lambda:recognizeVersionProps": {
1127
1108
  "recommendedValue": true,
1128
- "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`."
1109
+ "explanation": "Enable this feature flag to opt in to the updated logical id calculation for Lambda Version created using the `fn.currentVersion`.",
1110
+ "unconfiguredBehavesLike": {
1111
+ "v2": true
1112
+ }
1129
1113
  },
1130
1114
  "@aws-cdk/aws-lambda:recognizeLayerVersion": {
1131
1115
  "userValue": true,
@@ -1134,7 +1118,10 @@
1134
1118
  },
1135
1119
  "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": {
1136
1120
  "recommendedValue": true,
1137
- "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default."
1121
+ "explanation": "Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.",
1122
+ "unconfiguredBehavesLike": {
1123
+ "v2": true
1124
+ }
1138
1125
  },
1139
1126
  "@aws-cdk/core:checkSecretUsage": {
1140
1127
  "userValue": true,
@@ -1211,7 +1198,7 @@
1211
1198
  "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": {
1212
1199
  "userValue": true,
1213
1200
  "recommendedValue": true,
1214
- "explanation": "Enable this feature to by default create default policy names for imported roles that depend on the stack the role is in."
1201
+ "explanation": "Enable this feature to create default policy names for imported roles that depend on the stack the role is in."
1215
1202
  },
1216
1203
  "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": {
1217
1204
  "userValue": true,
@@ -1355,7 +1342,10 @@
1355
1342
  },
1356
1343
  "@aws-cdk/pipelines:reduceAssetRoleTrustScope": {
1357
1344
  "recommendedValue": true,
1358
- "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy"
1345
+ "explanation": "Remove the root account principal from PipelineAssetsFileRole trust policy",
1346
+ "unconfiguredBehavesLike": {
1347
+ "v2": true
1348
+ }
1359
1349
  },
1360
1350
  "@aws-cdk/aws-eks:nodegroupNameAttribute": {
1361
1351
  "userValue": true,
@@ -1384,7 +1374,10 @@
1384
1374
  },
1385
1375
  "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": {
1386
1376
  "recommendedValue": true,
1387
- "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model."
1377
+ "explanation": "When enabled, use new props for S3 URI field in task definition of state machine for bedrock invoke model.",
1378
+ "unconfiguredBehavesLike": {
1379
+ "v2": true
1380
+ }
1388
1381
  },
1389
1382
  "@aws-cdk/core:explicitStackTags": {
1390
1383
  "userValue": true,
@@ -1448,7 +1441,10 @@
1448
1441
  },
1449
1442
  "@aws-cdk/core:aspectStabilization": {
1450
1443
  "recommendedValue": true,
1451
- "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis."
1444
+ "explanation": "When enabled, a stabilization loop will be run when invoking Aspects during synthesis.",
1445
+ "unconfiguredBehavesLike": {
1446
+ "v2": true
1447
+ }
1452
1448
  },
1453
1449
  "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": {
1454
1450
  "userValue": true,
@@ -1482,7 +1478,10 @@
1482
1478
  },
1483
1479
  "@aws-cdk/pipelines:reduceStageRoleTrustScope": {
1484
1480
  "recommendedValue": true,
1485
- "explanation": "Remove the root account principal from Stage addActions trust policy"
1481
+ "explanation": "Remove the root account principal from Stage addActions trust policy",
1482
+ "unconfiguredBehavesLike": {
1483
+ "v2": true
1484
+ }
1486
1485
  },
1487
1486
  "@aws-cdk/aws-events:requireEventBusPolicySid": {
1488
1487
  "userValue": true,
@@ -1505,7 +1504,10 @@
1505
1504
  },
1506
1505
  "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": {
1507
1506
  "recommendedValue": true,
1508
- "explanation": "When enabled, scopes down the trust policy for the cross-account action role"
1507
+ "explanation": "When enabled, scopes down the trust policy for the cross-account action role",
1508
+ "unconfiguredBehavesLike": {
1509
+ "v2": true
1510
+ }
1509
1511
  },
1510
1512
  "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": {
1511
1513
  "userValue": true,
@@ -1535,6 +1537,21 @@
1535
1537
  "userValue": true,
1536
1538
  "recommendedValue": true,
1537
1539
  "explanation": "When enabled, CDK creates and manages loggroup for the lambda function"
1540
+ },
1541
+ "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": {
1542
+ "recommendedValue": true,
1543
+ "explanation": "When enabled, Network Load Balancer will be created with a security group by default."
1544
+ },
1545
+ "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": {
1546
+ "recommendedValue": true,
1547
+ "explanation": "When enabled, allows using a dynamic apiEndpoint with JSONPath format in HttpInvoke tasks.",
1548
+ "unconfiguredBehavesLike": {
1549
+ "v2": true
1550
+ }
1551
+ },
1552
+ "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": {
1553
+ "recommendedValue": true,
1554
+ "explanation": "When enabled, ECS patterns will generate unique target group IDs to prevent conflicts during load balancer replacement"
1538
1555
  }
1539
1556
  }
1540
1557
  }